parent
2a67c08670
commit
67501170cc
@ -0,0 +1,26 @@ |
||||
package io.legado.app.ui.association |
||||
|
||||
import android.os.Bundle |
||||
import io.legado.app.base.BaseActivity |
||||
import io.legado.app.databinding.ActivityTranslucenceBinding |
||||
import io.legado.app.utils.showDialogFragment |
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding |
||||
|
||||
/** |
||||
* 验证码 |
||||
*/ |
||||
class VerificationCodeActivity : |
||||
BaseActivity<ActivityTranslucenceBinding>() { |
||||
|
||||
override val binding by viewBinding(ActivityTranslucenceBinding::inflate) |
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) { |
||||
intent.getStringExtra("imageUrl")?.let { |
||||
val sourceOrigin = intent.getStringExtra("sourceOrigin") |
||||
showDialogFragment( |
||||
VerificationCodeDialog(it, sourceOrigin) |
||||
) |
||||
} ?: finish() |
||||
} |
||||
|
||||
} |
@ -0,0 +1,83 @@ |
||||
package io.legado.app.ui.association |
||||
|
||||
import android.os.Bundle |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.net.Uri |
||||
import com.bumptech.glide.request.RequestOptions |
||||
import io.legado.app.R |
||||
import io.legado.app.base.BaseDialogFragment |
||||
import io.legado.app.databinding.DialogVerificationCodeViewBinding |
||||
import io.legado.app.help.CacheManager |
||||
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.setLayout |
||||
import io.legado.app.utils.showDialogFragment |
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding |
||||
|
||||
//图片验证码输入对话框 |
||||
class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification_code_view) { |
||||
|
||||
constructor(imageUrl: String, sourceOrigin: String? = null) : this() { |
||||
arguments = Bundle().apply { |
||||
putString("sourceOrigin", sourceOrigin) |
||||
putString("imageUrl", imageUrl) |
||||
} |
||||
} |
||||
|
||||
val binding by viewBinding(DialogVerificationCodeViewBinding::bind) |
||||
|
||||
override fun onStart() { |
||||
super.onStart() |
||||
setLayout(1f, ViewGroup.LayoutParams.WRAP_CONTENT) |
||||
} |
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { |
||||
binding.run { |
||||
toolBar.setBackgroundColor(primaryColor) |
||||
val sourceOrigin = arguments?.getString("sourceOrigin") |
||||
val key = "${sourceOrigin ?: ""}_verificationCode" |
||||
arguments?.getString("imageUrl")?.let { imageUrl -> |
||||
ImageLoader.load(requireContext(), imageUrl).apply { |
||||
sourceOrigin?.let { |
||||
apply( |
||||
RequestOptions().set( |
||||
OkHttpModelLoader.sourceOriginOption, |
||||
it |
||||
) |
||||
) |
||||
} |
||||
}.error(R.drawable.image_loading_error) |
||||
.into(ivImage) |
||||
ivImage.setOnClickListener { |
||||
showDialogFragment(PhotoDialog(imageUrl, sourceOrigin)) |
||||
} |
||||
ivImage.setOnLongClickListener { |
||||
showDialogFragment(PhotoDialog(imageUrl, sourceOrigin)) |
||||
true |
||||
} |
||||
} |
||||
tvOk.setOnClickListener { |
||||
val verificationCode = binding.verificationCode.text.toString() |
||||
verificationCode?.let { |
||||
CacheManager.put(key, it) |
||||
dismiss() |
||||
} |
||||
} |
||||
tvCancel.setOnClickListener { |
||||
dismiss() |
||||
} |
||||
} |
||||
} |
||||
|
||||
override fun onDestroy() { |
||||
val sourceOrigin = arguments?.getString("sourceOrigin") |
||||
val key = "${sourceOrigin ?: ""}_verificationCode" |
||||
CacheManager.get(key) ?: CacheManager.put(key, "") |
||||
super.onDestroy() |
||||
activity?.finish() |
||||
} |
||||
|
||||
} |
@ -0,0 +1,70 @@ |
||||
<?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="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<androidx.appcompat.widget.Toolbar |
||||
android:id="@+id/tool_bar" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:theme="?attr/actionBarStyle" |
||||
app:title="@string/input_verification_code" |
||||
app:popupTheme="@style/AppTheme.PopupOverlay" |
||||
app:titleTextAppearance="@style/ToolbarTitle" /> |
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView |
||||
android:id="@+id/iv_image" |
||||
android:scaleType="fitXY" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="50dp" |
||||
android:paddingLeft="12dp" |
||||
android:paddingRight="12dp" |
||||
android:paddingTop="3dp" |
||||
android:background="?android:attr/selectableItemBackgroundBorderless" |
||||
tools:ignore="UnusedAttribute" /> |
||||
|
||||
<io.legado.app.ui.widget.text.TextInputLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:paddingLeft="12dp" |
||||
android:paddingRight="12dp" |
||||
android:paddingTop="3dp"> |
||||
|
||||
<io.legado.app.lib.theme.view.ThemeEditText |
||||
android:id="@+id/verification_code" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:hint="@string/verification_code" |
||||
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> |
||||
|
||||
</io.legado.app.ui.widget.text.TextInputLayout> |
||||
|
||||
|
||||
<com.google.android.flexbox.FlexboxLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:paddingLeft="12dp" |
||||
android:paddingRight="12dp" |
||||
app:justifyContent="flex_end"> |
||||
|
||||
<io.legado.app.ui.widget.text.AccentTextView |
||||
android:id="@+id/tv_cancel" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:padding="12dp" |
||||
android:text="@string/cancel" |
||||
tools:ignore="RtlHardcoded" /> |
||||
|
||||
<io.legado.app.ui.widget.text.AccentTextView |
||||
android:id="@+id/tv_ok" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:padding="12dp" |
||||
android:text="@string/ok" |
||||
tools:ignore="RtlHardcoded" /> |
||||
|
||||
</com.google.android.flexbox.FlexboxLayout> |
||||
</LinearLayout> |
Loading…
Reference in new issue