Commit 3fe5963d authored by wanglei's avatar wanglei

[新增]首页app退出弹窗

parent f933117c
......@@ -278,4 +278,6 @@ class MyApplication : Application() {
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ package com.base.appzxhy.bean.config
class PopupConfigBean(
var popupForegroundCanPush: Boolean = true,//前台是否可以推送
var popupForegroundCanPush: Boolean = false,//前台是否可以推送
var popupStatus: Boolean = true,//推送总开关
var popupCount: Int = 500,//推送总次数
var isDifferNotificationId: Boolean = true,//推送使用不同的通知ID
......
package com.base.appzxhy.ui.dialog
import android.animation.ValueAnimator
import android.app.Activity
import android.view.LayoutInflater
import android.view.animation.LinearInterpolator
import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout
import com.base.appzxhy.R
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.DialogAppExitBinding
class AppExitDialog(val activity: Activity) {
val dialog = AlertDialog.Builder(activity).create()
val binding = DialogAppExitBinding.inflate(LayoutInflater.from(activity))
var action: (() -> Unit)? = null
fun showDialog() {
dialog.setView(binding.root)
dialog.setCancelable(false)
dialog.setCanceledOnTouchOutside(true)
dialog.show()
val params = dialog.window?.attributes
// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295)
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
// params?.gravity = Gravity.BOTTOM
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
val exit = activity.getString(R.string.exit)
ValueAnimator.ofInt(0, 3).apply {
duration = 3000
interpolator = LinearInterpolator()
addUpdateListener { animation ->
val value = animation.animatedValue as Int
binding.tvExit.text = if (value < 3) "$exit (${3 - value})" else exit
binding.tvExit.isEnabled = value == 3
}
}.start()
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom)
binding.ivCancel.setOnClickListener {
dialog.dismiss()
}
binding.tvExit.setOnClickListener {
activity.finish()
}
binding.tvCleanNow.setOnClickListener {
dialog.dismiss()
action?.invoke()
}
}
}
\ No newline at end of file
......@@ -13,11 +13,14 @@ import androidx.viewpager2.widget.ViewPager2
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.mainPageCount
import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.bean.FeatureBean.Companion.JUNK_CLEAN
import com.base.appzxhy.bean.HomeTabUIBean
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.ActivityMainBinding
import com.base.appzxhy.databinding.ItemHomeTabBinding
import com.base.appzxhy.ui.dialog.AppExitDialog
import com.base.appzxhy.ui.dialog.StoragePermissionDialog
import com.base.appzxhy.ui.dialog.permissionStorageJump
import com.base.appzxhy.ui.recyclebin.RecycleBinFragment
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import com.google.android.material.tabs.TabLayout
......@@ -143,4 +146,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
viewModel.refreshRecycleBin()
}
override fun handleBackCallBack() {
val dialog = AppExitDialog(this)
dialog.action = {
permissionStorageJump(JUNK_CLEAN)
}
dialog.showDialog()
}
}
\ No newline at end of file
......@@ -14,11 +14,13 @@ import androidx.core.net.toUri
import androidx.core.view.updatePadding
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.fcmToken
import com.base.appzxhy.bean.config.ConfigBean
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.ui.dialog.RateDialog
import com.base.appzxhy.utils.ClipboardUtils.copyText
import com.base.appzxhy.utils.MyAnimationUtils
import com.base.appzxhy.utils.ToastUtils.toast
import com.google.gson.Gson
class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsBinding::inflate) {
......@@ -48,6 +50,13 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB
requireContext().copyText("token", fcmToken)
requireContext().toast("copy token")
}
binding.tvSettings.setOnClickListener {
val configBean = ConfigBean()
val json = Gson().toJson(configBean)
requireContext().copyText("json", json)
requireContext().toast("copy json")
}
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/dp_330"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/img_bj_pop"
android:paddingBottom="32dp"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_logo"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginTop="30dp"
android:src="@mipmap/logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_cancel"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:src="@drawable/icon_close_pop"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:text="@string/please_wait_a_moment"
android:textAlignment="center"
android:textColor="@color/color_1a1a1a"
android:textSize="22sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_logo" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:text="@string/logout_content"
android:textAlignment="center"
android:textColor="@color/color_666666"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_exit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="4dp"
android:background="@drawable/bg_enable_no_50"
android:paddingVertical="10dp"
android:text="@string/exit"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/tvCleanNow"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_content" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvCleanNow"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_btn_50"
android:paddingVertical="10dp"
android:text="@string/clean_now"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1.3"
app:layout_constraintStart_toEndOf="@id/tv_exit"
app:layout_constraintTop_toBottomOf="@id/tv_content" />
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:background="@drawable/white_background_24"
android:padding="10dp"
app:layout_constraintTop_toBottomOf="@id/cl_top">
<com.base.appzxhy.business.ads.NativeParentView
android:id="@+id/flAd"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/zhanwei1" />
</com.base.appzxhy.business.ads.NativeParentView>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -38,4 +38,6 @@
<dimen name="dp_6">6dp</dimen>
<dimen name="dp_345">345dp</dimen>
<dimen name="sp_15">15sp</dimen>
<dimen name="dp_280">280dp</dimen>
<dimen name="dp_295">295dp</dimen>
</resources>
\ No newline at end of file
......@@ -143,4 +143,8 @@ Please rest assured that we will handle your information in strict accordance wi
<string name="exit_screenshot_cleaner_content">Exit Screenshot Clean? Undeleted screenshots might be using space.</string>
<string name="exit_similar_photos">Exit Similar Photos</string>
<string name="exit_similar_photos_content">Exit Similar Photos? Unmoved similar photos might be occupying space.</string>
<string name="logout_content">Are you sure you want to quit without trying to clean up the garbage again?</string>
<string name="please_wait_a_moment">Please wait a moment</string>
<string name="exit">Exit</string>
</resources>
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