Get Tile#intent through getter
Bug: 77600770 Test: robotests Change-Id: I17d3556f833e6a9610fe34f382534bd90bb0499f
This commit is contained in:
@@ -723,7 +723,8 @@ public class SettingsActivity extends SettingsBaseActivity
|
||||
for (DashboardCategory category : categories) {
|
||||
final int tileCount = category.getTilesCount();
|
||||
for (int i = 0; i < tileCount; i++) {
|
||||
final ComponentName component = category.getTile(i).intent.getComponent();
|
||||
final ComponentName component = category.getTile(i)
|
||||
.getIntent().getComponent();
|
||||
final String name = component.getClassName();
|
||||
final boolean isEnabledForRestricted = ArrayUtils.contains(
|
||||
SettingsGateway.SETTINGS_FOR_RESTRICTED, name);
|
||||
|
@@ -22,6 +22,9 @@ import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
@@ -33,9 +36,6 @@ import com.android.settingslib.drawer.Tile;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
public class AccountDetailDashboardFragment extends DashboardFragment {
|
||||
|
||||
private static final String TAG = "AccountDetailDashboard";
|
||||
@@ -131,8 +131,8 @@ public class AccountDetailDashboardFragment extends DashboardFragment {
|
||||
return false;
|
||||
}
|
||||
final boolean display = mAccountType.equals(metadata.getString(METADATA_IA_ACCOUNT));
|
||||
if (display && tile.intent != null) {
|
||||
tile.intent.putExtra(EXTRA_ACCOUNT_NAME, mAccount.name);
|
||||
if (display) {
|
||||
tile.getIntent().putExtra(EXTRA_ACCOUNT_NAME, mAccount.name);
|
||||
}
|
||||
return display;
|
||||
}
|
||||
|
@@ -98,7 +98,7 @@ public class CategoryManager {
|
||||
DashboardCategory category = mCategories.get(i);
|
||||
for (int j = 0; j < category.getTilesCount(); j++) {
|
||||
Tile tile = category.getTile(j);
|
||||
if (tileBlacklist.contains(tile.intent.getComponent())) {
|
||||
if (tileBlacklist.contains(tile.getIntent().getComponent())) {
|
||||
category.removeTile(j--);
|
||||
}
|
||||
}
|
||||
@@ -205,10 +205,7 @@ public class CategoryManager {
|
||||
final Set<ComponentName> components = new ArraySet<>();
|
||||
for (int i = count - 1; i >= 0; i--) {
|
||||
final Tile tile = category.getTile(i);
|
||||
if (tile.intent == null) {
|
||||
continue;
|
||||
}
|
||||
final ComponentName tileComponent = tile.intent.getComponent();
|
||||
final ComponentName tileComponent = tile.getIntent().getComponent();
|
||||
if (components.contains(tileComponent)) {
|
||||
category.removeTile(i);
|
||||
} else {
|
||||
|
@@ -333,7 +333,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
}
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.e(TAG, "Failed to set background color for " + tile.intent.getPackage());
|
||||
Log.e(TAG, "Failed to set background color for " + tile.getPackageName());
|
||||
}
|
||||
mCache.updateIcon(tileIcon, icon);
|
||||
}
|
||||
|
@@ -117,14 +117,14 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
|
||||
@Override
|
||||
public String getDashboardKeyForTile(Tile tile) {
|
||||
if (tile == null || tile.intent == null) {
|
||||
if (tile == null) {
|
||||
return null;
|
||||
}
|
||||
if (!TextUtils.isEmpty(tile.key)) {
|
||||
return tile.key;
|
||||
}
|
||||
final StringBuilder sb = new StringBuilder(DASHBOARD_TILE_PREF_KEY_PREFIX);
|
||||
final ComponentName component = tile.intent.getComponent();
|
||||
final ComponentName component = tile.getIntent().getComponent();
|
||||
sb.append(component.getClassName());
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -157,8 +157,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
}
|
||||
if (!TextUtils.isEmpty(clsName)) {
|
||||
pref.setFragment(clsName);
|
||||
} else if (tile.intent != null) {
|
||||
final Intent intent = new Intent(tile.intent);
|
||||
} else {
|
||||
final Intent intent = new Intent(tile.getIntent());
|
||||
intent.putExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY,
|
||||
sourceMetricsCategory);
|
||||
if (action != null) {
|
||||
@@ -178,11 +178,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
order = -tile.priority;
|
||||
}
|
||||
if (order != null) {
|
||||
boolean shouldSkipBaseOrderOffset = false;
|
||||
if (tile.intent != null) {
|
||||
shouldSkipBaseOrderOffset = TextUtils.equals(
|
||||
skipOffsetPackageName, tile.intent.getComponent().getPackageName());
|
||||
}
|
||||
boolean shouldSkipBaseOrderOffset = TextUtils.equals(
|
||||
skipOffsetPackageName, tile.getIntent().getComponent().getPackageName());
|
||||
if (shouldSkipBaseOrderOffset || baseOrder == Preference.DEFAULT_ORDER) {
|
||||
pref.setOrder(order);
|
||||
} else {
|
||||
@@ -204,11 +201,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
mContext.startActivity(intent);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tile.intent == null) {
|
||||
return;
|
||||
}
|
||||
final Intent intent = new Intent(tile.intent)
|
||||
final Intent intent = new Intent(tile.getIntent())
|
||||
.putExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY,
|
||||
MetricsEvent.DASHBOARD_SUMMARY)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
@@ -244,14 +237,12 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
} else if (tile.getMetaData() != null
|
||||
&& tile.getMetaData().containsKey(META_DATA_PREFERENCE_ICON_URI)) {
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
final Intent intent = tile.getIntent();
|
||||
String packageName = null;
|
||||
if (tile.intent != null) {
|
||||
Intent intent = tile.intent;
|
||||
if (!TextUtils.isEmpty(intent.getPackage())) {
|
||||
packageName = intent.getPackage();
|
||||
} else if (intent.getComponent() != null) {
|
||||
packageName = intent.getComponent().getPackageName();
|
||||
}
|
||||
if (!TextUtils.isEmpty(intent.getPackage())) {
|
||||
packageName = intent.getPackage();
|
||||
} else if (intent.getComponent() != null) {
|
||||
packageName = intent.getComponent().getPackageName();
|
||||
}
|
||||
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
||||
final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_ICON_URI);
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.dashboard;
|
||||
import android.app.Activity;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -155,19 +156,20 @@ public class SummaryLoader {
|
||||
}
|
||||
|
||||
private SummaryProvider getSummaryProvider(Tile tile) {
|
||||
if (!mActivity.getPackageName().equals(tile.intent.getComponent().getPackageName())) {
|
||||
if (!mActivity.getPackageName().equals(tile.getPackageName())) {
|
||||
// Not within Settings, can't load Summary directly.
|
||||
// TODO: Load summary indirectly.
|
||||
return null;
|
||||
}
|
||||
final Bundle metaData = tile.getMetaData();
|
||||
final Intent intent = tile.getIntent();
|
||||
if (metaData == null) {
|
||||
if (DEBUG) Log.d(TAG, "No metadata specified for " + tile.intent.getComponent());
|
||||
Log.d(TAG, "No metadata specified for " + intent.getComponent());
|
||||
return null;
|
||||
}
|
||||
String clsName = metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
|
||||
final String clsName = metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
|
||||
if (clsName == null) {
|
||||
if (DEBUG) Log.d(TAG, "No fragment specified for " + tile.intent.getComponent());
|
||||
Log.d(TAG, "No fragment specified for " + intent.getComponent());
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
@@ -193,15 +195,12 @@ public class SummaryLoader {
|
||||
* operations are asynchronous.
|
||||
*/
|
||||
public void registerReceiver(final BroadcastReceiver receiver, final IntentFilter filter) {
|
||||
mActivity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!mListening) {
|
||||
return;
|
||||
}
|
||||
mReceivers.add(receiver);
|
||||
mActivity.registerReceiver(receiver, filter);
|
||||
mActivity.runOnUiThread(() -> {
|
||||
if (!mListening) {
|
||||
return;
|
||||
}
|
||||
mReceivers.add(receiver);
|
||||
mActivity.registerReceiver(receiver, filter);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -242,7 +241,7 @@ public class SummaryLoader {
|
||||
SummaryProvider provider = getSummaryProvider(tile);
|
||||
if (provider != null) {
|
||||
if (DEBUG) Log.d(TAG, "Creating " + tile);
|
||||
mSummaryProviderMap.put(provider, tile.intent.getComponent());
|
||||
mSummaryProviderMap.put(provider, tile.getIntent().getComponent());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,7 +253,7 @@ public class SummaryLoader {
|
||||
final int tileCount = tiles.size();
|
||||
for (int j = 0; j < tileCount; j++) {
|
||||
final Tile tile = tiles.get(j);
|
||||
if (component.equals(tile.intent.getComponent())) {
|
||||
if (component.equals(tile.getIntent().getComponent())) {
|
||||
return tile;
|
||||
}
|
||||
}
|
||||
|
@@ -71,8 +71,9 @@ public class ProfileSelectDialog extends DialogFragment implements OnClickListen
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
UserHandle user = mSelectedTile.userHandle.get(which);
|
||||
// Show menu on top level items.
|
||||
mSelectedTile.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
getActivity().startActivityAsUser(mSelectedTile.intent, user);
|
||||
final Intent intent = mSelectedTile.getIntent();
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
getActivity().startActivityAsUser(intent, user);
|
||||
}
|
||||
|
||||
public static void updateUserHandlesIfNeeded(Context context, Tile tile) {
|
||||
|
Reference in New Issue
Block a user