Merge "Removing explicit target SDK for launcher" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d5b3a0a099
@@ -20,7 +20,6 @@
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.launcher3">
|
||||
<uses-sdk android:targetSdkVersion="33" android:minSdkVersion="26"/>
|
||||
<!--
|
||||
Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml.
|
||||
Refer comments around specific entries on how to extend individual components.
|
||||
|
||||
@@ -20,7 +20,10 @@ import static android.app.PendingIntent.FLAG_MUTABLE;
|
||||
import static android.app.PendingIntent.FLAG_ONE_SHOT;
|
||||
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
|
||||
|
||||
import static com.android.launcher3.Utilities.allowBGLaunch;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.PendingIntent.CanceledException;
|
||||
import android.content.Context;
|
||||
@@ -91,9 +94,10 @@ public class StartActivityParams implements Parcelable {
|
||||
}
|
||||
|
||||
public void deliverResult(Context context, int resultCode, Intent data) {
|
||||
ActivityOptions options = allowBGLaunch(ActivityOptions.makeBasic());
|
||||
try {
|
||||
if (mPICallback != null) {
|
||||
mPICallback.send(context, resultCode, data);
|
||||
mPICallback.send(context, resultCode, data, null, null, null, options.toBundle());
|
||||
}
|
||||
} catch (CanceledException e) {
|
||||
Log.e(TAG, "Unable to send back result", e);
|
||||
|
||||
@@ -579,6 +579,8 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
Executors.MAIN_EXECUTOR.getHandler(), null,
|
||||
elapsedRealTime -> callbacks.executeAllAndDestroy());
|
||||
options.setSplashScreenStyle(splashScreenStyle);
|
||||
options.setPendingIntentBackgroundActivityStartMode(
|
||||
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
|
||||
return new ActivityOptionsWrapper(options, callbacks);
|
||||
}
|
||||
|
||||
|
||||
@@ -1105,6 +1105,8 @@ public class QuickstepLauncher extends Launcher {
|
||||
activityOptions.options.setLaunchDisplayId(
|
||||
(v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
|
||||
: Display.DEFAULT_DISPLAY);
|
||||
activityOptions.options.setPendingIntentBackgroundActivityStartMode(
|
||||
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
|
||||
addLaunchCookie(item, activityOptions.options);
|
||||
return activityOptions;
|
||||
}
|
||||
@@ -1117,6 +1119,8 @@ public class QuickstepLauncher extends Launcher {
|
||||
Executors.MAIN_EXECUTOR.getHandler(), null,
|
||||
elapsedRealTime -> callbacks.executeAllAndDestroy());
|
||||
options.setSplashScreenStyle(splashScreenStyle);
|
||||
options.setPendingIntentBackgroundActivityStartMode(
|
||||
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
|
||||
return new ActivityOptionsWrapper(options, callbacks);
|
||||
}
|
||||
|
||||
|
||||
@@ -275,6 +275,8 @@ public final class RecentsActivity extends StatefulActivity<RecentsState> {
|
||||
activityOptions.options.setLaunchDisplayId(
|
||||
(v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
|
||||
: Display.DEFAULT_DISPLAY);
|
||||
activityOptions.options.setPendingIntentBackgroundActivityStartMode(
|
||||
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
|
||||
mHandler.postDelayed(mAnimationStartTimeoutRunnable, RECENTS_ANIMATION_TIMEOUT);
|
||||
return activityOptions;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.launcher3;
|
||||
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_DEVICE_POLICY_RESOURCE_UPDATED;
|
||||
import static android.content.Context.RECEIVER_EXPORTED;
|
||||
|
||||
import static com.android.launcher3.LauncherPrefs.ICON_STATE;
|
||||
import static com.android.launcher3.LauncherPrefs.THEMED_ICONS;
|
||||
@@ -26,6 +27,7 @@ import static com.android.launcher3.util.SettingsCache.NOTIFICATION_BADGING_URI;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.content.pm.LauncherApps;
|
||||
@@ -38,7 +40,6 @@ import androidx.annotation.GuardedBy;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.graphics.IconShape;
|
||||
import com.android.launcher3.icons.IconCache;
|
||||
import com.android.launcher3.icons.IconProvider;
|
||||
@@ -112,8 +113,9 @@ public class LauncherAppState implements SafeCloseable {
|
||||
new SimpleBroadcastReceiver(mModel::onBroadcastIntent);
|
||||
modelChangeReceiver.register(mContext, Intent.ACTION_LOCALE_CHANGED,
|
||||
ACTION_DEVICE_POLICY_RESOURCE_UPDATED);
|
||||
if (FeatureFlags.IS_STUDIO_BUILD) {
|
||||
modelChangeReceiver.register(mContext, ACTION_FORCE_ROLOAD);
|
||||
if (BuildConfig.IS_STUDIO_BUILD) {
|
||||
mContext.registerReceiver(modelChangeReceiver, new IntentFilter(ACTION_FORCE_ROLOAD),
|
||||
RECEIVER_EXPORTED);
|
||||
}
|
||||
mOnTerminateCallback.add(() -> mContext.unregisterReceiver(modelChangeReceiver));
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MA
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.Person;
|
||||
import android.app.WallpaperManager;
|
||||
import android.content.Context;
|
||||
@@ -560,6 +561,17 @@ public final class Utilities {
|
||||
handler.sendMessage(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to allow background activity launch for the provided activity options
|
||||
*/
|
||||
public static ActivityOptions allowBGLaunch(ActivityOptions options) {
|
||||
if (ATLEAST_U) {
|
||||
options.setPendingIntentBackgroundActivityStartMode(
|
||||
ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the full drawable for info without any flattening or pre-processing.
|
||||
*
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.launcher3.notification;
|
||||
|
||||
import static com.android.launcher3.AbstractFloatingView.TYPE_ACTION_POPUP;
|
||||
import static com.android.launcher3.AbstractFloatingView.TYPE_TASKBAR_ALL_APPS;
|
||||
import static com.android.launcher3.Utilities.allowBGLaunch;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NOTIFICATION_LAUNCH_TAP;
|
||||
|
||||
import android.app.ActivityOptions;
|
||||
@@ -26,7 +27,6 @@ import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.os.Bundle;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.view.View;
|
||||
|
||||
@@ -103,10 +103,10 @@ public class NotificationInfo implements View.OnClickListener {
|
||||
return;
|
||||
}
|
||||
final ActivityContext context = ActivityContext.lookupContext(view.getContext());
|
||||
Bundle activityOptions = ActivityOptions.makeClipRevealAnimation(
|
||||
view, 0, 0, view.getWidth(), view.getHeight()).toBundle();
|
||||
ActivityOptions options = allowBGLaunch(ActivityOptions.makeClipRevealAnimation(
|
||||
view, 0, 0, view.getWidth(), view.getHeight()));
|
||||
try {
|
||||
intent.send(null, 0, null, null, null, null, activityOptions);
|
||||
intent.send(null, 0, null, null, null, null, options.toBundle());
|
||||
context.getStatsLogManager().logger().withItemInfo(mItemInfo)
|
||||
.log(LAUNCHER_NOTIFICATION_LAUNCH_TAP);
|
||||
} catch (PendingIntent.CanceledException e) {
|
||||
|
||||
@@ -16,8 +16,11 @@
|
||||
|
||||
package com.android.launcher3.pm;
|
||||
|
||||
import static com.android.launcher3.Utilities.allowBGLaunch;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityOptions;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -138,8 +141,10 @@ public abstract class ShortcutConfigActivityInfo implements ComponentWithLabelAn
|
||||
}
|
||||
IntentSender is = activity.getSystemService(LauncherApps.class)
|
||||
.getShortcutConfigActivityIntent(mInfo);
|
||||
ActivityOptions options = allowBGLaunch(ActivityOptions.makeBasic());
|
||||
try {
|
||||
activity.startIntentSenderForResult(is, requestCode, null, 0, 0, 0);
|
||||
activity.startIntentSenderForResult(is, requestCode, null, 0, 0, 0,
|
||||
options.toBundle());
|
||||
return true;
|
||||
} catch (IntentSender.SendIntentException e) {
|
||||
Toast.makeText(activity, R.string.activity_not_found, Toast.LENGTH_SHORT).show();
|
||||
|
||||
@@ -16,10 +16,12 @@
|
||||
|
||||
package com.android.launcher3.popup;
|
||||
|
||||
import static com.android.launcher3.Utilities.allowBGLaunch;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SYSTEM_SHORTCUT_PAUSE_TAP;
|
||||
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.RemoteAction;
|
||||
import android.content.Context;
|
||||
@@ -84,6 +86,8 @@ public class RemoteActionShortcut extends SystemShortcut<BaseDraggingActivity> {
|
||||
final WeakReference<BaseDraggingActivity> weakTarget = new WeakReference<>(mTarget);
|
||||
final String actionIdentity = mAction.getTitle() + ", "
|
||||
+ mItemInfo.getTargetComponent().getPackageName();
|
||||
|
||||
ActivityOptions options = allowBGLaunch(ActivityOptions.makeBasic());
|
||||
try {
|
||||
if (DEBUG) Log.d(TAG, "Sending action: " + actionIdentity);
|
||||
mAction.getActionIntent().send(
|
||||
@@ -103,7 +107,9 @@ public class RemoteActionShortcut extends SystemShortcut<BaseDraggingActivity> {
|
||||
}
|
||||
}
|
||||
},
|
||||
MAIN_EXECUTOR.getHandler());
|
||||
MAIN_EXECUTOR.getHandler(),
|
||||
null,
|
||||
options.toBundle());
|
||||
} catch (PendingIntent.CanceledException e) {
|
||||
Log.e(TAG, "Remote action canceled: " + actionIdentity, e);
|
||||
Toast.makeText(mTarget, mTarget.getString(
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.launcher3.views;
|
||||
import static android.window.SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR;
|
||||
|
||||
import static com.android.launcher3.LauncherSettings.Animation.DEFAULT_NO_ICON;
|
||||
import static com.android.launcher3.Utilities.allowBGLaunch;
|
||||
import static com.android.launcher3.logging.KeyboardStateManager.KeyboardState.HIDE;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_KEYBOARD_CLOSED;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_APP_LAUNCH_PENDING_INTENT;
|
||||
@@ -38,7 +39,6 @@ import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.Process;
|
||||
import android.os.StrictMode;
|
||||
import android.os.UserHandle;
|
||||
import android.util.Log;
|
||||
import android.view.Display;
|
||||
@@ -414,8 +414,7 @@ public interface ActivityContext {
|
||||
}
|
||||
}
|
||||
ActivityOptions options =
|
||||
ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
|
||||
|
||||
allowBGLaunch(ActivityOptions.makeClipRevealAnimation(v, left, top, width, height));
|
||||
options.setLaunchDisplayId(
|
||||
(v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
|
||||
: Display.DEFAULT_DISPLAY);
|
||||
@@ -427,7 +426,7 @@ public interface ActivityContext {
|
||||
* Creates a default activity option and we do not want association with any launcher element.
|
||||
*/
|
||||
default ActivityOptionsWrapper makeDefaultActivityOptions(int splashScreenStyle) {
|
||||
ActivityOptions options = ActivityOptions.makeBasic();
|
||||
ActivityOptions options = allowBGLaunch(ActivityOptions.makeBasic());
|
||||
if (Utilities.ATLEAST_T) {
|
||||
options.setSplashScreenStyle(splashScreenStyle);
|
||||
}
|
||||
|
||||
@@ -275,9 +275,15 @@ public class LauncherWidgetHolder {
|
||||
protected Bundle getConfigurationActivityOptions(@NonNull BaseDraggingActivity activity,
|
||||
int widgetId) {
|
||||
LauncherAppWidgetHostView view = mViews.get(widgetId);
|
||||
if (view == null) return null;
|
||||
if (view == null) {
|
||||
return activity.makeDefaultActivityOptions(
|
||||
-1 /* SPLASH_SCREEN_STYLE_UNDEFINED */).toBundle();
|
||||
}
|
||||
Object tag = view.getTag();
|
||||
if (!(tag instanceof ItemInfo)) return null;
|
||||
if (!(tag instanceof ItemInfo)) {
|
||||
return activity.makeDefaultActivityOptions(
|
||||
-1 /* SPLASH_SCREEN_STYLE_UNDEFINED */).toBundle();
|
||||
}
|
||||
Bundle bundle = activity.getActivityLaunchOptions(view, (ItemInfo) tag).toBundle();
|
||||
bundle.putInt(KEY_SPLASH_SCREEN_STYLE, SPLASH_SCREEN_STYLE_EMPTY);
|
||||
return bundle;
|
||||
|
||||
Reference in New Issue
Block a user