Skip to content

Commit

Permalink
refactor: enable edge-to-edge display for activities with builtin method
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiredPlanck committed Feb 12, 2024
1 parent b17b551 commit 7a38f5f
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 37 deletions.
18 changes: 10 additions & 8 deletions app/src/main/java/com/osfans/trime/ui/main/LogActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ package com.osfans.trime.ui.main
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.lifecycleScope
Expand All @@ -17,7 +19,6 @@ import com.osfans.trime.databinding.ActivityLogBinding
import com.osfans.trime.ui.components.log.LogView
import com.osfans.trime.util.DeviceInfo
import com.osfans.trime.util.Logcat
import com.osfans.trime.util.applyTranslucentSystemBars
import com.osfans.trime.util.iso8601UTCDateTime
import com.osfans.trime.util.toast
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -57,21 +58,22 @@ class LogActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
applyTranslucentSystemBars()
enableEdgeToEdge()
val binding = ActivityLogBinding.inflate(layoutInflater)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, windowInsets ->
val statusBars = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars())
val navBars = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
binding.root.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = navBars.left
rightMargin = navBars.right
bottomMargin = navBars.bottom
leftMargin = systemBars.left
rightMargin = systemBars.right
bottomMargin = systemBars.bottom
}
binding.logToolbar.toolbar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = statusBars.top
topMargin = systemBars.top
}
windowInsets
}
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false

setContentView(binding.root)
with(binding) {
Expand Down
16 changes: 9 additions & 7 deletions app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.ViewGroup
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.forEach
import androidx.core.view.updateLayoutParams
Expand All @@ -26,7 +28,6 @@ import com.osfans.trime.databinding.ActivityPrefBinding
import com.osfans.trime.ime.core.RimeWrapper
import com.osfans.trime.ime.core.Status
import com.osfans.trime.ui.setup.SetupActivity
import com.osfans.trime.util.applyTranslucentSystemBars
import com.osfans.trime.util.isStorageAvailable
import com.osfans.trime.util.progressBarDialogIndeterminate
import com.osfans.trime.util.rimeActionWithResultDialog
Expand Down Expand Up @@ -63,18 +64,19 @@ class PrefMainActivity : AppCompatActivity() {
AppCompatDelegate.setDefaultNightMode(uiMode)

super.onCreate(savedInstanceState)
applyTranslucentSystemBars()
enableEdgeToEdge()
val binding = ActivityPrefBinding.inflate(layoutInflater)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, windowInsets ->
val statusBars = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars())
val navBars = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
binding.root.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = navBars.left
rightMargin = navBars.right
leftMargin = systemBars.left
rightMargin = systemBars.right
}
binding.prefToolbar.root.topPadding = statusBars.top
binding.prefToolbar.root.topPadding = systemBars.top
windowInsets
}
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false

setContentView(binding.root)
setSupportActionBar(binding.prefToolbar.toolbar)
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/osfans/trime/ui/setup/SetupActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.app.PendingIntent
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.core.app.NotificationCompat
Expand All @@ -19,7 +20,6 @@ import com.osfans.trime.R
import com.osfans.trime.databinding.ActivitySetupBinding
import com.osfans.trime.ui.setup.SetupPage.Companion.firstUndonePage
import com.osfans.trime.ui.setup.SetupPage.Companion.isLastPage
import com.osfans.trime.util.applyTranslucentSystemBars

class SetupActivity : FragmentActivity() {
private lateinit var viewPager: ViewPager2
Expand All @@ -34,7 +34,7 @@ class SetupActivity : FragmentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
applyTranslucentSystemBars()
enableEdgeToEdge()
val binding = ActivitySetupBinding.inflate(layoutInflater)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, windowInsets ->
val sysBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
Expand Down
20 changes: 0 additions & 20 deletions app/src/main/java/com/osfans/trime/util/Activity.kt

This file was deleted.

0 comments on commit 7a38f5f

Please sign in to comment.