frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
import android.os.BatteryManager;
private int mDefaultRedNotificationColor;
private int mDefaultGreenNotificationColor;
mDefaultNotificationColor=mDefaultGreenNotificationColor=resources.getColor(R.color.config_defaultNotificationColor);
mDefaultRedNotification=resources.getColor(R.color.config_defaultRedNotificationColor);
private final BroadcastReceiver mIntentReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action=intent.getAction();
if(action.equals(Intent.ACTION_SCREEN_ON)){
mScreenOn=true;
updateNotificationPulse();
......
}else if(action.equals(Intent.ACTION_BATTERY_CHANGED)){
int level=intent.getIntExtra("level",0);
int status=intent.getIntExtra(BatteryManager.EXTRA_STATUS,-1);
if(status==BatteryManager.BATTERY_STATUS_CHARGING && level<90){
mDefaultNotificationColor=mDefaultRedNotificationColor
}else{
mDefaultNotificationColor=mDefaultGreenNotificationColor;
}
updateLightsLocked();
}
}
};
IntentFilter filter=new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
......
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
getContext().registerReceiver(mIntentReceiver,filter);