	public void updateNotifyIcon() {
		Context ctx   = getApplicationContext();
		int prcnt     = battery_state[0];
		int curplug   = battery_state[1];
		int voltage   = battery_state[2];
		int temp      = battery_state[3];
		int oldprcnt  = bconfig.GetPercentage();
		int oldplug   = bconfig.GetPlugStatus();
		int oldts     = bconfig.GetTimestamp();
		if(bconfig.IsMotorola() && bconfig.GetMotorolaPercent() != 0) {
			prcnt = bconfig.GetMotorolaPercent();
		}
		if(prcnt > 100) { prcnt = 100; }
		if(prcnt < 0)   { prcnt = 0;   }
		if( (curplug != oldplug) || (prcnt == 100) ) {
			Log.d(T, "++ STATUS CHANGE ++: oldplug="+oldplug+", curplug="+curplug+", percentage="+prcnt);
			oldprcnt = prcnt;
			oldts    = unixtimeAsInt();
			bconfig.SetPlugStatus(curplug);
			bconfig.SetPercentage(prcnt);
			bconfig.SetTimestamp(oldts);
		}
		String vx      = String.valueOf(voltage/1000.0);
		String ntext   = "";
		String ntitle  = ((prcnt == 100 && curplug == 1) ? gtx(R.string.fully_charged) : 
		                  (curplug == 0 ? gtx(R.string.discharging_from)+" "+oldprcnt+"%" : 
		                  gtx(R.string.charging_from)+" "+oldprcnt+"%"));   
		String timetxt = getTimeString(oldts);                              
		int icon_id    = bconfig.GetIconFor(prcnt, (curplug!=0 && bconfig.ChargeGlow()) );
		if(bconfig.ShowDetails()) {
			String dgtmp = String.valueOf(temp/10.0)+gtx(R.string.degree)+"C";
			if(bconfig.TempInFahrenheit()) {
				dgtmp = String.valueOf( ( (int)((temp * 1.8)+320) )/10.0 )+gtx(R.string.degree)+"F";
			}
			ntext += vx+"V, "+dgtmp;
			ntext += _ICSFILTER_( ", "+gtx(R.string.capacity_at)+" "+prcnt+"%" ); 
		}
		else {
			ntext += (voltage == 0 ? "" : gtx(R.string.voltage)+" "+vx+" V");
			ntext += _ICSFILTER_( " // "+gtx(R.string.capacity_at)+" "+prcnt+"%" ); 
		}
		if(isICS() == true) {
			ntext = "...since "+timetxt+" / "+ntext; 
		}
		else {
			ntitle += " "+gtx(R.string.since)+": "+timetxt; 
			ntext  += " "+gtx(R.string.since)+":";          
		}
		Notification this_notify = new Notification(icon_id, null, System.currentTimeMillis());
		this_notify.flags |= Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
		this_notify.setLatestEventInfo(ctx, ntitle, ntext, getConfiguredIntent() );
		notify_manager.notify(0, this_notify);
	}

	public void updateNotifyIcon() {
		Context ctx   = getApplicationContext();
		int prcnt     = battery_state[0];
		int curplug   = battery_state[1];
		int voltage   = battery_state[2];
		int temp      = battery_state[3];
		int oldprcnt  = bconfig.GetPercentage();
		int oldplug   = bconfig.GetPlugStatus();
		int oldts     = bconfig.GetTimestamp();
		if(bconfig.IsMotorola() && bconfig.GetMotorolaPercent() != 0) {
			prcnt = bconfig.GetMotorolaPercent();
		}
		if(prcnt > 100) { prcnt = 100; }
		if(prcnt < 0)   { prcnt = 0;   }
		if( (curplug != oldplug) || (prcnt == 100) ) {
			Log.d(T, "++ STATUS CHANGE ++: oldplug="+oldplug+", curplug="+curplug+", percentage="+prcnt);
			oldprcnt = prcnt;
			oldts    = unixtimeAsInt();
			bconfig.SetPlugStatus(curplug);
			bconfig.SetPercentage(prcnt);
			bconfig.SetTimestamp(oldts);
		}
		String vx      = String.valueOf(voltage/1000.0);
		String ntext   = "";
		String ntitle  = ((prcnt == 100 && curplug == 1) ? gtx(R.string.fully_charged) : 
		                  (curplug == 0 ? gtx(R.string.discharging_from)+" "+oldprcnt+"%" : 
		                  gtx(R.string.charging_from)+" "+oldprcnt+"%"));   
		String timetxt = getTimeString(oldts);                              
		int icon_id    = bconfig.GetIconFor(prcnt, (curplug!=0 && bconfig.ChargeGlow()) );
		if(bconfig.ShowDetails()) {
			String dgtmp = String.valueOf(temp/10.0)+gtx(R.string.degree)+"C";
			if(bconfig.TempInFahrenheit()) {
				dgtmp = String.valueOf( ( (int)((temp * 1.8)+320) )/10.0 )+gtx(R.string.degree)+"F";
			}
			ntext += vx+"V, "+dgtmp;
			ntext += _ICSFILTER_( ", "+gtx(R.string.capacity_at)+" "+prcnt+"%" ); 
		}
		else {
			ntext += (voltage == 0 ? "" : gtx(R.string.voltage)+" "+vx+" V");
			ntext += _ICSFILTER_( " // "+gtx(R.string.capacity_at)+" "+prcnt+"%" ); 
		}
		if(isICS() == true) {
			ntext = "..."+gtx(R.string.since)+" "+timetxt+" / "+ntext; 
		}
		else {
			ntitle += " "+gtx(R.string.since)+": "+timetxt; 
			ntext  += " "+gtx(R.string.since)+":";          
		}
		Notification this_notify = new Notification(icon_id, null, System.currentTimeMillis());
		this_notify.flags |= Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
		this_notify.setLatestEventInfo(ctx, ntitle, ntext, getConfiguredIntent() );
		notify_manager.notify(0, this_notify);
	}
