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

Commit 09abaa93 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Hide PIP related preference when device didn't support this feature"

parents ed1b8084 334c5b36
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.applications.specialaccess.pictureinpicture;

import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageManager;

import com.android.settings.core.BasePreferenceController;

@@ -30,7 +31,8 @@ public class PictureInPictureController extends BasePreferenceController {
    @Override
    public int getAvailabilityStatus() {
        return !ActivityManager.isLowRamDeviceStatic()
                ? AVAILABLE_UNSEARCHABLE
                && mContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_PICTURE_IN_PICTURE) ? AVAILABLE_UNSEARCHABLE
                : UNSUPPORTED_ON_DEVICE;
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -43,6 +43,10 @@ public class PictureInPictureDetailPreferenceController extends AppInfoPreferenc

    @Override
    public int getAvailabilityStatus() {
        if (!mContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_PICTURE_IN_PICTURE)) {
            return UNSUPPORTED_ON_DEVICE;
        }
        return hasPictureInPictureActivites() ? AVAILABLE : DISABLED_FOR_USER;
    }

+14 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageManager;

import androidx.preference.Preference;

@@ -46,6 +47,8 @@ public class PictureInPictureDetailPreferenceControllerTest {
    private AppInfoDashboardFragment mFragment;
    @Mock
    private Preference mPreference;
    @Mock
    private PackageManager mManager;

    private Context mContext;
    private PictureInPictureDetailPreferenceController mController;
@@ -61,6 +64,8 @@ public class PictureInPictureDetailPreferenceControllerTest {

        final String key = mController.getPreferenceKey();
        when(mPreference.getKey()).thenReturn(key);
        when(mContext.getPackageManager()).thenReturn(mManager);
        when(mManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)).thenReturn(true);
    }

    @Test
@@ -79,6 +84,15 @@ public class PictureInPictureDetailPreferenceControllerTest {
                .isEqualTo(BasePreferenceController.AVAILABLE);
    }

    @Test
    public void getAvailabilityStatus_noPictureInPictureFeature_shouldReturnUnSupported() {
        when(mManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)).thenReturn(
                false);

        assertThat(mController.getAvailabilityStatus())
                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
    }

    @Test
    public void getDetailFragmentClass_shouldReturnPictureInPictureDetails() {
        assertThat(mController.getDetailFragmentClass()).isEqualTo(PictureInPictureDetails.class);