Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c44d17f authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Check for notification permission first

parent d66f6966
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -16,11 +16,15 @@

package org.dmfs.tasks.actions;

import android.Manifest;
import android.content.ContentProviderClient;
import android.content.ContentUris;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.Uri;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;

import org.dmfs.android.contentpal.RowDataSnapshot;
import org.dmfs.tasks.contract.TaskContract;

@@ -44,6 +48,9 @@ public final class CancelNotificationAction implements TaskAction {
    @Override
    public void execute(Context context, ContentProviderClient contentProviderClient,
            RowDataSnapshot<TaskContract.Instances> rowSnapshot, Uri taskUri) {
        if (ContextCompat.checkSelfPermission(context,
                Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
            NotificationManagerCompat.from(context).cancel(mNotificationTag, (int) ContentUris.parseId(taskUri));
        }
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package org.dmfs.tasks.actions;

import android.Manifest;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
@@ -24,6 +25,7 @@ import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.OperationApplicationException;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.RemoteException;
@@ -31,6 +33,8 @@ import android.text.format.DateUtils;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;

import org.dmfs.android.bolts.color.colors.AttributeColor;
import org.dmfs.android.contentpal.RowDataSnapshot;
import org.dmfs.jems.function.Function;
@@ -173,8 +177,11 @@ public final class NotifyAction implements TaskAction {
                new ContextThemeWrapper(context, org.dmfs.android.sync.opentasks_theme.R.style.OpenTasks_Theme_Default),
                androidx.appcompat.R.attr.colorPrimary).argb());
        // builder.setColor(new EffectiveTaskColor(data).argb());
        if (ContextCompat.checkSelfPermission(context,
                Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
            NotificationManagerCompat.from(context).notify("tasks", notificationId, builder.build());
        }
    }

    private CharSequence contentText(Context context, RowDataSnapshot<TaskContract.Instances> data) {
        Optional<DateTime> start = new TaskStart(data);
+8 −1
Original line number Diff line number Diff line
@@ -16,18 +16,22 @@

package org.dmfs.tasks.actions;

import android.Manifest;
import android.app.PendingIntent;
import android.content.ContentProviderClient;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.OperationApplicationException;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.RemoteException;
import android.widget.RemoteViews;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;

import org.dmfs.android.bolts.color.colors.AttributeColor;
import org.dmfs.android.contentpal.RowDataSnapshot;
import org.dmfs.tasks.R;
@@ -79,6 +83,9 @@ public final class PostUndoAction implements TaskAction {
                new ContextThemeWrapper(context, org.dmfs.android.sync.opentasks_theme.R.style.OpenTasks_Theme_Default),
                androidx.appcompat.R.attr.colorPrimary).argb());

        if (ContextCompat.checkSelfPermission(context,
                Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
            NotificationManagerCompat.from(context).notify("tasks.undo", id, builder.build());
        }
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -16,16 +16,20 @@

package org.dmfs.tasks.notification;

import android.Manifest;
import android.app.Notification;
import android.app.Service;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.core.app.JobIntentService;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;

import org.dmfs.android.contentpal.predicates.AnyOf;
import org.dmfs.android.contentpal.predicates.EqArg;
import org.dmfs.android.contentpal.predicates.In;
@@ -146,6 +150,9 @@ public class TaskNotificationService extends JobIntentService {

    private void removeTaskNotification(Uri uri) {
        mNotificationPrefs.edit().remove(uri.toString()).apply();
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
            NotificationManagerCompat.from(this).cancel("tasks", (int) ContentUris.parseId(uri));
        }
    }
}