Android Open Source - RateMyApp Show Dialog Action






From Project

Back to project page RateMyApp.

License

The source code is released under:

MIT License

If you think the Android project RateMyApp listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.mariosangiorgio.ratemyapp.actions;
/*from   www  .  ja va 2  s . c o  m*/
import android.app.FragmentManager;
import android.content.Context;

import com.mariosangiorgio.ratemyapp.PreferencesManager;
import com.mariosangiorgio.ratemyapp.dialogs.AbstractDialogFragment;
import com.mariosangiorgio.ratemyapp.dialogs.NumberOfStarsDialog;
import com.mariosangiorgio.ratemyapp.dialogs.SendEmailDialog;
import com.mariosangiorgio.ratemyapp.dialogs.WantToRateDialog;
import com.mariosangiorgio.ratemyapp.listeners.DialogClickListener;
import com.mariosangiorgio.ratemyapp.listeners.NumberOfStarsDialogListener;
import com.mariosangiorgio.ratemyapp.listeners.SentEmailDialogListener;
import com.mariosangiorgio.ratemyapp.listeners.WantToRateDialogListener;

public class ShowDialogAction implements Action {
    private final String tag;
    private final Class<? extends AbstractDialogFragment> fragmentDialogClass;
    private final DialogClickListener actualListener;

    public ShowDialogAction(DialogClickListener actualListener,
                            Class<? extends AbstractDialogFragment> fragmentDialogClass,
                            String tag){

        if(actualListener == null){
            throw new IllegalArgumentException("actualListener can not be null");
        }
        this.actualListener = actualListener;

        if(fragmentDialogClass == null) {
            throw new IllegalArgumentException("FragmentDialog class can not be null");
        }
        this.fragmentDialogClass = fragmentDialogClass;

        if(tag == null){
            throw new IllegalArgumentException("fragment tag cannot be null.");
        }
        this.tag = tag;
    }

    @Override
    public void execute(Context context, FragmentManager fragmentManager){
        try {
            AbstractDialogFragment dialogFragment = fragmentDialogClass.newInstance();
            dialogFragment.setActualListener(actualListener);
            dialogFragment.show(fragmentManager, tag);
        } catch (Exception e) { }
    }

    public final static class ShowDialogActionFactory {
        private ShowDialogActionFactory() { }

        public static ShowDialogAction getWantToRateAction(PreferencesManager preferencesManager) {
            return new ShowDialogAction(
                    new WantToRateDialogListener(preferencesManager, new OpenPlayStoreAction(preferencesManager))
                    , WantToRateDialog.class
                    , WantToRateDialog.class.getSimpleName());
        }

        public static ShowDialogAction getWantToRateAction(PreferencesManager preferencesManager, String emailAddress) {
            return getWantToRateAction(preferencesManager, emailAddress, null);
        }

        public static ShowDialogAction getWantToRateAction(PreferencesManager preferencesManager, String emailAddress, String emailMessage) {
            Action negativeEmailAction = new ShowDialogAction(
                    new SentEmailDialogListener(preferencesManager, emailAddress, emailMessage),
                    SendEmailDialog.class,
                    SendEmailDialog.class.getSimpleName()
            );

            Action numberOfStarsAction = new ShowDialogAction(
                    new NumberOfStarsDialogListener(new OpenPlayStoreAction(preferencesManager), negativeEmailAction),
                    NumberOfStarsDialog.class,
                    NumberOfStarsDialog.class.getSimpleName()
            );

            return new ShowDialogAction(
                    new WantToRateDialogListener(preferencesManager, numberOfStarsAction)
                    , WantToRateDialog.class
                    , WantToRateDialog.class.getSimpleName());
        }
    }
}




Java Source Code List

com.mariosangiorgio.ratemyapp.ContextUtils.java
com.mariosangiorgio.ratemyapp.OptionalValue.java
com.mariosangiorgio.ratemyapp.PreferencesManager.java
com.mariosangiorgio.ratemyapp.RateMyAppBuilder.java
com.mariosangiorgio.ratemyapp.RateMyApp.java
com.mariosangiorgio.ratemyapp.SharedPreferencesManager.java
com.mariosangiorgio.ratemyapp.actions.Action.java
com.mariosangiorgio.ratemyapp.actions.OpenPlayStoreAction.java
com.mariosangiorgio.ratemyapp.actions.ShowDialogAction.java
com.mariosangiorgio.ratemyapp.dialogs.AbstractDialogFragment.java
com.mariosangiorgio.ratemyapp.dialogs.NumberOfStarsDialog.java
com.mariosangiorgio.ratemyapp.dialogs.SendEmailDialog.java
com.mariosangiorgio.ratemyapp.dialogs.WantToRateDialog.java
com.mariosangiorgio.ratemyapp.listeners.DialogClickListener.java
com.mariosangiorgio.ratemyapp.listeners.NumberOfStarsDialogListener.java
com.mariosangiorgio.ratemyapp.listeners.SentEmailDialogListener.java
com.mariosangiorgio.ratemyapp.listeners.WantToRateDialogListener.java
com.mariosangiorgio.ratemyapp.sample.MainActivity.java