1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-05 07:20:23 +08:00

feat: transparent status bar and navbar (#71)

* Transparent status bar and navbar

* Support custom control transparent status bar and navbar

* Cleanup useless code
This commit is contained in:
DtHnAme
2024-05-21 12:12:54 +08:00
committed by GitHub
parent 688e263e26
commit b0e2f690ad
6 changed files with 35 additions and 0 deletions

View File

@@ -2,9 +2,12 @@ package top.fumiama.copymanga
import android.os.Bundle
import android.util.Log
import android.view.WindowManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
import kotlinx.android.synthetic.main.activity_login.*
import kotlinx.coroutines.launch
import top.fumiama.dmzj.copymanga.R
@@ -58,5 +61,14 @@ class LoginActivity : AppCompatActivity() {
Toast.makeText(this@LoginActivity, l?.message, Toast.LENGTH_LONG).show()
}
}
PreferenceManager.getDefaultSharedPreferences(this)?.apply {
if (getBoolean("settings_cat_general_sw_enable_transparent_systembar", false)) {
WindowCompat.setDecorFitsSystemWindows(window, false)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
window.statusBarColor = 0
window.navigationBarColor = 0
}
}
}
}

View File

@@ -16,6 +16,7 @@ import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
import android.widget.TextView
import android.widget.Toast
@@ -26,6 +27,7 @@ import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.core.view.WindowCompat
import androidx.drawerlayout.widget.DrawerLayout
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
@@ -161,6 +163,13 @@ class MainActivity : AppCompatActivity() {
)[it])
}
}
if (getBoolean("settings_cat_general_sw_enable_transparent_systembar", false)) {
WindowCompat.setDecorFitsSystemWindows(window, false)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
window.statusBarColor = 0
window.navigationBarColor = 0
}
}
}

View File

@@ -20,6 +20,7 @@ import android.view.View
import android.view.ViewGroup
import android.view.WindowInsets
import android.view.WindowInsetsController
import android.view.WindowManager
import android.widget.Button
import android.widget.SeekBar
import android.widget.Toast
@@ -204,6 +205,10 @@ class ViewMangaActivity : TitleActivityTemplate() {
}
}
}
if (settingsPref?.getBoolean("settings_cat_general_sw_enable_transparent_systembar", false) == true) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R)
window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
}
}
@Suppress("DEPRECATION")

View File

@@ -20,6 +20,7 @@
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:insetForeground="@android:color/transparent"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>

View File

@@ -146,6 +146,8 @@
<string name="settings_cat_general_sm_card_per_row">默认为0表示无偏移, 在此基础上加减</string>
<string name="settings_cat_general_sw_disable_kanban_animation">不显示看板娘动画</string>
<string name="settings_cat_general_sm_disable_kanban_animation">如加载卡顿可考虑开启此选项</string>
<string name="settings_cat_general_sw_enable_transparent_systembar">沉浸式系统栏</string>
<string name="settings_cat_general_sm_enable_transparent_systembar">使全面屏设备导航栏和状态栏更沉浸</string>
<string name="settings_cat_net">网络</string>
<string name="settings_cat_net_sb_title_image_resolution">图片分辨率</string>

View File

@@ -20,6 +20,12 @@
app:selectable="true"
app:summary="@string/settings_cat_general_sm_disable_kanban_animation"
app:title="@string/settings_cat_general_sw_disable_kanban_animation" />
<SwitchPreferenceCompat
app:iconSpaceReserved="false"
app:key="settings_cat_general_sw_enable_transparent_systembar"
app:selectable="true"
app:summary="@string/settings_cat_general_sm_enable_transparent_systembar"
app:title="@string/settings_cat_general_sw_enable_transparent_systembar" />
<EditTextPreference
android:layout_width="wrap_content"
android:layout_height="wrap_content"