From f7dddb41fa5c641683b71fda5e7e01762093c7cf Mon Sep 17 00:00:00 2001 From: Kr328 <39107975+Kr328@users.noreply.github.com> Date: Tue, 25 Feb 2020 20:53:26 +0800 Subject: [PATCH] add crash reporter --- .../github/kr328/clash/remote/RemoteUtils.kt | 61 ++++++++++++------- build.gradle | 4 +- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/github/kr328/clash/remote/RemoteUtils.kt b/app/src/main/java/com/github/kr328/clash/remote/RemoteUtils.kt index 08a5976..510b1ba 100644 --- a/app/src/main/java/com/github/kr328/clash/remote/RemoteUtils.kt +++ b/app/src/main/java/com/github/kr328/clash/remote/RemoteUtils.kt @@ -1,40 +1,57 @@ package com.github.kr328.clash.remote import android.content.Context +import android.content.Intent import android.net.Uri +import com.github.kr328.clash.ApkBrokenActivity import com.github.kr328.clash.service.Constants import com.github.kr328.clash.service.ServiceStatusProvider +import com.github.kr328.clash.service.util.intent object RemoteUtils { fun detectClashRunning(context: Context): Boolean { - val authority = Uri.Builder() - .scheme("content") - .authority("${context.packageName}${Constants.STATUS_PROVIDER_SUFFIX}") - .build() + try { + val authority = Uri.Builder() + .scheme("content") + .authority("${context.packageName}${Constants.STATUS_PROVIDER_SUFFIX}") + .build() - val pong = context.contentResolver.call( - authority, - ServiceStatusProvider.METHOD_PING_CLASH_SERVICE, - null, - null - ) + val pong = context.contentResolver.call( + authority, + ServiceStatusProvider.METHOD_PING_CLASH_SERVICE, + null, + null + ) - return pong != null + return pong != null + } + catch (e: IllegalArgumentException) { + context.startActivity(ApkBrokenActivity::class.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + + return false + } } fun getCurrentClashProfileName(context: Context): String? { - val authority = Uri.Builder() - .scheme("content") - .authority("${context.packageName}${Constants.STATUS_PROVIDER_SUFFIX}") - .build() + try { + val authority = Uri.Builder() + .scheme("content") + .authority("${context.packageName}${Constants.STATUS_PROVIDER_SUFFIX}") + .build() - val pong = context.contentResolver.call( - authority, - ServiceStatusProvider.METHOD_PING_CLASH_SERVICE, - null, - null - ) + val pong = context.contentResolver.call( + authority, + ServiceStatusProvider.METHOD_PING_CLASH_SERVICE, + null, + null + ) - return pong?.getString("name") + return pong?.getString("name") + } + catch (e: java.lang.IllegalArgumentException) { + context.startActivity(ApkBrokenActivity::class.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + + return null + } } } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 7ff30b5..90e30fd 100644 --- a/build.gradle +++ b/build.gradle @@ -8,8 +8,8 @@ buildscript { gMinSdkVersion = 24 gTargetSdkVersion = 29 - gVersionCode = 10104 - gVersionName = "1.1.4" + gVersionCode = 10105 + gVersionName = "1.1.5" gKotlinVersion = '1.3.61' gKotlinCoroutineVersion = '1.3.3'