Merge "Preventing crash when a gesture starts after home activity change but before the update has been received by Launcher"
This commit is contained in:
commit
6638b56667
|
@ -22,12 +22,14 @@ import static com.android.launcher3.GestureNavContract.EXTRA_GESTURE_CONTRACT;
|
|||
import static com.android.launcher3.GestureNavContract.EXTRA_ICON_POSITION;
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_ICON_SURFACE;
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_REMOTE_CALLBACK;
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL;
|
||||
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityOptions;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Matrix;
|
||||
|
@ -126,7 +128,11 @@ public class FallbackSwipeHandler extends
|
|||
ActivityOptions options = ActivityOptions.makeCustomAnimation(mContext, 0, 0);
|
||||
Intent intent = new Intent(mGestureState.getHomeIntent());
|
||||
mActiveAnimationFactory.addGestureContract(intent);
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
try {
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
} catch (NullPointerException | ActivityNotFoundException | SecurityException e) {
|
||||
mContext.startActivity(createHomeIntent());
|
||||
}
|
||||
return mActiveAnimationFactory;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED;
|
|||
import static android.content.Intent.ACTION_PACKAGE_CHANGED;
|
||||
import static android.content.Intent.ACTION_PACKAGE_REMOVED;
|
||||
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVITY;
|
||||
import static com.android.launcher3.util.PackageManagerHelper.getPackageFilter;
|
||||
import static com.android.systemui.shared.system.PackageManagerWrapper.ACTION_PREFERRED_ACTIVITY_CHANGED;
|
||||
|
@ -74,9 +75,7 @@ public final class OverviewComponentObserver {
|
|||
public OverviewComponentObserver(Context context, RecentsAnimationDeviceState deviceState) {
|
||||
mContext = context;
|
||||
mDeviceState = deviceState;
|
||||
mCurrentHomeIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_HOME)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mCurrentHomeIntent = createHomeIntent();
|
||||
mMyHomeIntent = new Intent(mCurrentHomeIntent).setPackage(mContext.getPackageName());
|
||||
ResolveInfo info = context.getPackageManager().resolveActivity(mMyHomeIntent, 0);
|
||||
ComponentName myHomeComponent =
|
||||
|
|
|
@ -21,6 +21,7 @@ import static android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE;
|
|||
import static com.android.launcher3.QuickstepAppTransitionManagerImpl.RECENTS_LAUNCH_DURATION;
|
||||
import static com.android.launcher3.QuickstepAppTransitionManagerImpl.STATUS_BAR_TRANSITION_DURATION;
|
||||
import static com.android.launcher3.QuickstepAppTransitionManagerImpl.STATUS_BAR_TRANSITION_PRE_DELAY;
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
import static com.android.launcher3.testing.TestProtocol.OVERVIEW_STATE_ORDINAL;
|
||||
import static com.android.quickstep.TaskUtils.taskIsATargetWithMode;
|
||||
import static com.android.quickstep.TaskViewUtils.createRecentsWindowAnimator;
|
||||
|
@ -309,9 +310,7 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> {
|
|||
}
|
||||
|
||||
public void startHome() {
|
||||
startActivity(new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_HOME)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
startActivity(createHomeIntent());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,6 +19,7 @@ import static android.view.MotionEvent.ACTION_CANCEL;
|
|||
import static android.view.MotionEvent.ACTION_POINTER_DOWN;
|
||||
import static android.view.MotionEvent.ACTION_UP;
|
||||
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
import static com.android.launcher3.Utilities.squaredHypot;
|
||||
import static com.android.launcher3.Utilities.squaredTouchSlop;
|
||||
import static com.android.launcher3.util.VelocityUtils.PX_PER_MS;
|
||||
|
@ -203,9 +204,7 @@ public class DeviceLockedInputConsumer implements InputConsumer,
|
|||
public void onAnimationEnd(Animator animation) {
|
||||
if (dismissTask) {
|
||||
// For now, just start the home intent so user is prompted to unlock the device.
|
||||
mContext.startActivity(new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_HOME)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
mContext.startActivity(createHomeIntent());
|
||||
mHomeLaunched = true;
|
||||
}
|
||||
mStateCallback.setState(STATE_HANDLER_INVALIDATED);
|
||||
|
|
|
@ -15,10 +15,12 @@
|
|||
*/
|
||||
package com.android.quickstep.inputconsumers;
|
||||
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_BACKGROUND;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_HOME;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_HOME_GESTURE;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.graphics.PointF;
|
||||
import android.view.MotionEvent;
|
||||
|
@ -77,7 +79,11 @@ public class OverviewWithoutFocusInputConsumer implements InputConsumer,
|
|||
|
||||
@Override
|
||||
public void onSwipeUp(boolean wasFling, PointF finalVelocity) {
|
||||
mContext.startActivity(mGestureState.getHomeIntent());
|
||||
try {
|
||||
mContext.startActivity(mGestureState.getHomeIntent());
|
||||
} catch (NullPointerException | ActivityNotFoundException | SecurityException e) {
|
||||
mContext.startActivity(createHomeIntent());
|
||||
}
|
||||
ActiveGestureLog.INSTANCE.addLog("startQuickstep");
|
||||
BaseActivity activity = BaseDraggingActivity.fromContext(mContext);
|
||||
int state = (mGestureState != null && mGestureState.getEndTarget() != null)
|
||||
|
|
|
@ -18,6 +18,8 @@ package com.android.launcher3.util;
|
|||
import static android.view.View.MeasureSpec.EXACTLY;
|
||||
import static android.view.View.MeasureSpec.makeMeasureSpec;
|
||||
|
||||
import static com.android.launcher3.Utilities.createHomeIntent;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -46,10 +48,7 @@ public class LauncherUIHelper {
|
|||
*/
|
||||
public static String getLauncherClassName() {
|
||||
Context context = RuntimeEnvironment.application;
|
||||
Intent homeIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_HOME)
|
||||
.setPackage(context.getPackageName())
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
Intent homeIntent = createHomeIntent().setPackage(context.getPackageName());
|
||||
|
||||
List<ResolveInfo> launchers = context.getPackageManager()
|
||||
.queryIntentActivities(homeIntent, 0);
|
||||
|
|
|
@ -460,6 +460,15 @@ public final class Utilities {
|
|||
return Math.max(lowerBound, Math.min(value, upperBound));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an intent for starting the default home activity
|
||||
*/
|
||||
public static Intent createHomeIntent() {
|
||||
return new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_HOME)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps a message with a TTS span, so that a different message is spoken than
|
||||
* what is getting displayed.
|
||||
|
|
Loading…
Reference in New Issue