This commit is contained in:
seven332 committed 2015-06-03 19:00:10 +08:00
1 parent cba2811ec5
commit 6136b5c9c2
9 files changed
+91 -163

No files matched your search

@@ -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;
}
}
}
}
@@ -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
@@ -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<CharSequence>(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;