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"
|
||||
android:title="@string/manage_device_admin"
|
||||
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.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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -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();
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user