Support edge to edge properly everywhere

This reverts commit 74373d478b.
This commit is contained in:
Aayush Gupta
2024-10-14 20:01:40 +05:30
parent 2cdbd71faf
commit 3551174277
9 changed files with 62 additions and 49 deletions

View File

@@ -28,7 +28,9 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
import androidx.core.view.WindowInsetsCompat.Type.displayCutout
import androidx.core.view.WindowInsetsCompat.Type.ime
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.lifecycle.lifecycleScope
import androidx.navigation.FloatingWindow
import androidx.navigation.fragment.NavHostFragment
@@ -71,24 +73,18 @@ class MainActivity : AppCompatActivity() {
MigrationReceiver.runMigrationsIfRequired(this)
enableEdgeToEdge()
super.onCreate(savedInstanceState)
B = ActivityMainBinding.inflate(layoutInflater)
ViewCompat.setOnApplyWindowInsetsListener(B.root) { view, windowInsets ->
val statusBarInset = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
val navigationBarInset =
windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
view.updatePadding(0, statusBarInset.top, 0, navigationBarInset.bottom)
WindowInsetsCompat.CONSUMED
}
setContentView(B.root)
// Adjust root view's paddings for edgeToEdge display
ViewCompat.setOnApplyWindowInsetsListener(B.root) { root, windowInsets ->
val insets = windowInsets.getInsets(systemBars() or displayCutout() or ime())
root.setPadding(0, insets.top, 0, 0)
windowInsets
}
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

View File

@@ -3,6 +3,7 @@ package com.aurora.store.data.activity
import android.content.pm.PackageInstaller.SessionCallback
import android.os.Bundle
import android.util.Log
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.IntentCompat
import com.aurora.Constants
@@ -22,6 +23,7 @@ class InstallActivity : AppCompatActivity() {
private lateinit var sessionCallback: SessionCallback
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
val download =

View File

@@ -26,11 +26,15 @@ import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
@@ -183,6 +187,23 @@ class AppDetailsFragment : BaseFragment<FragmentDetailsBinding>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Adjust margins for edgeToEdge display
ViewCompat.setOnApplyWindowInsetsListener(binding.layoutDetailsDev.root) { v, w ->
val insets = w.getInsets(WindowInsetsCompat.Type.navigationBars())
v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin += insets.bottom
}
WindowInsetsCompat.CONSUMED
}
ViewCompat.setOnApplyWindowInsetsListener(binding.layoutDetailsInstall.viewFlipper) { v, w ->
val insets = w.getInsets(WindowInsetsCompat.Type.navigationBars())
v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin += insets.bottom
}
WindowInsetsCompat.CONSUMED
}
if (args.app != null) {
app = args.app!!
inflatePartialApp()

View File

@@ -21,6 +21,8 @@ package com.aurora.store.view.ui.onboarding
import android.os.Bundle
import android.view.View
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
@@ -82,6 +84,13 @@ class OnboardingFragment : BaseFragment<FragmentOnboardingBinding>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Adjust layout margins for edgeToEdge display
ViewCompat.setOnApplyWindowInsetsListener(binding.layoutBottom) { layout, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
layout.setPadding(0, 0, 0, insets.bottom)
WindowInsetsCompat.CONSUMED
}
val isDefaultPrefLoaded = Preferences.getBoolean(requireContext(), PREFERENCE_DEFAULT)
if (!isDefaultPrefLoaded) {
save(PREFERENCE_DEFAULT, true)

View File

@@ -26,8 +26,12 @@ import android.text.Editable
import android.text.TextWatcher
import android.view.KeyEvent
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.widget.TextView
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.aurora.extensions.hideKeyboard
@@ -67,6 +71,15 @@ class SearchResultsFragment : BaseFragment<FragmentSearchResultBinding>(),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Adjust FAB margins for edgeToEdge display
ViewCompat.setOnApplyWindowInsetsListener(binding.filterFab) { _, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
binding.filterFab.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin += insets.bottom
}
WindowInsetsCompat.CONSUMED
}
sharedPreferences = Preferences.getPrefs(view.context)
sharedPreferences.registerOnSharedPreferenceChangeListener(this)

View File

@@ -79,7 +79,9 @@
android:clipToPadding="false"
android:orientation="vertical"
android:overScrollMode="never"
android:padding="@dimen/padding_small"
android:paddingHorizontal="@dimen/padding_small"
android:paddingTop="@dimen/padding_small"
android:paddingBottom="@dimen/height_bottom_adj"
app:itemSpacing="@dimen/margin_small"
tools:listitem="@layout/view_link" />
</LinearLayout>

View File

@@ -45,8 +45,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/divider"
android:layout_marginTop="5dp"
android:clipToPadding="true"
android:paddingTop="@dimen/padding_normal"
android:paddingBottom="@dimen/height_bottom_adj"
tools:listitem="@layout/view_app_list" />
</RelativeLayout>
@@ -59,4 +60,4 @@
android:layout_marginBottom="@dimen/margin_normal"
android:text="@string/action_filter"
app:icon="@drawable/ic_filter" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -30,7 +30,6 @@
android:paddingEnd="@dimen/padding_small"
android:showDividers="middle"
app:behavior_hideable="false"
app:behavior_peekHeight="@dimen/height_peek"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<ViewFlipper
@@ -135,34 +134,4 @@
app:srcCompat="@drawable/ic_cancel" />
</RelativeLayout>
</ViewFlipper>
<LinearLayout
android:id="@+id/bottomsheet_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:divider="@drawable/divider"
android:focusable="false"
android:orientation="vertical"
android:paddingBottom="@dimen/padding_normal"
android:showDividers="middle">
<androidx.appcompat.widget.AppCompatTextView
style="@style/TextAppearance.Aurora.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alpha=".75"
android:text="@string/purchase_failed"
android:textAlignment="center"
android:textColor="?colorOnPrimary" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_purchase_error"
style="@style/TextAppearance.Aurora.Line1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textColor="?colorOnPrimary"
tools:text="@string/purchase_invalid" />
</LinearLayout>
</LinearLayout>

View File

@@ -50,7 +50,7 @@
<dimen name="screenshot_height_mini">120dp</dimen>
<dimen name="screenshot_width_mini">68dp</dimen>
<dimen name="height_bottom_adj">100dp</dimen>
<dimen name="height_bottom_adj">125dp</dimen>
<dimen name="cluster_size">128dp</dimen>
<dimen name="elevation_small">3dp</dimen>