Fix back stack didn't perserved when Files Activity launched by Setting storage then back case.
Due to FilesActivity set "android:documentLaunchMode="intoExisting", it will create new task when launched from Storage Setting page. When select FilesActivity task from recents & press back key, it will not back to settings page. Using startActivityForResult to set task as source task can fix task separated case. Change-Id: I26362928261a1a9c0e485a486be493423d1fcf61 Fixes: 33117269 Test: Manual Test: atest StorageItemPreferenceControllerTest
This commit is contained in:
@@ -402,10 +402,14 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
|
||||
try {
|
||||
final int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, -1);
|
||||
|
||||
// b/33117269: Note that launchIntent may launch activity in different task which set
|
||||
// different launchMode (e.g. Files), using startActivityForesult to set task as
|
||||
// source task, and set requestCode as 0 means don't care about returnCode currently.
|
||||
if (userId == -1) {
|
||||
mFragment.startActivity(intent);
|
||||
mFragment.startActivityForResult(intent, 0 /* requestCode not used */);
|
||||
} else {
|
||||
mFragment.getActivity().startActivityAsUser(intent, new UserHandle(userId));
|
||||
mFragment.getActivity().startActivityForResultAsUser(intent,
|
||||
0 /* requestCode not used */, new UserHandle(userId));
|
||||
}
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.w(TAG, "No activity found for " + intent);
|
||||
|
Reference in New Issue
Block a user