Fix voice search
Use BaseUI implementation of onStateChanged. This was regression
brought by navigation bar cleanup code with changed id
'Change-Id: Iecb699a3e5eb848db149705a9142f8f199f02c04'
Change-Id: I10c69b5d168e03ffb3fd9767bd17d5374e167d34
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 8c88c7d..3be1ab9 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -238,6 +238,7 @@
private boolean mExtendedMenuOpen;
private boolean mActivityPaused = true;
+ private boolean mActivityStopped = true;
private boolean mLoadStopped;
private Handler mHandler;
@@ -730,24 +731,7 @@
return;
}
mActivityPaused = true;
- Tab tab = mTabControl.getCurrentTab();
- if (tab != null) {
- tab.pause();
- if (!pauseWebViewTimers(tab)) {
- if (mWakeLock == null) {
- PowerManager pm = (PowerManager) mActivity
- .getSystemService(Context.POWER_SERVICE);
- mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Browser");
- }
- mWakeLock.acquire();
- mHandler.sendMessageDelayed(mHandler
- .obtainMessage(RELEASE_WAKELOCK), WAKELOCK_TIMEOUT);
- }
- }
- mUi.onPause();
- mNetworkHandler.onPause();
- NfcHandler.unregister(mActivity);
- mActivity.unregisterReceiver(mLowPowerReceiver);
+
}
@Override
@@ -777,9 +761,56 @@
Log.e(LOGTAG, "BrowserActivity is already resumed.");
return;
}
+ mActivityPaused = false;
+ if (mVoiceResult != null) {
+ mUi.onVoiceResult(mVoiceResult);
+ mVoiceResult = null;
+ }
+ }
+
+ private void releaseWakeLock() {
+ if (mWakeLock != null && mWakeLock.isHeld()) {
+ mHandler.removeMessages(RELEASE_WAKELOCK);
+ mWakeLock.release();
+ }
+ }
+
+ @Override
+ public void onStop() {
+ if (mActivityStopped) {
+ Log.e(LOGTAG, "BrowserActivity is already stoped.");
+ return;
+ }
+ mActivityStopped = true;
+ Tab tab = mTabControl.getCurrentTab();
+ if (tab != null) {
+ tab.pause();
+ if (!pauseWebViewTimers(tab)) {
+ if (mWakeLock == null) {
+ PowerManager pm = (PowerManager) mActivity
+ .getSystemService(Context.POWER_SERVICE);
+ mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Browser");
+ }
+ mWakeLock.acquire();
+ mHandler.sendMessageDelayed(mHandler
+ .obtainMessage(RELEASE_WAKELOCK), WAKELOCK_TIMEOUT);
+ }
+ }
+ mUi.onPause();
+ mNetworkHandler.onPause();
+ NfcHandler.unregister(mActivity);
+ mActivity.unregisterReceiver(mLowPowerReceiver);
+ }
+
+ @Override
+ public void onStart() {
+ if (!mActivityStopped) {
+ Log.e(LOGTAG, "BrowserActivity is already started.");
+ return;
+ }
+ mActivityStopped = false;
UpdateNotificationService.updateCheck(mActivity);
mSettings.setLastRunPaused(false);
- mActivityPaused = false;
Tab current = mTabControl.getCurrentTab();
if (current != null) {
current.resume();
@@ -790,20 +821,10 @@
mUi.onResume();
mNetworkHandler.onResume();
NfcHandler.register(mActivity, this);
- if (mVoiceResult != null) {
- mUi.onVoiceResult(mVoiceResult);
- mVoiceResult = null;
- }
if (current != null && current.getWebView().isShowingCrashView())
current.getWebView().reload();
mActivity.registerReceiver(mLowPowerReceiver, new IntentFilter(Intent.ACTION_BATTERY_LOW));
- }
- private void releaseWakeLock() {
- if (mWakeLock != null && mWakeLock.isHeld()) {
- mHandler.removeMessages(RELEASE_WAKELOCK);
- mWakeLock.release();
- }
}
/**