Commit b3d0d4a3 authored by wanglei's avatar wanglei

...

parent db4bd29d
...@@ -101,6 +101,7 @@ dependencies { ...@@ -101,6 +101,7 @@ dependencies {
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4") implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("io.supercharge:shimmerlayout:2.1.0") implementation("io.supercharge:shimmerlayout:2.1.0")
implementation("com.github.Kunzisoft:Android-SwitchDateTimePicker:2.1") implementation("com.github.Kunzisoft:Android-SwitchDateTimePicker:2.1")
implementation("com.github.zhpanvip:viewpagerindicator:1.2.3")
//机器学习二维码扫描 //机器学习二维码扫描
......
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.ScanQR" android:theme="@style/Theme.ScanQR"
tools:targetApi="31"> tools:targetApi="31">
<activity
android:name=".ui.guide.GuideActivity"
android:exported="false" />
<activity <activity
android:name=".ui.location.LocationCodeActivity" android:name=".ui.location.LocationCodeActivity"
android:exported="false" /> 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 ...@@ -11,7 +11,7 @@ import com.base.scanqr.bean.ConstObject.appLanguageCountrySp
import com.base.scanqr.bean.ConstObject.appLanguageSp import com.base.scanqr.bean.ConstObject.appLanguageSp
import com.base.scanqr.bean.LanguageBean import com.base.scanqr.bean.LanguageBean
import com.base.scanqr.databinding.ActivityLanguageBinding 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.BarUtils
import com.base.scanqr.utils.LogEx import com.base.scanqr.utils.LogEx
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
...@@ -52,7 +52,8 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB ...@@ -52,7 +52,8 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
if (isGuide) { if (isGuide) {
finishToMainTop() startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish()
} else { } else {
finish() finish()
} }
...@@ -68,22 +69,24 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB ...@@ -68,22 +69,24 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
appLanguageCountrySp = selectLanguageBean.country appLanguageCountrySp = selectLanguageBean.country
if (isGuide) { if (isGuide) {
AdsMgr.showInsert(this, false, object : AdsShowCallBack() { // AdsMgr.showInsert(this, false, object : AdsShowCallBack() {
override fun close(where: Int) { // override fun close(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java)) // startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish() // finish()
} // }
//
override fun failed(where: Int) { // override fun failed(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java)) // startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish() // finish()
} // }
//
override fun googleFailed(where: Int) { // override fun googleFailed(where: Int) {
startActivity(Intent(this@LanguageActivity, MainActivity::class.java)) // startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish() // finish()
} // }
}) // })
startActivity(Intent(this@LanguageActivity, GuideActivity::class.java))
finish()
} else { } else {
finish() finish()
} }
......
...@@ -19,12 +19,10 @@ import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_WIFI ...@@ -19,12 +19,10 @@ import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_WIFI
import com.base.scanqr.databinding.ActivityStartBinding import com.base.scanqr.databinding.ActivityStartBinding
import com.base.scanqr.fcm.notification.NotificationHoverUtils import com.base.scanqr.fcm.notification.NotificationHoverUtils
import com.base.scanqr.service.StayJobService.Companion.startJob 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.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.language.LanguageActivity
import com.base.scanqr.ui.main.MainActivity 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.text.TextActivity
import com.base.scanqr.ui.website.WebsiteActivity import com.base.scanqr.ui.website.WebsiteActivity
import com.base.scanqr.ui.wifi.WifiActivity 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 @@ ...@@ -29,4 +29,5 @@
<dimen name="dp_112">112dp</dimen> <dimen name="dp_112">112dp</dimen>
<dimen name="dp_114">114dp</dimen> <dimen name="dp_114">114dp</dimen>
<dimen name="fab_margin">16dp</dimen> <dimen name="fab_margin">16dp</dimen>
<dimen name="dp_5">5dp</dimen>
</resources> </resources>
\ No newline at end of file
...@@ -107,4 +107,14 @@ ...@@ -107,4 +107,14 @@
<string name="enter_telephone_number">Enter telephone number</string> <string name="enter_telephone_number">Enter telephone number</string>
<string name="enter_email">Enter email</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> </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