Commit 14379bbf authored by wanglei's avatar wanglei

...

parent 8dbbc1f0
...@@ -47,6 +47,7 @@ object ConstObject { ...@@ -47,6 +47,7 @@ object ConstObject {
const val SHORTCUT_SPLIT_PDF = "shortcut_split_pdf" const val SHORTCUT_SPLIT_PDF = "shortcut_split_pdf"
const val SHORTCUT_MERGE_PDF = "shortcut_merge_pdf" const val SHORTCUT_MERGE_PDF = "shortcut_merge_pdf"
var ifAgreePrivacy = false var ifAgreePrivacy = false
get() { get() {
return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field) return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
...@@ -106,4 +107,23 @@ object ConstObject { ...@@ -106,4 +107,23 @@ object ConstObject {
AppPreferences.getInstance().put("selectFollowLanguage", value, true) AppPreferences.getInstance().put("selectFollowLanguage", value, true)
} }
//是否第一次启动
var isFirstStart = true
get() {
return AppPreferences.getInstance().getBoolean("isFirstStart", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("isFirstStart", value, true)
}
//主页启动次数
var mainStartTimes = 0
get() {
return AppPreferences.getInstance().getInt("mainStartTimes", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("mainStartTimes", value, true)
}
} }
\ No newline at end of file
...@@ -64,7 +64,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -64,7 +64,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
activityLanguage: String, activityLanguage: String,
activityTag: String? = null, activityTag: String? = null,
activityChangeCallback: ((language: String) -> Unit)? = null activityChangeCallback: ((language: String) -> Unit)? = null
) { ): Boolean {
LogEx.logDebug( LogEx.logDebug(
TAG, TAG,
"activityTag=$activityTag " + "activityTag=$activityTag " +
...@@ -72,6 +72,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -72,6 +72,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
"changeLanguageSp=$changeLanguageSp " + "changeLanguageSp=$changeLanguageSp " +
"activityLanguage=$activityLanguage" "activityLanguage=$activityLanguage"
) )
var isRecreate = false
if (appLanguageSp != changeLanguageSp || activityLanguage != changeLanguageSp) { if (appLanguageSp != changeLanguageSp || activityLanguage != changeLanguageSp) {
...@@ -80,9 +81,10 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { ...@@ -80,9 +81,10 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
appLanguageSp = changeLanguageSp appLanguageSp = changeLanguageSp
activityChangeCallback?.invoke(changeLanguageSp) activityChangeCallback?.invoke(changeLanguageSp)
LogEx.logDebug(TAG, "activityTag=$activityTag recreate") LogEx.logDebug(TAG, "activityTag=$activityTag recreate")
isRecreate = true
this@BaseActivity.recreate() this@BaseActivity.recreate()
} }
return isRecreate
} }
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import android.net.Uri ...@@ -7,6 +7,7 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfviewerscannerwhite.R import com.base.pdfviewerscannerwhite.R
...@@ -18,6 +19,7 @@ import com.base.pdfviewerscannerwhite.bean.ConstObject.RECENT_DATA_TYPE ...@@ -18,6 +19,7 @@ import com.base.pdfviewerscannerwhite.bean.ConstObject.RECENT_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_MERGE_PDF import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_MERGE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SCAN_PDF import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SCAN_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SPLIT_PDF import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SPLIT_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.mainStartTimes
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityMain2Binding import com.base.pdfviewerscannerwhite.databinding.ActivityMain2Binding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
...@@ -86,7 +88,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -86,7 +88,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
updateAppLanguage(MyApplication.mainLanguage, TAG) { val isRecreate = updateAppLanguage(MyApplication.mainLanguage, TAG) {
supportFragmentManager.beginTransaction().apply { supportFragmentManager.beginTransaction().apply {
remove(documentFragment) remove(documentFragment)
remove(recentFragment) remove(recentFragment)
...@@ -97,6 +99,18 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -97,6 +99,18 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
MyApplication.mainLanguage = it MyApplication.mainLanguage = it
} }
LogEx.logDebug(TAG, "isRecreate=$isRecreate mainStartTimes=$mainStartTimes")
if (!isRecreate) {
mainStartTimes++
} else {
return
}
if (mainStartTimes == 1) {
binding.flScanGuide.visibility = View.VISIBLE
return
}
if (checkStorePermission() && needRefresh) { if (checkStorePermission() && needRefresh) {
mainPresenter.initAllDocumentData() mainPresenter.initAllDocumentData()
} else { } else {
...@@ -233,7 +247,17 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -233,7 +247,17 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
binding.ivScan.setOnClickListener { binding.ivScan.setOnClickListener {
mainPresenter.starGmsScan(this) mainPresenter.starGmsScan(this)
} }
binding.flScanGuide.setOnClickListener {
binding.flScanGuide.visibility = View.GONE
}
binding.tvTryScan.setOnClickListener {
binding.flScanGuide.visibility = View.GONE
mainPresenter.starGmsScan(this)
}
binding.ivScanGuide.setOnClickListener {
binding.flScanGuide.visibility = View.GONE
mainPresenter.starGmsScan(this)
}
actionIdOperation() actionIdOperation()
} }
......
...@@ -5,12 +5,14 @@ import android.graphics.Color ...@@ -5,12 +5,14 @@ import android.graphics.Color
import android.text.SpannableString import android.text.SpannableString
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.style.ForegroundColorSpan import android.text.style.ForegroundColorSpan
import androidx.activity.addCallback
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.pdfviewerscannerwhite.R import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.databinding.ActivityPermissionBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPermissionBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.utils.BarUtils import com.base.pdfviewerscannerwhite.utils.BarUtils
import com.base.pdfviewerscannerwhite.utils.PermissionUtils.requestStoragePermission
class PermissionActivity : BaseActivity<ActivityPermissionBinding>() { class PermissionActivity : BaseActivity<ActivityPermissionBinding>() {
...@@ -43,11 +45,16 @@ class PermissionActivity : BaseActivity<ActivityPermissionBinding>() { ...@@ -43,11 +45,16 @@ class PermissionActivity : BaseActivity<ActivityPermissionBinding>() {
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.tvLater.setOnClickListener { binding.tvLater.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
} }
binding.tvAllow.setOnClickListener { binding.tvAllow.setOnClickListener {
requestStoragePermission(launcher) {
onBackPressedDispatcher.onBackPressed()
}
} }
} }
......
...@@ -12,9 +12,9 @@ import com.base.pdfviewerscannerwhite.R ...@@ -12,9 +12,9 @@ import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.ads.AdmobHelper.initAdmobAd import com.base.pdfviewerscannerwhite.ads.AdmobHelper.initAdmobAd
import com.base.pdfviewerscannerwhite.ads.admob.AdmobOpenUtils import com.base.pdfviewerscannerwhite.ads.admob.AdmobOpenUtils
import com.base.pdfviewerscannerwhite.bean.ConstObject import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SCAN_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.haveSelectLanguage import com.base.pdfviewerscannerwhite.bean.ConstObject.haveSelectLanguage
import com.base.pdfviewerscannerwhite.bean.ConstObject.ifAgreePrivacy import com.base.pdfviewerscannerwhite.bean.ConstObject.ifAgreePrivacy
import com.base.pdfviewerscannerwhite.bean.ConstObject.isFirstStart
import com.base.pdfviewerscannerwhite.databinding.ActivitySplash2Binding import com.base.pdfviewerscannerwhite.databinding.ActivitySplash2Binding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.helper.MyApplication import com.base.pdfviewerscannerwhite.helper.MyApplication
...@@ -25,7 +25,6 @@ import com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity ...@@ -25,7 +25,6 @@ import com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity
import com.base.pdfviewerscannerwhite.ui.set.SetLanguageActivity import com.base.pdfviewerscannerwhite.ui.set.SetLanguageActivity
import com.base.pdfviewerscannerwhite.utils.BarUtils import com.base.pdfviewerscannerwhite.utils.BarUtils
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
import com.base.pdfviewerscannerwhite.utils.UmpUtils import com.base.pdfviewerscannerwhite.utils.UmpUtils
import com.base.pdfviewerscannerwhite.utils.UmpUtils.requestUMP import com.base.pdfviewerscannerwhite.utils.UmpUtils.requestUMP
import java.util.Calendar import java.util.Calendar
...@@ -176,15 +175,11 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView { ...@@ -176,15 +175,11 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
binding.root.postDelayed({ binding.root.postDelayed({
if (!haveSelectLanguage && ConstObject.changeLanguageSp != Locale.ENGLISH.language) { if (isFirstStart) {
startActivity(Intent(this, SetLanguageActivity::class.java)) firstStartJump()
finish() } else {
return@postDelayed
}
LogEx.logDebug(TAG, "jumpNext actionId=$actionId") LogEx.logDebug(TAG, "jumpNext actionId=$actionId")
when (actionId) { when (actionId) {
else -> { else -> {
startActivity(Intent(this, MainActivity::class.java).apply { startActivity(Intent(this, MainActivity::class.java).apply {
putExtra("actionId", actionId) putExtra("actionId", actionId)
...@@ -193,9 +188,20 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView { ...@@ -193,9 +188,20 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
} }
this.intent.extras?.clear() this.intent.extras?.clear()
finish() finish()
}
}, 100) }, 100)
} }
private fun firstStartJump() {
isFirstStart = false
if (!haveSelectLanguage && ConstObject.changeLanguageSp != Locale.ENGLISH.language) {
startActivity(Intent(this, SetLanguageActivity::class.java))
} else {
startActivity(Intent(this, PermissionActivity::class.java))
}
finish()
}
} }
\ No newline at end of file
...@@ -26,70 +26,6 @@ ...@@ -26,70 +26,6 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<FrameLayout
android:id="@+id/cl_scan_guide"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_gravity="bottom"
android:background="@drawable/bg_00b8de_tl15_tr15"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/tv_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="54dp"
android:text="Scan to PDF"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_scan_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/click_this_button_to_use_the_scanning_feature"
android:textColor="@color/white"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="@id/tv_scan"
app:layout_constraintTop_toBottomOf="@id/tv_scan" />
<TextView
android:layout_width="160dp"
android:layout_height="48dp"
android:background="@drawable/bg_ffffff_10"
android:gravity="center"
android:text="@string/try_using_it"
android:textColor="#00B8DE"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_scan"
app:layout_constraintTop_toBottomOf="@id/tv_scan_tip" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="18dp"
android:src="@mipmap/yindaotu_scan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_bottom" android:id="@+id/ll_bottom"
...@@ -309,6 +245,74 @@ ...@@ -309,6 +245,74 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id="@+id/fl_scan_guide"
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/fl_banner"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_gravity="bottom"
android:background="@drawable/bg_00b8de_tl15_tr15"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/tv_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="54dp"
android:text="Scan to PDF"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_scan_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/click_this_button_to_use_the_scanning_feature"
android:textColor="@color/white"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="@id/tv_scan"
app:layout_constraintTop_toBottomOf="@id/tv_scan" />
<TextView
android:id="@+id/tv_try_scan"
android:layout_width="160dp"
android:layout_height="48dp"
android:background="@drawable/bg_ffffff_10"
android:gravity="center"
android:text="@string/try_using_it"
android:textColor="#00B8DE"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_scan"
app:layout_constraintTop_toBottomOf="@id/tv_scan_tip" />
<ImageView
android:id="@+id/iv_scan_guide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="18dp"
android:src="@mipmap/yindaotu_scan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/fl_banner" android:id="@+id/fl_banner"
android:layout_width="match_parent" android:layout_width="match_parent"
......
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