From 0c7754466f06570ff86d07651a5bf9cea91c5420 Mon Sep 17 00:00:00 2001 From: xuechangfeng <963779172@qq.com> Date: Wed, 30 Jun 2021 10:21:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chipexample/slice/MainAbilitySlice.java | 2 +- .../utils/KeyboardVisibilityEvent.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java b/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java index 8fbf271..bb87656 100644 --- a/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java +++ b/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java @@ -202,7 +202,7 @@ public class MainAbilitySlice extends AbilitySlice implements Component.ClickedL /** * 获取屏幕宽度 * - * @return 屏幕宽度 + * @return getDisplayWidthInPx */ public static int getDisplayWidthInPx(Context context) { Display display = DisplayManager.getInstance().getDefaultDisplay(context).get(); diff --git a/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java b/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java index 1830883..38ce6d6 100644 --- a/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java +++ b/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java @@ -23,6 +23,11 @@ import ohos.agp.utils.Rect; import ohos.agp.window.service.DisplayManager; import ohos.app.Context; +/** + * KeyboardVisibilityEvent + * + * @since 2021-06-22 + */ public class KeyboardVisibilityEvent { private static final double KEYBOARD_MIN_HEIGHT_RATIO = 0.15; private Component mRootView; @@ -40,7 +45,8 @@ public class KeyboardVisibilityEvent { * Set keyboard visibility change event listener. * This automatically remove registered event listener when the Activity is destroyed * - * @param abilitySlice Activity + * @param abilitySlice abilitySlice + * @param listener listener */ public void setEventListener(AbilitySlice abilitySlice, KeyboardVisibilityEventListener listener) { Unregistrar unregistrar = registerEventListener(abilitySlice, listener); @@ -60,11 +66,10 @@ public class KeyboardVisibilityEvent { * Set keyboard visibility change event listener. * This automatically remove registered event listener when the Activity is destroyed * - * @param abilitySlice Activity + * @param abilitySlice abilitySlice + * @param listener listener */ - public Unregistrar registerEventListener( - AbilitySlice abilitySlice, - KeyboardVisibilityEventListener listener) { + public Unregistrar registerEventListener(AbilitySlice abilitySlice, KeyboardVisibilityEventListener listener) { if (abilitySlice == null) { throw new NullPointerException("Parameter:AbilitySlice must not be null"); } -- Gitee From 7870a20598a16eb91d5667dfb9895447ef84a978 Mon Sep 17 00:00:00 2001 From: xuechangfeng <963779172@qq.com> Date: Wed, 30 Jun 2021 14:41:57 +0800 Subject: [PATCH 2/4] Merge remote-tracking branch 'origin/master' # Conflicts: # app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java # app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java --- app/build.gradle | 2 +- .../com/tylersuehr/chipexample/slice/MainAbilitySlice.java | 1 + build.gradle | 2 +- library/build.gradle | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 60e8839..0617c91 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.huawei.ohos.hap' apply plugin: 'com.huawei.ohos.decctest' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java b/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java index 8fbf271..5ebc90f 100644 --- a/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java +++ b/app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java @@ -202,6 +202,7 @@ public class MainAbilitySlice extends AbilitySlice implements Component.ClickedL /** * 获取屏幕宽度 * + * @param context context * @return 屏幕宽度 */ public static int getDisplayWidthInPx(Context context) { diff --git a/build.gradle b/build.gradle index d3c9f1f..a28641c 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 } diff --git a/library/build.gradle b/library/build.gradle index e1c0b27..7e1e475 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { - compatibleSdkVersion 4 + compatibleSdkVersion 5 } buildTypes { release { -- Gitee From d6603fec10b9e5f9ae0c52a21fa5655902ecac7b Mon Sep 17 00:00:00 2001 From: xuechangfeng <963779172@qq.com> Date: Wed, 30 Jun 2021 15:33:57 +0800 Subject: [PATCH 3/4] Merge remote-tracking branch 'origin/master' # Conflicts: # app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java # app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62c8f79..3e268df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,6 @@ ## 0.0.1-SNAPSHOT -ohos第一个版本,完整实现了原库的全部api + +ohos第一个版本 + + * 实现了原库的大部分api + * ohos暂不支持设置最大高度 \ No newline at end of file -- Gitee From 6db617445ef094405c1d8061b36b0d6c0b933059 Mon Sep 17 00:00:00 2001 From: xuechangfeng <963779172@qq.com> Date: Wed, 30 Jun 2021 16:09:27 +0800 Subject: [PATCH 4/4] Merge remote-tracking branch 'origin/master' # Conflicts: # app/src/main/java/com/tylersuehr/chipexample/slice/MainAbilitySlice.java # app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java --- .../utils/KeyboardVisibilityEvent.java | 106 +----------------- 1 file changed, 5 insertions(+), 101 deletions(-) diff --git a/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java b/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java index 1830883..43b19f8 100644 --- a/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java +++ b/app/src/main/java/com/tylersuehr/chipexample/utils/KeyboardVisibilityEvent.java @@ -15,16 +15,15 @@ package com.tylersuehr.chipexample.utils; -import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.ability.LifecycleObserver; import ohos.agp.components.Component; -import ohos.agp.utils.Point; -import ohos.agp.utils.Rect; -import ohos.agp.window.service.DisplayManager; -import ohos.app.Context; +/** + * KeyboardVisibilityEvent + * + * @since 2021-06-22 + */ public class KeyboardVisibilityEvent { - private static final double KEYBOARD_MIN_HEIGHT_RATIO = 0.15; private Component mRootView; private LifecycleObserver mLifecycleObserver = null; private static KeyboardVisibilityEvent keyboardVisibilityEvent; @@ -36,103 +35,8 @@ public class KeyboardVisibilityEvent { return keyboardVisibilityEvent; } - /** - * Set keyboard visibility change event listener. - * This automatically remove registered event listener when the Activity is destroyed - * - * @param abilitySlice Activity - */ - public void setEventListener(AbilitySlice abilitySlice, KeyboardVisibilityEventListener listener) { - Unregistrar unregistrar = registerEventListener(abilitySlice, listener); - //需要生命周期的监听 ILifecycleObserver - mLifecycleObserver = new LifecycleObserver() { - @Override - public void onStop() { - super.onStop(); - abilitySlice.getLifecycle().removeObserver(this); - unregistrar.unregister(mRootView); - } - }; - abilitySlice.getLifecycle().addObserver(mLifecycleObserver); - } - - /** - * Set keyboard visibility change event listener. - * This automatically remove registered event listener when the Activity is destroyed - * - * @param abilitySlice Activity - */ - public Unregistrar registerEventListener( - AbilitySlice abilitySlice, - KeyboardVisibilityEventListener listener) { - if (abilitySlice == null) { - throw new NullPointerException("Parameter:AbilitySlice must not be null"); - } - if (listener == null) { - throw new NullPointerException("Parameter:listener must not be null"); - } - if (mRootView == null) { - throw new NullPointerException("mRootView:listener must not be null"); - } - - Component.LayoutRefreshedListener layoutListener = new Component.LayoutRefreshedListener() { - private boolean isWasOpened = false; - - @Override - public void onRefreshed(Component component) { - boolean isOpen = isKeyboardVisible(abilitySlice); - - if (isOpen != isWasOpened) { - // keyboard state has not changed - - isWasOpened = isOpen; - listener.onVisibilityChanged(isOpen); - } - } - }; - mRootView.setLayoutRefreshedListener(layoutListener); - return new SimpleUnregistrar(abilitySlice, layoutListener); - } - - /** - * Determine if keyboard is visible - * - * @param abilitySlice Activity - * @return Whether keyboard is visible or not - */ - public boolean isKeyboardVisible(AbilitySlice abilitySlice) { - Rect rect = new Rect(); - - mRootView.getSelfVisibleRect(rect); - - int[] location = mRootView.getLocationOnScreen(); - - int screenHeight = (int) getRealHeight(abilitySlice.getContext()); - int heightDiff = screenHeight - rect.getHeight() - location[1]; - - if (location[1] == 0) { - return false; - } else { - return heightDiff > screenHeight * KEYBOARD_MIN_HEIGHT_RATIO; - } - } - //获取根界面进行传入 public void setAbilitySliceRoot(Component RootView) { this.mRootView = RootView; } - - public Component getAbilitySliceRoot() { - if (mRootView == null) { - throw new NullPointerException("mRootView:listener must not be null"); - } else { - return mRootView; - } - } - - public static float getRealHeight(Context context) { - Point point = new Point(); - DisplayManager.getInstance().getDefaultDisplay(context).get().getRealSize(point); - return point.getPointY(); - } } -- Gitee