6.6.3 - Alpha2 - 已忽略更新记录及客户端模式连接地址记录支持清空操作

This commit is contained in:
SuperMonster003
2025-05-09 17:06:26 +08:00
parent 81d9d42ea8
commit f20b08a169
4 changed files with 78 additions and 12 deletions

View File

@@ -21,6 +21,7 @@
"improvement": [ "improvement": [
"关于应用与开发者页面增加水平布局及小屏布局适配", "关于应用与开发者页面增加水平布局及小屏布局适配",
"打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_", "打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_",
"已忽略更新记录及客户端模式连接地址记录支持清空操作",
"版本更新信息支持多语言显示 (与当前显示语言同步)", "版本更新信息支持多语言显示 (与当前显示语言同步)",
"使用异步加载方式一定程度提升文件管理器列表滑动流畅性" "使用异步加载方式一定程度提升文件管理器列表滑动流畅性"
], ],

View File

@@ -12,6 +12,7 @@ import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.CheckBox import android.widget.CheckBox
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import org.autojs.autojs.theme.preference.LongClickablePreferenceLike import org.autojs.autojs.theme.preference.LongClickablePreferenceLike
import org.autojs.autojs.ui.explorer.ExplorerView import org.autojs.autojs.ui.explorer.ExplorerView
@@ -30,12 +31,11 @@ object DialogUtils {
val context = dialog.context val context = dialog.context
if (!isActivityContext(context)) { if (!isActivityContext(context)) {
val window = dialog.window val window = dialog.window
val type = when (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val type = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
true -> WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
else -> { } else {
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
WindowManager.LayoutParams.TYPE_PHONE WindowManager.LayoutParams.TYPE_PHONE
}
} }
window?.setType(type) window?.setType(type)
} }
@@ -64,6 +64,10 @@ object DialogUtils {
} }
} }
fun toggleActionButtonAbilityByItems(dialog: MaterialDialog, actionButton: DialogAction) {
dialog.getActionButton(actionButton)?.isEnabled = !dialog.items.isNullOrEmpty()
}
@JvmStatic @JvmStatic
fun adaptToExplorer(dialog: MaterialDialog, explorerView: ExplorerView): MaterialDialog { fun adaptToExplorer(dialog: MaterialDialog, explorerView: ExplorerView): MaterialDialog {
val time = object : Any() { val time = object : Any() {

View File

@@ -4,9 +4,11 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.text.InputFilter import android.text.InputFilter
import android.view.KeyEvent import android.view.KeyEvent
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import org.autojs.autojs.app.DialogUtils import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.pluginclient.JsonSocketClient import org.autojs.autojs.pluginclient.JsonSocketClient
import org.autojs.autojs.ui.main.drawer.DrawerMenuDisposableItem import org.autojs.autojs.ui.main.drawer.DrawerMenuDisposableItem
import org.autojs.autojs.util.Observers import org.autojs.autojs.util.Observers
@@ -98,20 +100,47 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
it.remove(text) it.remove(text)
dHistories.notifyItemsChanged() dHistories.notifyItemsChanged()
DialogUtils.toggleContentViewByItems(dHistories) DialogUtils.toggleContentViewByItems(dHistories)
DialogUtils.toggleActionButtonAbilityByItems(dHistories, DialogAction.NEUTRAL)
} }
} }
.show() .show()
} }
} }
.negativeText(R.string.dialog_button_cancel) .neutralText(R.string.dialog_button_clear_items)
.negativeColorRes(R.color.dialog_button_default) .neutralColorRes(R.color.dialog_button_warn)
.onNegative { dHistories, _ -> dHistories.dismiss() } .onNeutral { dHistories, _ ->
MaterialDialog.Builder(context)
.title(R.string.text_prompt)
.content(R.string.text_confirm_to_clear_all_histories)
.negativeText(R.string.dialog_button_cancel)
.negativeColorRes(R.color.dialog_button_default)
.positiveText(R.string.dialog_button_confirm)
.positiveColorRes(R.color.dialog_button_caution)
.onPositive { _, _ ->
JsonSocketClient.clearAllHistories()
dHistories.items?.let {
it.clear()
dHistories.notifyItemsChanged()
DialogUtils.toggleContentViewByItems(dHistories)
DialogUtils.toggleActionButtonAbilityByItems(dHistories, DialogAction.NEUTRAL)
}
ViewUtils.showSnack(dHistories.view, R.string.text_all_histories_cleared)
}
.show()
}
.positiveText(R.string.dialog_button_back)
.positiveColorRes(R.color.dialog_button_default)
.onPositive { dHistories, _ -> dHistories.dismiss() }
.autoDismiss(false) .autoDismiss(false)
.show() .show()
.also { DialogUtils.toggleContentViewByItems(it) } .also {
DialogUtils.toggleContentViewByItems(it)
DialogUtils.toggleActionButtonAbilityByItems(it, DialogAction.NEUTRAL)
}
} }
.negativeText(R.string.text_cancel) .negativeText(R.string.text_cancel)
.onNegative { dialog, _ -> dialog.dismiss() } .onNegative { dialog, _ -> dialog.dismiss() }
.positiveText(R.string.dialog_button_confirm)
.autoDismiss(false) .autoDismiss(false)
.dismissListener(onConnectionDialogDismissed) .dismissListener(onConnectionDialogDismissed)
.show() .show()

