Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ dependencies {
implementation "com.afollestad.material-dialogs:core:$rootProject.materialDialogsVersion"
implementation "com.jakewharton:butterknife:$rootProject.butterKnifeVersion"
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterKnifeVersion"
implementation "com.github.medyo:android-about-page:$rootProject.androidAboutPageVersion"
implementation "com.github.tiagohm.MarkdownView:library:$rootProject.markDownViewVersion"
Expand All @@ -65,6 +67,7 @@ dependencies {
implementation "org.osmdroid:osmdroid-mapsforge:$rootProject.mapsforgeVersion"
implementation "org.osmdroid:osmdroid-geopackage:$rootProject.geoPackageVersion"
implementation "com.android.support:multidex:$rootProject.multiDexVersion"
implementation 'io.realm:android-adapters:2.1.1'

testImplementation "junit:junit:$rootProject.junitVersion"
androidTestImplementation("com.android.support.test:runner:$rootProject.testRunnerRulesVersion") {
Expand Down
17 changes: 7 additions & 10 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>

<activity android:name=".activity.SettingsActivity"/>

<activity android:name=".activity.SettingsActivity" />
<activity android:name=".activity.ShowLoggedData" />
<activity
android:name=".activity.PerformExperimentActivity"
Expand Down Expand Up @@ -77,14 +75,13 @@
android:name=".activity.LuxMeterActivity"
android:configChanges="orientation|screenSize|keyboardHidden" />
<activity android:name=".activity.AccelerometerActivity" />

<activity android:name=".activity.DataLoggerActivity" />
<activity
android:name=".activity.Barometer_activity"
android:configChanges="keyboardHidden|screenSize|orientation"/>

<activity android:name=".activity.CompassActivity"
android:screenOrientation="portrait"/>

android:configChanges="keyboardHidden|screenSize|orientation" />
<activity
android:name=".activity.CompassActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.MapsActivity" />

<receiver android:name=".receivers.USBDetachReceiver" />
Expand All @@ -97,7 +94,7 @@
<activity android:name=".sensors.SensorSHT21" />
<activity android:name=".sensors.SensorMPU6050" />
<activity android:name=".sensors.SensorTSL2561" />

<activity android:name=".activity.SensorGraphViewActivity"></activity>
</application>

</manifest>
5 changes: 5 additions & 0 deletions app/src/main/java/io/pslab/PSLabApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.app.Application;

import io.realm.Realm;
import io.realm.RealmConfiguration;

/**
* Created by viveksb007 on 4/8/17.
Expand All @@ -14,5 +15,9 @@ public class PSLabApplication extends Application {
public void onCreate() {
super.onCreate();
Realm.init(this);
RealmConfiguration.Builder v = new RealmConfiguration.Builder().name(Realm.DEFAULT_REALM_NAME)
.schemaVersion(0)
.deleteRealmIfMigrationNeeded();
Realm.setDefaultConfiguration(v.build());
}
}
86 changes: 86 additions & 0 deletions app/src/main/java/io/pslab/activity/DataLoggerActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package io.pslab.activity;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

import butterknife.BindView;
import butterknife.ButterKnife;
import io.pslab.R;
import io.pslab.adapters.SensorLoggerListAdapter;
import io.pslab.models.SensorLogged;
import io.realm.Realm;
import io.realm.RealmResults;
import io.realm.Sort;

/**
* Created by Avjeet on 05/08/18.
*/

public class DataLoggerActivity extends AppCompatActivity {
public static final String CALLER_ACTIVITY = "Caller";
@BindView(R.id.recycler_view)
RecyclerView recyclerView;

@BindView(R.id.toolbar)
Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data_logger);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
Realm realm = Realm.getDefaultInstance();
String caller = getIntent().getStringExtra(CALLER_ACTIVITY);
if (caller == null)
caller = "";

RealmResults<SensorLogged> results;
String title;
switch (caller) {
case "Lux Meter":
results = realm.where(SensorLogged.class).equalTo("sensor", caller)
.findAll()
.sort("dateTimeStart", Sort.DESCENDING);
title = caller + " Data";
break;
default:
results = realm.where(SensorLogged.class)
.findAll()
.sort("dateTimeStart", Sort.DESCENDING);
title = getString(R.string.logged_data);
}
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle(title);
}
SensorLoggerListAdapter adapter = new SensorLoggerListAdapter(results, this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(linearLayoutManager);

DividerItemDecoration itemDecor = new DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL);
recyclerView.addItemDecoration(itemDecor);
recyclerView.setAdapter(adapter);
}

@Override
public void onBackPressed() {
finish();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
75 changes: 35 additions & 40 deletions app/src/main/java/io/pslab/activity/LuxMeterActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,18 @@
import android.widget.TextView;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import io.pslab.R;
import io.pslab.fragment.LuxMeterFragmentConfig;
import io.pslab.fragment.LuxMeterFragmentData;
import io.pslab.fragment.SettingsFragment;
import io.pslab.others.CSVLogger;
import io.pslab.others.CustomSnackBar;
import io.pslab.others.GPSLogger;
import io.pslab.others.MathUtils;
import io.pslab.fragment.SettingsFragment;
import io.pslab.others.SwipeGestureDetector;

import butterknife.BindView;
import butterknife.ButterKnife;

public class LuxMeterActivity extends AppCompatActivity {

private static final String PREF_NAME = "customDialogPreference";
Expand Down Expand Up @@ -85,13 +84,16 @@ public class LuxMeterActivity extends AppCompatActivity {
private boolean checkGpsOnResume = false;
public boolean locationPref;
private LuxMeterFragmentData selectedFragment;
public static final String NAME = "realmData";
private SharedPreferences realmPreferences;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lux_main);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
realmPreferences = getSharedPreferences(NAME, Context.MODE_PRIVATE);
setUpBottomSheet();
bottomNavigationView.setOnNavigationItemSelectedListener
(new BottomNavigationView.OnNavigationItemSelectedListener() {
Expand Down Expand Up @@ -215,36 +217,34 @@ public boolean onPrepareOptionsMenu(Menu menu) {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.record_data:
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_STORAGE_FOR_DATA);
return true;
}
if (recordData) {
((LuxMeterFragmentData)selectedFragment).stopSensorFetching();
((LuxMeterFragmentData) selectedFragment).stopSensorFetching();
invalidateOptionsMenu();
Long uniqueRef = realmPreferences.getLong("uniqueCount", 0);
selectedFragment.saveDataInRealm(uniqueRef,locationPref,gpsLogger);
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.exp_data_saved), null, null);
SharedPreferences.Editor editor = realmPreferences.edit();
editor.putLong("uniqueCount", uniqueRef + 1);
editor.commit();
recordData = false;
} else {
luxLogger = new CSVLogger(getString(R.string.lux_meter));
luxLogger.writeCSVFile("Timestamp,X,Y,Z\n");
recordData = true;
((LuxMeterFragmentData)selectedFragment).startSensorFetching();
invalidateOptionsMenu();
if (locationPref) {
gpsLogger = new GPSLogger(this, (LocationManager) getSystemService(Context.LOCATION_SERVICE));
if (gpsLogger.isGPSEnabled()) {
recordData = true;
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_enabled), null, null);
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
invalidateOptionsMenu();
} else {
checkGpsOnResume = true;
}
gpsLogger.startFetchingLocation();
} else {
recordData = true;
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_disabled), null, null);
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
invalidateOptionsMenu();
}
String snackText = getString(R.string.data_recording_start)+"\n"+(locationPref?getString(R.string.location_enabled):getString(R.string.location_disabled));
CustomSnackBar.showSnackBar(coordinatorLayout, snackText, null, null);
}
break;
case R.id.show_map:
Expand All @@ -260,6 +260,12 @@ public boolean onOptionsItemSelected(MenuItem item) {
break;
case R.id.settings:
startActivity(new Intent(this, SettingsActivity.class));
break;
case R.id.show_logged_data:
Intent intent = new Intent(this, DataLoggerActivity.class);
intent.putExtra(DataLoggerActivity.CALLER_ACTIVITY, "Lux Meter");
startActivity(intent);

break;
default:
break;
Expand All @@ -273,38 +279,27 @@ protected void onResume() {
if (checkGpsOnResume) {
if (gpsLogger.isGPSEnabled()) {
recordData = true;
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start), null, null);
((LuxMeterFragmentData) selectedFragment).startSensorFetching();
invalidateOptionsMenu();
gpsLogger.startFetchingLocation();
CustomSnackBar.showSnackBar(coordinatorLayout,getString(R.string.data_recording_start)+getString(R.string.location_enabled) , null, null);
} else {
recordData = false;
Toast.makeText(getApplicationContext(), getString(R.string.gps_not_enabled),
Toast.LENGTH_SHORT).show();
gpsLogger.removeUpdate();
}
checkGpsOnResume = false;
}
locationPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getBoolean(SettingsFragment.KEY_INCLUDE_LOCATION, false);
if(!locationPref && gpsLogger!=null){
gpsLogger = null;
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_FOR_DATA) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (locationPref) {
gpsLogger = new GPSLogger(this, (LocationManager) getSystemService(Context.LOCATION_SERVICE));
if (gpsLogger.isGPSEnabled()) {
recordData = true;
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_enabled), null, null);
} else {
checkGpsOnResume = true;
}
gpsLogger.startFetchingLocation();
} else {
recordData = true;
CustomSnackBar.showSnackBar(coordinatorLayout, getString(R.string.data_recording_start) + "\n" + getString(R.string.location_disabled), null, null);
}
} else {
Toast.makeText(this, R.string.prmsn_denied_storage, Toast.LENGTH_SHORT).show();
}
} else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_FOR_MAPS
if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_FOR_MAPS
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent MAP = new Intent(getApplicationContext(), MapsActivity.class);
startActivity(MAP);
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/io/pslab/activity/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,12 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
case R.id.nav_app_version:
setTitleColor(R.color.gray);
break;
case R.id.sensor_data_logger:
if (drawer != null) {
drawer.closeDrawers();
}
startActivity(new Intent(MainActivity.this, DataLoggerActivity.class));
break;
default:
navItemIndex = 0;
}
Expand Down
Loading