mirror of
https://github.com/jfoucry/Pilldroid.git
synced 2024-11-14 01:21:35 +01:00
New NotificationPublisher for android >= 28;
Optimize import.
This commit is contained in:
parent
b2287c99d4
commit
0afb8bf34e
1 changed files with 55 additions and 15 deletions
|
@ -1,35 +1,75 @@
|
||||||
package net.foucry.pilldroid;
|
package net.foucry.pilldroid;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.NotificationChannel;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.VibrationEffect;
|
|
||||||
import android.os.Vibrator;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by jfoucry on 6/23/16.
|
* Created by jfoucry on 6/23/16.
|
||||||
|
* Publish notification
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
public class NotificationPublisher extends BroadcastReceiver {
|
public class NotificationPublisher extends BroadcastReceiver {
|
||||||
|
|
||||||
private static String TAG = NotificationPublisher.class.getName();
|
private static String TAG = NotificationPublisher.class.getName();
|
||||||
public static String NOTIFICATION_ID = "notification-id";
|
public static String NOTIFICATION_ID = "notification-id";
|
||||||
public static String NOTIFICATION = "notification";
|
public static String NOTIFICATION = "notification";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* onReceive notification
|
||||||
|
* @param Context context
|
||||||
|
* @param Intent intent
|
||||||
|
*/
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.i(TAG, "Receive notification");
|
Log.d(TAG, "Receive notification");
|
||||||
|
|
||||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
String channel_id = createNotificationChannel(context);
|
||||||
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channel_id)
|
||||||
Notification notification = intent.getParcelableExtra(NOTIFICATION);
|
.setSmallIcon(R.drawable.ic_pill)
|
||||||
int id = intent.getIntExtra(NOTIFICATION_ID,0);
|
.setContentTitle(context.getString(R.string.app_name))
|
||||||
if (notificationManager != null) {
|
.setContentText(context.getString(R.string.pharmacy))
|
||||||
notificationManager.notify(id, notification);
|
.setStyle(new NotificationCompat.BigTextStyle()
|
||||||
}
|
.bigText(context.getString(R.string.pharmacy)))
|
||||||
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||||
assert vibrator != null;
|
|
||||||
vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* createNotificationChannelid for android API >= 28
|
||||||
|
* @param Context context
|
||||||
|
* @return String channel_id
|
||||||
|
*/
|
||||||
|
public static String createNotificationChannel(Context context) {
|
||||||
|
|
||||||
|
// The id of the channel.
|
||||||
|
String channelId = "Channel_id";
|
||||||
|
|
||||||
|
// The user-visible name of the channel.
|
||||||
|
CharSequence channelName = context.getString(R.string.app_name);
|
||||||
|
// The user-visible description of the channel.
|
||||||
|
String channelDescription = "Pilldroid Alert";
|
||||||
|
int channelImportance = NotificationManager.IMPORTANCE_DEFAULT;
|
||||||
|
// int channelLockscreenVisibility = Notification.;
|
||||||
|
|
||||||
|
// Initializes NotificationChannel.
|
||||||
|
NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName,
|
||||||
|
channelImportance);
|
||||||
|
notificationChannel.setDescription(channelDescription);
|
||||||
|
notificationChannel.enableVibration(true);
|
||||||
|
// notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);
|
||||||
|
|
||||||
|
// Adds NotificationChannel to system. Attempting to create an existing notification
|
||||||
|
// channel with its original values performs no operation, so it's safe to perform the
|
||||||
|
// below sequence.
|
||||||
|
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
|
assert notificationManager != null;
|
||||||
|
notificationManager.createNotificationChannel(notificationChannel);
|
||||||
|
|
||||||
|
return channelId;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue