diff --git a/WicedSense/app/src/main/AndroidManifest.xml b/WicedSense/app/src/main/AndroidManifest.xml index 11b6c58b34db2f5982f16b51068b5545cc6076de..83b9d627fec3e6ff81dc82e5f389eb2e327c73a4 100644 --- a/WicedSense/app/src/main/AndroidManifest.xml +++ b/WicedSense/app/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> - + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> diff --git a/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/MainActivity.java b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/MainActivity.java index 0732cad7936879de3d45bfcafb6c14600d8ef8ba..f9f3fba8d82fa0b0182bc9296d420dd1d1d41002 100644 --- a/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/MainActivity.java +++ b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/MainActivity.java @@ -17,6 +17,7 @@ package com.broadcom.app.wicedsense; import java.util.ArrayList; +import java.util.Calendar; import java.util.Iterator; import com.broadcom.app.ledevicepicker.DevicePicker; import com.broadcom.app.ledevicepicker.DevicePickerActivity; @@ -38,10 +39,12 @@ import android.app.FragmentTransaction; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; +import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -56,7 +59,7 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; - +import android.text.format.Time; /** * Manaages the main view and gauges for each sensor * @@ -65,6 +68,7 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, DevicePicker.Callback, android.os.Handler.Callback, OnClickListener, ExitConfirmCallback, OtaUiCallback, SettingChangeListener { private static final String TAG = Settings.TAG_PREFIX + "MainActivity"; + private static final String JEFF_TAG = "Jeff_Tag"; private static final boolean DBG_LIFECYCLE = true; private static final boolean DBG = Settings.DBG; @@ -114,9 +118,9 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, BluetoothAdapter.ERROR); switch (btState) { - case BluetoothAdapter.STATE_TURNING_OFF: - exitApp(); - break; + case BluetoothAdapter.STATE_TURNING_OFF: + exitApp(); + break; } } }); @@ -129,23 +133,23 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, public boolean handleMessage(Message msg) { switch (msg.what) { - // These events run on the mUiHandler on the UI Main Thread - case COMPLETE_INIT: - initResourcesAndResume(); - break; - case PROCESS_EVENT_DEVICE_UNSUPPORTED: - Toast.makeText(getApplicationContext(), R.string.error_unsupported_device, - Toast.LENGTH_SHORT).show(); - break; - case PROCESS_CONNECTION_STATE_CHANGE_UI: - updateConnectionStateWidgets(); - break; - case PROCESS_BATTERY_STATUS_UI: - updateBatteryLevelWidget(msg.arg1); - break; - case PROCESS_SENSOR_DATA_ON_UI: - processSensorData((byte[]) msg.obj); - break; + // These events run on the mUiHandler on the UI Main Thread + case COMPLETE_INIT: + initResourcesAndResume(); + break; + case PROCESS_EVENT_DEVICE_UNSUPPORTED: + Toast.makeText(getApplicationContext(), R.string.error_unsupported_device, + Toast.LENGTH_SHORT).show(); + break; + case PROCESS_CONNECTION_STATE_CHANGE_UI: + updateConnectionStateWidgets(); + break; + case PROCESS_BATTERY_STATUS_UI: + updateBatteryLevelWidget(msg.arg1); + break; + case PROCESS_SENSOR_DATA_ON_UI: + processSensorData((byte[]) msg.obj); + break; } return true; } @@ -192,26 +196,26 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, */ private boolean initResourcesAndResume() { switch (mInitState) { - case 0: - // Check if license accepted. If not, prompt user - if (!mLicense.checkLicenseAccepted(getFragmentManager())) { - return false; - } - mInitState++; - case 1: - // Check if BT is on, If not, prompt user - if (!BluetoothEnabler.checkBluetoothOn(this)) { - return false; - } - mInitState++; - SenseManager.init(this); - case 2: - // Check if sense manager initialized. If not, keep waiting - if (waitForSenseManager()) { - return false; - } - mInitState = -1; - checkDevicePicked(); + case 0: + // Check if license accepted. If not, prompt user + if (!mLicense.checkLicenseAccepted(getFragmentManager())) { + return false; + } + mInitState++; + case 1: + // Check if BT is on, If not, prompt user + if (!BluetoothEnabler.checkBluetoothOn(this)) { + return false; + } + mInitState++; + SenseManager.init(this); + case 2: + // Check if sense manager initialized. If not, keep waiting + if (waitForSenseManager()) { + return false; + } + mInitState = -1; + checkDevicePicked(); } mSenseManager.registerEventCallbackHandler(mSensorDataEventHandler); @@ -432,6 +436,8 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, mAnimationSlower.addAnimated(mPressureFrag); updateTemperatureScaleType(); + Toast.makeText(this,"About to StartDatabase", Toast.LENGTH_SHORT); + StartDatabase(this); } @Override @@ -561,30 +567,38 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, */ @Override public boolean onOptionsItemSelected(MenuItem item) { + boolean isDeviceSelected = (mSenseManager != null && mSenseManager.getDevice() != null); + boolean isDeviceConnected = isDeviceSelected && mSenseManager.isConnectedAndAvailable(); switch (item.getItemId()) { - case R.id.action_connectdisconnect: - mConnectDisconnectPending = true; - invalidateOptionsMenu(); - doConnectDisconnect(); - return true; - case R.id.action_pick: - launchDevicePicker(); - return true; - case R.id.update_fw: - checkForFirmwareUpdate(); - return true; - case R.id.get_fw_info: - getFirmwareInfo(); - return true; - case R.id.action_settings: - // Launch setttings menu - Intent i = new Intent(this, SettingsActivity.class); - startActivity(i); - return true; + case R.id.action_connectdisconnect: + mConnectDisconnectPending = true; + invalidateOptionsMenu(); + doConnectDisconnect(); + return true; + case R.id.action_pick: + launchDevicePicker(); + return true; + case R.id.data_dump: + if (isDeviceConnected){ + Toast.makeText(this,R.string.disconnect_message, Toast.LENGTH_SHORT).show(); + }else { + DataDump(); + } + + return true; + case R.id.get_fw_info: + getFirmwareInfo(); + return true; + case R.id.action_settings: + // Launch setttings menu + Intent i = new Intent(this, SettingsActivity.class); + startActivity(i); + return true; } return false; } + /** * Callback invoked when the user finishes with the license agreement dialog */ @@ -646,44 +660,44 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, @Override public boolean handleMessage(Message msg) { switch (msg.what) { - case SenseManager.EVENT_DEVICE_UNSUPPORTED: - mUiHandler.sendEmptyMessage(PROCESS_EVENT_DEVICE_UNSUPPORTED); - break; - case SenseManager.EVENT_CONNECTED: - mUiHandler.sendEmptyMessage(PROCESS_CONNECTION_STATE_CHANGE_UI); - onConnected(); - break; - case SenseManager.EVENT_DISCONNECTED: - mUiHandler.sendEmptyMessage(PROCESS_CONNECTION_STATE_CHANGE_UI); - break; - case SenseManager.EVENT_BATTERY_STATUS: - mUiHandler.sendMessage(mUiHandler.obtainMessage(PROCESS_BATTERY_STATUS_UI, msg.arg1, - msg.arg1)); - break; - case SenseManager.EVENT_SENSOR_DATA: - mUiHandler.sendMessage(mUiHandler.obtainMessage(PROCESS_SENSOR_DATA_ON_UI, msg.obj)); - break; - case SenseManager.EVENT_APP_INFO: - boolean success = msg.arg1 == 1; - OtaAppInfo appInfo = (OtaAppInfo) msg.obj; - if (DBG) { - Log.d(TAG, "EVENT_APP_INFO: success=" + success + ",otaAppInfo=" + appInfo); - } - if (mFirmwareUpdateCheckPending) { - mFirmwareUpdateCheckPending = false; - checkForFirmwareUpdate(appInfo); + case SenseManager.EVENT_DEVICE_UNSUPPORTED: + mUiHandler.sendEmptyMessage(PROCESS_EVENT_DEVICE_UNSUPPORTED); break; - } + case SenseManager.EVENT_CONNECTED: + mUiHandler.sendEmptyMessage(PROCESS_CONNECTION_STATE_CHANGE_UI); + onConnected(); + break; + case SenseManager.EVENT_DISCONNECTED: + mUiHandler.sendEmptyMessage(PROCESS_CONNECTION_STATE_CHANGE_UI); + break; + case SenseManager.EVENT_BATTERY_STATUS: + mUiHandler.sendMessage(mUiHandler.obtainMessage(PROCESS_BATTERY_STATUS_UI, msg.arg1, + msg.arg1)); + break; + case SenseManager.EVENT_SENSOR_DATA: + mUiHandler.sendMessage(mUiHandler.obtainMessage(PROCESS_SENSOR_DATA_ON_UI, msg.obj)); + break; + case SenseManager.EVENT_APP_INFO: + boolean success = msg.arg1 == 1; + OtaAppInfo appInfo = (OtaAppInfo) msg.obj; + if (DBG) { + Log.d(TAG, "EVENT_APP_INFO: success=" + success + ",otaAppInfo=" + appInfo); + } + if (mFirmwareUpdateCheckPending) { + mFirmwareUpdateCheckPending = false; + checkForFirmwareUpdate(appInfo); + break; + } - if (mShowAppInfoDialog) { - mShowAppInfoDialog = false; - if (success) { - OtaAppInfoFragment mOtaAppInfoFragment = OtaAppInfoFragment.createDialog( - mSenseManager.getDevice(), appInfo); - mOtaAppInfoFragment.show(getFragmentManager(), null); + if (mShowAppInfoDialog) { + mShowAppInfoDialog = false; + if (success) { + OtaAppInfoFragment mOtaAppInfoFragment = OtaAppInfoFragment.createDialog( + mSenseManager.getDevice(), appInfo); + mOtaAppInfoFragment.show(getFragmentManager(), null); + } } - } - break; + break; } return true; } @@ -712,85 +726,93 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, boolean updateView = false; long currentTimeMs = System.currentTimeMillis(); switch (sensorData.length) { - case 19: - if (currentTimeMs - mLastRefreshTimeMs < Settings.REFRESH_INTERVAL_MS) { - return; - } else { - mLastRefreshTimeMs = currentTimeMs; - } + case 19: + if (currentTimeMs - mLastRefreshTimeMs < Settings.REFRESH_INTERVAL_MS) { + return; + } else { + mLastRefreshTimeMs = currentTimeMs; + } - // packet type specifying accelerometer, gyro, magno - offset = 1; - if (SensorDataParser.accelerometerHasChanged(maskField)) { - if (Settings.accelerometerEnabled() && mAccelerometerFrag.isVisible()) { - SensorDataParser.getAccelorometerData(sensorData, offset, values); - mAccelerometerFrag.setValue(mAnimation, values[0], values[1], values[2]); - updateView = true; + // packet type specifying accelerometer, gyro, magno + offset = 1; + if (SensorDataParser.accelerometerHasChanged(maskField)) { + if (Settings.accelerometerEnabled() && mAccelerometerFrag.isVisible()) { + SensorDataParser.getAccelorometerData(sensorData, offset, values); + mAccelerometerFrag.setValue(mAnimation, values[0], values[1], values[2]); + updateView = true; + } + offset += SensorDataParser.SENSOR_ACCEL_DATA_SIZE; } - offset += SensorDataParser.SENSOR_ACCEL_DATA_SIZE; - } - if (SensorDataParser.gyroHasChanged(maskField)) { - if (Settings.gyroEnabled() && mGyroFrag.isVisible()) { - SensorDataParser.getGyroData(sensorData, offset, values); - mGyroFrag.setValue(mAnimation, values[0], values[1], values[2]); - updateView = true; + if (SensorDataParser.gyroHasChanged(maskField)) { + if (Settings.gyroEnabled() && mGyroFrag.isVisible()) { + SensorDataParser.getGyroData(sensorData, offset, values); + mGyroFrag.setValue(mAnimation, values[0], values[1], values[2]); + updateView = true; + } + offset += SensorDataParser.SENSOR_GYRO_DATA_SIZE; } - offset += SensorDataParser.SENSOR_GYRO_DATA_SIZE; - } - if (SensorDataParser.magnetometerHasChanged(maskField)) { - if (Settings.compassEnabled() && mCompassFrag.isVisible()) { - SensorDataParser.getMagnometerData(sensorData, offset, values); - float angle = SensorDataParser.getCompassAngleDegrees(values); - mCompassFrag.setValue(mAnimation, angle, values[0], values[1], values[2]); - updateView = true; + if (SensorDataParser.magnetometerHasChanged(maskField)) { + if (Settings.compassEnabled() && mCompassFrag.isVisible()) { + SensorDataParser.getMagnometerData(sensorData, offset, values); + float angle = SensorDataParser.getCompassAngleDegrees(values); + mCompassFrag.setValue(mAnimation, angle, values[0], values[1], values[2]); + updateView = true; + } + offset += SensorDataParser.SENSOR_MAGNO_DATA_SIZE; } - offset += SensorDataParser.SENSOR_MAGNO_DATA_SIZE; - } - if (updateView && mAnimation != null) { - mAnimation.animate(); - } - break; - case 7: + if (updateView && mAnimation != null) { + mAnimation.animate(); + } + break; + case 7: - if (currentTimeMs - mLastRefreshSlowerTimeMs < Settings.REFRESH_INTERVAL_SLOWER_MS) { - return; - } else { - mLastRefreshSlowerTimeMs = currentTimeMs; - } + if (currentTimeMs - mLastRefreshSlowerTimeMs < Settings.REFRESH_INTERVAL_SLOWER_MS) { + return; + } else { + mLastRefreshSlowerTimeMs = currentTimeMs; + } - // packet type specifying temp, humid, press - offset = 1; - float value = 0; - if (mHumidityFrag.isVisible() && SensorDataParser.humidityHasChanged(maskField)) { - value = SensorDataParser.getHumidityPercent(sensorData, offset); - offset += SensorDataParser.SENSOR_HUMD_DATA_SIZE; - mHumidityFrag.setValue(mAnimationSlower, value); - updateView = true; - } - if (mPressureFrag.isVisible() && SensorDataParser.pressureHasChanged(maskField)) { - value = SensorDataParser.getPressureMBar(sensorData, offset); - offset += SensorDataParser.SENSOR_PRES_DATA_SIZE; - mPressureFrag.setValue(mAnimationSlower, value); - updateView = true; - } + // packet type specifying temp, humid, press + offset = 1; + float value = 0; + if (mHumidityFrag.isVisible() && SensorDataParser.humidityHasChanged(maskField)) { + value = SensorDataParser.getHumidityPercent(sensorData, offset); + mHumidityValue = Float.toString(value); + Log.d(JEFF_TAG,"Humidity = " + mHumidityValue); + offset += SensorDataParser.SENSOR_HUMD_DATA_SIZE; + mHumidityFrag.setValue(mAnimationSlower, value); + updateView = true; + } + if (mPressureFrag.isVisible() && SensorDataParser.pressureHasChanged(maskField)) { + value = SensorDataParser.getPressureMBar(sensorData, offset); + mPressureValue = Float.toString(value); + Log.d(JEFF_TAG, "Pressure = " + mPressureValue); + offset += SensorDataParser.SENSOR_PRES_DATA_SIZE; + mPressureFrag.setValue(mAnimationSlower, value); + updateView = true; + } - if (mTemperatureFrag.isVisible() && SensorDataParser.temperatureHasChanged(maskField)) { - if (mIsTempScaleF) { - value = SensorDataParser.getTemperatureF(sensorData, offset); - } else { - value = SensorDataParser.getTemperatureC(sensorData, offset); + if (mTemperatureFrag.isVisible() && SensorDataParser.temperatureHasChanged(maskField)) { + if (mIsTempScaleF) { + value = SensorDataParser.getTemperatureF(sensorData, offset); + } else { + value = SensorDataParser.getTemperatureC(sensorData, offset); + } + mTemperatureValue = Float.toString(value); + Log.d(JEFF_TAG, "Temperature = "+mTemperatureValue); + offset += SensorDataParser.SENSOR_TEMP_DATA_SIZE; + mTemperatureFrag.setValue(mAnimationSlower, value); + updateView = true; } - offset += SensorDataParser.SENSOR_TEMP_DATA_SIZE; - mTemperatureFrag.setValue(mAnimationSlower, value); - updateView = true; - } - if (updateView && mAnimationSlower != null) { - mAnimationSlower.animate(); - } - break; + if (updateView && mAnimationSlower != null) { + mAnimationSlower.animate(); + addThermoData(); + //*********************************************************************************************************************** + } + break; } // If animation is enabled, call animate... @@ -1062,4 +1084,47 @@ public class MainActivity extends Activity implements OnLicenseAcceptListener, mTemperatureFrag = f; } + //************************************ This is to open the database - JEFF Added****************** + + private Context mContext; + private SQLiteDatabase mDatabase; + + private String mHumidityValue; + private String mPressureValue; + private String mTemperatureValue; + + public void StartDatabase(Context context){ + mContext = context.getApplicationContext(); + mDatabase = new ThermoBaseHelper(mContext).getReadableDatabase(); + Toast.makeText(this, "Main Activity", Toast.LENGTH_SHORT).show(); + } + + private ContentValues getContentValues(){ // To place values in the database ????? What am I passing in? see page 325 + + Time now = new Time(); + now.setToNow(); + String time = now.format("%Y_%m_%d_%H_%M_%S"); + + ContentValues values = new ContentValues(); + values.put(WicedDBSchema.ThermoTable.Cols.TIME, time); + Log.d(JEFF_TAG, "Put time into ContentValues = " + time); + values.put(WicedDBSchema.ThermoTable.Cols.HUMIDITY, mHumidityValue); + Log.d(JEFF_TAG, "Put Humidty into ContentValues = " + mHumidityValue); + values.put(WicedDBSchema.ThermoTable.Cols.PRESSURE, mPressureValue); + Log.d(JEFF_TAG, "Put Pressure into ContentValues = " + mPressureValue); + values.put(WicedDBSchema.ThermoTable.Cols.TEMPERATURE, mTemperatureValue); + Log.d(JEFF_TAG, "Put Temperature into ContentValues = " + mTemperatureValue); + + return values; + } + + public void addThermoData () {// Add a row of data????????????What am I passing in? see page 326 + Log.d(JEFF_TAG, "adding data"); + ContentValues values = getContentValues(); + mDatabase.insert(WicedDBSchema.ThermoTable.NAME, null, values); + } + + public void DataDump(){ + Log.d(JEFF_TAG, "Place data dump in ExitConfirmFragment.java"); + } } diff --git a/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/ThermoBaseHelper.java b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/ThermoBaseHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..4cc663338334c17cde91c1c5409223b9097770a3 --- /dev/null +++ b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/ThermoBaseHelper.java @@ -0,0 +1,38 @@ +package com.broadcom.app.wicedsense; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + + +/** + * Created by jmartin5229 on 11/9/2015. + */ +public class ThermoBaseHelper extends SQLiteOpenHelper {// The SQLiteOpenHelper does the following + // 1. Check to see if the database already exists. + // 2. If it does not, create it and create the tables and initial data it needs. + // 3. If it does, open it up and see what version of your ThermoDbSchema it has. + // 4. If it is an old version, run code to upgrade it to a newer version. + private static final int VERSION = 1; + private static final String DATABASE_NAME = "/mnt/sdcard/thermoBase.db"; + + public ThermoBaseHelper(Context context) { + super(context, DATABASE_NAME, null, VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db){ // Creates the ThermoTable and defines its fields. + db.execSQL("create table " + WicedDBSchema.ThermoTable.NAME + "(" + + " _id integer primary key autoincrement, " + + WicedDBSchema.ThermoTable.Cols.TIME + ", "+ + WicedDBSchema.ThermoTable.Cols.HUMIDITY + ", " + + WicedDBSchema.ThermoTable.Cols.PRESSURE + ", " + + WicedDBSchema.ThermoTable.Cols.TEMPERATURE + ")" + ); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int OldVersion, int newVersion){ + + } +} diff --git a/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/WicedDBSchema.java b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/WicedDBSchema.java new file mode 100644 index 0000000000000000000000000000000000000000..af9b11aeddb1dc65f197c93d990813a8dc76149e --- /dev/null +++ b/WicedSense/app/src/main/java/com/broadcom/app/wicedsense/WicedDBSchema.java @@ -0,0 +1,18 @@ +package com.broadcom.app.wicedsense; + +/** + * Created by jmartin5229 on 11/9/2015. + */ +public class WicedDBSchema { + public static final class ThermoTable { // Name of the Table + public static final String NAME = "thermo"; + + public static final class Cols { // Name of the Columns (Fields) + public static final String TIME = "time"; + public static final String HUMIDITY = "humidity"; + public static final String PRESSURE = "pressure"; + public static final String TEMPERATURE = "temerature"; + + } + } +} diff --git a/WicedSense/app/src/main/java/com/broadcom/ui/ExitConfirmFragment.java b/WicedSense/app/src/main/java/com/broadcom/ui/ExitConfirmFragment.java index 534ac77b442fce7821a5ba3332c3416449047d9b..9dcf58586de21094550f783b2e70349771b2eff0 100644 --- a/WicedSense/app/src/main/java/com/broadcom/ui/ExitConfirmFragment.java +++ b/WicedSense/app/src/main/java/com/broadcom/ui/ExitConfirmFragment.java @@ -30,6 +30,7 @@ import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; +import android.util.Log; /** * Displays a dialog prompting the user to quit the application @@ -37,7 +38,7 @@ import android.os.Bundle; */ public class ExitConfirmFragment extends DialogFragment implements android.content.DialogInterface.OnClickListener { - + private static final String JEFF_TAG = "Jeff_Tag"; public static interface ExitConfirmCallback { public void onExit(); @@ -85,4 +86,5 @@ public class ExitConfirmFragment extends DialogFragment implements } } + } diff --git a/WicedSense/app/src/main/res/layout/database_output.xml b/WicedSense/app/src/main/res/layout/database_output.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb3d8a258054c81b274252adffcf37b375659a36 --- /dev/null +++ b/WicedSense/app/src/main/res/layout/database_output.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + +</LinearLayout> \ No newline at end of file diff --git a/WicedSense/app/src/main/res/menu/main.xml b/WicedSense/app/src/main/res/menu/main.xml index f6a47681a558663c1a07dfdec85f0861ba0a81e1..221cefc3b72a11e300cb55f4e6ee984b2984408b 100644 --- a/WicedSense/app/src/main/res/menu/main.xml +++ b/WicedSense/app/src/main/res/menu/main.xml @@ -31,9 +31,9 @@ android:showAsAction="always" android:title="@string/devicepicker_pick"/> <item - android:id="@+id/update_fw" + android:id="@+id/data_dump" android:orderInCategory="200" - android:title="@string/update_fw"/> + android:title="@string/data_dump"/> <item android:id="@+id/get_fw_info" android:orderInCategory="200" diff --git a/WicedSense/app/src/main/res/values/strings.xml b/WicedSense/app/src/main/res/values/strings.xml index de2d6e0abfcfd2a72fc1472f14593ca0f02cfd0a..c16cce4edc421ef5ad08e8be40e491626558b9c8 100644 --- a/WicedSense/app/src/main/res/values/strings.xml +++ b/WicedSense/app/src/main/res/values/strings.xml @@ -45,6 +45,8 @@ <string name="setting_title_gyro">Gyro</string> <string name="setting_title_ecompass">eCompass</string> <string name="setting_title_accelerometer">Accelerometer</string> + <string name="data_dump">Data Dump</string> + <string name="disconnect_message">Disconnect from Wiced first.</string> <string-array name="temperature_scale_type_names"> <item>Fahrenheit</item>