Notification permission texts

pull/208/head
M66B 2 years ago
parent 8cd0a811b4
commit de82a780fb

@ -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);

@ -46,7 +46,7 @@
app:layout_constraintTop_toTopOf="@id/two" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPermissions"
android:id="@+id/tvContactPermissions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
@ -55,6 +55,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title2" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvNotificationPermissions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_setup_permissions_notify_explanation"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvContactPermissions" />
<eu.faircode.email.FixedImageView
android:id="@+id/three"
android:layout_width="30dp"
@ -62,7 +72,7 @@
android:layout_marginTop="24dp"
android:contentDescription="3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPermissions"
app:layout_constraintTop_toBottomOf="@id/tvNotificationPermissions"
app:srcCompat="@drawable/twotone_looks_3_24" />
<eu.faircode.email.FixedTextView
@ -133,7 +143,7 @@
android:id="@+id/grp2"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="two,title2,tvPermissions" />
app:constraint_referenced_ids="two,title2" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grp3"

@ -579,7 +579,7 @@
app:layout_constraintTop_toTopOf="@id/two" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPermissions"
android:id="@+id/tvContactPermissions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
@ -588,6 +588,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title2" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvNotificationPermissions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_setup_permissions_notify"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvContactPermissions" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPermissionsDone"
android:layout_width="wrap_content"
@ -610,7 +620,7 @@
android:drawablePadding="6dp"
android:text="@string/title_setup_grant"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPermissions" />
app:layout_constraintTop_toBottomOf="@id/tvNotificationPermissions" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPermissionsWhy"

@ -233,6 +233,8 @@
<string name="title_setup_permissions">Grant permissions</string>
<string name="title_setup_permissions_remark">To access contact information (optional)</string>
<string name="title_setup_permissions_explanation">Contact permissions are required to look up contact info and to suggest contacts</string>
<string name="title_setup_permissions_notify">To show new messages notifications (optional)</string>
<string name="title_setup_permissions_notify_explanation">Notification permissions are required to display new message status bar notifications</string>
<string name="title_setup_permission_why">Which permissions are needed and why?</string>
<string name="title_setup_permission_import_contacts">How can I import contacts?</string>
<string name="title_setup_doze">Disable battery optimizations</string>

Loading…
Cancel
Save