Skip to content
This repository was archived by the owner on Oct 20, 2023. It is now read-only.

Commit 3f8bae2

Browse files
committed
更新检查
1 parent c81e52a commit 3f8bae2

File tree

7 files changed

+84
-47
lines changed

7 files changed

+84
-47
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ android {
2424
applicationId "io.github.mzdluo123.mirai.android"
2525
minSdkVersion 26
2626
targetSdkVersion 30
27-
versionCode 56
27+
versionCode 55
2828
versionName "3.2.4-center"
2929
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3030
buildConfigField("String", "COREVERSION", "\"$CORE_VERSION\"")

app/src/main/java/io/github/mzdluo123/mirai/android/BotApplication.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.microsoft.appcenter.distribute.Distribute
1616
import io.github.mzdluo123.mirai.android.NotificationFactory.initNotification
1717
import io.github.mzdluo123.mirai.android.activity.CrashReportActivity
1818
import io.github.mzdluo123.mirai.android.appcenter.UpdateListener
19+
import io.github.mzdluo123.mirai.android.appcenter.trace
1920
import io.github.mzdluo123.mirai.android.crash.MiraiAndroidReportSenderFactory
2021
import io.github.mzdluo123.mirai.android.service.BotService
2122
import kotlinx.serialization.json.Json
@@ -55,12 +56,13 @@ class BotApplication : Application() {
5556
}
5657

5758
private fun initAppCenter() {
58-
59+
Distribute.setEnabledForDebuggableBuild(false)
60+
Distribute.setListener(UpdateListener())
5961
AppCenter.start(
6062
this, "70a7bed9-65ce-4526-a448-0be273dbb652",
6163
Analytics::class.java, Crashes::class.java, Distribute::class.java
6264
)
63-
Distribute.setListener(UpdateListener())
65+
6466
}
6567

6668

@@ -96,6 +98,7 @@ class BotApplication : Application() {
9698

9799
internal fun keepLive() {
98100
val notification = ForegroundNotification("MiraiAndroid", "保活服务已启动", R.mipmap.ic_launcher)
101+
trace("start keepLive")
99102
KeepLive.startWork(this, KeepLive.RunMode.ROGUE, notification, object : KeepLiveService {
100103
override fun onWorking() {
101104
startBotService()

app/src/main/java/io/github/mzdluo123/mirai/android/activity/MainActivity.kt

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package io.github.mzdluo123.mirai.android.activity
22

3-
import android.content.Intent
4-
import android.net.Uri
53
import android.os.Build
64
import android.os.Bundle
7-
import android.util.Log
85
import androidx.appcompat.app.AppCompatActivity
96
import androidx.lifecycle.lifecycleScope
107
import androidx.navigation.NavController
@@ -14,16 +11,22 @@ import androidx.navigation.ui.navigateUp
1411
import androidx.navigation.ui.setupActionBarWithNavController
1512
import androidx.navigation.ui.setupWithNavController
1613
import com.bumptech.glide.Glide
17-
import io.github.mzdluo123.mirai.android.*
14+
import io.github.mzdluo123.mirai.android.AppSettings
15+
import io.github.mzdluo123.mirai.android.BotApplication
16+
import io.github.mzdluo123.mirai.android.NotificationFactory
1817
import io.github.mzdluo123.mirai.android.R
19-
import io.github.mzdluo123.mirai.android.utils.RequestUtil
18+
import io.github.mzdluo123.mirai.android.appcenter.trace
2019
import io.github.mzdluo123.mirai.android.utils.shareText
2120
import kotlinx.android.synthetic.main.activity_main.*
2221
import kotlinx.android.synthetic.main.app_bar_main.*
23-
import kotlinx.coroutines.*
22+
import kotlinx.coroutines.Dispatchers
23+
import kotlinx.coroutines.delay
24+
import kotlinx.coroutines.launch
2425
import org.apache.commons.io.FileUtils
25-
import splitties.alertdialog.appcompat.*
26-
import splitties.toast.toast
26+
import splitties.alertdialog.appcompat.alertDialog
27+
import splitties.alertdialog.appcompat.cancelButton
28+
import splitties.alertdialog.appcompat.message
29+
import splitties.alertdialog.appcompat.okButton
2730
import java.io.File
2831

2932

@@ -71,8 +74,8 @@ class MainActivity : AppCompatActivity() {
7174
BotApplication.context.keepLive()
7275
}
7376
//updateCheckV2()
74-
if (BuildConfig.DEBUG) toast("跳过更新检查")
75-
else updateCheckV2()
77+
// if (BuildConfig.DEBUG) toast("跳过更新检查")
78+
// else updateCheckV2()
7679

7780
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
7881
alertDialog {
@@ -107,6 +110,7 @@ class MainActivity : AppCompatActivity() {
107110
navController.popBackStack()
108111
navController.navigate(R.id.nav_console) // 重新启动console fragment,使其能够链接到服务
109112
drawer_layout.closeDrawers()
113+
trace("quick reboot")
110114
}
111115

112116
private fun crashCheck() {
@@ -155,36 +159,36 @@ class MainActivity : AppCompatActivity() {
155159
// }
156160
// }
157161

158-
private fun updateCheckV2() {
159-
val exceptionHandler = CoroutineExceptionHandler { _, throwable ->
160-
runOnUiThread { toast("检查更新失败") }
161-
throwable.printStackTrace()
162-
Log.e(TAG, throwable.message ?: return@CoroutineExceptionHandler)
163-
}
164-
165-
lifecycleScope.launch(exceptionHandler + Dispatchers.IO) {
166-
val rsp = RequestUtil.get(UPDATE_URL_V2)
167-
if (rsp == null) {
168-
toast("检查更新失败,请手动到Github或论坛检查是否有新版本")
169-
return@launch
170-
}
171-
val lines = rsp.split("\n")
172-
val version = lines[0]
173-
val url = lines[1]
174-
val updateMsg = lines.subList(2, lines.size - 1).joinToString(separator = "\n") { it }
175-
if (version == BuildConfig.VERSION_NAME) {
176-
return@launch
177-
}
178-
withContext(Dispatchers.Main) {
179-
alertDialog {
180-
title = "发现新版本$version"
181-
message = updateMsg
182-
setPositiveButton("立即更新") { _, _ ->
183-
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
184-
}
185-
}.show()
186-
}
187-
188-
}
189-
}
162+
// private fun updateCheckV2() {
163+
// val exceptionHandler = CoroutineExceptionHandler { _, throwable ->
164+
// runOnUiThread { toast("检查更新失败") }
165+
// throwable.printStackTrace()
166+
// Log.e(TAG, throwable.message ?: return@CoroutineExceptionHandler)
167+
// }
168+
//
169+
// lifecycleScope.launch(exceptionHandler + Dispatchers.IO) {
170+
// val rsp = RequestUtil.get(UPDATE_URL_V2)
171+
// if (rsp == null) {
172+
// toast("检查更新失败,请手动到Github或论坛检查是否有新版本")
173+
// return@launch
174+
// }
175+
// val lines = rsp.split("\n")
176+
// val version = lines[0]
177+
// val url = lines[1]
178+
// val updateMsg = lines.subList(2, lines.size - 1).joinToString(separator = "\n") { it }
179+
// if (version == BuildConfig.VERSION_NAME) {
180+
// return@launch
181+
// }
182+
// withContext(Dispatchers.Main) {
183+
// alertDialog {
184+
// title = "发现新版本$version"
185+
// message = updateMsg
186+
// setPositiveButton("立即更新") { _, _ ->
187+
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
188+
// }
189+
// }.show()
190+
// }
191+
//
192+
// }
193+
// }
190194
}

app/src/main/java/io/github/mzdluo123/mirai/android/activity/UnsafeLoginActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.lifecycle.Observer
1111
import androidx.lifecycle.lifecycleScope
1212
import com.google.gson.JsonParser
1313
import io.github.mzdluo123.mirai.android.R
14+
import io.github.mzdluo123.mirai.android.appcenter.trace
1415
import io.github.mzdluo123.mirai.android.miraiconsole.AndroidLoginSolver
1516
import io.github.mzdluo123.mirai.android.service.ServiceConnector
1617
import kotlinx.android.synthetic.main.activity_unsafe_login.*
@@ -99,6 +100,7 @@ class UnsafeLoginActivity : AppCompatActivity() {
99100
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
100101
notificationManager.cancel(AndroidLoginSolver.CAPTCHA_NOTIFICATION_ID)
101102
finish()
103+
trace("finish UnsafeLogin")
102104
}
103105

104106

app/src/main/java/io/github/mzdluo123/mirai/android/appcenter/UpdateListener.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import splitties.alertdialog.appcompat.title
1111
class UpdateListener : DistributeListener {
1212
override fun onReleaseAvailable(activity: Activity, releaseDetails: ReleaseDetails): Boolean {
1313
val dialog = activity.alertDialog {
14-
title = "发现新版本${releaseDetails.version}"
14+
title = "发现新版本 ${releaseDetails.version}"
1515
message = releaseDetails.releaseNotes
1616
setPositiveButton("立即更新") { _, _ ->
1717
activity.startActivity(
@@ -21,6 +21,14 @@ class UpdateListener : DistributeListener {
2121
)
2222
)
2323
}
24+
setNeutralButton("查看详细信息") { _, _ ->
25+
activity.startActivity(
26+
Intent(
27+
Intent.ACTION_VIEW,
28+
releaseDetails.releaseNotesUrl
29+
)
30+
)
31+
}
2432
}
2533
activity.runOnUiThread {
2634
dialog.show()
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.mzdluo123.mirai.android.appcenter
2+
3+
import com.microsoft.appcenter.Flags
4+
import com.microsoft.appcenter.analytics.Analytics
5+
6+
internal fun trace(event: String) {
7+
Analytics.trackEvent(event)
8+
}
9+
10+
11+
internal fun traceCritical(event: String) {
12+
Analytics.trackEvent(event, mapOf(), Flags.CRITICAL)
13+
}
14+
15+
internal fun trace(event: String, vararg prop: Pair<String, String>) {
16+
val map = hashMapOf<String, String>()
17+
prop.forEach { map[it.first] = it.second }
18+
Analytics.trackEvent(event, map)
19+
}

app/src/main/java/io/github/mzdluo123/mirai/android/miraiconsole/AndroidMiraiConsole.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import io.github.mzdluo123.mirai.android.AppSettings
1717
import io.github.mzdluo123.mirai.android.BotApplication
1818
import io.github.mzdluo123.mirai.android.BuildConfig
1919
import io.github.mzdluo123.mirai.android.NotificationFactory
20+
import io.github.mzdluo123.mirai.android.appcenter.trace
2021
import io.github.mzdluo123.mirai.android.service.BotService
2122
import io.ktor.client.*
2223
import io.ktor.client.request.*
@@ -151,7 +152,7 @@ class AndroidMiraiConsole(
151152
NotificationManagerCompat.from(BotApplication.context)
152153
.cancel(BotService.OFFLINE_NOTIFICATION_ID)
153154
}
154-
155+
trace("login success")
155156
}
156157

157158

0 commit comments

Comments
 (0)