1 package org.altusmetrum.AltosDroid;
3 import org.altusmetrum.altoslib_10.*;
5 import android.content.BroadcastReceiver;
6 import android.content.Context;
7 import android.content.Intent;
8 import android.content.IntentFilter;
9 import android.os.Environment;
11 public class TelemetryLogger {
12 private Context context = null;
13 private AltosLink link = null;
14 private AltosLog logger = null;
16 private BroadcastReceiver mExternalStorageReceiver;
18 public TelemetryLogger(Context in_context, AltosLink in_link) {
22 startWatchingExternalStorage();
26 stopWatchingExternalStorage();
30 private void close() {
32 AltosDebug.debug("Shutting down Telemetry Logging");
38 void handleExternalStorageState() {
39 String state = Environment.getExternalStorageState();
40 if (Environment.MEDIA_MOUNTED.equals(state)) {
42 AltosDebug.debug("Starting up Telemetry Logging");
43 logger = new AltosLog(link);
46 AltosDebug.debug("External Storage not present - stopping");
51 void startWatchingExternalStorage() {
52 mExternalStorageReceiver = new BroadcastReceiver() {
54 public void onReceive(Context context, Intent intent) {
55 handleExternalStorageState();
58 IntentFilter filter = new IntentFilter();
59 filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
60 filter.addAction(Intent.ACTION_MEDIA_REMOVED);
61 context.registerReceiver(mExternalStorageReceiver, filter);
62 handleExternalStorageState();
65 void stopWatchingExternalStorage() {
66 context.unregisterReceiver(mExternalStorageReceiver);