Commit 45b5d887 by Sebastián Katzer

Added new Android specific options clock: and timeout:

parent 7622df53
......@@ -97,10 +97,11 @@ A notification does have a set of configurable properties. Not all of them are s
| Property | Property | Property | Property | Property | Property | Property | Property |
| :------------ | :------------ | :------------ | :------------ | :------------ | :------------ | :------------ | :------------ |
| id | data | actionGroupId | summary | led | showWhen | channel | actions |
| id | data | actionGroupId | summary | led | clock | channel | actions |
| text | icon | attachments | smallIcon | color | defaults | launch | groupSummary |
| title | silent | progressBar | sticky | vibrate | priority | mediaSession | foreground |
| sound | trigger | group | autoClear | lockscreen | number | badge | wakeup |
| timeout |
For their default values see:
......
......@@ -137,10 +137,11 @@ public final class Builder {
.setColor(options.getColor())
.setVisibility(options.getVisibility())
.setPriority(options.getPriority())
.setShowWhen(options.getShowWhen())
.setUsesChronometer(options.isWithProgressBar())
.setShowWhen(options.showClock())
.setUsesChronometer(options.showChronometer())
.setGroup(options.getGroup())
.setGroupSummary(options.getGroupSummary())
.setTimeoutAfter(options.getTimeout())
.setLights(options.getLedColor(), options.getLedOn(), options.getLedOff());
if (sound != Uri.EMPTY && !isUpdate()) {
......
......@@ -308,7 +308,7 @@ public final class Notification {
public void show() {
if (builder == null) return;
if (options.isWithProgressBar()) {
if (options.showChronometer()) {
cacheBuilder();
}
......@@ -427,7 +427,7 @@ public final class Notification {
/**
* Caches the builder instance so it can be used later.
*/
private void cacheBuilder () {
private void cacheBuilder() {
if (cache == null) {
cache = new SparseArray<NotificationCompat.Builder>();
......
......@@ -200,6 +200,13 @@ public final class Options {
}
/**
* Gets the value for the timeout flag.
*/
long getTimeout() {
return options.optLong("timeout");
}
/**
* The channel id of that notification.
*/
String getChannel() {
......@@ -481,8 +488,19 @@ public final class Options {
/**
* If the notification shall show the when date.
*/
boolean getShowWhen() {
return options.optBoolean("showWhen", true);
boolean showClock() {
Object clock = options.opt("clock");
return (clock instanceof Boolean) ? (Boolean) clock : true;
}
/**
* If the notification shall show the when date.
*/
boolean showChronometer() {
Object clock = options.opt("clock");
return (clock instanceof String) && clock.equals("chronometer");
}
/**
......
......@@ -30,6 +30,7 @@ exports._defaults = {
autoClear : true,
badge : null,
channel : null,
clock : true,
color : null,
data : null,
defaults : 0,
......@@ -45,13 +46,13 @@ exports._defaults = {
number : 0,
priority : 0,
progressBar : false,
showWhen : true,
silent : false,
smallIcon : 'res://icon',
sound : true,
sticky : false,
summary : null,
text : '',
timeout : false,
title : '',
trigger : { type : 'calendar' },
vibrate : false,
......@@ -606,6 +607,14 @@ exports._convertProperties = function (options) {
console.warn('Property "smallIcon" must be of kind res://...');
}
if (typeof options.timeout === 'boolean') {
options.timeout = options.timeout ? 3600000 : null;
}
if (options.timeout) {
options.timeout = parseToInt('timeout', options);
}
options.data = JSON.stringify(options.data);
this._convertTrigger(options);
......@@ -761,6 +770,10 @@ exports._convertProgressBar = function (options) {
cfg.enabled = !!cfg.enabled;
if (cfg.enabled && options.clock === true) {
options.clock = 'chronometer';
}
return options;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment