summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2019-09-06 12:05:52 -0700
committerWinson Chung <winsonc@google.com>2019-09-09 10:24:53 -0700
commitef52876739c65b740c0205cb49aaafd5cae3b7fa (patch)
tree84970a4fab0331489606b276d52ba6ef5e9b7189 /src/com/android
parent13c1c2cd6505ca3103d4a2d315426e301a871337 (diff)
downloadandroid_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.java17
-rw-r--r--src/com/android/launcher3/Launcher.java21
-rw-r--r--src/com/android/launcher3/LauncherAppWidgetHost.java4
-rw-r--r--src/com/android/launcher3/LauncherStateManager.java7
-rw-r--r--src/com/android/launcher3/views/BaseDragLayer.java2
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);