Commit 29208313 authored by wanglei's avatar wanglei

...

parent 8794ffd4
package com.base.appzxhy.ui.dialog package com.base.appzxhy.ui.dialog
import android.app.Activity import android.app.Activity
import android.app.AlertDialog
import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import com.base.appzxhy.R import com.base.appzxhy.R
import com.base.appzxhy.databinding.DialogNotificationBinding import com.base.appzxhy.databinding.DialogNotificationBinding
import com.google.android.material.bottomsheet.BottomSheetDialog
class NotificationTurnOnDialog( class NotificationTurnOnDialog(
...@@ -15,12 +15,15 @@ class NotificationTurnOnDialog( ...@@ -15,12 +15,15 @@ class NotificationTurnOnDialog(
) { ) {
val dialog = AlertDialog.Builder(activity).create() val dialog = AlertDialog.Builder(activity).create()
// val dialog = BottomSheetDialog(activity, R.style.BottomSheetDialog)
val binding = DialogNotificationBinding.inflate(LayoutInflater.from(activity)) val binding = DialogNotificationBinding.inflate(LayoutInflater.from(activity))
var action: (() -> Unit)? = null var action: (() -> Unit)? = null
fun showDialog() { fun showDialog() {
dialog.setView(binding.root) dialog.setView(binding.root)
// dialog.setContentView(binding.root)
dialog.setCancelable(true) dialog.setCancelable(true)
dialog.setCanceledOnTouchOutside(true) dialog.setCanceledOnTouchOutside(true)
...@@ -28,10 +31,10 @@ class NotificationTurnOnDialog( ...@@ -28,10 +31,10 @@ class NotificationTurnOnDialog(
val params = dialog.window?.attributes val params = dialog.window?.attributes
// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295) // params?.width = activity.resources.getDimensionPixelSize(R.dimen.dp_295)
params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT params?.height = ConstraintLayout.LayoutParams.WRAP_CONTENT
// params?.gravity = Gravity.BOTTOM params?.gravity = Gravity.BOTTOM
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
......
...@@ -21,7 +21,7 @@ class RateDialog( ...@@ -21,7 +21,7 @@ class RateDialog(
fun showDialog(isMust: Boolean) { fun showDialog(isMust: Boolean) {
if (!isMust) { if (!isMust) {
if (isScoreRated && scoreRate == 5) if (isScoreRated || scoreRate == 5)
return return
} }
dialog.setView(binding.root) dialog.setView(binding.root)
...@@ -37,9 +37,9 @@ class RateDialog( ...@@ -37,9 +37,9 @@ class RateDialog(
dialog.show() dialog.show()
val appName = activity.getString(R.string.app_name) // val appName = activity.getString(R.string.app_name)
val thankTip = activity.getString(R.string.thank_you_for_using_app, appName) // val thankTip = activity.getString(R.string.thank_you_for_using_app, appName)
binding.tvThank.text = thankTip // binding.tvThank.text = thankTip
binding.ivClose.setOnClickListener { binding.ivClose.setOnClickListener {
dialog.dismiss() dialog.dismiss()
} }
...@@ -62,9 +62,7 @@ class RateDialog( ...@@ -62,9 +62,7 @@ class RateDialog(
} }
} }
binding.tvSubmit.setOnClickListener { binding.tvSubmit.setOnClickListener {
if (score == 5) { scoreRate = score
scoreRate = score
}
try { try {
val url = "https://play.google.com/store/apps/details?id=${activity.packageName}" val url = "https://play.google.com/store/apps/details?id=${activity.packageName}"
activity.startActivity(Intent(Intent.ACTION_VIEW, url.toUri())) activity.startActivity(Intent(Intent.ACTION_VIEW, url.toUri()))
......
package com.base.appzxhy.ui.main package com.base.appzxhy.ui.main
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.base.appzxhy.R
import com.base.appzxhy.SpConstObject.mainPageCount
import com.base.appzxhy.base.BaseActivity import com.base.appzxhy.base.BaseActivity
import com.base.appzxhy.bean.config.AdConfigBean
import com.base.appzxhy.business.ads.AdsMgr import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.databinding.ActivityMainBinding import com.base.appzxhy.databinding.ActivityMainBinding
import com.base.appzxhy.ui.dialog.NotificationTurnOnDialog
import com.base.appzxhy.ui.dialog.RateDialog
import com.base.appzxhy.ui.dialog.StoragePermissionDialog
import com.base.appzxhy.utils.PermissionUtils.requestNotificationPermission
import com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::inflate) { class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::inflate) {
val viewModel by lazy { ViewModelProvider(this)[MainViewModel::class.java] }
override fun useDefaultImmersive() { override fun useDefaultImmersive() {
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
...@@ -18,13 +33,64 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl ...@@ -18,13 +33,64 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
} }
private fun initDialogFlow() {
lifecycleScope.launch {
viewModel.dialogFlow.collectLatest { dialogType ->
when (dialogType) {
"StoreDialog" -> {
val dialog = StoragePermissionDialog(this@MainActivity)
dialog.action = {
requestStoragePermission(launcher) {
viewModel.nextShowDialog = false
}
}
dialog.showDialog()
}
"NotificationDialog" -> {
val dialog = NotificationTurnOnDialog(this@MainActivity)
dialog.action = {
requestNotificationPermission(launcher) {
viewModel.nextShowDialog = false
}
}
dialog.showDialog()
}
"RateDialog" -> {
val dialog = RateDialog(this@MainActivity)
dialog.showDialog(false)
}
}
}
}
}
override fun initView() { override fun initView() {
super.initView() super.initView()
initDialogFlow()
AdsMgr.showBanner(binding.flBanner, false) AdsMgr.showBanner(binding.flBanner, false)
val lp = binding.fragment.layoutParams as ConstraintLayout.LayoutParams
if (!AdConfigBean.adsConfigBean.isAdShow) {
lp.setMargins(0, 0, 0, 0)
} else {
lp.setMargins(0, 0, 0, resources.getDimensionPixelSize(R.dimen.dp_60))
}
binding.fragment.layoutParams = lp
} }
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
} }
override fun onResumeOneShoot() {
super.onResumeOneShoot()
mainPageCount = mainPageCount + 1
viewModel.checkDialog(this)
}
} }
\ No newline at end of file
...@@ -5,16 +5,19 @@ ...@@ -5,16 +5,19 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<fragment <FrameLayout
android:id="@+id/fragment" android:id="@+id/fragment"
android:name="com.base.appzxhy.ui.main.HomeFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginBottom="@dimen/dp_60" android:layout_marginBottom="@dimen/dp_60"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
</fragment> <fragment
android:name="com.base.appzxhy.ui.main.HomeFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/flBanner" android:id="@+id/flBanner"
......
...@@ -3,62 +3,63 @@ ...@@ -3,62 +3,63 @@
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="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/tancuang">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="136dp"
android:layout_marginEnd="24dp"
android:src="@drawable/icon_close_pop_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView <LinearLayout
android:id="@+id/tv_title"
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_marginTop="@dimen/dp_26"
android:layout_marginTop="246dp" android:background="@drawable/bg_ffffff_tlr24"
android:text="@string/notification_title" android:gravity="center_horizontal"
android:textAlignment="center" android:orientation="vertical"
android:textColor="@color/color_1a1a1a" app:layout_constraintBottom_toBottomOf="parent"
android:textSize="22sp" app:layout_constraintTop_toTopOf="parent">
android:textStyle="bold"
app:layout_constraintTop_toTopOf="parent" />
<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="8dp"
android:text="@string/notification_content"
android:textAlignment="center"
android:textColor="@color/color_666666"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<androidx.appcompat.widget.AppCompatTextView <TextView
android:id="@+id/tvTurnOn" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_40"
android:layout_marginHorizontal="60dp" android:text="@string/don_t_miss_important_tips"
android:layout_marginTop="20dp" android:textColor="#1A1A1A"
android:layout_marginBottom="44dp" android:textSize="@dimen/sp_24"
android:background="@drawable/bg_splash_button" android:textStyle="bold" />
android:gravity="center"
android:paddingTop="10dp" <TextView
android:paddingBottom="10dp" android:layout_width="wrap_content"
android:text="@string/turn_on" android:layout_height="wrap_content"
android:textColor="@color/white" android:layout_marginHorizontal="@dimen/dp_40"
android:textSize="20sp" android:layout_marginTop="@dimen/dp_6"
app:layout_constraintBottom_toBottomOf="parent" android:gravity="center"
app:layout_constraintTop_toBottomOf="@id/tv_content" android:text="@string/notification_tips"
app:layout_constraintVertical_bias="0.0" android:textColor="#A0A0A0" />
tools:layout_editor_absoluteX="60dp" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvTurnOn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="60dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="@dimen/dp_30"
android:background="@drawable/bg_splash_button"
android:gravity="center"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/turn_on"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.0"
tools:layout_editor_absoluteX="60dp" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_wenhao"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_320"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/transparent"> android:background="@color/transparent">
<FrameLayout <androidx.cardview.widget.CardView
android:layout_width="@dimen/dp_320" android:layout_width="@dimen/dp_320"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_45" android:layout_marginTop="@dimen/dp_24"
android:background="@drawable/bg_ffffff_8" app:cardBackgroundColor="@color/transparent"
app:cardCornerRadius="@dimen/dp_24"
app:cardElevation="0dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivClose"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:layout_gravity="end|top"
android:layout_margin="@dimen/dp_10"
app:srcCompat="@drawable/icon_close" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_60" android:background="@color/white"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_50"
android:background="#2DD29E">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivClose"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_gravity="end|center_vertical"
android:layout_margin="@dimen/dp_12"
app:srcCompat="@drawable/icon_close" />
</FrameLayout>
<TextView <TextView
android:id="@+id/tvThank" android:id="@+id/tvThank"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_40" android:layout_marginHorizontal="@dimen/dp_40"
android:text="@string/thank_you_for_using_app" android:layout_marginTop="@dimen/dp_16"
android:text="@string/let_us_know_how_we_re_doing"
android:textColor="#1A1A1A" android:textColor="#1A1A1A"
android:textSize="@dimen/sp_18" /> android:textSize="@dimen/sp_16" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -46,54 +56,55 @@ ...@@ -46,54 +56,55 @@
android:layout_marginHorizontal="@dimen/dp_20" android:layout_marginHorizontal="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:gravity="center" android:gravity="center"
android:text="@string/thank_you_very_much_for_taking_the_time_to_rate_us" /> android:text="@string/w_e_are_ahways_irying_to_improve_what_wedo_and_your_feedbackk_is_invaluable" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="@dimen/dp_15" android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
android:gravity="center_vertical" android:gravity="center"
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/star1" android:id="@+id/star1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_5"
app:srcCompat="@drawable/icon_star_s" /> app:srcCompat="@drawable/img_star_pressed" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/star2" android:id="@+id/star2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_5"
app:srcCompat="@drawable/icon_star_s" /> app:srcCompat="@drawable/img_star_pressed" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/star3" android:id="@+id/star3"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_5"
app:srcCompat="@drawable/icon_star_s" /> app:srcCompat="@drawable/img_star_pressed" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/star4" android:id="@+id/star4"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_5"
app:srcCompat="@drawable/icon_star_s" /> app:srcCompat="@drawable/img_star_pressed" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/star5" android:id="@+id/star5"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_5"
app:srcCompat="@drawable/icon_star_s" /> app:srcCompat="@drawable/img_star_normal" />
</LinearLayout> </LinearLayout>
...@@ -113,7 +124,7 @@ ...@@ -113,7 +124,7 @@
</LinearLayout> </LinearLayout>
</FrameLayout> </androidx.cardview.widget.CardView>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -121,7 +132,7 @@ ...@@ -121,7 +132,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img_pingjia" /> app:srcCompat="@drawable/img_emoji" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -52,4 +52,5 @@ ...@@ -52,4 +52,5 @@
<dimen name="dp_88">88dp</dimen> <dimen name="dp_88">88dp</dimen>
<dimen name="dp_550">550dp</dimen> <dimen name="dp_550">550dp</dimen>
<dimen name="dp_500">500dp</dimen> <dimen name="dp_500">500dp</dimen>
<dimen name="sp_24">24sp</dimen>
</resources> </resources>
\ No newline at end of file
...@@ -179,5 +179,9 @@ Please rest assured that we will handle your information in strict accordance wi ...@@ -179,5 +179,9 @@ Please rest assured that we will handle your information in strict accordance wi
<string name="powered_by_trustlook">Powered by Trustlook</string> <string name="powered_by_trustlook">Powered by Trustlook</string>
<string name="malware_recommended">It is recommended to turn on the network connection for more accurate results</string> <string name="malware_recommended">It is recommended to turn on the network connection for more accurate results</string>
<string name="notification_tips">Enable notifications to receive suggestions that matter.</string>
<string name="don_t_miss_important_tips">Don\'t miss important tips</string>
<string name="let_us_know_how_we_re_doing">Let us know how we\'re doing!</string>
<string name="w_e_are_ahways_irying_to_improve_what_wedo_and_your_feedbackk_is_invaluable">W\'e are ahways irying to improve what wedo and your feedbackk is invaluable!</string>
</resources> </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