diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8dce6eb..81f4f07 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
+
@@ -112,7 +113,13 @@
android:screenOrientation="portrait" />
+
+
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/sp/AppStore.kt b/app/src/main/java/com/all/pdfreader/pro/app/sp/AppStore.kt
index 1e19282..b652593 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/sp/AppStore.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/sp/AppStore.kt
@@ -44,6 +44,10 @@ class AppStore(context: Context) {
key = IS_COLOR_INVERSION, defaultValue = false
)
+ var keepScreenOn: Boolean by store.boolean(
+ key = KEEP_SCREEN_ON,defaultValue = false
+ )
+
companion object {
private const val FILE_NAME = "prp_sp_name"
private const val PERMISSIONS_DIALOG_PROMPT = "permissions_dialog_prompt"
@@ -53,5 +57,6 @@ class AppStore(context: Context) {
private const val IS_VERTICAL = "is_vertical"
private const val IS_PAGE_FLING = "is_page_fling"
private const val IS_COLOR_INVERSION = "is_color_inversion"
+ private const val KEEP_SCREEN_ON = "keep_screen_on"
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/FAQActivity.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/FAQActivity.kt
new file mode 100644
index 0000000..b7bd21f
--- /dev/null
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/FAQActivity.kt
@@ -0,0 +1,75 @@
+package com.all.pdfreader.pro.app.ui.act
+
+import android.os.Bundle
+import android.view.View
+import android.widget.ImageView
+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"
+
+ private lateinit var binding: ActivityFaqBinding
+ private var faqAboutApp1IsOpen = true
+ private var faqAboutApp2IsOpen = false
+ private var faqAboutApp3IsOpen = false
+ private var faqFileView1IsOpen = false
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityFaqBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ ImmersionBar.with(this).statusBarView(binding.view).statusBarDarkFont(true)
+ .navigationBarColor(R.color.white).init()
+ initView()
+ }
+
+ private fun initView() {
+ updateViewIsOpen(faqAboutApp1IsOpen, binding.faqAboutApp1DesTv, binding.faqAboutApp1Iv)
+ binding.backBtn.setOnClickListener {
+ finish()
+ }
+ binding.faqAboutApp1DesTv.text = HtmlCompat.fromHtml(
+ getString(R.string.faq_about_app1_des), HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+ binding.faqAboutApp2DesTv.text = HtmlCompat.fromHtml(
+ getString(R.string.faq_about_app2_des), HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+ binding.faqAboutApp3DesTv.text = HtmlCompat.fromHtml(
+ getString(R.string.faq_about_app3_des), HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+ binding.faqFileViewing1DscTv.text = HtmlCompat.fromHtml(
+ getString(R.string.faq_file_viewing1_des), HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+
+ binding.aboutApp1Btn.setOnClickListener {
+ faqAboutApp1IsOpen = !faqAboutApp1IsOpen
+ updateViewIsOpen(faqAboutApp1IsOpen, binding.faqAboutApp1DesTv, binding.faqAboutApp1Iv)
+ }
+ binding.aboutApp2Btn.setOnClickListener {
+ faqAboutApp2IsOpen = !faqAboutApp2IsOpen
+ updateViewIsOpen(faqAboutApp2IsOpen, binding.faqAboutApp2DesTv, binding.faqAboutApp2Iv)
+ }
+ binding.aboutApp3Btn.setOnClickListener {
+ faqAboutApp3IsOpen = !faqAboutApp3IsOpen
+ updateViewIsOpen(faqAboutApp3IsOpen, binding.faqAboutApp3DesTv, binding.faqAboutApp3Iv)
+ }
+ binding.fileViewing1Btn.setOnClickListener {
+ faqFileView1IsOpen = !faqFileView1IsOpen
+ updateViewIsOpen(faqFileView1IsOpen,binding.faqFileViewing1DscTv,binding.faqFileViewing1Iv)
+ }
+ }
+
+ private fun updateViewIsOpen(b: Boolean, textView: TextView, imageView: ImageView) {
+ if (b) {
+ textView.visibility = View.VISIBLE
+ imageView.setImageResource(R.drawable.icon_arrow_up_gray)
+ } else {
+ textView.visibility = View.GONE
+ imageView.setImageResource(R.drawable.icon_arrow_down_gray)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
index 85b93e1..76f78bd 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
@@ -1,8 +1,10 @@
package com.all.pdfreader.pro.app.ui.act
+import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.View
+import android.view.WindowManager
import androidx.activity.OnBackPressedCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.fragment.app.Fragment
@@ -21,6 +23,9 @@ import com.all.pdfreader.pro.app.ui.fragment.FavoriteFrag
import com.all.pdfreader.pro.app.ui.fragment.HomeFrag
import com.all.pdfreader.pro.app.ui.fragment.RecentlyFrag
import com.all.pdfreader.pro.app.ui.fragment.ToolsFrag
+import com.all.pdfreader.pro.app.ui.view.CustomSwitchButton
+import com.all.pdfreader.pro.app.ui.view.CustomSwitchButton.OnCheckedChangeListener
+import com.all.pdfreader.pro.app.util.AppUtils
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.PdfScanner
@@ -171,6 +176,8 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
//按钮点击事件
private fun setupNavigation() {
+ binding.switchScreenOn.setChecked(appStore.keepScreenOn)
+
binding.homeLlBtn.setOnSingleClickListener { switchFragment(homeFragment) }
binding.recentlyLlBtn.setOnSingleClickListener { switchFragment(recentlyFragment) }
binding.favoriteLlBtn.setOnSingleClickListener { switchFragment(favoriteFragment) }
@@ -182,8 +189,10 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
}
binding.sidebarBtn.setClickWithAnimation {
-
+ binding.drawerLayout.openDrawer(binding.drawerView)
}
+ //防止事件穿透
+ binding.drawerView.setOnClickListener { }
binding.searchBtn.setClickWithAnimation {
startActivity(SearchActivity.createIntent(this, PdfPickerSource.NONE))
@@ -278,6 +287,35 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
exitAllMultiSelect()
}
}
+ binding.faqBtn.setOnClickListener {
+ val intent = Intent(this, FAQActivity::class.java)
+ startActivity(intent)
+ binding.drawerLayout.closeDrawer(binding.drawerView)
+ }
+ binding.switchScreenOn.setOnCheckedChangeListener(object : OnCheckedChangeListener {
+ override fun onCheckedChanged(view: CustomSwitchButton?, isChecked: Boolean) {
+ view?.setChecked(isChecked)
+ appStore.keepScreenOn = isChecked
+ setKeepScreenOn(isChecked)
+ }
+ })
+ binding.shareAppBtn.setOnClickListener {
+ AppUtils.shareAppInfo(this)
+ binding.drawerLayout.closeDrawer(binding.drawerView)
+ }
+ binding.privacyPolicyBtn.setOnClickListener {
+ val intent = Intent(this,PrivacyPolicyActivity::class.java)
+ startActivity(intent)
+ binding.drawerLayout.closeDrawer(binding.drawerView)
+ }
+ }
+
+ private fun setKeepScreenOn(b: Boolean){
+ if (b) {
+ window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ } else {
+ window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ }
}
private fun switchFragment(target: Fragment) {
@@ -288,9 +326,11 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
}
private fun updateSelectedNav(fragment: Fragment) {
- if (fragment is ToolsFrag) {//工具界面不展示权限
+ if (fragment is ToolsFrag) {//工具界面不展示权限与搜索和多选
binding.pnLayout.visibility = View.GONE
+ binding.topButtonLayout.visibility = View.GONE
} else {
+ binding.topButtonLayout.visibility = View.VISIBLE
if (!StoragePermissionHelper.hasBasicStoragePermission(this)) {
binding.pnLayout.visibility = View.VISIBLE
}
@@ -349,6 +389,7 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
binding.toolsTv.setTextColor(getColor(R.color.icon_on))
}
}
+
}
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PrivacyPolicyActivity.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PrivacyPolicyActivity.kt
new file mode 100644
index 0000000..0b13dc1
--- /dev/null
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/PrivacyPolicyActivity.kt
@@ -0,0 +1,129 @@
+package com.all.pdfreader.pro.app.ui.act
+
+import android.os.Bundle
+import android.webkit.WebChromeClient
+import android.webkit.WebResourceError
+import android.webkit.WebResourceRequest
+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
+
+ override val TAG = "PrivacyPolicyActivity"
+ override fun onCreate(savedInstanceState: Bundle?) {
+ 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()
+ }
+
+ setupWebView()
+ loadPrivacyPolicy()
+ }
+
+ private fun setupWebView() {
+ binding.webView.apply {
+ webViewClient = object : WebViewClient() {
+ override fun onPageStarted(view: WebView?, url: String?, favicon: android.graphics.Bitmap?) {
+ super.onPageStarted(view, url, favicon)
+ // 页面开始加载,显示进度条
+ binding.progressBar.visibility = android.widget.ProgressBar.VISIBLE
+ }
+
+ override fun onPageFinished(view: WebView?, url: String?) {
+ super.onPageFinished(view, url)
+ // 页面加载完成,隐藏进度条
+ binding.progressBar.visibility = android.widget.ProgressBar.GONE
+ }
+
+ override fun onReceivedError(
+ view: WebView?,
+ request: WebResourceRequest?,
+ error: WebResourceError?
+ ) {
+ super.onReceivedError(view, request, error)
+ // 显示错误页面或提示,隐藏进度条
+ binding.progressBar.visibility = android.widget.ProgressBar.GONE
+ loadErrorPage()
+ }
+ }
+ webChromeClient = WebChromeClient()
+ settings.javaScriptEnabled = false
+ settings.builtInZoomControls = true
+ settings.displayZoomControls = false
+ settings.loadWithOverviewMode = true
+ settings.useWideViewPort = true
+ }
+ }
+
+ private fun loadPrivacyPolicy() {
+ val privacyPolicyUrl = "https://www.explore-sun.com/privacy-policy/pdf-reader-pro.html"
+
+ binding.webView.loadUrl(privacyPolicyUrl)
+ }
+
+ private fun loadErrorPage() {
+ val errorHtml = """
+
+
+
+
+
+
+
+
+
Network connection failed
+
Unable to load privacy policy content. Please check your network connection.
+
Reload
+
+
+
+ """.trimIndent()
+ binding.webView.loadDataWithBaseURL(null, errorHtml, "text/html", "utf-8", null)
+ }
+
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ if (binding.webView.canGoBack()) {
+ binding.webView.goBack()
+ } else {
+ super.onBackPressed()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt b/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
index 3ccff8e..21f944f 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
@@ -314,5 +314,45 @@ object AppUtils {
}
}
+ fun shareAppInfo(context: Context) {
+ try {
+ val appPackageName = context.packageName
+ val packageManager = context.packageManager
+ val appInfo = packageManager.getApplicationInfo(appPackageName, 0)
+
+ // 获取应用名称,兼容 labelRes 为空的情况
+ val appName = if (appInfo.labelRes != 0) {
+ context.getString(appInfo.labelRes)
+ } else {
+ packageManager.getApplicationLabel(appInfo).toString()
+ }
+
+ // 应用链接(可自定义成其他市场链接)
+ val appPlayStoreLink = "https://play.google.com/store/apps/details?id=$appPackageName"
+
+ // 分享内容
+ val shareMessage = "Check out $appName on Google Play:\n$appPlayStoreLink"
+
+ // 构建 Intent
+ val shareIntent = Intent(Intent.ACTION_SEND).apply {
+ type = "text/plain"
+ putExtra(Intent.EXTRA_SUBJECT, appName)
+ putExtra(Intent.EXTRA_TEXT, shareMessage)
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ }
+
+ // 弹出系统分享面板
+ val chooser = Intent.createChooser(shareIntent, "Share $appName")
+ if (shareIntent.resolveActivity(packageManager) != null) {
+ context.startActivity(chooser)
+ } else {
+ Toast.makeText(context, "No app available to share.", Toast.LENGTH_SHORT).show()
+ }
+
+ } catch (e: Exception) {
+ e.printStackTrace()
+ Toast.makeText(context, "Unable to share app info.", Toast.LENGTH_SHORT).show()
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/back_black.xml b/app/src/main/res/drawable/back_black.xml
index fd82dac..5e39e91 100644
--- a/app/src/main/res/drawable/back_black.xml
+++ b/app/src/main/res/drawable/back_black.xml
@@ -1,13 +1,9 @@
+ android:width="256dp"
+ android:height="256dp"
+ android:viewportWidth="1024"
+ android:viewportHeight="1024">
+ android:pathData="M927.9,478.1 L168.9,478.1l308.7,-308.9c11.7,-11.7 11.4,-30.9 -0.6,-42.9 -12,-12 -31.2,-12.2 -42.9,-0.5L75.2,484.9c-2,1.7 -3.8,3.6 -5.3,5.7 -4,5.4 -6,11.8 -5.9,18.3 -0.1,7.8 2.7,15.6 8.6,21.4l361.6,361.7c11.7,11.7 30.9,11.4 42.9,-0.5 12,-12 12.2,-31.2 0.6,-42.9L168.4,539.5l759.4,0c16.5,0 29.9,-13.7 29.9,-30.7S944.4,478.1 927.9,478.1z"
+ android:fillColor="#000000"/>
diff --git a/app/src/main/res/drawable/drw_faq_item_bg.xml b/app/src/main/res/drawable/drw_faq_item_bg.xml
new file mode 100644
index 0000000..93ef794
--- /dev/null
+++ b/app/src/main/res/drawable/drw_faq_item_bg.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/icon_arrow_down_gray.xml b/app/src/main/res/drawable/icon_arrow_down_gray.xml
new file mode 100644
index 0000000..0e2f8c9
--- /dev/null
+++ b/app/src/main/res/drawable/icon_arrow_down_gray.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_arrow_up_gray.xml b/app/src/main/res/drawable/icon_arrow_up_gray.xml
new file mode 100644
index 0000000..87ed54f
--- /dev/null
+++ b/app/src/main/res/drawable/icon_arrow_up_gray.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_faq.xml b/app/src/main/res/drawable/icon_faq.xml
new file mode 100644
index 0000000..66022ea
--- /dev/null
+++ b/app/src/main/res/drawable/icon_faq.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_privacy_policy.xml b/app/src/main/res/drawable/icon_privacy_policy.xml
new file mode 100644
index 0000000..8b67646
--- /dev/null
+++ b/app/src/main/res/drawable/icon_privacy_policy.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_screen_on.xml b/app/src/main/res/drawable/icon_screen_on.xml
new file mode 100644
index 0000000..d0249b2
--- /dev/null
+++ b/app/src/main/res/drawable/icon_screen_on.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/act_privacy_policy.xml b/app/src/main/res/layout/act_privacy_policy.xml
new file mode 100644
index 0000000..3d2d5fb
--- /dev/null
+++ b/app/src/main/res/layout/act_privacy_policy.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_faq.xml b/app/src/main/res/layout/activity_faq.xml
new file mode 100644
index 0000000..16465a8
--- /dev/null
+++ b/app/src/main/res/layout/activity_faq.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 80b24e3..790aec0 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,454 +1,626 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="0dp" />
+ android:layout_height="56dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:src="@drawable/icon_sidebar" />
-
+
+
+ android:id="@+id/searchBtn"
+ android:layout_width="44dp"
+ android:layout_height="44dp"
+ android:background="@drawable/dr_click_effect_oval_transparent"
+ android:gravity="center">
-
-
+ android:src="@drawable/icon_search" />
+ android:id="@+id/multiSelectBtn"
+ android:layout_width="44dp"
+ android:layout_height="44dp"
+ android:layout_marginEnd="6dp"
+ android:background="@drawable/dr_click_effect_oval_transparent"
+ android:gravity="center">
-
-
+ android:src="@drawable/icon_multi_select" />
+
+
-
+
-
+
-
-
+
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:orientation="vertical">
+ android:id="@+id/pnLayout"
+ android:layout_width="match_parent"
+ android:layout_height="64dp"
+ android:background="@drawable/dr_rounded_corner_top_bg_grey"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:visibility="visible">
+ android:src="@drawable/icon_notice" />
-
+
+
+
+
+
+
+
+
+ android:layout_height="match_parent"
+ android:gravity="center">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:id="@+id/multiSelectBottomLayout"
+ android:layout_width="match_parent"
+ android:layout_height="64dp"
+ android:background="@color/white"
+ android:orientation="horizontal"
+ android:visibility="visible">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_pdf_merge.xml b/app/src/main/res/layout/activity_pdf_merge.xml
index bfb2810..8c03a6f 100644
--- a/app/src/main/res/layout/activity_pdf_merge.xml
+++ b/app/src/main/res/layout/activity_pdf_merge.xml
@@ -20,18 +20,21 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_search_pdf.xml b/app/src/main/res/layout/activity_search_pdf.xml
index 50c9f8c..5b19b72 100644
--- a/app/src/main/res/layout/activity_search_pdf.xml
+++ b/app/src/main/res/layout/activity_search_pdf.xml
@@ -20,18 +20,21 @@
+
diff --git a/app/src/main/res/layout/dialog_view_model.xml b/app/src/main/res/layout/dialog_view_model.xml
index 8e5cc6f..648ca80 100644
--- a/app/src/main/res/layout/dialog_view_model.xml
+++ b/app/src/main/res/layout/dialog_view_model.xml
@@ -139,7 +139,7 @@
@@ -171,7 +171,7 @@
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 719260b..38a4bc5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -51,6 +51,7 @@
Rename
Details
Share
+ Share App
Print
Added to Favorite
Add Bookmark
@@ -170,4 +171,18 @@
Sort by Last modified
Sort by Name
Sort by Size
+ Organize all PDF files at one place.
+ FAQ
+ Keep screen on
+ Privacy policy
+ About App
+ My files open slowly
+ the large file size.To ensure the best reading experience, we need some time to load and parse.
We appreciate your understanding and will continue to improve.]]>
+ Why do we need permissions?
+ "All Files Access" permission to read files on your device, so you can manage, browse them in our app.
Rest assured,the permission will only be used for file reading and will not be used for any other purposes.]]>
+ How to set PDF Reader as my default file reader?
+ "Open with" pop-up, choose our app icon, and tap "Always" to set PDF Reader as your default file reader.]]>
+ File Viewing
+ How to enable "Reflow" mode?
+ "View mode" in the bottom bar. From there, you can toggle "Reflow" mode on or off.
Currently,this feature is only available on Android7 and above device.We will continue to optimize it and support more systems in the future.Please stay tuned.]]>
\ No newline at end of file