mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 06:17:27 +00:00
TRACKING APP: work on TrackingActivity
This commit is contained in:
1 parent
39756460e4
commit
b493f2f642
4 files changed
+95
-9
No files matched your search
@@ -97,15 +97,10 @@
|
||||
android:paddingLeft="20dp"
|
||||
android:text="@string/tracking_time" />
|
||||
|
||||
<View
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@android:color/darker_gray" />
|
||||
|
||||
<com.sap.sailing.android.tracking.app.views.AutoResizeTextView
|
||||
android:id="@+id/tracking_time_label"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="150dp"
|
||||
android:layout_height="110dp"
|
||||
android:gravity="center"
|
||||
android:text="00:00:00"
|
||||
android:paddingLeft="20dp"
|
||||
|
||||
@@ -23,4 +23,5 @@
|
||||
<string name="preference_gps_fix_fastest_interval_ms_key">gpsFixFastestInterval</string>
|
||||
<string name="preference_gps_fastest_fix_interval_ms_default">100</string>
|
||||
<string name="preference_battery_is_charging">batteryIsCharging</string>
|
||||
<string name="preference_tracking_timer_started">trackingTimerStarted</string>
|
||||
</resources>
|
||||
+83
-3
@@ -4,6 +4,7 @@ import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
@@ -12,9 +13,14 @@ import android.widget.Button;
|
||||
|
||||
import com.sap.sailing.android.tracking.app.R;
|
||||
import com.sap.sailing.android.tracking.app.services.TrackingService;
|
||||
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
|
||||
import com.sap.sailing.android.tracking.app.views.AutoResizeTextView;
|
||||
|
||||
public class TrackingFragment extends BaseFragment implements OnClickListener{
|
||||
public class TrackingFragment extends BaseFragment implements OnClickListener {
|
||||
|
||||
private TimerRunnable timer;
|
||||
private AppPreferences prefs;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
@@ -22,12 +28,22 @@ public class TrackingFragment extends BaseFragment implements OnClickListener{
|
||||
|
||||
View view = inflater.inflate(R.layout.fragment_tracking, container, false);
|
||||
|
||||
Button startTracking = (Button) view.findViewById(R.id.stop_tracking);
|
||||
startTracking.setOnClickListener(this);
|
||||
Button stopTracking = (Button) view.findViewById(R.id.stop_tracking);
|
||||
stopTracking.setOnClickListener(this);
|
||||
|
||||
prefs = new AppPreferences(getActivity());
|
||||
prefs.setTrackingTimerStarted(System.currentTimeMillis());
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
timer = new TimerRunnable();
|
||||
timer.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
@@ -39,6 +55,28 @@ public class TrackingFragment extends BaseFragment implements OnClickListener{
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
timer.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
timer.stop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update UI with a string containing the time since tracking started, e.g. 01:22:45
|
||||
*/
|
||||
public void updateTimer()
|
||||
{
|
||||
long diff = System.currentTimeMillis() - prefs.getTrackingTimerStarted();
|
||||
AutoResizeTextView textView = (AutoResizeTextView) getActivity().findViewById(R.id.tracking_time_label);
|
||||
textView.setText(getTimeFormatString(diff));
|
||||
}
|
||||
|
||||
public void userTappedBackButton()
|
||||
{
|
||||
showStopTrackingConfirmationDialog();
|
||||
@@ -68,4 +106,46 @@ public class TrackingFragment extends BaseFragment implements OnClickListener{
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
private String getTimeFormatString(long milliseconds) {
|
||||
int seconds = (int) (milliseconds / 1000) % 60 ;
|
||||
int minutes = (int) ((milliseconds / (1000*60)) % 60);
|
||||
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
|
||||
|
||||
return String.format(getResources().getConfiguration().locale, "%02d:%02d:%02d", hours, minutes, seconds);
|
||||
}
|
||||
|
||||
private class TimerRunnable implements Runnable {
|
||||
|
||||
public Thread t;
|
||||
public volatile boolean running = true;
|
||||
|
||||
public void start() {
|
||||
running = true;
|
||||
if (t == null) {
|
||||
t = new Thread(this);
|
||||
t.start();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void run() {
|
||||
while (running) {
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateTimer();
|
||||
}
|
||||
});
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void stop()
|
||||
{
|
||||
running = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -93,4 +93,14 @@ public class AppPreferences {
|
||||
public boolean getEnergySavingEnabledByUser() {
|
||||
return preferences.getBoolean(context.getString(R.string.preference_energy_saving_enabled_key), false);
|
||||
}
|
||||
|
||||
public void setTrackingTimerStarted(long milliseconds)
|
||||
{
|
||||
preferences.edit().putLong(context.getString(R.string.preference_tracking_timer_started), milliseconds).commit();
|
||||
}
|
||||
|
||||
public long getTrackingTimerStarted()
|
||||
{
|
||||
return preferences.getLong(context.getString(R.string.preference_tracking_timer_started), 0);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user