Skip to content

Commit

Permalink
Merge branch 'power_events' of https://github.com/lukeswitz/haven int…
Browse files Browse the repository at this point in the history
…o lukeswitz-power_events
  • Loading branch information
n8fr8 committed Feb 28, 2019
2 parents 32b72ff + 1f72731 commit c5fb862
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Build;

import org.havenapp.main.R;
import org.havenapp.main.Utils;
import org.havenapp.main.model.EventTrigger;
import org.havenapp.main.service.MonitorService;

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

// explicitly check the intent action
// avoids lint issue UnsafeProtectedBroadcastReceiver
boolean isCharging;
if(intent.getAction() == null) return;
switch(intent.getAction()){
case Intent.ACTION_POWER_CONNECTED:
isCharging = true;
break;
case Intent.ACTION_POWER_DISCONNECTED:
isCharging = false;
break;
default:
return;
}

if (MonitorService.getInstance() != null
&& MonitorService.getInstance().isRunning()) {
MonitorService.getInstance().alert(EventTrigger.POWER, context.getString(R.string.status_charging) + isCharging );
MonitorService.getInstance().alert(EventTrigger.POWER,
Utils.getBatteryPercentage(context) + "%" + " \n" +
context.getString(R.string.power_source_status) + " " +
getBatteryStatus(context));
}
}

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

private String getBatteryStatus(Context context) {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
String battStatus;
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
boolean wirelessCharge = false;

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
wirelessCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_WIRELESS;

if (usbCharge)
battStatus = context.getString(R.string.power_source_status_usb);
else if (acCharge)
battStatus = context.getString(R.string.power_source_status_ac);
else if (wirelessCharge)
battStatus = context.getString(R.string.power_source_status_wireless);
else battStatus = context.getString(R.string.power_disconnected);

return battStatus;
}
}
11 changes: 8 additions & 3 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,11 @@

<string name="action_cancel">Deactivate</string>
<string name="status_on">ACTIVE</string>
<string name="status_charging">Charging:</string>
<string name="power_source_status_usb">USB Charging</string>
<string name="power_source_status_wireless">Wireless Charging</string>
<string name="power_source_status_ac">AC Charging</string>
<string name="power_source_status">STATE:</string>
<string name="power_disconnected">Disconnected</string>
<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>
<string name="know_immediately_when_haven_detects_something">Know immediately when Haven detects something</string>
<string name="phone_saved">Phone number saved!</string>
Expand All @@ -78,7 +82,8 @@
<string name="data_light">LIGHT</string>
<string name="data_pressure">PRESSURE</string>
<string name="data_power">POWER</string>
<string name="share_event_action">Share event…</string>
<string name="data_battery">BATTERY</string>
<string name="share_event_action">Share event...</string>
<string name="signal_test_message">This is a test message from Haven</string>
<string name="send_test_message">Send Test Message</string>
<string name="verify">Verify</string>
Expand All @@ -97,7 +102,7 @@
<string name="sensor_accel">Motion (Accelerometer)</string>
<string name="sensor_camera">Motion (Camera)</string>
<string name="sensor_sound">Microphone</string>
<string name="sensor_power">USB Power</string>
<string name="sensor_power">Power</string>
<string name="sensor_bump">Bump (Accelerometer)</string>
<string name="sensor_camera_video">Motion (Video)</string>
<string name="sensor_heartbeat">Heartbeat</string>
Expand Down

0 comments on commit c5fb862

Please sign in to comment.