Skip to content

Commit b40c276

Browse files
neel1998CloudyPadmal
authored andcommitted
continuous logging added to multimeter (#1767)
* continuous logging added to multimeter * hardcoded dimensions removed
1 parent 56a513c commit b40c276

File tree

9 files changed

+461
-380
lines changed

9 files changed

+461
-380
lines changed

app/src/main/java/io/pslab/activity/MultimeterActivity.java

Lines changed: 183 additions & 141 deletions
Large diffs are not rendered by default.

app/src/main/java/io/pslab/activity/SettingsActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.pslab.fragment.BaroMeterSettingsFragment;
2222
import io.pslab.fragment.GyroscopeSettingsFragment;
2323
import io.pslab.fragment.LuxMeterSettingFragment;
24+
import io.pslab.fragment.MultimeterSettingsFragment;
2425
import io.pslab.fragment.SettingsFragment;
2526
import io.pslab.fragment.ThermometerSettingsFragment;
2627
import io.pslab.models.PSLabSensor;
@@ -72,6 +73,9 @@ protected void onCreate(Bundle savedInstanceState) {
7273
case PSLabSensor.THERMOMETER_CONFIGURATIONS:
7374
fragment = new ThermometerSettingsFragment();
7475
break;
76+
case "Multimeter Configurations":
77+
fragment = new MultimeterSettingsFragment();
78+
break;
7579
default:
7680
fragment = new SettingsFragment();
7781
break;
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package io.pslab.fragment;
2+
3+
import android.annotation.SuppressLint;
4+
import android.content.SharedPreferences;
5+
import android.os.Bundle;
6+
import android.support.v7.preference.CheckBoxPreference;
7+
import android.support.v7.preference.EditTextPreference;
8+
import android.support.v7.preference.PreferenceFragmentCompat;
9+
import android.support.v7.preference.PreferenceManager;
10+
import android.widget.Toast;
11+
12+
import io.pslab.R;
13+
import io.pslab.others.PSLabPermission;
14+
15+
public class MultimeterSettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
16+
17+
public static final String KEY_INCLUDE_LOCATION = "include_location_sensor_data";
18+
public static final String KEY_UPDATE_PERIOD = "setting_multimeter_update_period";
19+
20+
private PSLabPermission psLabPermission;
21+
22+
private EditTextPreference updatePeriodPref;
23+
private CheckBoxPreference locationPreference;
24+
private SharedPreferences sharedPref;
25+
26+
@Override
27+
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
28+
setPreferencesFromResource(R.xml.multimeter_settings, rootKey);
29+
updatePeriodPref = (EditTextPreference) getPreferenceScreen().findPreference(KEY_UPDATE_PERIOD);
30+
locationPreference = (CheckBoxPreference) getPreferenceScreen().findPreference(KEY_INCLUDE_LOCATION);
31+
sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
32+
33+
psLabPermission = PSLabPermission.getInstance();
34+
if (!psLabPermission.checkPermissions(getActivity(), PSLabPermission.MAP_PERMISSION)) {
35+
SharedPreferences.Editor editor = sharedPref.edit();
36+
editor.putBoolean(MultimeterSettingsFragment.KEY_INCLUDE_LOCATION, true);
37+
editor.apply();
38+
}
39+
}
40+
41+
@Override
42+
public void onResume() {
43+
super.onResume();
44+
locationPreference.setChecked(sharedPref.getBoolean(KEY_INCLUDE_LOCATION, true));
45+
updatePeriodPref.setSummary(updatePeriodPref.getText() + " ms");
46+
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
47+
}
48+
49+
@Override
50+
public void onPause() {
51+
super.onPause();
52+
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
53+
}
54+
55+
@SuppressLint("ApplySharedPref")
56+
@Override
57+
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
58+
switch (s) {
59+
case KEY_INCLUDE_LOCATION:
60+
if (locationPreference.isChecked()) {
61+
psLabPermission.checkPermissions(
62+
getActivity(), PSLabPermission.MAP_PERMISSION);
63+
}
64+
break;
65+
case KEY_UPDATE_PERIOD:
66+
try {
67+
Integer updatePeriod = Integer.parseInt(updatePeriodPref.getText());
68+
if (updatePeriod > 2000 || updatePeriod < 100) {
69+
throw new NumberFormatException();
70+
} else {
71+
updatePeriodPref.setSummary(String.valueOf(updatePeriod) + " ms");
72+
}
73+
} catch (NumberFormatException e) {
74+
Toast.makeText(getActivity(), getActivity().getResources().getString(R.string.update_period_msg), Toast.LENGTH_SHORT).show();
75+
updatePeriodPref.setSummary("1000 ms");
76+
updatePeriodPref.setText("1000");
77+
SharedPreferences.Editor editor = sharedPref.edit();
78+
editor.putString(s, "1000");
79+
editor.commit();
80+
}
81+
break;
82+
default:
83+
break;
84+
}
85+
}
86+
}

0 commit comments

Comments
 (0)