From e133743547abb076dbb81c98a227a90993cdf556 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 16 Dec 2020 22:36:49 +0100 Subject: [PATCH] Actionbar: icon provides back functionality (except in TrackListActivity). --- .../opentracks/AbstractActivity.java | 17 +++++++++++++- .../opentracks/TrackListActivity.java | 7 ++++++ .../opentracks/settings/SettingsActivity.java | 22 ++++++++++++------- src/main/res/layout/toolbar.xml | 6 ++--- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/AbstractActivity.java b/src/main/java/de/dennisguse/opentracks/AbstractActivity.java index afec802f2..33ec9310f 100644 --- a/src/main/java/de/dennisguse/opentracks/AbstractActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AbstractActivity.java @@ -19,6 +19,7 @@ package de.dennisguse.opentracks; import android.os.Bundle; import android.view.View; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; @@ -39,8 +40,22 @@ public abstract class AbstractActivity extends AppCompatActivity { setContentView(getRootView()); Toolbar toolbar = findViewById(R.id.toolbar); - setSupportActionBar(toolbar); + setupActionBarBack(toolbar); + } + + @Override + public boolean onSupportNavigateUp() { + onBackPressed(); + return true; } protected abstract View getRootView(); + + protected void setupActionBarBack(@Nullable Toolbar toolbar) { + setSupportActionBar(toolbar); + if (toolbar != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + } + } } diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java index 5d5e4c9a5..655324412 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java @@ -37,6 +37,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.widget.SearchView; +import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; import androidx.cursoradapter.widget.ResourceCursorAdapter; import androidx.loader.app.LoaderManager; @@ -243,6 +244,12 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe requestGPSPermissions(); } + @Override + protected void setupActionBarBack(Toolbar toolbar) { + setSupportActionBar(toolbar); + toolbar.setNavigationIcon(R.drawable.ic_logo_color_24dp); + } + @Override protected void onStart() { super.onStart(); diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java index 8fa5de2e6..377afe8d1 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java @@ -4,10 +4,10 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; +import android.view.View; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.documentfile.provider.DocumentFile; import androidx.fragment.app.DialogFragment; @@ -18,6 +18,7 @@ import androidx.preference.PreferenceFragmentCompat; import java.util.Locale; +import de.dennisguse.opentracks.AbstractActivity; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; import de.dennisguse.opentracks.io.file.TrackFileFormat; @@ -31,7 +32,7 @@ import de.dennisguse.opentracks.util.HackUtils; import de.dennisguse.opentracks.util.PreferencesUtils; import de.dennisguse.opentracks.util.StringUtils; -public class SettingsActivity extends AppCompatActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller, ResetDialogPreference.ResetCallback { +public class SettingsActivity extends AbstractActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller, ResetDialogPreference.ResetCallback { private static final String TAG = SettingsActivity.class.getSimpleName(); public static final String EXTRAS_CHECK_EXPORT_DIRECTORY = "Check Export Directory"; @@ -43,12 +44,6 @@ public class SettingsActivity extends AppCompatActivity implements ChooseActivit protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.settings); - - Toolbar toolbar = findViewById(R.id.toolbar); - toolbar.setTitle(R.string.menu_settings); - setSupportActionBar(toolbar); - Intent intent = getIntent(); if (intent != null && intent.hasExtra(EXTRAS_CHECK_EXPORT_DIRECTORY)) { checkExportDirectory = true; @@ -56,6 +51,17 @@ public class SettingsActivity extends AppCompatActivity implements ChooseActivit onReset(); } + @Override + protected View getRootView() { + return getLayoutInflater().inflate(R.layout.settings, null); + } + + @Override + protected void setupActionBarBack(Toolbar toolbar) { + super.setupActionBarBack(toolbar); + toolbar.setTitle(R.string.menu_settings); + } + @Override protected void onResume() { if (checkExportDirectory) { diff --git a/src/main/res/layout/toolbar.xml b/src/main/res/layout/toolbar.xml index 190cba4b2..0b3f46361 100644 --- a/src/main/res/layout/toolbar.xml +++ b/src/main/res/layout/toolbar.xml @@ -1,12 +1,10 @@ - + + android:minHeight="?attr/actionBarSize" />