Commit e17573c1 authored by Bartek Fabiszewski's avatar Bartek Fabiszewski
Browse files

Add option to clear current track

parent f341b2b1
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -484,8 +484,7 @@ class DbAccess implements AutoCloseable {
     * @param name New track name
     */
    private void newTrack(String name) {
        truncateTrack();
        truncatePositions();
        clear();
        ContentValues values = new ContentValues();
        values.put(DbContract.Track.COLUMN_NAME, name);
        db.insert(DbContract.Track.TABLE_NAME, null, values);
@@ -505,6 +504,27 @@ class DbAccess implements AutoCloseable {
        }
    }

    /**
     * Truncate all tables
     */
    private void clear() {
        truncateTrack();
        truncatePositions();
    }

    /**
     * Clear track.
     * Deletes all track data and positions.
     *
     * @param context Context
     */
    static void clearTrack(Context context) {
        try (DbAccess dbAccess = getOpenInstance(context)) {
            ImageHelper.clearTrackImages(context);
            dbAccess.clear();
        }
    }


    /**
     * Set up new track with default name if there is no active track.
+26 −1
Original line number Diff line number Diff line
@@ -28,10 +28,12 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.text.HtmlCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.preference.PreferenceManager;

import static net.fabiszewski.ulogger.Alert.showAlert;
import static net.fabiszewski.ulogger.Alert.showConfirm;
import static net.fabiszewski.ulogger.GpxExportService.GPX_EXTENSION;
import static net.fabiszewski.ulogger.GpxExportService.GPX_MIME;

@@ -139,13 +141,15 @@ public class MainActivity extends AppCompatActivity
            case R.id.menu_export:
                startExport();
                return true;
            case R.id.menu_clear:
                clearTrack();
                return true;
            case android.R.id.home:
                onBackPressed();
                return true;

            default:
                return super.onOptionsItemSelected(item);

        }
    }

@@ -217,6 +221,27 @@ public class MainActivity extends AppCompatActivity
    }


    private void clearTrack() {
        if (LoggerService.isRunning()) {
            showToast(getString(R.string.logger_running_warning));
            return;
        }
        if (DbAccess.getTrackName(MainActivity.this) != null) {
            showConfirm(MainActivity.this,
                    getString(R.string.warning),
                    getString(R.string.clear_warning),
                    (dialog, which) -> {
                        dialog.dismiss();
                        DbAccess.clearTrack(MainActivity.this);
                        LoggerService.resetLastLocation();
                        Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.fragment_placeholder);
                        if (currentFragment instanceof MainFragment) {
                            currentFragment.onResume();
                        }
                    }
            );
        }
    }

    /**
     * Display toast message
+4 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
@@ -149,9 +150,7 @@ public class MainFragment extends Fragment {
        Context context = getContext();
        if (context != null) {
            String trackName = DbAccess.getTrackName(context);
            if (trackName != null) {
            updateTrackLabel(trackName);
            }

            if (LoggerService.isRunning()) {
                switchLogger.setChecked(true);
@@ -384,10 +383,11 @@ public class MainFragment extends Fragment {
     * Update track name label
     * @param trackName Track name
     */
    private void updateTrackLabel(String trackName) {
    private void updateTrackLabel(@Nullable String trackName) {
        View view = getView();
        if (view != null) {
            final TextView trackLabel = view.findViewById(R.id.newtrack_label);
            trackName = trackName == null ? "-" : trackName;
            trackLabel.setText(trackName);
        }
    }
+14 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (c) 2020 Bartek Fabiszewski
  ~ http://www.fabiszewski.net
  ~
  ~ This file is part of μlogger-android.
  ~ Licensed under GPL, either version 3, or any later.
  ~ See <http://www.gnu.org/licenses/>
  -->

<vector android:height="24dp" android:tint="#FFFFFF"
    android:viewportHeight="24" android:viewportWidth="24"
    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="@android:color/white" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"/>
</vector>
+6 −0
Original line number Diff line number Diff line
@@ -22,6 +22,12 @@
        android:tint="@android:color/background_light"
        android:title="@string/export"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/menu_clear"
        android:icon="@drawable/ic_delete_forever_white_24dp"
        android:tint="@android:color/background_light"
        android:title="@string/clear"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/menu_about"
        android:icon="@drawable/ic_info_white_24dp"
Loading