Skip to content

Commit a7eb702

Browse files
Refactor edge-to-edge handling and UI adjustments
This commit introduces several changes: - Removes horizontal margins in `ad_about.xml`. - Simplifies edge-to-edge implementation in `MainActivity.java` by directly using `WindowCompat.enableEdgeToEdge` when `useRail` is true, removing the custom `EdgeToEdgeDelegate` call for this case. - Adds an assertion for `binding.progressBar` in `MainActivity.java` before setting its visibility. - Implements `onMenuOpened` in `MainActivity.java` to ensure icons are visible in the `MenuBuilder`. - Acknowledges FIXME comments in `EdgeToEdgeDelegate.java` related to deprecated methods for padding and margins.
1 parent edec758 commit a7eb702

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.d4rk.androidtutorials.java.ui.screens.main;
22

33
import android.Manifest;
4+
import android.annotation.SuppressLint;
45
import android.app.Activity;
56
import android.content.Intent;
67
import android.content.SharedPreferences;
78
import android.os.Build;
89
import android.os.Bundle;
910
import android.util.Log;
1011
import android.util.SparseIntArray;
12+
import android.view.Menu;
1113
import android.view.View;
1214
import android.widget.Toast;
1315

@@ -18,7 +20,9 @@
1820
import androidx.annotation.NonNull;
1921
import androidx.appcompat.app.ActionBar;
2022
import androidx.appcompat.app.AppCompatActivity;
23+
import androidx.appcompat.view.menu.MenuBuilder;
2124
import androidx.core.splashscreen.SplashScreen;
25+
import androidx.core.view.WindowCompat;
2226
import androidx.lifecycle.DefaultLifecycleObserver;
2327
import androidx.lifecycle.Lifecycle;
2428
import androidx.lifecycle.LifecycleOwner;
@@ -207,15 +211,14 @@ private void observeViewModel() {
207211
return;
208212
}
209213
NavigationBarView navBarView = (NavigationBarView) binding.navView;
214+
View navRail = binding.navRail;
210215
if (useRail) {
211-
View navRail = binding.navRail;
212216
if (navRail != null) {
213217
navRail.setVisibility(View.VISIBLE);
214218
}
215219
navBarView.setVisibility(View.GONE);
216-
EdgeToEdgeDelegate.apply(this, binding.container);
220+
WindowCompat.enableEdgeToEdge(this.getWindow());
217221
} else {
218-
View navRail = binding.navRail;
219222
if (navRail != null) {
220223
navRail.setVisibility(View.GONE);
221224
}
@@ -323,6 +326,7 @@ private void observeViewModel() {
323326
mainViewModel.getLoadingState().observe(this, isLoading -> {
324327
ActivityMainBinding binding = mBinding;
325328
if (binding != null) {
329+
assert binding.progressBar != null;
326330
binding.progressBar.setVisibility(Boolean.TRUE.equals(isLoading) ? View.VISIBLE : View.GONE);
327331
}
328332
});
@@ -364,6 +368,15 @@ public boolean onOptionsItemSelected(android.view.MenuItem item) {
364368
return super.onOptionsItemSelected(item);
365369
}
366370

371+
@SuppressLint("RestrictedApi")
372+
@Override
373+
public boolean onMenuOpened(int featureId, Menu menu) {
374+
if (menu instanceof MenuBuilder menuBuilder) {
375+
menuBuilder.setOptionalIconsVisible(true);
376+
}
377+
return super.onMenuOpened(featureId, menu);
378+
}
379+
367380
@Override
368381
protected void onResume() {
369382
super.onResume();

app/src/main/java/com/d4rk/androidtutorials/java/utils/EdgeToEdgeDelegate.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@
2323

2424
public final class EdgeToEdgeDelegate {
2525

26-
private EdgeToEdgeDelegate() {
27-
// Utility class
28-
}
29-
3026
public static void apply(Activity activity, View view) {
3127
enableEdgeToEdge(activity);
3228
applyInsetsInternal(
@@ -190,7 +186,7 @@ private static void applyInsetsAsPadding(View view, int insetTypes,
190186
v,
191187
padding.start + start,
192188
padding.top + top,
193-
padding.end + end,
189+
padding.end + end, // FIXME: 'setPaddingRelative([email protected] View, int, int, int, int)' is deprecated
194190
padding.bottom + bottom
195191
);
196192
return windowInsets;
@@ -215,9 +211,9 @@ private static void applyInsetsAsMargin(View view, int insetTypes) {
215211
marginLayoutParams.topMargin,
216212
MarginLayoutParamsCompat.getMarginEnd(marginLayoutParams),
217213
marginLayoutParams.bottomMargin
218-
);
214+
); // FIXME: 'getMarginStart([email protected] MarginLayoutParams)' is deprecated
219215
view.setTag(R.id.tag_edge_to_edge_margin, baseMargin);
220-
}
216+
} // FIXME: 'androidx.core.view.MarginLayoutParamsCompat' is deprecated
221217

222218
InsetsMargin margin = baseMargin;
223219
ViewCompat.setOnApplyWindowInsetsListener(view, (v, windowInsets) -> {

app/src/main/res/layout/ad_about.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
style="@style/Widget.Material3.CardView.Elevated"
1010
android:layout_width="match_parent"
1111
android:layout_height="wrap_content"
12-
android:layout_marginHorizontal="24dp"
1312
app:cardPreventCornerOverlap="true"
1413
app:cardUseCompatPadding="false"
1514
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.CardViewBottomRounded">

0 commit comments

Comments
 (0)