Commit b3d0d4a3 authored by wanglei's avatar wanglei

...

parent db4bd29d
......@@ -101,6 +101,7 @@ dependencies {
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("io.supercharge:shimmerlayout:2.1.0")
implementation("com.github.Kunzisoft:Android-SwitchDateTimePicker:2.1")
implementation("com.github.zhpanvip:viewpagerindicator:1.2.3")
//机器学习二维码扫描
......
......@@ -35,6 +35,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.ScanQR"
tools:targetApi="31">
<activity
android:name=".ui.guide.GuideActivity"
android:exported="false" />
<activity
android:name=".ui.location.LocationCodeActivity"
android:exported="false" />
......
package com.base.scanqr.ui.guide
import android.graphics.Color
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.scanqr.R
import com.base.scanqr.base.BaseActivity
import com.base.scanqr.databinding.ActivityGuideBinding
import com.gyf.immersionbar.ktx.immersionBar
import com.zhpan.indicator.enums.IndicatorSlideMode.Companion.SMOOTH
import com.zhpan.indicator.enums.IndicatorStyle.Companion.ROUND_RECT
class GuideActivity : BaseActivity<ActivityGuideBinding>(ActivityGuideBinding::inflate) {
private val guide1 by lazy {
GuideFragment(0)
}
private val guide2 by lazy {
GuideFragment(1)
}
private val guide3 by lazy {
GuideFragment(2)
}
private val fragments by lazy {
mutableListOf(guide1, guide2, guide3)
}
private var currentIndex = 0
override fun initView() {
super.initView()
initViewPager2()
initIndicator()
}
private fun initViewPager2() {
binding.viewPager2.run {
adapter = object : FragmentStateAdapter(this@GuideActivity) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
}
binding.viewPager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
currentIndex = position
}
})
}
override fun initListener() {
super.initListener()
}
override fun configSystemBar() {
immersionBar {
statusBarColor("#00FFFFFF")
statusBarDarkFont(true)
}
}
fun nextPage() {
if (currentIndex <= 1) {
currentIndex++
binding.viewPager2.setCurrentItem(currentIndex, true)
}
}
private fun initIndicator() {
binding.indicator.setSliderColor(
Color.parseColor("#DEDEDE"),
Color.parseColor("#6473F8")
)
binding.indicator.setSliderHeight(resources.getDimension(R.dimen.dp_5))
binding.indicator.setSliderWidth(
resources.getDimension(R.dimen.dp_5),
resources.getDimension(R.dimen.dp_15)
)
binding.indicator.setSlideMode(SMOOTH)
binding.indicator.setIndicatorStyle(ROUND_RECT)
binding.indicator.setupWithViewPager(binding.viewPager2)
}
}
\ No newline at end of file
package com.base.scanqr.ui.guide
import android.content.Intent
import com.base.scanqr.R
import com.base.scanqr.ads.AdsMgr
import com.base.scanqr.base.BaseFragment
import com.base.scanqr.databinding.FragmentGuideBinding
import com.base.scanqr.ui.main.MainActivity
class GuideFragment() : BaseFragment<FragmentGuideBinding>(FragmentGuideBinding::inflate) {
private var pageIndex = 0
constructor(pageIndex: Int) : this() {
this.pageIndex = pageIndex
}
override fun initView() {
super.initView()
when (pageIndex) {
0 -> {
binding.iv.setImageResource(R.mipmap.yindaoye1)
binding.tvTitle.text = this.resources.getString(R.string.scan_barcode_qr_code)
binding.tvDesc.text = this.resources.getString(R.string.guide_1)
}
1 -> {
binding.iv.setImageResource(R.mipmap.yindaoye2)
binding.tvTitle.text = getString(R.string.quickly_scan_products)
binding.tvDesc.text = getString(R.string.guide_2)
}
2 -> {
binding.iv.setImageResource(R.mipmap.yindaoye3)
binding.tvTitle.text = getString(R.string.create_share_qr_code)
binding.tvDesc.text = getString(R.string.guide_3)
binding.tvBtn.text = getString(R.string.complete)
}
}
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
}
override fun initListener() {
super.initListener()
binding.tvBtn.setOnClickListener {
if (pageIndex == 2) {
completeAction()
} else {
val activity = requireActivity() as GuideActivity?
activity?.nextPage()
}
}
}
private fun completeAction() {
val activity = requireActivity() as GuideActivity?
activity?.startActivity(Intent(activity, MainActivity::class.java))
activity?.finish()
}
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ import com.base.scanqr.bean.ConstObject.appLanguageCountrySp
import com.base.scanqr.bean.ConstObject.appLanguageSp
import com.base.scanqr.bean.LanguageBean
import com.base.scanqr.databinding.ActivityLanguageBinding
import com.base.scanqr.ui.main.MainActivity
import com.base.scanqr.ui.guide.GuideActivity
import com.base.scanqr.utils.BarUtils
import com.base.scanqr.utils.LogEx
import com.gyf.immersionbar.ktx.immersionBar
......@@ -52,7 +52,8 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
super.initListener()
onBackPressedDispatcher.addCallback {
if (isGuide) {
finishToMainTop()
startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish()
} else {
finish()
}
......@@ -68,22 +69,24 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
appLanguageCountrySp = selectLanguageBean.country
if (isGuide) {
AdsMgr.showInsert(this, false, object : AdsShowCallBack() {
override fun close(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java))
finish()
}
override fun failed(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java))
finish()
}
override fun googleFailed(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java))
finish()
}
})
// AdsMgr.showInsert(this, false, object : AdsShowCallBack() {
// override fun close(where: Int) {
// startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
// finish()
// }
//
// override fun failed(where: Int) {
// startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
// finish()
// }
//
// override fun googleFailed(where: Int) {
// startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
// finish()
// }
// })
startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish()
} else {
finish()
}
......
......@@ -19,12 +19,10 @@ import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_WIFI
import com.base.scanqr.databinding.ActivityStartBinding
import com.base.scanqr.fcm.notification.NotificationHoverUtils
import com.base.scanqr.service.StayJobService.Companion.startJob
import com.base.scanqr.ui.contact.ContractActivity
import com.base.scanqr.ui.email.EmailActivity
import com.base.scanqr.ui.event.EventActivity
import com.base.scanqr.ui.guide.GuideActivity
import com.base.scanqr.ui.language.LanguageActivity
import com.base.scanqr.ui.main.MainActivity
import com.base.scanqr.ui.telephone.TelephoneActivity
import com.base.scanqr.ui.text.TextActivity
import com.base.scanqr.ui.website.WebsiteActivity
import com.base.scanqr.ui.wifi.WifiActivity
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:banner="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.guide.GuideActivity">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="450dp"
tools:ignore="UselessLeaf" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.zhpan.indicator.IndicatorView
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="16dp" />
</FrameLayout>
</LinearLayout>
</FrameLayout>
\ 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="match_parent"
android:orientation="vertical"
tools:context=".ui.guide.GuideFragment">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="450dp"
tools:ignore="UselessParent">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription"
tools:src="@mipmap/yindaoye1" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:orientation="vertical">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="20dp"
android:layout_marginBottom="5dp"
android:gravity="center"
android:text="@string/guide_1"
android:textColor="#666666"
android:textSize="15sp" />
</LinearLayout>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="8dp"
android:orientation="horizontal"
tools:background="#40FFA5A2">
<TextView
android:id="@+id/tvBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="20dp"
android:background="@drawable/bg_6473f8_90"
android:paddingHorizontal="15dp"
android:paddingVertical="8dp"
android:text="@string/continue_"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</FrameLayout>
<com.base.scanqr.ads.NativeParentView
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
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>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
......@@ -29,4 +29,5 @@
<dimen name="dp_112">112dp</dimen>
<dimen name="dp_114">114dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="dp_5">5dp</dimen>
</resources>
\ No newline at end of file
......@@ -107,4 +107,14 @@
<string name="enter_telephone_number">Enter telephone number</string>
<string name="enter_email">Enter email</string>
<string name="quickly_scan_products">Quickly scan products</string>
<string name="create_share_qr_code">Create &amp; Share QR Code</string>
<string name="scan_barcode_qr_code" tools:ignore="MissingTranslation">Scan Barcode &amp; QR Code</string>
<string name="guide_1">Scan barcodes and QR codes into images for storage, support sharing</string>
<string name="guide_2">Scan products to obtain prices and other information</string>
<string name="guide_3">Edit the various information you want to share into QR codes</string>
<string name="continue_">Continue</string>
<string name="complete">Complete</string>
</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