1 package org.altusmetrum.AltosDroid;
3 import org.altusmetrum.altoslib_1.*;
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;
10 import android.util.Log;
12 public class TelemetryLogger {
13 private static final String TAG = "TelemetryLogger";
14 private static final boolean D = true;
16 private Context context = null;
17 private AltosLink link = null;
18 private AltosLog logger = null;
20 private BroadcastReceiver mExternalStorageReceiver;
22 public TelemetryLogger(Context in_context, AltosLink in_link) {
26 startWatchingExternalStorage();
30 stopWatchingExternalStorage();
34 private void close() {
36 if (D) Log.d(TAG, "Shutting down Telemetry Logging");
42 void handleExternalStorageState() {
43 String state = Environment.getExternalStorageState();
44 if (Environment.MEDIA_MOUNTED.equals(state)) {
46 if (D) Log.d(TAG, "Starting up Telemetry Logging");
47 logger = new AltosLog(link);
50 if (D) Log.d(TAG, "External Storage not present - stopping");
55 void startWatchingExternalStorage() {
56 mExternalStorageReceiver = new BroadcastReceiver() {
58 public void onReceive(Context context, Intent intent) {
59 handleExternalStorageState();
62 IntentFilter filter = new IntentFilter();
63 filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
64 filter.addAction(Intent.ACTION_MEDIA_REMOVED);
65 context.registerReceiver(mExternalStorageReceiver, filter);
66 handleExternalStorageState();
69 void stopWatchingExternalStorage() {
70 context.unregisterReceiver(mExternalStorageReceiver);