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

Commit e39e9b2f authored by kholoud mohamed's avatar kholoud mohamed
Browse files

Change createRequestInteractAcrossProfilesIntent to throw Exception

Change to the API to throw a security exception if the app can't
request to interact rather than returning null, this is to address
an API review feedback.

Fixes: 151157516
Test: atest CrossProfileAppsPermissionHostSideTest
Change-Id: Icdc9798a8a315cdffbe35b118c988fb60bb285af
parent 269b1626
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -11570,7 +11570,7 @@ package android.content.pm {
  public class CrossProfileApps {
    method public boolean canInteractAcrossProfiles();
    method public boolean canRequestInteractAcrossProfiles();
    method @Nullable public android.content.Intent createRequestInteractAcrossProfilesIntent();
    method @NonNull public android.content.Intent createRequestInteractAcrossProfilesIntent();
    method @NonNull public android.graphics.drawable.Drawable getProfileSwitchingIconDrawable(@NonNull android.os.UserHandle);
    method @NonNull public CharSequence getProfileSwitchingLabel(@NonNull android.os.UserHandle);
    method @NonNull public java.util.List<android.os.UserHandle> getTargetUserProfiles();
+5 −4
Original line number Diff line number Diff line
@@ -334,7 +334,7 @@ public class CrossProfileApps {
     * Returns an {@link Intent} to open the settings page that allows the user to decide whether
     * the calling app can interact across profiles.
     *
     * <p>Returns {@code null} if {@link #canRequestInteractAcrossProfiles()} is {@code false}.
     * <p>The method {@link #canRequestInteractAcrossProfiles()} must be returning {@code true}.
     *
     * <p>Note that the user may already have given consent and the app may already be able to
     * interact across profiles, even if {@link #canRequestInteractAcrossProfiles()} is {@code
@@ -345,11 +345,12 @@ public class CrossProfileApps {
     * the app can interact across profiles
     *
     * @throws SecurityException if {@code mContext.getPackageName()} does not belong to the
     * calling UID.
     * calling UID, or {@link #canRequestInteractAcrossProfiles()} is {@code false}.
     */
    public @Nullable Intent createRequestInteractAcrossProfilesIntent() {
    public @NonNull Intent createRequestInteractAcrossProfilesIntent() {
        if (!canRequestInteractAcrossProfiles()) {
            return null;
            throw new SecurityException(
                    "The calling package can not request to interact across profiles.");
        }
        final Intent settingsIntent = new Intent();
        settingsIntent.setAction(Settings.ACTION_MANAGE_CROSS_PROFILE_ACCESS);