Loading res/xml/device_admin_settings.xml +8 −1 Original line number Diff line number Diff line Loading @@ -20,4 +20,11 @@ xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/manage_device_admin" android:key="device_admin_settings" settings:controller="com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminListPreferenceController" /> No newline at end of file settings:controller="com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminListPreferenceController"> <com.android.settingslib.widget.FooterPreference android:key="device_admin_footer" android:title="@string/no_device_admins" android:selectable="false" settings:searchable="false"/> </PreferenceScreen> No newline at end of file src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java +5 −13 Original line number Diff line number Diff line Loading @@ -45,13 +45,11 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreferenceMixinCompat; import org.xmlpull.v1.XmlPullParserException; Loading @@ -67,6 +65,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle private static final IntentFilter FILTER = new IntentFilter(); private static final String TAG = "DeviceAdminListPrefCtrl"; private static final String KEY_DEVICE_ADMIN_FOOTER = "device_admin_footer"; private final DevicePolicyManager mDPM; private final UserManager mUm; Loading @@ -91,7 +90,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle }; private PreferenceGroup mPreferenceGroup; private FooterPreferenceMixinCompat mFooterPreferenceMixin; private FooterPreference mFooterPreference; static { FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); Loading @@ -105,12 +104,6 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle mIPackageManager = AppGlobals.getPackageManager(); } public DeviceAdminListPreferenceController setFooterPreferenceMixin( FooterPreferenceMixinCompat mixin) { mFooterPreferenceMixin = mixin; return this; } @Override public int getAvailabilityStatus() { return AVAILABLE; Loading @@ -120,6 +113,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceGroup = screen.findPreference(getPreferenceKey()); mFooterPreference = mPreferenceGroup.findPreference(KEY_DEVICE_ADMIN_FOOTER); } @Override Loading Loading @@ -167,10 +161,8 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle if (mPreferenceGroup == null) { return; } if (mFooterPreferenceMixin != null) { final FooterPreference footer = mFooterPreferenceMixin.createFooterPreference(); footer.setTitle(R.string.no_device_admins); footer.setVisible(mAdmins.isEmpty()); if (mFooterPreference != null) { mFooterPreference.setVisible(mAdmins.isEmpty()); } final Map<String, SwitchPreference> preferenceCache = new ArrayMap<>(); final Context prefContext = mPreferenceGroup.getContext(); Loading src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java +0 −7 Original line number Diff line number Diff line Loading @@ -37,13 +37,6 @@ public class DeviceAdminSettings extends DashboardFragment { return SettingsEnums.DEVICE_ADMIN_SETTINGS; } @Override public void onAttach(Context context) { super.onAttach(context); use(DeviceAdminListPreferenceController.class).setFooterPreferenceMixin( mFooterPreferenceMixin); } @Override protected int getPreferenceScreenResId() { return R.xml.device_admin_settings; Loading tests/robotests/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceControllerTest.java +3 −14 Original line number Diff line number Diff line Loading @@ -33,37 +33,26 @@ import android.os.UserHandle; import androidx.lifecycle.LifecycleOwner; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.FooterPreferenceMixinCompat; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class DeviceAdminListPreferenceControllerTest { @Mock private FooterPreferenceMixinCompat mFooterPreferenceMixin; private Context mContext; private DeviceAdminListPreferenceController mController; private LifecycleOwner mLifecycleOwner; private Lifecycle mLifecycle; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); final LifecycleOwner lifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(lifecycleOwner); mController = spy(new DeviceAdminListPreferenceController(mContext, "test_key") .setFooterPreferenceMixin(mFooterPreferenceMixin)); mLifecycle.addObserver(mController); mLifecycle.addObserver(new DeviceAdminListPreferenceController(mContext, "test_key")); } @Test Loading Loading
res/xml/device_admin_settings.xml +8 −1 Original line number Diff line number Diff line Loading @@ -20,4 +20,11 @@ xmlns:settings="http://schemas.android.com/apk/res-auto" android:title="@string/manage_device_admin" android:key="device_admin_settings" settings:controller="com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminListPreferenceController" /> No newline at end of file settings:controller="com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminListPreferenceController"> <com.android.settingslib.widget.FooterPreference android:key="device_admin_footer" android:title="@string/no_device_admins" android:selectable="false" settings:searchable="false"/> </PreferenceScreen> No newline at end of file
src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java +5 −13 Original line number Diff line number Diff line Loading @@ -45,13 +45,11 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreferenceMixinCompat; import org.xmlpull.v1.XmlPullParserException; Loading @@ -67,6 +65,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle private static final IntentFilter FILTER = new IntentFilter(); private static final String TAG = "DeviceAdminListPrefCtrl"; private static final String KEY_DEVICE_ADMIN_FOOTER = "device_admin_footer"; private final DevicePolicyManager mDPM; private final UserManager mUm; Loading @@ -91,7 +90,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle }; private PreferenceGroup mPreferenceGroup; private FooterPreferenceMixinCompat mFooterPreferenceMixin; private FooterPreference mFooterPreference; static { FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); Loading @@ -105,12 +104,6 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle mIPackageManager = AppGlobals.getPackageManager(); } public DeviceAdminListPreferenceController setFooterPreferenceMixin( FooterPreferenceMixinCompat mixin) { mFooterPreferenceMixin = mixin; return this; } @Override public int getAvailabilityStatus() { return AVAILABLE; Loading @@ -120,6 +113,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceGroup = screen.findPreference(getPreferenceKey()); mFooterPreference = mPreferenceGroup.findPreference(KEY_DEVICE_ADMIN_FOOTER); } @Override Loading Loading @@ -167,10 +161,8 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle if (mPreferenceGroup == null) { return; } if (mFooterPreferenceMixin != null) { final FooterPreference footer = mFooterPreferenceMixin.createFooterPreference(); footer.setTitle(R.string.no_device_admins); footer.setVisible(mAdmins.isEmpty()); if (mFooterPreference != null) { mFooterPreference.setVisible(mAdmins.isEmpty()); } final Map<String, SwitchPreference> preferenceCache = new ArrayMap<>(); final Context prefContext = mPreferenceGroup.getContext(); Loading
src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminSettings.java +0 −7 Original line number Diff line number Diff line Loading @@ -37,13 +37,6 @@ public class DeviceAdminSettings extends DashboardFragment { return SettingsEnums.DEVICE_ADMIN_SETTINGS; } @Override public void onAttach(Context context) { super.onAttach(context); use(DeviceAdminListPreferenceController.class).setFooterPreferenceMixin( mFooterPreferenceMixin); } @Override protected int getPreferenceScreenResId() { return R.xml.device_admin_settings; Loading
tests/robotests/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceControllerTest.java +3 −14 Original line number Diff line number Diff line Loading @@ -33,37 +33,26 @@ import android.os.UserHandle; import androidx.lifecycle.LifecycleOwner; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.FooterPreferenceMixinCompat; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class DeviceAdminListPreferenceControllerTest { @Mock private FooterPreferenceMixinCompat mFooterPreferenceMixin; private Context mContext; private DeviceAdminListPreferenceController mController; private LifecycleOwner mLifecycleOwner; private Lifecycle mLifecycle; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); final LifecycleOwner lifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(lifecycleOwner); mController = spy(new DeviceAdminListPreferenceController(mContext, "test_key") .setFooterPreferenceMixin(mFooterPreferenceMixin)); mLifecycle.addObserver(mController); mLifecycle.addObserver(new DeviceAdminListPreferenceController(mContext, "test_key")); } @Test Loading