Skip to content
Snippets Groups Projects
Commit 2b08f140 authored by Dominik Grzelak's avatar Dominik Grzelak
Browse files

new AppSettings class to store the user inputs of the app (currently the mqtt address)

parent 246ecaa6
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@ import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
......@@ -37,8 +38,11 @@ import java.text.DateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Locale;
import java.util.Objects;
import de.tudresden.inf.st.sensorsharing.common.MqttUtils;
import de.tudresden.inf.st.sensorsharing.common.Utils;
import de.tudresden.inf.st.sensorsharing.settings.AppSettings;
import static de.tudresden.inf.st.sensorsharing.common.Constants.BASE_KEY;
import static de.tudresden.inf.st.sensorsharing.common.Constants.BASE_KEY_LENGTH;
......@@ -47,6 +51,7 @@ import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_BRIGHTN
import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_LINEAR_ACCELERATION;
import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_NAME;
import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_ROTATION_VECTOR;
import static de.tudresden.inf.st.sensorsharing.settings.AppSettings.SETTINGS_MQTT_SERVER;
public class MainActivity extends AppCompatActivity implements
SensorEventListener,
......@@ -78,6 +83,10 @@ public class MainActivity extends AppCompatActivity implements
// sensor values of phone
private float[] mRotationVectorValues;
private float mLightValue;
private String clientId;
private AppSettings settings;
private EditText valueServerURI;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -86,7 +95,9 @@ public class MainActivity extends AppCompatActivity implements
System.setProperty("log.tag." + TAG, "INFO");
settings = new AppSettings(this);
setName();
initViews();
// setup sensor manager and light sensor
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
......@@ -134,6 +145,12 @@ public class MainActivity extends AppCompatActivity implements
updateMqttTopics("unknown");
}
private void initViews() {
valueServerURI = findViewById(R.id.value_server_uri);
String mqttServer = settings.get(SETTINGS_MQTT_SERVER, getResources().getString(R.string.default_mqtt_server_uri));
valueServerURI.setText(mqttServer);
}
private void updateMqttTopics(String wearableName) {
// moto: "Moto 360"
// polar: ??
......@@ -167,7 +184,19 @@ public class MainActivity extends AppCompatActivity implements
ownName.setText(Build.MODEL);
}
private void closeKeyboard() {
if(this.getCurrentFocus() != null) {
InputMethodManager inputManager =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
Objects.requireNonNull(inputManager).hideSoftInputFromWindow(
this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
public void connectMqtt(View view) {
closeKeyboard();
settings.store(SETTINGS_MQTT_SERVER, valueServerURI.getText().toString());
// disconnect if there is a connected client
if (mqttAndroidClient != null && mqttAndroidClient.isConnected()) {
try {
......@@ -180,12 +209,10 @@ public class MainActivity extends AppCompatActivity implements
}
// setup new mqtt client
EditText valueServerURI = findViewById(R.id.value_server_uri);
final String serverURI = valueServerURI.getText().toString();
Toast.makeText(MainActivity.this, "Connecting to " + serverURI,
Toast.LENGTH_SHORT).show();
mqttAndroidClient = new MqttAndroidClient(this, serverURI,
"SensorSharing-mobile");
mqttAndroidClient = new MqttAndroidClient(this, serverURI, clientId);
mqttAndroidClient.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
......@@ -272,6 +299,9 @@ public class MainActivity extends AppCompatActivity implements
@Override
protected void onResume() {
super.onResume();
if(clientId == null || clientId.isEmpty()) {
clientId = MqttUtils.createClientId();
}
mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_UI);
mSensorManager.registerListener(this, mRotationVector, SensorManager.SENSOR_DELAY_UI);
Wearable.getMessageClient(this).addListener(this);
......
package de.tudresden.inf.st.sensorsharing.settings;
import android.content.Context;
import android.content.SharedPreferences;
public class AppSettings {
public final static String SETTINGS_MQTT_SERVER = "mqtt-server";
Context context;
SharedPreferences.Editor editor;
SharedPreferences appsettings;
public AppSettings(Context context) {
this.context = context;
this.appsettings = context.getSharedPreferences("appsettings", 0);
}
public void store(String key, String value) {
editor = appsettings.edit();
editor.putString(key, value);
editor.apply();
}
public String get(String key, String defaultValue) {
return appsettings.getString(key, defaultValue);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment