Notification permission texts

This commit is contained in:
M66B
2022-06-09 16:20:25 +02:00
parent 8cd0a811b4
commit de82a780fb
6 changed files with 53 additions and 9 deletions

View File

@@ -27,6 +27,7 @@ import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -46,6 +47,8 @@ public class FragmentDialogStill extends FragmentDialogBase {
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final Context context = getContext();
View dview = LayoutInflater.from(context).inflate(R.layout.dialog_setup, null);
TextView tvContactPermissions = dview.findViewById(R.id.tvContactPermissions);
TextView tvNotificationPermissions = dview.findViewById(R.id.tvNotificationPermissions);
TextView tvDozeDevice = dview.findViewById(R.id.tvDozeDevice);
TextView tvDozeAndroid12 = dview.findViewById(R.id.tvDozeAndroid12);
CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
@@ -68,14 +71,22 @@ public class FragmentDialogStill extends FragmentDialogBase {
}
});
boolean hasPermissions = Helper.hasPermission(context, Manifest.permission.READ_CONTACTS);
boolean hasContactPermissions =
Helper.hasPermission(context, Manifest.permission.READ_CONTACTS);
boolean hasNotificationPermissions =
(Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU ||
Helper.hasPermission(context, Manifest.permission.POST_NOTIFICATIONS));
boolean isIgnoring = !Boolean.FALSE.equals(Helper.isIgnoringOptimizations(context));
boolean canScheduleExact = AlarmManagerCompatEx.canScheduleExactAlarms(getContext());
tvContactPermissions.setVisibility(hasContactPermissions ? View.GONE : View.VISIBLE);
tvNotificationPermissions.setVisibility(hasNotificationPermissions ? View.GONE : View.VISIBLE);
tvDozeDevice.setVisibility(Helper.isKilling() && !isIgnoring ? View.VISIBLE : View.GONE);
tvDozeAndroid12.setVisibility(!canScheduleExact && !isIgnoring ? View.VISIBLE : View.GONE);
grp2.setVisibility(hasPermissions ? View.GONE : View.VISIBLE);
grp2.setVisibility(
hasContactPermissions && hasNotificationPermissions
? View.GONE : View.VISIBLE);
grp3.setVisibility(isIgnoring ? View.GONE : View.VISIBLE);
AlertDialog.Builder builder = new AlertDialog.Builder(context)

View File

@@ -29,6 +29,7 @@ import android.database.Cursor;
import android.database.MatrixCursor;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
@@ -486,10 +487,15 @@ public class FragmentOptions extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean setup_reminder = prefs.getBoolean("setup_reminder", true);
boolean hasPermissions = hasPermission(Manifest.permission.READ_CONTACTS);
boolean hasContactPermissions =
hasPermission(Manifest.permission.READ_CONTACTS);
boolean hasNotificationPermissions =
(Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU ||
hasPermission(Manifest.permission.POST_NOTIFICATIONS));
boolean isIgnoring = !Boolean.FALSE.equals(Helper.isIgnoringOptimizations(getContext()));
if (!setup_reminder || (hasPermissions && isIgnoring))
if (!setup_reminder ||
(hasContactPermissions && hasNotificationPermissions && isIgnoring))
super.finish();
else {
FragmentDialogStill fragment = new FragmentDialogStill();

View File

@@ -99,6 +99,7 @@ public class FragmentSetup extends FragmentBase {
private TextView tvFree;
private TextView tvNoComposable;
private TextView tvNotificationPermissions;
private TextView tvPermissionsDone;
private Button btnPermissions;
private TextView tvPermissionsWhy;
@@ -176,6 +177,7 @@ public class FragmentSetup extends FragmentBase {
tvFree = view.findViewById(R.id.tvFree);
tvNoComposable = view.findViewById(R.id.tvNoComposable);
tvNotificationPermissions = view.findViewById(R.id.tvNotificationPermissions);
tvPermissionsDone = view.findViewById(R.id.tvPermissionsDone);
btnPermissions = view.findViewById(R.id.btnPermissions);
tvPermissionsWhy = view.findViewById(R.id.tvPermissionsWhy);
@@ -685,6 +687,9 @@ public class FragmentSetup extends FragmentBase {
btnIdentity.setEnabled(false);
tvNoComposable.setVisibility(View.GONE);
tvNotificationPermissions.setVisibility(
Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU
? View.GONE : View.VISIBLE);
tvPermissionsDone.setText(null);
tvPermissionsDone.setCompoundDrawables(null, null, null, null);