updated gradle und stuff...

fixed threading bug in tapping on the huawei watch
This commit is contained in:
toni
2019-01-27 16:42:22 +01:00
parent 49042a0cfb
commit a9532f8129
5 changed files with 28 additions and 32 deletions

View File

@@ -13,6 +13,9 @@ import android.view.GestureDetector;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.widget.TextView; import android.widget.TextView;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import de.tonifetzer.conductorswatch.network.SensorDataFileSender; import de.tonifetzer.conductorswatch.network.SensorDataFileSender;
import de.tonifetzer.conductorswatch.utilities.Utils; import de.tonifetzer.conductorswatch.utilities.Utils;
@@ -21,7 +24,6 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
// member // member
private TextView mTextView; private TextView mTextView;
private Croller mCroller; private Croller mCroller;
private GestureDetector mDetector;
private boolean mModeRecord = false; private boolean mModeRecord = false;
// connection to phone stuff // connection to phone stuff
@@ -40,16 +42,18 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
private int mMetronomBpm = 80; private int mMetronomBpm = 80;
private int mLastSendBPM = 80; private int mLastSendBPM = 80;
//threading
final ExecutorService mExecutorService = Executors.newCachedThreadPool();
// tapping // tapping
private Thread mTapBpmThread;
private TapBpm mTapBpm; private TapBpm mTapBpm;
private boolean mTapRecognized = false; private boolean mTapRecognized = true;
private int mTapBpmEstimation; private int mTapBpmEstimation;
private Vibrator mVibrator; private Vibrator mVibrator;
//parameter for long press to start the worker //parameter for long press to start the worker
private Point mPreviousMovePoint; //private Point mPreviousMovePoint;
private int mDistanceJitteringLongPress = 50; // in pixel //private int mDistanceJitteringLongPress = 50; // in pixel
private int mLongPressDelay = 1200; // in Milliseconds private int mLongPressDelay = 1200; // in Milliseconds
private boolean mLongPressHandlerActivated = false; private boolean mLongPressHandlerActivated = false;
private final Handler mHandler = new Handler(); private final Handler mHandler = new Handler();
@@ -135,7 +139,7 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
mHandler.removeCallbacks(mLongPressed); mHandler.removeCallbacks(mLongPressed);
if (mLongPressHandlerActivated) { if (mLongPressHandlerActivated) {
mLongPressHandlerActivated = false; mLongPressHandlerActivated = false;
mPreviousMovePoint = null; //mPreviousMovePoint = null;
return false; return false;
} }
return false; return false;
@@ -195,17 +199,21 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (!mTapRecognized) { //if (!mTapRecognized) {
mTapBpm.addTimestamp(System.currentTimeMillis()); mTapBpm.addTimestamp(System.currentTimeMillis());
mTapRecognized = true; //mTapRecognized = true;
} //}
} }
if (ev.getAction() == MotionEvent.ACTION_UP) { if (ev.getAction() == MotionEvent.ACTION_UP) {
if (!mTapBpmThread.isAlive() && mTapRecognized) { if (mTapRecognized) {
mTapBpmThread.start();
mExecutorService.submit(mTapBpm);
//mTapBpmThread = new Thread(mTapBpm);
//mTapBpmThread.start();
mCroller.setLabel("Tippe weiter"); mCroller.setLabel("Tippe weiter");
} }
mTapRecognized = false; mTapRecognized = false;
@@ -225,11 +233,11 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
mDisplayHeight = this.getResources().getDisplayMetrics().heightPixels; mDisplayHeight = this.getResources().getDisplayMetrics().heightPixels;
mDisplayCenter = new Point((mDisplayWidth / 2), (mDisplayHeight / 2)); mDisplayCenter = new Point((mDisplayWidth / 2), (mDisplayHeight / 2));
//add tap listener
mTapBpm = new TapBpm(); mTapBpm = new TapBpm();
mTapBpm.add(this); mTapBpm.add(this);
mTapBpmThread = new Thread(mTapBpm, "tapThread");
mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
mTextView = (TextView) findViewById(R.id.bpmText); mTextView = (TextView) findViewById(R.id.bpmText);
mSender = new SensorDataFileSender(this); mSender = new SensorDataFileSender(this);
@@ -263,17 +271,6 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
} }
}); });
// detector for double clicks
mDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onDoubleTap(MotionEvent ev) {
Log.d("Gesture", "onDoubleTap: " + ev.toString());
return true;
}
});
// Enables Always-on // Enables Always-on
setAmbientEnabled(); setAmbientEnabled();
} }
@@ -343,7 +340,7 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
if (mTapBpmEstimation > 0) { if (mTapBpmEstimation > 0) {
mCroller.setProgress(mTapBpmEstimation); mCroller.setProgress(mTapBpmEstimation);
mCroller.setLabel("Fertig"); mCroller.setLabel("Fertig");
mVibrator.vibrate(10); mVibrator.vibrate(20);
} }
} }
}); });
@@ -361,7 +358,7 @@ public class MainActivity extends WearableActivity implements WorkerFragment.OnF
}); });
mTapBpm.clearTimestamps(); mTapBpm.clearTimestamps();
mTapRecognized = false; mTapRecognized = true;
/* /*
mTapBpmThread.interrupt(); mTapBpmThread.interrupt();
try { try {

View File

@@ -1,7 +1,5 @@
package de.tonifetzer.conductorswatch; package de.tonifetzer.conductorswatch;
import android.util.Log;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
@@ -28,7 +26,7 @@ public class TapBpm implements Runnable {
if (mReceivedTabs.size() > calcNewBpmCounter) { if (mReceivedTabs.size() > calcNewBpmCounter) {
Long sumDifferenceMs = 0l; long sumDifferenceMs = 0L;
for (int i = 0; i < mReceivedTabs.size() -1; ++i) { for (int i = 0; i < mReceivedTabs.size() -1; ++i) {
sumDifferenceMs += mReceivedTabs.get(i + 1)- mReceivedTabs.get(i); sumDifferenceMs += mReceivedTabs.get(i + 1)- mReceivedTabs.get(i);
} }

View File

@@ -56,6 +56,7 @@ public class WorkerFragment extends Fragment implements Metronome.OnMetronomeLis
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// init bpm estimator and listener // init bpm estimator and listener
//TODO: hier ein Thread draus machen?
mEstimator = new Estimator(getContext()); mEstimator = new Estimator(getContext());
mEstimator.add(this); mEstimator.add(this);
mBpmList = new Vector<Double>(); mBpmList = new Vector<Double>();

View File

@@ -10,7 +10,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.android.tools.build:gradle:3.3.0'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong

View File

@@ -1,6 +1,6 @@
#Fri Apr 27 14:10:48 CEST 2018 #Sun Jan 27 12:15:23 CET 2019
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip