SD-188 - navigate to phone settings if permission is denied

This commit is contained in:
2022-03-24 12:16:30 +02:00
parent 66625bcdd1
commit 81937a5e0f
7 changed files with 75 additions and 42 deletions

View File

@ -2,15 +2,12 @@ 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<Boolean> showDialog(Activity activity, String title, String message, String cancel, String ok) {
@ -20,7 +17,7 @@ public class DialogService implements IDialogService {
.setMessage(message)
.setCancelable(false)
.setNegativeButton(cancel, (dialog, which) -> {
taskCompletionSource.trySetResult(false);
taskCompletionSource.trySetResult(false);
dialog.dismiss();
})
.setPositiveButton(ok, (dialog, which) -> taskCompletionSource.trySetResult(true));
@ -32,19 +29,22 @@ public class DialogService implements IDialogService {
}
@Override
public Task<Boolean> showPermissionRequestDialog(Activity activity, String title, String message, String cancel) {
return showDialog(activity,title,message,cancel, activity.getString(R.string.go_to_settings));
public Task<Boolean> showPermissionRequestDialog(Activity activity, String message, String cancel) {
return showDialog(
activity,
activity.getString(R.string.permission_denied),
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();
showDialog(
activity,
activity.getString(R.string.DialogService_Info_ErrorMessage),
message,
null,
activity.getString(R.string.ok));
}
}