Use FooterPreference in xml explicitly
Removed the FooterPreferenceMixin from the DeviceAdminSettings page. Fixes: 140015273 Test: manual test Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.applications Change-Id: I91c10946ae35f9a5cde30399e231dbc8a1481b23
This commit is contained in:
@@ -20,4 +20,11 @@
|
|||||||
xmlns:settings="http://schemas.android.com/apk/res-auto"
|
xmlns:settings="http://schemas.android.com/apk/res-auto"
|
||||||
android:title="@string/manage_device_admin"
|
android:title="@string/manage_device_admin"
|
||||||
android:key="device_admin_settings"
|
android:key="device_admin_settings"
|
||||||
settings:controller="com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminListPreferenceController" />
|
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>
|
@@ -45,13 +45,11 @@ import androidx.preference.PreferenceGroup;
|
|||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
import com.android.settingslib.widget.FooterPreferenceMixinCompat;
|
|
||||||
|
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
@@ -67,6 +65,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
|
|
||||||
private static final IntentFilter FILTER = new IntentFilter();
|
private static final IntentFilter FILTER = new IntentFilter();
|
||||||
private static final String TAG = "DeviceAdminListPrefCtrl";
|
private static final String TAG = "DeviceAdminListPrefCtrl";
|
||||||
|
private static final String KEY_DEVICE_ADMIN_FOOTER = "device_admin_footer";
|
||||||
|
|
||||||
private final DevicePolicyManager mDPM;
|
private final DevicePolicyManager mDPM;
|
||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
@@ -91,7 +90,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
};
|
};
|
||||||
|
|
||||||
private PreferenceGroup mPreferenceGroup;
|
private PreferenceGroup mPreferenceGroup;
|
||||||
private FooterPreferenceMixinCompat mFooterPreferenceMixin;
|
private FooterPreference mFooterPreference;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
||||||
@@ -105,12 +104,6 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
mIPackageManager = AppGlobals.getPackageManager();
|
mIPackageManager = AppGlobals.getPackageManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeviceAdminListPreferenceController setFooterPreferenceMixin(
|
|
||||||
FooterPreferenceMixinCompat mixin) {
|
|
||||||
mFooterPreferenceMixin = mixin;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return AVAILABLE;
|
return AVAILABLE;
|
||||||
@@ -120,6 +113,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
mPreferenceGroup = screen.findPreference(getPreferenceKey());
|
mPreferenceGroup = screen.findPreference(getPreferenceKey());
|
||||||
|
mFooterPreference = mPreferenceGroup.findPreference(KEY_DEVICE_ADMIN_FOOTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -167,10 +161,8 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
|
|||||||
if (mPreferenceGroup == null) {
|
if (mPreferenceGroup == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mFooterPreferenceMixin != null) {
|
if (mFooterPreference != null) {
|
||||||
final FooterPreference footer = mFooterPreferenceMixin.createFooterPreference();
|
mFooterPreference.setVisible(mAdmins.isEmpty());
|
||||||
footer.setTitle(R.string.no_device_admins);
|
|
||||||
footer.setVisible(mAdmins.isEmpty());
|
|
||||||
}
|
}
|
||||||
final Map<String, SwitchPreference> preferenceCache = new ArrayMap<>();
|
final Map<String, SwitchPreference> preferenceCache = new ArrayMap<>();
|
||||||
final Context prefContext = mPreferenceGroup.getContext();
|
final Context prefContext = mPreferenceGroup.getContext();
|
||||||
|
@@ -37,13 +37,6 @@ public class DeviceAdminSettings extends DashboardFragment {
|
|||||||
return SettingsEnums.DEVICE_ADMIN_SETTINGS;
|
return SettingsEnums.DEVICE_ADMIN_SETTINGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Context context) {
|
|
||||||
super.onAttach(context);
|
|
||||||
use(DeviceAdminListPreferenceController.class).setFooterPreferenceMixin(
|
|
||||||
mFooterPreferenceMixin);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getPreferenceScreenResId() {
|
protected int getPreferenceScreenResId() {
|
||||||
return R.xml.device_admin_settings;
|
return R.xml.device_admin_settings;
|
||||||
|
@@ -33,37 +33,26 @@ import android.os.UserHandle;
|
|||||||
import androidx.lifecycle.LifecycleOwner;
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
|
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.widget.FooterPreferenceMixinCompat;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class DeviceAdminListPreferenceControllerTest {
|
public class DeviceAdminListPreferenceControllerTest {
|
||||||
|
|
||||||
@Mock
|
|
||||||
private FooterPreferenceMixinCompat mFooterPreferenceMixin;
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DeviceAdminListPreferenceController mController;
|
|
||||||
private LifecycleOwner mLifecycleOwner;
|
|
||||||
private Lifecycle mLifecycle;
|
private Lifecycle mLifecycle;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
|
||||||
mLifecycleOwner = () -> mLifecycle;
|
final LifecycleOwner lifecycleOwner = () -> mLifecycle;
|
||||||
mLifecycle = new Lifecycle(mLifecycleOwner);
|
mLifecycle = new Lifecycle(lifecycleOwner);
|
||||||
|
|
||||||
mController = spy(new DeviceAdminListPreferenceController(mContext, "test_key")
|
mLifecycle.addObserver(new DeviceAdminListPreferenceController(mContext, "test_key"));
|
||||||
.setFooterPreferenceMixin(mFooterPreferenceMixin));
|
|
||||||
mLifecycle.addObserver(mController);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user