Commit a7525323 authored by Mygod's avatar Mygod

Fix landscape immersive theme

parent b39f1f6a
......@@ -34,8 +34,11 @@ import android.os.Build
import android.system.Os
import android.system.OsConstants
import android.util.TypedValue
import android.view.WindowInsets
import android.view.View
import android.view.ViewGroup
import androidx.annotation.AttrRes
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updateLayoutParams
import androidx.preference.Preference
import com.crashlytics.android.Crashlytics
import kotlinx.coroutines.Dispatchers
......@@ -115,9 +118,17 @@ fun Resources.Theme.resolveResourceId(@AttrRes resId: Int): Int {
val Intent.datas get() = listOfNotNull(data) + (clipData?.asIterable()?.mapNotNull { it.uri } ?: emptyList())
@Suppress("DEPRECATION")
fun WindowInsets.consumeSystemWindowInsetTop() = replaceSystemWindowInsets(
systemWindowInsetLeft, 0, systemWindowInsetRight, systemWindowInsetBottom)
fun AppCompatActivity.consumeSystemWindowInsetsWithList() {
findViewById<View>(android.R.id.content).setOnApplyWindowInsetsListener { v, insets ->
v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = insets.systemWindowInsetLeft
topMargin = insets.systemWindowInsetTop
rightMargin = insets.systemWindowInsetRight
}
@Suppress("DEPRECATION")
insets.replaceSystemWindowInsets(0, 0, 0, insets.systemWindowInsetBottom)
}
}
fun printLog(t: Throwable) {
Crashlytics.logException(t)
......
......@@ -42,7 +42,6 @@ import androidx.annotation.UiThread
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.getSystemService
import androidx.core.util.set
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
......@@ -53,7 +52,7 @@ import com.github.shadowsocks.preference.DataStore
import com.github.shadowsocks.utils.DirectBoot
import com.github.shadowsocks.utils.Key
import com.github.shadowsocks.utils.SingleInstanceActivity
import com.github.shadowsocks.utils.consumeSystemWindowInsetTop
import com.github.shadowsocks.utils.consumeSystemWindowInsetsWithList
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.layout_apps.*
import kotlinx.android.synthetic.main.layout_apps_item.view.*
......@@ -215,10 +214,7 @@ class AppManager : AppCompatActivity() {
super.onCreate(savedInstanceState)
SingleInstanceActivity.register(this) ?: return
setContentView(R.layout.layout_apps)
findViewById<View>(android.R.id.content).setOnApplyWindowInsetsListener { v, insets ->
v.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin = insets.systemWindowInsetTop }
insets.consumeSystemWindowInsetTop()
}
consumeSystemWindowInsetsWithList()
setSupportActionBar(toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
......
......@@ -26,17 +26,14 @@ import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updateLayoutParams
import com.github.shadowsocks.plugin.AlertDialogFragment
import com.github.shadowsocks.plugin.Empty
import com.github.shadowsocks.plugin.PluginContract
import com.github.shadowsocks.preference.DataStore
import com.github.shadowsocks.utils.SingleInstanceActivity
import com.github.shadowsocks.utils.consumeSystemWindowInsetTop
import com.github.shadowsocks.utils.consumeSystemWindowInsetsWithList
class ProfileConfigActivity : AppCompatActivity() {
companion object {
......@@ -58,10 +55,7 @@ class ProfileConfigActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
SingleInstanceActivity.register(this) ?: return
setContentView(R.layout.layout_profile_config)
findViewById<View>(android.R.id.content).setOnApplyWindowInsetsListener { v, insets ->
v.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin = insets.systemWindowInsetTop }
insets.consumeSystemWindowInsetTop()
}
consumeSystemWindowInsetsWithList()
setSupportActionBar(findViewById(R.id.toolbar))
supportActionBar!!.apply {
setDisplayHomeAsUpEnabled(true)
......
......@@ -28,7 +28,6 @@ import android.view.ViewGroup
import android.widget.CheckedTextView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
......@@ -38,7 +37,7 @@ import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.plugin.PluginConfiguration
import com.github.shadowsocks.preference.DataStore
import com.github.shadowsocks.utils.SingleInstanceActivity
import com.github.shadowsocks.utils.consumeSystemWindowInsetTop
import com.github.shadowsocks.utils.consumeSystemWindowInsetsWithList
import com.github.shadowsocks.utils.resolveResourceId
class UdpFallbackProfileActivity : AppCompatActivity() {
......@@ -88,10 +87,7 @@ class UdpFallbackProfileActivity : AppCompatActivity() {
}
SingleInstanceActivity.register(this) ?: return
setContentView(R.layout.layout_udp_fallback)
findViewById<View>(android.R.id.content).setOnApplyWindowInsetsListener { v, insets ->
v.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin = insets.systemWindowInsetTop }
insets.consumeSystemWindowInsetTop()
}
consumeSystemWindowInsetsWithList()
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(R.string.udp_fallback)
......
......@@ -30,7 +30,6 @@ import android.widget.CheckedTextView
import android.widget.Switch
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
......@@ -38,7 +37,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.github.shadowsocks.R
import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.utils.consumeSystemWindowInsetTop
import com.github.shadowsocks.utils.consumeSystemWindowInsetsWithList
import com.github.shadowsocks.utils.resolveResourceId
class ConfigActivity : AppCompatActivity() {
......@@ -95,10 +94,7 @@ class ConfigActivity : AppCompatActivity() {
}
taskerOption = Settings.fromIntent(intent)
setContentView(R.layout.layout_tasker)
findViewById<View>(android.R.id.content).setOnApplyWindowInsetsListener { v, insets ->
v.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin = insets.systemWindowInsetTop }
insets.consumeSystemWindowInsetTop()
}
consumeSystemWindowInsetsWithList()
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(R.string.app_name)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment