diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManager.java b/app/src/main/java/uk/org/openseizuredetector/LogManager.java index 4f48765..38c1d20 100644 --- a/app/src/main/java/uk/org/openseizuredetector/LogManager.java +++ b/app/src/main/java/uk/org/openseizuredetector/LogManager.java @@ -58,47 +58,40 @@ public class LogManager { private String mDbTableName = "datapoints"; private boolean mLogRemote; private boolean mLogRemoteMobile; - private String mOSDUname; - private String mOSDPasswd; - private int mOSDWearerId; - private String mOSDUrl; + private String mOSDUrl = "https://https://osd.dynu.net/"; + private String mApiToken; private OsdDbHelper mOSDDb; private RemoteLogTimer mRemoteLogTimer; private Context mContext; private OsdUtil mUtil; - public LogManager(boolean logRemote, - boolean logRemoteMobile, - String OSDUname, - String OSDPasswd, - int OSDWearerId, - String OSDUrl, - Context context) { - mLogRemote = logRemote; - mLogRemoteMobile = logRemoteMobile; - mOSDUname = OSDUname; - mOSDPasswd = OSDPasswd; - mOSDWearerId = OSDWearerId; - mOSDUrl = OSDUrl; + public LogManager(Context context) { + mLogRemote = false; + mLogRemoteMobile = false; + mOSDUrl = null; mContext = context; Handler handler = new Handler(); mUtil = new OsdUtil(mContext, handler); - try { - mOSDDb = new OsdDbHelper(mDbTableName, mContext); - if (!checkTableExists(mOSDDb, mDbTableName)) { - Log.e(TAG,"ERROR - Table does not exist"); - } - } catch (SQLException e) { - Log.e(TAG, "Failed to open Database: " + e.toString()); - } - startRemoteLogTimer(); } - + private boolean openDb() { + try { + mOSDDb = new OsdDbHelper(mDbTableName, mContext); + if (!checkTableExists(mOSDDb, mDbTableName)) { + Log.e(TAG,"ERROR - Table does not exist"); + return false; + } + return true; + } catch (SQLException e) { + Log.e(TAG, "Failed to open Database: " + e.toString()); + mOSDDb = null; + return false; + } + } private boolean checkTableExists(OsdDbHelper osdDb, String osdTableName) { Cursor c = null; @@ -131,7 +124,7 @@ public class LogManager { + "(dataTime, wearer_id, BattPC, specPow, roiRatio, avAcc, sdAcc, hr, status, dataJSON, uploaded)" + " VALUES(" +"CURRENT_TIMESTAMP," - + mOSDWearerId + "," + + -1 + "," + sdData.batteryPc + "," + sdData.specPower + "," + 10. * sdData.roiPower / sdData.specPower + "," @@ -184,10 +177,12 @@ public class LogManager { public void authenticate(String uname, String passwd) { Log.v(TAG, "authenticate()"); // FIXME - this does not work!!!! - String dataStr = "data string to upload"; + String dataStr = "{'login':"+uname+", 'password':"+passwd+"}"; //new PostDataTask().execute("http://" + mOSDUrl + ":8080/data", dataStr, mOSDUname, mOSDPasswd); - new PostDataTask().execute("http://192.168.43.175:8765/datapoints/add", dataStr, mOSDUname, mOSDPasswd); - + String urlStr = mOSDUrl+"/api/accounts/login/"; + Log.v(TAG,"authenticate: url="+urlStr+", data="+dataStr); + new PostDataTask().execute( + urlStr, dataStr); } /** @@ -199,7 +194,7 @@ public class LogManager { Log.v(TAG, "uploadSdData()"); String dataStr = "data string to upload"; //new PostDataTask().execute("http://" + mOSDUrl + ":8080/data", dataStr, mOSDUname, mOSDPasswd); - new PostDataTask().execute("http://192.168.43.175:8765/datapoints/add", dataStr, mOSDUname, mOSDPasswd); + //new PostDataTask().execute("http://192.168.43.175:8765/datapoints/add", dataStr, mOSDUname, mOSDPasswd); } private class PostDataTask extends AsyncTask { @@ -208,16 +203,14 @@ public class LogManager { // params comes from the execute() call: // params[0] is the url, // params[1] is the data to send. - // params[2] is the user name - // params[3] is the password + // params[2] is the user name (not used) + // params[3] is the password (not used) int MAXLEN = 500; // Maximum length of response that we will accept (bytes) InputStream is = null; String urlStr = params[0]; String dataStr = params[1]; - String uname = params[2]; - String passwd = params[3]; String resultStr = "Not Initialised"; - Log.v(TAG,"doInBackgound(): url="+urlStr+" data="+dataStr+" uname="+uname+" passwd="+passwd); + Log.v(TAG,"doInBackgound(): url="+urlStr+" data="+dataStr); try { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); @@ -226,10 +219,10 @@ public class LogManager { conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json; utf-8"); conn.setRequestProperty("Accept", "application/json"); - String auth = uname + ":" + passwd; - byte[] encodedAuth = Base64.encodeBase64(auth.getBytes("utf-8")); - String authHeaderValue = "Basic " + new String(encodedAuth); - conn.setRequestProperty("Authorization", authHeaderValue); + //String auth = uname + ":" + passwd; + //byte[] encodedAuth = Base64.encodeBase64(auth.getBytes("utf-8")); + //String authHeaderValue = "Basic " + new String(encodedAuth); + //conn.setRequestProperty("Authorization", authHeaderValue); conn.setDoInput(true); // Put our data into the outputstream associated with the connection. @@ -387,8 +380,9 @@ public class LogManager { @Override public void onFinish() { - Log.v(TAG, "mRemoteLogTimer - onFinish"); - writeToRemoteServer(); + //FIXME - make this do something! + //Log.v(TAG, "mRemoteLogTimer - onFinish"); + //writeToRemoteServer(); start(); } diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManagerActivity.java b/app/src/main/java/uk/org/openseizuredetector/LogManagerActivity.java index 27c0d0c..c45888c 100644 --- a/app/src/main/java/uk/org/openseizuredetector/LogManagerActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/LogManagerActivity.java @@ -56,7 +56,11 @@ implements AuthDialogInterface { } public void onDialogDone(boolean State) { - Log.v(TAG,"onDialogDOne()"); + + Log.v(TAG,"onDialogDone()"); + LogManager lm = new LogManager(this); + lm.authenticate("test", "testpw"); + } } \ No newline at end of file diff --git a/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java b/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java index 3f50d5a..e3c62a7 100644 --- a/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/PrefActivity.java @@ -56,7 +56,7 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference mHandler = new Handler(); mContext = getApplicationContext(); - mUtil = new OsdUtil(mContext,mHandler); + mUtil = new OsdUtil(mContext, mHandler); mUtil.writeToSysLogFile("PrefActvity.onCreate()"); } @@ -71,37 +71,51 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference .getDefaultSharedPreferences(this.getApplicationContext()); String dataSourceStr = SP.getString("DataSource", "Pebble"); Log.i(TAG, "onBuildHeaders DataSource = " + dataSourceStr); + Boolean advancedMode = SP.getBoolean("advancedMode", false); + Log.i(TAG, "onBuildHeaders advancedMode = " + advancedMode); - //Boolean cameraEnabled = SP.getBoolean("UseIpCamera", false); - //Log.v(TAG, "onBuildHeaders cameraEnabled = " + cameraEnabled); + if (advancedMode) { + for (int i = 0; i < target.size(); i++) { + Header h = target.get(i); + Log.v(TAG, "found - " + h.title.toString()); + if (h.title.toString().equals("Seizure Detector")) { + Log.v(TAG, "found Seizure Detector Header"); + if (dataSourceStr.equals("Network")) { + Log.v(TAG, "Removing seizure detector settings header"); + target.remove(i); + i = i - 1; + } + } + if (h.title.toString().equals("Network Datasource")) { + Log.v(TAG, "found Network Datasource Header"); + if (!dataSourceStr.equals("Network")) { + Log.v(TAG, "Removing network settings header"); + target.remove(i); + i = i - 1; + } + } + if (h.title.toString().equals("Pebble Datasource")) { + Log.v(TAG, "found Pebble Datasource Header"); + if (!dataSourceStr.equals("Pebble")) { + Log.v(TAG, "Removing Pebble settings header"); + target.remove(i); + i = i - 1; + } + } + } + } else { + for (int i = 0; i < target.size(); i++) { + Header h = target.get(i); + Log.v(TAG, "found - " + h.title.toString()); + if (!h.title.toString().equals("Basic")) { + if (!advancedMode) { + Log.v(TAG, "an Advanced Mode Header"); + target.remove(i); + i = i - 1; + } + } + } - for (int i = 0; i < target.size(); i++) { - Header h = target.get(i); - Log.v(TAG,"found - "+h.title.toString()); - if (h.title.toString().equals("Seizure Detector")) { - Log.v(TAG, "found Seizure Detector Header"); - if (dataSourceStr.equals("Network")) { - Log.v(TAG, "Removing seizure detector settings header"); - target.remove(i); - i = i-1; - } - } - if (h.title.toString().equals("Network Datasource")) { - Log.v(TAG, "found Network Datasource Header"); - if (!dataSourceStr.equals("Network")) { - Log.v(TAG, "Removing network settings header"); - target.remove(i); - i = i -1; - } - } - if (h.title.toString().equals("Pebble Datasource")) { - Log.v(TAG, "found Pebble Datasource Header"); - if (!dataSourceStr.equals("Pebble")) { - Log.v(TAG, "Removing Pebble settings header"); - target.remove(i); - i = i -1; - } - } } } @@ -110,7 +124,7 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference public void onStart() { super.onStart(); mUtil.writeToSysLogFile("PrefActvity.onStart()"); - invalidateHeaders(); + //invalidateHeaders(); Log.i(TAG, "onStart()"); } @@ -119,15 +133,15 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference Log.i(TAG, "SharedPreference " + s + " Changed."); if (s.equals("SMSAlarm")) { - if (sharedPreferences.getBoolean("SMSAlarm",false)==true) { - if (mUtil.areSMSPermissionsOK()==false) { - Log.i(TAG,"onSharedPreferenceChanged(): SMS Alarm Enabled - Requesting Permissions"); + if (sharedPreferences.getBoolean("SMSAlarm", false) == true) { + if (mUtil.areSMSPermissionsOK() == false) { + Log.i(TAG, "onSharedPreferenceChanged(): SMS Alarm Enabled - Requesting Permissions"); mUtil.requestSMSPermissions(this); } else { - Log.i(TAG,"OnSharedPreferenceCHanged(): SMS Permissions already granted, doing nothing"); + Log.i(TAG, "OnSharedPreferenceCHanged(): SMS Permissions already granted, doing nothing"); } } else { - Log.i(TAG,"OnSharedPreferenceChanged(): SMS Alarm disabled so do not need permissions"); + Log.i(TAG, "OnSharedPreferenceChanged(): SMS Alarm disabled so do not need permissions"); } } mUtil.showToast("Setting " + s + " Changed - restarting server"); @@ -140,8 +154,8 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference } }, 100); - if (s.equals("DataSource")) { - Log.i(TAG,"DataSource Changed - re-starting PrefActivity to refresh list"); + if (s.equals("DataSource") || s.equals("advancedMode")) { + Log.i(TAG, "Re-starting PrefActivity to refresh list"); finish(); startActivity(getIntent()); } @@ -151,7 +165,7 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { - Log.i(TAG,"onRequestPermissionsResult - Permission" + permissions + " = " + grantResults); + Log.i(TAG, "onRequestPermissionsResult - Permission" + permissions + " = " + grantResults); mUtil.showToast("Permissions Changed - restarting server"); mUtil.stopServer(); // Wait 0.1 second to give the server chance to shutdown, then re-start it @@ -171,6 +185,7 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference SharedPreferences SP = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); SP.registerOnSharedPreferenceChangeListener(this); + invalidateHeaders(); } @Override @@ -187,29 +202,12 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference protected void onStop() { super.onStop(); mUtil.writeToSysLogFile("PrefActvity.onStop()"); - /*Log.i(TAG, "onStop. mPrefChanged=" + mPrefChanged); - if (mPrefChanged) { - Log.i(TAG,"PrefActivity.onStop() - settings changed - restarting server"); - mUtil.writeToSysLogFile("PrefActvity.onStop() - settings changed - re-starting server...."); - mUtil.showToast("Settings Changed - re-starting OpenSeizureDetector...."); - mUtil.stopServer(); - // Wait 5 seconds to give the server chance to shutdown. - mHandler.postDelayed(new Runnable() { - public void run() { - Intent intent = new Intent(getApplicationContext(), StartupActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - finish(); - } - }, 5000); - - } - */ } /** * FIXME - this just returns true so it is the same as for older versions of Android. * We should really check that the fragmentName is one of the fragments defined below. + * * @param fragmentName * @return */ @@ -218,9 +216,18 @@ public class PrefActivity extends PreferenceActivity implements SharedPreference return true; } - /** - * This fragment shows the preferences for the first header. - */ + /** + * This fragment shows the preferences for the first header. + */ + public static class BasicPrefsFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // Load the preferences from an XML resource + addPreferencesFromResource(R.xml.basic_prefs); + } + } + public static class GeneralPrefsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index 961bed3..cbed35f 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -215,8 +215,9 @@ public class SdServer extends Service implements SdDataReceiver { updatePrefs(); // Create our log manager. - mLm = new LogManager(mLogDataRemote, mLogDataRemoteMobile, - mOSDUname, mOSDPasswd, mOSDWearerId, mOSDUrl, this); + //mLm = new LogManager(mLogDataRemote, mLogDataRemoteMobile, + // mOSDUname, mOSDPasswd, mOSDWearerId, mOSDUrl, this); + mLm = new LogManager(this); Log.v(TAG, "onStartCommand: Datasource =" + mSdDataSourceName); switch (mSdDataSourceName) { @@ -372,7 +373,7 @@ public class SdServer extends Service implements SdDataReceiver { */ // Stop the log Manager - mLm.close(); + //mLm.close(); try { diff --git a/app/src/main/res/xml/basic_prefs.xml b/app/src/main/res/xml/basic_prefs.xml new file mode 100644 index 0000000..3dd452f --- /dev/null +++ b/app/src/main/res/xml/basic_prefs.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/preference_headers.xml b/app/src/main/res/xml/preference_headers.xml index 4edd64f..b396c7b 100644 --- a/app/src/main/res/xml/preference_headers.xml +++ b/app/src/main/res/xml/preference_headers.xml @@ -2,6 +2,11 @@ +
+