From 67c421af70f6fa9cdc20fdd943dc308767db6f18 Mon Sep 17 00:00:00 2001 From: alone-wolf <1031629044@qq.com> Date: Sun, 23 Jan 2022 11:37:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=B6=85=E9=87=8F=E8=AF=B7=E6=B1=82=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 9 +++--- android/app/debug/output-metadata.json | 20 ------------- .../main/java/com/pushdeer/os/MainActivity.kt | 16 ++-------- .../os/data/database/entity/LogDog.kt | 6 +++- .../os/ui/compose/page/main/DeviceListPage.kt | 2 +- .../os/ui/compose/page/main/KeyListPage.kt | 4 +-- .../os/ui/compose/page/main/MainPage.kt | 7 ----- .../ui/compose/page/main/MessageListPage.kt | 2 +- .../com/pushdeer/os/util/NotificationUtil.kt | 23 +++++++++++++++ .../os/viewmodel/PushDeerViewModel.kt | 29 ++++++++++++++----- 10 files changed, 60 insertions(+), 58 deletions(-) delete mode 100644 android/app/debug/output-metadata.json create mode 100644 android/app/src/main/java/com/pushdeer/os/util/NotificationUtil.kt diff --git a/android/app/build.gradle b/android/app/build.gradle index 7b19126..49aa88e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.pushdeer.os" minSdk 22 targetSdk 31 - versionCode 1 - versionName "1.0-dev-2" + versionCode 4 + versionName "1.0-dev-4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { @@ -84,6 +84,7 @@ dependencies { implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version" implementation "com.google.accompanist:accompanist-insets:$accompanist_version" // implementation "com.google.accompanist:accompanist-insets-ui:$accompanist_version" +// implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version" // room def room_version = "2.4.0" @@ -109,6 +110,6 @@ dependencies { implementation "io.coil-kt:coil:1.4.0" implementation 'com.github.vishalkumarsinghvi:sign-in-with-apple-button-android:0.6' -// implementation 'com.github.bumptech.glide:glide:4.12.0' -// annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' + + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1' } \ No newline at end of file diff --git a/android/app/debug/output-metadata.json b/android/app/debug/output-metadata.json deleted file mode 100644 index c0fa5ae..0000000 --- a/android/app/debug/output-metadata.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": 3, - "artifactType": { - "type": "APK", - "kind": "Directory" - }, - "applicationId": "com.pushdeer.os", - "variantName": "debug", - "elements": [ - { - "type": "SINGLE", - "filters": [], - "attributes": [], - "versionCode": 1, - "versionName": "1.0-dev-2", - "outputFile": "app-debug.apk" - } - ], - "elementType": "File" -} \ No newline at end of file diff --git a/android/app/src/main/java/com/pushdeer/os/MainActivity.kt b/android/app/src/main/java/com/pushdeer/os/MainActivity.kt index 7db26c0..bb04776 100644 --- a/android/app/src/main/java/com/pushdeer/os/MainActivity.kt +++ b/android/app/src/main/java/com/pushdeer/os/MainActivity.kt @@ -1,11 +1,8 @@ package com.pushdeer.os -import android.app.NotificationChannel -import android.app.NotificationManager import android.content.ClipboardManager import android.content.Context import android.content.Intent -import android.os.Build import android.os.Bundle import android.text.util.Linkify import androidx.activity.compose.setContent @@ -37,6 +34,7 @@ import com.pushdeer.os.ui.compose.page.LoginPage import com.pushdeer.os.ui.compose.page.main.MainPage import com.pushdeer.os.ui.theme.PushDeerTheme import com.pushdeer.os.util.ActivityOpener +import com.pushdeer.os.util.NotificationUtil import com.pushdeer.os.util.SystemUtil import com.pushdeer.os.viewmodel.LogDogViewModel import com.pushdeer.os.viewmodel.MessageViewModel @@ -110,17 +108,7 @@ class MainActivity : AppCompatActivity(), RequestHolder { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - notificationManager.createNotificationChannel( - NotificationChannel( - "high_system", - "服务提醒", - NotificationManager.IMPORTANCE_HIGH - ) - ) - } - + NotificationUtil.setupChannel(this) myActivity = this qrScanActivityOpener = ActivityOpener.forResult(this) diff --git a/android/app/src/main/java/com/pushdeer/os/data/database/entity/LogDog.kt b/android/app/src/main/java/com/pushdeer/os/data/database/entity/LogDog.kt index d25fb2a..960c90a 100644 --- a/android/app/src/main/java/com/pushdeer/os/data/database/entity/LogDog.kt +++ b/android/app/src/main/java/com/pushdeer/os/data/database/entity/LogDog.kt @@ -15,7 +15,11 @@ class LogDog { var timestamp:Long = System.currentTimeMillis() override fun toString(): String { - return "id:$id level:$level entity:$entity\nlog:$log time:${timestamp.toTimestamp()}" + return "id:$id\n" + + "level:$level\n" + + "entity:$entity\n" + + "log:$log\n" + + "time:${timestamp.toTimestamp()}" } // @Composable diff --git a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/DeviceListPage.kt b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/DeviceListPage.kt index 2f60cd7..66ed18f 100644 --- a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/DeviceListPage.kt +++ b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/DeviceListPage.kt @@ -31,7 +31,7 @@ import kotlinx.coroutines.launch @Composable fun DeviceListPage(requestHolder: RequestHolder) { - SideEffect { + LaunchedEffect(Unit) { requestHolder.coroutineScope.launch { requestHolder.pushDeerViewModel.deviceList() } diff --git a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/KeyListPage.kt b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/KeyListPage.kt index 878037f..3a04287 100644 --- a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/KeyListPage.kt +++ b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/KeyListPage.kt @@ -9,7 +9,7 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect +import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -26,7 +26,7 @@ import kotlinx.coroutines.launch @Composable fun KeyListPage(requestHolder: RequestHolder) { - SideEffect { + LaunchedEffect(Unit) { requestHolder.coroutineScope.launch { requestHolder.pushDeerViewModel.keyList() } diff --git a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt index eb42f8f..52fc01a 100644 --- a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt +++ b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt @@ -26,19 +26,12 @@ import com.pushdeer.os.holder.RequestHolder import com.pushdeer.os.ui.navigation.Page import com.pushdeer.os.ui.navigation.pageList import com.pushdeer.os.ui.theme.mainBottomBtn -import kotlinx.coroutines.launch @ExperimentalAnimationApi @ExperimentalMaterialApi @Composable fun MainPage(requestHolder: RequestHolder) { - SideEffect { - requestHolder.coroutineScope.launch { - requestHolder.pushDeerViewModel.userInfo() - } - } - var titleStringId by remember { mutableStateOf(Page.Messages.labelStringId) } diff --git a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MessageListPage.kt b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MessageListPage.kt index 5efa569..9aa9e15 100644 --- a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MessageListPage.kt +++ b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MessageListPage.kt @@ -31,7 +31,7 @@ import kotlinx.coroutines.launch @Composable fun MessageListPage(requestHolder: RequestHolder) { - SideEffect { + LaunchedEffect(Unit) { requestHolder.coroutineScope.launch { requestHolder.pushDeerViewModel.messageList() } diff --git a/android/app/src/main/java/com/pushdeer/os/util/NotificationUtil.kt b/android/app/src/main/java/com/pushdeer/os/util/NotificationUtil.kt new file mode 100644 index 0000000..96096b9 --- /dev/null +++ b/android/app/src/main/java/com/pushdeer/os/util/NotificationUtil.kt @@ -0,0 +1,23 @@ +package com.pushdeer.os.util + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.Context +import android.os.Build + +object NotificationUtil { + + fun setupChannel(context: Context){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val notificationManager = + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + notificationManager.createNotificationChannel( + NotificationChannel( + "high_system", + "服务提醒", + NotificationManager.IMPORTANCE_HIGH + ) + ) + } + } +} \ No newline at end of file diff --git a/android/app/src/main/java/com/pushdeer/os/viewmodel/PushDeerViewModel.kt b/android/app/src/main/java/com/pushdeer/os/viewmodel/PushDeerViewModel.kt index 4c07bdf..db6eb02 100644 --- a/android/app/src/main/java/com/pushdeer/os/viewmodel/PushDeerViewModel.kt +++ b/android/app/src/main/java/com/pushdeer/os/viewmodel/PushDeerViewModel.kt @@ -44,12 +44,12 @@ class PushDeerViewModel( } } } + logDogRepository.logi("login", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "login: ${e.localizedMessage}") logDogRepository.loge("login", "", e.toString()) return@withContext } - logDogRepository.logi("login", "normally", "nothing happened") } else if (token == "" && idToken == "") { return@withContext } else if (token != "") { @@ -71,6 +71,7 @@ class PushDeerViewModel( } } } + logDogRepository.logi("userInfo", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "userInfo: ${e.localizedMessage}") logDogRepository.loge("userInfo", "", e.toString()) @@ -96,6 +97,7 @@ class PushDeerViewModel( } } } + logDogRepository.logi("deviceReg", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "deviceReg: ${e.localizedMessage}") logDogRepository.loge("deviceReg", "", e.toString()) @@ -112,6 +114,7 @@ class PushDeerViewModel( deviceList.addAll(it.devices.reversed()) } } + logDogRepository.logi("deviceList", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "deviceList: ${e.localizedMessage}") logDogRepository.loge("deviceList", "", e.toString()) @@ -130,6 +133,7 @@ class PushDeerViewModel( deviceList() Log.d(TAG, "deviceRemove: $it") } + logDogRepository.logi("deviceRemove", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "deviceRemove: ${e.localizedMessage}") logDogRepository.loge("deviceRemove", "", e.toString()) @@ -137,12 +141,13 @@ class PushDeerViewModel( } } - suspend fun deviceRename(deviceInfo: DeviceInfo,onReturn: () -> Unit={}){ - withContext(Dispatchers.IO){ + suspend fun deviceRename(deviceInfo: DeviceInfo, onReturn: () -> Unit = {}) { + withContext(Dispatchers.IO) { try { - pushDeerService.deviceRename(token,deviceInfo.id,deviceInfo.name) + pushDeerService.deviceRename(token, deviceInfo.id, deviceInfo.name) + logDogRepository.logi("deviceRename", "normally", "nothing happened") onReturn() - }catch (e:Exception){ + } catch (e: Exception) { Log.d(TAG, "deviceRename: ${e.localizedMessage}") logDogRepository.loge("deviceRename", "", e.toString()) } @@ -158,6 +163,7 @@ class PushDeerViewModel( keyList.addAll(it.keys) } } + logDogRepository.logi("keyGen", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "keyGen: ${e.localizedMessage}") logDogRepository.loge("keyGen", "", e.toString()) @@ -176,6 +182,7 @@ class PushDeerViewModel( ).let { keyList() } + logDogRepository.logi("keyRegen", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "keyRegen: ${e.localizedMessage}") logDogRepository.loge("keyRegen", "", e.toString()) @@ -183,16 +190,17 @@ class PushDeerViewModel( } } - suspend fun keyRename(key: PushKey,onReturn: () -> Unit={}){ - withContext(Dispatchers.IO){ + suspend fun keyRename(key: PushKey, onReturn: () -> Unit = {}) { + withContext(Dispatchers.IO) { try { pushDeerService.keyRename( token, key.id, key.name ) + logDogRepository.logi("keyRename", "normally", "nothing happened") onReturn() - }catch (e: Exception) { + } catch (e: Exception) { Log.d(TAG, "keyRename: ${e.localizedMessage}") logDogRepository.loge("keyRename", "", e.toString()) } @@ -208,6 +216,7 @@ class PushDeerViewModel( keyList.addAll(it.keys) } } + logDogRepository.logi("keyList", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "keyList: ${e.localizedMessage}") logDogRepository.loge("keyList", "", e.toString()) @@ -221,6 +230,7 @@ class PushDeerViewModel( pushDeerService.keyRemove(mapOf("token" to token, "id" to keyId)).let { keyList() } + logDogRepository.logi("keyRemove", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "keyRemove: ${e.localizedMessage}") logDogRepository.loge("keyRemove", "", e.toString()) @@ -247,6 +257,7 @@ class PushDeerViewModel( ).let { messageList() } + logDogRepository.logi("messagePush", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "messagePush: ${e.localizedMessage}") } @@ -261,6 +272,7 @@ class PushDeerViewModel( messageRepository.insert(*(it.messages.toTypedArray())) } } + logDogRepository.logi("messageList", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "messageList: ${e.localizedMessage}") } @@ -273,6 +285,7 @@ class PushDeerViewModel( pushDeerService.messageRemove(token, messageId).let { messageList() } + logDogRepository.logi("messageRemove", "normally", "nothing happened") } catch (e: Exception) { Log.d(TAG, "keyRemove: ${e.localizedMessage}") } From 67e756900e2e4916444730463b2752710f8635b5 Mon Sep 17 00:00:00 2001 From: alone-wolf <1031629044@qq.com> Date: Sun, 23 Jan 2022 12:34:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 4 ++-- .../java/com/pushdeer/os/ui/compose/page/main/MainPage.kt | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 49aa88e..d6c52fc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.pushdeer.os" minSdk 22 targetSdk 31 - versionCode 4 - versionName "1.0-dev-4" + versionCode 5 + versionName "1.0-dev-5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt index 52fc01a..5a38077 100644 --- a/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt +++ b/android/app/src/main/java/com/pushdeer/os/ui/compose/page/main/MainPage.kt @@ -26,11 +26,17 @@ import com.pushdeer.os.holder.RequestHolder import com.pushdeer.os.ui.navigation.Page import com.pushdeer.os.ui.navigation.pageList import com.pushdeer.os.ui.theme.mainBottomBtn +import kotlinx.coroutines.launch @ExperimentalAnimationApi @ExperimentalMaterialApi @Composable fun MainPage(requestHolder: RequestHolder) { + LaunchedEffect(Unit) { + requestHolder.coroutineScope.launch { + requestHolder.pushDeerViewModel.userInfo() + } + } var titleStringId by remember { mutableStateOf(Page.Messages.labelStringId)