diff --git a/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java b/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java index 7f7f39831fd9af6855fef043409a63bbb6336cac..9320739a52a179b61c7f9be2ad2c02b82961130e 100644 --- a/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java +++ b/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java @@ -44,7 +44,7 @@ public class App extends Application { } }); //严格检查模式 - StrictMode.enableDefaults(); + //StrictMode.enableDefaults(); } diff --git a/Android/config.gradle b/Android/config.gradle index 7b26d9c6040eeb37b04d034e3c1e828a1854ad18..9a0b89aa024151ed77c2a6caf0e165c8741bd7ef 100755 --- a/Android/config.gradle +++ b/Android/config.gradle @@ -4,9 +4,9 @@ ext { // 线上包不会接入DoraemonKit,测试包会自动接入 applyPlugin : true, //上传到远程仓库时需要打开 - uploadArchives : true, + uploadArchives : false, //是否发布插件到远程仓库 - publishPluginToRemote: true + publishPluginToRemote: false ] android = [compileSdkVersion : 28, suppotrSdkVersion : "27.1.1", @@ -15,9 +15,10 @@ ext { targetSdkVersion : 27, versionCode : 224, //dokit 插件版本号 - pluginVersionName : "1.0.0", + pluginVersionName : "1000.0.0", //jcenter dokit版本号 jcenterArchivesVersionName: "2.2.4", + didiArchivesVersionName : "1000.0.5", versionName : "2.2.4", glide : "4.8.0", ] @@ -44,7 +45,7 @@ ext { //将urlconnection代理到okhttp //"okhttp_urlconnection" : "com.squareup.okhttp3:okhttp-urlconnection:3.12.1", //"okio" : "com.squareup.okio:okio:1.15.0", - "utilcode" : 'com.blankj:utilcode:1.25.9', + "utilcode" : 'com.blankj:utilcode:1.26.0', "glide" : 'com.github.bumptech.glide:glide:4.9.0', "glide_okhttp3" : "com.github.bumptech.glide:okhttp3-integration:4.9.0", "glide_compiler" : "com.github.bumptech.glide:compiler:4.9.0", @@ -60,7 +61,6 @@ ext { "haha" : 'com.squareup.haha:haha:2.0.4', "debug-db" : "com.amitshekhar.android:debug-db:1.0.6", "debug-db-encrypt" : "com.amitshekhar.android:debug-db-encrypt:1.0.6", - "doraemonkit" : "com.didichuxing.doraemonkit:doraemonkit:${android["jcenterArchivesVersionName"]}", "weex_inspector" : "com.taobao.android:weex_inspector:0.24.2.11", "weex_sdk" : "com.taobao.android:weex_sdk:0.26.0", "brvah" : 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.50', diff --git a/Android/doraemonkit-leakcanary/gradle.properties b/Android/doraemonkit-leakcanary/gradle.properties index 845b222fdc2b3ac2a4c701266723344963b58f4b..facd6ac0f6246f5d03f071294708c48d6e22e176 100644 --- a/Android/doraemonkit-leakcanary/gradle.properties +++ b/Android/doraemonkit-leakcanary/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-leakcanary -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-leakcanary/upload.gradle b/Android/doraemonkit-leakcanary/upload.gradle index f76eaf8c7160040e202e0e138efb813fbdfbc024..efe189517486ff86c638651d9d2b0781bfb04873 100644 --- a/Android/doraemonkit-leakcanary/upload.gradle +++ b/Android/doraemonkit-leakcanary/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml { diff --git a/Android/doraemonkit-no-op/gradle.properties b/Android/doraemonkit-no-op/gradle.properties index 105fe86c660512c4f8ef88213abeb669deb3b655..577211e24adee778400762fa800d7b6572ed4209 100644 --- a/Android/doraemonkit-no-op/gradle.properties +++ b/Android/doraemonkit-no-op/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-no-op -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-no-op/upload.gradle b/Android/doraemonkit-no-op/upload.gradle index f76eaf8c7160040e202e0e138efb813fbdfbc024..efe189517486ff86c638651d9d2b0781bfb04873 100644 --- a/Android/doraemonkit-no-op/upload.gradle +++ b/Android/doraemonkit-no-op/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml { diff --git a/Android/doraemonkit-plugin/gradle.properties b/Android/doraemonkit-plugin/gradle.properties index 149f9a80d991ea023d1d18c3a8ab560ef838e669..b7570192a073a4e56f0868c0c46e87997694f06d 100644 --- a/Android/doraemonkit-plugin/gradle.properties +++ b/Android/doraemonkit-plugin/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-plugin -VERSION=1.0.0 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-plugin/src/main/groovy/com/didichuxing/doraemonkit/plugin/bytecode/DokitClassAdapter.java b/Android/doraemonkit-plugin/src/main/groovy/com/didichuxing/doraemonkit/plugin/bytecode/DokitClassAdapter.java index a2cd76fb976ba3caf68e8b677b20e96ca36ee96a..4387a6d82bf06f34b083d543567b13a8fd2e2e12 100644 --- a/Android/doraemonkit-plugin/src/main/groovy/com/didichuxing/doraemonkit/plugin/bytecode/DokitClassAdapter.java +++ b/Android/doraemonkit-plugin/src/main/groovy/com/didichuxing/doraemonkit/plugin/bytecode/DokitClassAdapter.java @@ -106,8 +106,9 @@ public final class DokitClassAdapter extends ClassVisitor { log(className, access, name, desc, signature); return mv == null ? null : new PlatformHttpMethodAdapter(access, desc, mv); } - //app启动hook点 onCreate()函数 - if (!StringUtils.isEmpty(superName) && superName.equals("android/app/Application") && name.equals("onCreate") && desc.equals("()V")) { + //app启动hook点 onCreate()函数 兼容MultiDex + if (!StringUtils.isEmpty(superName) && (superName.equals("android/app/Application")|| superName.equals("android/support/multidex/MultiDexApplication")) && name.equals("onCreate") && desc.equals("()V")) { + log(className, access, name, desc, signature); return mv == null ? null : new ApplicationOnCreateMethodAdapter(access, name, desc, mv); } diff --git a/Android/doraemonkit-plugin/upload.gradle b/Android/doraemonkit-plugin/upload.gradle index f76eaf8c7160040e202e0e138efb813fbdfbc024..b5ecc0cdb77d47bf7e90006edbc332678ba89714 100644 --- a/Android/doraemonkit-plugin/upload.gradle +++ b/Android/doraemonkit-plugin/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["pluginVersionName"] } pom.withXml { diff --git a/Android/doraemonkit-rpc/build.gradle b/Android/doraemonkit-rpc/build.gradle index ec90a9d2d612d9be8b15b609143f000cf8ae73e3..5ae5a73673b7aea8aab95e731d03d138b08abac8 100644 --- a/Android/doraemonkit-rpc/build.gradle +++ b/Android/doraemonkit-rpc/build.gradle @@ -54,7 +54,7 @@ dependencies { compileOnly rootProject.ext.dependencies["didi_rpc"] //此处需要使用api的形式 向上暴露内部api if (rootProject.ext.config["uploadArchives"]) { - api "com.didichuxing.doraemonkit:doraemonkit:${rootProject.ext.android["jcenterArchivesVersionName"]}" + api "com.didichuxing.doraemonkit:doraemonkit:${rootProject.ext.android["didiArchivesVersionName"]}" } else { api project(':doraemonkit') } diff --git a/Android/doraemonkit-rpc/gradle.properties b/Android/doraemonkit-rpc/gradle.properties index 0aa7e110076bd050a6dad75d1ef84f9fd184fa9f..2cf0eadc05841065d02c7d6dae849d7ebccf0a90 100644 --- a/Android/doraemonkit-rpc/gradle.properties +++ b/Android/doraemonkit-rpc/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-rpc -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-rpc/upload.gradle b/Android/doraemonkit-rpc/upload.gradle index f76eaf8c7160040e202e0e138efb813fbdfbc024..efe189517486ff86c638651d9d2b0781bfb04873 100644 --- a/Android/doraemonkit-rpc/upload.gradle +++ b/Android/doraemonkit-rpc/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml { diff --git a/Android/doraemonkit-weex-no-op/gradle.properties b/Android/doraemonkit-weex-no-op/gradle.properties index f56e9cffd934ba8d2128496589291a23e46bde35..98d4c04ab3a0d6870c1ae27f12249607f9071866 100644 --- a/Android/doraemonkit-weex-no-op/gradle.properties +++ b/Android/doraemonkit-weex-no-op/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-weex-no-op -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-weex-no-op/upload.gradle b/Android/doraemonkit-weex-no-op/upload.gradle index 23e26da3f7327faa78888628cfb2b6c2d341ae2a..a7a85161e9e2eab102d961ab90cf5b4cd80d7ce3 100644 --- a/Android/doraemonkit-weex-no-op/upload.gradle +++ b/Android/doraemonkit-weex-no-op/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml { diff --git a/Android/doraemonkit-weex/build.gradle b/Android/doraemonkit-weex/build.gradle index 930d298469bfb088e87342e226bfedec8f24fe40..64338735bc660a72486f7b2f079a9670cd3a4e6e 100644 --- a/Android/doraemonkit-weex/build.gradle +++ b/Android/doraemonkit-weex/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation rootProject.ext.dependencies["design"] implementation rootProject.ext.dependencies["utilcode"] if (rootProject.ext.config["uploadArchives"]) { - implementation "com.didichuxing.doraemonkit:doraemonkit:${rootProject.ext.android["jcenterArchivesVersionName"]}" + implementation "com.didichuxing.doraemonkit:doraemonkit:${rootProject.ext.android["didiArchivesVersionName"]}" } else { implementation project(':doraemonkit') } diff --git a/Android/doraemonkit-weex/gradle.properties b/Android/doraemonkit-weex/gradle.properties index f4854fabe73e0a2df6b2196c2b87ea84df1869b9..630f084817a1be5dc4befa932339009b981ce9af 100644 --- a/Android/doraemonkit-weex/gradle.properties +++ b/Android/doraemonkit-weex/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit-weex -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit-weex/upload.gradle b/Android/doraemonkit-weex/upload.gradle index 23e26da3f7327faa78888628cfb2b6c2d341ae2a..a7a85161e9e2eab102d961ab90cf5b4cd80d7ce3 100644 --- a/Android/doraemonkit-weex/upload.gradle +++ b/Android/doraemonkit-weex/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml { diff --git a/Android/doraemonkit/gradle.properties b/Android/doraemonkit/gradle.properties index 5459c3ac57b2bfe66d8af578bba7ac74b2a7730a..9bfb302a3d744f2b180329e1291d7eae491fd9a4 100644 --- a/Android/doraemonkit/gradle.properties +++ b/Android/doraemonkit/gradle.properties @@ -2,7 +2,7 @@ android.useDeprecatedNdk=true GROUP_ID=com.didichuxing.doraemonkit ARTIFACT_ID=doraemonkit -VERSION=2.2.4 +VERSION=1000.0.0 RELEASE_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-release/ SNAPSHOT_REPOSITORY_URL=http://artifactory.intra.xiaojukeji.com/artifactory/libs-snapshot/ USERNAME=deployment diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java index 8f56d65f44b1ec63ef589a232060e2b5a08807dc..2e701c038ff8476494d7145a0702c4dda566892f 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java @@ -247,10 +247,10 @@ class DokitActivityLifecycleCallbacks implements Application.ActivityLifecycleCa } String detail = "最大层级:" + maxLevel + "\n" - + "控件id:" + (maxLevelViewInfo == null ? "no matched" : maxLevelViewInfo.id) + "\n" + + "控件id:" + (maxLevelViewInfo == null ? "no id" : maxLevelViewInfo.id) + "\n" + "总绘制耗时:" + totalTime + "ms" + "\n" + "绘制耗时最长控件:" + maxTime + "ms" + "\n" - + "绘制耗时最长控件id:" + (maxTimeViewInfo == null ? "no matched" : maxTimeViewInfo.id) + "\n"; + + "绘制耗时最长控件id:" + (maxTimeViewInfo == null ? "no id" : maxTimeViewInfo.id) + "\n"; AppHealthInfo.DataBean.UiLevelBean uiLevelBean = new AppHealthInfo.DataBean.UiLevelBean(); uiLevelBean.setPage(activity.getClass().getCanonicalName()); uiLevelBean.setLevel("" + maxLevel); diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java index b7f521e7deac47ff9bf34bbfc1a14b7a5a341dd7..26851c6d4a2a8ce87c8cf2a6673eca73b45d293e 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java @@ -15,6 +15,7 @@ import com.blankj.utilcode.util.ThreadUtils; import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.Utils; import com.didichuxing.doraemonkit.aop.OkHttpHook; +import com.didichuxing.doraemonkit.config.GlobalConfig; import com.didichuxing.doraemonkit.config.PerformanceSpInfoConfig; import com.didichuxing.doraemonkit.constant.DokitConstant; import com.didichuxing.doraemonkit.constant.SharedPrefsKey; @@ -115,6 +116,7 @@ class DoraemonKitReal { */ static void install(final Application app, List selfKits, String productId) { DokitConstant.PRODUCT_ID = productId; + DokitConstant.APP_HEALTH_RUNNING = GlobalConfig.getAppHealth(DoraemonKit.APPLICATION); //添加常用工具 if (sHasInit) { //已经初始化添加自定义kits @@ -296,10 +298,11 @@ class DoraemonKitReal { } /** - * 单个文件的阈值为10M + * 单个文件的阈值为1M */ - // private static long FILE_LENGTH_THRESHOLD = 10 * 1024 * 1024; - private static long FILE_LENGTH_THRESHOLD = 1 * 1024; + // private static long FILE_LENGTH_THRESHOLD = 1 * 1024 * 1024; + // 测试时为1k + private static long FILE_LENGTH_THRESHOLD = 1024; private static void traverseFile(File rootFileDir) { if (rootFileDir == null) { @@ -314,7 +317,7 @@ class DoraemonKitReal { } if (file.isFile()) { //若是文件,直接打印 byte - long fileLength = FileUtils.getFileLength(file); + long fileLength = FileUtils.getLength(file); if (fileLength > FILE_LENGTH_THRESHOLD) { AppHealthInfo.DataBean.BigFileBean fileBean = new AppHealthInfo.DataBean.BigFileBean(); fileBean.setFileName(FileUtils.getFileName(file)); diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ImageCapture.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ImageCapture.java index be2048e26e3da8eef636c1f7a4d8ecf1d0af284e..04c98582382eda7defc8b7af1e55f44156461fb8 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ImageCapture.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ImageCapture.java @@ -19,9 +19,10 @@ import com.didichuxing.doraemonkit.util.UIUtils; import java.nio.ByteBuffer; /** - * Created by wanglikun on 2018/12/3. + * + * @author wanglikun + * @date 2018/12/3 */ - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public class ImageCapture { private MediaProjectionManager mMediaProjectionManager; @@ -30,9 +31,6 @@ public class ImageCapture { private boolean isCapturing; private Bitmap mBitmap; - public ImageCapture() { - - } public void init(Context context, Bundle bundle) { mMediaProjectionManager = (MediaProjectionManager) context.getSystemService(Context.MEDIA_PROJECTION_SERVICE); @@ -51,7 +49,7 @@ public class ImageCapture { mImageReader.getSurface(), null, null); } - public void capture() { + void capture() { if (isCapturing) { return; } @@ -68,14 +66,14 @@ public class ImageCapture { int rowStride = planes[0].getRowStride(); int rowPaddingStride = rowStride - pixelStride * width; int rowPadding = rowPaddingStride / pixelStride; - Bitmap recordBitmap = Bitmap.createBitmap(width + rowPadding , height, Bitmap.Config.ARGB_8888); + Bitmap recordBitmap = Bitmap.createBitmap(width + rowPadding, height, Bitmap.Config.ARGB_8888); recordBitmap.copyPixelsFromBuffer(buffer); mBitmap = Bitmap.createBitmap(recordBitmap, 0, 0, width, height); image.close(); isCapturing = false; } - public Bitmap getPartBitmap(int x, int y, int width, int height) { + Bitmap getPartBitmap(int x, int y, int width, int height) { if (mBitmap == null) { return null; } @@ -94,12 +92,17 @@ public class ImageCapture { return Bitmap.createBitmap(mBitmap, x, y, width, height); } - public void destroy() { - mImageReader.close(); - mMediaProjection.stop(); + void destroy() { + if (mImageReader != null) { + mImageReader.close(); + mImageReader = null; + } + if (mMediaProjection != null) { + mMediaProjection.stop(); + mMediaProjection = null; + } mMediaProjectionManager = null; - mMediaProjection = null; - mImageReader = null; + if (mBitmap != null) { mBitmap.recycle(); mBitmap = null; diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java index f7deea03550e21cde9cfdecdd8cba060e7289fa2..b5e290d636c029b19f8ead5bf9d532627bc76fbf 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java @@ -243,7 +243,7 @@ public class AppHealthInfoUtil { if (mAppHealthInfo == null) { return; } - OkGo.post("http://172.23.163.178:80/healthCheck/addCheckData") + OkGo.post("http://dokit-test.intra.xiaojukeji.com/healthCheck/addCheckData") .upJson(GsonUtils.toJson(mAppHealthInfo)) .execute(new StringCallback() { @Override diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java index 95008195a149aec77e4373068e75af14a3e1c491..1e63d5f78d4a384708ce850d1300b7c6b7e46f12 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java @@ -62,7 +62,7 @@ public class HealthFragmentChild0 extends BaseFragment { public boolean onPositive() { if (mUserInfoDialogProvider != null) { //上传健康体检数据 - mUserInfoDialogProvider.uploadAppHealthInfo(new UploadAppHealthCallback() { + boolean isCheck = mUserInfoDialogProvider.uploadAppHealthInfo(new UploadAppHealthCallback() { @Override public void onSuccess(Response response) { ToastUtils.showShort("上传数据成功!"); @@ -78,11 +78,17 @@ public class HealthFragmentChild0 extends BaseFragment { @Override public void onError(Response response) { + LogHelper.e(TAG, "error response===>" + response.body()); ToastUtils.showShort("上传数据失败,请重新上传"); } }); + + return isCheck; } + return true; + + } @Override @@ -92,7 +98,15 @@ public class HealthFragmentChild0 extends BaseFragment { @Override public void onCancel() { - + ToastUtils.showShort("本次测试用例已丢弃!"); + //重置状态 + GlobalConfig.setAppHealth(DoraemonKit.APPLICATION, false); + DokitConstant.APP_HEALTH_RUNNING = false; + mTitle.setVisibility(View.INVISIBLE); + mController.setImageResource(R.drawable.dk_health_start); + //关闭健康体检监控 + AppHealthInfoUtil.getInstance().stop(); + AppHealthInfoUtil.getInstance().release(); } }); mController.setOnClickListener(new View.OnClickListener() { @@ -107,6 +121,7 @@ public class HealthFragmentChild0 extends BaseFragment { if (mController != null) { ToastUtils.showShort("App即将重启并开始进入体检模式"); GlobalConfig.setAppHealth(DoraemonKit.APPLICATION, true); + DokitConstant.APP_HEALTH_RUNNING = true; //重启app mController.postDelayed(new Runnable() { @Override diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/UserInfoDialogProvider.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/UserInfoDialogProvider.java index 3c19ec201f70557f9a49162def78b837c4c207ee..0e2fc155e3cd88ee0339db89b71ed8bea5e03097 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/UserInfoDialogProvider.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/UserInfoDialogProvider.java @@ -9,18 +9,21 @@ import com.blankj.utilcode.util.ToastUtils; import com.didichuxing.doraemonkit.R; import com.didichuxing.doraemonkit.ui.dialog.DialogListener; import com.didichuxing.doraemonkit.ui.dialog.DialogProvider; +import com.didichuxing.doraemonkit.util.LogHelper; /** * Created by jint on 2019/4/12 * 完善健康体检用户信息dialog + * @author jintai */ public class UserInfoDialogProvider extends DialogProvider { private TextView mPositive; private TextView mNegative; + private TextView mClose; private EditText mCaseName; private EditText mUserName; - public UserInfoDialogProvider(Object data, DialogListener listener) { + UserInfoDialogProvider(Object data, DialogListener listener) { super(data, listener); } @@ -33,6 +36,7 @@ public class UserInfoDialogProvider extends DialogProvider { protected void findViews(View view) { mPositive = view.findViewById(R.id.positive); mNegative = view.findViewById(R.id.negative); + mClose = view.findViewById(R.id.close); mCaseName = view.findViewById(R.id.edit_case_name); mUserName = view.findViewById(R.id.edit_user_name); } @@ -52,13 +56,18 @@ public class UserInfoDialogProvider extends DialogProvider { return mNegative; } + @Override + protected View getCancelView() { + return mClose; + } + /** * 上传健康体检数据 */ - void uploadAppHealthInfo(UploadAppHealthCallback uploadAppHealthCallBack) { + boolean uploadAppHealthInfo(UploadAppHealthCallback uploadAppHealthCallBack) { if (!userInfoCheck()) { ToastUtils.showShort("请填写测试用例和测试人"); - return; + return false; } String caseName = mCaseName.getText().toString(); String userName = mUserName.getText().toString(); @@ -66,7 +75,7 @@ public class UserInfoDialogProvider extends DialogProvider { AppHealthInfoUtil.getInstance().setBaseInfo(caseName, userName); //上传数据 AppHealthInfoUtil.getInstance().post(uploadAppHealthCallBack); - + return true; } /** diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java index 1a8aa5ef5612c5fe63f53fd07c12501e2f2f880a..2ed4bc7dcca7f21b5b4a6db0abb4170c350681ca 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java @@ -58,17 +58,19 @@ public class TimeCounterManager { @Override public void onCall(ArrayList orderBeans) { try { - if (DokitConstant.APP_HEALTH_RUNNING) { - CounterInfo counterInfo = getAppSetupInfo(); - List loads = new ArrayList<>(); - for (OrderBean orderBean : orderBeans) { - AppHealthInfo.DataBean.AppStartBean.LoadFuncBean loadFuncBean = new AppHealthInfo.DataBean.AppStartBean.LoadFuncBean(); - loadFuncBean.setClassName(orderBean.getFunctionName()); - loadFuncBean.setCostTime(orderBean.getCostTime()); - loads.add(loadFuncBean); + CounterInfo counterInfo = getAppSetupInfo(); + List loads = new ArrayList<>(); + for (OrderBean orderBean : orderBeans) { + long costTime = Long.parseLong(orderBean.getCostTime()); + if (costTime < 1000) { + continue; } - AppHealthInfoUtil.getInstance().setAppStartInfo("" + counterInfo.totalCost, orderBeans.toString(), loads); + AppHealthInfo.DataBean.AppStartBean.LoadFuncBean loadFuncBean = new AppHealthInfo.DataBean.AppStartBean.LoadFuncBean(); + loadFuncBean.setClassName(orderBean.getFunctionName()); + loadFuncBean.setCostTime(orderBean.getCostTime()); + loads.add(loadFuncBean); } + AppHealthInfoUtil.getInstance().setAppStartInfo("" + counterInfo.totalCost, orderBeans.toString(), loads); } catch (Exception e) { e.printStackTrace(); } diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/dialog/DialogProvider.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/dialog/DialogProvider.java index dcde501256f6dec576dba0bf9a384cf95ce4cd03..4a11a89b62959898ac0f2229ded40a1d8d7cee6e 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/dialog/DialogProvider.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/dialog/DialogProvider.java @@ -122,7 +122,7 @@ public abstract class DialogProvider { } } - public void onCancel() { + void onCancel() { if (mDialogListener != null) { mDialogListener.onCancel(); } diff --git a/Android/doraemonkit/src/main/res/layout/dk_dialog_userinfo.xml b/Android/doraemonkit/src/main/res/layout/dk_dialog_userinfo.xml index 7acaa87d244f04a6c9113eb146ab078e26983929..e6fa6a45e10a4108e5b22ca4880e3b6fc53911df 100644 --- a/Android/doraemonkit/src/main/res/layout/dk_dialog_userinfo.xml +++ b/Android/doraemonkit/src/main/res/layout/dk_dialog_userinfo.xml @@ -87,6 +87,17 @@ + + + + Time Counter History submit cancel + discard delete insert diff --git a/Android/doraemonkit/src/main/res/values-zh-rCN/strings.xml b/Android/doraemonkit/src/main/res/values-zh-rCN/strings.xml index 7f9c6cc5dff041059dd3dc90782b2cef7b1ef361..9ac41deb00777c1b70adcbc2d090b2b2b855b1b0 100644 --- a/Android/doraemonkit/src/main/res/values-zh-rCN/strings.xml +++ b/Android/doraemonkit/src/main/res/values-zh-rCN/strings.xml @@ -227,6 +227,7 @@ 添加 提交 取消 + 丢弃 成功 失败 确认 diff --git a/Android/doraemonkit/src/main/res/values-zh-rTW/strings.xml b/Android/doraemonkit/src/main/res/values-zh-rTW/strings.xml index 2812574625fb6361166672e0fed13b84830bf190..1cceda816142c634cffe4554aa6244549b801b33 100644 --- a/Android/doraemonkit/src/main/res/values-zh-rTW/strings.xml +++ b/Android/doraemonkit/src/main/res/values-zh-rTW/strings.xml @@ -222,6 +222,7 @@ 鏈接 總封包數 取消 + 丟棄 確認 提交 請授權讀寫權限,避免crash文件丟失 diff --git a/Android/doraemonkit/src/main/res/values/strings.xml b/Android/doraemonkit/src/main/res/values/strings.xml index 1c5d00f2423aa8359213f85b286e3d67dd35dcde..0ac73be7b08b2472389b7aab8472cb1728d630d9 100644 --- a/Android/doraemonkit/src/main/res/values/strings.xml +++ b/Android/doraemonkit/src/main/res/values/strings.xml @@ -237,6 +237,7 @@ 提交 取消 + 丢弃 删除 添加 成功 diff --git a/Android/doraemonkit/upload.gradle b/Android/doraemonkit/upload.gradle index f76eaf8c7160040e202e0e138efb813fbdfbc024..efe189517486ff86c638651d9d2b0781bfb04873 100644 --- a/Android/doraemonkit/upload.gradle +++ b/Android/doraemonkit/upload.gradle @@ -6,7 +6,7 @@ uploadArchives { pom.project { groupId project.GROUP_ID artifactId project.ARTIFACT_ID - version project.VERSION + version rootProject.ext.android["didiArchivesVersionName"] } pom.withXml {