OSDN Git Service

Show stop button in a pressed state when pressed.
authorLeon Scroggins <scroggo@google.com>
Mon, 22 Mar 2010 14:54:04 +0000 (10:54 -0400)
committerLeon Scroggins <scroggo@google.com>
Mon, 22 Mar 2010 14:54:04 +0000 (10:54 -0400)
Fix for http://b/issue?id=2533372

Change-Id: I9a614a95f5537d17c9cb89e96afe6c21fc56d59a

res/drawable/stop_background.xml [new file with mode: 0644]
res/layout/title_bar.xml
src/com/android/browser/TitleBar.java

diff --git a/res/drawable/stop_background.xml b/res/drawable/stop_background.xml
new file mode 100644 (file)
index 0000000..a9a4dd4
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Custom background for the stop button which mimics btn_search_dialog
+        but draws in a pressed state even if it is in an unfocused window -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+        android:drawable="@*android:drawable/btn_search_dialog_pressed" />
+    <item android:state_pressed="false"
+         android:drawable="@*android:drawable/btn_search_dialog_default" />
+</selector>
index 3765024..c251250 100644 (file)
@@ -73,7 +73,7 @@
                 />
         </LinearLayout>
         <ImageView android:id="@+id/stop"
-            android:background="@*android:drawable/btn_search_dialog"
+            android:background="@drawable/stop_background"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:src="@drawable/ic_btn_stop_v2"
index ee6aa9c..0f19864 100644 (file)
@@ -156,13 +156,14 @@ public class TitleBar extends LinearLayout {
 
     @Override
     public boolean onTouchEvent(MotionEvent event) {
+        ImageView button = mInLoad ? mStopButton : mRtButton;
         switch (event.getAction()) {
             case MotionEvent.ACTION_DOWN:
                 // Make all touches hit either the textfield or the button,
                 // depending on which side of the right edge of the textfield
                 // they hit.
                 if ((int) event.getX() > mTitleBg.getRight()) {
-                    mRtButton.setPressed(true);
+                    button.setPressed(true);
                 } else {
                     mTitleBg.setPressed(true);
                     mHandler.sendMessageDelayed(mHandler.obtainMessage(
@@ -178,7 +179,7 @@ public class TitleBar extends LinearLayout {
                     // other is pressed.  Since the user moved off the title
                     // bar, mark both as not pressed.
                     mTitleBg.setPressed(false);
-                    mRtButton.setPressed(false);
+                    button.setPressed(false);
                     mHandler.removeMessages(LONG_PRESS);
                     break;
                 }
@@ -187,17 +188,17 @@ public class TitleBar extends LinearLayout {
                 if (mTitleBg.isPressed() && x > titleRight + slop) {
                     mTitleBg.setPressed(false);
                     mHandler.removeMessages(LONG_PRESS);
-                } else if (mRtButton.isPressed() && x < titleRight - slop) {
-                    mRtButton.setPressed(false);
+                } else if (button.isPressed() && x < titleRight - slop) {
+                    button.setPressed(false);
                 }
                 break;
             case MotionEvent.ACTION_CANCEL:
-                mRtButton.setPressed(false);
+                button.setPressed(false);
                 mTitleBg.setPressed(false);
                 mHandler.removeMessages(LONG_PRESS);
                 break;
             case MotionEvent.ACTION_UP:
-                if (mRtButton.isPressed()) {
+                if (button.isPressed()) {
                     if (mInVoiceMode) {
                         if (mBrowserActivity.getTabControl().getCurrentTab()
                                 .voiceSearchSourceIsGoogle()) {
@@ -213,7 +214,7 @@ public class TitleBar extends LinearLayout {
                     } else {
                         mBrowserActivity.bookmarksOrHistoryPicker(false);
                     }
-                    mRtButton.setPressed(false);
+                    button.setPressed(false);
                 } else if (mTitleBg.isPressed()) {
                     mHandler.removeMessages(LONG_PRESS);
                     if (mInVoiceMode) {