diff options
author | Winson Chung <winsonc@google.com> | 2019-09-06 12:05:52 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2019-09-09 10:24:53 -0700 |
commit | ef52876739c65b740c0205cb49aaafd5cae3b7fa (patch) | |
tree | 84970a4fab0331489606b276d52ba6ef5e9b7189 /src/com/android | |
parent | 13c1c2cd6505ca3103d4a2d315426e301a871337 (diff) | |
download | android_packages_apps_Trebuchet-ef52876739c65b740c0205cb49aaafd5cae3b7fa.tar.gz android_packages_apps_Trebuchet-ef52876739c65b740c0205cb49aaafd5cae3b7fa.tar.bz2 android_packages_apps_Trebuchet-ef52876739c65b740c0205cb49aaafd5cae3b7fa.zip |
Defer listening on widget host until after the state transition ends
Bug: 140246642
Change-Id: I4532e4298f04ff5c6dea04ccda89320995cadb80
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/launcher3/BaseActivity.java | 17 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 21 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherAppWidgetHost.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherStateManager.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher3/views/BaseDragLayer.java | 2 |
5 files changed, 31 insertions, 20 deletions
diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java index 64550560f..b28077f7c 100644 --- a/src/com/android/launcher3/BaseActivity.java +++ b/src/com/android/launcher3/BaseActivity.java @@ -27,6 +27,8 @@ import android.content.Intent; import android.content.res.Configuration; import android.view.ContextThemeWrapper; +import androidx.annotation.IntDef; + import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.logging.StatsLogManager; import com.android.launcher3.logging.StatsLogUtils; @@ -44,8 +46,6 @@ import java.io.PrintWriter; import java.lang.annotation.Retention; import java.util.ArrayList; -import androidx.annotation.IntDef; - public abstract class BaseActivity extends Activity implements UserEventDelegate, LogStateProvider, ActivityContext { @@ -265,12 +265,13 @@ public abstract class BaseActivity extends Activity } } - protected void dumpMisc(PrintWriter writer) { - writer.println(" deviceProfile isTransposed=" + getDeviceProfile().isVerticalBarLayout()); - writer.println(" orientation=" + getResources().getConfiguration().orientation); - writer.println(" mSystemUiController: " + mSystemUiController); - writer.println(" mActivityFlags: " + mActivityFlags); - writer.println(" mForceInvisible: " + mForceInvisible); + protected void dumpMisc(String prefix, PrintWriter writer) { + writer.println(prefix + "deviceProfile isTransposed=" + + getDeviceProfile().isVerticalBarLayout()); + writer.println(prefix + "orientation=" + getResources().getConfiguration().orientation); + writer.println(prefix + "mSystemUiController: " + mSystemUiController); + writer.println(prefix + "mActivityFlags: " + mActivityFlags); + writer.println(prefix + "mForceInvisible: " + mForceInvisible); } public static <T extends BaseActivity> T fromContext(Context context) { diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 92e9509e0..b73cee4f3 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -945,8 +945,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, } - protected void onStateSet(LauncherState state) { - getAppWidgetHost().setResumed(state == LauncherState.NORMAL); + public void onStateSetStart(LauncherState state) { if (mDeferredResumePending) { handleDeferredResume(); } @@ -955,6 +954,12 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, } } + public void onStateSetEnd(LauncherState state) { + getAppWidgetHost().setResumed(state == LauncherState.NORMAL); + getWorkspace().setClipChildren(!state.disablePageClipping); + finishAutoCancelActionMode(); + } + @Override protected void onResume() { RaceConditionTracker.onEvent(ON_RESUME_EVT, ENTER); @@ -2467,14 +2472,16 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, } writer.println(prefix + "Misc:"); - writer.print(prefix + "\tmWorkspaceLoading=" + mWorkspaceLoading); - writer.print(" mPendingRequestArgs=" + mPendingRequestArgs); - writer.println(" mPendingActivityResult=" + mPendingActivityResult); - writer.println(" mRotationHelper: " + mRotationHelper); + dumpMisc(prefix + "\t", writer); + writer.println(prefix + "\tmWorkspaceLoading=" + mWorkspaceLoading); + writer.println(prefix + "\tmPendingRequestArgs=" + mPendingRequestArgs + + " mPendingActivityResult=" + mPendingActivityResult); + writer.println(prefix + "\tmRotationHelper: " + mRotationHelper); + writer.println(prefix + "\tmAppWidgetHost.isListening: " + mAppWidgetHost.isListening()); + // Extra logging for b/116853349 mDragLayer.dump(prefix, writer); mStateManager.dump(prefix, writer); - dumpMisc(writer); try { FileLog.flushAll(writer); diff --git a/src/com/android/launcher3/LauncherAppWidgetHost.java b/src/com/android/launcher3/LauncherAppWidgetHost.java index 7f5ac5276..ffdd6b70b 100644 --- a/src/com/android/launcher3/LauncherAppWidgetHost.java +++ b/src/com/android/launcher3/LauncherAppWidgetHost.java @@ -105,6 +105,10 @@ public class LauncherAppWidgetHost extends AppWidgetHost { super.stopListening(); } + public boolean isListening() { + return (mFlags & FLAG_LISTENING) != 0; + } + /** * Updates the resumed state of the host. * When a host is not resumed, it defers calls to startListening until host is resumed again. diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java index 63914b0eb..6bfae1311 100644 --- a/src/com/android/launcher3/LauncherStateManager.java +++ b/src/com/android/launcher3/LauncherStateManager.java @@ -136,7 +136,7 @@ public class LauncherStateManager { } public void dump(String prefix, PrintWriter writer) { - writer.println(prefix + "LauncherState"); + writer.println(prefix + "LauncherState:"); writer.println(prefix + "\tmLastStableState:" + mLastStableState); writer.println(prefix + "\tmCurrentStableState:" + mCurrentStableState); writer.println(prefix + "\tmState:" + mState); @@ -418,7 +418,7 @@ public class LauncherStateManager { " @ " + Log.getStackTraceString(new Throwable())); } mState.onStateEnabled(mLauncher); - mLauncher.onStateSet(mState); + mLauncher.onStateSetStart(mState); if (state.disablePageClipping) { // Only disable clipping if needed, otherwise leave it as previous value. @@ -444,8 +444,7 @@ public class LauncherStateManager { } state.onStateTransitionEnd(mLauncher); - mLauncher.getWorkspace().setClipChildren(!state.disablePageClipping); - mLauncher.finishAutoCancelActionMode(); + mLauncher.onStateSetEnd(state); if (state == NORMAL) { setRestState(null); diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java index 799762d8f..1405bc503 100644 --- a/src/com/android/launcher3/views/BaseDragLayer.java +++ b/src/com/android/launcher3/views/BaseDragLayer.java @@ -459,7 +459,7 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext> } public void dump(String prefix, PrintWriter writer) { - writer.println(prefix + "DragLayer"); + writer.println(prefix + "DragLayer:"); if (mActiveController != null) { writer.println(prefix + "\tactiveController: " + mActiveController); mActiveController.dump(prefix + "\t", writer); |