diff --git a/src/com/nightscout/android/dexcom/DexcomG4Activity.java b/src/com/nightscout/android/dexcom/DexcomG4Activity.java index 6b7df396..b1c3bb75 100644 --- a/src/com/nightscout/android/dexcom/DexcomG4Activity.java +++ b/src/com/nightscout/android/dexcom/DexcomG4Activity.java @@ -21,6 +21,10 @@ import com.nightscout.android.R; import com.nightscout.android.settings.SettingsActivity; +import android.content.BroadcastReceiver; +import android.content.IntentFilter; +import android.os.BatteryManager; + import java.io.File; import java.io.FileInputStream; import java.io.ObjectInputStream; @@ -38,6 +42,8 @@ public class DexcomG4Activity extends Activity { private TextView mTitleTextView; private TextView mDumpTextView; private Button b1; + public static String batLevel = "0"; + BatteryReceiver mArrow; //All I'm really doing here is creating a simple activity to launch and maintain the service @@ -62,10 +68,28 @@ public void run() { mDumpTextView.setTextColor(Color.WHITE); mDumpTextView.setText("\n" + record.displayTime + "\n" + record.bGValue + "\n" + record.trendArrow + "\n"); } + mArrow = new BatteryReceiver(); + IntentFilter mIntentFilter = new IntentFilter(); + mIntentFilter.addAction(Intent.ACTION_BATTERY_LOW); + mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); + mIntentFilter.addAction(Intent.ACTION_BATTERY_OKAY); + Intent batteryIntent=registerReceiver(mArrow,mIntentFilter); + mHandler.postDelayed(updateDataView, 30000); } }; + private class BatteryReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context arg0, Intent arg1) { + if (arg1.getAction().equalsIgnoreCase(Intent.ACTION_BATTERY_LOW) + || arg1.getAction().equalsIgnoreCase(Intent.ACTION_BATTERY_CHANGED) + || arg1.getAction().equalsIgnoreCase(Intent.ACTION_BATTERY_OKAY)) { + batLevel =String.format("%s", arg1.getIntExtra("level", 0)); + } + } + } + //Look for and launch the service, display status to user @Override public void onCreate(Bundle savedInstanceState) { diff --git a/src/com/nightscout/android/upload/UploadHelper.java b/src/com/nightscout/android/upload/UploadHelper.java index 5490bbcb..0ca77fdb 100644 --- a/src/com/nightscout/android/upload/UploadHelper.java +++ b/src/com/nightscout/android/upload/UploadHelper.java @@ -7,6 +7,7 @@ import android.util.Log; import com.mongodb.*; +import com.nightscout.android.dexcom.DexcomG4Activity; import com.nightscout.android.dexcom.EGVRecord; import org.apache.http.client.ResponseHandler; @@ -133,6 +134,12 @@ private void doMongoUpload(SharedPreferences prefs, EGVRecord... records) { testData.put("direction", record.trend); dexcomData.update(testData, testData, true, false, WriteConcern.UNACKNOWLEDGED); } + //Uploading Settings Data + BasicDBObject SettingsData = new BasicDBObject(); + SettingsData.put("type","settings"); + SettingsData.put("battery", DexcomG4Activity.batLevel); + dexcomData.update(SettingsData, SettingsData, true, false, WriteConcern.UNACKNOWLEDGED); + client.close(); } catch (Exception e) { Log.e(TAG, "Unable to upload data to mongo", e);