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.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat 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.lifecycle.lifecycleScope
import androidx.navigation.FloatingWindow import androidx.navigation.FloatingWindow
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
@@ -71,24 +73,18 @@ class MainActivity : AppCompatActivity() {
MigrationReceiver.runMigrationsIfRequired(this) MigrationReceiver.runMigrationsIfRequired(this)
enableEdgeToEdge() enableEdgeToEdge()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
B = ActivityMainBinding.inflate(layoutInflater) 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) 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 = val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController val navController = navHostFragment.navController

View File

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

View File

@@ -26,11 +26,15 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.View import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.RelativeLayout import android.widget.RelativeLayout
import android.widget.Toast import android.widget.Toast
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat 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.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@@ -183,6 +187,23 @@ class AppDetailsFragment : BaseFragment<FragmentDetailsBinding>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) 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) { if (args.app != null) {
app = args.app!! app = args.app!!
inflatePartialApp() inflatePartialApp()

View File

@@ -21,6 +21,8 @@ package com.aurora.store.view.ui.onboarding
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
@@ -82,6 +84,13 @@ class OnboardingFragment : BaseFragment<FragmentOnboardingBinding>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) 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) val isDefaultPrefLoaded = Preferences.getBoolean(requireContext(), PREFERENCE_DEFAULT)
if (!isDefaultPrefLoaded) { if (!isDefaultPrefLoaded) {
save(PREFERENCE_DEFAULT, true) save(PREFERENCE_DEFAULT, true)

View File

@@ -26,8 +26,12 @@ import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.TextView 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.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.aurora.extensions.hideKeyboard import com.aurora.extensions.hideKeyboard
@@ -67,6 +71,15 @@ class SearchResultsFragment : BaseFragment<FragmentSearchResultBinding>(),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) 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 = Preferences.getPrefs(view.context)
sharedPreferences.registerOnSharedPreferenceChangeListener(this) sharedPreferences.registerOnSharedPreferenceChangeListener(this)

View File

@@ -79,7 +79,9 @@
android:clipToPadding="false" android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
android:overScrollMode="never" 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" app:itemSpacing="@dimen/margin_small"
tools:listitem="@layout/view_link" /> tools:listitem="@layout/view_link" />
</LinearLayout> </LinearLayout>

View File

@@ -45,8 +45,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@+id/divider" android:layout_below="@+id/divider"
android:layout_marginTop="5dp" android:clipToPadding="true"
android:paddingTop="@dimen/padding_normal" android:paddingTop="@dimen/padding_normal"
android:paddingBottom="@dimen/height_bottom_adj"
tools:listitem="@layout/view_app_list" /> tools:listitem="@layout/view_app_list" />
</RelativeLayout> </RelativeLayout>
@@ -59,4 +60,4 @@
android:layout_marginBottom="@dimen/margin_normal" android:layout_marginBottom="@dimen/margin_normal"
android:text="@string/action_filter" android:text="@string/action_filter"
app:icon="@drawable/ic_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:paddingEnd="@dimen/padding_small"
android:showDividers="middle" android:showDividers="middle"
app:behavior_hideable="false" app:behavior_hideable="false"
app:behavior_peekHeight="@dimen/height_peek"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<ViewFlipper <ViewFlipper
@@ -135,34 +134,4 @@
app:srcCompat="@drawable/ic_cancel" /> app:srcCompat="@drawable/ic_cancel" />
</RelativeLayout> </RelativeLayout>
</ViewFlipper> </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> </LinearLayout>

View File

@@ -50,7 +50,7 @@
<dimen name="screenshot_height_mini">120dp</dimen> <dimen name="screenshot_height_mini">120dp</dimen>
<dimen name="screenshot_width_mini">68dp</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="cluster_size">128dp</dimen>
<dimen name="elevation_small">3dp</dimen> <dimen name="elevation_small">3dp</dimen>