Add EasterEggsForTheNonexistent
Signed-off-by: singleNeuron <Cryolitia@gmail.com>
This commit is contained in:
committed by
singleNeuron
parent
da0e2bcb03
commit
66735e7290
@@ -56,6 +56,7 @@ import io.github.qauxv.dsl.func.IDslParentNode
|
||||
import io.github.qauxv.util.NonUiThread
|
||||
import io.github.qauxv.util.SyncUtils
|
||||
import io.github.qauxv.util.UiThread
|
||||
import me.singleneuron.util.processSearchEasterEgg
|
||||
|
||||
/**
|
||||
* The search sub fragment of [SettingsMainFragment]
|
||||
@@ -108,6 +109,7 @@ class SearchOverlaySubFragment {
|
||||
override fun onQueryTextSubmit(query: String) = false
|
||||
|
||||
override fun onQueryTextChange(newText: String): Boolean {
|
||||
processSearchEasterEgg(newText, requireContext())
|
||||
search(newText)
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AlphaAnimation
|
||||
import android.widget.FrameLayout
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
@@ -43,9 +44,8 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import cc.ioctl.util.LayoutHelper.MATCH_PARENT
|
||||
import cc.ioctl.util.ui.drawable.BackgroundDrawableUtils
|
||||
import io.github.qauxv.R
|
||||
import io.github.qauxv.util.SyncUtils
|
||||
import io.github.qauxv.util.SyncUtils.async
|
||||
import io.github.qauxv.util.SyncUtils.runOnUiThread
|
||||
import io.github.qauxv.bridge.AppRuntimeHelper
|
||||
import io.github.qauxv.bridge.ContactUtils
|
||||
import io.github.qauxv.config.ConfigManager
|
||||
import io.github.qauxv.core.MainHook
|
||||
import io.github.qauxv.dsl.FunctionEntryRouter
|
||||
@@ -60,8 +60,12 @@ import io.github.qauxv.dsl.item.DslTMsgListItemInflatable
|
||||
import io.github.qauxv.dsl.item.SimpleListItem
|
||||
import io.github.qauxv.dsl.item.TMsgListItem
|
||||
import io.github.qauxv.dsl.item.UiAgentItem
|
||||
import io.github.qauxv.util.SyncUtils
|
||||
import io.github.qauxv.util.SyncUtils.async
|
||||
import io.github.qauxv.util.SyncUtils.runOnUiThread
|
||||
import io.github.qauxv.util.UiThread
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import me.singleneuron.util.forSuBanXia
|
||||
|
||||
class SettingsMainFragment : BaseRootLayoutFragment() {
|
||||
|
||||
@@ -185,6 +189,22 @@ class SettingsMainFragment : BaseRootLayoutFragment() {
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
try {
|
||||
if (ContactUtils.getBuddyName(AppRuntimeHelper.getAppRuntime()!!, AppRuntimeHelper.getAccount())
|
||||
?.contains("\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F") == true &&
|
||||
ConfigManager.forAccount(AppRuntimeHelper.getLongAccountUin()).getBoolean("ForSuBanXia", true)
|
||||
) {
|
||||
AlertDialog.Builder(requireContext())
|
||||
.setTitle(forSuBanXia.first)
|
||||
.setMessage(forSuBanXia.second + "\n\n当你心情低落的时候,就在QA的搜索里输入MtF/FtM回来看看我吧! ^_^")
|
||||
.setPositiveButton("OK", null)
|
||||
.create()
|
||||
.show()
|
||||
ConfigManager.forAccount(AppRuntimeHelper.getLongAccountUin()).putBoolean("ForSuBanXia", false)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
//ignored
|
||||
}
|
||||
if (!mTargetUiAgentNavId.isNullOrEmpty() && !mTargetUiAgentNavigated) {
|
||||
navigateToTargetUiAgentItem()
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* QAuxiliary - An Xposed module for QQ/TIM
|
||||
* Copyright (C) 2019-2022 qwq233@qwq2333.top
|
||||
* https://github.com/cinit/QAuxiliary
|
||||
*
|
||||
* This software is non-free but opensource software: you can redistribute it
|
||||
* and/or modify it under the terms of the GNU Affero General Public License
|
||||
* as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version and our eula as published
|
||||
* by QAuxiliary contributors.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* and eula along with this software. If not, see
|
||||
* <https://www.gnu.org/licenses/>
|
||||
* <https://github.com/cinit/QAuxiliary/blob/master/LICENSE.md>.
|
||||
*/
|
||||
|
||||
package me.singleneuron.util
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Base64
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
|
||||
fun processSearchEasterEgg(text: String, context: Context) {
|
||||
for (pair in easterEggsMap) {
|
||||
for (key in pair.key) {
|
||||
if (text.contains(key, true)) {
|
||||
AlertDialog.Builder(context)
|
||||
.setTitle(pair.value.first)
|
||||
.setMessage(pair.value.second)
|
||||
.setPositiveButton("OK", null)
|
||||
.create()
|
||||
.show()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val easterEggsMap by lazy {
|
||||
hashMapOf(
|
||||
arrayOf("\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F", "mtf", "mtx", "ftm", "ftx", "transgender") to forSuBanXia,
|
||||
)
|
||||
}
|
||||
|
||||
val forSuBanXia: Pair<String, String> = (String(Base64.decode("Rm9yIHVzIA==", Base64.DEFAULT)) + "\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F" to String(
|
||||
Base64.decode(
|
||||
"5oS/5q+P5LiA5Liq5Lq66YO96IO96Ieq55Sx55qE55Sf5rS75Zyo6Ziz5YWJ5LiL77yM5oS/5oiR55qE6byT5Yqx5LiO5YuH5rCU6ZqPUUF1eGlsaWFyeeS8tOS9oOi6q+aXgeOAggoKCQkJCeKAlOKAlENyeW9saXRpYSwgYW4gZXhvcmRpbmFyeSBkZXZlbG9wZXIsIGFuIG9yZGluYXJ5IE10Rg==",
|
||||
Base64.CRLF
|
||||
)
|
||||
))
|
||||
@@ -1,3 +1,4 @@
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
import org.gradle.api.JavaVersion
|
||||
import org.gradle.api.Project
|
||||
import java.io.File
|
||||
@@ -9,7 +10,7 @@ object Version {
|
||||
val java = JavaVersion.VERSION_11
|
||||
|
||||
const val compileSdkVersion = 33
|
||||
const val buildToolsVersion = "33.0.0"
|
||||
val buildToolsVersion = if (Os.isFamily(Os.FAMILY_WINDOWS)) "32.0.0" else "33.0.0"
|
||||
const val minSdk = 24
|
||||
const val targetSdk = 33
|
||||
const val versionName = "1.3.4"
|
||||
|
||||
Reference in New Issue
Block a user