package com.aptoide.amethyst.dialogs;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.aptoide.amethyst.Aptoide;
import com.aptoide.amethyst.R;
import com.aptoide.amethyst.analytics.Analytics;
import com.aptoide.amethyst.events.BusProvider;
import com.aptoide.amethyst.events.OttoEvents;
import com.aptoide.amethyst.preferences.SecurePreferences;
import com.aptoide.dataprovider.webservices.models.Constants;
/**
* Created by rmateus on 07-03-2014.
*/
public class AdultDialog extends DialogFragment {
public static final String MATUREPIN = "Maturepin";
@Override
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
BusProvider.getInstance().post(new OttoEvents.MatureEvent(false));
}
@Override
public void onDetach() {
super.onDetach();
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return buildAreYouAdultDialog(getActivity(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
BusProvider.getInstance().post(new OttoEvents.MatureEvent(true));
PreferenceManager.getDefaultSharedPreferences(Aptoide.getContext()).edit().putBoolean(Constants.MATURE_CHECK_BOX, true).apply();
} else {
BusProvider.getInstance().post(new OttoEvents.MatureEvent(false));
}
}
});
}
public static Dialog dialogRequestMaturepin(final Context context, final DialogInterface.OnClickListener positiveButtonlistener) {
final View v = LayoutInflater.from(context).inflate(R.layout.dialog_requestpin, null);
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
int pin = SecurePreferences.getInstance().getInt(AdultDialog.MATUREPIN, -1);
String pintext = ((EditText) v.findViewById(R.id.pininput)).getText().toString();
if (pintext.length() > 0 && Integer.valueOf(pintext) == pin) {
// FlurryAgent.logEvent("Dialog_Adult_Content_Inserted_Pin");
positiveButtonlistener.onClick(dialog, which);
} else {
// FlurryAgent.logEvent("Dialog_Adult_Content_Inserted_Wrong_Pin");
Toast.makeText(context, context.getString(R.string.adult_pin_wrong), Toast.LENGTH_SHORT).show();
dialogRequestMaturepin(context, positiveButtonlistener).show();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
positiveButtonlistener.onClick(dialog, which);
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setMessage(R.string.request_adult_pin)
.setView(v)
.setPositiveButton(android.R.string.ok, onClickListener)
.setNegativeButton(android.R.string.cancel, onClickListener);
return builder.create();
}
private static Dialog dialogAsk21(final Context c, final DialogInterface.OnClickListener positiveButtonlistener) {
return new AlertDialog.Builder(c)
.setMessage(c.getString(R.string.are_you_adult))
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// FlurryAgent.logEvent("Dialog_Adult_Content_Confirmed_More_Than_21_Years_Old");
positiveButtonlistener.onClick(dialog, which);
Analytics.AdultContent.unlock();
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Analytics.AdultContent.lock();
}
})
.create();
}
public static Dialog buildAreYouAdultDialog(final Context c, final DialogInterface.OnClickListener positiveButtonlistener) {
int pin = SecurePreferences.getInstance().getInt(MATUREPIN, -1);
if (pin == -1) {
return dialogAsk21(c, positiveButtonlistener);
} else {
// FlurryAgent.logEvent("Dialog_Adult_Content_Requested_Mature_Content_Pin");
return dialogRequestMaturepin(c, positiveButtonlistener);
}
}
}