summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
+ }
}