Skip to content

Commit 5b76505

Browse files
committed
stored data in realm database and added data logged activity in menu
1 parent f3da809 commit 5b76505

File tree

11 files changed

+301
-79
lines changed

11 files changed

+301
-79
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.pslab.activity;
2+
3+
import android.support.annotation.NonNull;
4+
import android.support.v7.widget.RecyclerView;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.TextView;
9+
10+
import org.pslab.R;
11+
12+
import org.pslab.models.LuxData;
13+
14+
import io.realm.RealmResults;
15+
16+
/**
17+
* Created by Your name on 03-08-2018.
18+
*/
19+
class LuxDataAdapter extends RecyclerView.Adapter<LuxDataAdapter.ViewHolder>{
20+
private RealmResults<LuxData> results;
21+
22+
public LuxDataAdapter(RealmResults<LuxData> results) {
23+
this.results= results;
24+
}
25+
26+
@NonNull
27+
@Override
28+
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
29+
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.lux_realm_data_item, parent, false);
30+
return new ViewHolder(itemView);
31+
}
32+
33+
@Override
34+
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
35+
LuxData temp = results.get(position);
36+
holder.time.setText(String.valueOf(temp.getTimeElapsed()));
37+
holder.lux.setText(String.valueOf(temp.getLux()));
38+
}
39+
40+
@Override
41+
public int getItemCount() {
42+
return results.size();
43+
}
44+
45+
public class ViewHolder extends RecyclerView.ViewHolder{
46+
private TextView lux,time;
47+
public ViewHolder(View itemView) {
48+
super(itemView);
49+
time = itemView.findViewById(R.id.time);
50+
lux = itemView.findViewById(R.id.lux);
51+
}
52+
}
53+
}

app/src/main/java/org/pslab/activity/LuxMeterActivity.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
import org.pslab.R;
3434
import org.pslab.fragment.LuxMeterFragmentConfig;
3535
import org.pslab.fragment.LuxMeterFragmentData;
36+
import org.pslab.fragment.SettingsFragment;
3637
import org.pslab.others.CustomSnackBar;
3738
import org.pslab.others.GPSLogger;
3839
import org.pslab.others.MathUtils;
39-
import org.pslab.fragment.SettingsFragment;
4040
import org.pslab.others.SwipeGestureDetector;
4141

4242
import butterknife.BindView;
@@ -200,7 +200,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
200200
@Override
201201
public boolean onPrepareOptionsMenu(Menu menu) {
202202
MenuItem item = menu.findItem(R.id.save_csv_data);
203-
item.setIcon(saveData? R.drawable.ic_pause_white_24dp: R.drawable.ic_play_arrow_white_24dp);
203+
item.setIcon(saveData ? R.drawable.ic_pause_white_24dp : R.drawable.ic_play_arrow_white_24dp);
204204
return super.onPrepareOptionsMenu(menu);
205205
}
206206

