diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-09-15 07:16:28 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-15 07:16:28 -0700 |
| commit | 5c76c5a2ee490812bc267b5893ad879652cfd86f (patch) | |
| tree | efb75bcdce6052983e3ea02ae03b56b6c24d5c4e /src/com | |
| parent | c6c9d2737eea0708b0798477a3da732d2c2e7ba0 (diff) | |
| parent | c905e2f9331f6c7b53bd301ac3ce12d62182cc97 (diff) | |
| download | android_packages_apps_Gallery2-5c76c5a2ee490812bc267b5893ad879652cfd86f.tar.gz android_packages_apps_Gallery2-5c76c5a2ee490812bc267b5893ad879652cfd86f.tar.bz2 android_packages_apps_Gallery2-5c76c5a2ee490812bc267b5893ad879652cfd86f.zip | |
Merge "SnapdragonGallery: Check for dialog before creating new one"
Diffstat (limited to 'src/com')
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; + } } |
