Fixing issue with recents not being hidden for translucent apps.
- When tapping home, we can't depend on the stack state to determine whether or not hide recents since there can be translucent windows above it. In this case, we just dismiss recents directly since the receiver will only be registered while recents is visible. Bug: 20110140 Change-Id: I6b796cc4cbd790aac9a0857549e34117adb808d8
This commit is contained in:
@@ -316,14 +316,12 @@ public class Recents extends SystemUI
|
||||
|
||||
void hideRecentsInternal(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
|
||||
if (mBootCompleted) {
|
||||
ActivityManager.RunningTaskInfo topTask = mSystemServicesProxy.getTopMostTask();
|
||||
if (topTask != null && mSystemServicesProxy.isRecentsTopMost(topTask, null)) {
|
||||
// Notify recents to hide itself
|
||||
Intent intent = createLocalBroadcastIntent(mContext, ACTION_HIDE_RECENTS_ACTIVITY);
|
||||
intent.putExtra(EXTRA_TRIGGERED_FROM_ALT_TAB, triggeredFromAltTab);
|
||||
intent.putExtra(EXTRA_TRIGGERED_FROM_HOME_KEY, triggeredFromHomeKey);
|
||||
mContext.sendBroadcastAsUser(intent, UserHandle.CURRENT);
|
||||
}
|
||||
// Defer to the activity to handle hiding recents, if it handles it, then it must still
|
||||
// be visible
|
||||
Intent intent = createLocalBroadcastIntent(mContext, ACTION_HIDE_RECENTS_ACTIVITY);
|
||||
intent.putExtra(EXTRA_TRIGGERED_FROM_ALT_TAB, triggeredFromAltTab);
|
||||
intent.putExtra(EXTRA_TRIGGERED_FROM_HOME_KEY, triggeredFromHomeKey);
|
||||
mContext.sendBroadcastAsUser(intent, UserHandle.CURRENT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -134,9 +134,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
|
||||
dismissRecentsToFocusedTaskOrHome(false);
|
||||
} else if (intent.getBooleanExtra(Recents.EXTRA_TRIGGERED_FROM_HOME_KEY, false)) {
|
||||
// Otherwise, dismiss Recents to Home
|
||||
dismissRecentsToHome(true);
|
||||
dismissRecentsToHomeRaw(true);
|
||||
} else {
|
||||
// Do nothing, another activity is being launched on top of Recents
|
||||
// Do nothing
|
||||
}
|
||||
} else if (action.equals(Recents.ACTION_TOGGLE_RECENTS_ACTIVITY)) {
|
||||
// If we are toggling Recents, then first unfilter any filtered stacks first
|
||||
|
||||
@@ -70,6 +70,7 @@ public class RecentsAppWidgetHost extends AppWidgetHost {
|
||||
@Override
|
||||
protected void onProviderChanged(int appWidgetId, AppWidgetProviderInfo appWidgetInfo) {
|
||||
if (mCb == null) return;
|
||||
if (mContext == null) return;
|
||||
|
||||
SystemServicesProxy ssp = RecentsTaskLoader.getInstance().getSystemServicesProxy();
|
||||
if (appWidgetId > -1 && appWidgetId == mConfig.searchBarAppWidgetId) {
|
||||
|
||||
Reference in New Issue
Block a user