Replace footer with regular preference
Replaced the "Manage Storage" footer preference with a regular preference because the footer type is not meant to be a touch target. This should fix the bug with not being able to click on specific parts of the preference. Test: run settings espresso tests Bug: 34349518 Change-Id: I36ada2a6a537a68d9fcbe7e10773896225ecc6b2
This commit is contained in:
@@ -43,4 +43,10 @@
|
|||||||
android:key="pref_system"
|
android:key="pref_system"
|
||||||
android:title="@string/storage_detail_system">
|
android:title="@string/storage_detail_system">
|
||||||
</com.android.settings.deviceinfo.storage.StorageItemPreferenceAlternate>
|
</com.android.settings.deviceinfo.storage.StorageItemPreferenceAlternate>
|
||||||
|
<Preference
|
||||||
|
android:key="manage_storage"
|
||||||
|
android:title="@string/storage_menu_manage"
|
||||||
|
android:icon="@drawable/ic_settings_storage"
|
||||||
|
android:fragment="com.android.settings.deletionhelper.AutomaticStorageManagerSettings">
|
||||||
|
</Preference>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
@@ -16,14 +16,13 @@
|
|||||||
package com.android.settings.deviceinfo;
|
package com.android.settings.deviceinfo;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v7.preference.Preference;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
|
|
||||||
public class ManageStoragePreferenceController extends PreferenceController {
|
public class ManageStoragePreferenceController extends PreferenceController {
|
||||||
|
|
||||||
public static final String KEY_MANAGE_STORAGE = "footer_preference";
|
public static final String KEY_MANAGE_STORAGE = "manage_storage";
|
||||||
|
|
||||||
public ManageStoragePreferenceController(Context context) {
|
public ManageStoragePreferenceController(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
@@ -32,7 +32,6 @@ import com.android.settings.deviceinfo.storage.StorageSummaryDonutPreferenceCont
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
import com.android.settings.widget.FooterPreference;
|
|
||||||
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -84,13 +83,6 @@ public class StorageDashboardFragment extends DashboardFragment {
|
|||||||
mSummaryController.updateBytes(usedBytes, totalSize);
|
mSummaryController.updateBytes(usedBytes, totalSize);
|
||||||
mPreferenceController.setVolume(mVolume);
|
mPreferenceController.setVolume(mVolume);
|
||||||
mPreferenceController.setSystemSize(systemSize);
|
mPreferenceController.setSystemSize(systemSize);
|
||||||
|
|
||||||
// Initialize the footer preference to go to the smart storage management.
|
|
||||||
final FooterPreference pref = mFooterPreferenceMixin.createFooterPreference();
|
|
||||||
pref.setTitle(R.string.storage_menu_manage);
|
|
||||||
pref.setFragment("com.android.settings.deletionhelper.AutomaticStorageManagerSettings");
|
|
||||||
pref.setIcon(R.drawable.ic_settings_storage);
|
|
||||||
pref.setEnabled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -0,0 +1,40 @@
|
|||||||
|
package com.android.settings.deviceinfo;
|
||||||
|
|
||||||
|
import android.support.test.espresso.intent.rule.IntentsTestRule;
|
||||||
|
import android.support.test.filters.SmallTest;
|
||||||
|
import android.support.test.runner.AndroidJUnitRunner;
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Settings.StorageDashboardActivity;
|
||||||
|
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
|
||||||
|
import org.junit.Rule;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import static android.support.test.espresso.Espresso.onView;
|
||||||
|
import static android.support.test.espresso.action.ViewActions.click;
|
||||||
|
import static android.support.test.espresso.intent.Intents.intended;
|
||||||
|
import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtra;
|
||||||
|
import static android.support.test.espresso.matcher.ViewMatchers.withText;
|
||||||
|
import static org.hamcrest.Matchers.containsString;
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
public class StorageDashboardFragmentEspressoTest {
|
||||||
|
|
||||||
|
public static final String EXTRA_KEY = ":settings:show_fragment";
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public IntentsTestRule<StorageDashboardActivity> mActivityRule =
|
||||||
|
new IntentsTestRule<>(StorageDashboardActivity.class, true, true);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStorageManagePreference_canClickTextView() throws InterruptedException {
|
||||||
|
// Click on the actual textbox instead of just somewhere in the preference
|
||||||
|
onView(withText(R.string.storage_menu_manage)).perform(click());
|
||||||
|
|
||||||
|
// Check that it worked by seeing if we switched screens
|
||||||
|
intended(hasExtra(equalTo(EXTRA_KEY),
|
||||||
|
containsString(AutomaticStorageManagerSettings.class.getName())));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user