Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java +9 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.plugins; import android.annotation.Nullable; import android.app.PendingIntent; import android.content.Intent; import android.view.View; import com.android.systemui.plugins.annotations.ProvidesInterface; Loading @@ -32,12 +33,19 @@ public interface ActivityStarter { void startPendingIntentDismissingKeyguard(PendingIntent intent); /** * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent, Runnable)}, but allows * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent)}, but allows * you to specify the callback that is executed on the UI thread after the intent is sent. */ void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentUiThreadCallback); /** * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent, Runnable)}, but also * specifies an associated view that should be used for the activity launch animation. */ void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentUiThreadCallback, View associatedView); /** * The intent flag can be specified in startActivity(). */ Loading packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui; import android.app.PendingIntent; import android.content.Intent; import android.view.View; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -52,6 +53,16 @@ public class ActivityStarterDelegate implements ActivityStarter { mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback); } @Override public void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentCallback, View associatedView) { if (mActualStarter == null) { return; } mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback, associatedView); } @Override public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade, int flags) { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.view.RemoteAnimationAdapter; import android.view.RemoteAnimationTarget; import android.view.SyncRtSurfaceTransactionApplier; import android.view.SyncRtSurfaceTransactionApplier.SurfaceParams; import android.view.View; import com.android.internal.policy.ScreenDecorationsUtils; import com.android.systemui.Interpolators; Loading Loading @@ -79,11 +80,12 @@ public class ActivityLaunchAnimator { } public RemoteAnimationAdapter getLaunchAnimation( ExpandableNotificationRow sourceNotification, boolean occluded) { if (!mCallback.areLaunchAnimationsEnabled() || occluded) { View sourceView, boolean occluded) { if (!(sourceView instanceof ExpandableNotificationRow) || !mCallback.areLaunchAnimationsEnabled() || occluded) { return null; } AnimationRunner animationRunner = new AnimationRunner(sourceNotification); AnimationRunner animationRunner = new AnimationRunner( (ExpandableNotificationRow) sourceView); return new RemoteAnimationAdapter(animationRunner, ANIMATION_DURATION, ANIMATION_DURATION - 150 /* statusBarTransitionDelay */); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +12 −3 Original line number Diff line number Diff line Loading @@ -593,6 +593,7 @@ public class StatusBar extends SystemUI implements DemoMode, updateScrimController(); }; private ActivityIntentHelper mActivityIntentHelper; private ShadeController mShadeController; @Override public void onActiveStateChanged(int code, int uid, String packageName, boolean active) { Loading Loading @@ -1062,7 +1063,7 @@ public class StatusBar extends SystemUI implements DemoMode, final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback = (StatusBarRemoteInputCallback) Dependency.get( NotificationRemoteInputManager.Callback.class); final ShadeController shadeController = Dependency.get(ShadeController.class); mShadeController = Dependency.get(ShadeController.class); final ActivityStarter activityStarter = Dependency.get(ActivityStarter.class); mNotificationActivityStarter = new StatusBarNotificationActivityStarter(mContext, Loading @@ -1070,7 +1071,7 @@ public class StatusBar extends SystemUI implements DemoMode, mHeadsUpManager, activityStarter, mActivityLaunchAnimator, mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager, mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager, mLockscreenUserManager, shadeController, mKeyguardMonitor, mLockscreenUserManager, mShadeController, mKeyguardMonitor, mNotificationInterruptionStateProvider, mMetricsLogger, new LockPatternUtils(mContext), Dependency.get(MAIN_HANDLER), Dependency.get(BG_HANDLER), mActivityIntentHelper, mBubbleController); Loading Loading @@ -4344,6 +4345,13 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void startPendingIntentDismissingKeyguard( final PendingIntent intent, @Nullable final Runnable intentSentUiThreadCallback) { startPendingIntentDismissingKeyguard(intent, intentSentUiThreadCallback, null /* row */); } @Override public void startPendingIntentDismissingKeyguard( final PendingIntent intent, @Nullable final Runnable intentSentUiThreadCallback, View associatedView) { final boolean afterKeyguardGone = intent.isActivity() && mActivityIntentHelper.wouldLaunchResolverActivity(intent.getIntent(), mLockscreenUserManager.getCurrentUserId()); Loading @@ -4351,7 +4359,8 @@ public class StatusBar extends SystemUI implements DemoMode, executeActionDismissingKeyguard(() -> { try { intent.send(null, 0, null, null, null, null, getActivityOptions( null /* animationAdapter */)); mActivityLaunchAnimator.getLaunchAnimation(associatedView, mShadeController.isOccluded()))); } catch (PendingIntent.CanceledException e) { // the stack trace isn't very helpful here. // Just log the exception message. Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java +1 −1 Original line number Diff line number Diff line Loading @@ -349,7 +349,7 @@ public class SmartReplyView extends ViewGroup { smartReplyController.smartActionClicked( entry, actionIndex, action, smartActions.fromAssistant); headsUpManager.removeNotification(entry.key, true); }); }, entry.getRow()); if (useDelayedOnClickListener) { onClickListener = new DelayedOnClickListener(onClickListener, smartReplyView.mConstants.getOnClickInitDelay()); Loading Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java +9 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.plugins; import android.annotation.Nullable; import android.app.PendingIntent; import android.content.Intent; import android.view.View; import com.android.systemui.plugins.annotations.ProvidesInterface; Loading @@ -32,12 +33,19 @@ public interface ActivityStarter { void startPendingIntentDismissingKeyguard(PendingIntent intent); /** * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent, Runnable)}, but allows * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent)}, but allows * you to specify the callback that is executed on the UI thread after the intent is sent. */ void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentUiThreadCallback); /** * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent, Runnable)}, but also * specifies an associated view that should be used for the activity launch animation. */ void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentUiThreadCallback, View associatedView); /** * The intent flag can be specified in startActivity(). */ Loading
packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui; import android.app.PendingIntent; import android.content.Intent; import android.view.View; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -52,6 +53,16 @@ public class ActivityStarterDelegate implements ActivityStarter { mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback); } @Override public void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentCallback, View associatedView) { if (mActualStarter == null) { return; } mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback, associatedView); } @Override public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade, int flags) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.view.RemoteAnimationAdapter; import android.view.RemoteAnimationTarget; import android.view.SyncRtSurfaceTransactionApplier; import android.view.SyncRtSurfaceTransactionApplier.SurfaceParams; import android.view.View; import com.android.internal.policy.ScreenDecorationsUtils; import com.android.systemui.Interpolators; Loading Loading @@ -79,11 +80,12 @@ public class ActivityLaunchAnimator { } public RemoteAnimationAdapter getLaunchAnimation( ExpandableNotificationRow sourceNotification, boolean occluded) { if (!mCallback.areLaunchAnimationsEnabled() || occluded) { View sourceView, boolean occluded) { if (!(sourceView instanceof ExpandableNotificationRow) || !mCallback.areLaunchAnimationsEnabled() || occluded) { return null; } AnimationRunner animationRunner = new AnimationRunner(sourceNotification); AnimationRunner animationRunner = new AnimationRunner( (ExpandableNotificationRow) sourceView); return new RemoteAnimationAdapter(animationRunner, ANIMATION_DURATION, ANIMATION_DURATION - 150 /* statusBarTransitionDelay */); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +12 −3 Original line number Diff line number Diff line Loading @@ -593,6 +593,7 @@ public class StatusBar extends SystemUI implements DemoMode, updateScrimController(); }; private ActivityIntentHelper mActivityIntentHelper; private ShadeController mShadeController; @Override public void onActiveStateChanged(int code, int uid, String packageName, boolean active) { Loading Loading @@ -1062,7 +1063,7 @@ public class StatusBar extends SystemUI implements DemoMode, final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback = (StatusBarRemoteInputCallback) Dependency.get( NotificationRemoteInputManager.Callback.class); final ShadeController shadeController = Dependency.get(ShadeController.class); mShadeController = Dependency.get(ShadeController.class); final ActivityStarter activityStarter = Dependency.get(ActivityStarter.class); mNotificationActivityStarter = new StatusBarNotificationActivityStarter(mContext, Loading @@ -1070,7 +1071,7 @@ public class StatusBar extends SystemUI implements DemoMode, mHeadsUpManager, activityStarter, mActivityLaunchAnimator, mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager, mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager, mLockscreenUserManager, shadeController, mKeyguardMonitor, mLockscreenUserManager, mShadeController, mKeyguardMonitor, mNotificationInterruptionStateProvider, mMetricsLogger, new LockPatternUtils(mContext), Dependency.get(MAIN_HANDLER), Dependency.get(BG_HANDLER), mActivityIntentHelper, mBubbleController); Loading Loading @@ -4344,6 +4345,13 @@ public class StatusBar extends SystemUI implements DemoMode, @Override public void startPendingIntentDismissingKeyguard( final PendingIntent intent, @Nullable final Runnable intentSentUiThreadCallback) { startPendingIntentDismissingKeyguard(intent, intentSentUiThreadCallback, null /* row */); } @Override public void startPendingIntentDismissingKeyguard( final PendingIntent intent, @Nullable final Runnable intentSentUiThreadCallback, View associatedView) { final boolean afterKeyguardGone = intent.isActivity() && mActivityIntentHelper.wouldLaunchResolverActivity(intent.getIntent(), mLockscreenUserManager.getCurrentUserId()); Loading @@ -4351,7 +4359,8 @@ public class StatusBar extends SystemUI implements DemoMode, executeActionDismissingKeyguard(() -> { try { intent.send(null, 0, null, null, null, null, getActivityOptions( null /* animationAdapter */)); mActivityLaunchAnimator.getLaunchAnimation(associatedView, mShadeController.isOccluded()))); } catch (PendingIntent.CanceledException e) { // the stack trace isn't very helpful here. // Just log the exception message. Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java +1 −1 Original line number Diff line number Diff line Loading @@ -349,7 +349,7 @@ public class SmartReplyView extends ViewGroup { smartReplyController.smartActionClicked( entry, actionIndex, action, smartActions.fromAssistant); headsUpManager.removeNotification(entry.key, true); }); }, entry.getRow()); if (useDelayedOnClickListener) { onClickListener = new DelayedOnClickListener(onClickListener, smartReplyView.mConstants.getOnClickInitDelay()); Loading