Commit a7525323 authored by Mygod's avatar Mygod

Fix landscape immersive theme

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