Refactor Utils.startWithFragment to SubSettingLauncher

- Use the new launcher in AccountTypePrefernce for now. Will migrate the
  rest in follow up CLs.

Change-Id: I67aa49f54b39ecea4ecfdc32ccbd827d21fc79b8
Bug: 73250851
Test: robotest
This commit is contained in:
Fan Zhang
2018-02-15 13:56:56 -08:00
parent 49c8080a50
commit 2ecef333e9
5 changed files with 248 additions and 58 deletions

View File

@@ -28,11 +28,13 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.widget.AppPreference;
public class AccountTypePreference extends AppPreference implements OnPreferenceClickListener {
/**
* Title of the tile that is shown to the user.
*
* @attr ref android.R.styleable#PreferenceHeader_title
*/
private final CharSequence mTitle;
@@ -56,6 +58,7 @@ public class AccountTypePreference extends AppPreference implements OnPreference
/**
* Full class name of the fragment to display when this tile is
* selected.
*
* @attr ref android.R.styleable#PreferenceHeader_fragment
*/
private final String mFragment;
@@ -92,19 +95,21 @@ public class AccountTypePreference extends AppPreference implements OnPreference
public boolean onPreferenceClick(Preference preference) {
if (mFragment != null) {
UserManager userManager =
(UserManager) getContext().getSystemService(Context.USER_SERVICE);
(UserManager) getContext().getSystemService(Context.USER_SERVICE);
UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER);
if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), userManager,
user.getIdentifier())) {
user.getIdentifier())) {
return true;
} else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(),
user.getIdentifier())) {
user.getIdentifier())) {
return true;
}
Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
mTitleResId, null /* title */,false /* isShortCut */, mMetricsCategory,
0 /* flag */);
new SubSettingLauncher(getContext())
.setDestination(mFragment)
.setArguments(mFragmentArguments)
.setTitle(mTitleResPackageName, mTitleResId)
.setSourceMetricsCategory(mMetricsCategory)
.launch();
return true;
}
return false;