package com.malcom.library.android.module.config; import java.util.regex.Pattern; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.util.Log; /** * This class has some utility methods to be used by configuration module. * * @author Malcom Ventures, S.L. * @since 2012 * */ public class ConfigurationUtils { /** * Creates an alert dialog of the specified type in the configuration. Available ones * are INFO, BLOCK, FORCE and SUGGEST. * * @param context * @param configuration * @param activity * @return */ public static AlertDialog createAlertDialog(Activity context, Configuration configuration){ Log.d("Create alert", configuration.getAlertMsg()); System.out.println("___________________Tipo de alerta: "+configuration.getAlertType()); if (configuration.getAlertType().equals("INFO")) { return generateDialogINFO(context, configuration.getAlertMsg()); } else if (configuration.getAlertType().equals("BLOCK")) { return generateDialogBLOCK(context, configuration.getAlertMsg()); } else if (configuration.getAlertType().equals("FORCE")) { return generateDialogFORCE(context, configuration.getAlertMsg(), configuration.getAlertUrlAppStore()); } else if (configuration.getAlertType().equals("SUGGEST")) { return generateDialogSUGGESTS(context, configuration.getAlertMsg(), configuration.getAlertUrlAppStore()); } else{ return null; } } /** * Normalises the version string with the specified format. * * @param version * @param sep * @param maxWidth * @return */ public static String normalisedVersion(String version, String sep, int maxWidth) { String[] split = Pattern.compile(sep, Pattern.LITERAL).split(version); StringBuilder sb = new StringBuilder(); for (String s : split) { sb.append(String.format("%" + maxWidth + 's', s)); } return sb.toString(); } // AUXILIAR METHODS private static AlertDialog generateDialogINFO(final Activity context, final String msg){ return new AlertDialog.Builder(context).setTitle("") .setMessage(msg).setNeutralButton("Aceptar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //context.startActivity(activity); //context.finish(); } }).show(); } private static AlertDialog generateDialogBLOCK(final Activity context, final String msg){ return new AlertDialog.Builder(context).setTitle("") .setMessage(msg).setNegativeButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { context.finish(); } }).show(); } private static AlertDialog generateDialogFORCE(final Activity context, final String msg, final String urlAppStore){ return new AlertDialog.Builder(context).setTitle("") .setMessage(msg).setNegativeButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { context.finish(); } }) .setPositiveButton("Actualizar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(urlAppStore)); context.startActivity(intent); //context.finish(); } }).show(); } private static AlertDialog generateDialogSUGGESTS(final Activity context, final String msg, final String urlAppStore){ return new AlertDialog.Builder(context).setTitle("") .setMessage(msg).setNegativeButton("Aceptar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //context.startActivity(activity); //context.finish(); } }) .setPositiveButton("Actualizar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(urlAppStore)); context.startActivity(intent); //context.finish(); } }).show(); } }