Re-add color
This commit is contained in:
parent
aed89d8503
commit
f7e5684a66
@ -29,11 +29,15 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.os.PowerManager;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* Puts the service in a foreground state, where the system considers it to be
|
||||
* something the user is actively aware of and thus not a candidate for killing
|
||||
@ -158,6 +162,8 @@ public class ForegroundService extends Service {
|
||||
.setOngoing(true)
|
||||
.setSmallIcon(getIconResId());
|
||||
|
||||
setColor(notification, settings);
|
||||
|
||||
if (intent != null && settings.optBoolean("resume")) {
|
||||
PendingIntent contentIntent = PendingIntent.getActivity(
|
||||
context, NOTIFICATION_ID, intent,
|
||||
@ -211,4 +217,36 @@ public class ForegroundService extends Service {
|
||||
|
||||
return resId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set notification color if its supported by the SDK.
|
||||
*
|
||||
* @param notification
|
||||
* A Notification.Builder instance
|
||||
* @param settings
|
||||
* A JSON dict containing the color definition (red: FF0000)
|
||||
*/
|
||||
private void setColor(Notification.Builder notification,
|
||||
JSONObject settings) {
|
||||
|
||||
String hex = settings.optString("color", null);
|
||||
|
||||
if (Build.VERSION.SDK_INT < 21 || hex == null)
|
||||
return;
|
||||
|
||||
int aRGB = Integer.parseInt(hex, 16) + 0xFF000000;
|
||||
|
||||
try {
|
||||
Method setColorMethod = notification.getClass().getMethod(
|
||||
"setColor", int.class);
|
||||
|
||||
setColorMethod.invoke(notification, aRGB);
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +58,7 @@ exports._defaults = {
|
||||
ticker: 'Running in background',
|
||||
resume: true,
|
||||
silent: false,
|
||||
color: undefined,
|
||||
icon: 'icon'
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user