package at.renehollander.schnitzeljagd.application; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.app.ProgressDialog; import android.content.Context; import android.util.Log; import org.json.JSONException; import org.json.JSONObject; public class Util { public static void displayErrorDialogFromJson(Activity activity, String title, String jsonmessage) { String text = jsonmessage; try { JSONObject msgObject = new JSONObject(jsonmessage); text = msgObject.getString("text"); } catch (JSONException e) { Log.e("errordialog", "error parsing json message", e); } final AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(false); builder.setTitle(title); builder.setMessage(text); builder.setPositiveButton("Ok", (dialog, which) -> { dialog.dismiss(); }); activity.runOnUiThread(() -> { AlertDialog alertDialog = builder.create(); alertDialog.show(); }); } public static void displayErrorDialogFromString(Activity activity, String title, String msg) { final AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(false); builder.setTitle(title); builder.setMessage(msg); builder.setPositiveButton("Ok", (dialog, which) -> { dialog.dismiss(); }); activity.runOnUiThread(() -> { AlertDialog alertDialog = builder.create(); alertDialog.show(); }); } public static void displayErrorDialogFromThrowable(Activity activity, String title, Throwable t) { String text = t.getMessage(); final AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(false); builder.setTitle(title); builder.setMessage(text); builder.setPositiveButton("Ok", (dialog, which) -> { dialog.dismiss(); }); activity.runOnUiThread(() -> { AlertDialog alertDialog = builder.create(); alertDialog.show(); }); } public static void displayWonDialog(Activity activity) { final AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(false); builder.setTitle("YOU MADE IT!"); builder.setMessage("You made it!\nCongrats m80's"); builder.setPositiveButton("Ok", (dialog, which) -> { dialog.dismiss(); }); activity.runOnUiThread(() -> { AlertDialog alertDialog = builder.create(); alertDialog.show(); }); } public static ProgressDialog createProgressDialog(Activity activity) { ProgressDialog progressDialog = new ProgressDialog(activity); progressDialog.setTitle("Laden..."); progressDialog.setMessage("Lade Daten herunter, bitte warten..."); progressDialog.setCancelable(false); progressDialog.setIndeterminate(false); progressDialog.show(); return progressDialog; } public static void addFragment(Activity activity, int id, Fragment target) { activity.getFragmentManager().beginTransaction().add(id, target).commit(); } public static void removeFragment(Activity activity, Fragment target) { activity.getFragmentManager().beginTransaction().remove(target).commit(); } public static void replaceFragment(Activity activity, int id, Fragment target) { activity.getFragmentManager().beginTransaction().replace(id, target).commit(); } public static Schnitzeljagd getSchnitzeljagd(Activity activity) { if (activity.getApplication() instanceof SchnitzeljagdApplication) { return ((SchnitzeljagdApplication) activity.getApplication()).getSchnitzeljagd(); } else { throw new IllegalArgumentException("ApplicationClass is not of type SchnitzeljagdApplication"); } } }