Commit acd48584 authored by wanglei's avatar wanglei

...

parent 716334ac
...@@ -96,6 +96,7 @@ dependencies { ...@@ -96,6 +96,7 @@ dependencies {
//第三方UI控件 //第三方UI控件
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4") implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("io.supercharge:shimmerlayout:2.1.0")
//机器学习二维码扫描 //机器学习二维码扫描
......
...@@ -4,6 +4,8 @@ import android.content.Intent ...@@ -4,6 +4,8 @@ import android.content.Intent
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.base.scanqr.R import com.base.scanqr.R
import com.base.scanqr.ads.AdsMgr
import com.base.scanqr.ads.AdsShowCallBack
import com.base.scanqr.base.BaseFragment import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.FunctionUIBean import com.base.scanqr.bean.FunctionUIBean
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL
...@@ -42,10 +44,28 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding ...@@ -42,10 +44,28 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
// FunctionUIBean(KEY_MESSAGE, R.mipmap.h_message, resources.getString(R.string.message)), // FunctionUIBean(KEY_MESSAGE, R.mipmap.h_message, resources.getString(R.string.message)),
) )
) )
adapter?.itemClick = ::itemClick adapter?.itemClick = { key ->
val activity = requireActivity() as MainActivity?
activity?.let {
AdsMgr.showInsert(it, false, object : AdsShowCallBack() {
override fun close(where: Int) {
itemKeyClick(key)
} }
private fun itemClick(key: String) { override fun failed(where: Int) {
itemKeyClick(key)
}
override fun googleFailed(where: Int) {
itemKeyClick(key)
}
})
}
}
}
private fun itemKeyClick(key: String) {
when (key) { when (key) {
KEY_WIFI -> { KEY_WIFI -> {
startActivity(Intent(requireContext(), WifiActivity::class.java)) startActivity(Intent(requireContext(), WifiActivity::class.java))
......
...@@ -14,6 +14,7 @@ import com.base.scanqr.bean.HomeTabUIBean ...@@ -14,6 +14,7 @@ import com.base.scanqr.bean.HomeTabUIBean
import com.base.scanqr.databinding.ActivityMainBinding import com.base.scanqr.databinding.ActivityMainBinding
import com.base.scanqr.databinding.ItemHomeTabBinding import com.base.scanqr.databinding.ItemHomeTabBinding
import com.base.scanqr.qr.CameraUtils import com.base.scanqr.qr.CameraUtils
import com.base.scanqr.ui.widget.AppExitDialog.showAppExitDialog
import com.base.scanqr.ui.widget.NotificationDialog.showNotificationTurnOn import com.base.scanqr.ui.widget.NotificationDialog.showNotificationTurnOn
import com.base.scanqr.utils.LogEx import com.base.scanqr.utils.LogEx
import com.base.scanqr.utils.PermissionUtils.areNotificationsEnabled import com.base.scanqr.utils.PermissionUtils.areNotificationsEnabled
...@@ -78,7 +79,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl ...@@ -78,7 +79,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback { } onBackPressedDispatcher.addCallback {
showAppExitDialog()
}
} }
private fun initTab() { private fun initTab() {
......
package com.base.scanqr.ui.widget
import android.app.Activity
import android.app.AlertDialog
import android.view.Gravity
import android.view.LayoutInflater
import com.base.scanqr.R
import com.base.scanqr.ads.AdsMgr
import com.base.scanqr.databinding.DialogAppExitBinding
object AppExitDialog {
fun Activity.showAppExitDialog() {
val dialog = AlertDialog.Builder(this).create()
val binding = DialogAppExitBinding.inflate(LayoutInflater.from(this))
dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(false)
dialog.show()
val params = dialog.window?.attributes
// params?.width = resources.getDimensionPixelOffset(R.dimen.dp_320)
// params?.height = resources.getDimensionPixelOffset(R.dimen.dp_400)
params?.gravity = Gravity.CENTER
// params?.y = 50
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
binding.tvYes.setOnClickListener {
dialog.dismiss()
finish()
}
binding.tvNo.setOnClickListener {
dialog.dismiss()
}
}
}
\ 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="#ECF6FF" />
<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">
<solid android:color="#F3A10F"/>
<corners android:radius="5dp"/>
</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:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_10"
android:orientation="vertical"
android:padding="15dp">
<com.base.scanqr.ads.NativeParentView
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ecf6ff_10"
android:minHeight="258dp"
android:paddingTop="20dp"
android:paddingBottom="20dp">
<io.supercharge.shimmerlayout.ShimmerLayout
android:id="@+id/shimmerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="16dp"
app:shimmer_angle="25"
app:shimmer_animation_duration="2000"
app:shimmer_auto_start="true"
app:shimmer_color="#33ffffff"
app:shimmer_mask_width="0.2">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/zhanweitu"
tools:ignore="ContentDescription,ImageContrastCheck" />
</io.supercharge.shimmerlayout.ShimmerLayout>
</com.base.scanqr.ads.NativeParentView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="12dp"
android:text="@string/do_you_want_to_leave_app"
android:textColor="@color/black"
android:textStyle="bold" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="18dp"
android:layout_marginBottom="5dp">
<TextView
android:id="@+id/tv_yes"
android:layout_width="142dp"
android:layout_height="44dp"
android:layout_gravity="center_vertical"
android:background="@drawable/bg_f8f8fa_90"
android:gravity="center"
android:text="@string/yes"
android:textColor="#333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_no"
android:layout_width="142dp"
android:layout_height="44dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@drawable/bg_6473f8_90"
android:gravity="center"
android:text="@string/no"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
android:singleLine="true" android:singleLine="true"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="19sp" android:textSize="19sp"
tools:ignore="TextFields" /> tools:ignore="LabelFor,TextFields" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
<com.google.android.gms.ads.nativead.NativeAdView 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="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:baselineAligned="false"
android:orientation="vertical">
<com.google.android.gms.ads.nativead.MediaView
android:id="@+id/ad_media"
android:layout_width="match_parent"
android:layout_height="153dp"
android:layout_gravity="center_vertical" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="16dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/ad_app_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
tools:ignore="ContentDescription" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="5dp"
android:layout_weight="1">
<TextView
android:id="@+id/tv_ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="#FDBA55"
android:paddingHorizontal="3dp"
android:paddingVertical="2dp"
android:text="Ad"
android:textColor="@color/white"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/ad_body"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText,TextContrastCheck,TextContrastCheck" />
<TextView
android:id="@+id/ad_headline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="2dp"
android:ellipsize="end"
android:maxLines="2"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/tv_ad"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_ad"
app:layout_constraintTop_toTopOf="@id/tv_ad"
tools:text="headline" />
<TextView
android:id="@+id/ad_body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_ad"
tools:text="body" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/ad_call_to_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="12dp"
android:background="@drawable/bg_f3a10f_10"
android:gravity="center"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="15sp"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintButtonSize"
tools:text="Install" />
</LinearLayout>
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
\ No newline at end of file
...@@ -67,5 +67,8 @@ ...@@ -67,5 +67,8 @@
<string name="turn_on_notification">Turn on notification</string> <string name="turn_on_notification">Turn on notification</string>
<string name="turn_on">Turn on</string> <string name="turn_on">Turn on</string>
<string name="preparing_advertisement">Preparing advertisement</string> <string name="preparing_advertisement">Preparing advertisement</string>
<string name="do_you_want_to_leave_app">Do you want to leave app?</string>
<string name="yes">Yes</string>
<string name="no">No</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