Merged in Menardi/cordova-plugin-run-in-background/visibility (pull request #1)

Add ability to set Android notification visibility
This commit is contained in:
Menardi 2019-08-20 15:40:21 +00:00 committed by Nathan Kerr
parent a3063aed68
commit 0da2006f7c
3 changed files with 27 additions and 3 deletions

View File

@ -149,7 +149,8 @@ cordova.plugins.backgroundMode.setDefaults({
allowClose: Boolean, // add a "Close" action to the notification
closeIcon: 'power', // An icon shown for the close action
closeTitle: 'Close', // The text for the close action
showWhen: Boolean //(Default: true) Show the time since the notification was created
showWhen: Boolean, //(Default: true) Show the time since the notification was created
visibility: String, // Android only: one of 'private' (default), 'public' or 'secret' (see https://developer.android.com/reference/android/app/Notification.Builder.html#setVisibility(int))
})
```
@ -174,7 +175,7 @@ Various APIs like playing media or tracking GPS position in background might not
```js
cordova.plugins.backgroundMode.on('activate', function() {
cordova.plugins.backgroundMode.disableWebViewOptimizations();
cordova.plugins.backgroundMode.disableWebViewOptimizations();
});
```

View File

@ -189,6 +189,7 @@ public class ForegroundService extends Service {
String text = settings.optString("text", NOTIFICATION_TEXT);
boolean bigText = settings.optBoolean("bigText", false);
String subText = settings.optString("subText", "");
String visibility = settings.optString("visibility", "");
Context context = getApplicationContext();
String pkgName = context.getPackageName();
@ -224,6 +225,10 @@ public class ForegroundService extends Service {
new NotificationCompat.BigTextStyle().bigText(text));
}
if (!visibility.equals("")) {
notification.setVisibility(getVisibility(visibility));
}
setColor(notification, settings);
if (intent != null && settings.optBoolean("resume")) {
@ -309,6 +314,23 @@ public class ForegroundService extends Service {
return res.getIdentifier(icon, type, pkgName);
}
/**
* Get the visibility constant from a string.
*
* @param visibility one of 'public', 'private', 'secret'
*
* @return The visibility constant if a match is found, 'private' otherwise
*/
private int getVisibility (String visibility)
{
if (visibility.equals("public")) {
return Notification.VISIBILITY_PUBLIC;
} else if (visibility.equals("secret")) {
return Notification.VISIBILITY_SECRET;
} else {
return Notification.VISIBILITY_PRIVATE;
}
}
/**
* Set notification color if its supported by the SDK.
*

View File

@ -424,7 +424,8 @@ exports._defaults = {
allowClose: false,
closeIcon: 'power',
closeTitle: 'Close',
showWhen: true
showWhen: true,
visibility: undefined
};
/**