mirror of
https://bitbucket.org/TheBosZ/cordova-plugin-run-in-background
synced 2024-11-21 14:54:54 +00:00
Support for multi line text [Fixes #171]
This commit is contained in:
parent
8e3a3528ac
commit
681f2f9275
@ -119,6 +119,7 @@ public class ForegroundService extends Service {
|
|||||||
*/
|
*/
|
||||||
private void sleepWell() {
|
private void sleepWell() {
|
||||||
stopForeground(true);
|
stopForeground(true);
|
||||||
|
getNotificationManager().cancel(NOTIFICATION_ID);
|
||||||
|
|
||||||
if (wakeLock != null) {
|
if (wakeLock != null) {
|
||||||
wakeLock.release();
|
wakeLock.release();
|
||||||
@ -129,10 +130,6 @@ public class ForegroundService extends Service {
|
|||||||
/**
|
/**
|
||||||
* Create a notification as the visible part to be able to put the service
|
* Create a notification as the visible part to be able to put the service
|
||||||
* in a foreground state by using the default settings.
|
* in a foreground state by using the default settings.
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* A local ongoing notification which pending intent is bound to the
|
|
||||||
* main activity.
|
|
||||||
*/
|
*/
|
||||||
private Notification makeNotification() {
|
private Notification makeNotification() {
|
||||||
return makeNotification(BackgroundMode.getSettings());
|
return makeNotification(BackgroundMode.getSettings());
|
||||||
@ -142,14 +139,12 @@ public class ForegroundService extends Service {
|
|||||||
* Create a notification as the visible part to be able to put the service
|
* Create a notification as the visible part to be able to put the service
|
||||||
* in a foreground state.
|
* in a foreground state.
|
||||||
*
|
*
|
||||||
* @param settings
|
* @param settings The config settings
|
||||||
* The config settings
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* A local ongoing notification which pending intent is bound to the
|
|
||||||
* main activity.
|
|
||||||
*/
|
*/
|
||||||
private Notification makeNotification(JSONObject settings) {
|
private Notification makeNotification(JSONObject settings) {
|
||||||
|
String text = settings.optString("text", "");
|
||||||
|
boolean bigText = settings.optBoolean("bigText", false);
|
||||||
|
|
||||||
Context context = getApplicationContext();
|
Context context = getApplicationContext();
|
||||||
String pkgName = context.getPackageName();
|
String pkgName = context.getPackageName();
|
||||||
Intent intent = context.getPackageManager()
|
Intent intent = context.getPackageManager()
|
||||||
@ -157,11 +152,16 @@ public class ForegroundService extends Service {
|
|||||||
|
|
||||||
Notification.Builder notification = new Notification.Builder(context)
|
Notification.Builder notification = new Notification.Builder(context)
|
||||||
.setContentTitle(settings.optString("title", ""))
|
.setContentTitle(settings.optString("title", ""))
|
||||||
.setContentText(settings.optString("text", ""))
|
.setContentText(text)
|
||||||
.setTicker(settings.optString("ticker", ""))
|
.setTicker(settings.optString("ticker", ""))
|
||||||
.setOngoing(true)
|
.setOngoing(true)
|
||||||
.setSmallIcon(getIconResId());
|
.setSmallIcon(getIconResId());
|
||||||
|
|
||||||
|
if (bigText || text.contains("\n")) {
|
||||||
|
notification.setStyle(
|
||||||
|
new Notification.BigTextStyle().bigText(text));
|
||||||
|
}
|
||||||
|
|
||||||
setColor(notification, settings);
|
setColor(notification, settings);
|
||||||
|
|
||||||
if (intent != null && settings.optBoolean("resume")) {
|
if (intent != null && settings.optBoolean("resume")) {
|
||||||
@ -178,8 +178,7 @@ public class ForegroundService extends Service {
|
|||||||
/**
|
/**
|
||||||
* Update the notification.
|
* Update the notification.
|
||||||
*
|
*
|
||||||
* @param settings
|
* @param settings The config settings
|
||||||
* The config settings
|
|
||||||
*/
|
*/
|
||||||
protected void updateNotification (JSONObject settings) {
|
protected void updateNotification (JSONObject settings) {
|
||||||
boolean isSilent = settings.optBoolean("silent", false);
|
boolean isSilent = settings.optBoolean("silent", false);
|
||||||
@ -189,18 +188,14 @@ public class ForegroundService extends Service {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Notification notification = makeNotification(settings);
|
Notification notification = makeNotification(settings);
|
||||||
NotificationManager service = (NotificationManager)
|
|
||||||
getSystemService(Context.NOTIFICATION_SERVICE);
|
|
||||||
|
|
||||||
service.notify(NOTIFICATION_ID, notification);
|
getNotificationManager().notify(
|
||||||
|
NOTIFICATION_ID, notification);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the resource ID of the app icon.
|
* Retrieves the resource ID of the app icon.
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* The resource ID of the app icon
|
|
||||||
*/
|
*/
|
||||||
private int getIconResId() {
|
private int getIconResId() {
|
||||||
JSONObject settings = BackgroundMode.getSettings();
|
JSONObject settings = BackgroundMode.getSettings();
|
||||||
@ -222,14 +217,10 @@ public class ForegroundService extends Service {
|
|||||||
/**
|
/**
|
||||||
* Retrieve resource id of the specified icon.
|
* Retrieve resource id of the specified icon.
|
||||||
*
|
*
|
||||||
* @param res
|
* @param res The app resource bundle.
|
||||||
* The app resource bundle.
|
* @param icon The name of the icon.
|
||||||
* @param icon
|
* @param type The resource type where to look for.
|
||||||
* The name of the icon.
|
* @param pkgName The name of the package.
|
||||||
* @param type
|
|
||||||
* The resource type where to look for.
|
|
||||||
* @param pkgName
|
|
||||||
* The name of the package.
|
|
||||||
*
|
*
|
||||||
* @return The resource id or 0 if not found.
|
* @return The resource id or 0 if not found.
|
||||||
*/
|
*/
|
||||||
@ -248,10 +239,8 @@ public class ForegroundService extends Service {
|
|||||||
/**
|
/**
|
||||||
* Set notification color if its supported by the SDK.
|
* Set notification color if its supported by the SDK.
|
||||||
*
|
*
|
||||||
* @param notification
|
* @param notification A Notification.Builder instance
|
||||||
* A Notification.Builder instance
|
* @param settings A JSON dict containing the color definition (red: FF0000)
|
||||||
* @param settings
|
|
||||||
* A JSON dict containing the color definition (red: FF0000)
|
|
||||||
*/
|
*/
|
||||||
private void setColor(Notification.Builder notification,
|
private void setColor(Notification.Builder notification,
|
||||||
JSONObject settings) {
|
JSONObject settings) {
|
||||||
@ -276,4 +265,13 @@ public class ForegroundService extends Service {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared manager for the notification service.
|
||||||
|
*/
|
||||||
|
private NotificationManager getNotificationManager() {
|
||||||
|
return (NotificationManager) getSystemService(
|
||||||
|
Context.NOTIFICATION_SERVICE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -274,8 +274,9 @@ exports._isActive = false;
|
|||||||
*/
|
*/
|
||||||
exports._defaults = {
|
exports._defaults = {
|
||||||
title: 'App is running in background',
|
title: 'App is running in background',
|
||||||
text: 'Doing heavy tasks.',
|
text: "Doing heavy tasks.",
|
||||||
ticker: 'Running in background',
|
ticker: 'Running in background',
|
||||||
|
bigText: true,
|
||||||
resume: true,
|
resume: true,
|
||||||
silent: false,
|
silent: false,
|
||||||
color: undefined,
|
color: undefined,
|
||||||
|
Loading…
Reference in New Issue
Block a user