Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c905e2f9 authored by Jay Wang's avatar Jay Wang Committed by Gerrit - the friendly Code Review server
Browse files

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
parent eeb2253d
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -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(
            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(getFragmentManager(), "trueportrait_edit_intro");
                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();
            }
        }
    }

+33 −11
Original line number Diff line number Diff line
@@ -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(
                FragmentManager fm = ((FilterShowActivity)mContext).getSupportFragmentManager();
                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 onDismiss(DialogInterface dialog) {
                        super.onDismiss(dialog);
                        MasterImage.getImage().getActivity().pickImage(FilterShowActivity.SELECT_FUSION_UNDERLAY);
                        public void onCancel(DialogInterface dialog) {
                            super.onCancel(dialog);
                            FilterShowActivity activity = (FilterShowActivity) mContext;
                            activity.cancelCurrentFilter();
                            activity.leaveSeekBarPanel();
                        }
                    };
                FragmentManager fm = ((FilterShowActivity)mContext).getSupportFragmentManager();
                dialog.setCancelable(false);
                    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();
                }
            }
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -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();
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -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;
    }
}