Commit 919e1d5f authored by wanglei's avatar wanglei

...

parent fbe46de2
package com.base.scanqr.ui.widget
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.view.Gravity
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.base.scanqr.R
import com.base.scanqr.databinding.DialogRateStarBinding
import com.base.scanqr.utils.AppPreferences
object RateDialog {
fun Context.showRateDialog(mustShow: Boolean = false) {
if (!mustShow) {
if (AppPreferences.getInstance().getBoolean("isRated", false)) {
return
}
}
val dialog = AlertDialog.Builder(this).create()
val binding = DialogRateStarBinding.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_320)
// params?.height = LinearLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.BOTTOM
params?.y = 50
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
listOf(
binding.iv1,
binding.iv2,
binding.iv3,
binding.iv4,
binding.iv5
).forEachIndexed { index, it ->
it.setOnClickListener {
setStar(binding, index)
}
}
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
binding.tvRate.setOnClickListener {
if (star >= 5) {
AppPreferences.getInstance().put("isRated", true)
try {
val uri =
Uri.parse("https://play.google.com/store/apps/details?id=" + this.packageName)
val intent = Intent(Intent.ACTION_VIEW, uri)
this.startActivity(intent)
} catch (_: Exception) {
}
}
dialog.dismiss()
}
dialog.setOnDismissListener {
AppPreferences.getInstance().put("isRated", true)
}
}
private var star = 5
private fun setStar(binding: DialogRateStarBinding, star: Int) {
this.star = star + 1
// if (this.star < 3) {
// binding.ivFace.setImageResource(R.mipmap.pingfeniconk)
// } else {
// binding.ivFace.setImageResource(R.mipmap.pingfenicon)
// }
listOf(
binding.iv1,
binding.iv2,
binding.iv3,
binding.iv4,
binding.iv5
).forEachIndexed { index, it ->
it.setImageResource(
if (index <= star) {
R.mipmap.xing_s
} else {
R.mipmap.xing_n
}
)
}
}
}
\ No newline at end of file
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_ffffff_10">
<ImageView
android:id="@+id/ivClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="18dp"
android:src="@mipmap/icon_close"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="34dp"
android:text="@string/enjoy_qrcode"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/your_opinion_matters_to_us"
android:textColor="#666666" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:src="@mipmap/pinjiatu"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/ll_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">
<ImageView
android:id="@+id/iv_1"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_margin="10dp"
android:src="@mipmap/xing_s"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_2"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_margin="10dp"
android:src="@mipmap/xing_s"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_3"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_margin="10dp"
android:src="@mipmap/xing_s"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_4"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_margin="10dp"
android:src="@mipmap/xing_s"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_5"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_margin="10dp"
android:src="@mipmap/xing_s"
tools:ignore="ContentDescription" />
</LinearLayout>
<TextView
android:layout_width="303dp"
android:layout_height="45dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:background="@drawable/bg_6473f8_90"
android:gravity="center"
android:text="@string/rate_now"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -76,5 +76,8 @@ ...@@ -76,5 +76,8 @@
<string name="what_products">What products are you\nlooking for today?</string> <string name="what_products">What products are you\nlooking for today?</string>
<string name="find_now">Find Now</string> <string name="find_now">Find Now</string>
<string name="create_now">Create Now</string> <string name="create_now">Create Now</string>
<string name="enjoy_qrcode">Enjoy QRcode?</string>
<string name="your_opinion_matters_to_us">Your opinion matters to us</string>
<string name="rate_now">Rate now</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