From ddde2e481b94bc57992e0d3c9a1c2edca4313a7e Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Wed, 24 Apr 2024 21:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=8C=85=E5=90=8D=E4=B8=BAtt?= =?UTF-8?q?std,=E5=A2=9E=E5=8A=A0=E6=9C=BA=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 180 +++++++++- app/keystore/AllwinnerU807.jks | Bin 0 -> 2843 bytes app/keystore/G11Userdebug.keystore | Bin 0 -> 2352 bytes app/keystore/Huaruian8768.jks | Bin 0 -> 2352 bytes app/keystore/UnisocS6688Userdebug.jks | Bin 0 -> 2947 bytes app/keystore/iPlay50P.jks | Bin 0 -> 2345 bytes app/keystore/zhanrui12.jks | Bin 0 -> 2354 bytes app/keystore/zhanruiG10Z.keystore | Bin 0 -> 2633 bytes .../ttstd/ttutils/ExampleInstrumentedTest.kt | 24 ++ app/src/main/AndroidManifest.xml | 300 +++------------- .../sdk/jpush/jpushdemo/ExampleUtil.java | 133 ------- .../jpushdemo/LocalBroadcastManager.java | 263 -------------- .../ttutils/sdk/jpush/jpushdemo/Logger.java | 42 --- .../sdk/jpush/jpushdemo/MyReceiver.java | 123 ------- .../jpush/jpushdemo/PushMessageReceiver.java | 137 ------- .../sdk/jpush/jpushdemo/PushService.java | 8 - .../jpushdemo/TagAliasOperatorHelper.java | 338 ------------------ .../sdk/jpush/jpushdemo/TestActivity.java | 32 -- .../tt/ttutils/server/main/MainSContact.java | 145 -------- .../ttutils/server/main/MainSPresenter.java | 223 ------------ .../tt/ttutils/utils/java/BitmapUtils.java | 5 - .../tt/ttutils/utils/java/NetworkUtils.java | 9 - .../com/tt/ttutils/utils/java/OtherUtils.java | 5 - .../ttutils/utils/java/SystemSignUtils.java | 5 - .../java/com/tt/ttutils/utils/kt/ApkUtils.kt | 6 - .../ttutils/activity/AoleyunTestActivity.java | 227 +++++++++++- .../ttutils/activity/KotlinMainActivity.kt | 7 +- .../ttutils/activity/PackageActivity.java | 6 +- .../ttutils/activity/main/MainAContact.java | 6 +- .../ttutils/activity/main/MainAPresenter.java | 3 +- .../ttutils/activity/main/MainActivity.java | 18 +- .../activity/retrofit/RetrofitActivity.java | 6 +- .../activity/retrofit/RetrofitContact.java | 6 +- .../activity/retrofit/RetrofitPresenter.java | 10 +- .../ttutils/activity/test/TestActivity.java | 8 +- .../ttutils/base/BaseActivity.java | 4 +- .../ttutils/base/BaseApplication.java | 4 +- .../ttutils/base/BaseFragment.java | 2 +- .../ttutils/base/BaseLightActivity.java | 4 +- .../ttutils/base/ImmerseBaseActivity.java | 5 +- .../ttutils/base/KotlinApplication.kt | 20 +- .../ttutils/base/old/BaseActivity1.java | 2 +- .../ttutils/bean/BaseResponse.java | 2 +- .../{tt => ttstd}/ttutils/db/LogDBHelper.java | 2 +- .../{tt => ttstd}/ttutils/db/OpenHelper.java | 2 +- .../ttutils/disklrucache/CacheHelper.java | 2 +- .../disklrucache/DiskLruCacheHelper.java | 2 +- .../ttutils/disklrucache/Utils.java | 2 +- .../gson/NullStringToEmptyAdapterFactory.java | 2 +- .../ttutils/mvp/BasePresenter.java | 2 +- .../{tt => ttstd}/ttutils/mvp/BaseView.java | 2 +- .../ttutils/network/NetInterfaceManager.java | 15 +- .../ttutils/network/UrlAddress.java | 2 +- .../interceptor/PostCacheInterceptor.java | 7 +- .../interceptor/RepeatRequestInterceptor.java | 6 +- .../interceptor/RequestInterceptor.java | 4 +- .../ttutils/receiver/BootReceiver.java | 4 +- .../ttutils/receiver/PackageReceiver.java | 2 +- .../ttutils/receiver/ShortcutReceiver.java | 17 + .../ttutils/retrofit/GetPublicIPApi.java | 4 +- .../ttutils/server/main/MainSContact.java | 14 + .../ttutils/server/main/MainSPresenter.java | 70 ++++ .../ttutils/server/main/MainService.java | 244 +------------ .../ttutils/tpush/Constants.java | 2 +- .../ttutils/tpush/MessageReceiver.java | 6 +- .../ttutils/tpush/common/DBOpenHelper.java | 2 +- .../tpush/common/NotificationService.java | 4 +- .../ttutils/tpush/po/XGNotification.java | 2 +- .../ttutils/utils/java/ApkUtils.java | 2 +- .../ttutils/utils/java/AppUtils.java | 2 +- .../ttstd/ttutils/utils/java/BitmapUtils.java | 5 + .../ttutils/utils/java/CmdUtil.java | 2 +- .../ttutils/utils/java/DevicesUtils.java | 2 +- .../ttutils/utils/java/GlideLoadUtils.java | 2 +- .../ttutils/utils/java/HomeUtils.java | 4 +- .../ttutils/utils/java/JGYUtils.java | 26 +- .../ttutils/utils/java/LauncherUtils.java | 4 +- .../ttutils/utils/java/MD5Util.java | 2 +- .../ttutils/utils/java/NetworkUtils.java | 5 + .../ttstd/ttutils/utils/java/OtherUtils.java | 5 + .../ttutils/utils/java/PictrueUtils.java | 2 +- .../ttutils/utils/java/ProcessUtil.java | 2 +- .../ttutils/utils/java/StatusBarUtil.java | 2 +- .../ttutils/utils/java/SystemSignUtils.java | 5 + .../ttutils/utils/java/TTUtils.java | 4 +- .../ttutils/utils/java/ToastUtil.java | 4 +- .../ttutils/utils/java/dimens.java | 6 +- .../ttutils/utils/jni/NDKTools.java | 2 +- .../com/ttstd/ttutils/utils/kt/ApkUtils.kt | 6 + .../ttutils/utils/kt/ToastUtil.kt | 2 +- app/src/main/res/drawable/ic_launcher.png | Bin 0 -> 3593 bytes .../main/res/layout/activity_aoleyun_test.xml | 151 +++++++- app/src/main/res/xml/file_paths.xml | 9 + app/src/main/res/xml/network.xml | 4 + .../java/com/ttstd/ttutils/ExampleUnitTest.kt | 17 + app/tpns-configs.json | 2 +- build.gradle | 1 + niceimageview/build.gradle | 11 + viewlibrary/build.gradle | 25 +- 99 files changed, 922 insertions(+), 2133 deletions(-) create mode 100644 app/keystore/AllwinnerU807.jks create mode 100644 app/keystore/G11Userdebug.keystore create mode 100644 app/keystore/Huaruian8768.jks create mode 100644 app/keystore/UnisocS6688Userdebug.jks create mode 100644 app/keystore/iPlay50P.jks create mode 100644 app/keystore/zhanrui12.jks create mode 100644 app/keystore/zhanruiG10Z.keystore create mode 100644 app/src/androidTest/java/com/ttstd/ttutils/ExampleInstrumentedTest.kt delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/ExampleUtil.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/LocalBroadcastManager.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/Logger.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/MyReceiver.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushMessageReceiver.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushService.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TagAliasOperatorHelper.java delete mode 100644 app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TestActivity.java delete mode 100644 app/src/main/java/com/tt/ttutils/server/main/MainSContact.java delete mode 100644 app/src/main/java/com/tt/ttutils/server/main/MainSPresenter.java delete mode 100644 app/src/main/java/com/tt/ttutils/utils/java/BitmapUtils.java delete mode 100644 app/src/main/java/com/tt/ttutils/utils/java/NetworkUtils.java delete mode 100644 app/src/main/java/com/tt/ttutils/utils/java/OtherUtils.java delete mode 100644 app/src/main/java/com/tt/ttutils/utils/java/SystemSignUtils.java delete mode 100644 app/src/main/java/com/tt/ttutils/utils/kt/ApkUtils.kt rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/AoleyunTestActivity.java (66%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/KotlinMainActivity.kt (95%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/PackageActivity.java (90%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/main/MainAContact.java (64%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/main/MainAPresenter.java (96%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/main/MainActivity.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/retrofit/RetrofitActivity.java (86%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/retrofit/RetrofitContact.java (64%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/retrofit/RetrofitPresenter.java (94%) rename app/src/main/java/com/{tt => ttstd}/ttutils/activity/test/TestActivity.java (95%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/BaseActivity.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/BaseApplication.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/BaseFragment.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/BaseLightActivity.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/ImmerseBaseActivity.java (92%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/KotlinApplication.kt (80%) rename app/src/main/java/com/{tt => ttstd}/ttutils/base/old/BaseActivity1.java (99%) rename app/src/main/java/com/{tt => ttstd}/ttutils/bean/BaseResponse.java (93%) rename app/src/main/java/com/{tt => ttstd}/ttutils/db/LogDBHelper.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/db/OpenHelper.java (95%) rename app/src/main/java/com/{tt => ttstd}/ttutils/disklrucache/CacheHelper.java (99%) rename app/src/main/java/com/{tt => ttstd}/ttutils/disklrucache/DiskLruCacheHelper.java (99%) rename app/src/main/java/com/{tt => ttstd}/ttutils/disklrucache/Utils.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/gson/NullStringToEmptyAdapterFactory.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/mvp/BasePresenter.java (83%) rename app/src/main/java/com/{tt => ttstd}/ttutils/mvp/BaseView.java (50%) rename app/src/main/java/com/{tt => ttstd}/ttutils/network/NetInterfaceManager.java (90%) rename app/src/main/java/com/{tt => ttstd}/ttutils/network/UrlAddress.java (79%) rename app/src/main/java/com/{tt => ttstd}/ttutils/network/interceptor/PostCacheInterceptor.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/network/interceptor/RepeatRequestInterceptor.java (96%) rename app/src/main/java/com/{tt => ttstd}/ttutils/network/interceptor/RequestInterceptor.java (96%) rename app/src/main/java/com/{tt => ttstd}/ttutils/receiver/BootReceiver.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/receiver/PackageReceiver.java (94%) create mode 100644 app/src/main/java/com/ttstd/ttutils/receiver/ShortcutReceiver.java rename app/src/main/java/com/{tt => ttstd}/ttutils/retrofit/GetPublicIPApi.java (79%) create mode 100644 app/src/main/java/com/ttstd/ttutils/server/main/MainSContact.java create mode 100644 app/src/main/java/com/ttstd/ttutils/server/main/MainSPresenter.java rename app/src/main/java/com/{tt => ttstd}/ttutils/server/main/MainService.java (71%) rename app/src/main/java/com/{tt => ttstd}/ttutils/tpush/Constants.java (93%) rename app/src/main/java/com/{tt => ttstd}/ttutils/tpush/MessageReceiver.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/tpush/common/DBOpenHelper.java (94%) rename app/src/main/java/com/{tt => ttstd}/ttutils/tpush/common/NotificationService.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/tpush/po/XGNotification.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/ApkUtils.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/AppUtils.java (98%) create mode 100644 app/src/main/java/com/ttstd/ttutils/utils/java/BitmapUtils.java rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/CmdUtil.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/DevicesUtils.java (99%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/GlideLoadUtils.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/HomeUtils.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/JGYUtils.java (88%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/LauncherUtils.java (99%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/MD5Util.java (98%) create mode 100644 app/src/main/java/com/ttstd/ttutils/utils/java/NetworkUtils.java create mode 100644 app/src/main/java/com/ttstd/ttutils/utils/java/OtherUtils.java rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/PictrueUtils.java (86%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/ProcessUtil.java (98%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/StatusBarUtil.java (99%) create mode 100644 app/src/main/java/com/ttstd/ttutils/utils/java/SystemSignUtils.java rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/TTUtils.java (96%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/ToastUtil.java (97%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/java/dimens.java (91%) rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/jni/NDKTools.java (83%) create mode 100644 app/src/main/java/com/ttstd/ttutils/utils/kt/ApkUtils.kt rename app/src/main/java/com/{tt => ttstd}/ttutils/utils/kt/ToastUtil.kt (86%) create mode 100644 app/src/main/res/drawable/ic_launcher.png create mode 100644 app/src/main/res/xml/file_paths.xml create mode 100644 app/src/main/res/xml/network.xml create mode 100644 app/src/test/java/com/ttstd/ttutils/ExampleUnitTest.kt diff --git a/app/build.gradle b/app/build.gradle index efe4f43..7749e31 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,7 +16,7 @@ android { buildToolsVersion "30.0.1" defaultConfig { - applicationId "com.tt.ttutils" + applicationId "com.ttstd.ttutils" //https://github.com/flutter/flutter/issues/58758 //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 26 @@ -46,9 +46,6 @@ android { manifestPlaceholders = [ XG_ACCESS_ID : "1500026407", XG_ACCESS_KEY: "AQ6C6W1O19LT", - JPUSH_PKGNAME: applicationId, - JPUSH_APPKEY : "731637f412deca8540a1f873", //JPush 上注册的包名对应的 Appkey. - JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可. ] } @@ -157,6 +154,24 @@ android { v2SigningEnabled true } + zhanruiG10Z { + storeFile file("keystore/zhanruiG10Z.keystore") + storePassword "123456" + keyAlias "zhanruiG10Z" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + + zhanRui12 { + storeFile file("keystore/zhanrui12.jks") + storePassword "123456" + keyAlias "zhanrui12" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + own { storeFile file("keystore/tt.jks") storePassword "fht19961207" @@ -166,7 +181,7 @@ android { v2SigningEnabled true } - G10P{ + G10P { storeFile file("keystore/G10PMTK11.jks") storePassword "123456" keyAlias "G10PMTK11" @@ -175,7 +190,16 @@ android { v2SigningEnabled true } - G10PUserDebug{ + G11Userdebug { + storeFile file("keystore/G11Userdebug.keystore") + storePassword "123456" + keyAlias "G11Userdebug" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + + G10PUserDebug { storeFile file("keystore/G10PUserDebug.jks") storePassword "123456" keyAlias "G10PUserDebug" @@ -184,7 +208,7 @@ android { v2SigningEnabled true } - Teclast8515{ + Teclast8515 { storeFile file("keystore/Teclast8515.keystore") storePassword "123456" keyAlias "Teclast8515" @@ -201,9 +225,101 @@ android { v1SigningEnabled true v2SigningEnabled true } + + U807 { + storeFile file("keystore/AllwinnerU807.jks") + storePassword "123456" + keyAlias "u807" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + + UnisocS6688 { + storeFile file("keystore/UnisocS6688Userdebug.jks") + storePassword "123456" + keyAlias "unisocs6688userdebug" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + + iPlay50P { + storeFile file("keystore/iPlay50P.jks") + storePassword "123456" + keyAlias "iplay50p" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + + Huaruian8768 { + storeFile file("keystore/Huaruian8768.jks") + storePassword "123456" + keyAlias "Huaruian8768" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } } buildTypes { + Huaruian8768Debug.initWith(debug) + Huaruian8768Debug { + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.Huaruian8768 + buildConfigField "String", "platform", '"MT8768"' + } + + Huaruian8768Release.initWith(release) + Huaruian8768Release { + signingConfig signingConfigs.Huaruian8768 + buildConfigField "String", "platform", '"MT8768"' + } + + iPlay50PDebug.initWith(debug) + iPlay50PDebug { + buildConfigField "String", "platform", '"T1102"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.iPlay50P + } + + iPlay50PRelease.initWith(release) + iPlay50PRelease { + buildConfigField "String", "platform", '"T1102"' + signingConfig signingConfigs.iPlay50P + } + + UnisocS6688Debug.initWith(debug) + UnisocS6688Debug { + buildConfigField "String", "platform", '"S6688"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.UnisocS6688 + } + + UnisocS6688Release.initWith(release) + UnisocS6688Release { + buildConfigField "String", "platform", '"S6688"' + signingConfig signingConfigs.UnisocS6688 + } + + U807Debug.initWith(debug) + U807Debug { + buildConfigField "String", "platform", '"U807"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.U807 + } + + U807Release.initWith(release) + U807Release { + buildConfigField "String", "platform", '"U807"' + signingConfig signingConfigs.U807 + } + tuiXinDebug.initWith(debug) tuiXinDebug { versionNameSuffix "-debug" @@ -254,6 +370,14 @@ android { buildConfigField "String", "platform", '"MTK11"' } + G11Userdebug.initWith(debug) + G11Userdebug { + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.G11Userdebug + buildConfigField "String", "platform", '"G10P"' + } + G10PUserDebug.initWith(debug) G10PUserDebug { versionNameSuffix "-debug" @@ -290,6 +414,20 @@ android { signingConfig signingConfigs.P20S } + zhanruiG10ZDebug.initWith(debug) + zhanruiG10ZDebug { + versionNameSuffix "-debug" + debuggable true + buildConfigField "String", "platform", '"ZR6016"' + signingConfig signingConfigs.zhanruiG10Z + } + + zhanruiG10ZRelease.initWith(release) + zhanruiG10ZRelease { + buildConfigField "String", "platform", '"ZR6016"' + signingConfig signingConfigs.zhanruiG10Z + } + zhanRuiDebug.initWith(debug) zhanRuiDebug { versionNameSuffix "-debug" @@ -313,6 +451,20 @@ android { signingConfig signingConfigs.zhanRuiUserdebug } + zhanRui12Debug.initWith(debug) + zhanRui12Debug { + debuggable true + versionNameSuffix "-debug" + buildConfigField "String", "platform", '"AH6016"' + signingConfig signingConfigs.zhanRui12 + } + + zhanRui12Release.initWith(release) + zhanRui12Release { + buildConfigField "String", "platform", '"AH6016"' + signingConfig signingConfigs.zhanRui12 + } + debug { buildConfigField "String", "platform", '"MTK"' // 不显示Log @@ -328,7 +480,7 @@ android { variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null) { - def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${buildType.name}.apk" + def fileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${buildType.name}.apk" output.outputFileName = fileName } } @@ -350,7 +502,7 @@ android { variant.outputs.each { output -> def outputFile = "" if (outputFile != null) { - def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${productFlavors[0].name}-${buildType.name}.apk" + def fileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${productFlavors[0].name}_${buildType.name}.apk" output.outputFileName = fileName } } @@ -393,24 +545,22 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + ////三方 - //极光推送 - implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.7.0 版本为例。 - implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以JCore 2.4.2 版本为例。 //RxJava -// implementation 'io.reactivex.rxjava2:rxjava:2.2.5' -// implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' // Because RxAndroid releases are few and far between, it is recommended you also // explicitly depend on RxJava's latest version for bug fixes and new features. // (see https://github.com/ReactiveX/RxJava/releases for latest 3.x.x version) implementation 'io.reactivex.rxjava3:rxjava:3.0.0' + //rxlifecycle implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2' implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2' + //okhttp implementation 'com.squareup.okhttp3:okhttp:4.9.3' implementation 'com.squareup.moshi:moshi:1.9.3' @@ -438,6 +588,8 @@ dependencies { //MMKV implementation 'com.tencent:mmkv-static:1.2.13' + //Bugly + implementation 'com.tencent.bugly:crashreport:4.0.0' //腾讯移动推送 TPNS implementation 'com.tencent.tpns:tpns:1.2.2.0-release' diff --git a/app/keystore/AllwinnerU807.jks b/app/keystore/AllwinnerU807.jks new file mode 100644 index 0000000000000000000000000000000000000000..c8d68c594229e3fd96f457de23a3663edbd95039 GIT binary patch literal 2843 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�OVUb8bBUR#^F(f*UZafGmi zD6RMRYyq>AQ!?G2KzEc}&2rMq3tE5?_apTf&z5pI`YrfonNRLdDXk+mijG%rMX|Yl ZFs1lSKtvREg5h=+*ZB52%Eyy>{{`<7^o9Tc literal 0 HcmV?d00001 diff --git a/app/keystore/Huaruian8768.jks b/app/keystore/Huaruian8768.jks new file mode 100644 index 0000000000000000000000000000000000000000..80bf6749d1ebe729aa1cc505a59f01377f644da0 GIT binary patch literal 2352 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 literal 0 HcmV?d00001 diff --git a/app/keystore/iPlay50P.jks b/app/keystore/iPlay50P.jks new file mode 100644 index 0000000000000000000000000000000000000000..496ef8d80bc7720e71f5d5f878f6e136640cd101 GIT binary patch literal 2345 zcmd5-`8(8W8=vpY7{-h(qP%v=44V0lwURBQ>`Y{-$=GHn62rkb#mJT|6*00#M3Hb( z$i8(D*=5ZXY8(`WFt57a^IqqN_YZh~xbN%weD3?XpXd5qpX+{hmv)yR5D0WHfM3Dm z<#(AJq5=Bt5%JFbwZ;$#7XUKgJ0L%TR~Z4o0VSvq0B}Lz4ESQ$(N5Jhl8IJrb_HEP zreU|p;a<=Nweyv^!h-FYq~j|}iz+rS&8D&2cuM72rHN42h{~1}xm{XY(xviOpSV>G zQ^ugq8&Tm{evAAxZg=Sp*a}Jy;7GpZq-}^>^wX&K0y3E+9kT9-? z9y5@18D`K;6xg9Wfk*d0>8%VrhTx&Z%}(14=u)_H#Vn=yvM?*dVW(~1eG}WhQ55b4 zY^uxndHLrp?pUoq-T2YmyuVO3EhlP;HG18Z`|A~-n$&RMn z7loP&D7#-=-v?CpcxR}CO4DTX-G+~SI!e!+E@@^Xt2&VyNM@B?Q^TP_7V?nAG)B_$ zc06~T`}U7oI+NC>ojF&o)E-{7d9744A|!%pC^&#qn=|?*r&!OscKA~?`6CP)vuM*a6*oN2;Y^UQ3{urqPOgM7ul%pB;R(g?5 zxguf0zn|yrmQnDOD+4rOQvO*AojWQknxhp0L2D-Sf}{RDx6_-SA`V~WT>TW}n(h7c zl}dG~gpq`dvQCq<`d^!nV?)N#9Jis19K}Vo)%N=}wq*Ulll}Tl5O{otyT=%#xH)w) zWJJ&17c>ig#Eg5QaVoXlUHxn1%2`3rvtPP+lFnmyM=(R5?-k9um0B>03)w-%x{JZ| z>gpGrGaK8eNimm0c{Mgu@k=YP%kz1^PgD6OnC+PyYz*IHn>t3HLw7N0=I2hl z6IQWQwq9KRjx>G_6Wcx-m@Z+v)q&>uLaa#;XAu{|rFXIhG$lxK&A})u3D5Jz^)g*k zrLoG(*WoEz9u709fyJ+?IH_aA2m2I@Jm%0Q7A(hr?ptO?5jXU5*toaMcl3vHA|tOy zb<4c(O8vPK7TyQxT$peV;axrPK*qHH#TTZV%ftmO`!~UPP01zMyxVM_bH+^*o0z63 zJ+u>{#YH|DE^8vKGwk#>iwgrMt00d>MJQN3yoNI>(6Qml3wYG|gL=1G51U)4H6SUp zf9bp1YbjKB<#JgO+0cQ3>QbD%SwCRC(;(+=*+a^HBy#VXu#~n$pkYiBU+&}i^pIks z%9QpV$!NSw-JEixg27{b)_BDYN4zZdJMG11I#`~1lAqM|auC;|(Ulf&4;(q7@Sy&7 zzoks@#?Pe2?s9*un?L*#HibUZ42&qsG$t+>kBGAMeEiLSs#ZW}SYmMlJ`O z26zktflY%9*gKE`ZOMf}0Vos+S+%`^2~rPr1Njh0rRdYq-}wLl#RUN)A_*uEiGbO` z5yDVIOM(z6@DuQ$d5Bc9FNI3>BJhLgpAhURi7hf=)=GN9CdFGT{PLcdu3Ul|ub#ku){Qeu3n1n?+93)E8AP*rmh z<5NEd5#JVlf-wH;^VE~tInZ@vIA3` znInXDV~dXY2hY>2%GDDarN4!!;;%Ki-4UbQxCn&-5a59|XbDR08AOsFE(#ZE#jn)) zNhx`s(6+th(^kX58f?7;rGJ*?;Ris`@c-TL({Pf)a4rxA0GxknzGvAz%>jtn;MW5_ ztpV@oF*6@*j<6#RA{I`Wi=*$d1QIK71s^XC&B=`4-#s8J&~KmP(G%LLq)+Zl)Qmz2 zuV?z3B{V;c>vti2a7VptG_UVt3$>1h(LI8jHu&5#wboAb8a6xJz(GrSaHor!9gM8ji+Lz3jvp+W4>r}( zAkY%>1Fld}>zbdGBiyi;ltsn)E7*e6T<TTA^n?FY|2>($0~iCh>wJGRW5pXK^! zy`T=kd7IKTw#lirB6+Ke6bbLIveuT}P#Tw3KD{QZ)I;0ySYhuh3+f5>N;{t@Y#Rqk PI`FO=KK_l#3%dUXR`2&| literal 0 HcmV?d00001 diff --git a/app/keystore/zhanrui12.jks b/app/keystore/zhanrui12.jks new file mode 100644 index 0000000000000000000000000000000000000000..584d145482a7ad9f97a36e5b59bfac862504744a GIT binary patch literal 2354 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 + + + + + + + - - + + + + + - + + - + + - - - - - - - - - - - - + + + + + - + + - + - + - + - + - - + + @@ -102,7 +106,7 @@ @@ -131,69 +135,27 @@ - + + + + + + - - - + android:required="false" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -201,165 +163,18 @@ - - + + - + android:value="1500026407" /> + - - - - + android:value="AQ6C6W1O19LT" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -367,5 +182,4 @@ android:name="design_height_in_dp" android:value="1024" /> - \ No newline at end of file diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/ExampleUtil.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/ExampleUtil.java deleted file mode 100644 index ee65389..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/ExampleUtil.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.os.Bundle; -import android.os.Looper; -import android.telephony.TelephonyManager; -import android.text.TextUtils; -import android.widget.Toast; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import cn.jpush.android.api.JPushInterface; - -public class ExampleUtil { - public static final String PREFS_NAME = "JPUSH_EXAMPLE"; - public static final String PREFS_DAYS = "JPUSH_EXAMPLE_DAYS"; - public static final String PREFS_START_TIME = "PREFS_START_TIME"; - public static final String PREFS_END_TIME = "PREFS_END_TIME"; - public static final String KEY_APP_KEY = "JPUSH_APPKEY"; - - public static boolean isEmpty(String s) { - if (null == s) - return true; - if (s.length() == 0) - return true; - if (s.trim().length() == 0) - return true; - return false; - } - /** - * 只能以 “+” 或者 数字开头;后面的内容只能包含 “-” 和 数字。 - * */ - private final static String MOBILE_NUMBER_CHARS = "^[+0-9][-0-9]{1,}$"; - public static boolean isValidMobileNumber(String s) { - if(TextUtils.isEmpty(s)) return true; - Pattern p = Pattern.compile(MOBILE_NUMBER_CHARS); - Matcher m = p.matcher(s); - return m.matches(); - } - // 校验Tag Alias 只能是数字,英文字母和中文 - public static boolean isValidTagAndAlias(String s) { - Pattern p = Pattern.compile("^[\u4E00-\u9FA50-9a-zA-Z_!@#$&*+=.|]+$"); - Matcher m = p.matcher(s); - return m.matches(); - } - - // 取得AppKey - public static String getAppKey(Context context) { - Bundle metaData = null; - String appKey = null; - try { - ApplicationInfo ai = context.getPackageManager().getApplicationInfo( - context.getPackageName(), PackageManager.GET_META_DATA); - if (null != ai) - metaData = ai.metaData; - if (null != metaData) { - appKey = metaData.getString(KEY_APP_KEY); - if ((null == appKey) || appKey.length() != 24) { - appKey = null; - } - } - } catch (NameNotFoundException e) { - - } - return appKey; - } - - // 取得版本号 - public static String GetVersion(Context context) { - try { - PackageInfo manager = context.getPackageManager().getPackageInfo( - context.getPackageName(), 0); - return manager.versionName; - } catch (NameNotFoundException e) { - return "Unknown"; - } - } - - public static void showToast(final String toast, final Context context) - { - new Thread(new Runnable() { - - @Override - public void run() { - Looper.prepare(); - Toast.makeText(context, toast, Toast.LENGTH_SHORT).show(); - Looper.loop(); - } - }).start(); - } - - public static boolean isConnected(Context context) { - ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo info = conn.getActiveNetworkInfo(); - return (info != null && info.isConnected()); - } - - public static String getImei(Context context, String imei) { - String ret = null; - try { - TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - ret = telephonyManager.getDeviceId(); - } catch (Exception e) { - Logger.e(ExampleUtil.class.getSimpleName(), e.getMessage()); - } - if (isReadableASCII(ret)){ - return ret; - } else { - return imei; - } - } - - private static boolean isReadableASCII(CharSequence string){ - if (TextUtils.isEmpty(string)) return false; - try { - Pattern p = Pattern.compile("[\\x20-\\x7E]+"); - return p.matcher(string).matches(); - } catch (Throwable e){ - return true; - } - } - - public static String getDeviceId(Context context) { - return JPushInterface.getUdid(context); - } -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/LocalBroadcastManager.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/LocalBroadcastManager.java deleted file mode 100644 index d67c714..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/LocalBroadcastManager.java +++ /dev/null @@ -1,263 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.Uri; -import android.os.Handler; -import android.os.Message; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Set; - -/** - * Created by efan on 2017/4/14. - */ - -public final class LocalBroadcastManager { - private static final String TAG = "JIGUANG-Example"; - private static final boolean DEBUG = false; - private final Context mAppContext; - private final HashMap> mReceivers = new HashMap>(); - private final HashMap> mActions = new HashMap> (); - private final ArrayList mPendingBroadcasts = new ArrayList(); - static final int MSG_EXEC_PENDING_BROADCASTS = 1; - private final Handler mHandler; - private static final Object mLock = new Object(); - private static LocalBroadcastManager mInstance; - - public static LocalBroadcastManager getInstance(Context context) { - Object var1 = mLock; - synchronized (mLock) { - if (mInstance == null) { - mInstance = new LocalBroadcastManager(context.getApplicationContext()); - } - - return mInstance; - } - } - - private LocalBroadcastManager(Context context) { - this.mAppContext = context; - this.mHandler = new Handler(context.getMainLooper()) { - public void handleMessage(Message msg) { - switch (msg.what) { - case 1: - LocalBroadcastManager.this.executePendingBroadcasts(); - break; - default: - super.handleMessage(msg); - } - - } - }; - } - - public void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { - HashMap var3 = this.mReceivers; - synchronized (this.mReceivers) { - ReceiverRecord entry = new ReceiverRecord(filter, receiver); - ArrayList filters = (ArrayList) this.mReceivers.get(receiver); - if (filters == null) { - filters = new ArrayList(1); - this.mReceivers.put(receiver, filters); - } - - filters.add(filter); - - for (int i = 0; i < filter.countActions(); ++i) { - String action = filter.getAction(i); - ArrayList entries = (ArrayList) this.mActions.get(action); - if (entries == null) { - entries = new ArrayList(1); - this.mActions.put(action, entries); - } - - entries.add(entry); - } - - } - } - - public void unregisterReceiver(BroadcastReceiver receiver) { - HashMap var2 = this.mReceivers; - synchronized (this.mReceivers) { - ArrayList filters = (ArrayList) this.mReceivers.remove(receiver); - if (filters != null) { - for (int i = 0; i < filters.size(); ++i) { - IntentFilter filter = (IntentFilter) filters.get(i); - - for (int j = 0; j < filter.countActions(); ++j) { - String action = filter.getAction(j); - ArrayList receivers = (ArrayList) this.mActions.get(action); - if (receivers != null) { - for (int k = 0; k < receivers.size(); ++k) { - if (((ReceiverRecord) receivers.get(k)).receiver == receiver) { - receivers.remove(k); - --k; - } - } - - if (receivers.size() <= 0) { - this.mActions.remove(action); - } - } - } - } - - } - } - } - - public boolean sendBroadcast(Intent intent) { - HashMap var2 = this.mReceivers; - synchronized (this.mReceivers) { - String action = intent.getAction(); - String type = intent.resolveTypeIfNeeded(this.mAppContext.getContentResolver()); - Uri data = intent.getData(); - String scheme = intent.getScheme(); - Set categories = intent.getCategories(); - boolean debug = (intent.getFlags() & 8) != 0; - if (debug) { - Logger.v("LocalBroadcastManager", "Resolving type " + type + " scheme " + scheme + " of intent " + intent); - } - - ArrayList entries = (ArrayList) this.mActions.get(intent.getAction()); - if (entries != null) { - if (debug) { - Logger.v("LocalBroadcastManager", "Action list: " + entries); - } - - ArrayList receivers = null; - - int i; - for (i = 0; i < entries.size(); ++i) { - ReceiverRecord receiver = (ReceiverRecord) entries.get(i); - if (debug) { - Logger.v("LocalBroadcastManager", "Matching against filter " + receiver.filter); - } - - if (receiver.broadcasting) { - if (debug) { - Logger.v("LocalBroadcastManager", " Filter\'s target already added"); - } - } else { - int match = receiver.filter.match(action, type, scheme, data, categories, "LocalBroadcastManager"); - if (match >= 0) { - if (debug) { - Logger.v("LocalBroadcastManager", " Filter matched! match=0x" + Integer.toHexString(match)); - } - - if (receivers == null) { - receivers = new ArrayList(); - } - - receivers.add(receiver); - receiver.broadcasting = true; - } else if (debug) { - String reason; - switch (match) { - case -4: - reason = "category"; - break; - case -3: - reason = "action"; - break; - case -2: - reason = "data"; - break; - case -1: - reason = "type"; - break; - default: - reason = "unknown reason"; - } - - Logger.v("LocalBroadcastManager", " Filter did not match: " + reason); - } - } - } - - if (receivers != null) { - for (i = 0; i < receivers.size(); ++i) { - ((ReceiverRecord) receivers.get(i)).broadcasting = false; - } - - this.mPendingBroadcasts.add(new BroadcastRecord(intent, receivers)); - if (!this.mHandler.hasMessages(1)) { - this.mHandler.sendEmptyMessage(1); - } - - return true; - } - } - - return false; - } - } - - public void sendBroadcastSync(Intent intent) { - if (this.sendBroadcast(intent)) { - this.executePendingBroadcasts(); - } - - } - - private void executePendingBroadcasts() { - while (true) { - BroadcastRecord[] brs = null; - HashMap i = this.mReceivers; - synchronized (this.mReceivers) { - int br = this.mPendingBroadcasts.size(); - if (br <= 0) { - return; - } - - brs = new BroadcastRecord[br]; - this.mPendingBroadcasts.toArray(brs); - this.mPendingBroadcasts.clear(); - } - - for (int var6 = 0; var6 < brs.length; ++var6) { - BroadcastRecord var7 = brs[var6]; - - for (int j = 0; j < var7.receivers.size(); ++j) { - ((ReceiverRecord) var7.receivers.get(j)).receiver.onReceive(this.mAppContext, var7.intent); - } - } - } - } - - private static class BroadcastRecord { - final Intent intent; - final ArrayList receivers; - - BroadcastRecord(Intent _intent, ArrayList _receivers) { - this.intent = _intent; - this.receivers = _receivers; - } - } - - private static class ReceiverRecord { - final IntentFilter filter; - final BroadcastReceiver receiver; - boolean broadcasting; - - ReceiverRecord(IntentFilter _filter, BroadcastReceiver _receiver) { - this.filter = _filter; - this.receiver = _receiver; - } - - public String toString() { - StringBuilder builder = new StringBuilder(128); - builder.append("Receiver{"); - builder.append(this.receiver); - builder.append(" filter="); - builder.append(this.filter); - builder.append("}"); - return builder.toString(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/Logger.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/Logger.java deleted file mode 100644 index 8706565..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/Logger.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.util.Log; - -import com.tt.ttutils.BuildConfig; - -/** - * Created by efan on 2017/4/13. - */ - -public class Logger { - - //设为false关闭日志 - private static final boolean LOG_ENABLE = BuildConfig.DEBUG; - - public static void i(String tag, String msg){ - if (LOG_ENABLE){ - Log.i(tag, msg); - } - } - public static void v(String tag, String msg){ - if (LOG_ENABLE){ - Log.v(tag, msg); - } - } - public static void d(String tag, String msg){ - if (LOG_ENABLE){ - Log.d(tag, msg); - } - } - public static void w(String tag, String msg){ - if (LOG_ENABLE){ - Log.w(tag, msg); - } - } - public static void e(String tag, String msg){ - if (LOG_ENABLE){ - Log.e(tag, msg); - } - } - -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/MyReceiver.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/MyReceiver.java deleted file mode 100644 index 8947fe7..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/MyReceiver.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.Iterator; - -import cn.jpush.android.api.JPushInterface; - -/** - * 自定义接收器 - * - * 如果不定义这个 Receiver,则: - * 1) 默认用户会打开主界面 - * 2) 接收不到自定义消息 - */ -public class MyReceiver extends BroadcastReceiver { - private static final String TAG = "JIGUANG-Example"; - - @Override - public void onReceive(Context context, Intent intent) { - try { - Bundle bundle = intent.getExtras(); - Logger.d(TAG, "[MyReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle)); - - if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { - String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID); - Logger.d(TAG, "[MyReceiver] 接收Registration Id : " + regId); - //send the Registration Id to your server... - - } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) { - Logger.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE)); -// processCustomMessage(context, bundle); - - } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) { - Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知"); - int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID); - Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId); - - } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { - Logger.d(TAG, "[MyReceiver] 用户点击打开了通知"); - - //打开自定义的Activity - Intent i = new Intent(context, TestActivity.class); - i.putExtras(bundle); - //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); - context.startActivity(i); - - } else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) { - boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false); - Logger.w(TAG, "[MyReceiver]" + intent.getAction() +" connected state change to "+connected); - } else { - Logger.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction()); - } - } catch (Exception e){ - - } - - } - - // 打印所有的 intent extra 数据 - private static String printBundle(Bundle bundle) { - StringBuilder sb = new StringBuilder(); - for (String key : bundle.keySet()) { - if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) { - sb.append("\nkey:" + key + ", value:" + bundle.getInt(key)); - }else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){ - sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key)); - } else if (key.equals(JPushInterface.EXTRA_EXTRA)) { - if (TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) { - Logger.i(TAG, "This message has no Extra data"); - continue; - } - - try { - JSONObject json = new JSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA)); - Iterator it = json.keys(); - - while (it.hasNext()) { - String myKey = it.next(); - sb.append("\nkey:" + key + ", value: [" + - myKey + " - " +json.optString(myKey) + "]"); - } - } catch (JSONException e) { - Logger.e(TAG, "Get message extra JSON error!"); - } - - } else { - sb.append("\nkey:" + key + ", value:" + bundle.get(key)); - } - } - return sb.toString(); - } - - //send msg to MainActivity -// private void processCustomMessage(Context context, Bundle bundle) { -// if (MainActivity.isForeground) { -// String message = bundle.getString(JPushInterface.EXTRA_MESSAGE); -// String extras = bundle.getString(JPushInterface.EXTRA_EXTRA); -// Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION); -// msgIntent.putExtra(MainActivity.KEY_MESSAGE, message); -// if (!ExampleUtil.isEmpty(extras)) { -// try { -// JSONObject extraJson = new JSONObject(extras); -// if (extraJson.length() > 0) { -// msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras); -// } -// } catch (JSONException e) { -// -// } -// -// } -// LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent); -// } -// } -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushMessageReceiver.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushMessageReceiver.java deleted file mode 100644 index 72cbf95..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushMessageReceiver.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; - -import cn.jpush.android.api.CmdMessage; -import cn.jpush.android.api.CustomMessage; -import cn.jpush.android.api.JPushInterface; -import cn.jpush.android.api.JPushMessage; -import cn.jpush.android.api.NotificationMessage; -import cn.jpush.android.service.JPushMessageReceiver; - -public class PushMessageReceiver extends JPushMessageReceiver{ - private static final String TAG = "PushMessageReceiver"; - @Override - public void onMessage(Context context, CustomMessage customMessage) { - Log.e(TAG,"[onMessage] "+customMessage); -// processCustomMessage(context,customMessage); - } - - @Override - public void onNotifyMessageOpened(Context context, NotificationMessage message) { - Log.e(TAG,"[onNotifyMessageOpened] "+message); - try{ - //打开自定义的Activity - Intent i = new Intent(context, TestActivity.class); - Bundle bundle = new Bundle(); - bundle.putString(JPushInterface.EXTRA_NOTIFICATION_TITLE,message.notificationTitle); - bundle.putString(JPushInterface.EXTRA_ALERT,message.notificationContent); - i.putExtras(bundle); - //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP ); - context.startActivity(i); - }catch (Throwable throwable){ - - } - } - - @Override - public void onMultiActionClicked(Context context, Intent intent) { - Log.e(TAG, "[onMultiActionClicked] 用户点击了通知栏按钮"); - String nActionExtra = intent.getExtras().getString(JPushInterface.EXTRA_NOTIFICATION_ACTION_EXTRA); - - //开发者根据不同 Action 携带的 extra 字段来分配不同的动作。 - if(nActionExtra==null){ - Log.d(TAG,"ACTION_NOTIFICATION_CLICK_ACTION nActionExtra is null"); - return; - } - if (nActionExtra.equals("my_extra1")) { - Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮一"); - } else if (nActionExtra.equals("my_extra2")) { - Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮二"); - } else if (nActionExtra.equals("my_extra3")) { - Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮三"); - } else { - Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮未定义"); - } - } - - @Override - public void onNotifyMessageArrived(Context context, NotificationMessage message) { - Log.e(TAG,"[onNotifyMessageArrived] "+message); - } - - @Override - public void onNotifyMessageDismiss(Context context, NotificationMessage message) { - Log.e(TAG,"[onNotifyMessageDismiss] "+message); - } - - @Override - public void onRegister(Context context, String registrationId) { - Log.e(TAG,"[onRegister] "+registrationId); - } - - @Override - public void onConnected(Context context, boolean isConnected) { - Log.e(TAG,"[onConnected] "+isConnected); - } - - @Override - public void onCommandResult(Context context, CmdMessage cmdMessage) { - Log.e(TAG,"[onCommandResult] "+cmdMessage); - } - - @Override - public void onTagOperatorResult(Context context,JPushMessage jPushMessage) { - TagAliasOperatorHelper.getInstance().onTagOperatorResult(context,jPushMessage); - super.onTagOperatorResult(context, jPushMessage); - } - @Override - public void onCheckTagOperatorResult(Context context,JPushMessage jPushMessage){ - TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context,jPushMessage); - super.onCheckTagOperatorResult(context, jPushMessage); - } - @Override - public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { - TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context,jPushMessage); - super.onAliasOperatorResult(context, jPushMessage); - } - - @Override - public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { - TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context,jPushMessage); - super.onMobileNumberOperatorResult(context, jPushMessage); - } - - //send msg to MainActivity -// private void processCustomMessage(Context context, CustomMessage customMessage) { -// if (MainActivity.isForeground) { -// String message = customMessage.message; -// String extras = customMessage.extra; -// Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION); -// msgIntent.putExtra(MainActivity.KEY_MESSAGE, message); -// if (!ExampleUtil.isEmpty(extras)) { -// try { -// JSONObject extraJson = new JSONObject(extras); -// if (extraJson.length() > 0) { -// msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras); -// } -// } catch (JSONException e) { -// -// } -// -// } -// LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent); -// } -// } - - @Override - public void onNotificationSettingsCheck(Context context, boolean isOn, int source) { - super.onNotificationSettingsCheck(context, isOn, source); - Log.e(TAG,"[onNotificationSettingsCheck] isOn:"+isOn+",source:"+source); - } - -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushService.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushService.java deleted file mode 100644 index f43ecaa..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/PushService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - - -import cn.jpush.android.service.JCommonService; - -public class PushService extends JCommonService { - -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TagAliasOperatorHelper.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TagAliasOperatorHelper.java deleted file mode 100644 index 90b6911..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TagAliasOperatorHelper.java +++ /dev/null @@ -1,338 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; -import android.util.SparseArray; - -import java.util.Locale; -import java.util.Set; - -import cn.jpush.android.api.JPushInterface; -import cn.jpush.android.api.JPushMessage; - -/** - * 处理tagalias相关的逻辑 - * */ -public class TagAliasOperatorHelper { - private static final String TAG = "JIGUANG-TagAliasHelper"; - public static int sequence = 1; - /**增加*/ - public static final int ACTION_ADD = 1; - /**覆盖*/ - public static final int ACTION_SET = 2; - /**删除部分*/ - public static final int ACTION_DELETE = 3; - /**删除所有*/ - public static final int ACTION_CLEAN = 4; - /**查询*/ - public static final int ACTION_GET = 5; - - public static final int ACTION_CHECK = 6; - - public static final int DELAY_SEND_ACTION = 1; - - public static final int DELAY_SET_MOBILE_NUMBER_ACTION = 2; - - private Context context; - - private static TagAliasOperatorHelper mInstance; - private TagAliasOperatorHelper(){ - } - public static TagAliasOperatorHelper getInstance(){ - if(mInstance == null){ - synchronized (TagAliasOperatorHelper.class){ - if(mInstance == null){ - mInstance = new TagAliasOperatorHelper(); - } - } - } - return mInstance; - } - public void init(Context context){ - if(context != null) { - this.context = context.getApplicationContext(); - } - } - private SparseArray setActionCache = new SparseArray(); - - public Object get(int sequence){ - return setActionCache.get(sequence); - } - public Object remove(int sequence){ - return setActionCache.get(sequence); - } - public void put(int sequence,Object tagAliasBean){ - setActionCache.put(sequence,tagAliasBean); - } - private Handler delaySendHandler = new Handler(){ - @Override - public void handleMessage(Message msg) { - switch (msg.what){ - case DELAY_SEND_ACTION: - if(msg.obj !=null && msg.obj instanceof TagAliasBean){ - Logger.i(TAG,"on delay time"); - sequence++; - TagAliasBean tagAliasBean = (TagAliasBean) msg.obj; - setActionCache.put(sequence, tagAliasBean); - if(context!=null) { - handleAction(context, sequence, tagAliasBean); - }else{ - Logger.e(TAG,"#unexcepted - context was null"); - } - }else{ - Logger.w(TAG,"#unexcepted - msg obj was incorrect"); - } - break; - case DELAY_SET_MOBILE_NUMBER_ACTION: - if(msg.obj !=null && msg.obj instanceof String) { - Logger.i(TAG, "retry set mobile number"); - sequence++; - String mobileNumber = (String) msg.obj; - setActionCache.put(sequence, mobileNumber); - if(context !=null) { - handleAction(context, sequence, mobileNumber); - }else { - Logger.e(TAG, "#unexcepted - context was null"); - } - }else{ - Logger.w(TAG,"#unexcepted - msg obj was incorrect"); - } - break; - } - } - }; - public void handleAction(Context context,int sequence,String mobileNumber){ - put(sequence,mobileNumber); - Logger.d(TAG,"sequence:"+sequence+",mobileNumber:"+mobileNumber); - JPushInterface.setMobileNumber(context,sequence,mobileNumber); - } - /** - * 处理设置tag - * */ - public void handleAction(Context context,int sequence, TagAliasBean tagAliasBean){ - init(context); - if(tagAliasBean == null){ - Logger.w(TAG,"tagAliasBean was null"); - return; - } - put(sequence,tagAliasBean); - if(tagAliasBean.isAliasAction){ - switch (tagAliasBean.action){ - case ACTION_GET: - JPushInterface.getAlias(context,sequence); - break; - case ACTION_DELETE: - JPushInterface.deleteAlias(context,sequence); - break; - case ACTION_SET: - JPushInterface.setAlias(context,sequence,tagAliasBean.alias); - break; - default: - Logger.w(TAG,"unsupport alias action type"); - return; - } - }else { - switch (tagAliasBean.action) { - case ACTION_ADD: - JPushInterface.addTags(context, sequence, tagAliasBean.tags); - break; - case ACTION_SET: - JPushInterface.setTags(context, sequence, tagAliasBean.tags); - break; - case ACTION_DELETE: - JPushInterface.deleteTags(context, sequence, tagAliasBean.tags); - break; - case ACTION_CHECK: - //一次只能check一个tag - String tag = (String)tagAliasBean.tags.toArray()[0]; - JPushInterface.checkTagBindState(context,sequence,tag); - break; - case ACTION_GET: - JPushInterface.getAllTags(context, sequence); - break; - case ACTION_CLEAN: - JPushInterface.cleanTags(context, sequence); - break; - default: - Logger.w(TAG,"unsupport tag action type"); - return; - } - } - } - private boolean RetryActionIfNeeded(int errorCode,TagAliasBean tagAliasBean){ - if(!ExampleUtil.isConnected(context)){ - Logger.w(TAG,"no network"); - return false; - } - //返回的错误码为6002 超时,6014 服务器繁忙,都建议延迟重试 - if(errorCode == 6002 || errorCode == 6014){ - Logger.d(TAG,"need retry"); - if(tagAliasBean!=null){ - Message message = new Message(); - message.what = DELAY_SEND_ACTION; - message.obj = tagAliasBean; - delaySendHandler.sendMessageDelayed(message,1000*60); - String logs =getRetryStr(tagAliasBean.isAliasAction, tagAliasBean.action,errorCode); - ExampleUtil.showToast(logs, context); - return true; - } - } - return false; - } - private boolean RetrySetMObileNumberActionIfNeeded(int errorCode,String mobileNumber){ - if(!ExampleUtil.isConnected(context)){ - Logger.w(TAG,"no network"); - return false; - } - //返回的错误码为6002 超时,6024 服务器内部错误,建议稍后重试 - if(errorCode == 6002 || errorCode == 6024){ - Logger.d(TAG,"need retry"); - Message message = new Message(); - message.what = DELAY_SET_MOBILE_NUMBER_ACTION; - message.obj = mobileNumber; - delaySendHandler.sendMessageDelayed(message,1000*60); - String str = "Failed to set mobile number due to %s. Try again after 60s."; - str = String.format(Locale.ENGLISH,str,(errorCode == 6002 ? "timeout" : "server internal error”")); - ExampleUtil.showToast(str, context); - return true; - } - return false; - - } - private String getRetryStr(boolean isAliasAction,int actionType,int errorCode){ - String str = "Failed to %s %s due to %s. Try again after 60s."; - str = String.format(Locale.ENGLISH,str,getActionStr(actionType),(isAliasAction? "alias" : " tags") ,(errorCode == 6002 ? "timeout" : "server too busy")); - return str; - } - - private String getActionStr(int actionType){ - switch (actionType){ - case ACTION_ADD: - return "add"; - case ACTION_SET: - return "set"; - case ACTION_DELETE: - return "delete"; - case ACTION_GET: - return "get"; - case ACTION_CLEAN: - return "clean"; - case ACTION_CHECK: - return "check"; - } - return "unkonw operation"; - } - public void onTagOperatorResult(Context context, JPushMessage jPushMessage) { - int sequence = jPushMessage.getSequence(); - Logger.i(TAG,"action - onTagOperatorResult, sequence:"+sequence+",tags:"+jPushMessage.getTags()); - Logger.i(TAG,"tags size:"+jPushMessage.getTags().size()); - init(context); - //根据sequence从之前操作缓存中获取缓存记录 - TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); - if(tagAliasBean == null){ - ExampleUtil.showToast("获取缓存记录失败", context); - return; - } - if(jPushMessage.getErrorCode() == 0){ - Logger.i(TAG,"action - modify tag Success,sequence:"+sequence); - setActionCache.remove(sequence); - String logs = getActionStr(tagAliasBean.action)+" tags success"; - Logger.i(TAG,logs); - ExampleUtil.showToast(logs, context); - }else{ - String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags"; - if(jPushMessage.getErrorCode() == 6018){ - //tag数量超过限制,需要先清除一部分再add - logs += ", tags is exceed limit need to clean"; - } - logs += ", errorCode:" + jPushMessage.getErrorCode(); - Logger.e(TAG, logs); - if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { - ExampleUtil.showToast(logs, context); - } - } - } - public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){ - int sequence = jPushMessage.getSequence(); - Logger.i(TAG,"action - onCheckTagOperatorResult, sequence:"+sequence+",checktag:"+jPushMessage.getCheckTag()); - init(context); - //根据sequence从之前操作缓存中获取缓存记录 - TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); - if(tagAliasBean == null){ - ExampleUtil.showToast("获取缓存记录失败", context); - return; - } - if(jPushMessage.getErrorCode() == 0){ - Logger.i(TAG,"tagBean:"+tagAliasBean); - setActionCache.remove(sequence); - String logs = getActionStr(tagAliasBean.action)+" tag "+jPushMessage.getCheckTag() + " bind state success,state:"+jPushMessage.getTagCheckStateResult(); - Logger.i(TAG,logs); - ExampleUtil.showToast(logs, context); - }else{ - String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags, errorCode:" + jPushMessage.getErrorCode(); - Logger.e(TAG, logs); - if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { - ExampleUtil.showToast(logs, context); - } - } - } - public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { - int sequence = jPushMessage.getSequence(); - Logger.i(TAG,"action - onAliasOperatorResult, sequence:"+sequence+",alias:"+jPushMessage.getAlias()); - init(context); - //根据sequence从之前操作缓存中获取缓存记录 - TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); - if(tagAliasBean == null){ - ExampleUtil.showToast("获取缓存记录失败", context); - return; - } - if(jPushMessage.getErrorCode() == 0){ - Logger.i(TAG,"action - modify alias Success,sequence:"+sequence); - setActionCache.remove(sequence); - String logs = getActionStr(tagAliasBean.action)+" alias success"; - Logger.i(TAG,logs); - ExampleUtil.showToast(logs, context); - }else{ - String logs = "Failed to " + getActionStr(tagAliasBean.action)+" alias, errorCode:" + jPushMessage.getErrorCode(); - Logger.e(TAG, logs); - if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { - ExampleUtil.showToast(logs, context); - } - } - } - //设置手机号码回调 - public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { - int sequence = jPushMessage.getSequence(); - Logger.i(TAG,"action - onMobileNumberOperatorResult, sequence:"+sequence+",mobileNumber:"+jPushMessage.getMobileNumber()); - init(context); - if(jPushMessage.getErrorCode() == 0){ - Logger.i(TAG,"action - set mobile number Success,sequence:"+sequence); - setActionCache.remove(sequence); - }else{ - String logs = "Failed to set mobile number, errorCode:" + jPushMessage.getErrorCode(); - Logger.e(TAG, logs); - if(!RetrySetMObileNumberActionIfNeeded(jPushMessage.getErrorCode(),jPushMessage.getMobileNumber())){ - ExampleUtil.showToast(logs, context); - } - } - } - public static class TagAliasBean{ - int action; - Set tags; - String alias; - boolean isAliasAction; - - @Override - public String toString() { - return "TagAliasBean{" + - "action=" + action + - ", tags=" + tags + - ", alias='" + alias + '\'' + - ", isAliasAction=" + isAliasAction + - '}'; - } - } - - -} diff --git a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TestActivity.java b/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TestActivity.java deleted file mode 100644 index 478b3d7..0000000 --- a/app/src/main/java/com/tt/ttutils/sdk/jpush/jpushdemo/TestActivity.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.tt.ttutils.sdk.jpush.jpushdemo; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.ViewGroup.LayoutParams; -import android.widget.TextView; - -import cn.jpush.android.api.JPushInterface; - -public class TestActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - TextView tv = new TextView(this); - tv.setText("用户自定义打开的Activity"); - Intent intent = getIntent(); - if (null != intent) { - Bundle bundle = getIntent().getExtras(); - String title = null; - String content = null; - if(bundle!=null){ - title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE); - content = bundle.getString(JPushInterface.EXTRA_ALERT); - } - tv.setText("Title : " + title + " " + "Content : " + content); - } - addContentView(tv, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); - } - -} diff --git a/app/src/main/java/com/tt/ttutils/server/main/MainSContact.java b/app/src/main/java/com/tt/ttutils/server/main/MainSContact.java deleted file mode 100644 index 7442630..0000000 --- a/app/src/main/java/com/tt/ttutils/server/main/MainSContact.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.tt.ttutils.server.main; - -import android.view.View; - -import com.google.gson.JsonObject; -import com.tt.ttutils.mvp.BasePresenter; -import com.tt.ttutils.mvp.BaseView; - -public class MainSContact { - public interface MainView extends BaseView { - //设置批次信息 - void setBatchText(String text, int visibility); - //设置班级信息 - void setClassText(String text, int visibility); - //设置学号信息 - void setNumberText(String text, int visibility); - //设置姓名信息 - void setNameText(String text, int visibility); - //获取设备锁定状态 - void setLockedState(boolean loocked); - //是否第一次联网 - void setFirstConnect(boolean state); - //发送mac地址 - void sendMACFinished(); - //更新设备信息 - void updateDeviceInfoFinished(); - //获取时间管控 - void getSnTimeControlFinished(); - //设置击关推送别名 - void setAliasFinished(); - //设置极光推送标签 - void setTagsFinished(); - //设置极光推送平台标签 - void setJpushPlatformTagsFinished(); - //获取应用市场更新 - void checkStoreUpdateFinished(); - //获取测试应用更新 - void checkTestUpdateFinished(); - //手动获取设备信息更新 - void buttonCheckUpdateFinished(boolean update, JsonObject jsonObject); - //开始 - //设置设备后台设置 - void getSystemSettingbegin(); - //获取可被写入的安装包名结束 - void getAppLimitFinished(String packageList); - //获取设备批次结束 - void getDeviceBatchFinished(); - //获取强制下载apk结束 - void getForceDownloadFinished(); - //获取浏览器上网管控设置结束 - void getBrowserListFinished(String whitelist); - //获取浏览器书签设置管控结束 - void getBrowserBookmarksFinished(); - //获取应用图标桌面可见性管控结束 - void getDesktopIconFinished(); - //获取应用自启升级和网络权限管理结束 - void getAppAutoStartUpdateAndNetFinished(); - //获取第三方应用子页面ID连网限制结束 - void getAppIDControlFinished(); - //获取第三方应用内部网页跳转屏蔽结束 - void setAppinsideWebFinished(); - //获取系统其他管控设置结束 - void setSystemSettingFinished(); - //获取开发者选项结束 - void getDeveloperFinished(); - //设置开机动画 - void setLogoImgFinished(); - //获取应用霸屏结束 - void setTopAppFinished(); - /* - * MainService - * */ - //设置屏幕锁状态结束 - void setScreenLockStateFinished(boolean locked, String tips); - //获取桌面结束 - void getDefaultDesktopFinished(); - } - - public interface Presenter extends BasePresenter { - //获取学生信息 - void getStudesInfo(); - //获取设备锁定状态 - void getLockedState(); - //是否第一次联网 - void getFirstConnect(); - //关闭所有功能 - void setDisableSetting(); - //发送mac地址 - void sendMACAddress(); - //更新设备信息 - void updateDeviceInfo(); - //获取时间管控 - void getSnTimeControl(); - //设置击关推送别名 - void setJpushAlias(); - //设置极光推送标签 - void setJpushTags(); - //设置极光推送平台标签 - void setJpushPlatformTags(int platform); - //获取应用更新 - void checkStoreUpdate(); - //手动获取设备信息更新 - void buttonCheckUpdate(View view); - //获取测试应用更新 - void checkTestUpdate(); - //开始 - //获取设备后台设置 - void getSystemSettingbegin(); - //获取可被写入的安装包名 - void getAppLimit(); - //获取设备批次 - void getDeviceBatch(String packageList); - //获取强制下载apk - void getForceDownload(); - //获取浏览器上网管控设置 - void getBrowserList(); - //获取浏览器书签设置管控 - void getBrowserBookmarks(String whitelist); - //设置白名单的url - void getBrowserWhiteList(); - //获取应用图标桌面可见性管控 - void getDesktopIcon(); - //获取应用自启升级和网络权限管理 - void getAppAutoStartUpdateAndNet(); - //获取第三方应用子页面ID连网限制 - void getAppIDControl(); - //获取第三方应用内部网页跳转屏蔽 - void setAppinsideWeb(); - //获取系统其他管控设置 - void setSystemSetting(); - //获取开发者选项 - void getDeveloper(); - //设置开机动画 - void setLogoImg(); - //应用霸屏 - void setTopApp(); - /* - * MainService - * */ - //获取屏幕锁状态 - void getScreenLockState(); - //获取桌面 - void getDefaultDesktop(); - } -} diff --git a/app/src/main/java/com/tt/ttutils/server/main/MainSPresenter.java b/app/src/main/java/com/tt/ttutils/server/main/MainSPresenter.java deleted file mode 100644 index c839854..0000000 --- a/app/src/main/java/com/tt/ttutils/server/main/MainSPresenter.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.tt.ttutils.server.main; - -import android.content.Context; -import android.util.Log; -import android.view.View; - -import com.trello.rxlifecycle4.LifecycleProvider; -import com.trello.rxlifecycle4.android.ActivityEvent; -import com.tt.ttutils.activity.main.MainAContact; - -import io.reactivex.rxjava3.subjects.BehaviorSubject; - - -/** - * MainActivity 的 Presenter - * - * @author jgy02 - */ -public class MainSPresenter implements MainSContact.Presenter { - private static final String TAG = MainSPresenter.class.getSimpleName(); - private MainSContact.MainView mView; - private Context mContext; - - private final String DEFAULT_INFO = "暂无信息"; - private final int OK = 200; - - public MainSPresenter(Context context) { - this.mContext = context; - Log.e(TAG, "MainSPresenter: " + context.getClass()); - } - - /** - * Lifecycle start - */ - - /*1*/ - private LifecycleProvider provider; - - public void setProvider(LifecycleProvider provider) { - this.provider = provider; - } - - public LifecycleProvider getProvider() { - return provider; - } - - /*2*/ - private BehaviorSubject lifecycle; - - public void setLifecycle(BehaviorSubject lifecycle) { - this.lifecycle = lifecycle; - } - - public BehaviorSubject getLifecycle() { - return lifecycle; - } - - /** - * Lifecycle end - */ - - @Override - public void attachView(@androidx.annotation.NonNull MainSContact.MainView view) { - this.mView = view; - } - - @Override - public void detachView() { - this.mView = null; - } - - @Override - public void getStudesInfo() { - - } - - @Override - public void getLockedState() { - - } - - @Override - public void getFirstConnect() { - - } - - @Override - public void setDisableSetting() { - - } - - - @Override - public void sendMACAddress() { - - } - - @Override - public void updateDeviceInfo() { - - } - - @Override - public void getSnTimeControl() { - - } - - @Override - public void setJpushAlias() { - - } - - @Override - public void setJpushTags() { - - } - - @Override - public void setJpushPlatformTags(int platform) { - mView.setJpushPlatformTagsFinished(); - } - - @Override - public void checkStoreUpdate() { - - } - - @Override - public void buttonCheckUpdate(View view) { - - } - - @Override - public void checkTestUpdate() { - - } - - - @Override - public void getSystemSettingbegin() { - - } - - @Override - public void getAppLimit() { - - } - - @Override - public void getDeviceBatch(String packageList) { - - } - - @Override - public void getForceDownload() { - - } - - @Override - public void getBrowserList() { - - } - - @Override - public void getBrowserBookmarks(String whitelist) { - - } - - @Override - public void getBrowserWhiteList() { - - } - - @Override - public void getDesktopIcon() { - - } - - @Override - public void getAppAutoStartUpdateAndNet() { - - } - - @Override - public void getAppIDControl() { - - } - - @Override - public void setAppinsideWeb() { - - } - - @Override - public void setSystemSetting() { - - } - - @Override - public void getDeveloper() { - - } - - @Override - public void setLogoImg() { - - } - - @Override - public void setTopApp() { - - } - - @Override - public void getScreenLockState() { - - } - - @Override - public void getDefaultDesktop() { - - } -} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/BitmapUtils.java b/app/src/main/java/com/tt/ttutils/utils/java/BitmapUtils.java deleted file mode 100644 index 9ec62ed..0000000 --- a/app/src/main/java/com/tt/ttutils/utils/java/BitmapUtils.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.tt.ttutils.utils.java; - -public class BitmapUtils { - -} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/NetworkUtils.java b/app/src/main/java/com/tt/ttutils/utils/java/NetworkUtils.java deleted file mode 100644 index 14cb026..0000000 --- a/app/src/main/java/com/tt/ttutils/utils/java/NetworkUtils.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.tt.ttutils.utils.java; - -import android.content.Context; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; - -public class NetworkUtils { - -} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/OtherUtils.java b/app/src/main/java/com/tt/ttutils/utils/java/OtherUtils.java deleted file mode 100644 index 11df2a8..0000000 --- a/app/src/main/java/com/tt/ttutils/utils/java/OtherUtils.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.tt.ttutils.utils.java; - -public class OtherUtils { - -} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/SystemSignUtils.java b/app/src/main/java/com/tt/ttutils/utils/java/SystemSignUtils.java deleted file mode 100644 index eaf873e..0000000 --- a/app/src/main/java/com/tt/ttutils/utils/java/SystemSignUtils.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.tt.ttutils.utils.java; - -public class SystemSignUtils { - -} diff --git a/app/src/main/java/com/tt/ttutils/utils/kt/ApkUtils.kt b/app/src/main/java/com/tt/ttutils/utils/kt/ApkUtils.kt deleted file mode 100644 index 2d9aef0..0000000 --- a/app/src/main/java/com/tt/ttutils/utils/kt/ApkUtils.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.tt.ttutils.utils.kt - -class ApkUtils { - - -} \ No newline at end of file diff --git a/app/src/main/java/com/tt/ttutils/activity/AoleyunTestActivity.java b/app/src/main/java/com/ttstd/ttutils/activity/AoleyunTestActivity.java similarity index 66% rename from app/src/main/java/com/tt/ttutils/activity/AoleyunTestActivity.java rename to app/src/main/java/com/ttstd/ttutils/activity/AoleyunTestActivity.java index 9e7c4c6..af7af11 100644 --- a/app/src/main/java/com/tt/ttutils/activity/AoleyunTestActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/AoleyunTestActivity.java @@ -1,8 +1,11 @@ -package com.tt.ttutils.activity; +package com.ttstd.ttutils.activity; +import android.app.PendingIntent; import android.app.StatusBarManager; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; import android.media.AudioManager; import android.net.Uri; import android.provider.Settings; @@ -14,11 +17,17 @@ import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; -import com.tt.ttutils.BuildConfig; -import com.tt.ttutils.R; -import com.tt.ttutils.base.BaseActivity; -import com.tt.ttutils.utils.java.JGYUtils; -import com.tt.ttutils.utils.java.ToastUtil; +import androidx.core.content.pm.ShortcutInfoCompat; +import androidx.core.content.pm.ShortcutManagerCompat; +import androidx.core.graphics.drawable.IconCompat; + +import com.ttstd.ttutils.BuildConfig; +import com.ttstd.ttutils.R; +import com.ttstd.ttutils.activity.main.MainActivity; +import com.ttstd.ttutils.base.BaseActivity; +import com.ttstd.ttutils.receiver.ShortcutReceiver; +import com.ttstd.ttutils.utils.java.JGYUtils; +import com.ttstd.ttutils.utils.java.ToastUtil; import java.util.HashMap; import java.util.List; @@ -30,6 +39,8 @@ import butterknife.ButterKnife; public class AoleyunTestActivity extends BaseActivity { private static final String TAG = AoleyunTestActivity.class.getSimpleName(); + @BindView(R.id.bt_settings) + Button bt_settings; @BindView(R.id.bt_usb) Button bt_usb; @BindView(R.id.bt_usb_statu) @@ -49,6 +60,8 @@ public class AoleyunTestActivity extends BaseActivity { Button bt_desktop_launcher; @BindView(R.id.bt_desktop_dop2) Button bt_desktop_dop2; + @BindView(R.id.bt_desktop_aoleyun_os) + Button bt_desktop_aoleyun_os; @BindView(R.id.bt_desktop_aoleyun) Button bt_desktop_aoleyun; @@ -79,6 +92,15 @@ public class AoleyunTestActivity extends BaseActivity { @BindView(R.id.bt_navigation_off) Button bt_navigation_off; + @BindView(R.id.bt_statusbar) + Button bt_statusbar; + @BindView(R.id.bt_statusbar_back) + Button bt_statusbar_back; + @BindView(R.id.bt_statusbar_home) + Button bt_statusbar_home; + @BindView(R.id.bt_statusbar_recent) + Button bt_statusbar_recent; + @BindView(R.id.bt_status) Button bt_status; @BindView(R.id.bt_status_statu) @@ -160,6 +182,25 @@ public class AoleyunTestActivity extends BaseActivity { @BindView(R.id.bt_app_off) Button bt_app_off; + @BindView(R.id.bt_night_on) + Button bt_night_on; + @BindView(R.id.bt_night_off) + Button bt_night_off; + @BindView(R.id.bt_read_on) + Button bt_read_on; + @BindView(R.id.bt_read_off) + Button bt_read_off; + + @BindView(R.id.bt_add_shortcut) + Button bt_add_shortcut; + + public static final String NIGHT_DISPLAY_ENABLED = "NIGHT_DISPLAY_ENABLED"; + public static final String NIGHT_DISPLAY_DISABLED = "NIGHT_DISPLAY_DISABLED"; + public static final String READ_MODEL_ENABLED = "READ_MODEL_ENABLED"; + public static final String READ_MODEL_DISABLED = "READ_MODEL_DISABLED"; + + StatusBarManager mStatusBarManager; + @Override public int getLayoutId() { return R.layout.activity_aoleyun_test; @@ -168,6 +209,24 @@ public class AoleyunTestActivity extends BaseActivity { @Override public void initView() { ButterKnife.bind(this); + + PackageManager pm = getPackageManager(); + try { + Log.e(TAG, "initView: " + pm.getApplicationEnabledSetting("com.teclast.update")); + pm.setApplicationEnabledSetting("com.teclast.update", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0); + // pm.getApplicationEnabledSetting("com.teclast.update") == PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + } catch (Exception e) { + e.printStackTrace(); + } + + try { + Intent intent = new Intent(); + intent.setClassName("com.teclast.update", "com.teclast.update. GoogleOtaClient"); + startActivity(intent); + } catch (Exception e) { + e.printStackTrace(); + } + if (BuildConfig.DEBUG) { // ApkUtils.openApp(this, "com.android.settings"); //静音 @@ -179,7 +238,10 @@ public class AoleyunTestActivity extends BaseActivity { audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量 } + mStatusBarManager = (StatusBarManager) getApplicationContext().getSystemService(Context.STATUS_BAR_SERVICE); + init(); + } @Override @@ -188,10 +250,11 @@ public class AoleyunTestActivity extends BaseActivity { } private void init() { - bt_usb_statu.setOnClickListener(new View.OnClickListener() { + bt_settings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - ToastUtil.show("app_view_click_disabled"); + startActivity(new Intent(Settings.ACTION_SETTINGS)); +// startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS)); } }); bt_usb.setOnClickListener(new View.OnClickListener() { @@ -201,10 +264,19 @@ public class AoleyunTestActivity extends BaseActivity { "com.android.gallery3d:12345,78901;com.android.settings:9876543,12346"); } }); + bt_usb_statu.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ToastUtil.show("app_view_click_disabled"); + } + }); bt_usb_charge.setOnClickListener(view -> { Log.e(TAG, "bt_usb_charge: " + view.getId()); Intent usbIntent = new Intent("aole_action_usb_usb_charge"); - if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform) { + if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform + ) { usbIntent.setPackage("com.android.settings"); } sendBroadcast(usbIntent); @@ -212,7 +284,10 @@ public class AoleyunTestActivity extends BaseActivity { bt_usb_mtp.setOnClickListener(view -> { Log.e(TAG, "bt_usb_charge: " + view.getId()); Intent usbIntent = new Intent("aole_action_usb_usb_mtp"); - if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform) { + if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform + ) { usbIntent.setPackage("com.android.settings"); } sendBroadcast(usbIntent); @@ -220,7 +295,9 @@ public class AoleyunTestActivity extends BaseActivity { bt_usb_midi.setOnClickListener(view -> { Log.e(TAG, "bt_usb_charge: " + view.getId()); Intent usbIntent = new Intent("aole_action_usb_usb_midi"); - if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform) { + if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTK8515Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform + ) { usbIntent.setPackage("com.android.settings"); } sendBroadcast(usbIntent); @@ -241,13 +318,24 @@ public class AoleyunTestActivity extends BaseActivity { intent.setPackage("com.android.settings"); sendBroadcast(intent); }); - bt_desktop_aoleyun.setOnClickListener(view -> { + bt_desktop_aoleyun_os.setOnClickListener(view -> { Intent intent = new Intent("setDefaultLauncher"); intent.putExtra("package", "com.android.uiuios"); intent.putExtra("className", "com.android.uiuios.Launcher"); intent.setPackage("com.android.settings"); sendBroadcast(intent); }); + bt_desktop_aoleyun.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent("setDefaultLauncher"); + intent.putExtra("package", "com.aoleyun.os"); + intent.putExtra("className", "com.aoleyun.os.Launcher"); + intent.setPackage("com.android.settings"); + sendBroadcast(intent); + } + }); + bt_sd_statu.setOnClickListener(view -> { int aole_sdcard_forbid_on = Settings.System.getInt(getContentResolver(), "aole_sdcard_forbid_on", 0); @@ -285,6 +373,34 @@ public class AoleyunTestActivity extends BaseActivity { sendBroadcast(navIntent); }); + bt_statusbar.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +// mStatusBarManager.disable(StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_HOME); +// mStatusBarManager.disable(StatusBarManager.DISABLE_BACK | StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_HOME); + mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);//显示隐藏的虚拟按键 + } + }); + bt_statusbar_back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mStatusBarManager.disable(StatusBarManager.DISABLE_BACK);//隐藏返回键 + } + }); + bt_statusbar_home.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mStatusBarManager.disable(StatusBarManager.DISABLE_HOME);//隐藏home键 + } + }); + bt_statusbar_recent.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mStatusBarManager.disable(StatusBarManager.DISABLE_RECENT);//隐藏recent键 + } + }); + + bt_status_on.setOnClickListener(view -> { Intent navIntent = new Intent("aole_show_statusBar"); // Intent navIntent = new Intent("aole_show_statusBar").setPackage("com.android.systemui"); @@ -299,17 +415,19 @@ public class AoleyunTestActivity extends BaseActivity { bt_collapse_on.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - StatusBarManager mStatusBarManager = (StatusBarManager) getApplicationContext().getSystemService(Context.STATUS_BAR_SERVICE); - mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); +// StatusBarManager mStatusBarManager = (StatusBarManager) getApplicationContext().getSystemService(Context.STATUS_BAR_SERVICE); +// mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); // mStatusBarManager.disable(StatusBarManager.DISABLE2_NOTIFICATION_SHADE); + Settings.Global.putInt(getContentResolver(), "PULLDOWN_MENU_ENABLED", 1); } }); bt_collapse_off.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - StatusBarManager mStatusBarManager = (StatusBarManager) getApplicationContext().getSystemService(Context.STATUS_BAR_SERVICE); - mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); + Settings.Global.putInt(getContentResolver(), "PULLDOWN_MENU_ENABLED", 0); +// StatusBarManager mStatusBarManager = (StatusBarManager) getApplicationContext().getSystemService(Context.STATUS_BAR_SERVICE); +// mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); // mStatusBarManager.disable(StatusBarManager.DISABLE2_NONE); } }); @@ -369,7 +487,6 @@ public class AoleyunTestActivity extends BaseActivity { } }); bt_browser_on.setOnClickListener(view -> { - Intent intent = new Intent("setDefaultBrowser"); intent.putExtra("package", ("com.quark.browser")); intent.setPackage("com.android.settings"); @@ -406,6 +523,79 @@ public class AoleyunTestActivity extends BaseActivity { Settings.System.putString(getContentResolver(), "aole_network_disallow", ""); } }); + bt_night_on.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sendBroadcast(new Intent(NIGHT_DISPLAY_ENABLED)); + } + }); + bt_night_off.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sendBroadcast(new Intent(NIGHT_DISPLAY_DISABLED)); + } + }); + bt_read_on.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sendBroadcast(new Intent(READ_MODEL_ENABLED)); + } + }); + bt_read_off.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sendBroadcast(new Intent(READ_MODEL_DISABLED)); + } + }); + bt_add_shortcut.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { +// addShortcut(AoleyunTestActivity.this, new Intent( +// AoleyunTestActivity.this, MainActivity.class), "TTUtilsTest", false, +// ((BitmapDrawable) getResources().getDrawable(R.drawable.ic_launcher)).getBitmap()); + addShortCutCompact(AoleyunTestActivity.this); + } + }); + } + + + private static final String ACTION_INSTALL_SHORTCUT = + "com.android.launcher.action.INSTALL_SHORTCUT"; + + /** + * 添加快捷方式 + * + * @param context context + * @param actionIntent 要启动的Intent + * @param name name + */ + public void addShortcut(Context context, Intent actionIntent, String name, boolean allowRepeat, Bitmap iconBitmap) { + Intent addShortcutIntent = new Intent(ACTION_INSTALL_SHORTCUT); + // 是否允许重复创建 + addShortcutIntent.putExtra("duplicate", allowRepeat); + // 快捷方式的标题 + addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); + // 快捷方式的图标 + addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconBitmap); + // 快捷方式的动作 + addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, actionIntent); + context.sendBroadcast(addShortcutIntent); + } + + public static void addShortCutCompact(Context context) { + if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) { + Intent shortcutInfoIntent = new Intent(context, MainActivity.class); + shortcutInfoIntent.setAction(Intent.ACTION_VIEW); //action必须设置,不然报错 + ShortcutInfoCompat info = new ShortcutInfoCompat.Builder(context, "id") + .setIcon(IconCompat.createWithResource(context, R.mipmap.ic_launcher)) + .setShortLabel("name") + .setIntent(shortcutInfoIntent) + .build(); + //当添加快捷方式的确认弹框弹出来时,将被回调,自定义Receiver + PendingIntent shortcutCallbackIntent = PendingIntent.getBroadcast(context, 0, new Intent(context, ShortcutReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT); + ShortcutManagerCompat.requestPinShortcut(context, info, + shortcutCallbackIntent.getIntentSender()); + } } @Override @@ -448,6 +638,8 @@ public class AoleyunTestActivity extends BaseActivity { } public void setDeveloperOptions(int state) { + Settings.System.putInt(getContentResolver(), "aole_Developeroptions", state); + Log.e(TAG, "setDeveloperOptions: " + state); Settings.System.putInt(getContentResolver(), "aole_Developeroptions", state); int old_dev_enabled = Settings.Global.getInt(getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0); @@ -466,6 +658,5 @@ public class AoleyunTestActivity extends BaseActivity { } else { Log.e(TAG, "setDeveloperOptions: " + "打开开发者模式"); } - } } diff --git a/app/src/main/java/com/tt/ttutils/activity/KotlinMainActivity.kt b/app/src/main/java/com/ttstd/ttutils/activity/KotlinMainActivity.kt similarity index 95% rename from app/src/main/java/com/tt/ttutils/activity/KotlinMainActivity.kt rename to app/src/main/java/com/ttstd/ttutils/activity/KotlinMainActivity.kt index 1213f0f..53a98e3 100644 --- a/app/src/main/java/com/tt/ttutils/activity/KotlinMainActivity.kt +++ b/app/src/main/java/com/ttstd/ttutils/activity/KotlinMainActivity.kt @@ -1,4 +1,4 @@ -package com.tt.ttutils.activity +package com.ttstd.ttutils.activity import android.content.ComponentName import android.content.Context @@ -11,12 +11,11 @@ import android.util.Log import android.widget.Button import androidx.appcompat.app.AppCompatActivity import com.notepad.uiui.INoteAidlInterface -import com.tt.ttutils.R -import com.tt.ttutils.utils.java.DevicesUtils +import com.ttstd.ttutils.R +import com.ttstd.ttutils.utils.java.DevicesUtils import kotlinx.android.synthetic.main.activity_main.* import me.jessyan.autosize.internal.CancelAdapt import java.io.File -import kotlin.math.log class KotlinMainActivity : AppCompatActivity(), CancelAdapt { diff --git a/app/src/main/java/com/tt/ttutils/activity/PackageActivity.java b/app/src/main/java/com/ttstd/ttutils/activity/PackageActivity.java similarity index 90% rename from app/src/main/java/com/tt/ttutils/activity/PackageActivity.java rename to app/src/main/java/com/ttstd/ttutils/activity/PackageActivity.java index 568e5a6..cea6814 100644 --- a/app/src/main/java/com/tt/ttutils/activity/PackageActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/PackageActivity.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.activity; +package com.ttstd.ttutils.activity; import androidx.appcompat.app.AppCompatActivity; @@ -6,8 +6,8 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; -import com.tt.ttutils.receiver.PackageReceiver; -import com.tt.ttutils.R; +import com.ttstd.ttutils.receiver.PackageReceiver; +import com.ttstd.ttutils.R; public class PackageActivity extends AppCompatActivity { private PackageReceiver packageReceiver; diff --git a/app/src/main/java/com/tt/ttutils/activity/main/MainAContact.java b/app/src/main/java/com/ttstd/ttutils/activity/main/MainAContact.java similarity index 64% rename from app/src/main/java/com/tt/ttutils/activity/main/MainAContact.java rename to app/src/main/java/com/ttstd/ttutils/activity/main/MainAContact.java index 9608a76..5daf58b 100644 --- a/app/src/main/java/com/tt/ttutils/activity/main/MainAContact.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/main/MainAContact.java @@ -1,7 +1,7 @@ -package com.tt.ttutils.activity.main; +package com.ttstd.ttutils.activity.main; -import com.tt.ttutils.mvp.BasePresenter; -import com.tt.ttutils.mvp.BaseView; +import com.ttstd.ttutils.mvp.BasePresenter; +import com.ttstd.ttutils.mvp.BaseView; public class MainAContact { public interface MainView extends BaseView { diff --git a/app/src/main/java/com/tt/ttutils/activity/main/MainAPresenter.java b/app/src/main/java/com/ttstd/ttutils/activity/main/MainAPresenter.java similarity index 96% rename from app/src/main/java/com/tt/ttutils/activity/main/MainAPresenter.java rename to app/src/main/java/com/ttstd/ttutils/activity/main/MainAPresenter.java index 30581e7..045c31f 100644 --- a/app/src/main/java/com/tt/ttutils/activity/main/MainAPresenter.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/main/MainAPresenter.java @@ -1,8 +1,7 @@ -package com.tt.ttutils.activity.main; +package com.ttstd.ttutils.activity.main; import android.content.Context; import android.util.Log; -import android.view.View; import com.trello.rxlifecycle4.LifecycleProvider; import com.trello.rxlifecycle4.android.ActivityEvent; diff --git a/app/src/main/java/com/tt/ttutils/activity/main/MainActivity.java b/app/src/main/java/com/ttstd/ttutils/activity/main/MainActivity.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/activity/main/MainActivity.java rename to app/src/main/java/com/ttstd/ttutils/activity/main/MainActivity.java index f8b24a1..3c75234 100644 --- a/app/src/main/java/com/tt/ttutils/activity/main/MainActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/main/MainActivity.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.activity.main; +package com.ttstd.ttutils.activity.main; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -24,14 +24,14 @@ import android.widget.Toast; import com.jiaoguanyi.appstore.IGetLicenseInterface; import com.notepad.uiui.INoteAidlInterface; -import com.tt.ttutils.base.ImmerseBaseActivity; -import com.tt.ttutils.server.main.MainService; -import com.tt.ttutils.R; -import com.tt.ttutils.utils.java.CmdUtil; -import com.tt.ttutils.utils.java.JGYUtils; -import com.tt.ttutils.utils.java.TTUtils; -import com.tt.ttutils.utils.java.ToastUtil; -import com.tt.ttutils.utils.jni.NDKTools; +import com.ttstd.ttutils.base.ImmerseBaseActivity; +import com.ttstd.ttutils.server.main.MainService; +import com.ttstd.ttutils.R; +import com.ttstd.ttutils.utils.java.CmdUtil; +import com.ttstd.ttutils.utils.java.JGYUtils; +import com.ttstd.ttutils.utils.java.TTUtils; +import com.ttstd.ttutils.utils.java.ToastUtil; +import com.ttstd.ttutils.utils.jni.NDKTools; import com.uiui.sn.IGetInfoInterface; import java.util.ArrayList; diff --git a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitActivity.java b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitActivity.java similarity index 86% rename from app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitActivity.java rename to app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitActivity.java index eb594b8..81ce940 100644 --- a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitActivity.java @@ -1,7 +1,7 @@ -package com.tt.ttutils.activity.retrofit; +package com.ttstd.ttutils.activity.retrofit; -import com.tt.ttutils.R; -import com.tt.ttutils.base.BaseActivity; +import com.ttstd.ttutils.R; +import com.ttstd.ttutils.base.BaseActivity; public class RetrofitActivity extends BaseActivity implements RetrofitContact.MainView { private RetrofitPresenter mRetrofitPresenter; diff --git a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitContact.java b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitContact.java similarity index 64% rename from app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitContact.java rename to app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitContact.java index 8ad0da4..ac796f7 100644 --- a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitContact.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitContact.java @@ -1,7 +1,7 @@ -package com.tt.ttutils.activity.retrofit; +package com.ttstd.ttutils.activity.retrofit; -import com.tt.ttutils.mvp.BasePresenter; -import com.tt.ttutils.mvp.BaseView; +import com.ttstd.ttutils.mvp.BasePresenter; +import com.ttstd.ttutils.mvp.BaseView; public class RetrofitContact { public interface Presenter extends BasePresenter { diff --git a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitPresenter.java b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitPresenter.java similarity index 94% rename from app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitPresenter.java rename to app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitPresenter.java index 1e59d04..87ea15a 100644 --- a/app/src/main/java/com/tt/ttutils/activity/retrofit/RetrofitPresenter.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/retrofit/RetrofitPresenter.java @@ -1,9 +1,8 @@ -package com.tt.ttutils.activity.retrofit; +package com.ttstd.ttutils.activity.retrofit; import android.content.Context; import android.text.TextUtils; import android.util.Log; -import android.view.View; import androidx.annotation.NonNull; @@ -12,10 +11,9 @@ import com.google.gson.JsonParser; import com.trello.rxlifecycle4.LifecycleProvider; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; -import com.tt.ttutils.activity.main.MainAContact; -import com.tt.ttutils.network.NetInterfaceManager; -import com.tt.ttutils.network.UrlAddress; -import com.tt.ttutils.retrofit.GetPublicIPApi; +import com.ttstd.ttutils.network.NetInterfaceManager; +import com.ttstd.ttutils.network.UrlAddress; +import com.ttstd.ttutils.retrofit.GetPublicIPApi; import java.io.IOException; diff --git a/app/src/main/java/com/tt/ttutils/activity/test/TestActivity.java b/app/src/main/java/com/ttstd/ttutils/activity/test/TestActivity.java similarity index 95% rename from app/src/main/java/com/tt/ttutils/activity/test/TestActivity.java rename to app/src/main/java/com/ttstd/ttutils/activity/test/TestActivity.java index 96c5ddb..5ae84ba 100644 --- a/app/src/main/java/com/tt/ttutils/activity/test/TestActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/activity/test/TestActivity.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.activity.test; +package com.ttstd.ttutils.activity.test; import androidx.appcompat.app.AppCompatActivity; @@ -8,12 +8,10 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; -import android.util.Log; -import android.view.View; import android.widget.Button; -import com.tt.ttutils.R; -import com.tt.ttutils.utils.java.TTUtils; +import com.ttstd.ttutils.R; +import com.ttstd.ttutils.utils.java.TTUtils; import java.util.List; diff --git a/app/src/main/java/com/tt/ttutils/base/BaseActivity.java b/app/src/main/java/com/ttstd/ttutils/base/BaseActivity.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/base/BaseActivity.java rename to app/src/main/java/com/ttstd/ttutils/base/BaseActivity.java index a66db5f..a88c822 100644 --- a/app/src/main/java/com/tt/ttutils/base/BaseActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/base/BaseActivity.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.base; +package com.ttstd.ttutils.base; import android.os.Bundle; @@ -15,7 +15,7 @@ import com.trello.rxlifecycle4.LifecycleTransformer; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.trello.rxlifecycle4.android.RxLifecycleAndroid; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX; import io.reactivex.rxjava3.core.Observable; diff --git a/app/src/main/java/com/tt/ttutils/base/BaseApplication.java b/app/src/main/java/com/ttstd/ttutils/base/BaseApplication.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/base/BaseApplication.java rename to app/src/main/java/com/ttstd/ttutils/base/BaseApplication.java index 76ef1b5..5202d27 100644 --- a/app/src/main/java/com/tt/ttutils/base/BaseApplication.java +++ b/app/src/main/java/com/ttstd/ttutils/base/BaseApplication.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.base; +package com.ttstd.ttutils.base; import android.app.Application; import android.os.Handler; @@ -8,7 +8,7 @@ import android.util.Log; import com.tencent.android.tpush.XGIOperateCallback; import com.tencent.android.tpush.XGPushConfig; import com.tencent.android.tpush.XGPushManager; -import com.tt.ttutils.BuildConfig; +import com.ttstd.ttutils.BuildConfig; public class BaseApplication extends Application { @Override diff --git a/app/src/main/java/com/tt/ttutils/base/BaseFragment.java b/app/src/main/java/com/ttstd/ttutils/base/BaseFragment.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/base/BaseFragment.java rename to app/src/main/java/com/ttstd/ttutils/base/BaseFragment.java index 2d31816..2ceb90b 100644 --- a/app/src/main/java/com/tt/ttutils/base/BaseFragment.java +++ b/app/src/main/java/com/ttstd/ttutils/base/BaseFragment.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.base; +package com.ttstd.ttutils.base; import android.os.Bundle; import android.view.View; diff --git a/app/src/main/java/com/tt/ttutils/base/BaseLightActivity.java b/app/src/main/java/com/ttstd/ttutils/base/BaseLightActivity.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/base/BaseLightActivity.java rename to app/src/main/java/com/ttstd/ttutils/base/BaseLightActivity.java index 6fd06d1..04b24b1 100644 --- a/app/src/main/java/com/tt/ttutils/base/BaseLightActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/base/BaseLightActivity.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.base; +package com.ttstd.ttutils.base; import android.os.Bundle; @@ -15,7 +15,7 @@ import com.trello.rxlifecycle4.LifecycleTransformer; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.trello.rxlifecycle4.android.RxLifecycleAndroid; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX; import io.reactivex.rxjava3.core.Observable; diff --git a/app/src/main/java/com/tt/ttutils/base/ImmerseBaseActivity.java b/app/src/main/java/com/ttstd/ttutils/base/ImmerseBaseActivity.java similarity index 92% rename from app/src/main/java/com/tt/ttutils/base/ImmerseBaseActivity.java rename to app/src/main/java/com/ttstd/ttutils/base/ImmerseBaseActivity.java index 1284d63..48bb869 100644 --- a/app/src/main/java/com/tt/ttutils/base/ImmerseBaseActivity.java +++ b/app/src/main/java/com/ttstd/ttutils/base/ImmerseBaseActivity.java @@ -1,11 +1,10 @@ -package com.tt.ttutils.base; +package com.ttstd.ttutils.base; import android.os.Bundle; import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX; public abstract class ImmerseBaseActivity extends BaseActivity { diff --git a/app/src/main/java/com/tt/ttutils/base/KotlinApplication.kt b/app/src/main/java/com/ttstd/ttutils/base/KotlinApplication.kt similarity index 80% rename from app/src/main/java/com/tt/ttutils/base/KotlinApplication.kt rename to app/src/main/java/com/ttstd/ttutils/base/KotlinApplication.kt index 24da655..98ab199 100644 --- a/app/src/main/java/com/tt/ttutils/base/KotlinApplication.kt +++ b/app/src/main/java/com/ttstd/ttutils/base/KotlinApplication.kt @@ -1,32 +1,32 @@ -package com.tt.ttutils.base +package com.ttstd.ttutils.base import android.app.Application import android.os.Handler import android.os.Looper import android.util.Log -import cn.jpush.android.api.JPushInterface import com.tencent.android.tpush.XGIOperateCallback import com.tencent.android.tpush.XGPushConfig import com.tencent.android.tpush.XGPushManager +import com.tencent.bugly.crashreport.CrashReport import com.tencent.mmkv.MMKV -import com.tt.ttutils.BuildConfig -import com.tt.ttutils.utils.java.JGYUtils -import com.tt.ttutils.utils.java.TTUtils -import com.tt.ttutils.utils.java.ToastUtil +import com.ttstd.ttutils.BuildConfig +import com.ttstd.ttutils.utils.java.JGYUtils +import com.ttstd.ttutils.utils.java.TTUtils +import com.ttstd.ttutils.utils.java.ToastUtil class KotlinApplication : Application() { - private val debug = BuildConfig.DEBUG; + override fun onCreate() { super.onCreate() val rootDir = MMKV.initialize(this) Log.e("KotlinApplication", "mmkv root: $rootDir") ToastUtil.init(this) - JPushInterface.setDebugMode(debug) // 设置开启日志,发布时请关闭日志 - JPushInterface.init(this) // 初始化 JPush TTUtils.init(this) JGYUtils.init(this) + CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false); + XGPushConfig.enableDebug(this, true) XGPushManager.registerPush(this, object : XGIOperateCallback { override fun onSuccess(data: Any, flag: Int) { @@ -52,7 +52,7 @@ class KotlinApplication : Application() { ) } //下面是新增方法! - Handler(Looper.getMainLooper()).post(Runnable { + Handler(Looper.getMainLooper()).post({ while (true) { try { Looper.loop() //会先执行这个方法,然后在执行下面的异常捕获方法! diff --git a/app/src/main/java/com/tt/ttutils/base/old/BaseActivity1.java b/app/src/main/java/com/ttstd/ttutils/base/old/BaseActivity1.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/base/old/BaseActivity1.java rename to app/src/main/java/com/ttstd/ttutils/base/old/BaseActivity1.java index a7c7238..693aafd 100644 --- a/app/src/main/java/com/tt/ttutils/base/old/BaseActivity1.java +++ b/app/src/main/java/com/ttstd/ttutils/base/old/BaseActivity1.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.base.old; +package com.ttstd.ttutils.base.old; import android.os.Build; import android.os.Bundle; diff --git a/app/src/main/java/com/tt/ttutils/bean/BaseResponse.java b/app/src/main/java/com/ttstd/ttutils/bean/BaseResponse.java similarity index 93% rename from app/src/main/java/com/tt/ttutils/bean/BaseResponse.java rename to app/src/main/java/com/ttstd/ttutils/bean/BaseResponse.java index 205cb3e..2be5b14 100644 --- a/app/src/main/java/com/tt/ttutils/bean/BaseResponse.java +++ b/app/src/main/java/com/ttstd/ttutils/bean/BaseResponse.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.bean; +package com.ttstd.ttutils.bean; import androidx.annotation.NonNull; diff --git a/app/src/main/java/com/tt/ttutils/db/LogDBHelper.java b/app/src/main/java/com/ttstd/ttutils/db/LogDBHelper.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/db/LogDBHelper.java rename to app/src/main/java/com/ttstd/ttutils/db/LogDBHelper.java index 74db952..27080b4 100644 --- a/app/src/main/java/com/tt/ttutils/db/LogDBHelper.java +++ b/app/src/main/java/com/ttstd/ttutils/db/LogDBHelper.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.db; +package com.ttstd.ttutils.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; diff --git a/app/src/main/java/com/tt/ttutils/db/OpenHelper.java b/app/src/main/java/com/ttstd/ttutils/db/OpenHelper.java similarity index 95% rename from app/src/main/java/com/tt/ttutils/db/OpenHelper.java rename to app/src/main/java/com/ttstd/ttutils/db/OpenHelper.java index fe535b4..1f6da85 100644 --- a/app/src/main/java/com/tt/ttutils/db/OpenHelper.java +++ b/app/src/main/java/com/ttstd/ttutils/db/OpenHelper.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.db; +package com.ttstd.ttutils.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; diff --git a/app/src/main/java/com/tt/ttutils/disklrucache/CacheHelper.java b/app/src/main/java/com/ttstd/ttutils/disklrucache/CacheHelper.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/disklrucache/CacheHelper.java rename to app/src/main/java/com/ttstd/ttutils/disklrucache/CacheHelper.java index 0277d21..1dbcdc7 100644 --- a/app/src/main/java/com/tt/ttutils/disklrucache/CacheHelper.java +++ b/app/src/main/java/com/ttstd/ttutils/disklrucache/CacheHelper.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.disklrucache; +package com.ttstd.ttutils.disklrucache; import android.content.Context; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/tt/ttutils/disklrucache/DiskLruCacheHelper.java b/app/src/main/java/com/ttstd/ttutils/disklrucache/DiskLruCacheHelper.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/disklrucache/DiskLruCacheHelper.java rename to app/src/main/java/com/ttstd/ttutils/disklrucache/DiskLruCacheHelper.java index 98926f3..92b8c69 100644 --- a/app/src/main/java/com/tt/ttutils/disklrucache/DiskLruCacheHelper.java +++ b/app/src/main/java/com/ttstd/ttutils/disklrucache/DiskLruCacheHelper.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.disklrucache; +package com.ttstd.ttutils.disklrucache; import android.content.Context; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/tt/ttutils/disklrucache/Utils.java b/app/src/main/java/com/ttstd/ttutils/disklrucache/Utils.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/disklrucache/Utils.java rename to app/src/main/java/com/ttstd/ttutils/disklrucache/Utils.java index 0ef83d7..6855cb6 100644 --- a/app/src/main/java/com/tt/ttutils/disklrucache/Utils.java +++ b/app/src/main/java/com/ttstd/ttutils/disklrucache/Utils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.disklrucache; +package com.ttstd.ttutils.disklrucache; import android.content.Context; import android.content.pm.PackageInfo; diff --git a/app/src/main/java/com/tt/ttutils/gson/NullStringToEmptyAdapterFactory.java b/app/src/main/java/com/ttstd/ttutils/gson/NullStringToEmptyAdapterFactory.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/gson/NullStringToEmptyAdapterFactory.java rename to app/src/main/java/com/ttstd/ttutils/gson/NullStringToEmptyAdapterFactory.java index 6f3174f..65373a3 100644 --- a/app/src/main/java/com/tt/ttutils/gson/NullStringToEmptyAdapterFactory.java +++ b/app/src/main/java/com/ttstd/ttutils/gson/NullStringToEmptyAdapterFactory.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.gson; +package com.ttstd.ttutils.gson; import com.google.gson.Gson; import com.google.gson.TypeAdapter; diff --git a/app/src/main/java/com/tt/ttutils/mvp/BasePresenter.java b/app/src/main/java/com/ttstd/ttutils/mvp/BasePresenter.java similarity index 83% rename from app/src/main/java/com/tt/ttutils/mvp/BasePresenter.java rename to app/src/main/java/com/ttstd/ttutils/mvp/BasePresenter.java index 060969c..7a18884 100644 --- a/app/src/main/java/com/tt/ttutils/mvp/BasePresenter.java +++ b/app/src/main/java/com/ttstd/ttutils/mvp/BasePresenter.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.mvp; +package com.ttstd.ttutils.mvp; import androidx.annotation.NonNull; diff --git a/app/src/main/java/com/tt/ttutils/mvp/BaseView.java b/app/src/main/java/com/ttstd/ttutils/mvp/BaseView.java similarity index 50% rename from app/src/main/java/com/tt/ttutils/mvp/BaseView.java rename to app/src/main/java/com/ttstd/ttutils/mvp/BaseView.java index 08b86b8..4a30512 100644 --- a/app/src/main/java/com/tt/ttutils/mvp/BaseView.java +++ b/app/src/main/java/com/ttstd/ttutils/mvp/BaseView.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.mvp; +package com.ttstd.ttutils.mvp; public interface BaseView { } diff --git a/app/src/main/java/com/tt/ttutils/network/NetInterfaceManager.java b/app/src/main/java/com/ttstd/ttutils/network/NetInterfaceManager.java similarity index 90% rename from app/src/main/java/com/tt/ttutils/network/NetInterfaceManager.java rename to app/src/main/java/com/ttstd/ttutils/network/NetInterfaceManager.java index ae73ae1..90a3206 100644 --- a/app/src/main/java/com/tt/ttutils/network/NetInterfaceManager.java +++ b/app/src/main/java/com/ttstd/ttutils/network/NetInterfaceManager.java @@ -1,27 +1,18 @@ -package com.tt.ttutils.network; +package com.ttstd.ttutils.network; import android.annotation.SuppressLint; import android.content.Context; -import android.util.Log; import com.tencent.mmkv.MMKV; -import com.tt.ttutils.BuildConfig; -import com.tt.ttutils.network.interceptor.RequestInterceptor; -import com.tt.ttutils.utils.java.MD5Util; - -import org.jetbrains.annotations.NotNull; +import com.ttstd.ttutils.BuildConfig; +import com.ttstd.ttutils.network.interceptor.RequestInterceptor; import java.io.File; -import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import okhttp3.Cache; -import okhttp3.Interceptor; import okhttp3.OkHttpClient; -import okhttp3.Protocol; -import okhttp3.Request; -import okhttp3.Response; import retrofit2.Retrofit; import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; diff --git a/app/src/main/java/com/tt/ttutils/network/UrlAddress.java b/app/src/main/java/com/ttstd/ttutils/network/UrlAddress.java similarity index 79% rename from app/src/main/java/com/tt/ttutils/network/UrlAddress.java rename to app/src/main/java/com/ttstd/ttutils/network/UrlAddress.java index 72ad008..e2f1991 100644 --- a/app/src/main/java/com/tt/ttutils/network/UrlAddress.java +++ b/app/src/main/java/com/ttstd/ttutils/network/UrlAddress.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.network; +package com.ttstd.ttutils.network; public class UrlAddress { diff --git a/app/src/main/java/com/tt/ttutils/network/interceptor/PostCacheInterceptor.java b/app/src/main/java/com/ttstd/ttutils/network/interceptor/PostCacheInterceptor.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/network/interceptor/PostCacheInterceptor.java rename to app/src/main/java/com/ttstd/ttutils/network/interceptor/PostCacheInterceptor.java index dad7adc..4504b0e 100644 --- a/app/src/main/java/com/tt/ttutils/network/interceptor/PostCacheInterceptor.java +++ b/app/src/main/java/com/ttstd/ttutils/network/interceptor/PostCacheInterceptor.java @@ -1,11 +1,10 @@ -package com.tt.ttutils.network.interceptor; +package com.ttstd.ttutils.network.interceptor; import android.text.TextUtils; import com.blankj.utilcode.util.LogUtils; -import com.tt.ttutils.disklrucache.DiskLruCacheHelper; -import com.tt.ttutils.utils.java.NetworkUtils; -import com.tt.ttutils.utils.java.TTUtils; +import com.ttstd.ttutils.disklrucache.DiskLruCacheHelper; +import com.ttstd.ttutils.utils.java.TTUtils; import java.io.IOException; import java.nio.charset.Charset; diff --git a/app/src/main/java/com/tt/ttutils/network/interceptor/RepeatRequestInterceptor.java b/app/src/main/java/com/ttstd/ttutils/network/interceptor/RepeatRequestInterceptor.java similarity index 96% rename from app/src/main/java/com/tt/ttutils/network/interceptor/RepeatRequestInterceptor.java rename to app/src/main/java/com/ttstd/ttutils/network/interceptor/RepeatRequestInterceptor.java index 6201b2e..0ee186f 100644 --- a/app/src/main/java/com/tt/ttutils/network/interceptor/RepeatRequestInterceptor.java +++ b/app/src/main/java/com/ttstd/ttutils/network/interceptor/RepeatRequestInterceptor.java @@ -1,9 +1,9 @@ -package com.tt.ttutils.network.interceptor; +package com.ttstd.ttutils.network.interceptor; import android.util.Log; -import com.tt.ttutils.BuildConfig; -import com.tt.ttutils.utils.java.MD5Util; +import com.ttstd.ttutils.BuildConfig; +import com.ttstd.ttutils.utils.java.MD5Util; import org.jetbrains.annotations.NotNull; diff --git a/app/src/main/java/com/tt/ttutils/network/interceptor/RequestInterceptor.java b/app/src/main/java/com/ttstd/ttutils/network/interceptor/RequestInterceptor.java similarity index 96% rename from app/src/main/java/com/tt/ttutils/network/interceptor/RequestInterceptor.java rename to app/src/main/java/com/ttstd/ttutils/network/interceptor/RequestInterceptor.java index 9cf9ea1..1a890cf 100644 --- a/app/src/main/java/com/tt/ttutils/network/interceptor/RequestInterceptor.java +++ b/app/src/main/java/com/ttstd/ttutils/network/interceptor/RequestInterceptor.java @@ -1,9 +1,9 @@ -package com.tt.ttutils.network.interceptor; +package com.ttstd.ttutils.network.interceptor; import android.util.Log; -import com.tt.ttutils.utils.java.MD5Util; +import com.ttstd.ttutils.utils.java.MD5Util; import org.jetbrains.annotations.NotNull; diff --git a/app/src/main/java/com/tt/ttutils/receiver/BootReceiver.java b/app/src/main/java/com/ttstd/ttutils/receiver/BootReceiver.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/receiver/BootReceiver.java rename to app/src/main/java/com/ttstd/ttutils/receiver/BootReceiver.java index 8e1d888..aa9f03d 100644 --- a/app/src/main/java/com/tt/ttutils/receiver/BootReceiver.java +++ b/app/src/main/java/com/ttstd/ttutils/receiver/BootReceiver.java @@ -1,12 +1,10 @@ -package com.tt.ttutils.receiver; +package com.ttstd.ttutils.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; -import com.tencent.mmkv.MMKV; - public class BootReceiver extends BroadcastReceiver { private static String TAG = BootReceiver.class.getSimpleName() + ":ttutils"; public static final String BOOT_COMPLETED = "aoleyun.intent.action.BOOT_COMPLETED"; diff --git a/app/src/main/java/com/tt/ttutils/receiver/PackageReceiver.java b/app/src/main/java/com/ttstd/ttutils/receiver/PackageReceiver.java similarity index 94% rename from app/src/main/java/com/tt/ttutils/receiver/PackageReceiver.java rename to app/src/main/java/com/ttstd/ttutils/receiver/PackageReceiver.java index 3580dd3..3685da8 100644 --- a/app/src/main/java/com/tt/ttutils/receiver/PackageReceiver.java +++ b/app/src/main/java/com/ttstd/ttutils/receiver/PackageReceiver.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.receiver; +package com.ttstd.ttutils.receiver; import android.content.BroadcastReceiver; import android.content.Context; diff --git a/app/src/main/java/com/ttstd/ttutils/receiver/ShortcutReceiver.java b/app/src/main/java/com/ttstd/ttutils/receiver/ShortcutReceiver.java new file mode 100644 index 0000000..5737aea --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/receiver/ShortcutReceiver.java @@ -0,0 +1,17 @@ +package com.ttstd.ttutils.receiver; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +public class ShortcutReceiver extends BroadcastReceiver { + private static final String TAG = ShortcutReceiver.class.getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + Log.e(TAG, "onReceive: " + intent); + + + } +} diff --git a/app/src/main/java/com/tt/ttutils/retrofit/GetPublicIPApi.java b/app/src/main/java/com/ttstd/ttutils/retrofit/GetPublicIPApi.java similarity index 79% rename from app/src/main/java/com/tt/ttutils/retrofit/GetPublicIPApi.java rename to app/src/main/java/com/ttstd/ttutils/retrofit/GetPublicIPApi.java index c3603a1..175b7d7 100644 --- a/app/src/main/java/com/tt/ttutils/retrofit/GetPublicIPApi.java +++ b/app/src/main/java/com/ttstd/ttutils/retrofit/GetPublicIPApi.java @@ -1,7 +1,7 @@ -package com.tt.ttutils.retrofit; +package com.ttstd.ttutils.retrofit; -import com.tt.ttutils.network.UrlAddress; +import com.ttstd.ttutils.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; import okhttp3.ResponseBody; diff --git a/app/src/main/java/com/ttstd/ttutils/server/main/MainSContact.java b/app/src/main/java/com/ttstd/ttutils/server/main/MainSContact.java new file mode 100644 index 0000000..52d9ff9 --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/server/main/MainSContact.java @@ -0,0 +1,14 @@ +package com.ttstd.ttutils.server.main; + +import com.ttstd.ttutils.mvp.BasePresenter; +import com.ttstd.ttutils.mvp.BaseView; + +public class MainSContact { + public interface MainView extends BaseView { + + } + + public interface Presenter extends BasePresenter { + + } +} diff --git a/app/src/main/java/com/ttstd/ttutils/server/main/MainSPresenter.java b/app/src/main/java/com/ttstd/ttutils/server/main/MainSPresenter.java new file mode 100644 index 0000000..8f7582f --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/server/main/MainSPresenter.java @@ -0,0 +1,70 @@ +package com.ttstd.ttutils.server.main; + +import android.content.Context; +import android.util.Log; + +import com.trello.rxlifecycle4.LifecycleProvider; +import com.trello.rxlifecycle4.android.ActivityEvent; + +import io.reactivex.rxjava3.subjects.BehaviorSubject; + + +/** + * MainActivity 的 Presenter + * + * @author jgy02 + */ +public class MainSPresenter implements MainSContact.Presenter { + private static final String TAG = MainSPresenter.class.getSimpleName(); + private MainSContact.MainView mView; + private Context mContext; + + private final String DEFAULT_INFO = "暂无信息"; + private final int OK = 200; + + public MainSPresenter(Context context) { + this.mContext = context; + Log.e(TAG, "MainSPresenter: " + context.getClass()); + } + + /** + * Lifecycle start + */ + + /*1*/ + private LifecycleProvider provider; + + public void setProvider(LifecycleProvider provider) { + this.provider = provider; + } + + public LifecycleProvider getProvider() { + return provider; + } + + /*2*/ + private BehaviorSubject lifecycle; + + public void setLifecycle(BehaviorSubject lifecycle) { + this.lifecycle = lifecycle; + } + + public BehaviorSubject getLifecycle() { + return lifecycle; + } + + /** + * Lifecycle end + */ + + @Override + public void attachView(@androidx.annotation.NonNull MainSContact.MainView view) { + this.mView = view; + } + + @Override + public void detachView() { + this.mView = null; + } + +} diff --git a/app/src/main/java/com/tt/ttutils/server/main/MainService.java b/app/src/main/java/com/ttstd/ttutils/server/main/MainService.java similarity index 71% rename from app/src/main/java/com/tt/ttutils/server/main/MainService.java rename to app/src/main/java/com/ttstd/ttutils/server/main/MainService.java index 2545788..dcabb06 100644 --- a/app/src/main/java/com/tt/ttutils/server/main/MainService.java +++ b/app/src/main/java/com/ttstd/ttutils/server/main/MainService.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.server.main; +package com.ttstd.ttutils.server.main; import android.annotation.SuppressLint; import android.app.Service; @@ -13,7 +13,6 @@ import android.graphics.PixelFormat; import android.hardware.usb.UsbManager; import android.os.Build; import android.os.IBinder; -import android.os.SystemClock; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; @@ -24,14 +23,12 @@ import android.widget.Button; import android.widget.TextView; import android.widget.Toast; -import com.google.gson.JsonObject; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import java.util.Arrays; import java.util.HashSet; import java.util.concurrent.TimeUnit; -import cn.jpush.android.api.JPushInterface; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.ObservableEmitter; import io.reactivex.rxjava3.core.ObservableOnSubscribe; @@ -39,10 +36,10 @@ import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; public class MainService extends Service implements MainSContact.MainView { + private static final String TAG = MainService.class.getSimpleName(); + private MainSPresenter mPresenter; private UsbManager mUsbManager; - private static final String TAG = MainService.class.getSimpleName(); - public static boolean netWorkIsRunning = false; private interface Start { void onstar(long time); @@ -71,9 +68,6 @@ public class MainService extends Service implements MainSContact.MainView { @Override public void onNext(Long aLong) { Log.e("TimeObserver", "onNext: " + aLong); - startCommandTime = runningTime = SystemClock.elapsedRealtime(); - mPresenter.getFirstConnect(); - mPresenter.getLockedState(); } @Override @@ -198,31 +192,9 @@ public class MainService extends Service implements MainSContact.MainView { mPresenter.detachView(); } - //执行所有请求的时间 - long runningTime; - - //MainService上次执行时间 - long startCommandTime = 0; - @Override public int onStartCommand(Intent intent, int flags, int startId) { - JPushInterface.init(this); -// if (MainActivity.isForeground) { -// Log.e(TAG, "onStartCommand: MainActivity: isForeground: " + MainActivity.isForeground); -// } else { -// if (((SystemClock.elapsedRealtime() - startCommandTime) < 60000) && startCommandTime != 0) { -// Log.e(TAG, "onStartCommand: " + "启动时间过短"); -// //一分钟内防止多次调用 -// } else { -// mPresenter.getFirstConnect(); -// mPresenter.getLockedState(); -// startCommandTime = runningTime = SystemClock.elapsedRealtime(); -// Log.e(TAG, "onStartCommand: isForeground: " + MainActivity.isForeground); -// Log.e(TAG, "onStartCommand: " + (SystemClock.elapsedRealtime() - startCommandTime)); -// } - start.onstar(SystemClock.elapsedRealtime()); - Log.e("timeObserver", "onStartCommand: " + (SystemClock.elapsedRealtime() - startCommandTime) + "ms"); -// } + Log.e("timeObserver", "onStartCommand: "); return START_STICKY; } @@ -396,33 +368,6 @@ public class MainService extends Service implements MainSContact.MainView { } else if (ACTION_UPDATE.equals(intent.getAction())) { Log.e("fht", "TimeChangedReceiver:" + "date update"); } -// ForegroundAppUtil.openTopApp(context); -// long nowTime = System.currentTimeMillis(); -// TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(MainService.this); -// if (null != contralTime) { -// if (contralTime.inControlTime(nowTime)) { -// if (!screenlocked) { -// showFloatingWindow("管控时间:" + contralTime.toString()); -// } else { -// TextView textView = topView.findViewById(R.id.textView); -// textView.setText("管控时间:" + contralTime.toString()); -// } -// timelocked = true; -// } else { -// mPresenter.getScreenLockState(); -// if (!screenlocked) { -// hideFloatingWindow(); -// } -// timelocked = false; -// } -// } else { -// if (!screenlocked) { -// hideFloatingWindow(); -// } -// mPresenter.getScreenLockState(); -// timelocked = false; -// } - } } @@ -483,183 +428,4 @@ public class MainService extends Service implements MainSContact.MainView { // ApkUtils.installApp(MainService.this, filePath); } - @Override - public void setBatchText(String text, int visibility) { - - } - - @Override - public void setClassText(String text, int visibility) { - - } - - @Override - public void setNumberText(String text, int visibility) { - - } - - @Override - public void setNameText(String text, int visibility) { - - } - - @Override - public void setLockedState(boolean loocked) { - - } - - /** - * 首次使用默认关闭所有功能 - * - * @param state - */ - @Override - public void setFirstConnect(boolean state) { - Log.e(TAG, "isFirstConnect: " + "end request"); - if (state) { - mPresenter.setDisableSetting(); - } else { - - } - } - - @Override - public void sendMACFinished() { - mPresenter.updateDeviceInfo(); - } - - @Override - public void updateDeviceInfoFinished() { - mPresenter.getSnTimeControl(); - } - - @Override - public void getSnTimeControlFinished() { - - } - - @Override - public void setAliasFinished() { - mPresenter.setJpushTags(); - //设置极光推送tag - } - - @Override - public void setTagsFinished() { - mPresenter.checkStoreUpdate(); - } - - @Override - public void setJpushPlatformTagsFinished() { - - } - - @Override - public void checkStoreUpdateFinished() { - mPresenter.checkTestUpdate(); - } - - @Override - public void checkTestUpdateFinished() { - mPresenter.getDefaultDesktop(); - } - - @Override - public void buttonCheckUpdateFinished(boolean update, JsonObject jsonObject) { - - } - - @Override - public void getSystemSettingbegin() { - mPresenter.getAppLimit(); - } - - @Override - public void getAppLimitFinished(String packageList) { - mPresenter.getDeviceBatch(packageList); - } - - @Override - public void getDeviceBatchFinished() { - mPresenter.getForceDownload(); - } - - @Override - public void getForceDownloadFinished() { - mPresenter.getBrowserList(); - } - - @Override - public void getBrowserListFinished(String whitelist) { - mPresenter.getBrowserBookmarks(whitelist); - } - - @Override - public void getBrowserBookmarksFinished() { - mPresenter.getBrowserWhiteList(); - mPresenter.getDesktopIcon(); - } - - @Override - public void getDesktopIconFinished() { - mPresenter.getAppAutoStartUpdateAndNet(); - } - - @Override - public void getAppAutoStartUpdateAndNetFinished() { - mPresenter.getAppIDControl(); - } - - @Override - public void getAppIDControlFinished() { - mPresenter.setAppinsideWeb(); - } - - @Override - public void setAppinsideWebFinished() { - mPresenter.setSystemSetting(); - } - - @Override - public void setSystemSettingFinished() { - mPresenter.getDeveloper(); - } - - @Override - public void getDeveloperFinished() { - mPresenter.setLogoImg(); - } - - @Override - public void setLogoImgFinished() { - mPresenter.setTopApp(); - } - - @Override - public void setTopAppFinished() { - netWorkIsRunning = false; - Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - runningTime) + " ms"); - } - - @Override - public void setScreenLockStateFinished(boolean locked, String tips) { - if (locked) { - if (!timelocked) { - showFloatingWindow(tips); - } - screenlocked = true; - } else { - if (!timelocked) { - hideFloatingWindow(); - } - screenlocked = false; - } - } - - @Override - public void getDefaultDesktopFinished() { - - } - - } diff --git a/app/src/main/java/com/tt/ttutils/tpush/Constants.java b/app/src/main/java/com/ttstd/ttutils/tpush/Constants.java similarity index 93% rename from app/src/main/java/com/tt/ttutils/tpush/Constants.java rename to app/src/main/java/com/ttstd/ttutils/tpush/Constants.java index 9de42fa..6fad1eb 100644 --- a/app/src/main/java/com/tt/ttutils/tpush/Constants.java +++ b/app/src/main/java/com/ttstd/ttutils/tpush/Constants.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.tpush; +package com.ttstd.ttutils.tpush; /** * Created by chacewang on 2019/7/5. diff --git a/app/src/main/java/com/tt/ttutils/tpush/MessageReceiver.java b/app/src/main/java/com/ttstd/ttutils/tpush/MessageReceiver.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/tpush/MessageReceiver.java rename to app/src/main/java/com/ttstd/ttutils/tpush/MessageReceiver.java index d29dad2..2d34b5b 100644 --- a/app/src/main/java/com/tt/ttutils/tpush/MessageReceiver.java +++ b/app/src/main/java/com/ttstd/ttutils/tpush/MessageReceiver.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.tpush; +package com.ttstd.ttutils.tpush; import android.content.Context; import android.content.Intent; @@ -11,8 +11,8 @@ import com.tencent.android.tpush.XGPushClickedResult; import com.tencent.android.tpush.XGPushRegisterResult; import com.tencent.android.tpush.XGPushShowedResult; import com.tencent.android.tpush.XGPushTextMessage; -import com.tt.ttutils.tpush.common.NotificationService; -import com.tt.ttutils.tpush.po.XGNotification; +import com.ttstd.ttutils.tpush.common.NotificationService; +import com.ttstd.ttutils.tpush.po.XGNotification; import org.json.JSONException; import org.json.JSONObject; diff --git a/app/src/main/java/com/tt/ttutils/tpush/common/DBOpenHelper.java b/app/src/main/java/com/ttstd/ttutils/tpush/common/DBOpenHelper.java similarity index 94% rename from app/src/main/java/com/tt/ttutils/tpush/common/DBOpenHelper.java rename to app/src/main/java/com/ttstd/ttutils/tpush/common/DBOpenHelper.java index a799b2a..9ed7651 100644 --- a/app/src/main/java/com/tt/ttutils/tpush/common/DBOpenHelper.java +++ b/app/src/main/java/com/ttstd/ttutils/tpush/common/DBOpenHelper.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.tpush.common; +package com.ttstd.ttutils.tpush.common; import android.content.Context; import android.database.sqlite.SQLiteDatabase; diff --git a/app/src/main/java/com/tt/ttutils/tpush/common/NotificationService.java b/app/src/main/java/com/ttstd/ttutils/tpush/common/NotificationService.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/tpush/common/NotificationService.java rename to app/src/main/java/com/ttstd/ttutils/tpush/common/NotificationService.java index 16aa629..9ab5951 100644 --- a/app/src/main/java/com/tt/ttutils/tpush/common/NotificationService.java +++ b/app/src/main/java/com/ttstd/ttutils/tpush/common/NotificationService.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.tpush.common; +package com.ttstd.ttutils.tpush.common; import android.content.ContentValues; import android.content.Context; @@ -6,7 +6,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import com.tt.ttutils.tpush.po.XGNotification; +import com.ttstd.ttutils.tpush.po.XGNotification; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/tt/ttutils/tpush/po/XGNotification.java b/app/src/main/java/com/ttstd/ttutils/tpush/po/XGNotification.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/tpush/po/XGNotification.java rename to app/src/main/java/com/ttstd/ttutils/tpush/po/XGNotification.java index 2b391a0..437e0f1 100644 --- a/app/src/main/java/com/tt/ttutils/tpush/po/XGNotification.java +++ b/app/src/main/java/com/ttstd/ttutils/tpush/po/XGNotification.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.tpush.po; +package com.ttstd.ttutils.tpush.po; public class XGNotification { private Integer id; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/ApkUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/ApkUtils.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/ApkUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/ApkUtils.java index ac3ead6..0717f71 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/ApkUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/ApkUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.content.Context; import android.content.pm.IPackageDataObserver; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/AppUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/AppUtils.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/AppUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/AppUtils.java index b03cccd..8d5eb52 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/AppUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/AppUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.content.ComponentName; import android.content.Context; diff --git a/app/src/main/java/com/ttstd/ttutils/utils/java/BitmapUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/BitmapUtils.java new file mode 100644 index 0000000..1407372 --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/BitmapUtils.java @@ -0,0 +1,5 @@ +package com.ttstd.ttutils.utils.java; + +public class BitmapUtils { + +} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/CmdUtil.java b/app/src/main/java/com/ttstd/ttutils/utils/java/CmdUtil.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/CmdUtil.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/CmdUtil.java index 70dc52c..c6016a5 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/CmdUtil.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/CmdUtil.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.text.TextUtils; import android.util.Log; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/DevicesUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/DevicesUtils.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/utils/java/DevicesUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/DevicesUtils.java index 7cc635f..6f7be5f 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/DevicesUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/DevicesUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.content.Context; import android.os.Build; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/GlideLoadUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/GlideLoadUtils.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/GlideLoadUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/GlideLoadUtils.java index 5de124a..9ef1c2a 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/GlideLoadUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/GlideLoadUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.annotation.TargetApi; import android.app.Activity; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/HomeUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/HomeUtils.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/HomeUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/HomeUtils.java index f94abfd..3e69c14 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/HomeUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/HomeUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.app.Activity; import android.app.WallpaperManager; @@ -14,7 +14,7 @@ import android.os.Process; import android.os.UserHandle; import android.util.Log; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import java.io.IOException; import java.util.concurrent.Executor; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/JGYUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/JGYUtils.java similarity index 88% rename from app/src/main/java/com/tt/ttutils/utils/java/JGYUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/JGYUtils.java index 8d4f1e3..0388ff7 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/JGYUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/JGYUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.annotation.SuppressLint; import android.content.ComponentName; @@ -7,12 +7,11 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.provider.Settings; import android.util.Log; -import com.tt.ttutils.BuildConfig; -import com.tt.ttutils.disklrucache.CacheHelper; -import com.tt.ttutils.receiver.BootReceiver; +import com.ttstd.ttutils.BuildConfig; +import com.ttstd.ttutils.disklrucache.CacheHelper; +import com.ttstd.ttutils.receiver.BootReceiver; public class JGYUtils { private static final String TAG = JGYUtils.class.getSimpleName(); @@ -31,6 +30,9 @@ public class JGYUtils { public static final int MTK8515Platform = 6; public static final int G13Platform = 7; public static final int UnknowPlatform = 0; + public static final int AH6016Platform = 9; + public static final int TeclastP20sPlatform = 11; + public static final String MTKTag = "MTK"; public static final String ZhanruiTag = "展锐"; @@ -38,6 +40,9 @@ public class JGYUtils { public static final String T30PROTag = "T30PRO"; public static final String MTK8515Tag = "8515"; public static final String G13Tag = "G13"; + public static final String AH6016Tag = "AH6016"; + public static final String TeclastP20sTag = "P20S"; + private JGYUtils(Context context) { if (context == null) { @@ -94,6 +99,12 @@ public class JGYUtils { } else if (G13Tag.equalsIgnoreCase(platform)) { Log.i(TAG, "checkAppPlatform: " + "G13"); return G13Platform; + } else if (TeclastP20sTag.equalsIgnoreCase(platform)) { + Log.i(TAG, "checkAppPlatform: " + "P20s"); + return TeclastP20sPlatform; + } else if (AH6016Tag.equalsIgnoreCase(platform)) { + Log.i(TAG, "checkAppPlatform: " + "AH6016"); + return AH6016Platform; } else { Log.i(TAG, "checkAppPlatform: " + "没有数据"); return UnknowPlatform; @@ -127,6 +138,10 @@ public class JGYUtils { getAppPlatformCallback.AppPlatform(MTK8515Platform); } else if (G13Tag.equalsIgnoreCase(platform)) { getAppPlatformCallback.AppPlatform(G13Platform); + } else if (TeclastP20sTag.equalsIgnoreCase(platform)) { + getAppPlatformCallback.AppPlatform(TeclastP20sPlatform); + } else if (AH6016Tag.equalsIgnoreCase(platform)) { + getAppPlatformCallback.AppPlatform(AH6016Platform); } else { getAppPlatformCallback.AppPlatform(UnknowPlatform); } @@ -175,7 +190,6 @@ public class JGYUtils { } - public static final String PACKAGE_DEVICEINFO = "com.aoleyun.sn"; public static final String CLASS_DEVICEINFO = "com.aoleyun.sn.receiver.BootReceiver"; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/LauncherUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/LauncherUtils.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/utils/java/LauncherUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/LauncherUtils.java index 79fa4c2..773cece 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/LauncherUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/LauncherUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.app.Activity; import android.app.WallpaperManager; @@ -24,7 +24,7 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.WindowManager; -import com.tt.ttutils.R; +import com.ttstd.ttutils.R; import java.io.IOException; import java.util.concurrent.Executor; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/MD5Util.java b/app/src/main/java/com/ttstd/ttutils/utils/java/MD5Util.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/MD5Util.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/MD5Util.java index 15aec2c..47f6dbd 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/MD5Util.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/MD5Util.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.annotation.SuppressLint; diff --git a/app/src/main/java/com/ttstd/ttutils/utils/java/NetworkUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/NetworkUtils.java new file mode 100644 index 0000000..7b6e8ef --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/NetworkUtils.java @@ -0,0 +1,5 @@ +package com.ttstd.ttutils.utils.java; + +public class NetworkUtils { + +} diff --git a/app/src/main/java/com/ttstd/ttutils/utils/java/OtherUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/OtherUtils.java new file mode 100644 index 0000000..eea3b5f --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/OtherUtils.java @@ -0,0 +1,5 @@ +package com.ttstd.ttutils.utils.java; + +public class OtherUtils { + +} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/PictrueUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/PictrueUtils.java similarity index 86% rename from app/src/main/java/com/tt/ttutils/utils/java/PictrueUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/PictrueUtils.java index becc358..c92a04e 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/PictrueUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/PictrueUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; public class PictrueUtils { /**{@link } diff --git a/app/src/main/java/com/tt/ttutils/utils/java/ProcessUtil.java b/app/src/main/java/com/ttstd/ttutils/utils/java/ProcessUtil.java similarity index 98% rename from app/src/main/java/com/tt/ttutils/utils/java/ProcessUtil.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/ProcessUtil.java index d17a6dc..9949f52 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/ProcessUtil.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/ProcessUtil.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.app.ActivityManager; import android.app.Application; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/StatusBarUtil.java b/app/src/main/java/com/ttstd/ttutils/utils/java/StatusBarUtil.java similarity index 99% rename from app/src/main/java/com/tt/ttutils/utils/java/StatusBarUtil.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/StatusBarUtil.java index e5695d4..8ea3001 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/StatusBarUtil.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/StatusBarUtil.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.app.Activity; import android.content.Context; diff --git a/app/src/main/java/com/ttstd/ttutils/utils/java/SystemSignUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/SystemSignUtils.java new file mode 100644 index 0000000..ec0eb28 --- /dev/null +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/SystemSignUtils.java @@ -0,0 +1,5 @@ +package com.ttstd.ttutils.utils.java; + +public class SystemSignUtils { + +} diff --git a/app/src/main/java/com/tt/ttutils/utils/java/TTUtils.java b/app/src/main/java/com/ttstd/ttutils/utils/java/TTUtils.java similarity index 96% rename from app/src/main/java/com/tt/ttutils/utils/java/TTUtils.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/TTUtils.java index 257c0ea..19341a2 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/TTUtils.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/TTUtils.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.annotation.SuppressLint; import android.content.ContentResolver; @@ -9,7 +9,7 @@ import android.net.NetworkInfo; import android.os.Bundle; import android.util.Log; -import com.tt.ttutils.disklrucache.CacheHelper; +import com.ttstd.ttutils.disklrucache.CacheHelper; import java.util.Iterator; import java.util.Set; diff --git a/app/src/main/java/com/tt/ttutils/utils/java/ToastUtil.java b/app/src/main/java/com/ttstd/ttutils/utils/java/ToastUtil.java similarity index 97% rename from app/src/main/java/com/tt/ttutils/utils/java/ToastUtil.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/ToastUtil.java index a4a8a34..1623b05 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/ToastUtil.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/ToastUtil.java @@ -1,4 +1,4 @@ -package com.tt.ttutils.utils.java; +package com.ttstd.ttutils.utils.java; import android.annotation.SuppressLint; import android.content.Context; @@ -8,7 +8,7 @@ import android.os.Looper; import android.util.Log; import android.widget.Toast; -import com.tt.ttutils.BuildConfig; +import com.ttstd.ttutils.BuildConfig; /** diff --git a/app/src/main/java/com/tt/ttutils/utils/java/dimens.java b/app/src/main/java/com/ttstd/ttutils/utils/java/dimens.java similarity index 91% rename from app/src/main/java/com/tt/ttutils/utils/java/dimens.java rename to app/src/main/java/com/ttstd/ttutils/utils/java/dimens.java index c7920fb..b4863a5 100644 --- a/app/src/main/java/com/tt/ttutils/utils/java/dimens.java +++ b/app/src/main/java/com/ttstd/ttutils/utils/java/dimens.java @@ -6,7 +6,7 @@ import java.io.IOException; class dimens { public static void main(String[] args) { - File file = new File("."+File.separator + "dimens.xml"); + File file = new File("." + File.separator + "dimens.xml"); System.out.println(file.getAbsolutePath()); if (!file.exists()) { file.getParentFile().mkdirs(); @@ -17,7 +17,7 @@ class dimens { } } StringBuilder stringBuilder = new StringBuilder(); - for (int i = 1; i <= 500; i++) { + for (int i = 1; i <= 700; i++) { stringBuilder.append("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 P00000NkvXXu0mjfP=x?Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_aoleyun_test.xml b/app/src/main/res/layout/activity_aoleyun_test.xml index 40883b4..74c3fd4 100644 --- a/app/src/main/res/layout/activity_aoleyun_test.xml +++ b/app/src/main/res/layout/activity_aoleyun_test.xml @@ -21,11 +21,22 @@ android:orientation="horizontal" android:visibility="visible"> +