diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index f7cf66bf6a..ecaff7a2ad 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -994,7 +994,19 @@ public class Launcher extends StatefulActivity implements Launche } // When multiple pages are visible, show persistent page indicator mWorkspace.getPageIndicator().setShouldAutoHide(!state.hasFlag(FLAG_MULTI_PAGE)); + mPrevLauncherState = mStateManager.getCurrentStableState(); + if (mPrevLauncherState != state && ALL_APPS.equals(state) + // Making sure mAllAppsSessionLogId is null to avoid double logging. + && mAllAppsSessionLogId == null) { + // creates new instance ID since new all apps session is started. + mAllAppsSessionLogId = new InstanceIdSequence().newInstanceId(); + getStatsLogManager() + .logger() + .log(FeatureFlags.ENABLE_DEVICE_SEARCH.get() + ? LAUNCHER_ALLAPPS_ENTRY_WITH_DEVICE_SEARCH + : LAUNCHER_ALLAPPS_ENTRY); + } } @Override @@ -1019,16 +1031,8 @@ public class Launcher extends StatefulActivity implements Launche getRotationHelper().setCurrentStateRequest(REQUEST_NONE); } - if (ALL_APPS.equals(state)) { - // creates new instance ID since new all apps session is started. - mAllAppsSessionLogId = new InstanceIdSequence().newInstanceId(); - getStatsLogManager() - .logger() - .log(FeatureFlags.ENABLE_DEVICE_SEARCH.get() - ? LAUNCHER_ALLAPPS_ENTRY_WITH_DEVICE_SEARCH - : LAUNCHER_ALLAPPS_ENTRY); - } else if (ALL_APPS.equals(mPrevLauncherState) - // Check if mLogInstanceId is not null to make sure exit event is logged only once. + if (mPrevLauncherState != state && !ALL_APPS.equals(state) + // Making sure mAllAppsSessionLogId is not null to avoid double logging. && mAllAppsSessionLogId != null) { getStatsLogManager().logger().log(LAUNCHER_ALLAPPS_EXIT); mAllAppsSessionLogId = null; diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index 2889801a8b..a4372930be 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -317,7 +317,9 @@ public abstract class AbstractStateChangeTouchController Math.min(progress, 1) - endProgress) * durationMultiplier; } } - + if (targetState != mStartState) { + logReachedState(targetState); + } mCurrentAnimation.setEndAction(() -> onSwipeInteractionCompleted(targetState)); ValueAnimator anim = mCurrentAnimation.getAnimationPlayer(); anim.setFloatValues(startProgress, endProgress); @@ -345,9 +347,6 @@ public abstract class AbstractStateChangeTouchController } protected void goToTargetState(LauncherState targetState) { - if (targetState != mStartState) { - logReachedState(targetState); - } if (!mLauncher.isInState(targetState)) { // If we're already in the target state, don't jump to it at the end of the animation in // case the user started interacting with it before the animation finished.