Commit 31d634fb authored by wanglei's avatar wanglei

...

parent 92fede40
...@@ -83,6 +83,7 @@ dependencies { ...@@ -83,6 +83,7 @@ dependencies {
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4") implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4")
implementation("com.github.angcyo.DslTablayout:TabLayout:3.5.5") implementation("com.github.angcyo.DslTablayout:TabLayout:3.5.5")
implementation("com.github.angcyo.DslTablayout:ViewPager2Delegate:3.5.5") implementation("com.github.angcyo.DslTablayout:ViewPager2Delegate:3.5.5")
implementation("com.airbnb.android:lottie:6.4.0")
//mlkit //mlkit
implementation("com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1") implementation("com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1")
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:name=".helper.MyApplication" android:name=".helper.MyApplication"
......
...@@ -39,6 +39,10 @@ object ConstObject { ...@@ -39,6 +39,10 @@ object ConstObject {
const val UI_SORT_NAME_A_Z = "ui_sort_name_a_z" const val UI_SORT_NAME_A_Z = "ui_sort_name_a_z"
const val UI_SORT_NAME_Z_A = "ui_sort_name_z_a" const val UI_SORT_NAME_Z_A = "ui_sort_name_z_a"
const val NOTIFICATION_ACTION_LOG = "notification_action_log"
const val NOTIFICATION_ACTION_DOCUMENT = "notification_action_document"
const val NOTIFICATION_ACTION_BOOKMARK = "notification_action_bookmark"
var ifAgreePrivacy = false var ifAgreePrivacy = false
get() { get() {
return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field) return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
...@@ -56,69 +60,13 @@ object ConstObject { ...@@ -56,69 +60,13 @@ object ConstObject {
AppPreferences.getInstance().put("haveSaveDemo", value, true) AppPreferences.getInstance().put("haveSaveDemo", value, true)
} }
// var haveGuideGesture = false
// var searchEngineSp = GOOGLE get() {
// get() { return AppPreferences.getInstance().getBoolean("haveGuideGesture", field)
// return AppPreferences.getInstance().getString("searchEngine", field) }
// } set(value) {
// set(value) { field = value
// field = value AppPreferences.getInstance().put("haveGuideGesture", value, true)
// AppPreferences.getInstance().put("searchEngine", value, true) }
// }
//
// var isFirstMainShow = true
// get() {
// return AppPreferences.getInstance().getBoolean("isFirstMainShow", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("isFirstMainShow", value, true)
// }
//
// var mainShowCount = 0
// get() {
// return AppPreferences.getInstance().getInt("mainShowCount", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("mainShowCount", value, true)
// }
//
// var webPrivacy = false
// get() {
// return AppPreferences.getInstance().getBoolean("webPrivacy", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("webPrivacy", value, true)
// }
//
//
// var downloadDisclaimer = false
// get() {
// return AppPreferences.getInstance().getBoolean("downloadDisclaimer", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("downloadDisclaimer", value, true)
// }
//
// var optimizationShow = false
// get() {
// return AppPreferences.getInstance().getBoolean("optimizationShow", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("optimizationShow", value, true)
// }
//
// var shortcutShowSp = false
// get() {
// return AppPreferences.getInstance().getBoolean("shortcutShow", field)
// }
// set(value) {
// field = value
// AppPreferences.getInstance().put("shortcutShow", value, true)
// }
} }
\ No newline at end of file
...@@ -6,7 +6,7 @@ object ConfigHelper { ...@@ -6,7 +6,7 @@ object ConfigHelper {
const val termService: String = "https://sites.google.com/view/term-of-service-s/term-of-service" const val termService: String = "https://sites.google.com/view/term-of-service-s/term-of-service"
// 正式包名 // 正式包名
const val packageName = "com.ttesst.gododo.redause" const val packageName = "com.lol.pdfscanner.libstdc.chovey"
// 域名 // 域名
const val eventUrl = "https://rp.gamexzonerk.xyz" const val eventUrl = "https://rp.gamexzonerk.xyz"
......
...@@ -58,7 +58,7 @@ object EventUtils { ...@@ -58,7 +58,7 @@ object EventUtils {
} catch (e: JSONException) { } catch (e: JSONException) {
paramJson = "" paramJson = ""
} }
LogEx.logDebug(TAG, "report!") LogEx.logDebug(TAG, "url=$url")
doPost( doPost(
url, url,
HashMap(), HashMap(),
......
...@@ -15,6 +15,7 @@ object InstallHelps { ...@@ -15,6 +15,7 @@ object InstallHelps {
fun init() { fun init() {
val referrerClient = InstallReferrerClient.newBuilder(MyApplication.context).build() val referrerClient = InstallReferrerClient.newBuilder(MyApplication.context).build()
referrerClient.startConnection(object : InstallReferrerStateListener { referrerClient.startConnection(object : InstallReferrerStateListener {
override fun onInstallReferrerSetupFinished(responseCode: Int) { override fun onInstallReferrerSetupFinished(responseCode: Int) {
...@@ -56,6 +57,7 @@ object InstallHelps { ...@@ -56,6 +57,7 @@ object InstallHelps {
} }
} catch (_: Exception) { } catch (_: Exception) {
EventUtils.event("install_referrer_error") EventUtils.event("install_referrer_error")
requestCfg()
} }
} }
......
...@@ -31,13 +31,9 @@ class MyApplication : Application() { ...@@ -31,13 +31,9 @@ class MyApplication : Application() {
} }
private fun initUUid() { private fun initUUid() {
//使用同一个uuid来测试上报
//7a6f8e5f-ca67-4149-975b-dacdc6c51aff1723174621132
// AppPreferences.getInstance().put("uuid", "7a6f8e5f-ca67-4149-975b-dacdc6c51aff1723174621132")
uuid = AppPreferences.getInstance().getString("uuid", "") uuid = AppPreferences.getInstance().getString("uuid", "")
if (TextUtils.isEmpty(uuid)) { if (TextUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString() uuid = UUID.randomUUID().toString() + System.currentTimeMillis()
// + System.currentTimeMillis()
AppPreferences.getInstance().put("uuid", uuid) AppPreferences.getInstance().put("uuid", uuid)
LogEx.logDebug(TAG, "uuid=$uuid") LogEx.logDebug(TAG, "uuid=$uuid")
} }
......
...@@ -69,14 +69,14 @@ object NewComUtils { ...@@ -69,14 +69,14 @@ object NewComUtils {
private fun doGet(): String? { private fun doGet(): String? {
val urlPath = url val urlPath = url
Log.d("okhttp", urlPath) LogEx.logDebug(TAG, "url=$url")
try { try {
val conn: HttpURLConnection = URL(urlPath).openConnection() as HttpURLConnection val conn: HttpURLConnection = URL(urlPath).openConnection() as HttpURLConnection
conn.setRequestMethod("GET") conn.setRequestMethod("GET")
conn.connectTimeout = 150000 conn.connectTimeout = 150000
if (200 == conn.getResponseCode()) { if (200 == conn.getResponseCode()) {
val json = BufferedReader(InputStreamReader(conn.inputStream)).readLine() val json = BufferedReader(InputStreamReader(conn.inputStream)).readLine()
Log.d("okhttp", json) LogEx.logDebug(TAG, "json=$json")
return json return json
} }
} catch (e: Exception) { } catch (e: Exception) {
...@@ -93,7 +93,6 @@ object NewComUtils { ...@@ -93,7 +93,6 @@ object NewComUtils {
} }
private fun parseConfigBean(json: String) { private fun parseConfigBean(json: String) {
Log.d("okhttp", json)
val gson = Gson() val gson = Gson()
val type = object : TypeToken<Map<String, String>>() {}.type val type = object : TypeToken<Map<String, String>>() {}.type
val configMap = gson.fromJson<Map<String, String>>(json, type) val configMap = gson.fromJson<Map<String, String>>(json, type)
......
...@@ -3,6 +3,7 @@ package com.base.pdfviewerscannerwhite.service ...@@ -3,6 +3,7 @@ package com.base.pdfviewerscannerwhite.service
import android.app.Notification import android.app.Notification
import android.app.NotificationChannel import android.app.NotificationChannel
import android.app.NotificationManager import android.app.NotificationManager
import android.app.PendingIntent
import android.app.Service import android.app.Service
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
...@@ -13,7 +14,10 @@ import android.os.IBinder ...@@ -13,7 +14,10 @@ import android.os.IBinder
import android.widget.RemoteViews import android.widget.RemoteViews
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import com.base.pdfviewerscannerwhite.R import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.helper.EventUtils import com.base.pdfviewerscannerwhite.helper.EventUtils
import com.base.pdfviewerscannerwhite.helper.MyApplication
import com.base.pdfviewerscannerwhite.ui.main.MainActivity
import com.base.pdfviewerscannerwhite.ui.splash.SplashActivity import com.base.pdfviewerscannerwhite.ui.splash.SplashActivity
import kotlin.random.Random import kotlin.random.Random
...@@ -30,6 +34,8 @@ class StayNotificationService : Service() { ...@@ -30,6 +34,8 @@ class StayNotificationService : Service() {
var isRunning = false var isRunning = false
fun Context.startStayNotification() { fun Context.startStayNotification() {
if (isRunning) return
val intent = Intent(this, StayNotificationService::class.java) val intent = Intent(this, StayNotificationService::class.java)
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) {
return return
...@@ -40,7 +46,6 @@ class StayNotificationService : Service() { ...@@ -40,7 +46,6 @@ class StayNotificationService : Service() {
} else { } else {
startService(intent) startService(intent)
} }
// StayServiceTimerManager.getInstance().scheduleTask(60000L, 60000L)
} }
fun Context.restartStartStayNotification() { fun Context.restartStartStayNotification() {
...@@ -50,6 +55,7 @@ class StayNotificationService : Service() { ...@@ -50,6 +55,7 @@ class StayNotificationService : Service() {
startStayNotification() startStayNotification()
} }
fun createPermanentNotification(context: Context): Notification { fun createPermanentNotification(context: Context): Notification {
val isOngoing = true //是否持续(为不消失的常驻通知) val isOngoing = true //是否持续(为不消失的常驻通知)
...@@ -60,62 +66,19 @@ class StayNotificationService : Service() { ...@@ -60,62 +66,19 @@ class StayNotificationService : Service() {
val expendView = RemoteViews(context.packageName, R.layout.stay_notification_big) val expendView = RemoteViews(context.packageName, R.layout.stay_notification_big)
val requestCode1 = Random.nextInt(1800) val requestCode1 = Random.nextInt(1800)
val intent0 = Intent(context, SplashActivity::class.java).apply { val intent1 = Intent(context, SplashActivity::class.java).apply {
putExtra("actionId", ConstObject.NOTIFICATION_ACTION_LOG)
} }
// val pendingIntent1 = val pendingIntent1 =
// PendingIntent.getActivity( PendingIntent.getActivity(
// context, context,
// requestCode1, requestCode1,
// intent0, intent1,
// PendingIntent.FLAG_IMMUTABLE PendingIntent.FLAG_IMMUTABLE
// ) )
// contentView.setOnClickPendingIntent(R.id.ll_2, pendingIntent1)
// val requestCode2 = Random.nextInt(1800) expendView.setOnClickPendingIntent(R.id.ll_2, pendingIntent1)
// val intent2 = Intent(context, Splash2Activity::class.java).apply {
// putExtra("actionId", ConstObject.ID_NEWS)
// }
// val pendingIntent2 =
// PendingIntent.getActivity(
// context,
// requestCode2,
// intent2,
// PendingIntent.FLAG_IMMUTABLE
// )
// contentView.setOnClickPendingIntent(R.id.ll_2, pendingIntent2)
// expendView.setOnClickPendingIntent(R.id.ll_2, pendingIntent2)
//
// val requestCode3 = Random.nextInt(1800)
// val intent3 = Intent(context, Splash2Activity::class.java).apply {
// putExtra("actionId", ConstObject.ID_SCAN_CODE)
// }
// val pendingIntent3 =
// PendingIntent.getActivity(
// context,
// requestCode3,
// intent3,
// PendingIntent.FLAG_IMMUTABLE
// )
// contentView.setOnClickPendingIntent(R.id.ll_3, pendingIntent3)
// expendView.setOnClickPendingIntent(R.id.ll_3, pendingIntent3)
//
//
// val requestCode4 = Random.nextInt(1800)
// val intent4 = Intent(context, Splash2Activity::class.java).apply {
// putExtra("actionId", ConstObject.ID_APP_PROCESS_1)
// }
// val pendingIntent4 =
// PendingIntent.getActivity(
// context,
// requestCode4,
// intent4,
// PendingIntent.FLAG_IMMUTABLE
// )
// contentView.setOnClickPendingIntent(R.id.ll_4, pendingIntent4)
// expendView.setOnClickPendingIntent(R.id.ll_4, pendingIntent4)
//
// val nfIntent = Intent(context, MainActivity::class.java)
// val pendingIntent =
// PendingIntent.getActivity(context, 0, nfIntent, PendingIntent.FLAG_IMMUTABLE)
// //
val builder = NotificationCompat.Builder(context, channelId) val builder = NotificationCompat.Builder(context, channelId)
// //
...@@ -127,9 +90,13 @@ class StayNotificationService : Service() { ...@@ -127,9 +90,13 @@ class StayNotificationService : Service() {
// smallIcon?.let { // smallIcon?.let {
// builder.setSmallIcon(smallIcon) //设置状态栏内的小图标 // builder.setSmallIcon(smallIcon) //设置状态栏内的小图标
// } // }
val nfIntent = Intent(context, MainActivity::class.java)
val pendingIntent =
PendingIntent.getActivity(context, 0, nfIntent, PendingIntent.FLAG_IMMUTABLE)
builder.setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.logo)) builder.setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.logo))
builder.setContentTitle(context.resources.getString(R.string.app_name)) builder.setContentTitle(context.resources.getString(R.string.app_name))
// builder.setContentIntent(pendingIntent) //设置PendingIntent builder.setContentIntent(pendingIntent) //设置PendingIntent
builder.setVisibility(NotificationCompat.VISIBILITY_PRIVATE) //设置通知公开可见 builder.setVisibility(NotificationCompat.VISIBILITY_PRIVATE) //设置通知公开可见
builder.setAutoCancel(false) builder.setAutoCancel(false)
builder.setPriority(NotificationCompat.PRIORITY_MAX) //优先级为:重要通知 builder.setPriority(NotificationCompat.PRIORITY_MAX) //优先级为:重要通知
...@@ -166,7 +133,7 @@ class StayNotificationService : Service() { ...@@ -166,7 +133,7 @@ class StayNotificationService : Service() {
} }
private fun startForeground() { private fun startForeground() {
val notification = createPermanentNotification(applicationContext) val notification = createPermanentNotification(MyApplication.context)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForeground(100, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC) startForeground(100, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC)
} else { } else {
......
...@@ -26,6 +26,7 @@ import com.artifex.mupdfdemo.SearchTask ...@@ -26,6 +26,7 @@ import com.artifex.mupdfdemo.SearchTask
import com.artifex.mupdfdemo.SearchTaskResult import com.artifex.mupdfdemo.SearchTaskResult
import com.base.pdfviewerscannerwhite.R import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SAVE_PDF import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SAVE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.haveGuideGesture
import com.base.pdfviewerscannerwhite.bean.PdfPageBean import com.base.pdfviewerscannerwhite.bean.PdfPageBean
import com.base.pdfviewerscannerwhite.databinding.ActivityPdfBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPdfBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
...@@ -102,6 +103,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView { ...@@ -102,6 +103,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView {
SpStringUtils.addSpString(LAST_VIEW_KEY, "${path}_/_${System.currentTimeMillis()}") SpStringUtils.addSpString(LAST_VIEW_KEY, "${path}_/_${System.currentTimeMillis()}")
} }
if (!haveGuideGesture) {
binding.flGuideGesture.visibility = View.VISIBLE
}
} }
private fun iniSetVerticalSeekbar(max: Int) { private fun iniSetVerticalSeekbar(max: Int) {
...@@ -216,6 +221,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView { ...@@ -216,6 +221,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView {
binding.mupdfReaderView.displayedViewIndex = pageIndex binding.mupdfReaderView.displayedViewIndex = pageIndex
} }
binding.flGuideGesture.setOnClickListener {
haveGuideGesture = true
binding.flGuideGesture.visibility = View.GONE
}
} }
/** /**
......
...@@ -9,7 +9,6 @@ import androidx.activity.OnBackPressedCallback ...@@ -9,7 +9,6 @@ import androidx.activity.OnBackPressedCallback
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
import com.base.pdfviewerscannerwhite.ads.RemoteConfigHelper
import com.base.pdfviewerscannerwhite.bean.ConstObject import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE
...@@ -59,7 +58,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -59,7 +58,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
mainPresenter.initScannerLauncher(this) mainPresenter.initScannerLauncher(this)
RemoteConfigHelper.test()
} }
override fun onResume() { override fun onResume() {
......
...@@ -12,6 +12,7 @@ import com.base.pdfviewerscannerwhite.ads.admob.AdmobOpenUtils ...@@ -12,6 +12,7 @@ import com.base.pdfviewerscannerwhite.ads.admob.AdmobOpenUtils
import com.base.pdfviewerscannerwhite.bean.ConstObject.ifAgreePrivacy import com.base.pdfviewerscannerwhite.bean.ConstObject.ifAgreePrivacy
import com.base.pdfviewerscannerwhite.databinding.ActivitySplashBinding import com.base.pdfviewerscannerwhite.databinding.ActivitySplashBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.service.StayNotificationService.Companion.startStayNotification
import com.base.pdfviewerscannerwhite.ui.main.MainActivity import com.base.pdfviewerscannerwhite.ui.main.MainActivity
import com.base.pdfviewerscannerwhite.utils.BarUtils import com.base.pdfviewerscannerwhite.utils.BarUtils
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
...@@ -69,6 +70,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView { ...@@ -69,6 +70,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView {
} }
override fun agreePrivacy() { override fun agreePrivacy() {
startStayNotification()
initAdmobAd() initAdmobAd()
showAd() showAd()
startProgressJob() startProgressJob()
...@@ -123,9 +125,15 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView { ...@@ -123,9 +125,15 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView {
LogEx.logDebug(TAG, "jumpNext") LogEx.logDebug(TAG, "jumpNext")
binding.progressBar.progress = 100 binding.progressBar.progress = 100
binding.root.postDelayed({ binding.root.postDelayed({
startActivity(Intent(this, MainActivity::class.java)) val actionId = intent.extras?.getString("actionId")
LogEx.logDebug(TAG, "")
startActivity(Intent(this, MainActivity::class.java).apply {
putExtra("actionId", actionId)
})
finish() finish()
intent.extras?.clear()
}, 200) }, 200)
} }
......
package com.base.pdfviewerscannerwhite.ui.splash package com.base.pdfviewerscannerwhite.ui.splash
import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.LifecycleCoroutineScope
import com.base.pdfviewerscannerwhite.ads.FirebaseDatabase.open_ad_loading import com.base.pdfviewerscannerwhite.ads.AdmobHelper.open_ad_loading
import com.base.pdfviewerscannerwhite.utils.AppPreferences import com.base.pdfviewerscannerwhite.utils.AppPreferences
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
......
package com.base.pdfviewerscannerwhite.ui.view
import android.content.Context
import android.graphics.Canvas
import android.util.AttributeSet
import com.airbnb.lottie.LottieAnimationView
class XmlLottieAnimationView : LottieAnimationView {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun draw(canvas: Canvas) {
try {
super.draw(canvas)
} catch (e: Exception) {
}
}
override fun playAnimation() {
super.playAnimation()
}
}
\ No newline at end of file
...@@ -244,12 +244,12 @@ ...@@ -244,12 +244,12 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<TextView <TextView
android:visibility="gone"
android:id="@+id/tv_test" android:id="@+id/tv_test"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp" android:layout_marginHorizontal="20dp"
android:background="@color/white" android:background="@color/white"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
...@@ -350,5 +350,23 @@ ...@@ -350,5 +350,23 @@
</ViewAnimator> </ViewAnimator>
<FrameLayout
android:visibility="gone"
android:id="@+id/fl_guide_gesture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#336C677C">
<com.base.pdfviewerscannerwhite.ui.view.XmlLottieAnimationView
android:id="@+id/lottie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:lottie_autoPlay="true"
app:lottie_repeatCount="0"
app:lottie_rawRes="@raw/enlarge"
app:lottie_loop="true" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -3,14 +3,77 @@ ...@@ -3,14 +3,77 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
tools:ignore="DisableBaselineAlignment"> tools:ignore="DisableBaselineAlignment">
<FrameLayout
android:id="@+id/fl_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1">
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_gravity="center"
android:src="@mipmap/logo"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
android:id="@+id/ll_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/doc_notification"
tools:ignore="ContentDescription" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="60dp" android:layout_height="wrap_content"
android:background="#FA957B" android:layout_gravity="center_horizontal"
android:gravity="center" android:layout_marginTop="2dp"
android:text="测试" /> android:text="Document"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/bookmark_notification"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2dp"
android:text="Bookmark"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
{"v":"5.9.4","fr":25,"ip":0,"op":25,"w":186,"h":186,"nm":"hand_zoom","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[21.5,104.75,0],"to":[2.667,-3.375,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[37.5,84.5,0],"to":[0,0,0],"ti":[2.667,-3.375,0]},{"t":19,"s":[21.5,104.75,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.562,1.341],[-0.781,1.006],[0,0],[1.004,0.782],[0,0],[0.781,-1.006],[0,0],[1.004,0.783],[0,-2.124],[0,0],[-1.45,0.224],[0,0]],"o":[[-1.004,-0.894],[0,0],[0.892,-1.006],[0,0],[-1.004,-0.894],[0,0],[-0.892,1.006],[-1.562,-1.341],[0,0],[0,1.453],[0,0],[2.008,-0.559]],"v":[[1.282,9.6],[0.947,6.246],[13.441,-8.733],[13.106,-12.086],[9.091,-15.44],[5.744,-15.104],[-6.749,-0.125],[-10.096,0.21],[-14,2.11],[-13.888,13.624],[-11.1,15.971],[0.167,13.959]],"c":true},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Group 2","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":25,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[80.375,27.25,0],"to":[-2.833,4.083,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[63.375,51.75,0],"to":[0,0,0],"ti":[-2.833,4.083,0]},{"t":19,"s":[80.375,27.25,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.122,-0.892],[0,0],[-0.786,1.003],[0,0],[-1.01,-0.892],[0,2.006],[0,0],[1.459,-0.334],[0,0],[-1.571,-1.337],[0.898,-1.003],[0,0]],"o":[[0,0],[1.01,0.78],[0,0],[0.786,-1.003],[1.571,1.226],[0,0],[0,-1.449],[0,0],[-2.02,0.446],[1.01,0.78],[0,0],[-0.786,0.78]],"v":[[-13.045,12.256],[-8.893,15.488],[-5.526,15.154],[6.706,-0.115],[10.072,-0.449],[14,-2.344],[13.663,-13.711],[10.746,-15.94],[-0.588,-13.711],[-1.598,-9.476],[-1.262,-6.133],[-13.494,9.135]],"c":true},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Group 2","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":25,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"hand_zoom contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[93,106,0],"ix":2,"l":2},"a":{"a":0,"k":[180,150,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-11.984],[0,0],[0,0]],"o":[[0,0],[0,-11.984],[0,0],[0,0],[0,0]],"v":[[-7.49,33.438],[-7.49,-21.454],[7.49,-21.454],[7.49,27.003],[7.49,7.828]],"c":false},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[184.917,162.762],"ix":2},"a":{"a":0,"k":[-0.652,28.499],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[1,0.833]},"o":{"x":[0.167,0.167],"y":[0,0.167]},"t":0,"s":[100,100]},{"i":{"x":[0.833,0.833],"y":[1,0.833]},"o":{"x":[0.167,0.167],"y":[0,0.167]},"t":10,"s":[100,90]},{"t":19,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[-10]},{"t":19,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-6.56,-6.271],[0,0]],"o":[[0,0],[6.56,-6.269],[0,0],[0,0]],"v":[[13.938,24.07],[-15.837,-17.801],[3.771,-15.293],[15.836,-5.393]],"c":false},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[178.406,180.584],"ix":2},"a":{"a":0,"k":[16.164,7.49],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,1]},"o":{"x":[0.167,0.167],"y":[0.167,0]},"t":0,"s":[100,100]},{"i":{"x":[0.833,0.833],"y":[0.833,1]},"o":{"x":[0.167,0.167],"y":[0.167,0]},"t":10,"s":[73,100]},{"t":19,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Grupo 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[226.015,154.753],[226.015,164.781]],"c":false},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Grupo 5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[211.034,148.761],[211.034,163.094]],"c":false},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Grupo 6","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-18.89,0],[0,0],[0,0],[4.638,0],[0,-4.433],[0,0],[4.639,0],[0,-4.434],[0,0],[4.638,0],[0,-4.433],[0,0]],"o":[[0,0],[24.06,0],[0,0],[0,-4.433],[-4.638,0],[0,0],[0,-4.434],[-4.638,0],[0,0],[0,-4.433],[-4.639,0],[0,0],[0,0]],"v":[[-32.786,23.569],[-3.077,39.531],[27.54,10.283],[32.786,-17.71],[24.917,-25.738],[17.048,-17.71],[17.048,-25.236],[8.548,-33.264],[2.068,-25.236],[2.068,-31.503],[-6.92,-39.531],[-15.908,-31.503],[-15.908,-12.327]],"c":false},"ix":2},"nm":"path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[208.966,173.595],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"transform"}],"nm":"Grupo 7","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":750,"st":0,"ct":1,"bm":0}],"markers":[]}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<string name="next" tools:ignore="MissingTranslation">Next</string> <string name="next" tools:ignore="MissingTranslation">Next</string>
<string name="previous" tools:ignore="MissingTranslation">Previous</string> <string name="previous" tools:ignore="MissingTranslation">Previous</string>
<string name="facebook_app_id" tools:ignore="MissingTranslation">421266364258459</string> <string name="facebook_app_id" tools:ignore="MissingTranslation">939938294571154</string>
<string name="merge_pdf">Merge PDF</string> <string name="merge_pdf">Merge PDF</string>
<string name="document">document</string> <string name="document">document</string>
<string name="add">Add</string> <string name="add">Add</string>
......
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