diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 6288937912..1f06f94d83 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -110,8 +110,6 @@ public class StatsLogCompatManager extends StatsLogManager { public static final CopyOnWriteArrayList LOGS_CONSUMER = new CopyOnWriteArrayList<>(); - private final Context mContext; - public StatsLogCompatManager(Context context) { mContext = context; } diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 786088ef6e..6796d4b6f5 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -438,4 +438,8 @@ 24dp 20dp + + + 300dp diff --git a/src/com/android/launcher3/logging/KeyboardStateManager.java b/src/com/android/launcher3/logging/KeyboardStateManager.java index 6dc0a0be22..d0f9c7431b 100644 --- a/src/com/android/launcher3/logging/KeyboardStateManager.java +++ b/src/com/android/launcher3/logging/KeyboardStateManager.java @@ -24,7 +24,10 @@ import android.os.SystemClock; */ public class KeyboardStateManager { private long mUpdatedTime; - private int mImeHeight; + private int mImeHeightPx; + // Height of the keyboard when it's shown. + // mImeShownHeightPx>=mImeHeightPx always. + private int mImeShownHeightPx; public enum KeyboardState { NO_IME_ACTION, @@ -34,8 +37,9 @@ public class KeyboardStateManager { private KeyboardState mKeyboardState; - public KeyboardStateManager() { + public KeyboardStateManager(int defaultImeShownHeightPx) { mKeyboardState = NO_IME_ACTION; + mImeShownHeightPx = defaultImeShownHeightPx; } /** @@ -64,13 +68,25 @@ public class KeyboardStateManager { * Returns keyboard's current height. */ public int getImeHeight() { - return mImeHeight; + return mImeHeightPx; } /** - * Setter method to set keyboard height. + * Returns keyboard's height in pixels when shown. */ - public void setImeHeight(int imeHeight) { - mImeHeight = imeHeight; + public int getImeShownHeight() { + return mImeShownHeightPx; + } + + /** + * Setter method to set keyboard height in pixels. + */ + public void setImeHeight(int imeHeightPx) { + mImeHeightPx = imeHeightPx; + if (mImeHeightPx > 0) { + // Update the mImeShownHeightPx with the actual ime height when shown and store it + // for future sessions. + mImeShownHeightPx = mImeHeightPx; + } } } diff --git a/src/com/android/launcher3/logging/StatsLogManager.java b/src/com/android/launcher3/logging/StatsLogManager.java index 7e065a9b79..3e97313822 100644 --- a/src/com/android/launcher3/logging/StatsLogManager.java +++ b/src/com/android/launcher3/logging/StatsLogManager.java @@ -59,6 +59,7 @@ public class StatsLogManager implements ResourceBasedOverride { private InstanceId mInstanceId; protected @Nullable ActivityContext mActivityContext = null; + protected @Nullable Context mContext = null; private KeyboardStateManager mKeyboardStateManager; /** @@ -1035,7 +1036,9 @@ public class StatsLogManager implements ResourceBasedOverride { */ public KeyboardStateManager keyboardStateManager() { if (mKeyboardStateManager == null) { - mKeyboardStateManager = new KeyboardStateManager(); + mKeyboardStateManager = new KeyboardStateManager( + mContext != null ? mContext.getResources().getDimensionPixelSize( + R.dimen.default_ime_height) : 0); } return mKeyboardStateManager; } @@ -1071,6 +1074,7 @@ public class StatsLogManager implements ResourceBasedOverride { StatsLogManager manager = Overrides.getObject(StatsLogManager.class, context.getApplicationContext(), R.string.stats_log_manager_class); manager.mActivityContext = ActivityContext.lookupContextNoThrow(context); + manager.mContext = context; return manager; } }