Skip to content

Commit

Permalink
Merge pull request #88 from ArcticFoxPro/master
Browse files Browse the repository at this point in the history
新增可查看本机 TIM 的 QQ 底包版本,新增关于界面可查看开放源代码许可,本机 QQ、TIM 版本详情新增 QUA 项,腾讯应用宝更新获取新增腾讯企点,更改桌面图标为特定图标
  • Loading branch information
klxiaoniu authored Nov 4, 2024
2 parents b35eee0 + 652b3a5 commit de27d9e
Show file tree
Hide file tree
Showing 60 changed files with 604 additions and 326 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ QQ 版本列表实用工具不能实现“检测到新测试版本下载直链
> QQ 版本列表实用工具始终坚守法律底线,秉持尊重与保护所有用户及第三方合法权益的原则。我们深切认识到任何可能存在的权益侵犯行为都会对权益方造成潜在影响,对此,我们表示由衷歉意,并承诺,一旦接到权益方的权益受到侵犯的通知,我们将立即依法启动核查程序,并在确认侵权事实后,迅速采取有效措施,以最大程度地消除不良影响,恢复并保障权益方的合法权益。敬请相关权益方在发现 QQ 版本列表实用工具存在任何侵权内容时,及时与我们取得联系,我们将竭诚为权益方提供必要的协助与支持。
> [!NOTE]
> “腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”等是深圳市腾讯计算机系统有限公司和/或其关联公司的商标。本项目对“腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”等的使用旨在注明和指向对应主体,并非表示对“腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”等商标的注册和拥有。
> “腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”“腾讯企点”等是深圳市腾讯计算机系统有限公司和/或其关联公司的商标。本项目对“腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”“腾讯企点”等的使用旨在注明和指向对应主体,并非表示对“腾讯”“QQ”“腾讯 QQ”“腾讯 TIM”“微信”“WeChat”“Weixin”“腾讯微信”“企业微信”“WeCom”“微信输入法”“WeType”“应用宝”“腾讯应用宝”“腾讯企点”等商标的注册和拥有。
>
> Android™ 是 Google LLC 的商标。
>
Expand Down Expand Up @@ -285,7 +285,7 @@ QQ 版本列表实用工具的诞生离不开以下开源项目,感谢以下
- [Kotlin Serialization](https://github.com/Kotlin/kotlinx.serialization),Licensed under [Apache License Version 2.0](https://github.com/Kotlin/kotlinx.serialization/blob/master/LICENSE.txt)
- [Get QQ Update Link(owo233)](https://github.com/callng/GQUL),Licensed under [The Unlicense](https://github.com/callng/GQUL/blob/master/LICENSE)
- [Paris(Airbnb)](https://github.com/airbnb/paris),Licensed under [Apache License Version 2.0](https://github.com/airbnb/paris/blob/master/LICENSE)
- [Apache Maven](https://maven.apache.org/),Licensed under [Apache License Version 2.0](https://github.com/apache/maven/blob/master/LICENSE)
- [Apache Maven](https://maven.apache.org/),Licensed under [Apache License Version 2.0](https://github.com/apache/maven/blob/master/LICENSE)
- [Gradle](https://gradle.org/),Licensed under [Apache License Version 2.0](https://github.com/gradle/gradle/blob/master/LICENSE)
- [Material Symbols / Material Icons(Google)](https://fonts.google.com/icons),Licensed under [Apache License Version 2.0](https://github.com/google/material-design-icons/blob/master/LICENSE)
- [Obtainium(Imran)](https://github.com/ImranR98/Obtainium),Licensed under [GNU General Public License Version 3](https://github.com/ImranR98/Obtainium/blob/main/LICENSE.md)
Expand All @@ -294,6 +294,7 @@ QQ 版本列表实用工具的诞生离不开以下开源项目,感谢以下
- [AndroidFastScroll(张海)](https://github.com/zhanghai/AndroidFastScroll),Licensed under [Apache License Version 2.0](https://github.com/zhanghai/AndroidFastScroll/blob/master/LICENSE)
- [Kotlin Coroutines on Android](https://github.com/Kotlin/kotlinx.coroutines),Licensed under [Apache License Version 2.0](https://github.com/Kotlin/kotlinx.coroutines/blob/master/LICENSE.txt)
- [Google Play services Plugins](https://github.com/google/play-services-plugins),Licensed under [Apache License Version 2.0](https://github.com/google/play-services-plugins/blob/main/LICENSE)
- [Apache Commons™](https://commons.apache.org/),Licensed under [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)

## 商业服务鸣谢

Expand Down
5 changes: 4 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
id("com.google.gms.google-services")
kotlin("plugin.serialization") version "2.0.21"
id("com.google.android.gms.oss-licenses-plugin")
}

fun String.execute(currentWorkingDir: File = file("./")): String {
Expand All @@ -48,7 +49,7 @@ android {
minSdk = 24
targetSdk = 35
versionCode = gitCommitCount
versionName = "1.4.1-$gitCommitHash"
versionName = "1.4.2-$gitCommitHash"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
Expand Down Expand Up @@ -120,4 +121,6 @@ dependencies {
implementation(libs.kotlinx.coroutines.android)
implementation(libs.library)
implementation(libs.androidx.browser)
implementation(libs.play.services.oss.licenses)
implementation(libs.commons.compress)
}
10 changes: 8 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
android:enableOnBackInvokedCallback="true"
android:fullBackupContent="@xml/backup_rules"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_launcher_special"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/ic_launcher_special_round"
android:supportsRtl="true"
android:theme="@style/Theme.QQVersionList"
android:usesCleartextTraffic="true"
Expand All @@ -54,6 +54,12 @@
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
<activity
android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
android:theme="@style/Theme.OssLicensesMenuActivity" />
<activity
android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
android:theme="@style/Theme.OssLicensesMenuActivity" />
<!-- Set custom default icon. This is used when no icon is set for incoming notification messages.
See README(https://goo.gl/l4GJaQ) for more. -->
<meta-data
Expand Down
Binary file added app/src/main/ic_launcher_special-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class QVTApplication : Application() {
const val EARLIEST_ACCESSIBILITY_QQ_VERSION = false
const val EARLIEST_ACCESSIBILITY_TIM_VERSION = false
const val EARLIEST_QQNT_FRAMEWORK_QQ_VERSION_STABLE = "8.9.63"
const val EARLIEST_QQNT_FRAMEWORK_TIM_VERSION_STABLE = false
const val EARLIEST_QQNT_FRAMEWORK_TIM_VERSION_STABLE = "4.0.0"
const val EARLIEST_UNREAL_ENGINE_QQ_VERSION_STABLE = "8.8.55"
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
/*
QQ Versions Tool for Android™
Copyright (C) 2023 klxiaoniu
This program is free 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 (at your option) any later version.
This program 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
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/


package com.xiaoniu.qqversionlist.service

import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Intent
import androidx.core.app.NotificationCompat
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
Expand Down
14 changes: 9 additions & 5 deletions app/src/main/java/com/xiaoniu/qqversionlist/ui/LocalQQAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ package com.xiaoniu.qqversionlist.ui

import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import android.widget.Toast
Expand Down Expand Up @@ -54,11 +53,9 @@ class LocalQQAdapter : RecyclerView.Adapter<LocalQQAdapter.LocalQQViewHolder>()
holder.apply {
if (QQVersionInstall2 != "") {
itemQqInstallText.text =
if (QQChannelInstall != "") itemView.context.getString(R.string.localQQVersion) + DataStoreUtil.getStringKV(
itemView.context.getString(R.string.localQQVersion) + DataStoreUtil.getStringKV(
"QQVersionInstall", ""
) + QQRdmUUIDInstall + (if (QQVersionCodeInstall2 != "") " (${QQVersionCodeInstall2})" else "") + " - $QQChannelInstall" else itemView.context.getString(
R.string.localQQVersion
) + DataStoreUtil.getStringKV("QQVersionInstall", "")
) + QQRdmUUIDInstall + (if (QQVersionCodeInstall2 != "") " (${QQVersionCodeInstall2})" else "") + (if (QQChannelInstall != "") " - $QQChannelInstall" else "")
itemQqInstallCard.isVisible = true

// 无障碍标记
Expand Down Expand Up @@ -144,6 +141,13 @@ class LocalQQAdapter : RecyclerView.Adapter<LocalQQAdapter.LocalQQViewHolder>()
DataStoreUtil.getStringKV(
"QQAppSettingParamsPadInstall", ""
)
}" else "") + (if (DataStoreUtil.getStringKV(
"QQQua", ""
) != ""
) "<br><b>QUA</b>: ${
DataStoreUtil.getStringKV(
"QQQua", ""
)
}" else ""), HtmlCompat.FROM_HTML_MODE_LEGACY
)
setTextIsSelectable(true)
Expand Down
31 changes: 26 additions & 5 deletions app/src/main/java/com/xiaoniu/qqversionlist/ui/LocalTIMAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ package com.xiaoniu.qqversionlist.ui

import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import android.widget.Toast
Expand All @@ -44,22 +43,28 @@ class LocalTIMAdapter : RecyclerView.Adapter<LocalTIMAdapter.LocalTIMViewHolder>
val TIMVersionInstall2 = DataStoreUtil.getStringKV("TIMVersionInstall", "")
val TIMVersionCodeInstall2 = DataStoreUtil.getStringKV("TIMVersionCodeInstall", "")
val TIMAppSettingParamsInstall = DataStoreUtil.getStringKV("TIMAppSettingParamsInstall", "")
val TIMQua = DataStoreUtil.getStringKV("TIMQua", "")
val TIMRdmUUIDInstall = if (DataStoreUtil.getStringKV(
"TIMRdmUUIDInstall", ""
) != ""
) ".${DataStoreUtil.getStringKV("TIMRdmUUIDInstall", "").split("_")[0]}" else ""
val TIMChannelInstall = if (TIMAppSettingParamsInstall != "") DataStoreUtil.getStringKV(
"TIMAppSettingParamsInstall", ""
).split("#")[3] else ""
val TIMBasedOnQQVer =
if (TIMQua != "") DataStoreUtil.getStringKV("TIMQua", "").split("_")[3] else ""
holder.apply {
if (TIMVersionInstall2 != "") {
itemTimInstallText.text =
if (TIMChannelInstall != "") itemView.context.getString(R.string.localTIMVersion) + DataStoreUtil.getStringKV(
itemView.context.getString(R.string.localTIMVersion) + DataStoreUtil.getStringKV(
"TIMVersionInstall", ""
) + TIMRdmUUIDInstall + (if (TIMVersionCodeInstall2 != "") " (${TIMVersionCodeInstall2})" else "") + " - $TIMChannelInstall" else itemView.context.getString(
R.string.localTIMVersion
) + DataStoreUtil.getStringKV("TIMVersionInstall", "")
) + TIMRdmUUIDInstall + (if (TIMVersionCodeInstall2 != "") " (${TIMVersionCodeInstall2})" else "") + (if (TIMChannelInstall != "") " - $TIMChannelInstall" else "")
itemTimInstallCard.isVisible = true
itemTimInstallBasedOn.text = if (TIMBasedOnQQVer != "") itemView.context.getString(
R.string.basedOnQQVer, TIMBasedOnQQVer
) else ""
itemTimInstallBasedOn.isVisible = TIMBasedOnQQVer != ""
itemTimInstallBasedOnCard.isVisible = TIMBasedOnQQVer != ""
itemTimInstallCard.setOnLongClickListener {
if (DataStoreUtil.getBooleanKV("longPressCard", true)) {
val tv = TextView(itemView.context).apply {
Expand Down Expand Up @@ -110,6 +115,20 @@ class LocalTIMAdapter : RecyclerView.Adapter<LocalTIMAdapter.LocalTIMViewHolder>
DataStoreUtil.getStringKV(
"TIMAppSettingParamsInstall", ""
)
}" else "") + (if (DataStoreUtil.getStringKV(
"TIMAppSettingParamsPadInstall", ""
) != ""
) "<br><b>AppSetting_params_pad</b>: ${
DataStoreUtil.getStringKV(
"TIMAppSettingParamsPadInstall", ""
)
}" else "") + (if (DataStoreUtil.getStringKV(
"TIMQua", ""
) != ""
) "<br><b>QUA</b>: ${
DataStoreUtil.getStringKV(
"TIMQua", ""
)
}" else ""), HtmlCompat.FROM_HTML_MODE_LEGACY
)
setTextIsSelectable(true)
Expand Down Expand Up @@ -143,6 +162,8 @@ class LocalTIMAdapter : RecyclerView.Adapter<LocalTIMAdapter.LocalTIMViewHolder>
RecyclerView.ViewHolder(binding.root) {
val itemTimInstallCard = binding.itemTimInstallCard
val itemTimInstallText = binding.itemTimInstallText
val itemTimInstallBasedOn = binding.itemTimInstallBasedOn
val itemTimInstallBasedOnCard = binding.itemTimInstallBasedOnCard
}
}

Loading

0 comments on commit de27d9e

Please sign in to comment.