Skip to content

Commit c5fb862

Browse files
committed
Merge branch 'power_events' of https://github.com/lukeswitz/haven into lukeswitz-power_events
2 parents 32b72ff + 1f72731 commit c5fb862

2 files changed

Lines changed: 41 additions & 7 deletions

File tree

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

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
import android.content.BroadcastReceiver;
44
import android.content.Context;
55
import android.content.Intent;
6+
import android.content.IntentFilter;
7+
import android.os.BatteryManager;
8+
import android.os.Build;
69

710
import org.havenapp.main.R;
11+
import org.havenapp.main.Utils;
812
import org.havenapp.main.model.EventTrigger;
913
import org.havenapp.main.service.MonitorService;
1014

@@ -26,22 +30,47 @@ public void onReceive(Context context, Intent intent) {
2630

2731
// explicitly check the intent action
2832
// avoids lint issue UnsafeProtectedBroadcastReceiver
29-
boolean isCharging;
3033
if(intent.getAction() == null) return;
3134
switch(intent.getAction()){
3235
case Intent.ACTION_POWER_CONNECTED:
33-
isCharging = true;
3436
break;
3537
case Intent.ACTION_POWER_DISCONNECTED:
36-
isCharging = false;
3738
break;
3839
default:
3940
return;
4041
}
4142

4243
if (MonitorService.getInstance() != null
4344
&& MonitorService.getInstance().isRunning()) {
44-
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));
4549
}
4650
}
51+
52+
//Ref: https://developer.android.com/training/monitoring-device-state/battery-monitoring.html
53+
54+
private String getBatteryStatus(Context context) {
55+
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
56+
Intent batteryStatus = context.registerReceiver(null, ifilter);
57+
String battStatus;
58+
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
59+
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
60+
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;
75+
}
4776
}

src/main/res/values/strings.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@
6969

7070
<string name="action_cancel">Deactivate</string>
7171
<string name="status_on">ACTIVE</string>
72-
<string name="status_charging">Charging:</string>
72+
<string name="power_source_status_usb">USB Charging</string>
73+
<string name="power_source_status_wireless">Wireless Charging</string>
74+
<string name="power_source_status_ac">AC Charging</string>
75+
<string name="power_source_status">STATE:</string>
76+
<string name="power_disconnected">Disconnected</string>
7377
<string name="you_will_receive_a_text_when_the_app_hears_or_sees_something">You will receive a text when the app hears or sees something</string>
7478
<string name="know_immediately_when_haven_detects_something">Know immediately when Haven detects something</string>
7579
<string name="phone_saved">Phone number saved!</string>
@@ -78,7 +82,8 @@
7882
<string name="data_light">LIGHT</string>
7983
<string name="data_pressure">PRESSURE</string>
8084
<string name="data_power">POWER</string>
81-
<string name="share_event_action">Share event…</string>
85+
<string name="data_battery">BATTERY</string>
86+
<string name="share_event_action">Share event...</string>
8287
<string name="signal_test_message">This is a test message from Haven</string>
8388
<string name="send_test_message">Send Test Message</string>
8489
<string name="verify">Verify</string>
@@ -97,7 +102,7 @@
97102
<string name="sensor_accel">Motion (Accelerometer)</string>
98103
<string name="sensor_camera">Motion (Camera)</string>
99104
<string name="sensor_sound">Microphone</string>
100-
<string name="sensor_power">USB Power</string>
105+
<string name="sensor_power">Power</string>
101106
<string name="sensor_bump">Bump (Accelerometer)</string>
102107
<string name="sensor_camera_video">Motion (Video)</string>
103108
<string name="sensor_heartbeat">Heartbeat</string>

0 commit comments

Comments
 (0)