Hide PIP related preference when device didn't support this feature
Fixes: 79945310 Test: atest & manual Change-Id: I24b9de06ec94a008656cbbc016a50a4e217fece1
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user