Merge branch 'edge-to-edge' into 'master'
feat(ui): go edge-to-edge in `MainActivity` and `AppDetailsActivity` See merge request fdroid/fdroidclient!1367
This commit is contained in:
commit
8573d68da9
|
@ -38,6 +38,7 @@ import android.view.MenuInflater;
|
|||
import android.view.MenuItem;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
@ -115,6 +116,7 @@ public class AppDetailsActivity extends AppCompatActivity
|
|||
fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.setSecureWindow(this);
|
||||
|
||||
EdgeToEdge.enable(this);
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
|
|
@ -32,14 +32,19 @@ import android.os.Build;
|
|||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
|
@ -105,6 +110,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
fdroidApp.setSecureWindow(this);
|
||||
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
EdgeToEdge.enable(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
|
@ -117,6 +123,16 @@ public class MainActivity extends AppCompatActivity {
|
|||
pager.setLayoutManager(new NonScrollingHorizontalLayoutManager(this));
|
||||
pager.setAdapter(adapter);
|
||||
|
||||
// Handle overlaps using insets
|
||||
// https://developer.android.com/develop/ui/views/layout/edge-to-edge#handle-overlaps
|
||||
ViewCompat.setOnApplyWindowInsetsListener(pager, (v, windowInsets) -> {
|
||||
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars());
|
||||
ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
|
||||
mlp.topMargin = insets.top;
|
||||
v.setLayoutParams(mlp);
|
||||
return WindowInsetsCompat.CONSUMED;
|
||||
});
|
||||
|
||||
bottomNavigation = findViewById(R.id.bottom_navigation);
|
||||
setSelectedMenuInNav(Preferences.get().getBottomNavigationViewName());
|
||||
bottomNavigation.setOnNavigationItemSelectedListener(item -> {
|
||||
|
|
|
@ -51,9 +51,14 @@
|
|||
android:id="@+id/rvDetails"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="60dp"
|
||||
app:layoutManager="LinearLayoutManager"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:context="org.fdroid.fdroid.views.AppDetailsActivity"
|
||||
tools:showIn="@layout/app_details2" />
|
||||
<!-- Padding for navigation bar -->
|
||||
<!-- Workaround for https://github.com/material-components/material-components-android/issues/1310 -->
|
||||
<!-- See also: https://gitlab.com/fdroid/fdroidclient/-/merge_requests/1367 -->
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
Loading…
Reference in New Issue