From 41b16f938b99d93a6bb7b70ac12a9b2532bcd80e 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: Mon, 26 Apr 2021 18:30:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + CHANGELOG.md | 48 ++++- README.md | 16 +- entry/build.gradle | 1 + .../common/stepperview/demo/MainAbility.java | 16 +- .../demo/MaterialRippleLayout.java | 16 +- .../stepperview/demo/MyApplication.java | 16 +- .../common/stepperview/demo/ViewUtils.java | 33 ++- .../demo/slice/MainAbilitySlice.java | 197 ++++++++++-------- .../resources/base/layout/ability_main.xml | 141 +++++++------ .../src/main/resources/base/layout/dialog.xml | 2 +- .../resources/base/layout/step_0_layout.xml | 1 + .../common/stepperview/ElementColorUtil.java | 16 +- .../common/stepperview/TypedAttrUtils.java | 16 +- .../stepperview/VerticalStepperItemView.java | 13 +- .../stepperview/VerticalStepperView.java | 16 +- .../feng/common/stepperview/ViewUtils.java | 32 ++- 17 files changed, 361 insertions(+), 220 deletions(-) diff --git a/.gitignore b/.gitignore index 37a4eb8..d55a146 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ .externalNativeBuild /entry/.preview .cxx +upload.gradle \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 73753e8..7f965d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,48 @@ -Change Log -========== ## Version 0.0.1-SNAPSHOT -* refactor: For module library Android-to-OpenHarmony \ No newline at end of file +* refactor: For module library Android-to-OpenHarmony + +## MaterialStepperView 0.2.5 +* @fython fython released this on 12 Feb 2020 +* Update to AndroidX + +## MaterialStepperView 0.2.4.2 +* @fython fython released this on 22 Mar 2018 + +## MaterialStepperView 0.2.4 +* @fython fython released this on 3 Mar 2018 +* Support Kotlin (Add some nullability annotations & Add kotlin demo) +* Fix instance state cannot restore (Issues #16) +* Fix icon truncated in last step when summary doesn't exist (Issues #12 & #15 ) +* Update Android Support library (only RecyclerView required by library module) to 27.1.0 + +## MaterialStepperView 0.2.3 +* @fython fython released this on 3 Nov 2017 +* Update Android Support libraries to 27.0.0 +* Update Android Gradle Plugin to 3.0.0 (With Gradle 4.3) + +## MaterialStepperView 0.2.2 +* @fython fython released this on 17 Sep 2017 +* Update Android Support Libraries to 26.1.0 +* Use CharSequence instead of String in title / summary / error text. +* New attribute: step_show_summary_always + +## MaterialStepperView 0.2.1 +* @fython fython released this on 17 Aug 2017 +* Fix crashes by unsupported method ObjectAnimator.ofArgb in pre-Lollipop devices. f21bd30 +* New attributes: step_summary_done + +## MaterialStepperView 0.2.0 +* @fython fython released this on 14 Aug 2017 +* Support set error text +* Support Pre-lollipop Android +* Remove AppCompat dependecy +* New attributes step_line_color and step_error_highlight_color + +## MaterialStepperView 0.1.1 +* @fython fython released this on 10 Aug 2017 +* 根据规范修正标题及线条样式 + +## MaterialStepperView 0.1.0 +* @fython fython released this on 10 Aug 2017 diff --git a/README.md b/README.md index 02b0dcc..0df926d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MaterialStepperView -本项目是基于开源项目MaterialStepperView进行OpenHarmony的移植和开发的,可以通过项目标签以及gitHub地址()追踪到原安卓项目版本 +本项目是基于开源项目MaterialStepperView进行OpenHarmony的移植和开发的,可以通过项目标签以及gitHub地址()追踪到原项目版本 #### 项目介绍 - 项目名称:MaterialStepperView @@ -15,8 +15,8 @@ - 基线版本:MaterialStepperView组件Tags 0.2.5 #### 效果演示 - - + + #### 使用说明 - 目前我们只做了竖直样式的 Stepper 组件。未来将会加入更多的样式。 @@ -76,11 +76,11 @@ allprojects { 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 #### 测试用例 -CodeCheck代码测试无异常 -CloudTest代码测试无异常 -火绒安全病毒安全检测通过 -当前版本demo功能与安卓原组件基本无差异 -测试员:李仲 +- CodeCheck代码测试无异常 +- CloudTest代码测试无异常 +- 火绒安全病毒安全检测通过 +- 当前版本demo功能与原组件基本无差异 +- 测试员:李仲 #### 版本迭代 v0.0.1-SNAPSHOT diff --git a/entry/build.gradle b/entry/build.gradle index e84d30a..543500c 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -20,6 +20,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) testImplementation 'junit:junit:4.13' ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.100' + implementation 'io.openharmony.tpc.thirdlib:triangle-view:1.0.1' compile project(":library") } decc { diff --git a/entry/src/main/java/moe/feng/common/stepperview/demo/MainAbility.java b/entry/src/main/java/moe/feng/common/stepperview/demo/MainAbility.java index b57a0fe..d0a4531 100644 --- a/entry/src/main/java/moe/feng/common/stepperview/demo/MainAbility.java +++ b/entry/src/main/java/moe/feng/common/stepperview/demo/MainAbility.java @@ -3,7 +3,21 @@ package moe.feng.common.stepperview.demo; import moe.feng.common.stepperview.demo.slice.MainAbilitySlice; import ohos.aafwk.ability.Ability; import ohos.aafwk.content.Intent; - +/* + * Copyright (C) 2021 The Chinese Software International 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 MainAbility extends Ability { @Override public void onStart(Intent intent) { diff --git a/entry/src/main/java/moe/feng/common/stepperview/demo/MaterialRippleLayout.java b/entry/src/main/java/moe/feng/common/stepperview/demo/MaterialRippleLayout.java index f9dadb1..fe5dda3 100644 --- a/entry/src/main/java/moe/feng/common/stepperview/demo/MaterialRippleLayout.java +++ b/entry/src/main/java/moe/feng/common/stepperview/demo/MaterialRippleLayout.java @@ -24,7 +24,21 @@ import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; import ohos.multimodalinput.event.MmiPoint; import ohos.multimodalinput.event.TouchEvent; - +/* + * Copyright (C) 2021 The Chinese Software International 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 MaterialRippleLayout extends StackLayout implements Component.TouchEventListener, Component.DrawTask, Component.ClickedListener { private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MaterialRippleLayout"); diff --git a/entry/src/main/java/moe/feng/common/stepperview/demo/MyApplication.java b/entry/src/main/java/moe/feng/common/stepperview/demo/MyApplication.java index 93e8117..ef7fcb7 100644 --- a/entry/src/main/java/moe/feng/common/stepperview/demo/MyApplication.java +++ b/entry/src/main/java/moe/feng/common/stepperview/demo/MyApplication.java @@ -1,7 +1,21 @@ package moe.feng.common.stepperview.demo; import ohos.aafwk.ability.AbilityPackage; - +/* + * Copyright (C) 2021 The Chinese Software International 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 MyApplication extends AbilityPackage { @Override public void onInitialize() { diff --git a/entry/src/main/java/moe/feng/common/stepperview/demo/ViewUtils.java b/entry/src/main/java/moe/feng/common/stepperview/demo/ViewUtils.java index eaaf071..ff994be 100644 --- a/entry/src/main/java/moe/feng/common/stepperview/demo/ViewUtils.java +++ b/entry/src/main/java/moe/feng/common/stepperview/demo/ViewUtils.java @@ -7,7 +7,21 @@ import ohos.agp.components.Component; import ohos.agp.components.Text; import ohos.agp.components.element.ShapeElement; import ohos.agp.utils.Color; - +/* + * Copyright (C) 2021 The Chinese Software International 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 ViewUtils { /** @@ -30,14 +44,6 @@ public class ViewUtils { return RgbColor.fromArgbInt(color); } - /** - * Get color attribute from current theme - * - * @param - * @param - * @return Result - */ - public static AnimatorValue createArgbAnimator(Component view, String propertyName, int startColor, int endColor) { AnimatorValue animation = new AnimatorValue(); @@ -162,15 +168,6 @@ public class ViewUtils { return animation; } - - /** - * Get color attribute from current theme - * - * @param - * @param - * @return Result - */ - public static AnimatorValue createShowAnimator(Component showview, int startColor,String propertyName, Component hideview) { AnimatorValue animation = new AnimatorValue(); diff --git a/entry/src/main/java/moe/feng/common/stepperview/demo/slice/MainAbilitySlice.java b/entry/src/main/java/moe/feng/common/stepperview/demo/slice/MainAbilitySlice.java index dd3f4de..8064c1e 100644 --- a/entry/src/main/java/moe/feng/common/stepperview/demo/slice/MainAbilitySlice.java +++ b/entry/src/main/java/moe/feng/common/stepperview/demo/slice/MainAbilitySlice.java @@ -1,5 +1,4 @@ package moe.feng.common.stepperview.demo.slice; - import moe.feng.common.stepperview.IStepperAdapter; import moe.feng.common.stepperview.VerticalStepperItemView; import moe.feng.common.stepperview.VerticalStepperView; @@ -17,12 +16,25 @@ import ohos.agp.utils.Color; import ohos.agp.utils.LayoutAlignment; import ohos.agp.utils.TextAlignment; import ohos.agp.window.dialog.CommonDialog; -import ohos.agp.window.dialog.DisplayDialog; import ohos.agp.window.dialog.ToastDialog; import ohos.app.Context; import ohos.utils.IntentConstants; import ohos.utils.net.Uri; - +/* + * Copyright (C) 2021 The Chinese Software International 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 MainAbilitySlice extends AbilitySlice implements IStepperAdapter { private VerticalStepperView mVerticalStepperView; private DirectionalLayout itemlayout; @@ -49,7 +61,7 @@ public class MainAbilitySlice extends AbilitySlice implements IStepperAdapter { initLeft(); initCommont(); mVerticalStepperView = (VerticalStepperView) findComponentById(ResourceTable.Id_vertical_stepper_view); - mVerticalStepperView.setStepperAdapter(this); + mVerticalStepperView.setStepperAdapter(this,MainAbilitySlice.this); } @@ -247,97 +259,108 @@ public class MainAbilitySlice extends AbilitySlice implements IStepperAdapter { Component inflateView0 = LayoutScatter.getInstance(this).parse(ResourceTable.Layout_step_0_layout, null, false); Component inflateView1 = LayoutScatter.getInstance(this).parse(ResourceTable.Layout_step_1_layout, null, false); Component inflateView2 = LayoutScatter.getInstance(this).parse(ResourceTable.Layout_step_2_layout, null, false); - mSteppers[0].addCustomViewComponet(inflateView0); - mSteppers[1].addCustomViewComponet(inflateView1); - mSteppers[2].addCustomViewComponet(inflateView2); - VerticalStepperItemView.bindSteppers(mSteppers); - mNextBtn0 = (Button) inflateView0.findComponentById(ResourceTable.Id_button_next_0); - startAnimator(this, mNextBtn0, "#007DFF"); - mNextBtn0.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - mSteppers[0].nextStep(); - } - }); + if(null!=mSteppers[0]&&null!=mSteppers[1]&&null!=mSteppers[2]&&null!=inflateView0&&null!=inflateView1&&null!=inflateView2) { + mSteppers[0].addCustomViewComponet(inflateView0); + mSteppers[1].addCustomViewComponet(inflateView1); + mSteppers[2].addCustomViewComponet(inflateView2); + VerticalStepperItemView.bindSteppers(mSteppers); + mNextBtn0 = (Button) inflateView0.findComponentById(ResourceTable.Id_button_next_0); + startAnimator(this, mNextBtn0, "#007DFF"); + mNextBtn0.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + mSteppers[0].nextStep(); + } + }); + + Button mErrorButton = (Button) inflateView1.findComponentById(ResourceTable.Id_button_test_error); + startAnimator(this, mErrorButton, "#F44336"); + mErrorButton.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + if (mSteppers[0].getErrorText() != null) { + mSteppers[0].setErrorText(0, null); + } else { + mSteppers[0].setErrorText("Test error!"); + } + } + }); - Button mErrorButton = (Button) inflateView1.findComponentById(ResourceTable.Id_button_test_error); - startAnimator(this, mErrorButton, "#F44336"); - mErrorButton.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - if (mSteppers[0].getErrorText() != null) { - mSteppers[0].setErrorText(0, null); - } else { - mSteppers[0].setErrorText("Test error!"); + Button mPrevBtn0 = (Button) inflateView0.findComponentById(ResourceTable.Id_button_pre_0); + startAnimator(this, mPrevBtn0, "#ECECEC"); + mPrevBtn0.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { } - } - }); - mPrevBtn1 = (Button) inflateView1.findComponentById(ResourceTable.Id_button_prev_1); - startAnimator(this, mPrevBtn1, "#ECECEC"); - mPrevBtn1.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - mSteppers[1].prevStep(); - } - }); - mNextBtn1 = (Button) inflateView1.findComponentById(ResourceTable.Id_button_next_1); - startAnimator(this, mNextBtn1, "#007DFF"); - mNextBtn1.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - mSteppers[1].nextStep(); - } - }); - mPrevBtn2 = (Button) inflateView2.findComponentById(ResourceTable.Id_button_prev_2); - startAnimator(this, mPrevBtn2, "#ECECEC"); - mPrevBtn2.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - mSteppers[2].prevStep(); - } - }); - mNextBtn2 = (Button) inflateView2.findComponentById(ResourceTable.Id_button_next_2); - startAnimator(this, mNextBtn2, "#007DFF"); - mNextBtn2.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - toast(MainAbilitySlice.this, "Finish!"); - } - }); - Button chahge = (Button) findComponentById(ResourceTable.Id_btn_change_point_color); - startAnimator(this, chahge, "#ECECEC"); - chahge.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - if (mActivatedColorRes.equals("#2196F3")) { - mActivatedColorRes = "#673AB7"; - } else { - mActivatedColorRes = "#2196F3"; + }); + + mPrevBtn1 = (Button) inflateView1.findComponentById(ResourceTable.Id_button_prev_1); + startAnimator(this, mPrevBtn1, "#ECECEC"); + mPrevBtn1.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + mSteppers[1].prevStep(); } - for (VerticalStepperItemView stepper : mSteppers) { - stepper.setActivatedColor(Color.getIntColor(mActivatedColorRes)); + }); + mNextBtn1 = (Button) inflateView1.findComponentById(ResourceTable.Id_button_next_1); + startAnimator(this, mNextBtn1, "#007DFF"); + mNextBtn1.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + mSteppers[1].nextStep(); } - } - }); - Button chahge1 = (Button) findComponentById(ResourceTable.Id_btn_change_done_icon); - startAnimator(this, chahge1, "#ECECEC"); - chahge1.setClickedListener(new Component.ClickedListener() { - @Override - public void onClick(Component view) { - if (mDoneIconRes == ResourceTable.Graphic_ic_done_white_16dp) { - mDoneIconRes = ResourceTable.Graphic_ic_save_white_16dp; - } else { - if (mDoneIconRes == 0) { - mDoneIconRes = ResourceTable.Graphic_ic_save_white_16dp; + }); + mPrevBtn2 = (Button) inflateView2.findComponentById(ResourceTable.Id_button_prev_2); + startAnimator(this, mPrevBtn2, "#ECECEC"); + mPrevBtn2.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + mSteppers[2].prevStep(); + } + }); + mNextBtn2 = (Button) inflateView2.findComponentById(ResourceTable.Id_button_next_2); + startAnimator(this, mNextBtn2, "#007DFF"); + mNextBtn2.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + toast(MainAbilitySlice.this, "Finish!"); + } + }); + Button chahge = (Button) findComponentById(ResourceTable.Id_btn_change_point_color); + startAnimator(this, chahge, "#ECECEC"); + chahge.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + if (mActivatedColorRes.equals("#2196F3")) { + mActivatedColorRes = "#673AB7"; } else { - mDoneIconRes = ResourceTable.Graphic_ic_done_white_16dp; + mActivatedColorRes = "#2196F3"; + } + for (VerticalStepperItemView stepper : mSteppers) { + stepper.setActivatedColor(Color.getIntColor(mActivatedColorRes)); } } - for (VerticalStepperItemView stepper : mSteppers) { - stepper.setDoneIconResource(mDoneIconRes); + }); + Button chahge1 = (Button) findComponentById(ResourceTable.Id_btn_change_done_icon); + startAnimator(this, chahge1, "#ECECEC"); + chahge1.setClickedListener(new Component.ClickedListener() { + @Override + public void onClick(Component view) { + if (mDoneIconRes == ResourceTable.Graphic_ic_done_white_16dp) { + mDoneIconRes = ResourceTable.Graphic_ic_save_white_16dp; + } else { + if (mDoneIconRes == 0) { + mDoneIconRes = ResourceTable.Graphic_ic_save_white_16dp; + } else { + mDoneIconRes = ResourceTable.Graphic_ic_done_white_16dp; + } + } + for (VerticalStepperItemView stepper : mSteppers) { + stepper.setDoneIconResource(mDoneIconRes); + } } - } - }); + }); + } } @Override diff --git a/entry/src/main/resources/base/layout/ability_main.xml b/entry/src/main/resources/base/layout/ability_main.xml index 411e22f..c2c4c6a 100644 --- a/entry/src/main/resources/base/layout/ability_main.xml +++ b/entry/src/main/resources/base/layout/ability_main.xml @@ -48,76 +48,80 @@ ohos:width="match_parent" ohos:orientation="vertical"> - - - - - + ohos:width="match_parent"> - - - - - - - - - - -