diff --git a/entry/src/main/java/com/jungly/gridpasswordview/MainAbility.java b/entry/src/main/java/com/jungly/gridpasswordview/MainAbility.java index c349b392aba4551a16414d2008b52b73979c2ec5..33eaa27e36aba2a9362e085594effdc0632ec662 100644 --- a/entry/src/main/java/com/jungly/gridpasswordview/MainAbility.java +++ b/entry/src/main/java/com/jungly/gridpasswordview/MainAbility.java @@ -1,6 +1,7 @@ package com.jungly.gridpasswordview; import com.jungly.gridpasswordview.slice.MainAbilitySlice; + import ohos.aafwk.ability.Ability; import ohos.aafwk.content.Intent; diff --git a/entry/src/main/java/com/jungly/gridpasswordview/ToolbarAdapter.java b/entry/src/main/java/com/jungly/gridpasswordview/ToolbarAdapter.java index 0cc9e2a9c9515fd35dd0cf72ad12b85a64313d77..f869b09dfff8d5f5b7f43aa216ff8ca00e1120b4 100644 --- a/entry/src/main/java/com/jungly/gridpasswordview/ToolbarAdapter.java +++ b/entry/src/main/java/com/jungly/gridpasswordview/ToolbarAdapter.java @@ -4,7 +4,7 @@ * 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 + * 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, @@ -24,6 +24,12 @@ public class ToolbarAdapter extends BaseItemProvider { private List mColorList; private Context context; + /** + * constructor + * + * @param context + * @param list + */ public ToolbarAdapter(Context context, List list) { this.mColorList = list; this.context = context; diff --git a/entry/src/main/java/com/jungly/gridpasswordview/slice/MainAbilitySlice.java b/entry/src/main/java/com/jungly/gridpasswordview/slice/MainAbilitySlice.java index 1044a8fd03de847c16f1978b60d186f1ba9b4572..fd1822549770d66bc58a04c5813569ce7bcde05c 100644 --- a/entry/src/main/java/com/jungly/gridpasswordview/slice/MainAbilitySlice.java +++ b/entry/src/main/java/com/jungly/gridpasswordview/slice/MainAbilitySlice.java @@ -11,12 +11,10 @@ import ohos.agp.colors.RgbColor; import ohos.agp.components.*; import ohos.agp.components.element.ShapeElement; import ohos.agp.components.element.StateElement; -import ohos.agp.utils.Color; import ohos.agp.window.dialog.*; import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; -import java.time.format.TextStyle; import java.util.ArrayList; import java.util.List; @@ -29,7 +27,6 @@ public class MainAbilitySlice extends AbilitySlice { private GridPasswordView mGridPasswordView8; private Text mText; private Text mTextStyle; - private boolean isChangePSW = true; private boolean isFirst = true; private String firstPwd; private boolean password_type_number = true; @@ -51,8 +48,7 @@ public class MainAbilitySlice extends AbilitySlice { mText = (Text) findComponentById(ResourceTable.Id_change_psw); mTextStyle = (Text) findComponentById(ResourceTable.Id_change_psw_style); - mGridPasswordView8.setOnPasswordChangedListener( - new GridPasswordView.OnPasswordChangedListener() { + mGridPasswordView8.setOnPasswordChangedListener(new GridPasswordView.OnPasswordChangedListener() { @Override public void onTextChanged(String psw) { if (psw.length() == mGridPasswordView8.DEFAULT_PASSWORD_LENGTH && isFirst) { @@ -127,16 +123,19 @@ public class MainAbilitySlice extends AbilitySlice { elementThumbOn.setShape(ShapeElement.OVAL); elementThumbOn.setRgbColor(RgbColor.fromArgbInt(0xFF4aac4e)); elementThumbOn.setCornerRadius(SWITCH_CORNER_RADIUS); + // 关闭状态下滑块的样式 ShapeElement elementThumbOff = new ShapeElement(); elementThumbOff.setShape(ShapeElement.OVAL); elementThumbOff.setRgbColor(RgbColor.fromArgbInt(0xFFFFFFFF)); elementThumbOff.setCornerRadius(SWITCH_CORNER_RADIUS); + // 开启状态下轨迹样式 ShapeElement elementTrackOn = new ShapeElement(); elementTrackOn.setShape(ShapeElement.RECTANGLE); elementTrackOn.setRgbColor(RgbColor.fromArgbInt(0xffcde6ce)); elementTrackOn.setCornerRadius(SWITCH_CORNER_RADIUS); + // 关闭状态下轨迹样式 ShapeElement elementTrackOff = new ShapeElement(); elementTrackOff.setShape(ShapeElement.RECTANGLE); @@ -156,11 +155,11 @@ public class MainAbilitySlice extends AbilitySlice { mPopupWindow = null; } mText.setText(getPassTypeData().get(position)); - if (mText.getText().equals("pattern_number")) { + if ("pattern_number".equals(mText.getText())) { mGridPasswordView3.setPasswordType(PasswordType.NUMBER); - } else if (mText.getText().equals("pattern_password")) { + } else if ("pattern_password".equals(mText.getText())) { mGridPasswordView3.setPasswordType(PasswordType.PASSWORD); - } else if (mText.getText().equals("pattern_text")) { + } else if ("pattern_text".equals(mText.getText())) { mGridPasswordView3.setPasswordType(PasswordType.TEXT); } }); @@ -188,14 +187,4 @@ public class MainAbilitySlice extends AbilitySlice { menuList.add("pattern_text"); return menuList; } - - @Override - public void onActive() { - super.onActive(); - } - - @Override - public void onForeground(Intent intent) { - super.onForeground(intent); - } } diff --git a/library/src/main/java/com/jungly/gridpasswordview/CustomPasswordTransformationMethod.java b/library/src/main/java/com/jungly/gridpasswordview/CustomPasswordTransformationMethod.java index a95c0380bcb4ae9b7d04a3bbc0b0875241436f1c..904b4b0c099c4e74a78335a70e0ac98161208eba 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/CustomPasswordTransformationMethod.java +++ b/library/src/main/java/com/jungly/gridpasswordview/CustomPasswordTransformationMethod.java @@ -6,10 +6,14 @@ package com.jungly.gridpasswordview; * @author Jungly * mail: jungly.ik@gmail.com */ - public class CustomPasswordTransformationMethod { private final String transformation; + /** + * constructor + * + * @param transformation + */ public CustomPasswordTransformationMethod(String transformation) { this.transformation = transformation; } @@ -17,6 +21,11 @@ public class CustomPasswordTransformationMethod { private class PasswordCharSequence implements CharSequence { private final CharSequence mSource; + /** + * constructor + * + * @param source + */ public PasswordCharSequence(CharSequence source) { mSource = source; } diff --git a/library/src/main/java/com/jungly/gridpasswordview/GridPasswordView.java b/library/src/main/java/com/jungly/gridpasswordview/GridPasswordView.java index 307c39104cb3070d6beace5bcbe0fb308908c26a..231bd6bd5e8c35b0a36d0bc56c5673a6f2c95314 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/GridPasswordView.java +++ b/library/src/main/java/com/jungly/gridpasswordview/GridPasswordView.java @@ -11,7 +11,6 @@ import ohos.agp.utils.TextAlignment; import ohos.agp.window.service.Display; import ohos.agp.window.service.DisplayManager; import ohos.app.Context; - import ohos.multimodalinput.event.KeyEvent; /** @@ -22,6 +21,9 @@ import ohos.multimodalinput.event.KeyEvent; * 15/3/5 21:30 */ public class GridPasswordView extends DirectionalLayout implements PasswordView, Component.DrawTask { + /** + * DEFAULT_PASSWORD_LENGTH + */ public static final int DEFAULT_PASSWORD_LENGTH = 6; private static final int DEFAULT_LINE_WIDTH = 5; private static final int DEFAULT_MAX_PASSWORDLENGTH = 8; @@ -49,17 +51,101 @@ public class GridPasswordView extends DirectionalLayout implements PasswordView, private int mScreenWidth; private boolean isFirst = true; private boolean isDelInput = false; + private Component.ClickedListener mOnClickListener = new Component.ClickedListener() { + @Override + public void onClick(Component component) { + forceInputViewGetFocus(); + } + }; + + /** + * TextFiled 的文本输入监听 + */ + Text.TextObserver textWatcher = new ohos.agp.components.Text.TextObserver() { + @Override + public void onTextUpdated(String s, int index, int i1, int i2) { + if (s == null || "".equals(s) || s.length() > mPasswordLength) { + return; + } + for (int i = 0; i < mPasswordArr.length; i++) { + String newNum = s.substring(s.length() - 1); + if (mPasswordArr[i] == null) { + if (isDelInput) { + isDelInput = false; + break; + } + mPasswordArr[i] = newNum; + if (showPassword) { + mViewArr[i].setText(mPasswordTransformation); + } else { + mViewArr[i].setText(newNum); + } + notifyTextChanged(); + break; + } + } + } + }; + Component.KeyEventListener KeyEventListener = new Component.KeyEventListener() { + @Override + public boolean onKeyEvent(Component component, KeyEvent keyEvent) { + if (keyEvent.getKeyCode() == KeyEvent.KEY_SPACE) { + return true; + } + if (keyEvent.isKeyDown() && keyEvent.getKeyCode() == KeyEvent.KEY_DEL) { + for (int i = mPasswordArr.length - 1; i >= 0; i--) { + if (mPasswordArr[i] != null) { + mPasswordArr[i] = null; + + mViewArr[i].setText(null); + notifyTextChanged(); + + isDelInput = true; + if (i == 0) { + isDelInput = false; + for (int j = mViewFiledArr.length - 1; j >= 0; j--) { + mViewFiledArr[j].setText(null); + } + } + break; + } else { + mViewArr[i].setText(null); + } + } + } + return false; + } + }; + + /** + * constructor + * + * @param context + */ public GridPasswordView(Context context) { super(context); init(context, null, ""); } + /** + * constructor + * + * @param context + * @param attrs + */ public GridPasswordView(Context context, AttrSet attrs) { super(context, attrs); init(context, attrs, ""); } + /** + * constructor + * + * @param context + * @param attrs + * @param defStyleAttr + */ public GridPasswordView(Context context, AttrSet attrs, String defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs, defStyleAttr); @@ -174,13 +260,6 @@ public class GridPasswordView extends DirectionalLayout implements PasswordView, view.setTextSize(mTextSize); } - private Component.ClickedListener mOnClickListener = new Component.ClickedListener() { - @Override - public void onClick(Component component) { - forceInputViewGetFocus(); - } - }; - private ShapeElement generateDividerBackgroundColor() { ShapeElement elementLine = new ShapeElement(); elementLine.setRgbColor(RgbColor.fromArgbInt(mOutLineColor.getValue())); @@ -200,84 +279,6 @@ public class GridPasswordView extends DirectionalLayout implements PasswordView, mInputView.requestFocus(); } - private ImeDelBugFixedEditText.OnDelKeyEventListener onDelKeyEventListener = new ImeDelBugFixedEditText.OnDelKeyEventListener() { - @Override - public void onDeleteClick() { - for (int i = mPasswordArr.length - 1; i >= 0; i--) { - if (mPasswordArr[i] != null) { - mPasswordArr[i] = null; - mViewArr[i].setText(null); - notifyTextChanged(); - break; - } else { - mViewArr[i].setText(null); - } - } - } - }; - - /** - * TextFiled 的文本输入监听 - */ - ohos.agp.components.Text.TextObserver textWatcher = new ohos.agp.components.Text.TextObserver() { - @Override - public void onTextUpdated(String s, int index, int i1, int i2) { - String newStr = s.toString(); - if (newStr == null || newStr.equals("") || newStr.length() > mPasswordLength) { - return; - } - - for (int i = 0; i < mPasswordArr.length; i++) { - String newNum = newStr.substring(newStr.length() - 1); - if (mPasswordArr[i] == null) { - if (isDelInput) { - isDelInput = false; - break; - } - mPasswordArr[i] = newNum; - if (showPassword) { - mViewArr[i].setText(mPasswordTransformation); - } else { - mViewArr[i].setText(newNum); - } - notifyTextChanged(); - break; - } - } - } - }; - - Component.KeyEventListener KeyEventListener = new Component.KeyEventListener() { - @Override - public boolean onKeyEvent(Component component, KeyEvent keyEvent) { - if (keyEvent.getKeyCode() == KeyEvent.KEY_SPACE) { - return true; - } - if (keyEvent.isKeyDown() && keyEvent.getKeyCode() == KeyEvent.KEY_DEL) { - for (int i = mPasswordArr.length - 1; i >= 0; i--) { - if (mPasswordArr[i] != null) { - mPasswordArr[i] = null; - - mViewArr[i].setText(null); - notifyTextChanged(); - - isDelInput = true; - if (i == 0) { - isDelInput = false; - for (int j = mViewFiledArr.length - 1; j >= 0; j--) { - mViewFiledArr[j].setText(null); - } - } - break; - } else { - mViewArr[i].setText(null); - } - } - } - return false; - } - }; - /** * 获取密码 * @@ -327,7 +328,7 @@ public class GridPasswordView extends DirectionalLayout implements PasswordView, public void setPassword(String password) { clearPassword(); - if (null == password || password.length() == 0) { + if (password == null || password.length() == 0) { return; } diff --git a/library/src/main/java/com/jungly/gridpasswordview/PasswordType.java b/library/src/main/java/com/jungly/gridpasswordview/PasswordType.java index 2884b79a9ef5f064f3026715d3f790725cd19ae2..c2df4dbd47251c5637e2d0bb95d314f57e4a9fec 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/PasswordType.java +++ b/library/src/main/java/com/jungly/gridpasswordview/PasswordType.java @@ -1,10 +1,15 @@ package com.jungly.gridpasswordview; /** + * PasswordType + * * @author Jungly * jungly.ik@gmail.com * 5/3/21 16:47 */ public enum PasswordType { + /** + * NUMBER, TEXT, TEXTVISIBLE, PATTERN_NULL, PASSWORD + */ NUMBER, TEXT, TEXTVISIBLE, PATTERN_NULL, PASSWORD } \ No newline at end of file diff --git a/library/src/main/java/com/jungly/gridpasswordview/PasswordView.java b/library/src/main/java/com/jungly/gridpasswordview/PasswordView.java index cf110fe3d5b5ac8d3691416c601b0260cd97a191..e2302de8d0ecd51c0fc62e90b380bd4e5b9d22f6 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/PasswordView.java +++ b/library/src/main/java/com/jungly/gridpasswordview/PasswordView.java @@ -1,23 +1,55 @@ package com.jungly.gridpasswordview; /** + * PasswordView + * * @author Jungly * @mail jungly.ik@gmail.com * @date 15/3/21 16:20 */ interface PasswordView { - + /** + * getPassWord + * + * @return String + */ String getPassWord(); + /** + * clearPassword + */ void clearPassword(); + /** + * setPassword + * + * @param password + */ void setPassword(String password); + /** + * setPasswordVisibility + * + * @param visible + */ void setPasswordVisibility(boolean visible); + /** + * togglePasswordVisibility + */ void togglePasswordVisibility(); + /** + * setOnPasswordChangedListener + * + * @param listener + */ void setOnPasswordChangedListener(GridPasswordView.OnPasswordChangedListener listener); + /** + * setPasswordType + * + * @param passwordType + */ void setPasswordType(PasswordType passwordType); } diff --git a/library/src/main/java/com/jungly/gridpasswordview/TypedAttrUtils.java b/library/src/main/java/com/jungly/gridpasswordview/TypedAttrUtils.java index 627631b4f00acb1a30b32ba9d88c254f9a73f7c8..83bb232050368a84f9cae1c73f08460759cae42a 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/TypedAttrUtils.java +++ b/library/src/main/java/com/jungly/gridpasswordview/TypedAttrUtils.java @@ -4,7 +4,7 @@ * 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 + * 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, diff --git a/library/src/main/java/com/jungly/gridpasswordview/Util.java b/library/src/main/java/com/jungly/gridpasswordview/Util.java deleted file mode 100644 index ac509956c48f37ad5d06bd9b1c3adf7229b6da26..0000000000000000000000000000000000000000 --- a/library/src/main/java/com/jungly/gridpasswordview/Util.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.jungly.gridpasswordview; - - -import ohos.app.Context; - -/** - * @author Jungly - * jungly.ik@gmail.com - * 15/3/8 10:07 - */ -public class Util { - public static int px2sp(Context context, float pxValue) { - return 1; - } - - public static int dp2px(Context context, int dp) { - return 1; - } -} diff --git a/library/src/main/java/com/jungly/gridpasswordview/imebugfixer/ImeDelBugFixedEditText.java b/library/src/main/java/com/jungly/gridpasswordview/imebugfixer/ImeDelBugFixedEditText.java index b9a985b6382bdc75b9669a2582fe20e4765f98ea..67af681bd4e679da20d6fd1df125fb3d9e9d05df 100644 --- a/library/src/main/java/com/jungly/gridpasswordview/imebugfixer/ImeDelBugFixedEditText.java +++ b/library/src/main/java/com/jungly/gridpasswordview/imebugfixer/ImeDelBugFixedEditText.java @@ -7,14 +7,32 @@ import ohos.app.Context; public class ImeDelBugFixedEditText extends TextField { private OnDelKeyEventListener delKeyEventListener; + /** + * constructor + * + * @param context + */ public ImeDelBugFixedEditText(Context context) { super(context); } + /** + * constructor + * + * @param context + * @param attrs + */ public ImeDelBugFixedEditText(Context context, AttrSet attrs) { super(context, attrs); } + /** + * constructor + * + * @param context + * @param attrs + * @param defStyle + */ public ImeDelBugFixedEditText(Context context, AttrSet attrs, String defStyle) { super(context, attrs, defStyle); } @@ -24,6 +42,9 @@ public class ImeDelBugFixedEditText extends TextField { } public interface OnDelKeyEventListener { + /** + * onDeleteClick + */ void onDeleteClick(); } } \ No newline at end of file