From 5ba48458e1ad66a8a84bc46842fe13d8d3d3b26b Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Sat, 8 Oct 2016 03:58:40 -0700 Subject: [PATCH] cmsdk: Change how parts are launched * Encode the part into the action and use an explicit intent instead of relying on extras. Change-Id: I4f035d6b839e9701e20a9b78dbe2a39757aad13e --- .../internal/cmparts/CMPartsPreference.java | 5 +---- .../org/cyanogenmod/internal/cmparts/PartInfo.java | 14 ++++++++++++++ .../cyanogenmod/internal/cmparts/PartsList.java | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/sdk/src/java/org/cyanogenmod/internal/cmparts/CMPartsPreference.java b/sdk/src/java/org/cyanogenmod/internal/cmparts/CMPartsPreference.java index 24cda812..f1e95d3c 100644 --- a/sdk/src/java/org/cyanogenmod/internal/cmparts/CMPartsPreference.java +++ b/sdk/src/java/org/cyanogenmod/internal/cmparts/CMPartsPreference.java @@ -23,7 +23,6 @@ import android.util.AttributeSet; import cyanogenmod.preference.SelfRemovingPreference; -import static org.cyanogenmod.internal.cmparts.PartsList.ACTION_PART; import static org.cyanogenmod.internal.cmparts.PartsList.ACTION_PART_CHANGED; import static org.cyanogenmod.internal.cmparts.PartsList.EXTRA_PART; import static org.cyanogenmod.internal.cmparts.PartsList.EXTRA_PART_KEY; @@ -46,9 +45,7 @@ public class CMPartsPreference extends SelfRemovingPreference { setAvailable(false); } - Intent i = new Intent(ACTION_PART); - i.putExtra(EXTRA_PART_KEY, mPart.getName()); - setIntent(i); + setIntent(mPart.getIntentForActivity()); update(); } diff --git a/sdk/src/java/org/cyanogenmod/internal/cmparts/PartInfo.java b/sdk/src/java/org/cyanogenmod/internal/cmparts/PartInfo.java index 6f009e46..76c71f22 100644 --- a/sdk/src/java/org/cyanogenmod/internal/cmparts/PartInfo.java +++ b/sdk/src/java/org/cyanogenmod/internal/cmparts/PartInfo.java @@ -15,6 +15,8 @@ */ package org.cyanogenmod.internal.cmparts; +import android.content.ComponentName; +import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; @@ -127,6 +129,18 @@ public class PartInfo implements Parcelable { parcelInfo.complete(); } + public String getAction() { + return PartsList.PARTS_ACTION_PREFIX + "." + mName; + } + + public Intent getIntentForActivity() { + Intent i = new Intent(getAction()); + ComponentName cn = new ComponentName(PartsList.CMPARTS_PACKAGE, + PartsList.CMPARTS_PACKAGE + ".PartsActivity"); + i.setComponent(cn); + return i; + } + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override diff --git a/sdk/src/java/org/cyanogenmod/internal/cmparts/PartsList.java b/sdk/src/java/org/cyanogenmod/internal/cmparts/PartsList.java index 62153143..bf468819 100644 --- a/sdk/src/java/org/cyanogenmod/internal/cmparts/PartsList.java +++ b/sdk/src/java/org/cyanogenmod/internal/cmparts/PartsList.java @@ -44,13 +44,13 @@ import static com.android.internal.R.styleable.Preference_title; public class PartsList { - public static final String ACTION_PART = "org.cyanogenmod.cmparts.PART"; public static final String ACTION_PART_CHANGED = "org.cyanogenmod.cmparts.PART_CHANGED"; public static final String EXTRA_PART = "part"; public static final String EXTRA_PART_KEY = "key"; public static final String CMPARTS_PACKAGE = "org.cyanogenmod.cmparts"; + public static final String PARTS_ACTION_PREFIX = CMPARTS_PACKAGE + ".parts"; private static final Map sParts = new ArrayMap();