Loading packages/SettingsLib/src/com/android/settingslib/drawer/DashboardCategory.java +2 −2 Original line number Diff line number Diff line Loading @@ -96,8 +96,8 @@ public class DashboardCategory implements Parcelable { public synchronized void sortTiles(String skipPackageName) { // Sort mTiles based on [priority, package within priority] Collections.sort(mTiles, (tile1, tile2) -> { final String package1 = tile1.intent.getComponent().getPackageName(); final String package2 = tile2.intent.getComponent().getPackageName(); final String package1 = tile1.getPackageName(); final String package2 = tile2.getPackageName(); final int packageCompare = CASE_INSENSITIVE_ORDER.compare(package1, package2); // First sort by priority final int priorityCompare = tile2.priority - tile1.priority; Loading packages/SettingsLib/src/com/android/settingslib/drawer/Tile.java +35 −36 Original line number Diff line number Diff line Loading @@ -59,36 +59,31 @@ public class Tile implements Parcelable { */ public CharSequence summary; /** * Intent to launch when the preference is selected. */ public Intent intent; /** * Optional list of user handles which the intent should be launched on. */ public ArrayList<UserHandle> userHandle = new ArrayList<>(); private String mCategory; /** * Priority of the intent filter that created this tile, used for display ordering. */ public int priority; /** * The metaData from the activity that defines this tile. */ private Bundle mMetaData; /** * Optional key to use for this tile. */ public String key; /** * The metaData from the activity that defines this tile. */ private final Bundle mMetaData; private final String mActivityPackage; private final String mActivityName; private final Intent mIntent; private ActivityInfo mActivityInfo; private String mCategory; public Tile(ActivityInfo activityInfo, String category) { mActivityInfo = activityInfo; Loading @@ -96,6 +91,23 @@ public class Tile implements Parcelable { mActivityName = mActivityInfo.name; mMetaData = activityInfo.metaData; mCategory = category; mIntent = new Intent().setClassName(mActivityPackage, mActivityName); } Tile(Parcel in) { mActivityPackage = in.readString(); mActivityName = in.readString(); mIntent = new Intent().setClassName(mActivityPackage, mActivityName); title = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); summary = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); final int N = in.readInt(); for (int i = 0; i < N; i++) { userHandle.add(UserHandle.CREATOR.createFromParcel(in)); } mCategory = in.readString(); priority = in.readInt(); mMetaData = in.readBundle(); key = in.readString(); } @Override Loading @@ -109,12 +121,6 @@ public class Tile implements Parcelable { dest.writeString(mActivityName); TextUtils.writeToParcel(title, dest, flags); TextUtils.writeToParcel(summary, dest, flags); if (intent != null) { dest.writeByte((byte) 1); intent.writeToParcel(dest, flags); } else { dest.writeByte((byte) 0); } final int N = userHandle.size(); dest.writeInt(N); for (int i = 0; i < N; i++) { Loading @@ -126,6 +132,17 @@ public class Tile implements Parcelable { dest.writeString(key); } public String getPackageName() { return mActivityPackage; } /** * Intent to launch when the preference is selected. */ public Intent getIntent() { return mIntent; } /** * Category in which the tile should be placed. */ Loading Loading @@ -190,24 +207,6 @@ public class Tile implements Parcelable { && !TextUtils.equals(pkgName, activityInfo.packageName); } Tile(Parcel in) { mActivityPackage = in.readString(); mActivityName = in.readString(); title = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); summary = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); if (in.readByte() != 0) { intent = Intent.CREATOR.createFromParcel(in); } final int N = in.readInt(); for (int i = 0; i < N; i++) { userHandle.add(UserHandle.CREATOR.createFromParcel(in)); } mCategory = in.readString(); priority = in.readInt(); mMetaData = in.readBundle(); key = in.readString(); } private ActivityInfo getActivityInfo(Context context) { if (mActivityInfo == null) { final PackageManager pm = context.getApplicationContext().getPackageManager(); Loading packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java +0 −6 Original line number Diff line number Diff line Loading @@ -303,8 +303,6 @@ public class TileUtils { Tile tile = addedCache.get(key); if (tile == null) { tile = new Tile(activityInfo, categoryKey); tile.intent = new Intent().setClassName( activityInfo.packageName, activityInfo.name); tile.priority = usePriority ? resolved.priority : 0; updateTileData(context, tile, activityInfo, activityInfo.applicationInfo, pm); if (DEBUG) Log.d(LOG_TAG, "Adding tile " + tile.title); Loading Loading @@ -368,12 +366,8 @@ public class TileUtils { // Set title and summary for the preference tile.title = title; tile.summary = summary; // Replace the intent with this specific activity tile.intent = new Intent().setClassName(activityInfo.packageName, activityInfo.name); // Suggest a key for this tile tile.key = keyHint; return true; } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ public class TileTest { public void setUp() { mActivityInfo = new ActivityInfo(); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); mActivityInfo.name = "abc"; mActivityInfo.icon = R.drawable.ic_plus; mActivityInfo.metaData = new Bundle(); mTile = new Tile(mActivityInfo, "category"); Loading Loading @@ -60,7 +61,8 @@ public class TileTest { @Test public void getIcon_noContextOrMetadata_returnNull() { final Tile tile = new Tile(new ActivityInfo(), "category"); mActivityInfo.metaData = null; final Tile tile = new Tile(mActivityInfo, "category"); assertThat(tile.getIcon(null)).isNull(); assertThat(tile.getIcon(RuntimeEnvironment.application)).isNull(); } Loading Loading @@ -113,6 +115,7 @@ public class TileTest { final ActivityInfo activityInfo = new ActivityInfo(); activityInfo.packageName = "blah"; activityInfo.name = "abc"; final Tile tile2 = new Tile(activityInfo, "category"); assertThat(tile2.isIconTintable(RuntimeEnvironment.application)).isTrue(); Loading Loading
packages/SettingsLib/src/com/android/settingslib/drawer/DashboardCategory.java +2 −2 Original line number Diff line number Diff line Loading @@ -96,8 +96,8 @@ public class DashboardCategory implements Parcelable { public synchronized void sortTiles(String skipPackageName) { // Sort mTiles based on [priority, package within priority] Collections.sort(mTiles, (tile1, tile2) -> { final String package1 = tile1.intent.getComponent().getPackageName(); final String package2 = tile2.intent.getComponent().getPackageName(); final String package1 = tile1.getPackageName(); final String package2 = tile2.getPackageName(); final int packageCompare = CASE_INSENSITIVE_ORDER.compare(package1, package2); // First sort by priority final int priorityCompare = tile2.priority - tile1.priority; Loading
packages/SettingsLib/src/com/android/settingslib/drawer/Tile.java +35 −36 Original line number Diff line number Diff line Loading @@ -59,36 +59,31 @@ public class Tile implements Parcelable { */ public CharSequence summary; /** * Intent to launch when the preference is selected. */ public Intent intent; /** * Optional list of user handles which the intent should be launched on. */ public ArrayList<UserHandle> userHandle = new ArrayList<>(); private String mCategory; /** * Priority of the intent filter that created this tile, used for display ordering. */ public int priority; /** * The metaData from the activity that defines this tile. */ private Bundle mMetaData; /** * Optional key to use for this tile. */ public String key; /** * The metaData from the activity that defines this tile. */ private final Bundle mMetaData; private final String mActivityPackage; private final String mActivityName; private final Intent mIntent; private ActivityInfo mActivityInfo; private String mCategory; public Tile(ActivityInfo activityInfo, String category) { mActivityInfo = activityInfo; Loading @@ -96,6 +91,23 @@ public class Tile implements Parcelable { mActivityName = mActivityInfo.name; mMetaData = activityInfo.metaData; mCategory = category; mIntent = new Intent().setClassName(mActivityPackage, mActivityName); } Tile(Parcel in) { mActivityPackage = in.readString(); mActivityName = in.readString(); mIntent = new Intent().setClassName(mActivityPackage, mActivityName); title = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); summary = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); final int N = in.readInt(); for (int i = 0; i < N; i++) { userHandle.add(UserHandle.CREATOR.createFromParcel(in)); } mCategory = in.readString(); priority = in.readInt(); mMetaData = in.readBundle(); key = in.readString(); } @Override Loading @@ -109,12 +121,6 @@ public class Tile implements Parcelable { dest.writeString(mActivityName); TextUtils.writeToParcel(title, dest, flags); TextUtils.writeToParcel(summary, dest, flags); if (intent != null) { dest.writeByte((byte) 1); intent.writeToParcel(dest, flags); } else { dest.writeByte((byte) 0); } final int N = userHandle.size(); dest.writeInt(N); for (int i = 0; i < N; i++) { Loading @@ -126,6 +132,17 @@ public class Tile implements Parcelable { dest.writeString(key); } public String getPackageName() { return mActivityPackage; } /** * Intent to launch when the preference is selected. */ public Intent getIntent() { return mIntent; } /** * Category in which the tile should be placed. */ Loading Loading @@ -190,24 +207,6 @@ public class Tile implements Parcelable { && !TextUtils.equals(pkgName, activityInfo.packageName); } Tile(Parcel in) { mActivityPackage = in.readString(); mActivityName = in.readString(); title = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); summary = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); if (in.readByte() != 0) { intent = Intent.CREATOR.createFromParcel(in); } final int N = in.readInt(); for (int i = 0; i < N; i++) { userHandle.add(UserHandle.CREATOR.createFromParcel(in)); } mCategory = in.readString(); priority = in.readInt(); mMetaData = in.readBundle(); key = in.readString(); } private ActivityInfo getActivityInfo(Context context) { if (mActivityInfo == null) { final PackageManager pm = context.getApplicationContext().getPackageManager(); Loading
packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java +0 −6 Original line number Diff line number Diff line Loading @@ -303,8 +303,6 @@ public class TileUtils { Tile tile = addedCache.get(key); if (tile == null) { tile = new Tile(activityInfo, categoryKey); tile.intent = new Intent().setClassName( activityInfo.packageName, activityInfo.name); tile.priority = usePriority ? resolved.priority : 0; updateTileData(context, tile, activityInfo, activityInfo.applicationInfo, pm); if (DEBUG) Log.d(LOG_TAG, "Adding tile " + tile.title); Loading Loading @@ -368,12 +366,8 @@ public class TileUtils { // Set title and summary for the preference tile.title = title; tile.summary = summary; // Replace the intent with this specific activity tile.intent = new Intent().setClassName(activityInfo.packageName, activityInfo.name); // Suggest a key for this tile tile.key = keyHint; return true; } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ public class TileTest { public void setUp() { mActivityInfo = new ActivityInfo(); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); mActivityInfo.name = "abc"; mActivityInfo.icon = R.drawable.ic_plus; mActivityInfo.metaData = new Bundle(); mTile = new Tile(mActivityInfo, "category"); Loading Loading @@ -60,7 +61,8 @@ public class TileTest { @Test public void getIcon_noContextOrMetadata_returnNull() { final Tile tile = new Tile(new ActivityInfo(), "category"); mActivityInfo.metaData = null; final Tile tile = new Tile(mActivityInfo, "category"); assertThat(tile.getIcon(null)).isNull(); assertThat(tile.getIcon(RuntimeEnvironment.application)).isNull(); } Loading Loading @@ -113,6 +115,7 @@ public class TileTest { final ActivityInfo activityInfo = new ActivityInfo(); activityInfo.packageName = "blah"; activityInfo.name = "abc"; final Tile tile2 = new Tile(activityInfo, "category"); assertThat(tile2.isIconTintable(RuntimeEnvironment.application)).isTrue(); Loading