From 2dace2f390e786ba80b3710dd2c241ae8d38578c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8C=A5=E5=88=AB=E6=98=A8=E5=A4=A9=E7=9A=84=E6=88=91?= <838119225@qq.com> Date: Wed, 7 Jul 2021 10:24:32 +0800 Subject: [PATCH] =?UTF-8?q?findbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- build.gradle | 6 +- entry/build.gradle | 2 +- entry/src/main/config.json | 4 -- .../java/com/demo/aty/provider/Listdata.java | 15 ++++- guideview/build.gradle | 2 +- guideview/src/main/config.json | 4 -- .../com/binioter/guideview/Configuration.java | 3 + .../java/com/binioter/guideview/Guide.java | 8 +-- .../java/com/binioter/guideview/MaskView.java | 66 +++++++++++-------- .../com/binioter/guideview/MyApplication.java | 15 ++++- lottie/build.gradle | 2 +- lottie/src/main/config.json | 4 -- 13 files changed, 80 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index c6cac9d..484d4ff 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - 功能:本系统能够快速的为一个Ability里的任何一个Component控件创建一个遮罩式的导航页,并且可以再高亮区域绘制任何你想要的布局或者lottie动画等炫酷效果 - 项目移植状态:主功能移植无差异 - 调用差异:由于和原项目实现方式不一致 暂不支持指针区域精确定位屏幕绝对位置 -- 开发版本:sdk5,DevEco Studio2.1 Release +- 开发版本:sdk6,DevEco Studio2.2 Beta1 - 基线版本:Release v1.0.0 #### 效果演示 @@ -33,7 +33,7 @@ allprojects { ...... } ``` -在sdk5,DevEco Studio2.1 Release下项目可直接运行 +在sdk6,DevEco Studio2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 diff --git a/build.gradle b/build.gradle index d304780..031e576 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.huawei.ohos.app' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } @@ -19,8 +19,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.4.2' - classpath 'com.huawei.ohos:decctest:1.0.0.7' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } diff --git a/entry/build.gradle b/entry/build.gradle index 89acc0a..9007bb8 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.huawei.ohos.decctest' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/entry/src/main/config.json b/entry/src/main/config.json index fba0202..1ac48cb 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -5,10 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 4, - "target": 5 } }, "deviceConfig": {}, diff --git a/entry/src/main/java/com/demo/aty/provider/Listdata.java b/entry/src/main/java/com/demo/aty/provider/Listdata.java index e488cb1..f0f8c21 100644 --- a/entry/src/main/java/com/demo/aty/provider/Listdata.java +++ b/entry/src/main/java/com/demo/aty/provider/Listdata.java @@ -1,5 +1,18 @@ package com.demo.aty.provider; - +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ public class Listdata { private String name; diff --git a/guideview/build.gradle b/guideview/build.gradle index ed17026..4ffeb9e 100644 --- a/guideview/build.gradle +++ b/guideview/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/guideview/src/main/config.json b/guideview/src/main/config.json index 0a2d38c..0ed6e9f 100644 --- a/guideview/src/main/config.json +++ b/guideview/src/main/config.json @@ -5,10 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 4, - "target": 5 } }, "deviceConfig": {}, diff --git a/guideview/src/main/java/com/binioter/guideview/Configuration.java b/guideview/src/main/java/com/binioter/guideview/Configuration.java index 949527e..05f10e0 100644 --- a/guideview/src/main/java/com/binioter/guideview/Configuration.java +++ b/guideview/src/main/java/com/binioter/guideview/Configuration.java @@ -121,6 +121,9 @@ class Configuration extends Parcelable { } }; + public Configuration() { + } + @Override public void writeExternal(ObjectOutput dest) throws IOException { dest.writeInt(mAlpha); diff --git a/guideview/src/main/java/com/binioter/guideview/Guide.java b/guideview/src/main/java/com/binioter/guideview/Guide.java index 3d4c8fb..812c67c 100644 --- a/guideview/src/main/java/com/binioter/guideview/Guide.java +++ b/guideview/src/main/java/com/binioter/guideview/Guide.java @@ -179,8 +179,8 @@ public class Guide implements Component.TouchEventListener, ComponentContainer.K parentX = loc[0]; parentY = loc[1]; } - int[] locationOnScreen = mConfiguration.mTargetView.getLocationOnScreen(); if (mConfiguration.mTargetView != null) { + int[] locationOnScreen = mConfiguration.mTargetView.getLocationOnScreen(); maskView.setTargetRect(Common.getViewAbsRect(mConfiguration.mTargetView, locationOnScreen[0], locationOnScreen[1])); } else { // Gets the target view's abs rect @@ -197,7 +197,7 @@ public class Guide implements Component.TouchEventListener, ComponentContainer.K maskView.setTouchEventListener(this::onTouchEvent); } - maskView.setComponents(mViewComments); +// maskView.setComponents(mViewComments); return maskView; } @@ -230,11 +230,11 @@ public class Guide implements Component.TouchEventListener, ComponentContainer.K startY = component.getPivotY(); return true; } else if (motionEvent.getAction() == TouchEvent.PRIMARY_POINT_UP) { - if (startY - component.getPivotY() > DensityUtils.fpToPx(component.getContext(), SLIDE_THRESHOLD)) { + if ((double)startY - (double)component.getPivotY() > (double)DensityUtils.fpToPx(component.getContext(), Float.valueOf(SLIDE_THRESHOLD))) { if (mOnSlideListener != null) { mOnSlideListener.onSlideListener(GuideBuilder.SlideState.UP); } - } else if (component.getPivotY() - startY > DensityUtils.fpToPx(component.getContext(), SLIDE_THRESHOLD)) { + } else if ((double)component.getPivotY() - (double)startY > (double)DensityUtils.fpToPx(component.getContext(), Float.valueOf(SLIDE_THRESHOLD))) { if (mOnSlideListener != null) { mOnSlideListener.onSlideListener(GuideBuilder.SlideState.DOWN); } diff --git a/guideview/src/main/java/com/binioter/guideview/MaskView.java b/guideview/src/main/java/com/binioter/guideview/MaskView.java index c6bff5b..29d5cc9 100644 --- a/guideview/src/main/java/com/binioter/guideview/MaskView.java +++ b/guideview/src/main/java/com/binioter/guideview/MaskView.java @@ -81,7 +81,6 @@ class MaskView extends ComponentContainer implements Component.DrawTask, Compone private int width; private int height; private Texture texture; - private viewComment[] mViewComments; private int num = 0; private int imaId; private Texture img; @@ -96,9 +95,6 @@ class MaskView extends ComponentContainer implements Component.DrawTask, Compone private String text = ""; - void setComponents(viewComment[] viewComments) { - mViewComments = viewComments; - } MaskView(Context context) { super(context); @@ -208,28 +204,44 @@ class MaskView extends ComponentContainer implements Component.DrawTask, Compone private void resetPadding() { if (!ignoreRepadding) { if (mPadding != 0 && mPaddingLeft == 0) { - mTargetRect.left -= mPadding; + double left = (double)mTargetRect.left; + left -= mPadding; + mTargetRect.left = (float) left; } if (mPadding != 0 && mPaddingTop == 0) { - mTargetRect.top -= mPadding; + double top = (double)mTargetRect.top; + top -= mPadding; + mTargetRect.top = (float) top; } if (mPadding != 0 && mPaddingRight == 0) { - mTargetRect.right += mPadding; + double right = (double)mTargetRect.right; + right += mPadding; + mTargetRect.right = (float) right; } if (mPadding != 0 && mPaddingBottom == 0) { - mTargetRect.bottom += mPadding; + double bottom = (double)mTargetRect.bottom; + bottom += mPadding; + mTargetRect.bottom = (float) bottom; } if (mPaddingLeft != 0) { - mTargetRect.left -= mPaddingLeft; + double left = (double)mTargetRect.left; + left -= mPaddingLeft; + mTargetRect.left = (float) left; } if (mPaddingTop != 0) { - mTargetRect.top -= mPaddingTop; + double top = (double)mTargetRect.top; + top -= mPaddingTop; + mTargetRect.top = (float) top; } if (mPaddingRight != 0) { - mTargetRect.right += mPaddingRight; + double right = (double)mTargetRect.right; + right += mPaddingRight; + mTargetRect.right = (float) right; } if (mPaddingBottom != 0) { - mTargetRect.bottom += mPaddingBottom; + double bottom = (double)mTargetRect.bottom; + bottom += mPaddingBottom; + mTargetRect.bottom = (float) bottom; } ignoreRepadding = true; } @@ -306,17 +318,17 @@ class MaskView extends ComponentContainer implements Component.DrawTask, Compone PixelMap pixelMap = getPixelMap(mContext, imaId); img = new Texture(pixelMap); } - float isx = 0; + double isx = 0; if (mTargetRect.getWidth() > paint.measureText(text)) { // 如果区域大于文字 已区域的 中间 - isx = (mTargetRect.right) / 2 - paint.measureText(text) / 2; + isx = ((double)mTargetRect.right) / 2 - (double)paint.measureText(text) / 2; } else { // 从右边画 - isx = mTargetRect.right - paint.measureText(text); + isx = (double)mTargetRect.right - (double)paint.measureText(text); } - mEraserCanvas.drawText(paint, text, isx, mTargetRect.bottom + paint.getTextSize() + 40); + mEraserCanvas.drawText(paint, text, (float) isx, (float)((double)mTargetRect.bottom + paint.getTextSize() + 40)); if (imaId != 0) { - mEraserCanvas.drawTexture(isx, mTargetRect.bottom + paint.getTextSize() + 40, img); + mEraserCanvas.drawTexture((float)isx, (float)((double)mTargetRect.bottom + paint.getTextSize() + 40), img); } } if (!mOverlayTarget) { @@ -383,37 +395,37 @@ class MaskView extends ComponentContainer implements Component.DrawTask, Compone switch (lp.targetAnchor) { case LayoutParams.ANCHOR_LEFT: //左 mChildTmpRect.right = mTargetRect.left; - mChildTmpRect.left = mChildTmpRect.right - child.getWidth(); + mChildTmpRect.left = (float)((double)mChildTmpRect.right - (double)child.getWidth()); verticalChildPositionLayout(child, mChildTmpRect, lp.targetParentPosition); break; case LayoutParams.ANCHOR_TOP://上 mChildTmpRect.bottom = mTargetRect.top; - mChildTmpRect.top = mChildTmpRect.bottom - child.getHeight(); + mChildTmpRect.top = (float)((double)mChildTmpRect.bottom - child.getHeight()); horizontalChildPositionLayout(child, mChildTmpRect, lp.targetParentPosition); break; case LayoutParams.ANCHOR_RIGHT://右 mChildTmpRect.left = mTargetRect.right; - mChildTmpRect.right = mChildTmpRect.left + child.getWidth(); + mChildTmpRect.right = (float)((double)mChildTmpRect.left + child.getWidth()); verticalChildPositionLayout(child, mChildTmpRect, lp.targetParentPosition); break; case LayoutParams.ANCHOR_BOTTOM://下 mChildTmpRect.top = mTargetRect.bottom; - mChildTmpRect.bottom = mChildTmpRect.top + child.getHeight(); + mChildTmpRect.bottom = (float)((double)mChildTmpRect.top + child.getHeight()); horizontalChildPositionLayout(child, mChildTmpRect, lp.targetParentPosition); break; case LayoutParams.ANCHOR_OVER://中心 - mChildTmpRect.left = ((int) mTargetRect.getWidth() - child.getWidth()) >> 1; - mChildTmpRect.top = ((int) mTargetRect.getHeight() - child.getHeight()) >> 1; - mChildTmpRect.right = ((int) mTargetRect.getWidth() + child.getWidth()) >> 1; - mChildTmpRect.bottom = ((int) mTargetRect.getHeight() + child.getHeight()) >> 1; + mChildTmpRect.left = ((int) ((double)mTargetRect.getWidth() - child.getWidth())) >> 1; + mChildTmpRect.top = ((int) ((double)mTargetRect.getHeight() - child.getHeight())) >> 1; + mChildTmpRect.right = ((int) ((double)mTargetRect.getWidth() + child.getWidth())) >> 1; + mChildTmpRect.bottom = ((int)((double) mTargetRect.getHeight() + child.getHeight())) >> 1; mChildTmpRect.fuse(mTargetRect.left, mTargetRect.top); break; default: break; } float density = DisplayManager.getInstance().getDefaultDisplay(mContext).get().getAttributes().densityPixels; - mChildTmpRect.translate((int) (density * lp.offsetX + 0.5f), - (int) (density * lp.offsetY + 0.5f)); + mChildTmpRect.translate((int) ((double)density * (double)lp.offsetX + (double)0.5f), + (int) ((double)density * (double)lp.offsetY + (double)0.5f)); child.arrange((int) mChildTmpRect.left, (int) mChildTmpRect.top, (int) mChildTmpRect.right, (int) mChildTmpRect.bottom); } diff --git a/guideview/src/main/java/com/binioter/guideview/MyApplication.java b/guideview/src/main/java/com/binioter/guideview/MyApplication.java index 14ed27d..090e307 100644 --- a/guideview/src/main/java/com/binioter/guideview/MyApplication.java +++ b/guideview/src/main/java/com/binioter/guideview/MyApplication.java @@ -4,16 +4,25 @@ import ohos.aafwk.ability.AbilityPackage; import ohos.app.AbilityContext; public class MyApplication extends AbilityPackage { - static AbilityContext context; + + public static AbilityContext getMcontext() { + return mcontext; + } + + public static void setMcontext(AbilityContext mcontext) { + MyApplication.mcontext = mcontext; + } + + private static AbilityContext mcontext; @Override public void onInitialize() { super.onInitialize(); - context = this; + setMcontext(this); } public static AbilityContext getInstance() { - return context; + return mcontext; } } diff --git a/lottie/build.gradle b/lottie/build.gradle index 4872111..2bf851a 100644 --- a/lottie/build.gradle +++ b/lottie/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/lottie/src/main/config.json b/lottie/src/main/config.json index 30ef165..7b84dfc 100644 --- a/lottie/src/main/config.json +++ b/lottie/src/main/config.json @@ -5,10 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 4, - "target": 5 } }, "deviceConfig": {}, -- Gitee