Fix work tab app doesn't launch correct user intent

- Pass user.getIndentifier() to intent

Fixes: 147357696
Test: 1. go to Settings -> Storage -> Music&Audio
      2. switch to work tab
      3. tab "Audio files"
      4. should display work profile files

Change-Id: I0d2883c45eb7b883adbaf034c0a49c5e52ba82f6
This commit is contained in:
Raff Tsai
2020-01-11 09:11:29 +08:00
parent a8e8b776ad
commit 4536fae5b7
4 changed files with 11 additions and 7 deletions

View File

@@ -88,10 +88,10 @@ import com.android.settings.Settings.WriteSettingsActivity;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.AppStateManageExternalStorageBridge;
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState; import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
import com.android.settings.applications.AppStateBaseBridge; import com.android.settings.applications.AppStateBaseBridge;
import com.android.settings.applications.AppStateInstallAppsBridge; import com.android.settings.applications.AppStateInstallAppsBridge;
import com.android.settings.applications.AppStateManageExternalStorageBridge;
import com.android.settings.applications.AppStateNotificationBridge; import com.android.settings.applications.AppStateNotificationBridge;
import com.android.settings.applications.AppStateNotificationBridge.NotificationsSentState; import com.android.settings.applications.AppStateNotificationBridge.NotificationsSentState;
import com.android.settings.applications.AppStateOverlayBridge; import com.android.settings.applications.AppStateOverlayBridge;
@@ -101,10 +101,10 @@ import com.android.settings.applications.AppStateUsageBridge.UsageState;
import com.android.settings.applications.AppStateWriteSettingsBridge; import com.android.settings.applications.AppStateWriteSettingsBridge;
import com.android.settings.applications.AppStorageSettings; import com.android.settings.applications.AppStorageSettings;
import com.android.settings.applications.UsageAccessDetails; import com.android.settings.applications.UsageAccessDetails;
import com.android.settings.applications.appinfo.ManageExternalStorageDetails;
import com.android.settings.applications.appinfo.AppInfoDashboardFragment; import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
import com.android.settings.applications.appinfo.DrawOverlayDetails; import com.android.settings.applications.appinfo.DrawOverlayDetails;
import com.android.settings.applications.appinfo.ExternalSourcesDetails; import com.android.settings.applications.appinfo.ExternalSourcesDetails;
import com.android.settings.applications.appinfo.ManageExternalStorageDetails;
import com.android.settings.applications.appinfo.WriteSettingsDetails; import com.android.settings.applications.appinfo.WriteSettingsDetails;
import com.android.settings.core.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
@@ -262,6 +262,7 @@ public class ManageApplications extends InstrumentedFragment
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setHasOptionsMenu(true); setHasOptionsMenu(true);
final Activity activity = getActivity(); final Activity activity = getActivity();
mUserManager = activity.getSystemService(UserManager.class);
mApplicationsState = ApplicationsState.getInstance(activity.getApplication()); mApplicationsState = ApplicationsState.getInstance(activity.getApplication());
Intent intent = activity.getIntent(); Intent intent = activity.getIntent();
@@ -321,7 +322,6 @@ public class ManageApplications extends InstrumentedFragment
mListType = LIST_TYPE_NOTIFICATION; mListType = LIST_TYPE_NOTIFICATION;
mUsageStatsManager = IUsageStatsManager.Stub.asInterface( mUsageStatsManager = IUsageStatsManager.Stub.asInterface(
ServiceManager.getService(Context.USAGE_STATS_SERVICE)); ServiceManager.getService(Context.USAGE_STATS_SERVICE));
mUserManager = UserManager.get(getContext());
mNotificationBackend = new NotificationBackend(); mNotificationBackend = new NotificationBackend();
mSortOrder = R.id.sort_order_recent_notification; mSortOrder = R.id.sort_order_recent_notification;
screenTitle = R.string.app_notifications_title; screenTitle = R.string.app_notifications_title;
@@ -337,7 +337,11 @@ public class ManageApplications extends InstrumentedFragment
== ProfileSelectFragment.ProfileType.PERSONAL : false; == ProfileSelectFragment.ProfileType.PERSONAL : false;
mIsWorkOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE) mIsWorkOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
== ProfileSelectFragment.ProfileType.WORK : false; == ProfileSelectFragment.ProfileType.WORK : false;
mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : NO_USER_SPECIFIED; mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId();
if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) {
mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
}
mExpandSearch = activity.getIntent().getBooleanExtra(EXTRA_EXPAND_SEARCH_VIEW, false); mExpandSearch = activity.getIntent().getBooleanExtra(EXTRA_EXPAND_SEARCH_VIEW, false);
if (savedInstanceState != null) { if (savedInstanceState != null) {

View File

@@ -84,7 +84,7 @@ public class MusicViewHolderController implements FileViewHolderController {
DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "audio_root"), DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "audio_root"),
DocumentsContract.Root.MIME_TYPE_ITEM); DocumentsContract.Root.MIME_TYPE_ITEM);
intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(Intent.EXTRA_USER_ID, mUser); intent.putExtra(Intent.EXTRA_USER_ID, mUser.getIdentifier());
Utils.launchIntent(fragment, intent); Utils.launchIntent(fragment, intent);
} }
} }

View File

@@ -83,6 +83,7 @@ public class PhotosViewHolderController implements FileViewHolderController {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
intent.setType(IMAGE_MIME_TYPE); intent.setType(IMAGE_MIME_TYPE);
intent.putExtra(Intent.EXTRA_FROM_STORAGE, true); intent.putExtra(Intent.EXTRA_FROM_STORAGE, true);
intent.putExtra(Intent.EXTRA_USER_ID, mUser.getIdentifier());
Utils.launchIntent(fragment, intent); Utils.launchIntent(fragment, intent);
} }
} }

View File

@@ -439,10 +439,9 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
private Bundle getWorkAnnotatedBundle(int additionalCapacity) { private Bundle getWorkAnnotatedBundle(int additionalCapacity) {
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE)) { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE)) {
final Bundle args = new Bundle(2 + additionalCapacity); final Bundle args = new Bundle(1 + additionalCapacity);
args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB,
mIsWorkProfile ? WORK_TAB : PERSONAL_TAB); mIsWorkProfile ? WORK_TAB : PERSONAL_TAB);
args.putInt(ManageApplications.EXTRA_WORK_ID, mUserId);
return args; return args;
} else { } else {
final Bundle args = new Bundle(2 + additionalCapacity); final Bundle args = new Bundle(2 + additionalCapacity);