diff --git a/res/drawable/ic_apps_filter_settings_24dp.xml b/res/drawable/ic_apps_filter_settings_24dp.xml
new file mode 100644
index 00000000000..01a53a7e7e1
--- /dev/null
+++ b/res/drawable/ic_apps_filter_settings_24dp.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
diff --git a/res/layout/apps_filter_spinner.xml b/res/layout/apps_filter_spinner.xml
index ca69cc61f82..c9b1e074078 100644
--- a/res/layout/apps_filter_spinner.xml
+++ b/res/layout/apps_filter_spinner.xml
@@ -37,7 +37,7 @@
android:layout_toRightOf="@id/filter_spinner"
android:contentDescription="@string/configure"
android:scaleType="center"
- android:src="@drawable/ic_settings_24dp"
+ android:src="@drawable/ic_apps_filter_settings_24dp"
android:visibility="gone"/>
diff --git a/res/layout/data_usage_cycle_item.xml b/res/layout/data_usage_cycle_item.xml
deleted file mode 100644
index 015608d2b8e..00000000000
--- a/res/layout/data_usage_cycle_item.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
diff --git a/res/layout/data_usage_cycles.xml b/res/layout/data_usage_cycles.xml
index 9c6cc31b199..05c38e0b68c 100644
--- a/res/layout/data_usage_cycles.xml
+++ b/res/layout/data_usage_cycles.xml
@@ -14,21 +14,17 @@
limitations under the License.
-->
-
+ android:minHeight="?android:attr/listPreferredItemHeight">
-
+ android:layout_width="wrap_content"
+ android:layout_centerInParent="true"/>
+
+
-
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index fcb6b72a9c7..4dddeab6b2e 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -144,7 +144,7 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
- mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
+ mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener);
if (mAppItem.key > 0) {
if (mPackages.size() != 0) {
diff --git a/src/com/android/settings/datausage/AppDataUsageV2.java b/src/com/android/settings/datausage/AppDataUsageV2.java
index 4e8325b27c8..7515c51d5c5 100644
--- a/src/com/android/settings/datausage/AppDataUsageV2.java
+++ b/src/com/android/settings/datausage/AppDataUsageV2.java
@@ -131,7 +131,7 @@ public class AppDataUsageV2 extends DataUsageBaseFragment implements OnPreferenc
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
- mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
+ mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener);
if (mAppItem.key > 0) {
if (mPackages.size() != 0) {
diff --git a/src/com/android/settings/datausage/CycleAdapter.java b/src/com/android/settings/datausage/CycleAdapter.java
index 9378dea9450..74d27be7e67 100644
--- a/src/com/android/settings/datausage/CycleAdapter.java
+++ b/src/com/android/settings/datausage/CycleAdapter.java
@@ -20,28 +20,25 @@ import android.net.NetworkStatsHistory;
import android.text.format.DateUtils;
import android.util.Pair;
import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.NetworkCycleData;
+import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
import java.time.ZonedDateTime;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
-public class CycleAdapter extends ArrayAdapter {
+public class CycleAdapter extends SettingsSpinnerAdapter {
private final SpinnerInterface mSpinner;
private final AdapterView.OnItemSelectedListener mListener;
public CycleAdapter(Context context, SpinnerInterface spinner,
- AdapterView.OnItemSelectedListener listener, boolean isHeader) {
- super(context, isHeader ? R.layout.filter_spinner_item
- : R.layout.data_usage_cycle_item);
- setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ AdapterView.OnItemSelectedListener listener) {
+ super(context);
mSpinner = spinner;
mListener = listener;
mSpinner.setAdapter(this);
@@ -159,7 +156,7 @@ public class CycleAdapter extends ArrayAdapter {
public boolean updateCycleList(List extends NetworkCycleData> cycleData) {
// stash away currently selected cycle to try restoring below
final CycleAdapter.CycleItem previousItem = (CycleAdapter.CycleItem)
- mSpinner.getSelectedItem();
+ mSpinner.getSelectedItem();
clear();
final Context context = getContext();
@@ -223,8 +220,11 @@ public class CycleAdapter extends ArrayAdapter {
public interface SpinnerInterface {
void setAdapter(CycleAdapter cycleAdapter);
+
void setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener);
+
Object getSelectedItem();
+
void setSelection(int position);
}
}
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index 0458207e8ad..8f0026f4e1e 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -182,7 +182,7 @@ public class DataUsageList extends DataUsageBaseFragment {
public void setSelection(int position) {
mCycleSpinner.setSelection(position);
}
- }, mCycleListener, true);
+ }, mCycleListener);
mLoadingViewController = new LoadingViewController(
getView().findViewById(R.id.loading_container), getListView());
diff --git a/src/com/android/settings/datausage/DataUsageListV2.java b/src/com/android/settings/datausage/DataUsageListV2.java
index aef9519b870..4432feec1be 100644
--- a/src/com/android/settings/datausage/DataUsageListV2.java
+++ b/src/com/android/settings/datausage/DataUsageListV2.java
@@ -175,7 +175,7 @@ public class DataUsageListV2 extends DataUsageBaseFragment {
public void setSelection(int position) {
mCycleSpinner.setSelection(position);
}
- }, mCycleListener, true);
+ }, mCycleListener);
mLoadingViewController = new LoadingViewController(
getView().findViewById(R.id.loading_container), getListView());
diff --git a/src/com/android/settings/datausage/SpinnerPreference.java b/src/com/android/settings/datausage/SpinnerPreference.java
index 867930baa97..67298a14bb6 100644
--- a/src/com/android/settings/datausage/SpinnerPreference.java
+++ b/src/com/android/settings/datausage/SpinnerPreference.java
@@ -18,12 +18,12 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
-import android.widget.Spinner;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
+import com.android.settingslib.widget.settingsspinner.SettingsSpinner;
public class SpinnerPreference extends Preference implements CycleAdapter.SpinnerInterface {
@@ -63,7 +63,7 @@ public class SpinnerPreference extends Preference implements CycleAdapter.Spinne
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- Spinner spinner = (Spinner) holder.findViewById(R.id.cycles_spinner);
+ SettingsSpinner spinner = (SettingsSpinner) holder.findViewById(R.id.cycles_spinner);
spinner.setAdapter(mAdapter);
spinner.setSelection(mPosition);
spinner.setOnItemSelectedListener(mOnSelectedListener);