View File

@@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri import androidx.core.net.toUri
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import org.autojs.autojs.app.DialogUtils import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref import org.autojs.autojs.core.pref.Pref
@@ -85,16 +86,42 @@ object UpdateUtils {
.onNeutral { dVersionInfo, _ -> .onNeutral { dVersionInfo, _ ->
showRemoveIgnoredVersionPrompt(context, dialog, dVersionInfo, text) showRemoveIgnoredVersionPrompt(context, dialog, dVersionInfo, text)
} }
.positiveText(R.string.dialog_button_cancel) .positiveText(R.string.dialog_button_back)
.onPositive { dVersionInfo, _ -> dVersionInfo.dismiss() } .onPositive { dVersionInfo, _ -> dVersionInfo.dismiss() }
.autoDismiss(false) .autoDismiss(false)
.show() .show()
} }
.neutralText(R.string.dialog_button_clear_items)
.neutralColorRes(R.color.dialog_button_warn)
.onNeutral { dialogParent, _ ->
MaterialDialog.Builder(context)
.title(R.string.text_prompt)
.content(R.string.text_confirm_to_clear_all_items)
.negativeText(R.string.dialog_button_cancel)
.negativeColorRes(R.color.dialog_button_default)
.positiveText(R.string.dialog_button_confirm)
.positiveColorRes(R.color.dialog_button_caution)
.onPositive { _, _ ->
clearIgnoredVersions()
dialogParent.items?.let {
it.clear()
dialogParent.notifyItemsChanged()
DialogUtils.toggleContentViewByItems(dialogParent)
DialogUtils.toggleActionButtonAbilityByItems(dialogParent, DialogAction.NEUTRAL)
}
ViewUtils.showSnack(dialogParent.view, R.string.text_all_items_cleared)
}
.show()
}
.positiveText(R.string.dialog_button_dismiss) .positiveText(R.string.dialog_button_dismiss)
.positiveColorRes(R.color.dialog_button_default)
.onPositive { dialog, _ -> dialog.dismiss() } .onPositive { dialog, _ -> dialog.dismiss() }
.autoDismiss(false) .autoDismiss(false)
.build() .build()
.also { DialogUtils.toggleContentViewByItems(it) } .also {
DialogUtils.toggleContentViewByItems(it)
DialogUtils.toggleActionButtonAbilityByItems(it, DialogAction.NEUTRAL)
}
.show() .show()
} }
@@ -131,6 +158,11 @@ object UpdateUtils {
Pref.putLinkedHashSet(R.string.key_ignored_updates, ignoredVersions) Pref.putLinkedHashSet(R.string.key_ignored_updates, ignoredVersions)
} }
private fun clearIgnoredVersions() {
ignoredVersions.clear()
Pref.putLinkedHashSet(R.string.key_ignored_updates, ignoredVersions)
}
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
fun autoCheckForUpdatesIfNeededWithSnackbar(activity: AppCompatActivity, snackbarViewIdRes: Int = android.R.id.content) { fun autoCheckForUpdatesIfNeededWithSnackbar(activity: AppCompatActivity, snackbarViewIdRes: Int = android.R.id.content) {