package com.safemobile.lib; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import com.google.android.gms.tasks.Task; import com.google.android.gms.tasks.TaskCompletionSource; import com.safemobile.dispatch.R; import com.safemobile.interfaces.IDialogService; import java.util.concurrent.atomic.AtomicBoolean; public class DialogService implements IDialogService { @Override public Task showDialog(Activity activity, String title, String message, String cancel, String ok) { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); AlertDialog.Builder builder = new AlertDialog.Builder(activity) .setTitle(title) .setMessage(message) .setCancelable(false) .setNegativeButton(cancel, (dialog, which) -> { taskCompletionSource.trySetResult(false); dialog.dismiss(); }) .setPositiveButton(ok, (dialog, which) -> taskCompletionSource.trySetResult(true)); AlertDialog dialog = builder.create(); dialog.show(); return taskCompletionSource.getTask(); } @Override public Task showPermissionRequestDialog(Activity activity, String title, String message, String cancel) { return showDialog(activity,title,message,cancel, activity.getString(R.string.go_to_settings)); } @Override public void showError(Activity activity, String message) { AlertDialog.Builder builder = new AlertDialog.Builder(activity) .setTitle(R.string.DialoService_Info_ErrorMessage) .setMessage(message) .setCancelable(false) .setNeutralButton(R.string.ok, (dialog, which) -> dialog.dismiss()); AlertDialog dialog = builder.create(); dialog.show(); } }