Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Preserve custom edge-to-edge insets for bottom-nav activities

By switching UpNavigationActivity to extend BaseActivity, every subclass now runs BaseActivity.onPostCreate, which always calls EdgeToEdgeDelegate.apply(this, container) and installs a new window-insets listener. Activities like BottomNavigationActivity currently set up their own listener via EdgeToEdgeDelegate.applyBottomBar(...) in onCreate to pad the BottomNavigationView. The base class call happens afterward and overwrites that listener, so the bottom bar loses its padding and will overlap the system gesture/navigation bar on edge-to-edge devices. Consider letting subclasses opt out or have BaseActivity detect when insets are already handled before replacing the listener.

Useful? React with 👍 / 👎.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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"))));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<ListPreference> {

Expand All @@ -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();
Expand All @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {
Expand Down