diff --git a/src/com/android/launcher3/InfoDropTarget.java b/src/com/android/launcher3/InfoDropTarget.java index 289242f61e..e52fd765b9 100644 --- a/src/com/android/launcher3/InfoDropTarget.java +++ b/src/com/android/launcher3/InfoDropTarget.java @@ -70,7 +70,7 @@ public class InfoDropTarget extends UninstallDropTarget { Rect sourceBounds, Bundle opts) { if (info instanceof PromiseAppInfo) { PromiseAppInfo promiseAppInfo = (PromiseAppInfo) info; - context.startActivity(promiseAppInfo.getMarketIntent()); + context.startActivity(promiseAppInfo.getMarketIntent(context)); return null; } ComponentName componentName = null; diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 32342b29dd..bd52968ceb 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1739,7 +1739,7 @@ public class Launcher extends BaseActivity private void startMarketIntentForPackage(View v, String packageName) { ItemInfo item = (ItemInfo) v.getTag(); - Intent intent = PackageManagerHelper.getMarketIntent(packageName); + Intent intent = new PackageManagerHelper(v.getContext()).getMarketIntent(packageName); startActivitySafely(v, intent, item); } @@ -1804,7 +1804,7 @@ public class Launcher extends BaseActivity Intent intent; if (item instanceof PromiseAppInfo) { PromiseAppInfo promiseAppInfo = (PromiseAppInfo) item; - intent = promiseAppInfo.getMarketIntent(); + intent = promiseAppInfo.getMarketIntent(this); } else { intent = item.getIntent(); } diff --git a/src/com/android/launcher3/PromiseAppInfo.java b/src/com/android/launcher3/PromiseAppInfo.java index 07515d08aa..ea9f7527f5 100644 --- a/src/com/android/launcher3/PromiseAppInfo.java +++ b/src/com/android/launcher3/PromiseAppInfo.java @@ -16,6 +16,7 @@ package com.android.launcher3; +import android.content.Context; import android.content.Intent; import android.support.annotation.NonNull; @@ -46,7 +47,7 @@ public class PromiseAppInfo extends AppInfo { return shortcut; } - public Intent getMarketIntent() { - return PackageManagerHelper.getMarketIntent(componentName.getPackageName()); + public Intent getMarketIntent(Context context) { + return new PackageManagerHelper(context).getMarketIntent(componentName.getPackageName()); } } diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java index 05ae0213e9..d2bcd18521 100644 --- a/src/com/android/launcher3/popup/SystemShortcut.java +++ b/src/com/android/launcher3/popup/SystemShortcut.java @@ -115,8 +115,8 @@ public abstract class SystemShortcut extends ItemInfo { public View.OnClickListener createOnClickListener(Launcher launcher, ItemInfo itemInfo) { return view -> { - Intent intent = PackageManagerHelper.getMarketIntent(itemInfo - .getTargetComponent().getPackageName()); + Intent intent = new PackageManagerHelper(view.getContext()).getMarketIntent( + itemInfo.getTargetComponent().getPackageName()); launcher.startActivitySafely(view, intent, itemInfo); AbstractFloatingView.closeAllOpenViews(launcher); }; diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java index 13034dd9ec..81df153807 100644 --- a/src/com/android/launcher3/util/PackageManagerHelper.java +++ b/src/com/android/launcher3/util/PackageManagerHelper.java @@ -143,13 +143,15 @@ public class PackageManagerHelper { return false; } - public static Intent getMarketIntent(String packageName) { + public Intent getMarketIntent(String packageName) { return new Intent(Intent.ACTION_VIEW) .setData(new Uri.Builder() .scheme("market") .authority("details") .appendQueryParameter("id", packageName) - .build()); + .build()) + .putExtra(Intent.EXTRA_REFERRER, new Uri.Builder().scheme("android-app") + .authority(mContext.getPackageName()).build()); } /**