Merge "Merge existing bundle with ActivityOptions" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-05-10 06:05:38 +00:00
committed by Android (Google) Code Review

View File

@@ -78,6 +78,10 @@ public abstract class SettingsTransitionActivity extends FragmentActivity {
super.startActivity(intent, options);
return;
}
if (options != null) {
super.startActivity(intent, getMergedBundleForTransition(options));
return;
}
super.startActivity(intent, getActivityOptionsBundle(toolbar));
}
@@ -110,6 +114,11 @@ public abstract class SettingsTransitionActivity extends FragmentActivity {
super.startActivityForResult(intent, requestCode, options);
return;
}
if (options != null) {
super.startActivityForResult(intent, requestCode,
getMergedBundleForTransition(options));
return;
}
super.startActivityForResult(intent, requestCode, getActivityOptionsBundle(toolbar));
}
@@ -133,4 +142,15 @@ public abstract class SettingsTransitionActivity extends FragmentActivity {
return ActivityOptions.makeSceneTransitionAnimation(this, toolbar,
"shared_element_view").toBundle();
}
private Bundle getMergedBundleForTransition(@NonNull Bundle options) {
final Toolbar toolbar = getToolbar();
final Bundle mergedBundle = new Bundle();
mergedBundle.putAll(options);
final Bundle activityOptionsBundle = getActivityOptionsBundle(toolbar);
if (activityOptionsBundle != null) {
mergedBundle.putAll(activityOptionsBundle);
}
return mergedBundle;
}
}