Keep scene after Activity restart
This commit is contained in:
1 parent
588b255788
commit
5a2a5b4289
8 files changed
+75
-161
No files matched your search
@@ -28,7 +28,6 @@ import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.Space;
|
||||
@@ -38,8 +37,6 @@ import com.hippo.effect.ripple.RippleSalon;
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.util.ViewUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
SceneDialogView.OnClickOutOfDialogListener, AdapterView.OnItemClickListener {
|
||||
|
||||
@@ -106,28 +103,8 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSave(Map<String, Object> transferStop) {
|
||||
super.onSave(transferStop);
|
||||
|
||||
transferStop.put("builder", mBuilder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestore(Map<String, Object> transferStop) {
|
||||
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
|
||||
protected void onDestroy(boolean willSave) {
|
||||
super.onDestroy(willSave);
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
OnCloseListener listener = mBuilder.mOnCloseListener;
|
||||
if (listener != null) {
|
||||
@@ -152,8 +129,9 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
mMessage.setText(mBuilder.mMessage);
|
||||
ViewUtils.setVisibility(mListView, View.GONE);
|
||||
ViewUtils.setVisibility(mCustom, View.GONE);
|
||||
} else if (mBuilder.mAdapter != null) {
|
||||
listView.setAdapter(mBuilder.mAdapter);
|
||||
} else if (mBuilder.mItemLayoutResId != 0) {
|
||||
listView.setAdapter(new ArrayAdapter<>(getStageActivity(),
|
||||
mBuilder.mItemLayoutResId, android.R.id.text1, mBuilder.mItems));
|
||||
listView.setOnItemClickListener(this);
|
||||
if (mBuilder.mIsSingleChoice) {
|
||||
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
||||
@@ -319,7 +297,6 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
|
||||
private CharSequence[] mItems;
|
||||
private int mItemLayoutResId;
|
||||
private ListAdapter mAdapter;
|
||||
private OnClickListener mOnListItemClickListener;
|
||||
protected int mCheckedItem;
|
||||
protected boolean mIsSingleChoice;
|
||||
@@ -362,8 +339,6 @@ 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, mItems);
|
||||
mOnListItemClickListener = listener;
|
||||
mIsSingleChoice = false;
|
||||
return this;
|
||||
@@ -373,8 +348,6 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
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;
|
||||
mIsSingleChoice = false;
|
||||
return this;
|
||||
@@ -384,9 +357,6 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
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,
|
||||
mItems);
|
||||
mOnListItemClickListener = listener;
|
||||
mCheckedItem = checkedItem;
|
||||
mIsSingleChoice = true;
|
||||
@@ -397,8 +367,6 @@ public class SimpleDialog extends SceneDialog implements View.OnClickListener,
|
||||
int checkedItem, final OnClickListener listener) {
|
||||
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;
|
||||
mIsSingleChoice = true;
|
||||
|
||||
Reference in new issue
Block a user