@@ -216,24 +216,24 @@ public boolean onOptionsItemSelected(MenuItem item) {
216216
return true;
217217
}
218218
if (saveData) {
219-
((LuxMeterFragmentData)selectedFragment).stopSensorFetching();
219+
((LuxMeterFragmentData) selectedFragment).stopSensorFetching();
220220
invalidateOptionsMenu();
221221
saveData = false;
222222
} else {
223-
((LuxMeterFragmentData)selectedFragment).startSensorFetching();
224-
invalidateOptionsMenu();
225223
if (locationPref) {
226224
gpsLogger = new GPSLogger(this, (LocationManager) getSystemService(Context.LOCATION_SERVICE));
227225
if (gpsLogger.isGPSEnabled()) {
228226
saveData = true;
229-
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_enabled), null, null);
227+
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
228+
invalidateOptionsMenu();
230229
} else {
231230
checkGpsOnResume = true;
232231
}
233232
gpsLogger.startFetchingLocation();
234233
} else {
235234
saveData = true;
236-
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_disabled), null, null);
235+
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
236+
invalidateOptionsMenu();
237237
}
238238
}
239239
invalidateOptionsMenu();
@@ -248,10 +248,15 @@ public boolean onOptionsItemSelected(MenuItem item) {
248248
}
249249
Intent MAP = new Intent(getApplicationContext(), MapsActivity.class);
250250
startActivity(MAP);
251+
startActivity(new Intent(this, ShowLoggedData.class));
251252
break;
252253
case R.id.settings:
253254
startActivity(new Intent(this, SettingsActivity.class));
254255
break;
256+
case R.id.save_experiment_state:
257+
selectedFragment.saveDataInRealm();
258+
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.exp_state_saved), null, null);
259+
break;
255260
default:
256261
break;
257262
}
@@ -264,7 +269,8 @@ protected void onResume() {
264269
if (checkGpsOnResume) {
265270
if (gpsLogger.isGPSEnabled()) {
266271
saveData = true;
267-
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start), null, null);
272+
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
273+
invalidateOptionsMenu();
268274
} else {
269275
saveData = false;
270276
Toast.makeText(getApplicationContext(), getString(R.string.gps_not_enabled),

app/src/main/java/org/pslab/activity/MainActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,12 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
270270
case R.id.nav_app_version:
271271
setTitleColor(R.color.gray);
272272
break;
273+
case R.id.sensor_data_logger:
274+
if (drawer != null) {
275+
drawer.closeDrawers();
276+
}
277+
startActivity(new Intent(MainActivity.this, ShowLoggedData.class));
278+
break;
273279
default:
274280
navItemIndex = 0;
275281
}

app/src/main/java/org/pslab/activity/ShowLoggedData.java

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import android.support.v7.widget.LinearLayoutManager;
1212
import android.support.v7.widget.RecyclerView;
1313
import android.support.v7.widget.Toolbar;
14+
import android.util.Log;
15+
import android.view.LayoutInflater;
1416
import android.view.Menu;
1517
import android.view.MenuItem;
1618
import android.view.View;
@@ -26,6 +28,7 @@
2628
import org.pslab.R;
2729
import org.pslab.adapters.MPUDataAdapter;
2830
import org.pslab.models.DataMPU6050;
31+
import org.pslab.models.LuxData;
2932
import org.pslab.models.SensorLogged;
3033

3134
import java.io.File;
@@ -62,6 +65,7 @@ public class ShowLoggedData extends AppCompatActivity {
6265
private boolean isRecyclerViewOnStack = false;
6366
private boolean isTrialListViewOnStack = false;
6467
private boolean isSensorListViewOnStack = false;
68+
private View v;
6569

6670
@Override
6771
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -220,21 +224,30 @@ private void exportCompleteSensorData(String sensor) {
220224
private void showSensorTrialData(final String sensor) {
221225
Number trial;
222226
ArrayList<String> trialList = new ArrayList<>();
227+
Long maxTrials;
223228

224229
switch (sensor) {
225230
case "MPU6050":
226231
trial = realm.where(DataMPU6050.class).max("trial");
227232
if (trial == null) return;
228-
long maxTrials = (long) trial + 1;
233+
maxTrials = (long) trial + 1;
229234
for (int i = 0; i < maxTrials; i++) {
230235
trialList.add("Trial #" + (i + 1));
231236
}
232237
break;
238+
case "Lux":
239+
trial = realm.where(LuxData.class).max("trial");
240+
if (trial == null) return;
241+
maxTrials = (long) trial + 1;
242+
for (int i = 0; i < maxTrials; i++) {
243+
trialList.add("Trial #" + (i + 1));
244+
}
233245
default:
234246
// Todo : Add cases for other sensor
235247
}
236248

237-
linearLayout.removeView(sensorListView);
249+
// linearLayout.removeView(sensorListView);
250+
linearLayout.removeAllViews();
238251
isSensorListViewOnStack = false;
239252
trialListView = new ListView(context);
240253
linearLayout.addView(trialListView);
@@ -250,23 +263,31 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
250263
}
251264

252265
private void populateSensorData(String sensor, long trial) {
253-
linearLayout.removeView(trialListView);
266+
// linearLayout.removeView(trialListView);
267+
linearLayout.removeAllViews();
254268
isTrialListViewOnStack = false;
255269
recyclerView = new RecyclerView(this);
270+
v = LayoutInflater.from(this).inflate(R.layout.lux_realm_data_item,linearLayout);
256271
linearLayout.addView(recyclerView);
257272
isRecyclerViewOnStack = true;
273+
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.VERTICAL,false);
274+
recyclerView.setLayoutManager(layoutManager);
275+
recyclerView.setItemAnimator(new DefaultItemAnimator());
276+
258277

259278
switch (sensor) {
260279
case "MPU6050":
261280
RealmResults<DataMPU6050> queryResults = realm.where(DataMPU6050.class).equalTo("trial", trial).findAll();
262281
MPUDataAdapter mpuDataAdapter = new MPUDataAdapter(queryResults);
263-
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
264-
recyclerView.setLayoutManager(layoutManager);
265-
recyclerView.setItemAnimator(new DefaultItemAnimator());
266282
recyclerView.setAdapter(mpuDataAdapter);
267283
break;
268-
default:
269-
// Todo : Add other cases
284+
case "Lux":
285+
RealmResults<LuxData> results = realm.where(LuxData.class).equalTo("trial", trial).findAll();
286+
for(LuxData item: results){
287+
Log.i("realmResult",String.valueOf(item.getLux()));
288+
}
289+
LuxDataAdapter luxAdapter = new LuxDataAdapter(results);
290+
recyclerView.setAdapter(luxAdapter);
270291
}
271292

272293
}
@@ -277,6 +298,9 @@ public void onBackPressed() {
277298
linearLayout.removeView(recyclerView);
278299
isRecyclerViewOnStack = false;
279300
showSensorTrialData(mSensor);
301+
// if(v!=null){
302+
// linearLayout.removeView(v);
303+
// }
280304
return;
281305
} else if (isTrialListViewOnStack) {
282306
linearLayout.removeView(trialListView);

0 commit comments

Comments
 (0)