summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-09-13 17:07:14 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-14 12:08:08 -0700
commitc905e2f9331f6c7b53bd301ac3ce12d62182cc97 (patch)
treea56f640dcfeeb628c9d2123be470b5af090669a5
parenteeb2253db1ee359acb0ec0df177290d7d1d15c29 (diff)
downloadandroid_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
-rw-r--r--src/com/android/gallery3d/filtershow/category/TruePortraitMaskEditorPanel.java25
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorTruePortraitFusion.java44
-rw-r--r--src/com/android/gallery3d/filtershow/ui/AlertMsgDialog.java2
-rw-r--r--src/com/android/gallery3d/filtershow/ui/DoNotShowAgainDialog.java9
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;
+ }
}