53 lines
2.2 KiB
Java
53 lines
2.2 KiB
Java
package com.fluxup.app;
|
|
|
|
import com.fluxup.app.R;
|
|
|
|
import android.app.NotificationChannel;
|
|
import android.app.NotificationManager;
|
|
import android.app.PendingIntent;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.os.Build;
|
|
import androidx.core.app.NotificationCompat;
|
|
import androidx.core.app.NotificationManagerCompat;
|
|
import android.Manifest;
|
|
import android.content.pm.PackageManager;
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
public class NotificationHelper {
|
|
private static final String CHANNEL_ID = "fluxup_notifications";
|
|
private static final String CHANNEL_NAME = "Fluxup Reminders";
|
|
|
|
public static void showNotification(Context context, String title, String message) {
|
|
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
|
|
notificationManager.createNotificationChannel(channel);
|
|
}
|
|
|
|
Intent intent = new Intent(context, MainActivity.class);
|
|
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent,
|
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
|
|
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
|
|
.setSmallIcon(R.drawable.ic_nav_home)
|
|
.setContentTitle(title)
|
|
.setContentText(message)
|
|
.setAutoCancel(true)
|
|
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
|
.setContentIntent(pendingIntent);
|
|
|
|
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
|
|
|
|
// Verificar permissão no Android 13+
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
notificationManagerCompat.notify((int) System.currentTimeMillis(), builder.build());
|
|
}
|
|
}
|