From 6e16b69887bb8dece5725c1824b83c2bcdb2df96 Mon Sep 17 00:00:00 2001 From: tmfang Date: Thu, 11 Oct 2018 16:20:15 +0800 Subject: [PATCH] Sync style of filter component in data usage Settings have new filter component with settings style. This CL replaced Spinner to SettingsSpinner in data usage page. Change-Id: I212b6b6ed203f8bffd094c0180873060b93c39cb Fixes: 117568930 Test: robotests, visual --- res/drawable/ic_apps_filter_settings_24dp.xml | 28 +++++++++++++++++++ res/layout/apps_filter_spinner.xml | 2 +- res/layout/data_usage_cycle_item.xml | 27 ------------------ res/layout/data_usage_cycles.xml | 20 ++++++------- .../settings/datausage/AppDataUsage.java | 2 +- .../settings/datausage/AppDataUsageV2.java | 2 +- .../settings/datausage/CycleAdapter.java | 16 +++++------ .../settings/datausage/DataUsageList.java | 2 +- .../settings/datausage/DataUsageListV2.java | 2 +- .../settings/datausage/SpinnerPreference.java | 4 +-- 10 files changed, 51 insertions(+), 54 deletions(-) create mode 100644 res/drawable/ic_apps_filter_settings_24dp.xml delete mode 100644 res/layout/data_usage_cycle_item.xml 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 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);