diff options
| author | Jay Wang <jaywang@codeaurora.org> | 2016-09-13 17:07:14 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-14 12:08:08 -0700 |
| commit | c905e2f9331f6c7b53bd301ac3ce12d62182cc97 (patch) | |
| tree | a56f640dcfeeb628c9d2123be470b5af090669a5 | |
| parent | eeb2253db1ee359acb0ec0df177290d7d1d15c29 (diff) | |
| download | android_packages_apps_Gallery2-c905e2f9331f6c7b53bd301ac3ce12d62182cc97.tar.gz android_packages_apps_Gallery2-c905e2f9331f6c7b53bd301ac3ce12d62182cc97.tar.bz2 android_packages_apps_Gallery2-c905e2f9331f6c7b53bd301ac3ce12d62182cc97.zip | |
SnapdragonGallery: Check for dialog before creating new one
Check to see if dialog fragment already exists before creating
new one. If exists, show that one.
Use positive button instead of neutral button for OK.
CRs-Fixed: 1062659
Change-Id: I963cc91888217f00e9aceb820962ecc4f043a693
4 files changed, 62 insertions, 18 deletions
diff --git a/src/com/android/gallery3d/filtershow/category/TruePortraitMaskEditorPanel.java b/src/com/android/gallery3d/filtershow/category/TruePortraitMaskEditorPanel.java index 03935edc0..4390b90a7 100644 --- a/src/com/android/gallery3d/filtershow/category/TruePortraitMaskEditorPanel.java +++ b/src/com/android/gallery3d/filtershow/category/TruePortraitMaskEditorPanel.java @@ -33,6 +33,8 @@ package com.android.gallery3d.filtershow.category; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -69,11 +71,24 @@ public class TruePortraitMaskEditorPanel extends Fragment { boolean skipIntro = GalleryUtils.getBooleanPref(context, context.getString(R.string.pref_trueportrait_edit_intro_show_key), false); if(!skipIntro) { - DoNotShowAgainDialog dialog = new DoNotShowAgainDialog( - R.string.trueportrait_touch_up, R.string.trueportrait_edit_intro, - R.string.pref_trueportrait_edit_intro_show_key); - dialog.setCancelable(false); - dialog.show(getFragmentManager(), "trueportrait_edit_intro"); + FragmentManager fm = getFragmentManager(); + DoNotShowAgainDialog dialog = + (DoNotShowAgainDialog) fm.findFragmentByTag("trueportrait_edit_intro"); + if(dialog == null) { + dialog = new DoNotShowAgainDialog( + R.string.trueportrait_touch_up, R.string.trueportrait_edit_intro, + R.string.pref_trueportrait_edit_intro_show_key); + dialog.setCancelable(false); + dialog.show(fm, "trueportrait_edit_intro"); + } else if (dialog.isDetached()) { + FragmentTransaction ft = fm.beginTransaction(); + ft.attach(dialog); + ft.commit(); + } else if (dialog.isHidden()) { + FragmentTransaction ft = fm.beginTransaction(); + ft.show(dialog); + ft.commit(); + } } } diff --git a/src/com/android/gallery3d/filtershow/editors/EditorTruePortraitFusion.java b/src/com/android/gallery3d/filtershow/editors/EditorTruePortraitFusion.java index cfeea1375..da6118c63 100644 --- a/src/com/android/gallery3d/filtershow/editors/EditorTruePortraitFusion.java +++ b/src/com/android/gallery3d/filtershow/editors/EditorTruePortraitFusion.java @@ -37,6 +37,7 @@ import android.content.Context; import android.content.DialogInterface; import android.net.Uri; import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; @@ -46,6 +47,7 @@ import android.widget.FrameLayout; import android.widget.LinearLayout; import org.codeaurora.gallery.R; + import com.android.gallery3d.filtershow.FilterShowActivity; import com.android.gallery3d.filtershow.filters.FilterRepresentation; import com.android.gallery3d.filtershow.filters.FilterTruePortraitFusionRepresentation; @@ -171,18 +173,38 @@ public class EditorTruePortraitFusion extends Editor { boolean skipIntro = GalleryUtils.getBooleanPref(mContext, mContext.getString(R.string.pref_trueportrait_fusion_intro_show_key), false); if(!skipIntro) { - DoNotShowAgainDialog dialog = new DoNotShowAgainDialog( - R.string.fusion_pick_background, R.string.trueportrait_fusion_intro, - R.string.pref_trueportrait_fusion_intro_show_key) { - @Override - public void onDismiss(DialogInterface dialog) { - super.onDismiss(dialog); - MasterImage.getImage().getActivity().pickImage(FilterShowActivity.SELECT_FUSION_UNDERLAY); - } - }; FragmentManager fm = ((FilterShowActivity)mContext).getSupportFragmentManager(); - dialog.setCancelable(false); - dialog.show(fm, "trueportrait_fusion_intro"); + DoNotShowAgainDialog dialog = + (DoNotShowAgainDialog) fm.findFragmentByTag("trueportrait_fusion_intro"); + if(dialog == null) { + dialog = new DoNotShowAgainDialog( + R.string.fusion_pick_background, R.string.trueportrait_fusion_intro, + R.string.pref_trueportrait_fusion_intro_show_key) { + @Override + public void onCancel(DialogInterface dialog) { + super.onCancel(dialog); + FilterShowActivity activity = (FilterShowActivity) mContext; + activity.cancelCurrentFilter(); + activity.leaveSeekBarPanel(); + } + }; + dialog.setOnOkButtonClickListener(new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + MasterImage.getImage().getActivity().pickImage(FilterShowActivity.SELECT_FUSION_UNDERLAY); + } + }); + dialog.setCancelable(true); + dialog.show(fm, "trueportrait_fusion_intro"); + } else if (dialog.isDetached()) { + FragmentTransaction ft = fm.beginTransaction(); + ft.attach(dialog); + ft.commit(); + } else if (dialog.isHidden()) { + FragmentTransaction ft = fm.beginTransaction(); + ft.show(dialog); + ft.commit(); + } } } } diff --git a/src/com/android/gallery3d/filtershow/ui/AlertMsgDialog.java b/src/com/android/gallery3d/filtershow/ui/AlertMsgDialog.java index 2041eb2ce..252e32ca7 100644 --- a/src/com/android/gallery3d/filtershow/ui/AlertMsgDialog.java +++ b/src/com/android/gallery3d/filtershow/ui/AlertMsgDialog.java @@ -51,7 +51,7 @@ public class AlertMsgDialog extends DialogFragment { ab.setTitle(mTitleId); ab.setMessage(mMessageId); ab.setCancelable(false); - ab.setNeutralButton(R.string.ok, null); + ab.setPositiveButton(R.string.ok, null); return ab.create(); } } diff --git a/src/com/android/gallery3d/filtershow/ui/DoNotShowAgainDialog.java b/src/com/android/gallery3d/filtershow/ui/DoNotShowAgainDialog.java index aad403bd1..e9245d540 100644 --- a/src/com/android/gallery3d/filtershow/ui/DoNotShowAgainDialog.java +++ b/src/com/android/gallery3d/filtershow/ui/DoNotShowAgainDialog.java @@ -48,11 +48,13 @@ public class DoNotShowAgainDialog extends DialogFragment { private int mTitleId; private int mMessageId; private CheckBox mDoNotShowAgainChk; + private DialogInterface.OnClickListener mButtonClickListener; public DoNotShowAgainDialog(int titleId, int msgId, int sharedPrefKeyId) { mTitleId = titleId; mMessageId = msgId; mSharedPrefKeyId = sharedPrefKeyId; + mButtonClickListener = null; } @Override @@ -67,13 +69,18 @@ public class DoNotShowAgainDialog extends DialogFragment { ab.setTitle(mTitleId); ab.setView(view); ab.setCancelable(false); - ab.setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() { + ab.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Context context = getActivity(); GalleryUtils.setBooleanPref(context, context.getString(mSharedPrefKeyId), mDoNotShowAgainChk.isChecked()); + if(mButtonClickListener != null) mButtonClickListener.onClick(dialog, id); } }); return ab.create(); } + + public void setOnOkButtonClickListener(DialogInterface.OnClickListener listener) { + mButtonClickListener = listener; + } } |
