Skip to content

Commit

Permalink
Multiple fixes to edge-to-edge display (API 35)
Browse files Browse the repository at this point in the history
  • Loading branch information
iSoron committed May 21, 2024
1 parent e7165d9 commit fc9cc42
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,14 @@ import android.widget.FrameLayout
import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitPresenter
import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitState
import org.isoron.uhabits.databinding.ShowHabitBinding
import org.isoron.uhabits.utils.applyToolbarInsets
import org.isoron.uhabits.utils.setupToolbar

class ShowHabitView(context: Context) : FrameLayout(context) {
private val binding = ShowHabitBinding.inflate(LayoutInflater.from(context))

init {
binding.toolbar.applyToolbarInsets()
addView(binding.root)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,15 +251,21 @@ fun View.getCenter(): PointF {
fun View.applyRootViewInsets() {
ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets ->
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
view.setPadding(systemBarsInsets.left, 0, systemBarsInsets.right, systemBarsInsets.bottom)
val displayCutoutInsets = insets.getInsets(WindowInsetsCompat.Type.displayCutout())
val left = maxOf(systemBarsInsets.left, displayCutoutInsets.left)
val right = maxOf(systemBarsInsets.right, displayCutoutInsets.right)
view.setPadding(left, 0, right, 0)
view.background = ColorDrawable(Color.BLACK)
insets
}
}

fun View.applyToolbarInsets() {
ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets ->
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
view.setPadding(0, systemBarsInsets.top, 0, 0)
val displayCutoutInsets = insets.getInsets(WindowInsetsCompat.Type.displayCutout())
val top = maxOf(systemBarsInsets.top, displayCutoutInsets.top)
view.setPadding(0, top, 0, 0)
insets
}
}
11 changes: 7 additions & 4 deletions uhabits-android/src/main/res/layout/activity_edit_habit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
Expand Down Expand Up @@ -61,8 +62,10 @@

<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:layout_height="0dp"
android:layout_weight="1"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="?attr/contrast0">

<LinearLayout
android:layout_width="match_parent"
Expand Down Expand Up @@ -265,4 +268,4 @@
</LinearLayout>
</ScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
5 changes: 4 additions & 1 deletion uhabits-android/src/main/res/layout/automation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,10 @@

<LinearLayout
android:id="@+id/formPanel"
style="@style/dialogFormPanel">
style="@style/dialogFormPanel"
android:layout_height="0dp"
android:layout_weight="1"
android:background="?attr/contrast0">

<FrameLayout style="@style/FormOuterBox">
<LinearLayout style="@style/FormInnerBox">
Expand Down

0 comments on commit fc9cc42

Please sign in to comment.