Skip to content

Commit

Permalink
新增功能: 新增B站弹幕下载自定义User-Agent
Browse files Browse the repository at this point in the history
  • Loading branch information
xieyy committed Sep 2, 2024
1 parent 7290a27 commit 365e24b
Show file tree
Hide file tree
Showing 7 changed files with 115 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.xyoye.common_component.weight.dialog

import android.text.InputType
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import com.xyoye.common_component.R
import com.xyoye.common_component.databinding.DialogCommonEditBinding
import com.xyoye.common_component.utils.hideKeyboard
Expand Down Expand Up @@ -39,7 +40,7 @@ class CommonEditDialog(

setPositiveListener {
val result = binding.inputEt.text.toString().trim()
if (result.isEmpty()) {
if (editBean.canInputEmpty.not() && result.isEmpty()) {
ToastCenter.showWarning(editBean.emptyWarningMsg)
return@setPositiveListener
}
Expand All @@ -59,6 +60,9 @@ class CommonEditDialog(
binding.inputEt.setText(editBean.defaultText)
binding.inputEt.hint = editBean.hint
binding.inputEt.postDelayed({ showKeyboard(binding.inputEt) }, 200)

binding.tvInputTips.isVisible = editBean.inputTips?.isNotEmpty() == true
binding.tvInputTips.text = editBean.inputTips
}

override fun dismiss() {
Expand Down
47 changes: 33 additions & 14 deletions common_component/src/main/res/layout/dialog_common_edit.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,38 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/input_et"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/background_dialog_edit"
android:gravity="center_vertical"
android:hint=""
android:maxLines="1"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:singleLine="true"
android:textColor="@color/text_black"
android:textColorHint="@color/text_gray"
android:textSize="14sp" />
android:orientation="vertical">

<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/input_et"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/background_dialog_edit"
android:gravity="center_vertical"
android:hint=""
android:maxLines="1"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:singleLine="true"
android:textColor="@color/text_black"
android:textColorHint="@color/text_gray"
android:textSize="14sp" />

<TextView
android:id="@+id/tv_input_tips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textColor="@color/text_gray"
android:textSize="12sp"
tools:text="输入提示" />

</LinearLayout>

</layout>
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ data class EditBean(
val title: String,
val emptyWarningMsg: String,
val hint: String,
val defaultText: String? = null
val defaultText: String? = null,
val inputTips: String? = null,
val canInputEmpty: Boolean = false
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.xyoye.local_component.ui.activities.bilibili_danmu

import android.content.Intent
import android.view.Menu
import android.view.MenuItem
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.xyoye.common_component.base.BaseActivity
Expand All @@ -12,13 +14,17 @@ import com.xyoye.data_component.bean.SheetActionBean
import com.xyoye.local_component.BR
import com.xyoye.local_component.R
import com.xyoye.local_component.databinding.ActivityBilibiliDanmuBinding
import com.xyoye.local_component.ui.weight.BiliBiliDanmuMenus

@Route(path = RouteTable.Local.BiliBiliDanmu)
class BilibiliDanmuActivity : BaseActivity<BilibiliDanmuViewModel, ActivityBilibiliDanmuBinding>() {
companion object {
private const val REQUEST_CODE_SELECT_URL = 1001
}

// 标题栏菜单管理器
private lateinit var mMenus: BiliBiliDanmuMenus

override fun initViewModel() =
ViewModelInit(
BR.viewModel,
Expand Down Expand Up @@ -60,6 +66,16 @@ class BilibiliDanmuActivity : BaseActivity<BilibiliDanmuViewModel, ActivityBilib
super.onActivityResult(requestCode, resultCode, data)
}

override fun onCreateOptionsMenu(menu: Menu): Boolean {
mMenus = BiliBiliDanmuMenus.inflater(this, menu)
return super.onCreateOptionsMenu(menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
mMenus.onOptionsItemSelected(item)
return super.onOptionsItemSelected(item)
}

private fun showActionDialog() {
BottomActionDialog(
this,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.xyoye.local_component.ui.weight

import android.view.Menu
import android.view.MenuItem
import com.xyoye.common_component.config.AppConfig
import com.xyoye.common_component.weight.dialog.CommonEditDialog
import com.xyoye.data_component.bean.EditBean
import com.xyoye.local_component.R
import com.xyoye.local_component.ui.activities.bilibili_danmu.BilibiliDanmuActivity

/**
* author: [email protected]
* time : 2024/9/2
* desc :
*/
class BiliBiliDanmuMenus private constructor(
private val activity: BilibiliDanmuActivity
) {

companion object {
fun inflater(activity: BilibiliDanmuActivity, menu: Menu): BiliBiliDanmuMenus {
activity.menuInflater.inflate(R.menu.menu_bilibili_danmu, menu)
return BiliBiliDanmuMenus(activity)
}
}

fun onOptionsItemSelected(item: MenuItem) {
if (item.itemId == R.id.item_modify_user_agent) {
showModifyUserAgentDialog()
return
}
}

private fun showModifyUserAgentDialog() {
CommonEditDialog(
activity,
EditBean(
"修改User-Agent",
"User-Agent不应为空",
"请输入User-Agent",
defaultText = AppConfig.getJsoupUserAgent(),
inputTips = "使用【选取链接下载】时,会携带此User-Agent请求链接的网页内容"
),
) {
AppConfig.putJsoupUserAgent(it)
}.show()
}
}
8 changes: 8 additions & 0 deletions local_component/src/main/res/menu/menu_bilibili_danmu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_modify_user_agent"
android:title="@string/action_modify_user_agent"
app:showAsAction="never" />
</menu>
2 changes: 2 additions & 0 deletions local_component/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,6 @@
<string name="action_unbind_subtitle">移除字幕绑定</string>
<string name="action_select_subtitle_file">选取本地字幕</string>
<string name="action_subtitle_key_setting">字幕API密钥</string>

<string name="action_modify_user_agent">修改User-Agent</string>
</resources>

0 comments on commit 365e24b

Please sign in to comment.