Fix drawer being drawn behind status bar

Before this commit the Gadgetbridge logo in the open navigation drawer
was partly cut of due to missing window insets on the drawer content.
This commit is contained in:
Steffen Winter
2026-05-19 15:53:33 +02:00
committed by Arjan Schrijver
parent a6a1188a11
commit df6a1c73e4
2 changed files with 20 additions and 12 deletions
@@ -39,8 +39,11 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.GravityCompat;
import androidx.core.view.MenuProvider;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
@@ -171,11 +174,17 @@ public class ControlCenterv2 extends AppCompatActivity
}
}
// Initialize drawer
NavigationView drawerNavigationView = findViewById(R.id.nav_view);
drawerNavigationView.setNavigationItemSelectedListener(this);
View navigationHeaderView = drawerNavigationView.getHeaderView(0);
ViewCompat.setOnApplyWindowInsetsListener(navigationHeaderView, (view, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout());
view.setPadding(view.getPaddingLeft(), insets.top, view.getPaddingRight(), view.getPaddingBottom());
return windowInsets;
});
// Initialize bottom navigation
BottomNavigationView navigationView = findViewById(R.id.bottom_nav_bar);
if (activityTrackerAvailable && prefs.getBoolean("display_bottom_navigation_bar", true)) {
@@ -318,10 +327,10 @@ public class ControlCenterv2 extends AppCompatActivity
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
if (clDialog != null){
outState.putBoolean("cl", clDialog.isShowing());
}
super.onSaveInstanceState(outState);
if (clDialog != null) {
outState.putBoolean("cl", clDialog.isShowing());
}
super.onSaveInstanceState(outState);
}
@Override
@@ -402,9 +411,9 @@ public class ControlCenterv2 extends AppCompatActivity
}
private void handleShortcut(Intent intent) {
if(ACTION_CONNECT.equals(intent.getAction())) {
if (ACTION_CONNECT.equals(intent.getAction())) {
String btDeviceAddress = intent.getStringExtra("device");
if(btDeviceAddress!=null){
if (btDeviceAddress != null) {
GBDevice candidate = DeviceHelper.getInstance().findAvailableDevice(btDeviceAddress);
if (candidate != null && !candidate.isConnected()) {
GBApplication.deviceService(candidate).connect();
@@ -6,11 +6,10 @@
android:background="?attr/drawer_header_color"
android:gravity="bottom"
android:orientation="vertical"
android:layout_marginTop="16dp"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
android:paddingBottom="@dimen/activity_vertical_margin">
<ImageView
android:id="@+id/imageView"
@@ -24,8 +23,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="@string/app_name"
android:textAppearance="@style/TextAppearance.Material3.ActionBar.Title"
android:textColor="?attr/drawer_title_color"
android:text="@string/app_name" />
android:textColor="?attr/drawer_title_color" />
</LinearLayout>