Commit c69bfcc5 authored by wanglei's avatar wanglei

...ui

parent 315dca6b
...@@ -9,7 +9,9 @@ import androidx.core.view.WindowInsetsCompat ...@@ -9,7 +9,9 @@ import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.datarecovery.databinding.ActivityMainBinding import com.base.datarecovery.databinding.ActivityMainBinding
import com.base.datarecovery.help.BaseActivity import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.view.PermissionDialog.showPermissionBottomSheet
import com.base.datarecovery.view.RateStarPop.showRateStarPopDialog import com.base.datarecovery.view.RateStarPop.showRateStarPopDialog
class MainActivity : BaseActivity<ActivityMainBinding>() { class MainActivity : BaseActivity<ActivityMainBinding>() {
...@@ -24,7 +26,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -24,7 +26,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
showRateStarPopDialog() // showRateStarPopDialog()
} }
override fun onResume() {
super.onResume()
if (!checkStorePermission()) {
if (dialog == null) {
dialog = showPermissionBottomSheet(launcher)
}
}
}
} }
\ No newline at end of file
...@@ -30,7 +30,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -30,7 +30,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
protected open fun initListener() {} protected open fun initListener() {}
fun finishToMain() { fun finishToMain() {
if (this !is MainActivity && !ActivityManagerUtils.getInstance().isActivityInStack(MainActivity::class.java)) { if (this !is MainActivity && !ActivityManagerUtils.getInstance().isActivityInStack(MainActivity::class.java)) {
startActivity(Intent(this, MainActivity::class.java)) startActivity(Intent(this, MainActivity::class.java))
} }
...@@ -43,6 +43,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -43,6 +43,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
ActivityManagerUtils.getInstance().removeActivity(this) ActivityManagerUtils.getInstance().removeActivity(this)
if (dialog != null) { if (dialog != null) {
dialog?.dismiss() dialog?.dismiss()
dialog = null
} }
} }
......
package com.base.datarecovery.view
import android.view.MotionEvent
import android.view.View
import androidx.coordinatorlayout.widget.CoordinatorLayout
import com.google.android.material.bottomsheet.BottomSheetBehavior
class CustomBottomSheetBehavior<V : View> : BottomSheetBehavior<V>() {
override fun onInterceptTouchEvent(parent: CoordinatorLayout, child: V, event: MotionEvent): Boolean {
// 根据需要拦截触摸事件,这里我们选择不拦截,即不允许拖动
return false
}
override fun onTouchEvent(parent: CoordinatorLayout, child: V, event: MotionEvent): Boolean {
// 这里我们返回super.onTouchEvent(parent, child, event)来处理触摸事件
return super.onTouchEvent(parent, child, event)
}
override fun onStartNestedScroll(
coordinatorLayout: CoordinatorLayout,
child: V,
directTargetChild: View,
target: View,
axes: Int,
type: Int
): Boolean {
// 这里我们选择不开始嵌套滚动
return false
}
}
\ No newline at end of file
package com.base.datarecovery.view
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import com.base.datarecovery.databinding.DialogPermissionBottomsheetBinding
import com.base.datarecovery.help.ActivityLauncher
import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
object PermissionDialog {
fun Context.showPermissionBottomSheet(launcher: ActivityLauncher): BottomSheetDialog {
val dialog = BottomSheetDialog(this)
val binding = DialogPermissionBottomsheetBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root)
dialog.setCanceledOnTouchOutside(false)
dialog.setCancelable(false)
dialog.show()
val parentView = binding.root.parent as View
BottomSheetBehavior.from(parentView).state = BottomSheetBehavior.STATE_EXPANDED
binding.tvOpen.setOnClickListener {
requestStorePermission(launcher, result = {
if (it) {
dialog.dismiss()
}
})
}
return dialog
}
}
\ 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="#577DFD" />
<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:topLeftRadius="20dp"
android:topRightRadius="20dp" />
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_tlr20"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="25dp"
android:text="Need to obtain storage permissions"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="18dp"
android:text="To ensure proper functionality, please allow File Recovery to access all files on your device."
android:textColor="#666666"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:src="@mipmap/quanxian"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_open"
android:layout_width="315dp"
android:layout_height="45dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:layout_marginBottom="25dp"
android:background="@drawable/bg_577dfd_10"
android:gravity="center"
android:text="Open Settings"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
\ 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