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

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

View File

@@ -4,9 +4,11 @@ import android.annotation.SuppressLint
import android.content.Context
import android.text.InputFilter
import android.view.KeyEvent
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog
import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.pluginclient.JsonSocketClient
import org.autojs.autojs.ui.main.drawer.DrawerMenuDisposableItem
import org.autojs.autojs.util.Observers
@@ -98,20 +100,47 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
it.remove(text)
dHistories.notifyItemsChanged()
DialogUtils.toggleContentViewByItems(dHistories)
DialogUtils.toggleActionButtonAbilityByItems(dHistories, DialogAction.NEUTRAL)
}
}
.show()
}
}
.negativeText(R.string.dialog_button_cancel)
.negativeColorRes(R.color.dialog_button_default)
.onNegative { dHistories, _ -> dHistories.dismiss() }
.neutralText(R.string.dialog_button_clear_items)
.neutralColorRes(R.color.dialog_button_warn)
.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)
.show()
.also { DialogUtils.toggleContentViewByItems(it) }
.also {
DialogUtils.toggleContentViewByItems(it)
DialogUtils.toggleActionButtonAbilityByItems(it, DialogAction.NEUTRAL)
}
}
.negativeText(R.string.text_cancel)
.onNegative { dialog, _ -> dialog.dismiss() }
.positiveText(R.string.dialog_button_confirm)
.autoDismiss(false)
.dismissListener(onConnectionDialogDismissed)
.show()

View File

@@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog
import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref
@@ -85,16 +86,42 @@ object UpdateUtils {
.onNeutral { dVersionInfo, _ ->
showRemoveIgnoredVersionPrompt(context, dialog, dVersionInfo, text)
}
.positiveText(R.string.dialog_button_cancel)
.positiveText(R.string.dialog_button_back)
.onPositive { dVersionInfo, _ -> dVersionInfo.dismiss() }
.autoDismiss(false)
.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)
.positiveColorRes(R.color.dialog_button_default)
.onPositive { dialog, _ -> dialog.dismiss() }
.autoDismiss(false)
.build()
.also { DialogUtils.toggleContentViewByItems(it) }
.also {
DialogUtils.toggleContentViewByItems(it)
DialogUtils.toggleActionButtonAbilityByItems(it, DialogAction.NEUTRAL)
}
.show()
}
@@ -131,6 +158,11 @@ object UpdateUtils {
Pref.putLinkedHashSet(R.string.key_ignored_updates, ignoredVersions)
}
private fun clearIgnoredVersions() {
ignoredVersions.clear()
Pref.putLinkedHashSet(R.string.key_ignored_updates, ignoredVersions)
}
@JvmStatic
@JvmOverloads
fun autoCheckForUpdatesIfNeededWithSnackbar(activity: AppCompatActivity, snackbarViewIdRes: Int = android.R.id.content) {