From 6136b5c9c203d37ebcae71aac3c9fca47b4621e9 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 3 Jun 2015 19:00:10 +0800 Subject: [PATCH] Update --- .../ehviewer/ui/scene/EHSettingsScene.java | 27 ++++++----- .../ehviewer/ui/scene/GalleryListScene.java | 7 ++- .../java/com/hippo/scene/SimpleDialog.java | 39 ++++++++-------- app/src/main/res/values-sw600dp/dimens.xml | 9 +++- app/src/main/res/values/cardview_attrs.xml | 44 ------------------ app/src/main/res/values/cardview_colors.xml | 26 ----------- app/src/main/res/values/cardview_dimens.xml | 25 ---------- app/src/main/res/values/cardview_styles.xml | 31 ------------- app/src/main/res/values/cardview_values.xml | 46 +++++++++++++++++++ 9 files changed, 91 insertions(+), 163 deletions(-) delete mode 100644 app/src/main/res/values/cardview_attrs.xml delete mode 100644 app/src/main/res/values/cardview_colors.xml delete mode 100644 app/src/main/res/values/cardview_dimens.xml delete mode 100644 app/src/main/res/values/cardview_styles.xml create mode 100644 app/src/main/res/values/cardview_values.xml diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/EHSettingsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/EHSettingsScene.java index d861cc2c3..0e7d02735 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/EHSettingsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/EHSettingsScene.java @@ -29,7 +29,7 @@ import com.hippo.scene.preference.PreferenceScene; import com.hippo.scene.preference.PreferenceSet; import com.hippo.util.Messenger; -public final class EHSettingsScene extends PreferenceScene implements Preference.OnValueChangeListener { +public final class EHSettingsScene extends PreferenceScene { private static final String KEY_EH_SOURCE = "eh_source"; private static final int DEFAULT_EH_SOURCE = BuildConfig.DEBUG ? @@ -53,12 +53,14 @@ public final class EHSettingsScene extends PreferenceScene implements Preference private PreferenceSet[] getPreferenceSet() { Resources resources = getStageActivity().getResources(); + ValueChangeListener valueChangeListener = new ValueChangeListener(); + ListPreference sourcePreference = new ListPreference(KEY_EH_SOURCE, resources.getString(R.string.settings_eh_source_title), null); sourcePreference.setKeys(resources.getStringArray(R.array.settings_eh_source_entries)); sourcePreference.setValues(resources.getIntArray(R.array.settings_eh_source_entry_values)); sourcePreference.setDefaultValue(DEFAULT_EH_SOURCE); - sourcePreference.setOnValueChangeListener(this); + sourcePreference.setOnValueChangeListener(valueChangeListener); PreferenceSet preferenceSet = new PreferenceSet(); preferenceSet.setPreferenceCategory(new PreferenceCategory(resources.getString(R.string.settings_eh))); @@ -72,15 +74,18 @@ public final class EHSettingsScene extends PreferenceScene implements Preference }; } - @Override - public boolean OnValueChange(Preference preference, Object newValue) { - String key = preference.getKey(); - switch (key) { - case KEY_EH_SOURCE: - Messenger.getInstance().notify(Constants.MESSENGER_ID_EH_SOURCE, newValue); - return true; - default: - return true; + private static class ValueChangeListener implements Preference.OnValueChangeListener { + + @Override + public boolean OnValueChange(Preference preference, Object newValue) { + String key = preference.getKey(); + switch (key) { + case KEY_EH_SOURCE: + Messenger.getInstance().notify(Constants.MESSENGER_ID_EH_SOURCE, newValue); + return true; + default: + return true; + } } } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 59be22fb6..fbab492f3 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -26,8 +26,8 @@ import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; @@ -878,9 +878,8 @@ public final class GalleryListScene extends Scene implements SearchBar.Helper, @Override protected RecyclerView.LayoutManager generateLayoutManager() { - // TODO StaggeredGridLayoutManager item dislocation for setPaddingTop - return new LinearLayoutManager(mActivity); - //return new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL); + // set SpanCount in runtime + return new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL); } @Override diff --git a/app/src/main/java/com/hippo/scene/SimpleDialog.java b/app/src/main/java/com/hippo/scene/SimpleDialog.java index 489f44b90..6f4c47b7b 100644 --- a/app/src/main/java/com/hippo/scene/SimpleDialog.java +++ b/app/src/main/java/com/hippo/scene/SimpleDialog.java @@ -116,6 +116,12 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, super.onRestore(transferStop); mBuilder = (Builder) transferStop.get("builder"); + // Create new Adapter to avoid memory leak + if (mBuilder.mAdapter != null) { + mBuilder.mAdapter = new ArrayAdapter<>(getStageActivity(), + mBuilder.mItemLayoutResId, android.R.id.text1, + mBuilder.mItems); + } } @Override @@ -310,6 +316,8 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, private String mTitle; private String mMessage; + private CharSequence[] mItems; + private int mItemLayoutResId; private ListAdapter mAdapter; private OnClickListener mOnListItemClickListener; protected int mCheckedItem; @@ -351,8 +359,10 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, } public Builder setItems(int itemsId, final OnClickListener listener) { + mItems = mContext.getResources().getTextArray(itemsId); + mItemLayoutResId = R.layout.select_dialog_item; mAdapter = new ArrayAdapter<>(mContext, R.layout.select_dialog_item, - android.R.id.text1, mContext.getResources().getTextArray(itemsId)); + android.R.id.text1, mItems); mOnListItemClickListener = listener; mIsSingleChoice = false; return this; @@ -360,6 +370,8 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, public Builder setItems(CharSequence[] items, final OnClickListener listener) { + mItems = items; + mItemLayoutResId = R.layout.select_dialog_item; mAdapter = new ArrayAdapter<>(mContext, R.layout.select_dialog_item, android.R.id.text1, items); mOnListItemClickListener = listener; @@ -367,19 +379,13 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, return this; } - public Builder setAdapter(final ListAdapter adapter, - final OnClickListener listener) { - mAdapter = adapter; - mOnListItemClickListener = listener; - mIsSingleChoice = false; - return this; - } - public Builder setSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener) { + mItems = mContext.getResources().getTextArray(itemsId); + mItemLayoutResId = R.layout.select_dialog_singlechoice; mAdapter = new ArrayAdapter<>(mContext, R.layout.select_dialog_singlechoice, android.R.id.text1, - mContext.getResources().getTextArray(itemsId)); + mItems); mOnListItemClickListener = listener; mCheckedItem = checkedItem; mIsSingleChoice = true; @@ -388,7 +394,9 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, public Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener) { - mAdapter = new ArrayAdapter(mContext, + mItems = items; + mItemLayoutResId = R.layout.select_dialog_singlechoice; + mAdapter = new ArrayAdapter<>(mContext, R.layout.select_dialog_singlechoice, android.R.id.text1, items); mOnListItemClickListener = listener; mCheckedItem = checkedItem; @@ -396,15 +404,6 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener, return this; } - public Builder setSingleChoiceItems(ListAdapter adapter, - int checkedItem, final OnClickListener listener) { - mAdapter = adapter; - mOnListItemClickListener = listener; - mCheckedItem = checkedItem; - mIsSingleChoice = true; - return this; - } - public Builder setCustomView(@LayoutRes int resId, @Nullable OnCreateCustomViewListener listener) { mCustomViewResId = resId; diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml index 8e957c3f7..d492422a8 100644 --- a/app/src/main/res/values-sw600dp/dimens.xml +++ b/app/src/main/res/values-sw600dp/dimens.xml @@ -26,11 +26,16 @@ 48dp + 100dp + 150dp + - 32dp + 24dp + 16dp - 32dp + 16dp + 24dp 52dp diff --git a/app/src/main/res/values/cardview_attrs.xml b/app/src/main/res/values/cardview_attrs.xml deleted file mode 100644 index 0838ac57c..000000000 --- a/app/src/main/res/values/cardview_attrs.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values/cardview_colors.xml b/app/src/main/res/values/cardview_colors.xml deleted file mode 100644 index 3ed7087fe..000000000 --- a/app/src/main/res/values/cardview_colors.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - #FFFAFAFA - - #FF202020 - - #37000000 - - #03000000 - \ No newline at end of file diff --git a/app/src/main/res/values/cardview_dimens.xml b/app/src/main/res/values/cardview_dimens.xml deleted file mode 100644 index ebfbb3a97..000000000 --- a/app/src/main/res/values/cardview_dimens.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 2dp - - 2dp - - 1dp - \ No newline at end of file diff --git a/app/src/main/res/values/cardview_styles.xml b/app/src/main/res/values/cardview_styles.xml deleted file mode 100644 index 99dfbc98c..000000000 --- a/app/src/main/res/values/cardview_styles.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/cardview_values.xml b/app/src/main/res/values/cardview_values.xml new file mode 100644 index 000000000..a7e527576 --- /dev/null +++ b/app/src/main/res/values/cardview_values.xml @@ -0,0 +1,46 @@ + + + + + + + #FF202020 + #FFFAFAFA + #03000000 + #37000000 + + + + 1dp + 2dp + 2dp + + + + + +