diff options
author | Tony Wickham <twickham@google.com> | 2017-05-03 11:17:13 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2017-05-03 11:17:13 -0700 |
commit | debc046b898c4a3e62e3eddd26c89a732dd99b8b (patch) | |
tree | 1f75365fc8cdd5b2546e7125111b118f05307bb0 /src/com/android/launcher3 | |
parent | 0bc04a984147869bf27ed4047c0951a061fcbd42 (diff) | |
parent | e3c59256794448c67e01333a9f5036559b1bd502 (diff) | |
download | android_packages_apps_Trebuchet-debc046b898c4a3e62e3eddd26c89a732dd99b8b.tar.gz android_packages_apps_Trebuchet-debc046b898c4a3e62e3eddd26c89a732dd99b8b.tar.bz2 android_packages_apps_Trebuchet-debc046b898c4a3e62e3eddd26c89a732dd99b8b.zip |
Merge commit 'e3c59256794448c67e01333a9f5036559b1bd502' into am-58d0617b-47f2-44b7-ac1f-c278ee055d1e
* commit 'e3c59256794448c67e01333a9f5036559b1bd502':
Use source bounds/activity options for App Info System Shortcut
Change-Id: Ic7e89e1f2de44198ab95308095b17447d27f0c0d
Diffstat (limited to 'src/com/android/launcher3')
5 files changed, 24 insertions, 8 deletions
diff --git a/src/com/android/launcher3/InfoDropTarget.java b/src/com/android/launcher3/InfoDropTarget.java index 7b3bded17..f088d1176 100644 --- a/src/com/android/launcher3/InfoDropTarget.java +++ b/src/com/android/launcher3/InfoDropTarget.java @@ -19,6 +19,8 @@ package com.android.launcher3; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; +import android.graphics.Rect; +import android.os.Bundle; import android.provider.Settings; import android.util.AttributeSet; import android.util.Log; @@ -58,12 +60,16 @@ public class InfoDropTarget extends UninstallDropTarget { */ public static boolean startDetailsActivityForInfo( ItemInfo info, Launcher launcher, DropTargetResultCallback callback) { + return startDetailsActivityForInfo(info, launcher, callback, null, null); + } + + public static boolean startDetailsActivityForInfo(ItemInfo info, Launcher launcher, + DropTargetResultCallback callback, Rect sourceBounds, Bundle opts) { if (info instanceof PromiseAppInfo) { PromiseAppInfo promiseAppInfo = (PromiseAppInfo) info; launcher.startActivity(promiseAppInfo.getMarketIntent()); return true; } - boolean result = false; ComponentName componentName = null; if (info instanceof AppInfo) { @@ -78,7 +84,7 @@ public class InfoDropTarget extends UninstallDropTarget { if (componentName != null) { try { LauncherAppsCompat.getInstance(launcher) - .showAppDetailsForProfile(componentName, info.user); + .showAppDetailsForProfile(componentName, info.user, sourceBounds, opts); result = true; } catch (SecurityException | ActivityNotFoundException e) { Toast.makeText(launcher, R.string.activity_not_found, Toast.LENGTH_SHORT).show(); diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index a61e05af1..6a0344f50 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -2682,7 +2682,7 @@ public class Launcher extends BaseActivity } @TargetApi(Build.VERSION_CODES.M) - private Bundle getActivityLaunchOptions(View v) { + public Bundle getActivityLaunchOptions(View v) { if (Utilities.ATLEAST_MARSHMALLOW) { int left = 0, top = 0; int width = v.getMeasuredWidth(), height = v.getMeasuredHeight(); @@ -2708,7 +2708,7 @@ public class Launcher extends BaseActivity return null; } - private Rect getViewBounds(View v) { + public Rect getViewBounds(View v) { int[] pos = new int[2]; v.getLocationOnScreen(pos); return new Rect(pos[0], pos[1], pos[0] + v.getWidth(), pos[1] + v.getHeight()); diff --git a/src/com/android/launcher3/compat/LauncherAppsCompat.java b/src/com/android/launcher3/compat/LauncherAppsCompat.java index 01d0e1784..472cfc9ec 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompat.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompat.java @@ -78,7 +78,8 @@ public abstract class LauncherAppsCompat { Rect sourceBounds, Bundle opts); public abstract ApplicationInfo getApplicationInfo( String packageName, int flags, UserHandle user); - public abstract void showAppDetailsForProfile(ComponentName component, UserHandle user); + public abstract void showAppDetailsForProfile(ComponentName component, UserHandle user, + Rect sourceBounds, Bundle opts); public abstract void addOnAppsChangedCallback(OnAppsChangedCallbackCompat listener); public abstract void removeOnAppsChangedCallback(OnAppsChangedCallbackCompat listener); public abstract boolean isPackageEnabledForProfile(String packageName, UserHandle user); @@ -142,4 +143,8 @@ public abstract class LauncherAppsCompat { return null; } } + + public void showAppDetailsForProfile(ComponentName component, UserHandle user) { + showAppDetailsForProfile(component, user, null, null); + } } diff --git a/src/com/android/launcher3/compat/LauncherAppsCompatVL.java b/src/com/android/launcher3/compat/LauncherAppsCompatVL.java index 58683db75..647c31593 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompatVL.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompatVL.java @@ -95,8 +95,9 @@ public class LauncherAppsCompatVL extends LauncherAppsCompat { } @Override - public void showAppDetailsForProfile(ComponentName component, UserHandle user) { - mLauncherApps.startAppDetailsActivity(component, user, null, null); + public void showAppDetailsForProfile(ComponentName component, UserHandle user, + Rect sourceBounds, Bundle opts) { + mLauncherApps.startAppDetailsActivity(component, user, sourceBounds, opts); } @Override diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java index 6747540eb..a52d1d49b 100644 --- a/src/com/android/launcher3/popup/SystemShortcut.java +++ b/src/com/android/launcher3/popup/SystemShortcut.java @@ -1,7 +1,9 @@ package com.android.launcher3.popup; import android.content.Context; +import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Bundle; import android.view.View; import com.android.launcher3.AbstractFloatingView; @@ -80,7 +82,9 @@ public abstract class SystemShortcut { return new View.OnClickListener() { @Override public void onClick(View view) { - InfoDropTarget.startDetailsActivityForInfo(itemInfo, launcher, null); + Rect sourceBounds = launcher.getViewBounds(view); + Bundle opts = launcher.getActivityLaunchOptions(view); + InfoDropTarget.startDetailsActivityForInfo(itemInfo, launcher, null, sourceBounds, opts); } }; } |