Fix Apps storage page to show apps for selected user only
Currently only the personal and managed profile filters for the respective profiles. And there's no filter to filter out the apps for the private profile. This cl adds that filter and sets it for the private profile user. Bug: 317159160 Test: manual Change-Id: Ia19171b1be73a061a598c2365c88e91ad2f8fec8
This commit is contained in:
@@ -76,7 +76,8 @@ public class AppStateClonedAppsBridge extends AppStateBaseBridge{
|
||||
protected void updateExtraInfo(AppEntry app, String pkg, int uid) {
|
||||
// Display package if allowlisted but not yet cloned.
|
||||
// Or if the app is present in clone profile alongwith being in allowlist.
|
||||
if (mAllowedApps.contains(pkg) && ((!mCloneProfileApps.contains(pkg) || (app.isCloned)))) {
|
||||
if (mAllowedApps.contains(pkg)
|
||||
&& ((!mCloneProfileApps.contains(pkg) || (app.isClonedProfile())))) {
|
||||
app.extraInfo = Boolean.TRUE;
|
||||
} else {
|
||||
app.extraInfo = Boolean.FALSE;
|
||||
|
@@ -231,7 +231,7 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
||||
void updateAppCloneWidget(Context context, View.OnClickListener onClickListener,
|
||||
AppEntry entry) {
|
||||
if (mAddIcon != null) {
|
||||
if (!entry.isCloned) {
|
||||
if (!entry.isClonedProfile()) {
|
||||
mAddIcon.setBackground(context.getDrawable(R.drawable.ic_add_24dp));
|
||||
} else {
|
||||
mAddIcon.setBackground(context.getDrawable(R.drawable.ic_trash_can));
|
||||
@@ -254,7 +254,7 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
||||
String packageName = entry.info.packageName;
|
||||
|
||||
if (mWidgetContainer != null) {
|
||||
if (!entry.isCloned) {
|
||||
if (!entry.isClonedProfile()) {
|
||||
metricsFeatureProvider.action(context,
|
||||
SettingsEnums.ACTION_CREATE_CLONE_APP);
|
||||
mAddIcon.setVisibility(View.INVISIBLE);
|
||||
@@ -285,7 +285,7 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder {
|
||||
}
|
||||
}.execute();
|
||||
|
||||
} else if (entry.isCloned) {
|
||||
} else if (entry.isClonedProfile()) {
|
||||
metricsFeatureProvider.action(context,
|
||||
SettingsEnums.ACTION_DELETE_CLONE_APP);
|
||||
cloneBackend.uninstallClonedApp(packageName, /*allUsers*/ false,
|
||||
|
@@ -295,6 +295,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
private String mVolumeUuid;
|
||||
private int mStorageType;
|
||||
private boolean mIsWorkOnly;
|
||||
private boolean mIsPrivateProfileOnly;
|
||||
private int mWorkUserId;
|
||||
private boolean mIsPersonalOnly;
|
||||
private View mEmptyView;
|
||||
@@ -378,6 +379,8 @@ public class ManageApplications extends InstrumentedFragment
|
||||
== ProfileSelectFragment.ProfileType.PERSONAL;
|
||||
mIsWorkOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
||||
== ProfileSelectFragment.ProfileType.WORK;
|
||||
mIsPrivateProfileOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
||||
== ProfileSelectFragment.ProfileType.PRIVATE;
|
||||
mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId();
|
||||
if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) {
|
||||
mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
|
||||
@@ -660,6 +663,10 @@ public class ManageApplications extends InstrumentedFragment
|
||||
if (mIsWorkOnly) {
|
||||
compositeFilter = new CompoundFilter(compositeFilter, ApplicationsState.FILTER_WORK);
|
||||
}
|
||||
if (mIsPrivateProfileOnly) {
|
||||
compositeFilter =
|
||||
new CompoundFilter(compositeFilter, ApplicationsState.FILTER_PRIVATE_PROFILE);
|
||||
}
|
||||
if (mIsPersonalOnly) {
|
||||
compositeFilter = new CompoundFilter(compositeFilter,
|
||||
ApplicationsState.FILTER_PERSONAL);
|
||||
|
Reference in New Issue
Block a user