Commit 5fc1cae3 authored by wanglei's avatar wanglei

...需同步到功能...

parent 7fe5f3f1
...@@ -3,11 +3,18 @@ package com.base.superpdfreader.activity ...@@ -3,11 +3,18 @@ package com.base.superpdfreader.activity
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.net.Uri
import android.text.SpannableString
import android.text.Spanned
import android.text.style.UnderlineSpan
import android.view.View
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.superpdfreader.MainActivity import com.base.superpdfreader.MainActivity
import com.base.superpdfreader.bean.ConstObject.PrivacyPolicy
import com.base.superpdfreader.databinding.ActivitySplashBinding import com.base.superpdfreader.databinding.ActivitySplashBinding
import com.base.superpdfreader.helps.BaseActivity import com.base.superpdfreader.helps.BaseActivity
import com.base.superpdfreader.utils.BarUtils import com.base.superpdfreader.utils.BarUtils
import com.base.superpdfreader.utils.SPUtils
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
...@@ -21,9 +28,18 @@ import kotlin.random.Random ...@@ -21,9 +28,18 @@ import kotlin.random.Random
@SuppressLint("CustomSplashScreen") @SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity<ActivitySplashBinding>() { class SplashActivity : BaseActivity<ActivitySplashBinding>() {
private lateinit var job: Job private var job: Job? = null
private val progress = MutableSharedFlow<Int>() private val progress = MutableSharedFlow<Int>()
private val progressFlow: SharedFlow<Int> = progress private val progressFlow: SharedFlow<Int> = progress
private var oneClickStart: Boolean = false
var ifAgreePrivacy = false
get() {
return SPUtils.getInstance().getBoolean("ifAgreePrivacy", field)
}
set(value) {
field = value
SPUtils.getInstance().put("ifAgreePrivacy", value, true)
}
override val binding: ActivitySplashBinding by lazy { override val binding: ActivitySplashBinding by lazy {
ActivitySplashBinding.inflate(layoutInflater) ActivitySplashBinding.inflate(layoutInflater)
...@@ -33,6 +49,36 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -33,6 +49,36 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
jumpNext()
if (ifAgreePrivacy) {
startProgress()
binding.llStart.visibility = View.GONE
binding.llProgress.visibility = View.VISIBLE
} else {
binding.llStart.visibility = View.VISIBLE
binding.llProgress.visibility = View.GONE
}
val spannableString = SpannableString("Privacy Policy")
spannableString.setSpan(
UnderlineSpan(),
0,
spannableString.length,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
binding.idTvPrivacyPolicy.text = spannableString
binding.idTvPrivacyPolicy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse(PrivacyPolicy)
)
startActivity(intent)
}
}
private fun jumpNext() {
lifecycleScope.launch { lifecycleScope.launch {
progressFlow.collectLatest { progressFlow.collectLatest {
if (it >= 100) { if (it >= 100) {
...@@ -43,6 +89,20 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -43,6 +89,20 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
} }
} }
override fun initListener() {
binding.idTvStart.setOnClickListener {
if (oneClickStart) {
return@setOnClickListener
}
oneClickStart = true
ifAgreePrivacy = true
binding.llStart.visibility = View.GONE
binding.llProgress.visibility = View.VISIBLE
startProgress()
}
}
fun startProgress() = lifecycleScope.launch { fun startProgress() = lifecycleScope.launch {
while (isActive) { while (isActive) {
delay(Random.nextLong(50, 150)) delay(Random.nextLong(50, 150))
...@@ -54,12 +114,14 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -54,12 +114,14 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
job = startProgress() if (ifAgreePrivacy) {
job = startProgress()
}
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
job.cancel() job?.cancel()
} }
} }
\ No newline at end of file
package com.base.superpdfreader.bean
object ConstObject {
const val PrivacyPolicy = "https://sites.google.com/view/pdfreaderimagetopdf/pdf-reader-image-to-pdf"
}
\ No newline at end of file
This diff is collapsed.
...@@ -17,21 +17,22 @@ ...@@ -17,21 +17,22 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="2" /> android:layout_weight="2" />
<androidx.appcompat.widget.LinearLayoutCompat <LinearLayout
android:id="@+id/id_ll_jindu" android:id="@+id/ll_progress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="49dp" android:layout_marginBottom="49dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical"
android:visibility="gone">
<ProgressBar <ProgressBar
android:layout_marginTop="5dp"
android:id="@+id/pb" android:id="@+id/pb"
style="@style/Widget.AppCompat.ProgressBar.Horizontal" style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="15dp" android:layout_height="15dp"
android:layout_marginHorizontal="32dp" android:layout_marginHorizontal="32dp"
android:layout_marginTop="5dp"
android:max="100" android:max="100"
android:progressDrawable="@drawable/shape_splash_s" android:progressDrawable="@drawable/shape_splash_s"
tools:progress="50" /> tools:progress="50" />
...@@ -56,7 +57,62 @@ ...@@ -56,7 +57,62 @@
android:textSize="15sp" android:textSize="15sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat> </LinearLayout>
<LinearLayout
android:id="@+id/ll_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4dp"
android:text="By continuing you are agreeing to the"
android:textColor="#676767"
android:textSize="14sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" &amp; "
android:visibility="gone"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/id_tv_privacy_policy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Privacy Policy"
android:textColor="#676767"
android:textSize="14sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<TextView
android:id="@+id/id_tv_start"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginHorizontal="40dp"
android:layout_marginBottom="49dp"
android:background="@color/color_pdf"
android:gravity="center"
android:text="START TO USE"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:visibility="visible"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
\ 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