From ed8f129a7248ea9aa8663a0408a8d052dcc0aa73 Mon Sep 17 00:00:00 2001 From: zhaodongyang <479868299@qq.com> Date: Wed, 30 Jun 2021 22:32:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8DfindBugs=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E4=BB=96=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++----- build.gradle | 4 +- entry/src/main/config.json | 2 +- .../tango/materialintro/slice/IntroSlice.java | 22 +++++--- .../materialintro/slice/MainAbilitySlice.java | 15 ------ .../slice/SplashAbilitySlice.java | 1 - .../resources/base/layout/slide_custom.xml | 4 +- .../tango/materialintroscreen/AttrString.java | 16 +++--- .../tango/materialintroscreen/Constants.java | 8 +-- .../{SlideView.java => SlideComponet.java} | 17 +++--- .../materialintroscreen/SlideViewBuilder.java | 36 ++++++------- .../adapter/SlidesAdapter.java | 53 +++++++------------ .../translations/AlphaTranslation.java | 15 ------ .../translations/DefaultAlphaTranslation.java | 15 ------ .../DefaultPositionTranslation.java | 15 ------ .../translations/EnterDefaultTranslation.java | 17 ------ .../translations/ExitDefaultTranslation.java | 15 ------ .../translations/NoTranslation.java | 17 ------ .../BackButtonTranslationWrapper.java | 18 ------- .../NextButtonTranslationWrapper.java | 18 ------- .../PageIndicatorTranslationWrapper.java | 3 -- .../SkipButtonTranslationWrapper.java | 3 -- .../wrappers/ViewPagerTranslationWrapper.java | 1 - .../MessageButtonBehaviourOnPageSelected.java | 10 ++-- .../ParallaxScrollListener.java | 8 +-- ...arallaxView.java => ParallaxComponet.java} | 10 ++-- ...yout.java => ParallaxDependentLayout.java} | 12 ++--- ...ut.java => ParallaxDirectionalLayout.java} | 12 ++--- ...meLayout.java => ParallaxStackLayout.java} | 10 ++-- .../slice/MaterialIntroSlice.java | 24 ++++----- .../widgets/BottomSnackBar.java | 15 +++--- .../widgets/InkPageIndicator.java | 8 +-- .../widgets/SwipeableViewPager.java | 6 ++- .../resources/base/layout/fragment_slide.xml | 4 +- 34 files changed, 150 insertions(+), 310 deletions(-) rename material-intro-screen/src/main/java/agency/tango/materialintroscreen/{SlideView.java => SlideComponet.java} (95%) rename material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/{ParallaxView.java => ParallaxComponet.java} (90%) rename material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/{ParallaxRelativeLayout.java => ParallaxDependentLayout.java} (82%) rename material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/{ParallaxLinearLayout.java => ParallaxDirectionalLayout.java} (82%) rename material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/{ParallaxFrameLayout.java => ParallaxStackLayout.java} (88%) diff --git a/README.md b/README.md index cedcff9..b947d6d 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,14 @@ Material intro screen 的设计灵感来自于 [Material Intro] , 为了使简 ## 用法 ### 第1步-使用: -#### 方法1-直接使用har包 +#### 方法1-使用har包 ``` 通过library生成har包,添加har包到要集成的libs文件夹内 在entry的gradle内添加如下代码 implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) ``` -#### 方法2-gradle依赖 +#### 方法2-使用implementation依赖 ``` allprojects{ repositories{ @@ -47,7 +47,7 @@ implementation 'io.openharmony.tpc.thirdlib:material-intro-screen:1.0.1' public class IntroSlice extends MaterialIntroSlice ``` ### 第3步: -#### 添加 IntroAbility 到 [config][config] 并设置主题等: +#### 在 [config][config] 里面设置沉浸式主题等: ```json { "orientation": "unspecified", @@ -86,7 +86,7 @@ public class IntroSlice extends MaterialIntroSlice } } ``` -#### SlideView用法的说明: +#### SlideComponet用法的说明: - ```possiblePermissions``` ⇾ 不强制要求需要授予的权限 - ```neededPersmissions``` ⇾ 需要获得许可才能从该幻灯片进一步移动的权限 - ```MessageButtonBehaviour``` ⇾ 仅仅在你需要自定义操作或者button显示文字才会创建新的实例 @@ -111,20 +111,20 @@ public class IntroSlice extends MaterialIntroSlice - ```getSkipButtonTranslationWrapper()``` ## 定制幻灯片 -#### 您只需要扩展SlideFragment并覆盖以下功能就可以实现完全自定义的幻灯片: +#### 您只需要扩展SlideComponet并覆盖以下功能就可以实现完全自定义的幻灯片: - ```backgroundColor()``` - ```buttonsColor()``` - ```canMoveFurther()``` (仅当您要阻止用户在执行某些操作之前就无法进一步移动时才需要实现这个方法) - ```cantMoveFurtherErrorMessage()``` (同上) #### 如果要在自定义控件中使用视差,请使用以下视图之一: - - [ParallaxFrameLayout][ParallaxFrame] - - [ParallaxLinearLayout][ParallaxLinear] - - [ParallaxRelativeLayout][ParallaxRelative] + - [ParallaxStackLayout][ParallaxStack] + - [ParallaxDirectionalLayout][ParallaxDirectiona] + - [ParallaxDependentLayout][ParallaxDependent] #### 并在XML中设置 [zdy:layout_parallaxFactor][ParallaxFactor] 属性: ```xml - @@ -134,7 +134,7 @@ public class IntroSlice extends MaterialIntroSlice /> ``` - 此处显示了简单SlideView中没有的所有功能: [Custom Slide] + 此处显示了简单SlideComponet中没有的所有功能: [Custom Slide] ## License @@ -183,9 +183,9 @@ public class IntroSlice extends MaterialIntroSlice [PermissionSlide]: [FinishSlide]: [SimpleSlide]: -[ParallaxFrame]: -[ParallaxLinear]: -[ParallaxRelative]: +[ParallaxStack]: +[ParallaxDirectiona]: +[ParallaxDependent]: [ParallaxFactor]: [config]: [TranslationWrapper]: diff --git a/build.gradle b/build.gradle index ef3f577..d1cd2d3 100644 --- a/build.gradle +++ b/build.gradle @@ -19,8 +19,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.2.5' - classpath 'com.huawei.ohos:decctest:1.0.0.6' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 44d9c88..c778423 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -41,7 +41,7 @@ "label": "$string:app_name", "type": "page", "visible": false, - "launchType": "singleton" + "launchType": "standard" }, { "orientation": "unspecified", diff --git a/entry/src/main/java/agency/tango/materialintro/slice/IntroSlice.java b/entry/src/main/java/agency/tango/materialintro/slice/IntroSlice.java index 28a9703..3398e4c 100644 --- a/entry/src/main/java/agency/tango/materialintro/slice/IntroSlice.java +++ b/entry/src/main/java/agency/tango/materialintro/slice/IntroSlice.java @@ -1,14 +1,14 @@ package agency.tango.materialintro.slice; - import ohos.aafwk.content.Intent; +import ohos.aafwk.content.Operation; import ohos.agp.components.Component; import ohos.security.SystemPermission; import agency.tango.materialintro.ResourceTable; import agency.tango.materialintroscreen.MessageButtonBehaviour; import agency.tango.materialintroscreen.SlideViewBuilder; -import agency.tango.materialintroscreen.SlideView; +import agency.tango.materialintroscreen.SlideComponet; import agency.tango.materialintroscreen.slice.MaterialIntroSlice; import agency.tango.materialintroscreen.utils.ToastUtil; @@ -47,7 +47,7 @@ public class IntroSlice extends MaterialIntroSlice { } private void addEndPage() { - SlideView endView = new SlideViewBuilder() + SlideComponet endView = new SlideViewBuilder() .backgroundColor(ResourceTable.Color_fourth_slide_background) .buttonsColor(ResourceTable.Color_fourth_slide_buttons) .title(getContext().getString(ResourceTable.String_end_title)) @@ -62,7 +62,7 @@ public class IntroSlice extends MaterialIntroSlice { String[] neededPermissions = {SystemPermission.CAMERA, SystemPermission.LOCATION, SystemPermission.WRITE_CALENDAR}; - SlideView permissionView = new SlideViewBuilder() + SlideComponet permissionView = new SlideViewBuilder() .backgroundColor(ResourceTable.Color_third_slide_background) .buttonsColor(ResourceTable.Color_third_slide_buttons) .possiblePermissions(possiblePermissions) @@ -79,7 +79,7 @@ public class IntroSlice extends MaterialIntroSlice { } private void addGoOnPage() { - SlideView goOnView = new SlideViewBuilder() + SlideComponet goOnView = new SlideViewBuilder() .backgroundColor(ResourceTable.Color_second_slide_background) .buttonsColor(ResourceTable.Color_second_slide_buttons) .title(getContext().getString(ResourceTable.String_go_on_title)) @@ -89,7 +89,7 @@ public class IntroSlice extends MaterialIntroSlice { } private void addOrganizePage() { - SlideView organizeView = new SlideViewBuilder() + SlideComponet organizeView = new SlideViewBuilder() .backgroundColor(ResourceTable.Color_first_slide_background) .buttonsColor(ResourceTable.Color_first_slide_buttons) .image(ResourceTable.Media_img_office) @@ -107,6 +107,14 @@ public class IntroSlice extends MaterialIntroSlice { public void onFinish() { super.onFinish(); ToastUtil.showToast(this, getContext().getString(ResourceTable.String_close_text)); - + Intent secondIntent = new Intent(); + // 指定待启动FA的bundleName和abilityName + Operation operation = new Intent.OperationBuilder() + .withDeviceId("") + .withBundleName("agency.tango.materialintro") + .withAbilityName("agency.tango.materialintro.MainAbility") + .build(); + secondIntent.setOperation(operation); + startAbility(secondIntent); // 通过AbilitySlice的startAbility接口实现启动另一个页面 } } diff --git a/entry/src/main/java/agency/tango/materialintro/slice/MainAbilitySlice.java b/entry/src/main/java/agency/tango/materialintro/slice/MainAbilitySlice.java index 8d3e8e0..25daedb 100644 --- a/entry/src/main/java/agency/tango/materialintro/slice/MainAbilitySlice.java +++ b/entry/src/main/java/agency/tango/materialintro/slice/MainAbilitySlice.java @@ -1,18 +1,3 @@ -/* - * 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. - */ - package agency.tango.materialintro.slice; import agency.tango.materialintro.MaterialIntro; diff --git a/entry/src/main/java/agency/tango/materialintro/slice/SplashAbilitySlice.java b/entry/src/main/java/agency/tango/materialintro/slice/SplashAbilitySlice.java index 32ea1ef..f64683c 100644 --- a/entry/src/main/java/agency/tango/materialintro/slice/SplashAbilitySlice.java +++ b/entry/src/main/java/agency/tango/materialintro/slice/SplashAbilitySlice.java @@ -1,6 +1,5 @@ package agency.tango.materialintro.slice; - import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.aafwk.content.Operation; diff --git a/entry/src/main/resources/base/layout/slide_custom.xml b/entry/src/main/resources/base/layout/slide_custom.xml index 8c8d03a..93e3801 100644 --- a/entry/src/main/resources/base/layout/slide_custom.xml +++ b/entry/src/main/resources/base/layout/slide_custom.xml @@ -1,5 +1,5 @@ - - + diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/AttrString.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/AttrString.java index 8383dca..376e58b 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/AttrString.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/AttrString.java @@ -31,44 +31,44 @@ public class AttrString { /** * 控件在随着pageslider滑动时的偏移比例 */ - public static String PARALlAX_LAYOUT_FACTOR = "layout_parallaxFactor"; + public static final String PARALlAX_LAYOUT_FACTOR = "layout_parallaxFactor"; /** * pageslider指示器小圆点直径 */ - public static String INKPAGEINDICATOR_DOTDIAMETER = "dotDiameter"; + public static final String INKPAGEINDICATOR_DOTDIAMETER = "dotDiameter"; /** * pageslider指示器小圆点之间的间隔 */ - public static String INKPAGEINDICATOR_DOTGAP = "dotGap"; + public static final String INKPAGEINDICATOR_DOTGAP = "dotGap"; /** * pageslider指示器动画时间 */ - public static String INKPAGEINDICATOR_ANIMATIONDURATION = + public static final String INKPAGEINDICATOR_ANIMATIONDURATION = "animationDuration"; /** * pageslider指示器未选中小圆点颜色 */ - public static String INKPAGEINDICATOR_PAGEINDICATORCOLOR = + public static final String INKPAGEINDICATOR_PAGEINDICATORCOLOR = "pageIndicatorColor"; /** * pageslider指示器选中小圆点颜色 */ - public static String INKPAGEINDICATOR_CURRENTPAGEINDICATORCOLOR = + public static final String INKPAGEINDICATOR_CURRENTPAGEINDICATORCOLOR = "currentPageIndicatorColor"; /** * 加速插值器变化系数 */ - public static String IACCELERATEINTERPOLATOR_FACTOR = + public static final String IACCELERATEINTERPOLATOR_FACTOR = "accelerateInterpolatorFactor"; /** * 循环插值器循环次数 */ - public static String CYCLEINTERPOLATORCYCLES = "cycleInterpolatorCycles"; + public static final String CYCLEINTERPOLATORCYCLES = "cycleInterpolatorCycles"; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/Constants.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/Constants.java index 11c03d4..4734403 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/Constants.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/Constants.java @@ -31,22 +31,22 @@ public class Constants{ /** * 请求权限码 */ - public static String REQUEST_PERMISSION_CODE= "request_permission_code"; + public static final String REQUEST_PERMISSION_CODE= "request_permission_code"; /** * 权限集合 */ - public static String PERMISSION_RESULT = "permission_result"; + public static final String PERMISSION_RESULT = "permission_result"; /** * 权限申请结果 */ - public static String GRANT_RESULT= "grant_result"; + public static final String GRANT_RESULT= "grant_result"; /** * 权限申请action */ - public static String PERMISSION_ACTION = "agency.tango.materialintroscreen.permission"; + public static final String PERMISSION_ACTION = "agency.tango.materialintroscreen.permission"; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideView.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideComponet.java similarity index 95% rename from material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideView.java rename to material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideComponet.java index a1b1073..2ece3c6 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideView.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideComponet.java @@ -13,19 +13,18 @@ import ohos.app.Context; import ohos.bundle.IBundleManager; import ohos.global.resource.NotExistException; import ohos.global.resource.WrongTypeException; -import ohos.security.permission.Permission; import ohos.utils.PacMap; import org.jetbrains.annotations.NotNull; -import agency.tango.materialintroscreen.parallax.ParallaxView; +import agency.tango.materialintroscreen.parallax.ParallaxComponet; import agency.tango.materialintroscreen.utils.LogUtil; /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen - * @ClassName: SlideView + * @ClassName: SlideComponet * @Description: pageslider的item基类 * 封装了背景色的获取及设置 title的文字获取及设置 * messagebutton的背景色获取及设置 description的文字获取及设置 权限的申请及判断 @@ -34,7 +33,7 @@ import agency.tango.materialintroscreen.utils.LogUtil; * @UpdateRemark: 暂无 * @Version: 1.0 */ -public class SlideView extends ParallaxView { +public class SlideComponet extends ParallaxComponet { private static final String BACKGROUND_COLOR = "background_color"; private static final String BUTTONS_COLOR = "buttons_color"; private static final String TITLE = "title"; @@ -61,18 +60,18 @@ public class SlideView extends ParallaxView { return title; } - public SlideView(Context context) { + public SlideComponet(Context context) { super(context); } /** * 控件初始化 * - * @param builder SlideView属性builder + * @param builder SlideComponet属性builder * @param context 上下文 - * @return SlideView + * @return SlideComponet */ - public static SlideView createInstance(SlideViewBuilder builder, Context context) { + public static SlideComponet createInstance(SlideViewBuilder builder, Context context) { BUNDLE.putIntValue(BACKGROUND_COLOR, builder.getBackgroundColor()); BUNDLE.putIntValue(BUTTONS_COLOR, builder.getButtonsColor()); BUNDLE.putIntValue(IMAGE, builder.getImage()); @@ -82,7 +81,7 @@ public class SlideView extends ParallaxView { builder.getNeededPermissions()); BUNDLE.putStringArray(POSSIBLE_PERMISSIONS, builder.getPossiblePermissions()); - return new SlideView(context); + return new SlideComponet(context); } private static boolean isNotNullOrEmpty(String string) { diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideViewBuilder.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideViewBuilder.java index c05afd6..6fd1a61 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideViewBuilder.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideViewBuilder.java @@ -22,7 +22,7 @@ public class SlideViewBuilder { int image; /** - * 获取SlideView的背景颜色 + * 获取SlideComponet的背景颜色 * * @return 背景颜色 */ @@ -31,7 +31,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的按钮颜色 + * 获取SlideComponet的按钮颜色 * * @return 按钮颜色 */ @@ -40,7 +40,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的标题 + * 获取SlideComponet的标题 * * @return 标题 */ @@ -49,7 +49,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的描述 + * 获取SlideComponet的描述 * * @return 描述 */ @@ -58,7 +58,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的必要的权限 + * 获取SlideComponet的必要的权限 * * @return 必要的权限 */ @@ -67,7 +67,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的可能需要的权限 + * 获取SlideComponet的可能需要的权限 * * @return 可能需要的权限 */ @@ -76,7 +76,7 @@ public class SlideViewBuilder { } /** - * 获取SlideView的图片资源id + * 获取SlideComponet的图片资源id * * @return 图片资源id */ @@ -85,7 +85,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的背景色 + * 设置SlideComponet的背景色 * * @param backgroundColor 背景色 * @return SlideViewBuilder @@ -96,7 +96,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的按钮颜色 + * 设置SlideComponet的按钮颜色 * * @param buttonsColor 按钮颜色 * @return SlideViewBuilder @@ -107,7 +107,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的标题 + * 设置SlideComponet的标题 * * @param title 标题 * @return SlideViewBuilder @@ -118,7 +118,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的描述 + * 设置SlideComponet的描述 * * @param description 描述 * @return SlideViewBuilder @@ -129,7 +129,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的必要的权限 + * 设置SlideComponet的必要的权限 * * @param neededPermissions 必要的权限 * @return SlideViewBuilder @@ -140,7 +140,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的可能需要的权限 + * 设置SlideComponet的可能需要的权限 * * @param possiblePermissions 可能需要的权限 * @return SlideViewBuilder @@ -151,7 +151,7 @@ public class SlideViewBuilder { } /** - * 设置SlideView的图片 + * 设置SlideComponet的图片 * * @param image 图片 * @return SlideViewBuilder @@ -162,13 +162,13 @@ public class SlideViewBuilder { } /** - * 构造SlideView + * 构造SlideComponet * * @param context 上下文 - * @return SlideView + * @return SlideComponet */ - public SlideView build(Context context) { - return SlideView.createInstance(this, context); + public SlideComponet build(Context context) { + return SlideComponet.createInstance(this, context); } } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java index dc9919e..094c061 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java @@ -1,29 +1,14 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.adapter; import java.util.ArrayList; +import agency.tango.materialintroscreen.SlideComponet; import ohos.agp.components.Component; import ohos.agp.components.ComponentContainer; import ohos.agp.components.PageSliderProvider; import ohos.data.rdb.DataObservable; import ohos.data.rdb.DataObserver; -import agency.tango.materialintroscreen.SlideView; import agency.tango.materialintroscreen.SlideViewBuilder; /** @@ -39,7 +24,7 @@ import agency.tango.materialintroscreen.SlideViewBuilder; public class SlidesAdapter extends PageSliderProvider { private final DataObservable mObservable = new DataObservable(); private DataObserver mViewPagerObserver; - private ArrayList views = new ArrayList<>(); + private ArrayList views = new ArrayList<>(); /** * 构造器 @@ -56,7 +41,7 @@ public class SlidesAdapter extends PageSliderProvider { this.mViewPagerObserver = mViewPagerObserver; } - public void setViews(ArrayList views) { + public void setViews(ArrayList views) { this.views = views; } @@ -67,30 +52,30 @@ public class SlidesAdapter extends PageSliderProvider { @Override public Object createPageInContainer(ComponentContainer componentContainer, int position) { - SlideView slideView; + SlideComponet slideComponet; ComponentContainer.LayoutConfig layoutParams = new ComponentContainer.LayoutConfig( ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT); if (this.views.size() > position) { - slideView = this.views.get(position); - if (slideView != null && slideView.getRootView() != null) { - componentContainer.addComponent(slideView.getRootView(), + slideComponet = this.views.get(position); + if (slideComponet != null && slideComponet.getRootView() != null) { + componentContainer.addComponent(slideComponet.getRootView(), layoutParams); - views.set(position, slideView); - return slideView.getRootView(); + views.set(position, slideComponet); + return slideComponet.getRootView(); } } - slideView = this.getItem(position); + slideComponet = this.getItem(position); while (this.views.size() <= position) { this.views.add(null); } - this.views.set(position, slideView); - if (slideView != null && slideView.getRootView() != null) { - componentContainer.addComponent(slideView.getRootView(), + this.views.set(position, slideComponet); + if (slideComponet != null && slideComponet.getRootView() != null) { + componentContainer.addComponent(slideComponet.getRootView(), layoutParams); - views.set(position, slideView); - return slideView.getRootView(); + views.set(position, slideComponet); + return slideComponet.getRootView(); } else { return new Component(componentContainer.getContext()); } @@ -141,8 +126,8 @@ public class SlidesAdapter extends PageSliderProvider { * @return 是否应该锁定页面 */ public boolean shouldLockSlide(int position) { - SlideView slideView = getItem(position); - return !slideView.canMoveFurther() || slideView.hasNeededPermissionsToGrant(); + SlideComponet slideComponet = getItem(position); + return !slideComponet.canMoveFurther() || slideComponet.hasNeededPermissionsToGrant(); } /** @@ -151,7 +136,7 @@ public class SlidesAdapter extends PageSliderProvider { * @param var1 pageslider子控件位置 * @return 某个位置的子控件 */ - public SlideView getItem(int var1) { + public SlideComponet getItem(int var1) { if (views == null || var1 < 0 || var1 >= views.size() || views.get(var1) == null) { return new SlideViewBuilder().build(null); } @@ -164,7 +149,7 @@ public class SlidesAdapter extends PageSliderProvider { * * @param view 子控件 */ - public void addItem(SlideView view) { + public void addItem(SlideComponet view) { views.add(getCount(), view); notifyDataChanged(); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/AlphaTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/AlphaTranslation.java index 8ac5060..c1891ea 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/AlphaTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/AlphaTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import ohos.agp.components.Component; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultAlphaTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultAlphaTranslation.java index 8d695bd..d74b34d 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultAlphaTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultAlphaTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import ohos.agp.components.Component; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultPositionTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultPositionTranslation.java index 009b2de..94beb0d 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultPositionTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/DefaultPositionTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import ohos.agp.components.Component; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/EnterDefaultTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/EnterDefaultTranslation.java index 332cec4..b194a88 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/EnterDefaultTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/EnterDefaultTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import java.io.IOException; @@ -31,9 +16,7 @@ import agency.tango.materialintroscreen.ResourceTable; * @Package: agency.tango.materialintroscreen.animations.translations * @ClassName: EnterDefaultTranslation * @Description: pageslider随着滑动 传入的控件的竖直方向位移动态改变实现类---页面滑入 - * @CreateDate: 2021/4/12 15:43 - * @UpdateDate: 2021/4/12 15:43 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/ExitDefaultTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/ExitDefaultTranslation.java index 93493ec..f31e9c2 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/ExitDefaultTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/ExitDefaultTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import java.io.IOException; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/NoTranslation.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/NoTranslation.java index 04d2e03..73701aa 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/NoTranslation.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/translations/NoTranslation.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.translations; import ohos.agp.components.Component; @@ -24,9 +9,7 @@ import agency.tango.materialintroscreen.animations.IViewTranslation; * @Package: agency.tango.materialintroscreen.animations.translations * @ClassName: NoTranslation * @Description: pageslider随着滑动 位移动态改变实现类---无位移 - * @CreateDate: 2021/4/12 15:43 - * @UpdateDate: 2021/4/12 15:43 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java index ad413a6..751d791 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.wrappers; import ohos.agp.components.Component; @@ -22,15 +7,12 @@ import agency.tango.materialintroscreen.animations.translations.DefaultPositionT import agency.tango.materialintroscreen.animations.translations.EnterDefaultTranslation; import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; - /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.animations.wrappers * @ClassName: BackButtonTranslationWrapper * @Description: 返回按键滑动行为动画设置类(进入动画 默认动画 退出动画) - * @CreateDate: 2021/4/12 15:57 - * @UpdateDate: 2021/4/12 15:57 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java index 99b1790..2f03fc4 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java @@ -1,18 +1,3 @@ -/* - 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. - */ - package agency.tango.materialintroscreen.animations.wrappers; import ohos.agp.animation.AnimatorProperty; @@ -23,15 +8,12 @@ import agency.tango.materialintroscreen.animations.translations.DefaultPositionT import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; import agency.tango.materialintroscreen.interceptor.CycleInterpolator; - /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.animations.wrappers * @ClassName: NextButtonTranslationWrapper * @Description: 下一步按键滑动行为动画设置类(错误动画 默认动画 退出动画) - * @CreateDate: 2021/4/12 15:57 - * @UpdateDate: 2021/4/12 15:57 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java index b8d9742..fea9a4d 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java @@ -6,15 +6,12 @@ import agency.tango.materialintroscreen.animations.ViewTranslationWrapper; import agency.tango.materialintroscreen.animations.translations.DefaultPositionTranslation; import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; - /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.animations.wrappers * @ClassName: PageIndicatorTranslationWrapper * @Description: pageslider指示器滑动行为动画设置类(默认动画 退出动画) - * @CreateDate: 2021/4/12 15:57 - * @UpdateDate: 2021/4/12 15:57 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java index ad40aeb..ead5820 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java @@ -7,15 +7,12 @@ import agency.tango.materialintroscreen.animations.translations.DefaultPositionT import agency.tango.materialintroscreen.animations.translations.EnterDefaultTranslation; import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; - /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.animations.wrappers * @ClassName: SkipButtonTranslationWrapper * @Description: 跳过按钮滑动行为动画设置类(进入动画 默认动画 退出动画) - * @CreateDate: 2021/4/12 15:57 - * @UpdateDate: 2021/4/12 15:57 * @UpdateRemark: 暂无 * @Version: 1.0 diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java index 1021169..8d89cda 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java @@ -6,7 +6,6 @@ import agency.tango.materialintroscreen.animations.ViewTranslationWrapper; import agency.tango.materialintroscreen.animations.translations.AlphaTranslation; import agency.tango.materialintroscreen.animations.translations.DefaultAlphaTranslation; - /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.animations.wrappers diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java index 8f5d8f7..2906023 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java @@ -2,6 +2,7 @@ package agency.tango.materialintroscreen.listeners; import java.io.IOException; +import agency.tango.materialintroscreen.SlideComponet; import ohos.agp.animation.Animator; import ohos.agp.animation.AnimatorProperty; import ohos.agp.components.Button; @@ -12,7 +13,6 @@ import ohos.global.resource.WrongTypeException; import ohos.utils.LongPlainArray; import agency.tango.materialintroscreen.MessageButtonBehaviour; -import agency.tango.materialintroscreen.SlideView; import agency.tango.materialintroscreen.adapter.SlidesAdapter; import agency.tango.materialintroscreen.utils.LogUtil; import agency.tango.materialintroscreen.ResourceTable; @@ -49,16 +49,16 @@ public class MessageButtonBehaviourOnPageSelected implements IPageSelectedListen if (messageButton == null || adapter.getItem(position) == null) { return; } - final SlideView slideView = adapter.getItem(position); - if (slideView.hasAnyPermissionsToGrant()) { + final SlideComponet slideComponet = adapter.getItem(position); + if (slideComponet.hasAnyPermissionsToGrant()) { showMessageButton(); try { - messageButton.setText(slideView.getContext() + messageButton.setText(slideComponet.getContext() .getResourceManager().getElement(ResourceTable.String_grant_permissions).getString()); } catch (IOException | NotExistException | WrongTypeException e) { LogUtil.error(this.getClass().getSimpleName(), e.toString()); } - messageButton.setClickedListener(component -> slideView.askForPermissions()); + messageButton.setClickedListener(component -> slideComponet.askForPermissions()); } else if (checkIfMessageButtonHasBehaviour(position)) { showMessageButton(); if (messageButtonBehaviours == null ) { diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java index dd00949..60a6586 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java @@ -1,8 +1,8 @@ package agency.tango.materialintroscreen.listeners.scrollListeners; +import agency.tango.materialintroscreen.SlideComponet; import org.jetbrains.annotations.Nullable; -import agency.tango.materialintroscreen.SlideView; import agency.tango.materialintroscreen.adapter.SlidesAdapter; import agency.tango.materialintroscreen.listeners.IPageScrolledListener; import agency.tango.materialintroscreen.parallax.Parallaxable; @@ -31,8 +31,8 @@ public class ParallaxScrollListener implements IPageScrolledListener { return; } if (position != adapter.getCount()) { - SlideView view = adapter.getItem(position); - SlideView fragmentNext = getNextFragment(position); + SlideComponet view = adapter.getItem(position); + SlideComponet fragmentNext = getNextFragment(position); if (view instanceof Parallaxable) { ((Parallaxable) view).setOffset(offset); } @@ -43,7 +43,7 @@ public class ParallaxScrollListener implements IPageScrolledListener { } @Nullable - private SlideView getNextFragment(int position) { + private SlideComponet getNextFragment(int position) { if (adapter == null) { return new SlideViewBuilder().build(null); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxView.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxComponet.java similarity index 90% rename from material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxView.java rename to material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxComponet.java index 8155d5f..cdec245 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxView.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxComponet.java @@ -15,14 +15,14 @@ import agency.tango.materialintroscreen.utils.LogUtil; /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.parallax - * @ClassName: ParallaxRelativeLayout + * @ClassName: ParallaxDependentLayout * @Description: 可偏移DependentLayout 根据容器内各个子控件在水平方向的位置 随着滑动按比例偏移子控件 * @CreateDate: 2021/4/12 17:12 * @UpdateDate: 2021/4/12 17:12 * @UpdateRemark: 暂无 * @Version: 1.0 */ -public abstract class ParallaxView implements Parallaxable { +public abstract class ParallaxComponet implements Parallaxable { /** * 上下文弱引用 */ @@ -36,7 +36,7 @@ public abstract class ParallaxView implements Parallaxable { */ protected Parallaxable parallaxLayout; - public ParallaxView(Context context) { + public ParallaxComponet(Context context) { this.mContext = new WeakReference<>(context); initView(); parallaxLayout = findParallaxLayout(getRootView()); @@ -80,10 +80,10 @@ public abstract class ParallaxView implements Parallaxable { queue.add(viewGroup.getComponentAt(i)); } } else { - LogUtil.info("ParallaxView", "findParallaxLayout"); + LogUtil.info("ParallaxComponet", "findParallaxLayout"); } } - return new ParallaxLinearLayout(null); + return new ParallaxDirectionalLayout(null); } @Override diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDependentLayout.java similarity index 82% rename from material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java rename to material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDependentLayout.java index a9e844b..fcc500f 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDependentLayout.java @@ -11,23 +11,23 @@ import agency.tango.materialintroscreen.AttrString; /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.parallax - * @ClassName: ParallaxRelativeLayout + * @ClassName: ParallaxDependentLayout * @Description: 可偏移DependentLayout 根据容器内各个子控件在水平方向的位置 随着滑动按比例偏移子控件 * @CreateDate: 2021/4/12 17:12 * @UpdateDate: 2021/4/12 17:12 * @UpdateRemark: 暂无 * @Version: 1.0 */ -public class ParallaxRelativeLayout extends DependentLayout implements Parallaxable { - public ParallaxRelativeLayout(Context context) { +public class ParallaxDependentLayout extends DependentLayout implements Parallaxable { + public ParallaxDependentLayout(Context context) { super(context); } - public ParallaxRelativeLayout(Context context, AttrSet attrs) { + public ParallaxDependentLayout(Context context, AttrSet attrs) { super(context, attrs); } - public ParallaxRelativeLayout(Context context, AttrSet attrSet, String styleName) { + public ParallaxDependentLayout(Context context, AttrSet attrSet, String styleName) { super(context, attrSet, styleName); } @@ -40,7 +40,7 @@ public class ParallaxRelativeLayout extends DependentLayout implements Parallaxa public void setOffset(float offset) { for (int i = getChildCount() - 1; i >= 0; i--) { Component child = getComponentAt(i); - ParallaxRelativeLayout.LayoutConfig param = (LayoutConfig) child.getLayoutConfig(); + ParallaxDependentLayout.LayoutConfig param = (LayoutConfig) child.getLayoutConfig(); if (param.parallaxFactor == 0) { continue; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDirectionalLayout.java similarity index 82% rename from material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java rename to material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDirectionalLayout.java index 2e7e73c..19717fa 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxDirectionalLayout.java @@ -11,23 +11,23 @@ import agency.tango.materialintroscreen.AttrString; /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.parallax - * @ClassName: ParallaxLinearLayout + * @ClassName: ParallaxDirectionalLayout * @Description: 可偏移DirectionalLayout 根据容器内各个子控件在水平方向的位置 随着滑动按比例偏移子控件 * @CreateDate: 2021/4/12 17:12 * @UpdateDate: 2021/4/12 17:12 * @UpdateRemark: 暂无 * @Version: 1.0 */ -public class ParallaxLinearLayout extends DirectionalLayout implements Parallaxable { - public ParallaxLinearLayout(Context context) { +public class ParallaxDirectionalLayout extends DirectionalLayout implements Parallaxable { + public ParallaxDirectionalLayout(Context context) { super(context); } - public ParallaxLinearLayout(Context context, AttrSet attrs) { + public ParallaxDirectionalLayout(Context context, AttrSet attrs) { super(context, attrs); } - public ParallaxLinearLayout(Context context, AttrSet attrSet, String styleName) { + public ParallaxDirectionalLayout(Context context, AttrSet attrSet, String styleName) { super(context, attrSet, styleName); } @@ -40,7 +40,7 @@ public class ParallaxLinearLayout extends DirectionalLayout implements Parallaxa public void setOffset(float offset) { for (int i = getChildCount() - 1; i >= 0; i--) { Component child = getComponentAt(i); - ParallaxLinearLayout.LayoutConfig param = (LayoutConfig) child.getLayoutConfig(); + ParallaxDirectionalLayout.LayoutConfig param = (LayoutConfig) child.getLayoutConfig(); if (param.parallaxFactor == 0) { continue; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxStackLayout.java similarity index 88% rename from material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java rename to material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxStackLayout.java index 93f5d82..d781737 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxStackLayout.java @@ -12,19 +12,19 @@ import agency.tango.materialintroscreen.AttrString; /** * @ProjectName: material-intro-screen-master * @Package: agency.tango.materialintroscreen.parallax - * @ClassName: ParallaxFrameLayout + * @ClassName: ParallaxStackLayout * @Description: 可偏移StackLayout 根据容器内各个子控件在水平方向的位置 随着滑动按比例偏移子控件 * @CreateDate: 2021/4/12 17:12 * @UpdateDate: 2021/4/12 17:12 * @UpdateRemark: 暂无 * @Version: 1.0 */ -public class ParallaxFrameLayout extends StackLayout implements Parallaxable { - public ParallaxFrameLayout(Context context) { +public class ParallaxStackLayout extends StackLayout implements Parallaxable { + public ParallaxStackLayout(Context context) { super(context); } - public ParallaxFrameLayout(Context context, AttrSet attrs) { + public ParallaxStackLayout(Context context, AttrSet attrs) { super(context, attrs); } @@ -37,7 +37,7 @@ public class ParallaxFrameLayout extends StackLayout implements Parallaxable { public void setOffset(float offset) { for (int i = getChildCount() - 1; i >= 0; i--) { Component child = getComponentAt(i); - ParallaxFrameLayout.LayoutConfig layoutParams = (LayoutConfig) child.getLayoutConfig(); + ParallaxStackLayout.LayoutConfig layoutParams = (LayoutConfig) child.getLayoutConfig(); if (layoutParams.parallaxFactor == 0) { continue; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/slice/MaterialIntroSlice.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/slice/MaterialIntroSlice.java index d2e2e8f..e32368f 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/slice/MaterialIntroSlice.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/slice/MaterialIntroSlice.java @@ -5,6 +5,7 @@ import java.util.concurrent.ConcurrentLinkedDeque; import static ohos.agp.components.Component.VISIBLE; +import agency.tango.materialintroscreen.SlideComponet; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.colors.RgbColor; @@ -26,7 +27,6 @@ import ohos.rpc.RemoteException; import ohos.utils.LongPlainArray; import agency.tango.materialintroscreen.MessageButtonBehaviour; -import agency.tango.materialintroscreen.SlideView; import agency.tango.materialintroscreen.adapter.SlidesAdapter; import agency.tango.materialintroscreen.animations.ViewTranslationWrapper; import agency.tango.materialintroscreen.animations.wrappers.BackButtonTranslationWrapper; @@ -281,7 +281,7 @@ public class MaterialIntroSlice extends AbilitySlice { * * @param slideFragment Fragment to add */ - public void addSlide(SlideView slideFragment) { + public void addSlide(SlideComponet slideFragment) { adapter.addItem(slideFragment); } @@ -291,7 +291,7 @@ public class MaterialIntroSlice extends AbilitySlice { * @param slideFragment Fragment to add * @param messageButtonBehaviour Add behaviour for message button */ - public void addSlide(SlideView slideFragment, MessageButtonBehaviour messageButtonBehaviour) { + public void addSlide(SlideComponet slideFragment, MessageButtonBehaviour messageButtonBehaviour) { adapter.addItem(slideFragment); messageButtonBehaviours.put(adapter.getLastItemPosition(), messageButtonBehaviour); @@ -376,8 +376,8 @@ public class MaterialIntroSlice extends AbilitySlice { } } - private void nextButtonBehaviour(final int position, final SlideView slideView) { - boolean hasPermissionToGrant = slideView.hasNeededPermissionsToGrant(); + private void nextButtonBehaviour(final int position, final SlideComponet slideComponet) { + boolean hasPermissionToGrant = slideComponet.hasNeededPermissionsToGrant(); if (hasPermissionToGrant) { nextButton.setImageElement(new VectorElement(getContext(), ResourceTable.Graphic_ic_next)); @@ -390,19 +390,19 @@ public class MaterialIntroSlice extends AbilitySlice { nextButton.setImageElement(new VectorElement(this, ResourceTable.Graphic_ic_next)); nextButton.setClickedListener(view -> { - doNextButtonClick(slideView); + doNextButtonClick(slideComponet); }); } } - private void doNextButtonClick(final SlideView slideView) { - if (slideView.canMoveFurther() == false) { + private void doNextButtonClick(final SlideComponet slideComponet) { + if (slideComponet.canMoveFurther() == false) { if (System.currentTimeMillis() - nextClickTime <= SNACKBAR_DURATION || (snackBar != null && snackBar.isShow())) { return; } nextClickTime = System.currentTimeMillis(); - errorOccurred(slideView); + errorOccurred(slideComponet); } else { viewPager.moveToNextPage(); } @@ -419,7 +419,7 @@ public class MaterialIntroSlice extends AbilitySlice { return; } clickTime = System.currentTimeMillis(); - SlideView slideFragment = + SlideComponet slideFragment = adapter.getItem(adapter.getLastItemPosition()); if (!slideFragment.canMoveFurther()) { errorOccurred(slideFragment); @@ -445,7 +445,7 @@ public class MaterialIntroSlice extends AbilitySlice { return ElementUtil.getColor(getContext(), color); } - private void errorOccurred(SlideView slideFragment) { + private void errorOccurred(SlideComponet slideFragment) { nextButtonTranslationWrapper.error(); showError(slideFragment.cantMoveFurtherErrorMessage()); } @@ -543,7 +543,7 @@ public class MaterialIntroSlice extends AbilitySlice { subscriber = new MyCommonEventSubscriber(subscribeInfo); CommonEventManager.subscribeCommonEvent(subscriber); } catch (RemoteException e) { - LogUtil.error("SlideView", e.toString()); + LogUtil.error("SlideComponet", e.toString()); } } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/BottomSnackBar.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/BottomSnackBar.java index 69b1c6c..8cd8525 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/BottomSnackBar.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/BottomSnackBar.java @@ -54,6 +54,7 @@ public class BottomSnackBar extends DirectionalLayout { private ComponentContainer mRootView; // 当前显示BottomSnackBar页面的最顶层控件 private EventHandler handler; private boolean isShow = false; + private int defaultTransY = DEFAULT_TRANS_Y; private BottomSnackBar(Context context, @NotNull Builder builder) { super(context); @@ -118,9 +119,9 @@ public class BottomSnackBar extends DirectionalLayout { if (DisplayManager.getInstance().getDefaultDisplay(mContext.get()).get().getAttributes() == null) { return; } - DEFAULT_TRANS_Y = DisplayManager.getInstance().getDefaultDisplay(mContext.get()).get().getAttributes().height; - if (DEFAULT_TRANS_Y < 0) { - DEFAULT_TRANS_Y = 0; + defaultTransY = DisplayManager.getInstance().getDefaultDisplay(mContext.get()).get().getAttributes().height; + if (defaultTransY < 0) { + defaultTransY = 0; } } @@ -150,8 +151,8 @@ public class BottomSnackBar extends DirectionalLayout { (ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_CONTENT); mRootView.addComponent(this, config1); - DEFAULT_TRANS_Y = mRootView.getHeight() > 0 ? mRootView.getHeight() : DEFAULT_TRANS_Y; - this.setTranslationY(DEFAULT_TRANS_Y); + defaultTransY = mRootView.getHeight() > 0 ? mRootView.getHeight() : DEFAULT_TRANS_Y; + this.setTranslationY(defaultTransY); beginAnimation(clickView); } @@ -162,7 +163,7 @@ public class BottomSnackBar extends DirectionalLayout { property.setValueUpdateListener((animatorValue, value) -> { float v1 = Math.abs(value / BOTTOM_SNACKBAR_HEIGHT); BottomSnackBar.this.setAlpha(v1); - float v2 = DEFAULT_TRANS_Y + value; + float v2 = defaultTransY + value; BottomSnackBar.this.setTranslationY((int) v2); clickView.setTranslationY((int) value); }); @@ -197,7 +198,7 @@ public class BottomSnackBar extends DirectionalLayout { propertyReverse.setValueUpdateListener((animatorValue, value) -> { float v1 = 1 - Math.abs(value / BOTTOM_SNACKBAR_HEIGHT); BottomSnackBar.this.setAlpha(v1); - float v2 = DEFAULT_TRANS_Y + value; + float v2 = defaultTransY + value; BottomSnackBar.this.setTranslationY((int) v2); clickView.setTranslationY((int) value); }); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java index e7a0593..b7d1b0a 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java @@ -88,10 +88,6 @@ public class InkPageIndicator extends Component implements PageSlider.PageChange private PendingRevealAnimator[] revealAnimations; private SwipeableViewPager viewPager; - public InkPageIndicator(Context context) { - this(context, null, 0); - } - public InkPageIndicator(Context context, AttrSet attrs) { this(context, attrs, 0); } @@ -433,7 +429,7 @@ public class InkPageIndicator extends Component implements PageSlider.PageChange * @return 未选中小圆点路径 */ private Path getUnselectedPath(int page, float centerX, float nextCenterX, - float joiningFraction, float dotRevealFraction) { + float joiningFraction, float dotRevealFraction) { unselectedDotPath.rewind(); if (isDotNotJoining(page, joiningFraction, dotRevealFraction)) { unselectedDotPath.addCircle(dotCenterX[page], dotCenterY, @@ -766,7 +762,7 @@ public class InkPageIndicator extends Component implements PageSlider.PageChange // they're hidden while the // reveal animation runs final int[] dotsToHide = new int[steps]; - if (initialX1 != finalX1) { + if (Float.compare(initialX1, finalX1) != 0) { setFloatValues(initialX1, finalX1); for (int i = 0; i < steps; i++) { revealAnimations[i] = new PendingRevealAnimator(was + i, diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/SwipeableViewPager.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/SwipeableViewPager.java index 02ebe68..f1fe1e2 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/SwipeableViewPager.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/SwipeableViewPager.java @@ -164,7 +164,7 @@ public class SwipeableViewPager extends PageSlider implements Component.DraggedL case (TouchEvent.PRIMARY_POINT_UP): float moveUpX = startPos - event.getPointerScreenPosition(0).getX(); float moveUpY = startPosY - event.getPointerScreenPosition(0).getY(); - if (getAdapter() != null && listener != null && moveUpX > 0 && getAdapter().isLastSlide(currentIt)) { + if (checkLastSlide(moveUpX)) { listener.onTouchUp(component, event); return false; } @@ -184,6 +184,10 @@ public class SwipeableViewPager extends PageSlider implements Component.DraggedL return false; } + private boolean checkLastSlide(float moveUpX) { + return getAdapter() != null && listener != null && moveUpX > 0 && getAdapter().isLastSlide(currentIt); + } + public void doTouchDown(Component component, TouchEvent event) { startPos = event.getPointerScreenPosition(0).getX(); diff --git a/material-intro-screen/src/main/resources/base/layout/fragment_slide.xml b/material-intro-screen/src/main/resources/base/layout/fragment_slide.xml index 32982a0..acdc1b0 100644 --- a/material-intro-screen/src/main/resources/base/layout/fragment_slide.xml +++ b/material-intro-screen/src/main/resources/base/layout/fragment_slide.xml @@ -1,5 +1,5 @@ - - + -- Gitee