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

Commit 334c5b36 authored by Edgar Wang's avatar Edgar Wang
Browse files

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

Fixes: 79945310
Test: atest & manual
Change-Id: I24b9de06ec94a008656cbbc016a50a4e217fece1
parent cad7ff16
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);