Merge "Get rid of direct usage of Utils.onBuildStartFragmentIntent"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c26ea56fe4
@@ -388,39 +388,6 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
.getUsers().size() > 1;
|
.getUsers().size() > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Build an Intent to launch a new activity showing the selected fragment.
|
|
||||||
* The implementation constructs an Intent that re-launches the current activity with the
|
|
||||||
* appropriate arguments to display the fragment.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param context The Context.
|
|
||||||
* @param fragmentName The name of the fragment to display.
|
|
||||||
* @param args Optional arguments to supply to the fragment.
|
|
||||||
* @param titleResPackageName Optional package name for the resource id of the title.
|
|
||||||
* @param titleResId Optional title resource id to show for this item.
|
|
||||||
* @param title Optional title to show for this item.
|
|
||||||
* @param isShortcut tell if this is a Launcher Shortcut or not
|
|
||||||
* @param sourceMetricsCategory The context (source) from which an action is performed
|
|
||||||
* @return Returns an Intent that can be launched to display the given
|
|
||||||
* fragment.
|
|
||||||
*/
|
|
||||||
public static Intent onBuildStartFragmentIntent(Context context, String fragmentName,
|
|
||||||
Bundle args, String titleResPackageName, int titleResId, CharSequence title,
|
|
||||||
boolean isShortcut, int sourceMetricsCategory) {
|
|
||||||
Intent intent = new Intent(Intent.ACTION_MAIN);
|
|
||||||
intent.setClass(context, SubSettings.class);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME,
|
|
||||||
titleResPackageName);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, titleResId);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, title);
|
|
||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT, isShortcut);
|
|
||||||
intent.putExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY, sourceMetricsCategory);
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the managed profile of the current user or {@code null} if none is found or a profile
|
* Returns the managed profile of the current user or {@code null} if none is found or a profile
|
||||||
* exists but it is disabled.
|
* exists but it is disabled.
|
||||||
|
@@ -43,8 +43,8 @@ import android.util.Log;
|
|||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.applications.manageapplications.ManageApplications;
|
import com.android.settings.applications.manageapplications.ManageApplications;
|
||||||
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
||||||
@@ -218,20 +218,18 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
|
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
|
||||||
String pkg, int uid, Fragment source, int request, int sourceMetricsCategory) {
|
String pkg, int uid, Fragment source, int request, int sourceMetricsCategory) {
|
||||||
startAppInfoFragment(fragment, titleRes, pkg, uid, source.getActivity(), request,
|
final Bundle args = new Bundle();
|
||||||
sourceMetricsCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
|
|
||||||
String pkg, int uid, Activity source, int request, int sourceMetricsCategory) {
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkg);
|
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkg);
|
||||||
args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid);
|
args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid);
|
||||||
|
|
||||||
Intent intent = Utils.onBuildStartFragmentIntent(source, fragment.getName(),
|
new SubSettingLauncher(source.getContext())
|
||||||
args, null, titleRes, null, false, sourceMetricsCategory);
|
.setDestination(fragment.getName())
|
||||||
source.startActivityForResultAsUser(intent, request,
|
.setSourceMetricsCategory(sourceMetricsCategory)
|
||||||
new UserHandle(UserHandle.getUserId(uid)));
|
.setTitle(titleRes)
|
||||||
|
.setArguments(args)
|
||||||
|
.setUserHandle(new UserHandle(UserHandle.getUserId(uid)))
|
||||||
|
.setResultListener(source, request)
|
||||||
|
.launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class MyAlertDialogFragment extends InstrumentedDialogFragment {
|
public static class MyAlertDialogFragment extends InstrumentedDialogFragment {
|
||||||
|
@@ -101,6 +101,25 @@ public class SubSettingLauncher {
|
|||||||
"This launcher has already been executed. Do not reuse");
|
"This launcher has already been executed. Do not reuse");
|
||||||
}
|
}
|
||||||
mLaunched = true;
|
mLaunched = true;
|
||||||
|
|
||||||
|
final Intent intent = toIntent();
|
||||||
|
|
||||||
|
boolean launchAsUser = mLaunchRequest.userHandle != null
|
||||||
|
&& mLaunchRequest.userHandle.getIdentifier() != UserHandle.myUserId();
|
||||||
|
boolean launchForResult = mLaunchRequest.mResultListener != null;
|
||||||
|
if (launchAsUser && launchForResult) {
|
||||||
|
launchForResultAsUser(intent, mLaunchRequest.userHandle, mLaunchRequest.mResultListener,
|
||||||
|
mLaunchRequest.mRequestCode);
|
||||||
|
} else if (launchAsUser && !launchForResult) {
|
||||||
|
launchAsUser(intent, mLaunchRequest.userHandle);
|
||||||
|
} else if (!launchAsUser && launchForResult) {
|
||||||
|
launchForResult(mLaunchRequest.mResultListener, intent, mLaunchRequest.mRequestCode);
|
||||||
|
} else {
|
||||||
|
launch(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Intent toIntent() {
|
||||||
final Intent intent = new Intent(Intent.ACTION_MAIN);
|
final Intent intent = new Intent(Intent.ACTION_MAIN);
|
||||||
intent.setClass(mContext, SubSettings.class);
|
intent.setClass(mContext, SubSettings.class);
|
||||||
if (TextUtils.isEmpty(mLaunchRequest.destinationName)) {
|
if (TextUtils.isEmpty(mLaunchRequest.destinationName)) {
|
||||||
@@ -123,15 +142,7 @@ public class SubSettingLauncher {
|
|||||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT,
|
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT,
|
||||||
mLaunchRequest.isShortCut);
|
mLaunchRequest.isShortCut);
|
||||||
intent.addFlags(mLaunchRequest.flags);
|
intent.addFlags(mLaunchRequest.flags);
|
||||||
|
return intent;
|
||||||
if (mLaunchRequest.userHandle != null
|
|
||||||
&& mLaunchRequest.userHandle.getIdentifier() != UserHandle.myUserId()) {
|
|
||||||
launchAsUser(mContext, intent, mLaunchRequest.userHandle);
|
|
||||||
} else if (mLaunchRequest.mResultListener != null) {
|
|
||||||
launchForResult(mLaunchRequest.mResultListener, intent, mLaunchRequest.mRequestCode);
|
|
||||||
} else {
|
|
||||||
launch(intent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -139,14 +150,21 @@ public class SubSettingLauncher {
|
|||||||
mContext.startActivity(intent);
|
mContext.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void launchForResult(Fragment listener, Intent intent, int requestCode) {
|
@VisibleForTesting
|
||||||
listener.getActivity().startActivityForResult(intent, requestCode);
|
void launchAsUser(Intent intent, UserHandle userHandle) {
|
||||||
}
|
|
||||||
|
|
||||||
private static void launchAsUser(Context context, Intent intent, UserHandle userHandle) {
|
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||||
context.startActivityAsUser(intent, userHandle);
|
mContext.startActivityAsUser(intent, userHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void launchForResultAsUser(Intent intent, UserHandle userHandle,
|
||||||
|
Fragment resultListener, int requestCode) {
|
||||||
|
resultListener.getActivity().startActivityForResultAsUser(intent, requestCode, userHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void launchForResult(Fragment listener, Intent intent, int requestCode) {
|
||||||
|
listener.getActivity().startActivityForResult(intent, requestCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -26,7 +26,7 @@ import android.util.AttributeSet;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.datausage.CellDataPreference.DataStateListener;
|
import com.android.settings.datausage.CellDataPreference.DataStateListener;
|
||||||
|
|
||||||
public class BillingCyclePreference extends Preference implements TemplatePreference {
|
public class BillingCyclePreference extends Preference implements TemplatePreference {
|
||||||
@@ -80,8 +80,12 @@ public class BillingCyclePreference extends Preference implements TemplatePrefer
|
|||||||
public Intent getIntent() {
|
public Intent getIntent() {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
|
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
|
||||||
return Utils.onBuildStartFragmentIntent(getContext(), BillingCycleSettings.class.getName(),
|
return new SubSettingLauncher(getContext())
|
||||||
args, null, 0, getTitle(), false, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
|
.setDestination(BillingCycleSettings.class.getName())
|
||||||
|
.setArguments(args)
|
||||||
|
.setTitle(getTitle())
|
||||||
|
.setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN)
|
||||||
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private final DataStateListener mListener = new DataStateListener() {
|
private final DataStateListener mListener = new DataStateListener() {
|
||||||
|
@@ -23,10 +23,10 @@ import android.support.v4.content.res.TypedArrayUtils;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.text.format.Formatter;
|
import android.text.format.Formatter;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
|
||||||
import com.android.settingslib.net.DataUsageController;
|
import com.android.settingslib.net.DataUsageController;
|
||||||
|
|
||||||
public class DataUsagePreference extends Preference implements TemplatePreference {
|
public class DataUsagePreference extends Preference implements TemplatePreference {
|
||||||
@@ -38,7 +38,7 @@ public class DataUsagePreference extends Preference implements TemplatePreferenc
|
|||||||
public DataUsagePreference(Context context, AttributeSet attrs) {
|
public DataUsagePreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
final TypedArray a = context.obtainStyledAttributes(
|
final TypedArray a = context.obtainStyledAttributes(
|
||||||
attrs, new int[] { com.android.internal.R.attr.title },
|
attrs, new int[] {com.android.internal.R.attr.title},
|
||||||
TypedArrayUtils.getAttr(
|
TypedArrayUtils.getAttr(
|
||||||
context, android.support.v7.preference.R.attr.preferenceStyle,
|
context, android.support.v7.preference.R.attr.preferenceStyle,
|
||||||
android.R.attr.preferenceStyle), 0);
|
android.R.attr.preferenceStyle), 0);
|
||||||
@@ -60,16 +60,18 @@ public class DataUsagePreference extends Preference implements TemplatePreferenc
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Intent getIntent() {
|
public Intent getIntent() {
|
||||||
Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
|
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
|
||||||
args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
|
args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
|
||||||
|
final SubSettingLauncher launcher = new SubSettingLauncher(getContext())
|
||||||
|
.setArguments(args)
|
||||||
|
.setDestination(DataUsageList.class.getName())
|
||||||
|
.setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN);
|
||||||
if (mTitleRes > 0) {
|
if (mTitleRes > 0) {
|
||||||
return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(),
|
launcher.setTitle(mTitleRes);
|
||||||
args, getContext().getPackageName(), mTitleRes, null, false,
|
} else {
|
||||||
MetricsProto.MetricsEvent.VIEW_UNKNOWN);
|
launcher.setTitle(getTitle());
|
||||||
}
|
}
|
||||||
return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(), args,
|
return launcher.toIntent();
|
||||||
getContext().getPackageName(), 0, getTitle(), false,
|
|
||||||
MetricsProto.MetricsEvent.VIEW_UNKNOWN);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -484,9 +484,12 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
|
|||||||
args.putInt(
|
args.putInt(
|
||||||
ManageApplications.EXTRA_STORAGE_TYPE,
|
ManageApplications.EXTRA_STORAGE_TYPE,
|
||||||
ManageApplications.STORAGE_TYPE_LEGACY);
|
ManageApplications.STORAGE_TYPE_LEGACY);
|
||||||
intent = Utils.onBuildStartFragmentIntent(getActivity(),
|
intent = new SubSettingLauncher(getActivity())
|
||||||
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
|
.setDestination(ManageApplications.class.getName())
|
||||||
false, getMetricsCategory());
|
.setArguments(args)
|
||||||
|
.setTitle(R.string.apps_storage)
|
||||||
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
|
.toIntent();
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case R.string.storage_detail_images: {
|
case R.string.storage_detail_images: {
|
||||||
|
@@ -47,7 +47,6 @@ import android.widget.Toast;
|
|||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
import com.android.settings.dashboard.SummaryLoader;
|
import com.android.settings.dashboard.SummaryLoader;
|
||||||
@@ -232,10 +231,12 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
|||||||
mHasLaunchedPrivateVolumeSettings = true;
|
mHasLaunchedPrivateVolumeSettings = true;
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
|
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
|
||||||
Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
|
new SubSettingLauncher(getActivity())
|
||||||
StorageDashboardFragment.class.getName(), args, null,
|
.setDestination(StorageDashboardFragment.class.getName())
|
||||||
R.string.storage_settings, null, false, getMetricsCategory());
|
.setArguments(args)
|
||||||
getActivity().startActivity(intent);
|
.setTitle(R.string.storage_settings)
|
||||||
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
|
.launch();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,9 +35,9 @@ import android.util.SparseArray;
|
|||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.applications.manageapplications.ManageApplications;
|
import com.android.settings.applications.manageapplications.ManageApplications;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.deviceinfo.PrivateVolumeSettings.SystemInfoFragment;
|
import com.android.settings.deviceinfo.PrivateVolumeSettings.SystemInfoFragment;
|
||||||
import com.android.settings.deviceinfo.StorageItemPreference;
|
import com.android.settings.deviceinfo.StorageItemPreference;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
@@ -319,15 +319,12 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
|
|||||||
args.putInt(
|
args.putInt(
|
||||||
ManageApplications.EXTRA_STORAGE_TYPE,
|
ManageApplications.EXTRA_STORAGE_TYPE,
|
||||||
ManageApplications.STORAGE_TYPE_PHOTOS_VIDEOS);
|
ManageApplications.STORAGE_TYPE_PHOTOS_VIDEOS);
|
||||||
return Utils.onBuildStartFragmentIntent(
|
return new SubSettingLauncher(mContext)
|
||||||
mContext,
|
.setDestination(ManageApplications.class.getName())
|
||||||
ManageApplications.class.getName(),
|
.setTitle(R.string.storage_photos_videos)
|
||||||
args,
|
.setArguments(args)
|
||||||
null,
|
.setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
|
||||||
R.string.storage_photos_videos,
|
.toIntent();
|
||||||
null,
|
|
||||||
false,
|
|
||||||
mMetricsFeatureProvider.getMetricsCategory(mFragment));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getAudioIntent() {
|
private Intent getAudioIntent() {
|
||||||
@@ -341,46 +338,57 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
|
|||||||
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
||||||
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
||||||
args.putInt(ManageApplications.EXTRA_STORAGE_TYPE, ManageApplications.STORAGE_TYPE_MUSIC);
|
args.putInt(ManageApplications.EXTRA_STORAGE_TYPE, ManageApplications.STORAGE_TYPE_MUSIC);
|
||||||
return Utils.onBuildStartFragmentIntent(mContext,
|
return new SubSettingLauncher(mContext)
|
||||||
ManageApplications.class.getName(), args, null, R.string.storage_music_audio, null,
|
.setDestination(ManageApplications.class.getName())
|
||||||
false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
|
.setTitle(R.string.storage_music_audio)
|
||||||
|
.setArguments(args)
|
||||||
|
.setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
|
||||||
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getAppsIntent() {
|
private Intent getAppsIntent() {
|
||||||
if (mVolume == null) {
|
if (mVolume == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
final Bundle args = getWorkAnnotatedBundle(3);
|
||||||
Bundle args = getWorkAnnotatedBundle(3);
|
|
||||||
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
||||||
Settings.StorageUseActivity.class.getName());
|
Settings.StorageUseActivity.class.getName());
|
||||||
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
||||||
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
||||||
return Utils.onBuildStartFragmentIntent(mContext,
|
return new SubSettingLauncher(mContext)
|
||||||
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
|
.setDestination(ManageApplications.class.getName())
|
||||||
false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
|
.setTitle(R.string.apps_storage)
|
||||||
|
.setArguments(args)
|
||||||
|
.setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
|
||||||
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getGamesIntent() {
|
private Intent getGamesIntent() {
|
||||||
Bundle args = getWorkAnnotatedBundle(1);
|
final Bundle args = getWorkAnnotatedBundle(1);
|
||||||
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
||||||
Settings.GamesStorageActivity.class.getName());
|
Settings.GamesStorageActivity.class.getName());
|
||||||
return Utils.onBuildStartFragmentIntent(mContext,
|
return new SubSettingLauncher(mContext)
|
||||||
ManageApplications.class.getName(), args, null, R.string.game_storage_settings,
|
.setDestination(ManageApplications.class.getName())
|
||||||
null, false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
|
.setTitle(R.string.game_storage_settings)
|
||||||
|
.setArguments(args)
|
||||||
|
.setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
|
||||||
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getMoviesIntent() {
|
private Intent getMoviesIntent() {
|
||||||
Bundle args = getWorkAnnotatedBundle(1);
|
final Bundle args = getWorkAnnotatedBundle(1);
|
||||||
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
args.putString(ManageApplications.EXTRA_CLASSNAME,
|
||||||
Settings.MoviesStorageActivity.class.getName());
|
Settings.MoviesStorageActivity.class.getName());
|
||||||
return Utils.onBuildStartFragmentIntent(mContext,
|
return new SubSettingLauncher(mContext)
|
||||||
ManageApplications.class.getName(), args, null, R.string.storage_movies_tv,
|
.setDestination(ManageApplications.class.getName())
|
||||||
null, false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
|
.setTitle(R.string.storage_movies_tv)
|
||||||
|
.setArguments(args)
|
||||||
|
.setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
|
||||||
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bundle getWorkAnnotatedBundle(int additionalCapacity) {
|
private Bundle getWorkAnnotatedBundle(int additionalCapacity) {
|
||||||
Bundle args = new Bundle(2 + additionalCapacity);
|
final Bundle args = new Bundle(2 + additionalCapacity);
|
||||||
args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
|
args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
|
||||||
args.putInt(ManageApplications.EXTRA_WORK_ID, mUserId);
|
args.putInt(ManageApplications.EXTRA_WORK_ID, mUserId);
|
||||||
return args;
|
return args;
|
||||||
|
@@ -17,9 +17,7 @@
|
|||||||
package com.android.settings.deviceinfo.storage;
|
package com.android.settings.deviceinfo.storage;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.content.res.TypedArray;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.storage.VolumeInfo;
|
import android.os.storage.VolumeInfo;
|
||||||
@@ -31,14 +29,16 @@ import com.android.internal.logging.nano.MetricsProto;
|
|||||||
import com.android.internal.util.Preconditions;
|
import com.android.internal.util.Preconditions;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.deviceinfo.StorageItemPreference;
|
import com.android.settings.deviceinfo.StorageItemPreference;
|
||||||
import com.android.settings.deviceinfo.StorageProfileFragment;
|
import com.android.settings.deviceinfo.StorageProfileFragment;
|
||||||
import com.android.settings.wrapper.UserManagerWrapper;
|
import com.android.settings.wrapper.UserManagerWrapper;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
|
||||||
|
|
||||||
/** Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
|
/**
|
||||||
* user. */
|
* Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
|
||||||
|
* user.
|
||||||
|
*/
|
||||||
public class UserProfileController extends AbstractPreferenceController implements
|
public class UserProfileController extends AbstractPreferenceController implements
|
||||||
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
|
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
|
||||||
UserIconLoader.UserIconHandler {
|
UserIconLoader.UserIconHandler {
|
||||||
@@ -79,13 +79,16 @@ public class UserProfileController extends AbstractPreferenceController implemen
|
|||||||
@Override
|
@Override
|
||||||
public boolean handlePreferenceTreeClick(Preference preference) {
|
public boolean handlePreferenceTreeClick(Preference preference) {
|
||||||
if (preference != null && mStoragePreference == preference) {
|
if (preference != null && mStoragePreference == preference) {
|
||||||
Bundle args = new Bundle(2);
|
final Bundle args = new Bundle();
|
||||||
args.putInt(StorageProfileFragment.USER_ID_EXTRA, mUser.id);
|
args.putInt(StorageProfileFragment.USER_ID_EXTRA, mUser.id);
|
||||||
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
|
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
|
||||||
Intent intent = Utils.onBuildStartFragmentIntent(mContext,
|
|
||||||
StorageProfileFragment.class.getName(), args, null, 0,
|
new SubSettingLauncher(mContext)
|
||||||
mUser.name, false, MetricsProto.MetricsEvent.DEVICEINFO_STORAGE);
|
.setDestination(StorageProfileFragment.class.getName())
|
||||||
mContext.startActivity(intent);
|
.setArguments(args)
|
||||||
|
.setTitle(mUser.name)
|
||||||
|
.setSourceMetricsCategory(MetricsProto.MetricsEvent.DEVICEINFO_STORAGE)
|
||||||
|
.launch();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,8 +102,7 @@ public class UserProfileController extends AbstractPreferenceController implemen
|
|||||||
int userId = mUser.id;
|
int userId = mUser.id;
|
||||||
StorageAsyncLoader.AppsStorageResult result = stats.get(userId);
|
StorageAsyncLoader.AppsStorageResult result = stats.get(userId);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
setSize(
|
setSize(result.externalStats.totalBytes
|
||||||
result.externalStats.totalBytes
|
|
||||||
+ result.otherAppsSize
|
+ result.otherAppsSize
|
||||||
+ result.videoAppsSize
|
+ result.videoAppsSize
|
||||||
+ result.musicAppsSize
|
+ result.musicAppsSize
|
||||||
|
@@ -16,65 +16,42 @@
|
|||||||
|
|
||||||
package com.android.settings.notification;
|
package com.android.settings.notification;
|
||||||
|
|
||||||
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
|
|
||||||
import static android.app.NotificationManager.IMPORTANCE_LOW;
|
import static android.app.NotificationManager.IMPORTANCE_LOW;
|
||||||
import static android.app.NotificationManager.IMPORTANCE_NONE;
|
import static android.app.NotificationManager.IMPORTANCE_NONE;
|
||||||
import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.applications.AppInfoBase;
|
|
||||||
import com.android.settings.applications.LayoutPreference;
|
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
|
||||||
import com.android.settings.search.Indexable;
|
|
||||||
import com.android.settings.widget.MasterCheckBoxPreference;
|
|
||||||
import com.android.settings.widget.MasterSwitchPreference;
|
|
||||||
import com.android.settings.widget.SwitchBar;
|
|
||||||
import com.android.settings.wrapper.NotificationChannelGroupWrapper;
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
|
||||||
import com.android.settingslib.RestrictedSwitchPreference;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
import android.app.NotificationChannelGroup;
|
import android.app.NotificationChannelGroup;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.admin.DevicePolicyManager;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.pm.ApplicationInfo;
|
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.UserInfo;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
|
||||||
import android.provider.SearchIndexableResource;
|
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.service.notification.NotificationListenerService;
|
|
||||||
import android.support.v14.preference.SwitchPreference;
|
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.PreferenceGroup;
|
import android.support.v7.preference.PreferenceGroup;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.applications.AppInfoBase;
|
||||||
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.widget.MasterCheckBoxPreference;
|
||||||
|
import com.android.settings.wrapper.NotificationChannelGroupWrapper;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -268,11 +245,12 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
|
|||||||
channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
|
channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
|
||||||
channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
|
channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
|
||||||
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
|
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
|
||||||
Intent channelIntent = Utils.onBuildStartFragmentIntent(getActivity(),
|
channelPref.setIntent(new SubSettingLauncher(getActivity())
|
||||||
ChannelNotificationSettings.class.getName(),
|
.setDestination(ChannelNotificationSettings.class.getName())
|
||||||
channelArgs, null, R.string.notification_channel_title, null, false,
|
.setArguments(channelArgs)
|
||||||
getMetricsCategory());
|
.setTitle(R.string.notification_channel_title)
|
||||||
channelPref.setIntent(channelIntent);
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
|
.toIntent());
|
||||||
|
|
||||||
channelPref.setOnPreferenceChangeListener(
|
channelPref.setOnPreferenceChangeListener(
|
||||||
new Preference.OnPreferenceChangeListener() {
|
new Preference.OnPreferenceChangeListener() {
|
||||||
|
@@ -33,16 +33,13 @@ import android.util.ArrayMap;
|
|||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.IconDrawableFactory;
|
import android.util.IconDrawableFactory;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Switch;
|
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.applications.AppInfoBase;
|
import com.android.settings.applications.AppInfoBase;
|
||||||
import com.android.settings.applications.InstalledAppCounter;
|
import com.android.settings.applications.InstalledAppCounter;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.widget.AppPreference;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.widget.MasterSwitchPreference;
|
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -237,10 +234,13 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC
|
|||||||
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkgName);
|
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkgName);
|
||||||
args.putInt(AppInfoBase.ARG_PACKAGE_UID, appEntry.info.uid);
|
args.putInt(AppInfoBase.ARG_PACKAGE_UID, appEntry.info.uid);
|
||||||
|
|
||||||
pref.setIntent(Utils.onBuildStartFragmentIntent(mHost.getActivity(),
|
pref.setIntent(new SubSettingLauncher(mHost.getActivity())
|
||||||
AppNotificationSettings.class.getName(), args, null,
|
.setDestination(AppNotificationSettings.class.getName())
|
||||||
R.string.notifications_title, null, false,
|
.setTitle(R.string.notifications_title)
|
||||||
MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS));
|
.setArguments(args)
|
||||||
|
.setSourceMetricsCategory(
|
||||||
|
MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS)
|
||||||
|
.toIntent());
|
||||||
pref.setOnPreferenceChangeListener((preference, newValue) -> {
|
pref.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean blocked = !(Boolean) newValue;
|
boolean blocked = !(Boolean) newValue;
|
||||||
mNotificationBackend.setNotificationsEnabledForPackage(
|
mNotificationBackend.setNotificationsEnabledForPackage(
|
||||||
|
@@ -26,9 +26,9 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.Utils;
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -59,8 +59,12 @@ public class DatabaseIndexingUtils {
|
|||||||
String screenTitle, int sourceMetricsCategory) {
|
String screenTitle, int sourceMetricsCategory) {
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
|
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
|
||||||
final Intent searchDestination = Utils.onBuildStartFragmentIntent(context,
|
final Intent searchDestination = new SubSettingLauncher(context)
|
||||||
className, args, null, 0, screenTitle, false, sourceMetricsCategory);
|
.setDestination(className)
|
||||||
|
.setArguments(args)
|
||||||
|
.setTitle(screenTitle)
|
||||||
|
.setSourceMetricsCategory(sourceMetricsCategory)
|
||||||
|
.toIntent();
|
||||||
searchDestination.putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key)
|
searchDestination.putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key)
|
||||||
.setAction("com.android.settings.SEARCH_RESULT_TRAMPOLINE")
|
.setAction("com.android.settings.SEARCH_RESULT_TRAMPOLINE")
|
||||||
.setComponent(null);
|
.setComponent(null);
|
||||||
|
@@ -18,12 +18,18 @@ package com.android.settings.core;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.app.Fragment;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
@@ -34,6 +40,8 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
@@ -41,10 +49,16 @@ import org.robolectric.annotation.Config;
|
|||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
public class SubSettingLauncherTest {
|
public class SubSettingLauncherTest {
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Fragment mFragment;
|
||||||
|
@Mock
|
||||||
|
private Activity mActivity;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,4 +107,58 @@ public class SubSettingLauncherTest {
|
|||||||
assertThat(intent.getIntExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY, -1))
|
assertThat(intent.getIntExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY, -1))
|
||||||
.isEqualTo(123);
|
.isEqualTo(123);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void launch_hasRequestListener_shouldStartActivityForResult() {
|
||||||
|
final int requestCode = 123123;
|
||||||
|
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||||
|
|
||||||
|
final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
|
||||||
|
launcher.setTitle("123")
|
||||||
|
.setDestination(SubSettingLauncherTest.class.getName())
|
||||||
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
.setSourceMetricsCategory(123)
|
||||||
|
.setResultListener(mFragment, requestCode)
|
||||||
|
.launch();
|
||||||
|
|
||||||
|
verify(mActivity).startActivityForResult(any(Intent.class), eq(requestCode));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void launch_hasUserHandle_shouldStartActivityAsUser() {
|
||||||
|
final UserHandle userHandle = new UserHandle(1234);
|
||||||
|
|
||||||
|
final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
|
||||||
|
doNothing().when(launcher).launchAsUser(any(Intent.class), any(UserHandle.class));
|
||||||
|
|
||||||
|
launcher.setTitle("123")
|
||||||
|
.setDestination(SubSettingLauncherTest.class.getName())
|
||||||
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
.setSourceMetricsCategory(123)
|
||||||
|
.setUserHandle(userHandle)
|
||||||
|
.launch();
|
||||||
|
|
||||||
|
verify(launcher).launchAsUser(any(Intent.class), eq(userHandle));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void launch_hasUserHandleAndRequestCode_shouldStartActivityForResultAsUser() {
|
||||||
|
final int requestCode = 123123;
|
||||||
|
final UserHandle userHandle = new UserHandle(1234);
|
||||||
|
|
||||||
|
final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
|
||||||
|
doNothing().when(launcher).launchForResultAsUser(
|
||||||
|
any(Intent.class), any(UserHandle.class), any(Fragment.class), anyInt());
|
||||||
|
|
||||||
|
launcher.setTitle("123")
|
||||||
|
.setDestination(SubSettingLauncherTest.class.getName())
|
||||||
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
.setSourceMetricsCategory(123)
|
||||||
|
.setUserHandle(userHandle)
|
||||||
|
.setResultListener(mFragment, requestCode)
|
||||||
|
.launch();
|
||||||
|
|
||||||
|
verify(launcher).launchForResultAsUser(any(Intent.class), eq(userHandle), eq(mFragment),
|
||||||
|
eq(requestCode));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -270,7 +270,7 @@ public class EntityHeaderControllerTest {
|
|||||||
|
|
||||||
mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
|
mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
|
||||||
mController.setPackageName("123")
|
mController.setPackageName("123")
|
||||||
.setUid(UserHandle.USER_SYSTEM)
|
.setUid(123321)
|
||||||
.setHasAppInfoLink(true)
|
.setHasAppInfoLink(true)
|
||||||
.setButtonActions(
|
.setButtonActions(
|
||||||
EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
||||||
|
Reference in New Issue
Block a user