Skip to content

Commit fcf108e

Browse files
committed
Change power alert content, include battery %
Instead of 'Charging true' the alert displays time, power level & state/source Reuse method from heartbeat notifications
1 parent d8aa371 commit fcf108e

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

src/main/java/org/havenapp/main/sensors/PowerConnectionReceiver.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import android.content.Intent;
66
import android.content.IntentFilter;
77
import android.os.BatteryManager;
8+
import android.os.Build;
89

910
import org.havenapp.main.R;
11+
import org.havenapp.main.Utils;
1012
import org.havenapp.main.model.EventTrigger;
1113
import org.havenapp.main.service.MonitorService;
1214

@@ -28,41 +30,47 @@ public void onReceive(Context context, Intent intent) {
2830

2931
// explicitly check the intent action
3032
// avoids lint issue UnsafeProtectedBroadcastReceiver
31-
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
32-
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
33-
status == BatteryManager.BATTERY_STATUS_FULL;
34-
35-
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
36-
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
37-
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
38-
3933
if(intent.getAction() == null) return;
4034
switch(intent.getAction()){
4135
case Intent.ACTION_POWER_CONNECTED:
42-
isCharging = true;
4336
break;
4437
case Intent.ACTION_POWER_DISCONNECTED:
45-
isCharging = false;
4638
break;
4739
default:
4840
return;
4941
}
5042

5143
if (MonitorService.getInstance() != null
5244
&& MonitorService.getInstance().isRunning()) {
53-
MonitorService.getInstance().alert(EventTrigger.POWER, context.getString(R.string.status_charging) + isCharging );
45+
MonitorService.getInstance().alert(EventTrigger.POWER,
46+
Utils.getBatteryPercentage(context) + "%" + " \n" +
47+
context.getString(R.string.power_source_status) + " " +
48+
getBatteryStatus(context));
5449
}
5550
}
5651

5752
//Ref: https://developer.android.com/training/monitoring-device-state/battery-monitoring.html
5853

59-
private void getBatteryStatus(Context context) {
54+
private String getBatteryStatus(Context context) {
6055
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
6156
Intent batteryStatus = context.registerReceiver(null, ifilter);
62-
63-
// How are we charging?
57+
String battStatus;
6458
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
6559
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
6660
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
61+
boolean wirelessCharge = false;
62+
63+
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
64+
wirelessCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_WIRELESS;
65+
66+
if (usbCharge)
67+
battStatus = context.getString(R.string.power_source_status_usb);
68+
else if (acCharge)
69+
battStatus = context.getString(R.string.power_source_status_ac);
70+
else if (wirelessCharge)
71+
battStatus = context.getString(R.string.power_source_status_wireless);
72+
else battStatus = context.getString(R.string.power_disconnected);
73+
74+
return battStatus;
6775
}
6876
}

0 commit comments

Comments
 (0)