Merge "Passing in the launch cookie for widget broadcast trampolines" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ba297c19c2
@@ -39,6 +39,7 @@ import android.hardware.SensorManager;
|
|||||||
import android.hardware.devicestate.DeviceStateManager;
|
import android.hardware.devicestate.DeviceStateManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.CancellationSignal;
|
import android.os.CancellationSignal;
|
||||||
|
import android.os.IBinder;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowInsets;
|
import android.view.WindowInsets;
|
||||||
import android.window.SplashScreen;
|
import android.window.SplashScreen;
|
||||||
@@ -513,11 +514,26 @@ public abstract class BaseQuickstepLauncher extends Launcher
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new launch cookie for the activity launch of the given {@param info} if supported.
|
* Adds a new launch cookie for the activity launch if supported.
|
||||||
|
*
|
||||||
|
* @param info the item info for the launch
|
||||||
|
* @param opts the options to set the launchCookie on.
|
||||||
*/
|
*/
|
||||||
public void addLaunchCookie(ItemInfo info, ActivityOptions opts) {
|
public void addLaunchCookie(ItemInfo info, ActivityOptions opts) {
|
||||||
|
IBinder launchCookie = getLaunchCookie(info);
|
||||||
|
if (launchCookie != null) {
|
||||||
|
opts.setLaunchCookie(launchCookie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a new launch cookie for the activity launch if supported.
|
||||||
|
*
|
||||||
|
* @param info the item info for the launch
|
||||||
|
*/
|
||||||
|
public IBinder getLaunchCookie(ItemInfo info) {
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
switch (info.container) {
|
switch (info.container) {
|
||||||
case LauncherSettings.Favorites.CONTAINER_DESKTOP:
|
case LauncherSettings.Favorites.CONTAINER_DESKTOP:
|
||||||
@@ -531,8 +547,7 @@ public abstract class BaseQuickstepLauncher extends Launcher
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Reset any existing launch cookies associated with the cookie
|
// Reset any existing launch cookies associated with the cookie
|
||||||
opts.setLaunchCookie(ObjectWrapper.wrap(NO_MATCHING_ID));
|
return ObjectWrapper.wrap(NO_MATCHING_ID);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
switch (info.itemType) {
|
switch (info.itemType) {
|
||||||
case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION:
|
case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION:
|
||||||
@@ -543,10 +558,9 @@ public abstract class BaseQuickstepLauncher extends Launcher
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Reset any existing launch cookies associated with the cookie
|
// Reset any existing launch cookies associated with the cookie
|
||||||
opts.setLaunchCookie(ObjectWrapper.wrap(NO_MATCHING_ID));
|
return ObjectWrapper.wrap(NO_MATCHING_ID);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
opts.setLaunchCookie(ObjectWrapper.wrap(new Integer(info.id)));
|
return ObjectWrapper.wrap(new Integer(info.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHintUserWillBeActive() {
|
public void setHintUserWillBeActive() {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.app.ActivityOptions;
|
|||||||
import android.app.ActivityTaskManager;
|
import android.app.ActivityTaskManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.IBinder;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
@@ -58,6 +59,12 @@ class QuickstepInteractionHandler implements RemoteViews.InteractionHandler {
|
|||||||
Pair<Intent, ActivityOptions> options = remoteResponse.getLaunchOptions(view);
|
Pair<Intent, ActivityOptions> options = remoteResponse.getLaunchOptions(view);
|
||||||
ActivityOptionsWrapper activityOptions = mLauncher.getAppTransitionManager()
|
ActivityOptionsWrapper activityOptions = mLauncher.getAppTransitionManager()
|
||||||
.getActivityLaunchOptions(hostView);
|
.getActivityLaunchOptions(hostView);
|
||||||
|
Object itemInfo = hostView.getTag();
|
||||||
|
IBinder launchCookie = null;
|
||||||
|
if (itemInfo instanceof ItemInfo) {
|
||||||
|
launchCookie = mLauncher.getLaunchCookie((ItemInfo) itemInfo);
|
||||||
|
activityOptions.options.setLaunchCookie(launchCookie);
|
||||||
|
}
|
||||||
if (Utilities.ATLEAST_S && !pendingIntent.isActivity()) {
|
if (Utilities.ATLEAST_S && !pendingIntent.isActivity()) {
|
||||||
// In the event this pending intent eventually launches an activity, i.e. a trampoline,
|
// In the event this pending intent eventually launches an activity, i.e. a trampoline,
|
||||||
// use the Quickstep transition animation.
|
// use the Quickstep transition animation.
|
||||||
@@ -65,17 +72,14 @@ class QuickstepInteractionHandler implements RemoteViews.InteractionHandler {
|
|||||||
ActivityTaskManager.getService()
|
ActivityTaskManager.getService()
|
||||||
.registerRemoteAnimationForNextActivityStart(
|
.registerRemoteAnimationForNextActivityStart(
|
||||||
pendingIntent.getCreatorPackage(),
|
pendingIntent.getCreatorPackage(),
|
||||||
activityOptions.options.getRemoteAnimationAdapter());
|
activityOptions.options.getRemoteAnimationAdapter(),
|
||||||
|
launchCookie);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activityOptions.options.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
activityOptions.options.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_EMPTY);
|
activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_EMPTY);
|
||||||
Object itemInfo = hostView.getTag();
|
|
||||||
if (itemInfo instanceof ItemInfo) {
|
|
||||||
mLauncher.addLaunchCookie((ItemInfo) itemInfo, activityOptions.options);
|
|
||||||
}
|
|
||||||
options = Pair.create(options.first, activityOptions.options);
|
options = Pair.create(options.first, activityOptions.options);
|
||||||
if (pendingIntent.isActivity()) {
|
if (pendingIntent.isActivity()) {
|
||||||
logAppLaunch(itemInfo);
|
logAppLaunch(itemInfo);
|
||||||
|
|||||||
Reference in New Issue
Block a user