Commit 1445523c authored by wanglei's avatar wanglei

...

parent e41ed9e8
...@@ -38,14 +38,7 @@ object ConstObject { ...@@ -38,14 +38,7 @@ object ConstObject {
field = value field = value
AppPreferences.getInstance().put("ifAgreePrivacy", value, true) AppPreferences.getInstance().put("ifAgreePrivacy", value, true)
} }
var showPermissionPageGuide = false
get() {
return AppPreferences.getInstance().getBoolean("showPermissionPageGuide", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("showPermissionPageGuide", value, true)
}
var haveSaveDemo = false var haveSaveDemo = false
get() { get() {
return AppPreferences.getInstance().getBoolean("haveSaveDemo", field) return AppPreferences.getInstance().getBoolean("haveSaveDemo", field)
......
...@@ -322,6 +322,9 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack ...@@ -322,6 +322,9 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack
val flag = File(item.path).delete() val flag = File(item.path).delete()
if (flag) { if (flag) {
adapter?.remove(item) adapter?.remove(item)
if (adapter?.items?.isEmpty() == true) {
binding.llEmpty.visibility = View.GONE
}
} }
} }
...@@ -333,4 +336,5 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack ...@@ -333,4 +336,5 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack
} }
//endregion //endregion
} }
\ No newline at end of file
package com.base.pdfoneread.ui.main package com.base.pdfoneread.ui.main
import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Build
import android.view.View import android.view.View
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.bean.ConstObject.showPermissionPageGuide
import com.base.pdfoneread.databinding.ActivityMainBinding import com.base.pdfoneread.databinding.ActivityMainBinding
import com.base.pdfoneread.ui.BaseActivity import com.base.pdfoneread.ui.BaseActivity
import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_GRID import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_GRID
import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_LIST import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_LIST
import com.base.pdfoneread.ui.document.getAllDocument
import com.base.pdfoneread.ui.search.SearchActivity import com.base.pdfoneread.ui.search.SearchActivity
import com.base.pdfoneread.ui.views.MainDialog.showAppExitDialog import com.base.pdfoneread.ui.views.MainDialog.showAppExitDialog
import com.base.pdfoneread.ui.views.MainDialog.showNotificationDialog
import com.base.pdfoneread.ui.views.MainDialog.showStoragePermission import com.base.pdfoneread.ui.views.MainDialog.showStoragePermission
import com.base.pdfoneread.utils.BarUtils import com.base.pdfoneread.utils.BarUtils
import com.base.pdfoneread.utils.LogEx import com.base.pdfoneread.utils.PermissionUtils.checkNotificationPermission
import com.base.pdfoneread.utils.PermissionUtils.checkStorePermission import com.base.pdfoneread.utils.PermissionUtils.checkStorePermission
import com.base.pdfoneread.utils.SpannableUtils.colorSpanner import com.base.pdfoneread.utils.SpannableUtils.colorSpanner
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : BaseActivity<ActivityMainBinding>() { class MainActivity : BaseActivity<ActivityMainBinding>() {
...@@ -47,12 +45,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -47,12 +45,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment
navController = navHostFragment.navController navController = navHostFragment.navController
onCreateShowNotificationDialog()
changeHomeRvIcon() changeHomeRvIcon()
}
if (!checkStorePermission() && showPermissionPageGuide) { private fun onCreateShowNotificationDialog() {
showStoragePermission(launcher) {} if (checkStorePermission()) {
if (!checkNotificationPermission()) {
showNotificationDialog(launcher, jumpAction = { jumpPageOut = true })
}
} }
} }
override fun onResume() { override fun onResume() {
...@@ -89,12 +91,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -89,12 +91,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
startActivity(Intent(this, SearchActivity::class.java)) startActivity(Intent(this, SearchActivity::class.java))
} }
handleNav() handleActionOrNav()
intent.extras?.clear() intent.extras?.clear()
} }
private fun handleNav() { var jumpPageOut: Boolean = false
navWhere = intent.extras?.getString("navWhere") ?: NAV_HOME
private fun handleActionOrNav() {
navWhere = intent.extras?.getString("navWhere") ?: NAV_PERMISSION
when (navWhere) { when (navWhere) {
NAV_HOME -> changeHomeUI() NAV_HOME -> changeHomeUI()
NAV_RECENT -> changeRecentUI() NAV_RECENT -> changeRecentUI()
...@@ -104,6 +108,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -104,6 +108,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
changeHomeUI() changeHomeUI()
} else { } else {
changePermissionUI() changePermissionUI()
showStoragePermission(launcher,
jumpAction = {
jumpPageOut = true
},
launcherAction = { flag ->
changeHomeUI()
})
} }
} }
} }
...@@ -192,7 +203,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -192,7 +203,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
if (getNavCurrentFragment() !is PermissionFragment) { if (getNavCurrentFragment() !is PermissionFragment) {
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.permissionFragment) navController.navigate(R.id.permissionFragment)
showPermissionPageGuide = true
} }
} }
......
...@@ -14,6 +14,8 @@ import com.base.pdfoneread.ui.document.getGlobalAllList ...@@ -14,6 +14,8 @@ import com.base.pdfoneread.ui.document.getGlobalAllList
import com.base.pdfoneread.ui.document.getRvAdList import com.base.pdfoneread.ui.document.getRvAdList
import com.base.pdfoneread.ui.document.isRefreshOver import com.base.pdfoneread.ui.document.isRefreshOver
import com.base.pdfoneread.ui.document.recentFilter import com.base.pdfoneread.ui.document.recentFilter
import com.base.pdfoneread.utils.PermissionUtils.checkStorePermission
import com.base.pdfoneread.utils.PermissionUtils.requestStoragePermission
import com.base.pdfoneread.utils.SpStringUtils import com.base.pdfoneread.utils.SpStringUtils
import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -54,6 +56,25 @@ class RecentFragment() : Fragment() { ...@@ -54,6 +56,25 @@ class RecentFragment() : Fragment() {
isRefreshOver.collectLatest { initData() } isRefreshOver.collectLatest { initData() }
cancel() cancel()
} }
binding.tvGo.setOnClickListener {
val activity = requireActivity() as MainActivity?
activity ?: return@setOnClickListener
requireContext().requestStoragePermission(activity.launcher,
jumpAction = {
activity.jumpPageOut = true
}) {}
}
}
override fun onResume() {
super.onResume()
if (!requireContext().checkStorePermission()) {
binding.clPermission.visibility = View.VISIBLE
} else {
binding.clPermission.visibility = View.GONE
}
} }
private fun initPreData() = lifecycleScope.launch(Dispatchers.IO) { private fun initPreData() = lifecycleScope.launch(Dispatchers.IO) {
......
...@@ -4,7 +4,6 @@ import android.content.Intent ...@@ -4,7 +4,6 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.base.pdfoneread.ui.main.MainActivity
import com.base.pdfoneread.utils.LogEx import com.base.pdfoneread.utils.LogEx
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
......
package com.base.pdfoneread.ui.views package com.base.pdfoneread.ui.views
import android.app.Activity import android.app.Activity
import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.provider.Settings
import android.text.SpannableString import android.text.SpannableString
import android.text.Spanned import android.text.Spanned
import android.text.style.ForegroundColorSpan import android.text.style.ForegroundColorSpan
import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.LinearLayout
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.ads.admob.AdmobNativeUtils import com.base.pdfoneread.ads.admob.AdmobNativeUtils
import com.base.pdfoneread.databinding.DialogAppExitBinding import com.base.pdfoneread.databinding.DialogAppExitBinding
import com.base.pdfoneread.databinding.DialogNotificationEnableBinding
import com.base.pdfoneread.databinding.DialogStoragePermissionBinding import com.base.pdfoneread.databinding.DialogStoragePermissionBinding
import com.base.pdfoneread.utils.ActivityLauncher import com.base.pdfoneread.utils.ActivityLauncher
import com.base.pdfoneread.utils.PermissionUtils.requestStoragePermission import com.base.pdfoneread.utils.PermissionUtils.requestStoragePermission
...@@ -22,7 +28,7 @@ object MainDialog { ...@@ -22,7 +28,7 @@ object MainDialog {
fun Context.showStoragePermission( fun Context.showStoragePermission(
launcher: ActivityLauncher, launcher: ActivityLauncher,
launcherAction: ((flag: Boolean) -> Unit)? = null, launcherAction: ((flag: Boolean) -> Unit)? = null,
noLauncherAction: (() -> Unit)? = null, jumpAction: (() -> Unit)? = null,
dismissAction: (() -> Unit)? = null, dismissAction: (() -> Unit)? = null,
): BottomSheetDialog { ): BottomSheetDialog {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog) val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
...@@ -39,6 +45,7 @@ object MainDialog { ...@@ -39,6 +45,7 @@ object MainDialog {
binding.tvAllow.setOnClickListener { binding.tvAllow.setOnClickListener {
dialog.dismiss() dialog.dismiss()
jumpAction?.invoke()
requestStoragePermission(launcher) { requestStoragePermission(launcher) {
launcherAction?.invoke(it) launcherAction?.invoke(it)
} }
...@@ -86,4 +93,37 @@ object MainDialog { ...@@ -86,4 +93,37 @@ object MainDialog {
dialog.dismiss() dialog.dismiss()
} }
} }
fun Activity.showNotificationDialog(launcher: ActivityLauncher, jumpAction: (() -> Unit)?) {
val dialog = AlertDialog.Builder(this).create()
val binding = DialogNotificationEnableBinding.inflate(LayoutInflater.from(this))
dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(true)
dialog.show()
val params = dialog.window?.attributes
params?.width = resources.getDimensionPixelOffset(R.dimen.dp_345)
params?.height = LinearLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.CENTER
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
binding.tvOk.setOnClickListener {
dialog.dismiss()
val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {
putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
}
jumpAction?.invoke()
launcher.launch(intent)
}
binding.tvNo.setOnClickListener {
dialog.dismiss()
}
binding.flClose.setOnClickListener {
dialog.dismiss()
}
}
} }
\ No newline at end of file
...@@ -45,6 +45,9 @@ object NameDialog { ...@@ -45,6 +45,9 @@ object NameDialog {
val nameS = name.split(".")[0] val nameS = name.split(".")[0]
binding.edit.setSelection(0, nameS.length) binding.edit.setSelection(0, nameS.length)
} }
binding.flClear.setOnClickListener {
binding.edit.setText("")
}
binding.edit.requestFocus() binding.edit.requestFocus()
binding.tvCancel.setOnClickListener { binding.tvCancel.setOnClickListener {
......
package com.base.pdfoneread.utils package com.base.pdfoneread.utils
import android.Manifest import android.Manifest
import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
...@@ -22,17 +23,17 @@ object PermissionUtils { ...@@ -22,17 +23,17 @@ object PermissionUtils {
} }
} }
/** fun Context.checkNotificationPermission(): Boolean {
* 检查通知权限是否拒绝
*/
fun Context.checkNotificationPermissionDenied(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
ActivityCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_DENIED val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val areNotificationsEnabled = notificationManager.areNotificationsEnabled()
areNotificationsEnabled
} else { } else {
return false ActivityCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED
} }
} }
fun Context.requestStoragePermission( fun Context.requestStoragePermission(
launcher: ActivityLauncher, launcher: ActivityLauncher,
jumpAction: (() -> Unit)? = null, jumpAction: (() -> Unit)? = null,
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="-90"
android:endColor="#fd1002"
android:startColor="#fd500e" />
<corners
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF480B" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp" />
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#000000" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="360dp" android:layout_width="360dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_tlr15" android:background="@drawable/bg_ffffff_15"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:background="@color/white" android:background="@color/white"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
...@@ -40,7 +41,7 @@ ...@@ -40,7 +41,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="30dp"
android:layout_marginTop="32dp"> android:layout_marginTop="32dp">
<EditText <EditText
...@@ -58,12 +59,22 @@ ...@@ -58,12 +59,22 @@
android:textSize="18sp" android:textSize="18sp"
tools:ignore="Autofill,HardcodedText,LabelFor,TextFields" /> tools:ignore="Autofill,HardcodedText,LabelFor,TextFields" />
<ImageView <FrameLayout
android:id="@+id/iv_x" android:id="@+id/fl_clear"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end" android:layout_gravity="center_vertical|end"
tools:ignore="ContentDescription" /> android:padding="10dp">
<ImageView
android:id="@+id/iv_x"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_close"
tools:ignore="ContentDescription" />
</FrameLayout>
</FrameLayout> </FrameLayout>
...@@ -72,13 +83,13 @@ ...@@ -72,13 +83,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="26dp" android:layout_marginTop="26dp"
android:layout_marginBottom="20dp"> android:layout_marginBottom="5dp">
<TextView <TextView
android:id="@+id/tv_cancel" android:id="@+id/tv_cancel"
android:layout_width="163dp" android:layout_width="145dp"
android:layout_height="48dp" android:layout_height="48dp"
android:background="@drawable/bg_f1f2f6_10" android:background="@drawable/bg_stroke_8e95a0_10"
android:gravity="center" android:gravity="center"
android:text="@string/cancel" android:text="@string/cancel"
android:textColor="#505050" android:textColor="#505050"
...@@ -87,10 +98,10 @@ ...@@ -87,10 +98,10 @@
<TextView <TextView
android:id="@+id/tv_ok" android:id="@+id/tv_ok"
android:layout_width="163dp" android:layout_width="145dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginStart="14dp" android:layout_marginStart="14dp"
android:background="@drawable/bg_selector_btn" android:background="@drawable/bg_ff5910_10"
android:gravity="center" android:gravity="center"
android:text="@string/ok" android:text="@string/ok"
android:textColor="@color/white" android:textColor="@color/white"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="345dp"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="115dp"
android:background="@drawable/bg_fd500e_fd1002_tl15_tr15">
<LinearLayout
android:layout_width="291dp"
android:layout_height="54dp"
android:layout_gravity="center"
android:background="@mipmap/pdf_k"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="8dp"
android:layout_marginBottom="3dp"
app:cardCornerRadius="7.5dp"
app:cardElevation="0dp">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@mipmap/logo"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="3dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/unfinished_documents_to_read"
android:textColor="@color/black"
android:textSize="10sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/click_to_view_details"
android:textColor="#999999"
android:textSize="10sp"
tools:ignore="SmallSp" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_bl15_br15">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="UselessParent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="28dp"
android:text="@string/please_grant_notification_permissions"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="18dp"
android:text="@string/notification_enable_tips"
android:textColor="#666666"
android:textSize="13sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_ok"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="20dp"
android:background="@drawable/bg_ff480b_10"
android:gravity="center"
android:text="@string/enable_notifications"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_no"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:background="@drawable/bg_stroke_a0a0a0_10"
android:gravity="center"
android:text="@string/not_open"
android:textSize="18sp" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:id="@+id/fl_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:padding="8dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/pdf_x"
tools:ignore="ContentDescription" />
</FrameLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
tools:context=".ui.main.RecentFragment"> tools:context=".ui.main.RecentFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_permission"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#F3F4F6"
android:visibility="gone"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:src="@mipmap/icon_documents"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:text="@string/authorization_required_to_read_all_files"
android:textColor="@color/black"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="@id/iv_file"
app:layout_constraintEnd_toStartOf="@id/tv_file_go"
app:layout_constraintStart_toEndOf="@id/iv_file"
app:layout_constraintTop_toTopOf="@id/iv_file" />
<TextView
android:id="@+id/tv_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:background="@drawable/bg_ff5910_2_5"
android:gravity="center"
android:paddingHorizontal="24dp"
android:paddingVertical="8dp"
android:text="@string/go"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/iv_file"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_file" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout" android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/cl_permission">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv" android:id="@+id/rv"
...@@ -27,6 +80,10 @@ ...@@ -27,6 +80,10 @@
android:layout_gravity="center" android:layout_gravity="center"
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<ImageView <ImageView
...@@ -47,4 +104,4 @@ ...@@ -47,4 +104,4 @@
</LinearLayout> </LinearLayout>
</FrameLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file \ No newline at end of file
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<string name="password_error">Password Error</string> <string name="password_error">Password Error</string>
<string name="confirm">Confirm</string> <string name="confirm">Confirm</string>
<string name="merge">Merge</string> <string name="merge">Merge</string>
<string name="authorization_required_to_read_all_files">Authorization required to read all files.</string> <string name="authorization_required_to_read_all_files">Authorization required to\nread all files.</string>
<string name="go_to_set">Go to set</string> <string name="go_to_set">Go to set</string>
<string name="go">Go</string> <string name="go">Go</string>
<string name="you_can_open_files_through_nfile_manager">You can open files through\n\"File Manager\".</string> <string name="you_can_open_files_through_nfile_manager">You can open files through\n\"File Manager\".</string>
...@@ -80,5 +80,12 @@ ...@@ -80,5 +80,12 @@
<string name="select_a_project_merge">Select projects for merge</string> <string name="select_a_project_merge">Select projects for merge</string>
<string name="select_a_project_lock">Select a project to lock</string> <string name="select_a_project_lock">Select a project to lock</string>
<string name="select_a_project_unlock">Select a project to unlock</string> <string name="select_a_project_unlock">Select a project to unlock</string>
<string name="please_grant_notification_permissions">Please grant notification permissions</string>
<string name="notification_enable_tips">Enabling notification permissions will allow you to receive future notification promptly and display unique message banners</string>
<string name="enable_notifications">Enable notifications</string>
<string name="not_open">Not open</string>
<string name="click_to_view_details">Click to view details.</string>
<string name="unfinished_documents_to_read">You still have some unfinished documents to read.</string>
</resources> </resources>
\ No newline at end of file
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