summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-10-01 01:13:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-01 01:13:23 +0000
commitf099eb0bf4c0fdee5c4708d48ce0134fbf0d1249 (patch)
treef09362ea7a3268a310b99c42ffb9eda46ae18b28
parent61f560d92ab4b11a61beeb8df97b9952027e08e4 (diff)
parent5841efa6121fb40dd7c1a6a432a899b894fa5c6d (diff)
downloadandroid_packages_apps_Trebuchet-f099eb0bf4c0fdee5c4708d48ce0134fbf0d1249.tar.gz
android_packages_apps_Trebuchet-f099eb0bf4c0fdee5c4708d48ce0134fbf0d1249.tar.bz2
android_packages_apps_Trebuchet-f099eb0bf4c0fdee5c4708d48ce0134fbf0d1249.zip
Merge "Using state to update voice button proxy visibility instead of view flags. (Bug 10915381)" into jb-ub-now-indigo-rose
-rw-r--r--src/com/android/launcher3/Launcher.java22
-rw-r--r--src/com/android/launcher3/Workspace.java20
2 files changed, 31 insertions, 11 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 62e05e8d8..7ae429dae 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -900,6 +900,9 @@ public class Launcher extends Activity
// Process any items that were added while Launcher was away.
InstallShortcutReceiver.disableAndFlushInstallQueue(this);
+ // Update the voice search button proxy
+ updateVoiceButtonProxyVisible(false);
+
// Again, as with the above scenario, it's possible that one or more of the global icons
// were updated in the wrong orientation.
updateGlobalIcons();
@@ -3338,7 +3341,7 @@ public class Launcher extends Activity
if (voiceButtonContainer != null) voiceButtonContainer.setVisibility(View.GONE);
if (searchButton != null) searchButton.setVisibility(View.GONE);
if (voiceButton != null) voiceButton.setVisibility(View.GONE);
- setVoiceButtonProxyVisible(false);
+ updateVoiceButtonProxyVisible(false);
return false;
}
}
@@ -3385,13 +3388,13 @@ public class Launcher extends Activity
}
if (voiceButtonContainer != null) voiceButtonContainer.setVisibility(View.VISIBLE);
voiceButton.setVisibility(View.VISIBLE);
- setVoiceButtonProxyVisible(true);
+ updateVoiceButtonProxyVisible(false);
invalidatePressedFocusedStates(voiceButtonContainer, voiceButton);
return true;
} else {
if (voiceButtonContainer != null) voiceButtonContainer.setVisibility(View.GONE);
if (voiceButton != null) voiceButton.setVisibility(View.GONE);
- setVoiceButtonProxyVisible(false);
+ updateVoiceButtonProxyVisible(false);
return false;
}
}
@@ -3403,12 +3406,23 @@ public class Launcher extends Activity
invalidatePressedFocusedStates(voiceButtonContainer, voiceButton);
}
- public void setVoiceButtonProxyVisible(boolean visible) {
+ public void updateVoiceButtonProxyVisible(boolean forceDisableVoiceButtonProxy) {
final View voiceButtonProxy = findViewById(R.id.voice_button_proxy);
if (voiceButtonProxy != null) {
+ boolean visible = !forceDisableVoiceButtonProxy &&
+ mWorkspace.shouldVoiceButtonProxyBeVisible();
voiceButtonProxy.setVisibility(visible ? View.VISIBLE : View.GONE);
+ voiceButtonProxy.bringToFront();
}
}
+
+ /**
+ * This is an overrid eot disable the voice button proxy. If disabled is true, then the voice button proxy
+ * will be hidden regardless of what shouldVoiceButtonProxyBeVisible() returns.
+ */
+ public void disableVoiceButtonProxy(boolean disabled) {
+ updateVoiceButtonProxyVisible(disabled);
+ }
/**
* Sets the app market icon
*/
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 132f42d5f..68d241466 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1036,14 +1036,14 @@ public class Workspace extends SmoothPagedView
if (mCustomContentCallbacks != null) {
mCustomContentCallbacks.onShow();
mCustomContentShowTime = System.currentTimeMillis();
- mLauncher.setVoiceButtonProxyVisible(false);
+ mLauncher.updateVoiceButtonProxyVisible(false);
}
} else if (hasCustomContent() && getNextPage() != 0 && mCustomContentShowing) {
mCustomContentShowing = false;
if (mCustomContentCallbacks != null) {
mCustomContentCallbacks.onHide();
mLauncher.resetQSBScroll();
- mLauncher.setVoiceButtonProxyVisible(true);
+ mLauncher.updateVoiceButtonProxyVisible(false);
}
}
};
@@ -1823,6 +1823,16 @@ public class Workspace extends SmoothPagedView
return offsetDelta;
}
+ boolean shouldVoiceButtonProxyBeVisible() {
+ if (isOnOrMovingToCustomContent()) {
+ return false;
+ }
+ if (mState != State.NORMAL) {
+ return false;
+ }
+ return true;
+ }
+
Animator getChangeStateAnimation(final State state, boolean animated, int delay, int snapPage) {
if (mState == state) {
return null;
@@ -1975,11 +1985,7 @@ public class Workspace extends SmoothPagedView
setScaleY(mNewScale);
setTranslationY(finalWorkspaceTranslationY);
}
- if (finalSearchBarAlpha == 0) {
- mLauncher.setVoiceButtonProxyVisible(false);
- } else {
- mLauncher.setVoiceButtonProxyVisible(true);
- }
+ mLauncher.updateVoiceButtonProxyVisible(false);
if (stateIsSpringLoaded) {
// Right now we're covered by Apps Customize