From f63551bc1f276a5394dc6bf39e46ec0c029159f2 Mon Sep 17 00:00:00 2001 From: Mihai-Cristian Condrea Date: Sun, 14 Sep 2025 00:17:05 +0300 Subject: [PATCH 1/2] Refactor up navigation handling --- .../navigation/UpNavigationActivity.java | 16 +--------------- .../basics/shortcuts/ShortcutsActivity.java | 7 +------ .../java/ui/screens/main/MainActivity.java | 1 - .../ui/screens/settings/SettingsActivity.java | 11 ++--------- .../screens/permissions/PermissionsActivity.java | 6 ------ 5 files changed, 4 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/components/navigation/UpNavigationActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/components/navigation/UpNavigationActivity.java index 9407ad79..e7be318b 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/components/navigation/UpNavigationActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/components/navigation/UpNavigationActivity.java @@ -1,22 +1,8 @@ package com.d4rk.androidtutorials.java.ui.components.navigation; -import android.os.Bundle; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.NavUtils; -public abstract class UpNavigationActivity extends AppCompatActivity { - @Override - protected void onPostCreate(@Nullable Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - } - } - +public abstract class UpNavigationActivity extends BaseActivity { @Override public boolean onSupportNavigateUp() { NavUtils.navigateUpFromSameTask(this); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java index 084c3e54..1e87bf07 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java @@ -4,13 +4,11 @@ import android.net.Uri; import android.os.Bundle; -import androidx.appcompat.app.ActionBar; import androidx.preference.PreferenceFragmentCompat; import com.d4rk.androidtutorials.java.R; import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; -import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; import com.d4rk.androidtutorials.java.ads.AdUtils; public class ShortcutsActivity extends UpNavigationActivity { @@ -20,12 +18,9 @@ protected void onCreate(Bundle savedInstanceState) { ActivityShortcutsBinding binding = ActivityShortcutsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - EdgeToEdgeDelegate.apply(this, binding.container); AdUtils.loadBanner(binding.adViewBottom); + AdUtils.loadBanner(binding.adViewBottom); getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_shortcuts, new SettingsFragment()).commit(); - ActionBar supportActionBar = getSupportActionBar(); - if (supportActionBar != null) - supportActionBar.setDisplayHomeAsUpEnabled(true); binding.buttonMore.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://developer.android.com/studio/intro/keyboard-shortcuts")))); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java index f7fb82a8..62b7aaa7 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java @@ -160,7 +160,6 @@ public void handleOnBackPressed() { private void setupActionBar() { ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); new AppBarConfiguration.Builder( R.id.navigation_home, R.id.navigation_android_studio, diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsActivity.java index 94a6344b..3002629d 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsActivity.java @@ -4,19 +4,17 @@ import android.os.Bundle; import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.ViewModelProvider; import androidx.preference.ListPreference; import com.d4rk.androidtutorials.java.R; import com.d4rk.androidtutorials.java.databinding.ActivitySettingsBinding; -import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; +import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import dagger.hilt.android.AndroidEntryPoint; @AndroidEntryPoint -public class SettingsActivity extends AppCompatActivity +public class SettingsActivity extends UpNavigationActivity implements SharedPreferences.OnSharedPreferenceChangeListener, androidx.preference.Preference.SummaryProvider { @@ -28,7 +26,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { ActivitySettingsBinding binding = ActivitySettingsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - EdgeToEdgeDelegate.apply(this, binding.container); settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); settingsViewModel.applyConsent(); @@ -37,10 +34,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { .replace(R.id.settings, new SettingsFragment()) .commit(); - ActionBar supportActionBar = getSupportActionBar(); - if (supportActionBar != null) { - supportActionBar.setDisplayHomeAsUpEnabled(true); - } settingsViewModel.registerPreferenceChangeListener(this); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/screens/permissions/PermissionsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/screens/permissions/PermissionsActivity.java index eaebe3ae..64ef2d7e 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/screens/permissions/PermissionsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/screens/permissions/PermissionsActivity.java @@ -7,7 +7,6 @@ import com.d4rk.androidtutorials.java.R; import com.d4rk.androidtutorials.java.databinding.ActivityPermissionsBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; -import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; public class PermissionsActivity extends UpNavigationActivity { @Override @@ -16,12 +15,7 @@ protected void onCreate(Bundle savedInstanceState) { ActivityPermissionsBinding binding = ActivityPermissionsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - EdgeToEdgeDelegate.apply(this, binding.container); - getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_permissions, new SettingsFragment()).commit(); - if (getSupportActionBar() != null) { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } } public static class SettingsFragment extends PreferenceFragmentCompat { From 74713c37b2bef3335b55b467cdac08a8a9eaf43a Mon Sep 17 00:00:00 2001 From: Mihai-Cristian Condrea Date: Sun, 14 Sep 2025 00:24:52 +0300 Subject: [PATCH 2/2] fix up navigation to respect back stack --- app/src/main/AndroidManifest.xml | 2 +- .../java/ui/components/navigation/UpNavigationActivity.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3ddffffa..8dd3e47f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -175,7 +175,7 @@ android:name=".ui.screens.settings.screens.permissions.PermissionsActivity" android:exported="false" android:label="@string/permissions" - android:parentActivityName=".ui.screens.main.MainActivity" /> + android:parentActivityName=".ui.screens.settings.SettingsActivity" />