Просмотр исходного кода

验证码弹出框显示源名称

kunfei 4 лет назад
Родитель
Сommit
830f3247e1

+ 1 - 0
app/src/main/java/io/legado/app/help/SourceVerificationHelp.kt

@@ -27,6 +27,7 @@ object SourceVerificationHelp {
                 appCtx.startActivity<VerificationCodeActivity> {
                     putExtra("imageUrl", url)
                     putExtra("sourceOrigin", source.getKey())
+                    putExtra("sourceName", source.getTag())
                 }
             } else {
                 startBrowser(source, url, title, true)

+ 30 - 22
app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt

@@ -2,12 +2,12 @@ package io.legado.app.ui.association
 
 import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.MenuItem
 import android.view.View
 import android.view.ViewGroup
-import android.view.MenuItem
 import androidx.appcompat.widget.Toolbar
-import com.bumptech.glide.request.RequestOptions
 import com.bumptech.glide.load.engine.DiskCacheStrategy
+import com.bumptech.glide.request.RequestOptions
 import io.legado.app.R
 import io.legado.app.base.BaseDialogFragment
 import io.legado.app.databinding.DialogVerificationCodeViewBinding
@@ -17,7 +17,9 @@ import io.legado.app.help.glide.ImageLoader
 import io.legado.app.help.glide.OkHttpModelLoader
 import io.legado.app.lib.theme.primaryColor
 import io.legado.app.ui.widget.dialog.PhotoDialog
-import io.legado.app.utils.*
+import io.legado.app.utils.applyTint
+import io.legado.app.utils.setLayout
+import io.legado.app.utils.showDialogFragment
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 
 /**
@@ -26,12 +28,18 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
  * val key = "${sourceOrigin ?: ""}_verificationResult"
  * CacheManager.get(key)
  */
-class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification_code_view), Toolbar.OnMenuItemClickListener {
+class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification_code_view),
+    Toolbar.OnMenuItemClickListener {
 
-    constructor(imageUrl: String, sourceOrigin: String? = null) : this() {
+    constructor(
+        imageUrl: String,
+        sourceOrigin: String? = null,
+        sourceName: String? = null
+    ) : this() {
         arguments = Bundle().apply {
-            putString("sourceOrigin", sourceOrigin)
             putString("imageUrl", imageUrl)
+            putString("sourceOrigin", sourceOrigin)
+            putString("sourceName", sourceName)
         }
     }
 
@@ -47,23 +55,23 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
         initMenu()
         binding.run {
             toolBar.setBackgroundColor(primaryColor)
-            val sourceOrigin = arguments?.getString("sourceOrigin")
-            arguments?.getString("imageUrl")?.let { imageUrl ->
-                ImageLoader.load(requireContext(), imageUrl).apply {
-                    sourceOrigin?.let {
-                        apply(
-                            RequestOptions().set(
-                                OkHttpModelLoader.sourceOriginOption,
-                                it
+            arguments?.let { arguments ->
+                tvTag.text = arguments.getString("sourceName")
+                val sourceOrigin = arguments.getString("sourceOrigin")
+                arguments.getString("imageUrl")?.let { imageUrl ->
+                    ImageLoader.load(requireContext(), imageUrl).apply {
+                        sourceOrigin?.let {
+                            apply(
+                                RequestOptions().set(OkHttpModelLoader.sourceOriginOption, it)
                             )
-                        )
+                        }
+                    }.error(R.drawable.image_loading_error)
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)
+                        .skipMemoryCache(true)
+                        .into(verificationCodeImageView)
+                    verificationCodeImageView.setOnClickListener {
+                        showDialogFragment(PhotoDialog(imageUrl, sourceOrigin))
                     }
-                }.error(R.drawable.image_loading_error)
-                    .diskCacheStrategy(DiskCacheStrategy.NONE)
-                    .skipMemoryCache(true)
-                    .into(verificationCodeImageView)
-                verificationCodeImageView.setOnClickListener {
-                    showDialogFragment(PhotoDialog(imageUrl, sourceOrigin))
                 }
             }
         }
@@ -86,7 +94,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
                     CacheManager.putMemory(key, it)
                     dismiss()
                 }
-           }
+            }
         }
         return false
     }

+ 12 - 5
app/src/main/res/layout/dialog_verification_code_view.xml

@@ -10,26 +10,33 @@
         android:id="@+id/tool_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:background="@color/background_menu"
         android:elevation="5dp"
         android:theme="?attr/actionBarStyle"
-        android:background="@color/background_menu"
-        app:title="@string/input_verification_code"
         app:popupTheme="@style/AppTheme.PopupOverlay"
+        app:title="@string/input_verification_code"
         app:titleTextAppearance="@style/ToolbarTitle" />
 
+    <TextView
+        android:id="@+id/tv_tag"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:textColor="@color/secondaryText"
+        android:visibility="gone" />
+
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/verification_code_image_view"
         android:layout_width="match_parent"
         android:layout_height="100dp"
-        android:scaleType="centerCrop"
         android:background="?android:attr/selectableItemBackgroundBorderless"
+        android:scaleType="centerCrop"
         tools:ignore="UnusedAttribute" />
 
     <io.legado.app.ui.widget.text.TextInputLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="3dp"
-        android:layout_marginTop="8dp">
+        android:layout_marginTop="8dp"
+        android:padding="3dp">
 
         <io.legado.app.lib.theme.view.ThemeEditText
             android:id="@+id/verification_code"