Loading src/com/android/packageinstaller/role/model/HomeRoleBehavior.java +8 −3 Original line number Diff line number Diff line Loading @@ -125,13 +125,18 @@ public class HomeRoleBehavior implements RoleBehavior { preference.setOnSecondTargetClickListener(listener); } @Override public boolean isApplicationVisibleAsUser(@NonNull Role role, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { // Home is not available for work profile, so we can just use the current user. return !isSettingsApplication(applicationInfo, context); } @Override public void prepareApplicationPreferenceAsUser(@NonNull Role role, @NonNull Preference preference, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { // Home is not available for work profile, so we can just use the current user. boolean isSettingsApplication = isSettingsApplication(applicationInfo, context); preference.setVisible(!isSettingsApplication); boolean missingWorkProfileSupport = isMissingWorkProfileSupport(applicationInfo, context); preference.setEnabled(!missingWorkProfileSupport); preference.setSummary(missingWorkProfileSupport ? context.getString( Loading src/com/android/packageinstaller/role/model/Role.java +17 −0 Original line number Diff line number Diff line Loading @@ -368,6 +368,23 @@ public class Role { } } /** * Check whether a qualifying application should be visible to user. * * @param applicationInfo the {@link ApplicationInfo} for the application * @param user the user for the application * @param context the {@code Context} to retrieve system services * * @return whether the qualifying application should be visible to user */ public boolean isApplicationVisibleAsUser(@NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { if (mBehavior != null) { return mBehavior.isApplicationVisibleAsUser(this, applicationInfo, user, context); } return true; } /** * Prepare a {@link Preference} for an application. * Loading src/com/android/packageinstaller/role/model/RoleBehavior.java +9 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,15 @@ public interface RoleBehavior { @NonNull TwoTargetPreference preference, @NonNull UserHandle user, @NonNull Context context) {} /** * @see Role#isApplicationVisibleAsUser(ApplicationInfo, UserHandle, Context) */ default boolean isApplicationVisibleAsUser(@NonNull Role role, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { return true; } /** * @see Role#prepareApplicationPreferenceAsUser(Preference, ApplicationInfo, UserHandle, * Context) Loading src/com/android/packageinstaller/role/ui/RoleLiveData.java +3 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,9 @@ public class RoleLiveData extends AsyncTaskLiveData<List<Pair<ApplicationInfo, B + qualifyingPackageName); continue; } if (!mRole.isApplicationVisibleAsUser(qualifyingApplicationInfo, mUser, mContext)) { continue; } boolean isHolderApplication = holderPackageNames.contains(qualifyingPackageName); qualifyingApplications.add(new Pair<>(qualifyingApplicationInfo, isHolderApplication)); } Loading Loading
src/com/android/packageinstaller/role/model/HomeRoleBehavior.java +8 −3 Original line number Diff line number Diff line Loading @@ -125,13 +125,18 @@ public class HomeRoleBehavior implements RoleBehavior { preference.setOnSecondTargetClickListener(listener); } @Override public boolean isApplicationVisibleAsUser(@NonNull Role role, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { // Home is not available for work profile, so we can just use the current user. return !isSettingsApplication(applicationInfo, context); } @Override public void prepareApplicationPreferenceAsUser(@NonNull Role role, @NonNull Preference preference, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { // Home is not available for work profile, so we can just use the current user. boolean isSettingsApplication = isSettingsApplication(applicationInfo, context); preference.setVisible(!isSettingsApplication); boolean missingWorkProfileSupport = isMissingWorkProfileSupport(applicationInfo, context); preference.setEnabled(!missingWorkProfileSupport); preference.setSummary(missingWorkProfileSupport ? context.getString( Loading
src/com/android/packageinstaller/role/model/Role.java +17 −0 Original line number Diff line number Diff line Loading @@ -368,6 +368,23 @@ public class Role { } } /** * Check whether a qualifying application should be visible to user. * * @param applicationInfo the {@link ApplicationInfo} for the application * @param user the user for the application * @param context the {@code Context} to retrieve system services * * @return whether the qualifying application should be visible to user */ public boolean isApplicationVisibleAsUser(@NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { if (mBehavior != null) { return mBehavior.isApplicationVisibleAsUser(this, applicationInfo, user, context); } return true; } /** * Prepare a {@link Preference} for an application. * Loading
src/com/android/packageinstaller/role/model/RoleBehavior.java +9 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,15 @@ public interface RoleBehavior { @NonNull TwoTargetPreference preference, @NonNull UserHandle user, @NonNull Context context) {} /** * @see Role#isApplicationVisibleAsUser(ApplicationInfo, UserHandle, Context) */ default boolean isApplicationVisibleAsUser(@NonNull Role role, @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user, @NonNull Context context) { return true; } /** * @see Role#prepareApplicationPreferenceAsUser(Preference, ApplicationInfo, UserHandle, * Context) Loading
src/com/android/packageinstaller/role/ui/RoleLiveData.java +3 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,9 @@ public class RoleLiveData extends AsyncTaskLiveData<List<Pair<ApplicationInfo, B + qualifyingPackageName); continue; } if (!mRole.isApplicationVisibleAsUser(qualifyingApplicationInfo, mUser, mContext)) { continue; } boolean isHolderApplication = holderPackageNames.contains(qualifyingPackageName); qualifyingApplications.add(new Pair<>(qualifyingApplicationInfo, isHolderApplication)); } Loading