Hides the settings entry in Magnification Settings if window magnification feature is not supported
If the device doesn't support window magnification featue, we should hide the settings entry in mangification settings Bug: 213414385 Test: atest ToggleScreenMagnificationPreferenceFragmentTest Change-Id: I73f087da54cd2930c049dabb6b843c3b373e3c20
This commit is contained in:
@@ -27,6 +27,7 @@ import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.icu.text.CaseMap;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
@@ -162,9 +163,14 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
||||
|
||||
@Override
|
||||
protected void initSettingsPreference() {
|
||||
// If the device doesn't support magnification area, it should hide the settings preference.
|
||||
if (!getContext().getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_magnification_area)) {
|
||||
// If the device doesn't support window magnification feature, it should hide the
|
||||
// settings preference.
|
||||
final boolean supportWindowMagnification =
|
||||
getContext().getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_magnification_area)
|
||||
&& getContext().getPackageManager().hasSystemFeature(
|
||||
PackageManager.FEATURE_WINDOW_MAGNIFICATION);
|
||||
if (!supportWindowMagnification) {
|
||||
return;
|
||||
}
|
||||
mSettingsPreference = new Preference(getPrefContext());
|
||||
|
@@ -36,6 +36,7 @@ import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
@@ -101,6 +102,8 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
|
||||
private FragmentActivity mActivity;
|
||||
@Mock
|
||||
private ContentResolver mContentResolver;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
@Before
|
||||
public void setUpTestFragment() {
|
||||
@@ -110,6 +113,7 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
|
||||
mFragment = spy(new TestToggleScreenMagnificationPreferenceFragment(mContext));
|
||||
mResources = spy(mContext.getResources());
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
when(mFragment.getContext().getResources()).thenReturn(mResources);
|
||||
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||
when(mActivity.getContentResolver()).thenReturn(mContentResolver);
|
||||
@@ -334,10 +338,26 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
|
||||
|
||||
@Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
|
||||
@Test
|
||||
public void onCreateView_notSupportsMagnificationArea_settingsPreferenceIsNull() {
|
||||
public void onCreateView_magnificationAreaNotSupported_settingsPreferenceIsNull() {
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_magnification_area))
|
||||
.thenReturn(false);
|
||||
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WINDOW_MAGNIFICATION))
|
||||
.thenReturn(true);
|
||||
|
||||
mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
|
||||
|
||||
assertThat(mFragment.mSettingsPreference).isNull();
|
||||
}
|
||||
|
||||
@Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
|
||||
@Test
|
||||
public void onCreateView_windowMagnificationNotSupported_settingsPreferenceIsNull() {
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_magnification_area))
|
||||
.thenReturn(true);
|
||||
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WINDOW_MAGNIFICATION))
|
||||
.thenReturn(false);
|
||||
|
||||
mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
|
||||
|
||||
|
Reference in New Issue
Block a user