Panagiotis Triantafyllou

cosmote intent dl fixes

...@@ -2,7 +2,7 @@ apply plugin: 'com.android.library' ...@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
2 2
3 ext { 3 ext {
4 PUBLISH_GROUP_ID = 'ly.warp' 4 PUBLISH_GROUP_ID = 'ly.warp'
5 - PUBLISH_VERSION = '4.5.4.6rc63' 5 + PUBLISH_VERSION = '4.5.4.6rc64'
6 PUBLISH_ARTIFACT_ID = 'warply-android-sdk' 6 PUBLISH_ARTIFACT_ID = 'warply-android-sdk'
7 } 7 }
8 8
......
...@@ -22,6 +22,7 @@ import android.view.WindowManager; ...@@ -22,6 +22,7 @@ import android.view.WindowManager;
22 import android.widget.EditText; 22 import android.widget.EditText;
23 import android.widget.ImageView; 23 import android.widget.ImageView;
24 import android.widget.LinearLayout; 24 import android.widget.LinearLayout;
25 +import android.widget.RelativeLayout;
25 import android.widget.TextView; 26 import android.widget.TextView;
26 27
27 import androidx.annotation.NonNull; 28 import androidx.annotation.NonNull;
...@@ -90,6 +91,7 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -90,6 +91,7 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
90 private String mStartTimestamp = "", mStopTimestamp = ""; 91 private String mStartTimestamp = "", mStopTimestamp = "";
91 private final int RECORDS_INTERVAL = 5000; 92 private final int RECORDS_INTERVAL = 5000;
92 private EditText mEtLimit, mEtSampleTime; 93 private EditText mEtLimit, mEtSampleTime;
94 + private RelativeLayout mRlMainScroll;
93 95
94 96
95 // =========================================================== 97 // ===========================================================
...@@ -105,6 +107,7 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -105,6 +107,7 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
105 mIvBack = findViewById(R.id.iv_telematics_close); 107 mIvBack = findViewById(R.id.iv_telematics_close);
106 mLlTripButton = findViewById(R.id.ll_activate_button); 108 mLlTripButton = findViewById(R.id.ll_activate_button);
107 mLlTripButton.setOnClickListener(this); 109 mLlTripButton.setOnClickListener(this);
110 + mLlTripButton.setOnTouchListener(mTripTouchListener);
108 mTvTripButton = findViewById(R.id.tv_trip_button); 111 mTvTripButton = findViewById(R.id.tv_trip_button);
109 mLlTelematicsMain = findViewById(R.id.ll_telematics_main); 112 mLlTelematicsMain = findViewById(R.id.ll_telematics_main);
110 mTvSensorData = findViewById(R.id.tv_sensor_data); 113 mTvSensorData = findViewById(R.id.tv_sensor_data);
...@@ -116,6 +119,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -116,6 +119,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
116 mTvTouchCount = findViewById(R.id.tv_touch); 119 mTvTouchCount = findViewById(R.id.tv_touch);
117 mEtLimit = findViewById(R.id.et_acceleration); 120 mEtLimit = findViewById(R.id.et_acceleration);
118 mEtSampleTime = findViewById(R.id.et_save); 121 mEtSampleTime = findViewById(R.id.et_save);
122 + mRlMainScroll = findViewById(R.id.rl_main_scroll);
123 + mRlMainScroll.setOnTouchListener(mScrollTouchListener);
119 124
120 locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 125 locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
121 previousLocation = null; 126 previousLocation = null;
...@@ -200,6 +205,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -200,6 +205,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
200 } 205 }
201 if (view.getId() == R.id.ll_activate_button) { 206 if (view.getId() == R.id.ll_activate_button) {
202 if (mIsTripStarted) { 207 if (mIsTripStarted) {
208 + mEtLimit.setEnabled(true);
209 + mEtSampleTime.setEnabled(true);
203 unregisterSensor(); 210 unregisterSensor();
204 stopLocationUpdates(); 211 stopLocationUpdates();
205 initViews(); 212 initViews();
...@@ -210,6 +217,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -210,6 +217,8 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
210 Snackbar.make(mLlTelematicsMain, "Please fill the Cut off field", Snackbar.LENGTH_SHORT).show(); 217 Snackbar.make(mLlTelematicsMain, "Please fill the Cut off field", Snackbar.LENGTH_SHORT).show();
211 return; 218 return;
212 } 219 }
220 + mEtLimit.setEnabled(false);
221 + mEtSampleTime.setEnabled(false);
213 mTouchHandler = new Handler(); 222 mTouchHandler = new Handler();
214 mTouchRunnable = new Runnable() { 223 mTouchRunnable = new Runnable() {
215 @Override 224 @Override
...@@ -292,28 +301,45 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -292,28 +301,45 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
292 } 301 }
293 } 302 }
294 303
295 - @Override 304 +// @Override
296 - public boolean onTouchEvent(MotionEvent event) { 305 +// public boolean dispatchTouchEvent(MotionEvent event) {
297 -// return super.onTouchEvent(event); 306 +// if (mIsTripStarted) {
298 - if (mIsTripStarted) { 307 +// switch (event.getAction()) {
308 +// case MotionEvent.ACTION_DOWN:
299 // touchCount++; 309 // touchCount++;
300 // mTvTouchCount.setText(String.valueOf(touchCount)); 310 // mTvTouchCount.setText(String.valueOf(touchCount));
311 +// mTouchHandler.post(mTouchRunnable);
301 // return true; 312 // return true;
313 +// case MotionEvent.ACTION_UP:
314 +// mTouchHandler.removeCallbacks(mTouchRunnable);
315 +// return true;
316 +// }
317 +// }
318 +// return super.dispatchTouchEvent(event);
319 +// }
302 320
303 - switch (event.getAction()) { 321 +// @Override
304 - case MotionEvent.ACTION_DOWN: 322 +// public boolean onTouchEvent(MotionEvent event) {
305 - touchCount++; 323 +//// return super.onTouchEvent(event);
306 - mTvTouchCount.setText(String.valueOf(touchCount)); 324 +// if (mIsTripStarted) {
307 - mTouchHandler.post(mTouchRunnable); 325 +//// touchCount++;
308 - return true; 326 +//// mTvTouchCount.setText(String.valueOf(touchCount));
309 - case MotionEvent.ACTION_UP: 327 +//// return true;
310 - mTouchHandler.removeCallbacks(mTouchRunnable); 328 +//
311 - return true; 329 +// switch (event.getAction()) {
312 - } 330 +// case MotionEvent.ACTION_DOWN:
313 - return false; 331 +// touchCount++;
314 - } 332 +// mTvTouchCount.setText(String.valueOf(touchCount));
315 - return false; 333 +// mTouchHandler.post(mTouchRunnable);
316 - } 334 +// return true;
335 +// case MotionEvent.ACTION_UP:
336 +// mTouchHandler.removeCallbacks(mTouchRunnable);
337 +// return true;
338 +// }
339 +// return false;
340 +// }
341 +// return false;
342 +// }
317 343
318 // =========================================================== 344 // ===========================================================
319 // Methods 345 // Methods
...@@ -495,6 +521,39 @@ public class TelematicsActivity extends Activity implements View.OnClickListener ...@@ -495,6 +521,39 @@ public class TelematicsActivity extends Activity implements View.OnClickListener
495 } 521 }
496 } 522 }
497 523
524 + private final View.OnTouchListener mTripTouchListener = new View.OnTouchListener() {
525 + @Override
526 + public boolean onTouch(View view, MotionEvent motionEvent) {
527 + if (mIsTripStarted) {
528 + if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
529 + mTouchHandler.removeCallbacks(mTouchRunnable);
530 + onClick(view);
531 + return true;
532 + }
533 + }
534 + return false;
535 + }
536 + };
537 +
538 + private final View.OnTouchListener mScrollTouchListener = new View.OnTouchListener() {
539 + @Override
540 + public boolean onTouch(View view, MotionEvent motionEvent) {
541 + if (mIsTripStarted) {
542 + switch (motionEvent.getAction()) {
543 + case MotionEvent.ACTION_DOWN:
544 + touchCount++;
545 + mTvTouchCount.setText(String.valueOf(touchCount));
546 + mTouchHandler.post(mTouchRunnable);
547 + return true;
548 + case MotionEvent.ACTION_UP:
549 + mTouchHandler.removeCallbacks(mTouchRunnable);
550 + return true;
551 + }
552 + }
553 + return false;
554 + }
555 + };
556 +
498 // // Low-pass filter function using Exponential Moving Average (EMA) 557 // // Low-pass filter function using Exponential Moving Average (EMA)
499 // private float lowPassFilter(float currentValue) { 558 // private float lowPassFilter(float currentValue) {
500 // float filteredValue = alpha * currentValue + (1 - alpha) * previousFilteredValue; 559 // float filteredValue = alpha * currentValue + (1 - alpha) * previousFilteredValue;
......
...@@ -43,6 +43,7 @@ import android.net.http.SslError; ...@@ -43,6 +43,7 @@ import android.net.http.SslError;
43 import android.os.Build; 43 import android.os.Build;
44 import android.text.TextUtils; 44 import android.text.TextUtils;
45 import android.util.AttributeSet; 45 import android.util.AttributeSet;
46 +import android.util.Log;
46 import android.webkit.GeolocationPermissions.Callback; 47 import android.webkit.GeolocationPermissions.Callback;
47 import android.webkit.JavascriptInterface; 48 import android.webkit.JavascriptInterface;
48 import android.webkit.SslErrorHandler; 49 import android.webkit.SslErrorHandler;
...@@ -75,6 +76,7 @@ import org.json.JSONException; ...@@ -75,6 +76,7 @@ import org.json.JSONException;
75 import org.json.JSONObject; 76 import org.json.JSONObject;
76 77
77 import java.io.UnsupportedEncodingException; 78 import java.io.UnsupportedEncodingException;
79 +import java.net.URISyntaxException;
78 import java.net.URLDecoder; 80 import java.net.URLDecoder;
79 import java.util.HashMap; 81 import java.util.HashMap;
80 import java.util.LinkedHashMap; 82 import java.util.LinkedHashMap;
...@@ -107,6 +109,7 @@ public class WarpView extends WebView implements DefaultLifecycleObserver { ...@@ -107,6 +109,7 @@ public class WarpView extends WebView implements DefaultLifecycleObserver {
107 private static final String URL_ACTION_RSMS = "rsms"; 109 private static final String URL_ACTION_RSMS = "rsms";
108 private static final String URL_ACTION_MAIL = "mailto"; 110 private static final String URL_ACTION_MAIL = "mailto";
109 private static final String URL_ACTION_MARKET = "market"; 111 private static final String URL_ACTION_MARKET = "market";
112 + private static final String URL_ACTION_INTENT = "intent";
110 private static final String URL_ACTION_MARKET_AUTHORITY = "play.google.com"; 113 private static final String URL_ACTION_MARKET_AUTHORITY = "play.google.com";
111 private static final String TAG_STEPS_WORKER = "ly.warp.sdk.services.WarplyHealthService"; 114 private static final String TAG_STEPS_WORKER = "ly.warp.sdk.services.WarplyHealthService";
112 115
...@@ -789,6 +792,21 @@ public class WarpView extends WebView implements DefaultLifecycleObserver { ...@@ -789,6 +792,21 @@ public class WarpView extends WebView implements DefaultLifecycleObserver {
789 Intent intent = new Intent(Intent.ACTION_VIEW, webpage); 792 Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
790 getContext().startActivity(intent); 793 getContext().startActivity(intent);
791 return true; 794 return true;
795 + } else if (scheme.equalsIgnoreCase(URL_ACTION_INTENT)) {
796 + try {
797 + Intent intent = Intent.parseUri(strUrl, Intent.URI_INTENT_SCHEME);
798 +// String fallbackUrl = intent.getStringExtra("browser_fallback_url");
799 + String data = intent.getData().toString();
800 + if (!TextUtils.isEmpty(data)) {
801 +// view.loadUrl(fallbackUrl);
802 + Uri webpage = Uri.parse(data);
803 + Intent intentWebpage = new Intent(Intent.ACTION_VIEW, webpage);
804 + getContext().startActivity(intentWebpage);
805 + return true;
806 + }
807 + } catch (URISyntaxException e) {
808 + return true;
809 + }
792 } 810 }
793 return false; 811 return false;
794 } 812 }
......
...@@ -40,11 +40,17 @@ ...@@ -40,11 +40,17 @@
40 </androidx.constraintlayout.widget.ConstraintLayout> 40 </androidx.constraintlayout.widget.ConstraintLayout>
41 41
42 <ScrollView 42 <ScrollView
43 - android:fillViewport="true"
44 android:layout_width="wrap_content" 43 android:layout_width="wrap_content"
45 android:layout_height="match_parent"> 44 android:layout_height="match_parent">
46 45
46 + <LinearLayout
47 + android:layout_width="match_parent"
48 + android:layout_height="wrap_content"
49 + android:background="@color/cos_light_grey3"
50 + android:orientation="vertical">
51 +
47 <RelativeLayout 52 <RelativeLayout
53 + android:id="@+id/rl_main_scroll"
48 android:layout_width="match_parent" 54 android:layout_width="match_parent"
49 android:layout_height="match_parent" 55 android:layout_height="match_parent"
50 android:background="@color/cos_light_grey3" 56 android:background="@color/cos_light_grey3"
...@@ -152,8 +158,8 @@ ...@@ -152,8 +158,8 @@
152 android:layout_below="@+id/tv_avg" 158 android:layout_below="@+id/tv_avg"
153 android:layout_alignParentEnd="true" 159 android:layout_alignParentEnd="true"
154 android:layout_marginTop="24dp" 160 android:layout_marginTop="24dp"
155 - android:paddingEnd="24dp"
156 android:layout_marginEnd="24dp" 161 android:layout_marginEnd="24dp"
162 + android:paddingEnd="24dp"
157 android:text="Touch Count" 163 android:text="Touch Count"
158 android:textColor="@color/blue_dark" 164 android:textColor="@color/blue_dark"
159 android:textSize="16sp" /> 165 android:textSize="16sp" />
...@@ -201,8 +207,8 @@ ...@@ -201,8 +207,8 @@
201 android:layout_height="wrap_content" 207 android:layout_height="wrap_content"
202 android:layout_below="@+id/tv_records" 208 android:layout_below="@+id/tv_records"
203 android:layout_alignParentStart="true" 209 android:layout_alignParentStart="true"
204 - android:layout_marginTop="24dp"
205 android:layout_marginStart="24dp" 210 android:layout_marginStart="24dp"
211 + android:layout_marginTop="24dp"
206 android:hint="Cut off in m/s^2" 212 android:hint="Cut off in m/s^2"
207 android:inputType="phone" 213 android:inputType="phone"
208 android:textColor="@color/blue_dark" 214 android:textColor="@color/blue_dark"
...@@ -215,12 +221,13 @@ ...@@ -215,12 +221,13 @@
215 android:layout_height="wrap_content" 221 android:layout_height="wrap_content"
216 android:layout_below="@+id/tv_records" 222 android:layout_below="@+id/tv_records"
217 android:layout_alignParentEnd="true" 223 android:layout_alignParentEnd="true"
218 - android:paddingEnd="24dp"
219 android:layout_marginTop="24dp" 224 android:layout_marginTop="24dp"
220 android:hint="Sample Interval in ms" 225 android:hint="Sample Interval in ms"
221 android:inputType="phone" 226 android:inputType="phone"
227 + android:paddingEnd="24dp"
222 android:textColor="@color/blue_dark" 228 android:textColor="@color/blue_dark"
223 android:textSize="16sp" /> 229 android:textSize="16sp" />
230 + </RelativeLayout>
224 231
225 <LinearLayout 232 <LinearLayout
226 android:id="@+id/ll_activate_button" 233 android:id="@+id/ll_activate_button"
...@@ -244,6 +251,6 @@ ...@@ -244,6 +251,6 @@
244 android:textColor="@color/blue_dark" 251 android:textColor="@color/blue_dark"
245 android:textSize="16sp" /> 252 android:textSize="16sp" />
246 </LinearLayout> 253 </LinearLayout>
247 - </RelativeLayout> 254 + </LinearLayout>
248 </ScrollView> 255 </ScrollView>
249 </LinearLayout> 256 </LinearLayout>
...\ No newline at end of file ...\ No newline at end of file
......