mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-10 11:03:41 +02:00
Notification permission texts
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user