Skip to content

Commit f6fc82e

Browse files
authored
Merge pull request #1378 from fossasia/development
chore: merge dev to master releasing v2.0.2
2 parents abd246a + b1ac9bb commit f6fc82e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+2874
-1360
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
# PSLab Android App
22

33
<a href="https://play.google.com/store/apps/details?id=io.pslab"><img alt="Get it on Google Play" height="80" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"></a>
4-
<a href="https://f-droid.org/app/org.fossasia.pslab"><img alt="Get it on F-Droid" height="80" src="https://f-droid.org/badge/get-it-on.png"></a>
54

65
[![Build Status](https://travis-ci.org/fossasia/pslab-android.svg?branch=development)](https://travis-ci.org/fossasia/pslab-android)
76
[![Gitter](https://badges.gitter.im/fossasia/pslab.svg)](https://gitter.im/fossasia/pslab?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
87
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/dd728d91bb5743ff916c16c1251f8dd5)](https://www.codacy.com/app/praveenkumar103/pslab-android?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=fossasia/pslab-android&amp;utm_campaign=Badge_Grade)
98
[![Mailing List](https://img.shields.io/badge/Mailing%20List-FOSSASIA-blue.svg)](mailto:[email protected])
109

11-
This repository holds the Android App for performing experiments with [PSLab](http://pslab.fossasia.org/). PSLab is a tiny pocket science lab that provides an array of equipment for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. Our website is at http://pslab.fossasia.org
10+
This repository holds the Android App for performing experiments with [PSLab](https://pslab.io/). PSLab is a tiny pocket science lab that provides an array of equipment for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. Our website is at https://pslab.io
1211

1312
## Communication
1413

@@ -151,5 +150,8 @@ The project is maintained by
151150
- Praveen Patil ([@wavicles](https://github.com/wavicles))
152151
- Mario Behling ([@mariobehling](http://github.com/mariobehling))
153152
- Lorenz Gerber ([@lorenzgerber](https://github.com/lorenzgerber))
153+
- Wei Tat ([@cweitat](https://github.com/cweitat))
154+
- Wai Gie ([@woshikie](https://github.com/woshikie))
154155
- Jithin ([@jithinbp](https://github.com/jithinbp))
155156
- Akarshan Gandotra ([@akarshan96](https://github.com/akarshan96)), Asitava Sarkar ([@asitava1998](https://github.com/asitava1998)), Padmal ([@CloudyPadmal](https://github.com/CloudyPadmal)), Vivek Singh Bhadauria ([@viveksb007](https://github.com/viveksb007))
157+
- Avjeet ([@Avjeet](https://github.com/Avjeet)), Abhinav ([@abhinavraj23](https://github.com/abhinavraj23)), Harsh ([@harsh-2711](https://github.com/harsh-2711)), Yatri ([@yatri1609](https://github.com/yatri1609))

app/build.gradle

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
applicationId "io.pslab"
99
minSdkVersion rootProject.ext.minSdkVersion
1010
targetSdkVersion rootProject.ext.targetSdkVersion
11-
versionCode 2
12-
versionName "2.0.1"
11+
versionCode 3
12+
versionName "2.0.2"
1313
multiDexEnabled true
1414
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1515
}
@@ -52,6 +52,8 @@ dependencies {
5252
implementation "com.afollestad.material-dialogs:core:$rootProject.materialDialogsVersion"
5353
implementation "com.jakewharton:butterknife:$rootProject.butterKnifeVersion"
5454
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"
55+
implementation 'com.android.support:support-v4:27.1.1'
56+
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
5557
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterKnifeVersion"
5658
implementation "com.github.medyo:android-about-page:$rootProject.androidAboutPageVersion"
5759
implementation "com.github.tiagohm.MarkdownView:library:$rootProject.markDownViewVersion"
@@ -65,6 +67,7 @@ dependencies {
6567
implementation "org.osmdroid:osmdroid-mapsforge:$rootProject.mapsforgeVersion"
6668
implementation "org.osmdroid:osmdroid-geopackage:$rootProject.geoPackageVersion"
6769
implementation "com.android.support:multidex:$rootProject.multiDexVersion"
70+
implementation "io.realm:android-adapters:$rootProject.realmAdapter"
6871

6972
testImplementation "junit:junit:$rootProject.junitVersion"
7073
androidTestImplementation("com.android.support.test:runner:$rootProject.testRunnerRulesVersion") {

app/src/main/AndroidManifest.xml

+8-11
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@
4343
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
4444
android:resource="@xml/device_filter" />
4545
</activity>
46-
47-
<activity android:name=".activity.SettingsActivity"/>
48-
46+
<activity android:name=".activity.SettingsActivity" />
4947
<activity android:name=".activity.ShowLoggedData" />
5048
<activity
5149
android:name=".activity.PerformExperimentActivity"
@@ -77,14 +75,13 @@
7775
android:name=".activity.LuxMeterActivity"
7876
android:configChanges="orientation|screenSize|keyboardHidden" />
7977
<activity android:name=".activity.AccelerometerActivity" />
80-
78+
<activity android:name=".activity.DataLoggerActivity" />
8179
<activity
82-
android:name=".activity.Barometer_activity"
83-
android:configChanges="keyboardHidden|screenSize|orientation"/>
84-
85-
<activity android:name=".activity.CompassActivity"
86-
android:screenOrientation="portrait"/>
87-
80+
android:name=".activity.BarometerActivity"
81+
android:configChanges="keyboardHidden|screenSize|orientation" />
82+
<activity
83+
android:name=".activity.CompassActivity"
84+
android:screenOrientation="portrait" />
8885
<activity android:name=".activity.MapsActivity" />
8986

9087
<receiver android:name=".receivers.USBDetachReceiver" />
@@ -97,7 +94,7 @@
9794
<activity android:name=".sensors.SensorSHT21" />
9895
<activity android:name=".sensors.SensorMPU6050" />
9996
<activity android:name=".sensors.SensorTSL2561" />
100-
97+
<activity android:name=".activity.SensorGraphViewActivity"></activity>
10198
</application>
10299

103100
</manifest>

app/src/main/java/io/pslab/PSLabApplication.java

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Application;
44

55
import io.realm.Realm;
6+
import io.realm.RealmConfiguration;
67

78
/**
89
* Created by viveksb007 on 4/8/17.
@@ -14,5 +15,9 @@ public class PSLabApplication extends Application {
1415
public void onCreate() {
1516
super.onCreate();
1617
Realm.init(this);
18+
RealmConfiguration.Builder v = new RealmConfiguration.Builder().name(Realm.DEFAULT_REALM_NAME)
19+
.schemaVersion(0)
20+
.deleteRealmIfMigrationNeeded();
21+
Realm.setDefaultConfiguration(v.build());
1722
}
1823
}

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

+11
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,14 @@ protected void onCreate(Bundle savedInstanceState) {
9494
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
9595

9696
setUpBottomSheet();
97+
tvShadow.setOnClickListener(new View.OnClickListener() {
98+
@Override
99+
public void onClick(View v) {
100+
if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED)
101+
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
102+
tvShadow.setVisibility(View.GONE);
103+
}
104+
});
97105
setSupportActionBar(mToolbar);
98106

99107
adapter = new AccelerometerAdapter(new String[]{"X axis", "Y axis", "Z axis"}, getApplicationContext());
@@ -258,6 +266,7 @@ private void setUpBottomSheet() {
258266

259267
if (isFirstTime) {
260268
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
269+
tvShadow.setVisibility(View.VISIBLE);
261270
tvShadow.setAlpha(0.8f);
262271
arrowUpDown.setRotation(180);
263272
bottomSheetSlideText.setText(R.string.hide_guide_text);
@@ -292,12 +301,14 @@ public void onStateChanged(@NonNull final View bottomSheet, int newState) {
292301
default:
293302
handler.removeCallbacks(runnable);
294303
bottomSheetSlideText.setText(R.string.show_guide_text);
304+
break;
295305
}
296306
}
297307

298308
@Override
299309
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
300310
Float value = (float) MathUtils.map((double) slideOffset, 0.0, 1.0, 0.0, 0.8);
311+
tvShadow.setVisibility(View.VISIBLE);
301312
tvShadow.setAlpha(value);
302313
arrowUpDown.setRotation(slideOffset * 180);
303314
}

app/src/main/java/io/pslab/activity/Barometer_activity.java app/src/main/java/io/pslab/activity/BarometerActivity.java

+39-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.pslab.activity;
22

33
import android.annotation.SuppressLint;
4+
import android.content.DialogInterface;
45
import android.content.SharedPreferences;
56
import android.graphics.Color;
67
import android.hardware.Sensor;
@@ -11,6 +12,7 @@
1112
import android.os.Handler;
1213
import android.support.annotation.NonNull;
1314
import android.support.design.widget.BottomSheetBehavior;
15+
import android.support.v7.app.AlertDialog;
1416
import android.support.v7.app.AppCompatActivity;
1517
import android.os.Bundle;
1618
import android.view.GestureDetector;
@@ -47,15 +49,15 @@
4749
import butterknife.ButterKnife;
4850
import butterknife.Unbinder;
4951

50-
public class Barometer_activity extends AppCompatActivity {
52+
public class BarometerActivity extends AppCompatActivity {
5153
BottomSheetBehavior bottomSheetBehavior;
5254
GestureDetector gestureDetector;
5355
private static final String PREF_NAME = "customDialogPreference";
5456

5557
private static int sensorType = 0;
5658
private static int highLimit = 1000;
5759
private static int updatePeriod = 100;
58-
private Barometer_activity.SensorDataFetch sensorDataFetch;
60+
private BarometerActivity.SensorDataFetch sensorDataFetch;
5961

6062
@BindView(R.id.barometer_max)
6163
TextView statMax;
@@ -101,8 +103,8 @@ public class Barometer_activity extends AppCompatActivity {
101103
@BindView(R.id.custom_dialog_desc)
102104
TextView bottomSheetDesc;
103105

104-
public static Barometer_activity newInstance() {
105-
return new Barometer_activity();
106+
public static BarometerActivity newInstance() {
107+
return new BarometerActivity();
106108
}
107109

108110
@SuppressLint("ResourceType")
@@ -112,14 +114,41 @@ protected void onCreate(Bundle savedInstanceState) {
112114
setContentView(R.layout.activity_barometer_main);
113115
ButterKnife.bind(this);
114116
setUpBottomSheet();
115-
Barometer_activity.newInstance();
117+
tvShadow.setOnClickListener(new View.OnClickListener() {
118+
@Override
119+
public void onClick(View v) {
120+
if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED)
121+
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
122+
tvShadow.setVisibility(View.GONE);
123+
}
124+
});
125+
BarometerActivity.newInstance();
116126

117127
currentMin = 10000;
118128
entries = new ArrayList<>();
119129
switch (sensorType) {
120130
case 0:
121131
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
122132
sensor = sensorManager != null ? sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) : null;
133+
if (sensor == null) {
134+
runOnUiThread(new Runnable() {
135+
@Override
136+
public void run() {
137+
if (!isFinishing()) {
138+
new AlertDialog.Builder(BarometerActivity.this)
139+
.setTitle(R.string.barometer_alert_title)
140+
.setMessage(R.string.barometer_alert_description)
141+
.setCancelable(false)
142+
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
143+
@Override
144+
public void onClick(DialogInterface dialog, int which) {
145+
dialog.dismiss();
146+
}
147+
}).show();
148+
}
149+
}
150+
});
151+
}
123152
break;
124153
case 1:
125154
scienceLab = ScienceLabCommon.scienceLab;
@@ -228,9 +257,9 @@ public void run() {
228257
}
229258

230259
public static void setParameters(int sensorType, int highLimit, int updatePeriod) {
231-
Barometer_activity.sensorType = sensorType;
232-
Barometer_activity.highLimit = highLimit;
233-
Barometer_activity.updatePeriod = updatePeriod;
260+
BarometerActivity.sensorType = sensorType;
261+
BarometerActivity.highLimit = highLimit;
262+
BarometerActivity.updatePeriod = updatePeriod;
234263
}
235264

236265

@@ -345,6 +374,7 @@ private void setUpBottomSheet() {
345374

346375
if (isFirstTime) {
347376
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
377+
tvShadow.setVisibility(View.VISIBLE);
348378
tvShadow.setAlpha(0.8f);
349379
arrowUpDown.setRotation(180);
350380
bottomSheetSlideText.setText(R.string.hide_guide_text);
@@ -386,6 +416,7 @@ public void onStateChanged(@NonNull final View bottomSheet, int newState) {
386416
@Override
387417
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
388418
Float value = (float) MathUtils.map((double) slideOffset, 0.0, 1.0, 0.0, 0.8);
419+
tvShadow.setVisibility(View.VISIBLE);
389420
tvShadow.setAlpha(value);
390421
arrowUpDown.setRotation(slideOffset * 180);
391422
}

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

+20-8
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,15 @@ public void onClick(View v) {
129129
direction = 2;
130130
}
131131
});
132+
133+
tvShadow.setOnClickListener(new View.OnClickListener() {
134+
@Override
135+
public void onClick(View v) {
136+
if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED)
137+
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
138+
tvShadow.setVisibility(View.GONE);
139+
}
140+
});
132141
}
133142

134143
@Override
@@ -200,13 +209,6 @@ private void setCompassAnimation(float degree) {
200209
compass.startAnimation(ra);
201210
}
202211

203-
@Override
204-
public boolean onCreateOptionsMenu(Menu menu) {
205-
MenuInflater inflater = getMenuInflater();
206-
inflater.inflate(R.menu.activity_compass_help_menu, menu);
207-
return true;
208-
}
209-
210212
/**
211213
* Initiates bottom sheet to display guide on how to use Compass instrument
212214
*/
@@ -217,6 +219,7 @@ private void setUpBottomSheet() {
217219

218220
if (isFirstTime) {
219221
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
222+
tvShadow.setVisibility(View.VISIBLE);
220223
tvShadow.setAlpha(0.8f);
221224
arrowUpDown.setRotation(180);
222225
bottomSheetSlideText.setText(R.string.hide_guide_text);
@@ -249,19 +252,21 @@ public void onStateChanged(@NonNull final View bottomSheet, int newState) {
249252
break;
250253

251254
case BottomSheetBehavior.STATE_COLLAPSED:
252-
handler.postDelayed(runnable, 1000);
255+
handler.postDelayed(runnable, 2000);
253256
break;
254257

255258
default:
256259
handler.removeCallbacks(runnable);
257260
bottomSheetSlideText.setText(R.string.show_guide_text);
261+
break;
258262
}
259263
}
260264

261265
@Override
262266
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
263267
Float value = (float) MathUtils.map((double) slideOffset, 0.0, 1.0,
264268
0.0, 0.8);
269+
tvShadow.setVisibility(View.VISIBLE);
265270
tvShadow.setAlpha(value);
266271
arrowUpDown.setRotation(slideOffset * 180);
267272
}
@@ -276,6 +281,13 @@ public boolean onTouchEvent(MotionEvent event) {
276281
return super.onTouchEvent(event);
277282
}
278283

284+
@Override
285+
public boolean onCreateOptionsMenu(Menu menu) {
286+
MenuInflater inflater = getMenuInflater();
287+
inflater.inflate(R.menu.activity_compass_help_menu, menu);
288+
return true;
289+
}
290+
279291
@Override
280292
public boolean onOptionsItemSelected(MenuItem item) {
281293
switch (item.getItemId()) {

0 commit comments

Comments
 (0)