暂时去掉immersionbar,寻找适配问题。

This commit is contained in:
ocean 2025-11-11 17:23:33 +08:00
parent 3fa8ea357c
commit 854c0debc1
18 changed files with 399 additions and 454 deletions

View File

@ -74,8 +74,8 @@ dependencies {
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
implementation(libs.immersionbar)
implementation(libs.immersionbar.ktx)
// implementation(libs.immersionbar)
// implementation(libs.immersionbar.ktx)
implementation(libs.androidx.room.runtime)
ksp(libs.androidx.room.compiler)
implementation(libs.androidx.room.ktx)

View File

@ -36,9 +36,9 @@
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/app_logo"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/Theme.PDFReaderPro"
tools:targetApi="36">
android:theme="@style/Theme.PDFReaderPro">
<meta-data
android:name="android.max_aspect"
android:value="2.4" />

View File

@ -3,11 +3,10 @@ package com.all.pdfreader.pro.app.ui.act
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.all.pdfreader.pro.app.R
import androidx.core.view.WindowCompat
import com.all.pdfreader.pro.app.room.repository.PdfRepository
import com.all.pdfreader.pro.app.sp.AppStore
import com.all.pdfreader.pro.app.util.ToastUtils
import com.gyf.immersionbar.ImmersionBar
abstract class BaseActivity : AppCompatActivity() {
@ -15,6 +14,7 @@ abstract class BaseActivity : AppCompatActivity() {
protected val appStore by lazy { AppStore(this) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, true)
Log.d("ocean", "🚀 ${javaClass.simpleName} onCreate")
}

View File

@ -7,7 +7,6 @@ import android.widget.TextView
import androidx.core.text.HtmlCompat
import com.all.pdfreader.pro.app.R
import com.all.pdfreader.pro.app.databinding.ActivityFaqBinding
import com.gyf.immersionbar.ImmersionBar
class FAQActivity : BaseActivity() {
override val TAG: String = "FAQActivity"
@ -22,8 +21,6 @@ class FAQActivity : BaseActivity() {
super.onCreate(savedInstanceState)
binding = ActivityFaqBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.white).init()
initView()
}

View File

@ -32,9 +32,6 @@ import com.all.pdfreader.pro.app.util.PdfScanner
import com.all.pdfreader.pro.app.util.StoragePermissionHelper
import com.all.pdfreader.pro.app.viewmodel.PdfViewModel
import com.all.pdfreader.pro.app.viewmodel.observeEvent
import com.gyf.immersionbar.ImmersionBar
import com.gyf.immersionbar.NavigationBarType
import com.gyf.immersionbar.OnNavigationBarListener
import kotlinx.coroutines.launch
import java.io.File
@ -59,18 +56,10 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setTheme(R.style.Theme_PDFReaderPro)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setupDoubleBackExit()
initObserve()
ImmersionBar
.with(this)
.statusBarView(binding.view)
.statusBarDarkFont(false)
.navigationBarColor(R.color.red)
.init()
setupFragments()
setupNavigation()
pdfScanner = PdfScanner(this, pdfRepository)

View File

@ -19,12 +19,8 @@ import com.all.pdfreader.pro.app.ui.dialog.PdfPasswordProtectionDialogFragment
import com.all.pdfreader.pro.app.ui.dialog.PromptDialogFragment
import com.all.pdfreader.pro.app.util.AppUtils.setClickWithAnimation
import com.all.pdfreader.pro.app.util.AppUtils.setOnSingleClickListener
import com.all.pdfreader.pro.app.util.FileUtils.isPdfEncrypted
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext
import java.io.File
class MergePdfActivity : BaseActivity() {
@ -38,8 +34,6 @@ class MergePdfActivity : BaseActivity() {
binding = ActivityPdfMergeBinding.inflate(layoutInflater)
setContentView(binding.root)
setupBackPressedCallback()
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.white).init()
val list: ArrayList<PdfDocumentEntity> = requireParcelableArrayList(EXTRA_PDF_LIST)
updateContinueNowBtnState(list.size >= 2)
lifecycleScope.launch {

View File

@ -7,7 +7,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Parcelable
import android.view.View
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
@ -25,7 +24,6 @@ import com.all.pdfreader.pro.app.util.AppUtils.printPdfFile
import com.all.pdfreader.pro.app.util.AppUtils.setClickWithAnimation
import com.all.pdfreader.pro.app.util.AppUtils.setOnSingleClickListener
import com.all.pdfreader.pro.app.util.ToastUtils
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.launch
import java.io.File
import java.io.Serializable
@ -51,8 +49,6 @@ class PdfPickerActivity : BaseActivity() {
}
fromActivityResult = intent.getStringExtra(EXTRA_FROM) ?: ""
historyList = requireParcelableArrayList(EXTRA_HISTORY_LIST)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.white).init()
updateViewAndState()
initView()
setupClick()

View File

@ -34,7 +34,6 @@ import com.all.pdfreader.pro.app.util.ToastUtils
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@ -127,8 +126,6 @@ class PdfResultActivity : BaseActivity() {
binding = ActivityPdfSplitResultBinding.inflate(layoutInflater)
setContentView(binding.root)
setupBackPressedCallback()
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.bg_color).init()
source = getSerializableOrDefault(EXTRA_SOURCE, PdfPickerSource.NONE)
if (source == PdfPickerSource.NONE) {
showToast(getString(R.string.pdf_loading_failed))

View File

@ -16,7 +16,6 @@ import com.all.pdfreader.pro.app.ui.dialog.PdfPasswordProtectionDialogFragment
import com.all.pdfreader.pro.app.util.AppUtils.setOnSingleClickListener
import com.all.pdfreader.pro.app.util.FileUtils.isPdfEncrypted
import com.all.pdfreader.pro.app.util.PdfUtils
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@ -50,8 +49,6 @@ class PdfToImageActivity : BaseActivity() {
super.onCreate(savedInstanceState)
binding = ActivityPdfToImgBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.bg_color).init()
filePath = intent.getStringExtra(EXTRA_PDF_PATH)
?: throw IllegalArgumentException("PDF file hash is required")
source = getSerializableOrDefault(EXTRA_SOURCE, PdfPickerSource.NONE)

View File

@ -8,14 +8,12 @@ import android.text.TextWatcher
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.EditorInfo
import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.all.pdfreader.pro.app.R
import com.all.pdfreader.pro.app.databinding.ActivityPdfViewBinding
import com.all.pdfreader.pro.app.model.FileActionEvent
import com.all.pdfreader.pro.app.model.PdfPickerSource
import com.all.pdfreader.pro.app.room.entity.PdfDocumentEntity
import com.all.pdfreader.pro.app.ui.dialog.BookmarksDialogFragment
import com.all.pdfreader.pro.app.ui.dialog.ListMoreDialogFragment
@ -34,13 +32,10 @@ import com.github.barteksc.pdfviewer.listener.OnErrorListener
import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener
import com.github.barteksc.pdfviewer.listener.OnPageChangeListener
import com.github.barteksc.pdfviewer.listener.OnTapListener
import com.gyf.immersionbar.BarHide
import com.gyf.immersionbar.ImmersionBar
import com.tom_roush.pdfbox.pdmodel.PDDocument
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.io.File
@ -77,8 +72,6 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList
super.onCreate(savedInstanceState)
binding = ActivityPdfViewBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.white).init()
setupDoubleBackExit()
initObserve()
val filePath = intent.getStringExtra(EXTRA_PDF_HASH)
@ -391,12 +384,12 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList
isFullScreen = !isFullScreen
updateStatusAndNavigationLayout(isFullScreen)
if (isFullScreen) {
ImmersionBar.with(this).hideBar(BarHide.FLAG_HIDE_BAR).init()
// ImmersionBar.with(this).hideBar(BarHide.FLAG_HIDE_BAR).init()
} else {
val navColor =
if (appStore.isEyeCareMode) R.color.eye_protection_color else R.color.white
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(navColor).hideBar(BarHide.FLAG_SHOW_BAR).init()
// ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
// .navigationBarColor(navColor).hideBar(BarHide.FLAG_SHOW_BAR).init()
}
}
@ -423,8 +416,8 @@ class PdfViewActivity : BaseActivity(), OnLoadCompleteListener, OnPageChangeList
binding.eyeCareOverlay.visibility = View.GONE
binding.eyeProtectIv.setImageResource(R.drawable.eye_protect)
}
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(navColor).init()
// ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
// .navigationBarColor(navColor).init()
}
private fun setupDoubleBackExit() {

View File

@ -8,7 +8,6 @@ import android.webkit.WebView
import android.webkit.WebViewClient
import com.all.pdfreader.pro.app.R
import com.all.pdfreader.pro.app.databinding.ActPrivacyPolicyBinding
import com.gyf.immersionbar.ImmersionBar
class PrivacyPolicyActivity : BaseActivity() {
private lateinit var binding: ActPrivacyPolicyBinding
@ -18,8 +17,6 @@ class PrivacyPolicyActivity : BaseActivity() {
super.onCreate(savedInstanceState)
binding = ActPrivacyPolicyBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.bg_color).init()
binding.backBtn.setOnClickListener {
finish()
}

View File

@ -26,7 +26,6 @@ import com.all.pdfreader.pro.app.ui.dialog.PromptDialogFragment
import com.all.pdfreader.pro.app.util.AppUtils.printPdfFile
import com.all.pdfreader.pro.app.util.AppUtils.showKeyboard
import com.all.pdfreader.pro.app.util.ToastUtils
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
@ -65,8 +64,6 @@ class SearchActivity : BaseActivity() {
super.onCreate(savedInstanceState)
binding = ActivitySearchPdfBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.bg_color).init()
source = getSerializableOrDefault(EXTRA_SOURCE, PdfPickerSource.NONE)
sp = getSharedPreferences(PREF_SEARCH_HISTORY, MODE_PRIVATE)
loadHistory()

View File

@ -6,7 +6,6 @@ import android.os.Bundle
import android.os.Handler
import android.os.Looper
import com.all.pdfreader.pro.app.databinding.ActivitySplashBinding
import com.gyf.immersionbar.ImmersionBar
@SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity() {
@ -22,13 +21,6 @@ class SplashActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySplashBinding.inflate(layoutInflater)
ImmersionBar
.with(this)
.fullScreen(true)
.statusBarDarkFont(true)
.transparentNavigationBar()
.init()
// 设置启动页布局
setContentView(binding.root)

View File

@ -23,7 +23,6 @@ import com.all.pdfreader.pro.app.util.AppUtils.setOnSingleClickListener
import com.all.pdfreader.pro.app.util.FileUtils.isPdfEncrypted
import com.all.pdfreader.pro.app.util.FileUtils.toUnderscoreDateTime
import com.all.pdfreader.pro.app.util.PdfUtils
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@ -64,8 +63,6 @@ class SplitPdfActivity : BaseActivity() {
binding = ActivityPdfSplitBinding.inflate(layoutInflater)
setContentView(binding.root)
setupBackPressedCallback()
ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
.navigationBarColor(R.color.bg_color).init()
filePath = intent.getStringExtra(EXTRA_PDF_PATH)
?: throw IllegalArgumentException("PDF file hash is required")
if (filePath.isEmpty()) {

View File

@ -124,7 +124,7 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment()
binding.lockLayout.visibility = View.GONE
binding.tvFileImg.visibility = View.VISIBLE
Glide.with(binding.root).load(pdfDocument.thumbnailPath)
.transform(CenterCrop(), RoundedCorners(8.dpToPx(binding.root.context)))
.transform(CenterCrop(), RoundedCorners(4.dpToPx(binding.root.context)))
.into(binding.tvFileImg)
}
updateCollectUi(isFavorite)

View File

@ -3,9 +3,11 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -456,6 +458,8 @@
</LinearLayout>
</LinearLayout>
</FrameLayout>
<!-- android:layout_gravity="start" -->
<LinearLayout
android:id="@+id/drawerView"

View File

@ -28,6 +28,7 @@
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="1dp"
android:background="@drawable/dr_item_img_frame">
<ImageView

View File

@ -9,12 +9,6 @@
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@android:color/white</item>
</style>
<!-- SplashActivity theme -->
<style name="Theme.PDFReaderPro.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
<!-- PermissionActivity Dialog theme -->
<style name="Theme.PDFReaderPro.Dialog" parent="Theme.PDFReaderPro">