Show/hide back button for 2nd page
By design, we want to show/hide back button for 2nd layer page when it's in two pane mode. Test: Manual test Bug: 219000314 Change-Id: I14d8d7ee08280d5ce80c0b59e1e91d077f0b6d09
This commit is contained in:
@@ -43,11 +43,11 @@ public class SubSettingLauncher {
|
||||
}
|
||||
mContext = context;
|
||||
mLaunchRequest = new LaunchRequest();
|
||||
mLaunchRequest.transitionType = TransitionType.TRANSITION_SHARED_AXIS;
|
||||
mLaunchRequest.mTransitionType = TransitionType.TRANSITION_SHARED_AXIS;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setDestination(String fragmentName) {
|
||||
mLaunchRequest.destinationName = fragmentName;
|
||||
mLaunchRequest.mDestinationName = fragmentName;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -67,9 +67,9 @@ public class SubSettingLauncher {
|
||||
* @param titleResId res id of string, will use package name to resolve
|
||||
*/
|
||||
public SubSettingLauncher setTitleRes(String titlePackageName, @StringRes int titleResId) {
|
||||
mLaunchRequest.titleResPackageName = titlePackageName;
|
||||
mLaunchRequest.titleResId = titleResId;
|
||||
mLaunchRequest.title = null;
|
||||
mLaunchRequest.mTitleResPackageName = titlePackageName;
|
||||
mLaunchRequest.mTitleResId = titleResId;
|
||||
mLaunchRequest.mTitle = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -82,22 +82,22 @@ public class SubSettingLauncher {
|
||||
* @param title text title
|
||||
*/
|
||||
public SubSettingLauncher setTitleText(CharSequence title) {
|
||||
mLaunchRequest.title = title;
|
||||
mLaunchRequest.mTitle = title;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setArguments(Bundle arguments) {
|
||||
mLaunchRequest.arguments = arguments;
|
||||
mLaunchRequest.mArguments = arguments;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setExtras(Bundle extras) {
|
||||
mLaunchRequest.extras = extras;
|
||||
mLaunchRequest.mExtras = extras;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setSourceMetricsCategory(int sourceMetricsCategory) {
|
||||
mLaunchRequest.sourceMetricsCategory = sourceMetricsCategory;
|
||||
mLaunchRequest.mSourceMetricsCategory = sourceMetricsCategory;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -108,17 +108,23 @@ public class SubSettingLauncher {
|
||||
}
|
||||
|
||||
public SubSettingLauncher addFlags(int flags) {
|
||||
mLaunchRequest.flags |= flags;
|
||||
mLaunchRequest.mFlags |= flags;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setUserHandle(UserHandle userHandle) {
|
||||
mLaunchRequest.userHandle = userHandle;
|
||||
mLaunchRequest.mUserHandle = userHandle;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SubSettingLauncher setTransitionType(int transitionType) {
|
||||
mLaunchRequest.transitionType = transitionType;
|
||||
mLaunchRequest.mTransitionType = transitionType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Decide whether the next page is secondary layer page or not. */
|
||||
public SubSettingLauncher setIsSecondaryLayerPage(boolean isSecondaryLayerPage) {
|
||||
mLaunchRequest.mIsSecondaryLayerPage = isSecondaryLayerPage;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -131,14 +137,14 @@ public class SubSettingLauncher {
|
||||
|
||||
final Intent intent = toIntent();
|
||||
|
||||
boolean launchAsUser = mLaunchRequest.userHandle != null
|
||||
&& mLaunchRequest.userHandle.getIdentifier() != UserHandle.myUserId();
|
||||
boolean launchAsUser = mLaunchRequest.mUserHandle != null
|
||||
&& mLaunchRequest.mUserHandle.getIdentifier() != UserHandle.myUserId();
|
||||
boolean launchForResult = mLaunchRequest.mResultListener != null;
|
||||
if (launchAsUser && launchForResult) {
|
||||
launchForResultAsUser(intent, mLaunchRequest.userHandle, mLaunchRequest.mResultListener,
|
||||
mLaunchRequest.mRequestCode);
|
||||
launchForResultAsUser(intent, mLaunchRequest.mUserHandle,
|
||||
mLaunchRequest.mResultListener, mLaunchRequest.mRequestCode);
|
||||
} else if (launchAsUser && !launchForResult) {
|
||||
launchAsUser(intent, mLaunchRequest.userHandle);
|
||||
launchAsUser(intent, mLaunchRequest.mUserHandle);
|
||||
} else if (!launchAsUser && launchForResult) {
|
||||
launchForResult(mLaunchRequest.mResultListener, intent, mLaunchRequest.mRequestCode);
|
||||
} else {
|
||||
@@ -150,26 +156,28 @@ public class SubSettingLauncher {
|
||||
final Intent intent = new Intent(Intent.ACTION_MAIN);
|
||||
copyExtras(intent);
|
||||
intent.setClass(mContext, SubSettings.class);
|
||||
if (TextUtils.isEmpty(mLaunchRequest.destinationName)) {
|
||||
if (TextUtils.isEmpty(mLaunchRequest.mDestinationName)) {
|
||||
throw new IllegalArgumentException("Destination fragment must be set");
|
||||
}
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, mLaunchRequest.destinationName);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, mLaunchRequest.mDestinationName);
|
||||
|
||||
if (mLaunchRequest.sourceMetricsCategory < 0) {
|
||||
if (mLaunchRequest.mSourceMetricsCategory < 0) {
|
||||
throw new IllegalArgumentException("Source metrics category must be set");
|
||||
}
|
||||
intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
|
||||
mLaunchRequest.sourceMetricsCategory);
|
||||
mLaunchRequest.mSourceMetricsCategory);
|
||||
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, mLaunchRequest.arguments);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, mLaunchRequest.mArguments);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME,
|
||||
mLaunchRequest.titleResPackageName);
|
||||
mLaunchRequest.mTitleResPackageName);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID,
|
||||
mLaunchRequest.titleResId);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, mLaunchRequest.title);
|
||||
intent.addFlags(mLaunchRequest.flags);
|
||||
mLaunchRequest.mTitleResId);
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, mLaunchRequest.mTitle);
|
||||
intent.addFlags(mLaunchRequest.mFlags);
|
||||
intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
|
||||
mLaunchRequest.transitionType);
|
||||
mLaunchRequest.mTransitionType);
|
||||
intent.putExtra(SettingsActivity.EXTRA_IS_SECONDARY_LAYER_PAGE,
|
||||
mLaunchRequest.mIsSecondaryLayerPage);
|
||||
|
||||
return intent;
|
||||
}
|
||||
@@ -196,8 +204,8 @@ public class SubSettingLauncher {
|
||||
}
|
||||
|
||||
private void copyExtras(Intent intent) {
|
||||
if (mLaunchRequest.extras != null) {
|
||||
intent.replaceExtras(mLaunchRequest.extras);
|
||||
if (mLaunchRequest.mExtras != null) {
|
||||
intent.replaceExtras(mLaunchRequest.mExtras);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,17 +213,18 @@ public class SubSettingLauncher {
|
||||
* Simple container that has information about how to launch a subsetting.
|
||||
*/
|
||||
static class LaunchRequest {
|
||||
String destinationName;
|
||||
int titleResId;
|
||||
String titleResPackageName;
|
||||
CharSequence title;
|
||||
int sourceMetricsCategory = -100;
|
||||
int flags;
|
||||
String mDestinationName;
|
||||
int mTitleResId;
|
||||
String mTitleResPackageName;
|
||||
CharSequence mTitle;
|
||||
int mSourceMetricsCategory = -100;
|
||||
int mFlags;
|
||||
Fragment mResultListener;
|
||||
int mRequestCode;
|
||||
UserHandle userHandle;
|
||||
int transitionType;
|
||||
Bundle arguments;
|
||||
Bundle extras;
|
||||
UserHandle mUserHandle;
|
||||
int mTransitionType;
|
||||
Bundle mArguments;
|
||||
Bundle mExtras;
|
||||
boolean mIsSecondaryLayerPage;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user