Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4bce876b authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5834835 from 1719c99a to qt-qpr1-release

Change-Id: I850b90319e3c682073d74be0f744f2311d1e5a92
parents 0c07b334 1719c99a
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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(
+17 −0
Original line number Diff line number Diff line
@@ -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.
     *
+9 −0
Original line number Diff line number Diff line
@@ -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)
+3 −0
Original line number Diff line number Diff line
@@ -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));
        }