Prechádzať zdrojové kódy

Signed-off-by: zh_jx <zh_jx@DESKTOP-2MR1PK6>

zh_jx 3 rokov pred
rodič
commit
1c6aa5c46b

BIN
app/myjks.jks


BIN
app/release/HNPassWord.apk


+ 23 - 1
app/src/main/java/com/example/hnpassword/MainActivity.java

@@ -5,6 +5,8 @@ import androidx.appcompat.app.AppCompatActivity;
 import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.content.Context;
+import android.icu.text.SimpleDateFormat;
+import android.net.ParseException;
 import android.os.Bundle;
 import android.provider.ContactsContract;
 import android.text.Editable;
@@ -57,8 +59,9 @@ public class MainActivity extends AppCompatActivity {
 
             @Override
             public void afterTextChanged(Editable editable) {
+                String text = text_date.getText().toString();
 
-                if(text_date.getText().length() == 8)
+                if(isValidDate(text))
                 {
                     String szDate = "AQTpDPZ2+"+text_date.getText();
                     text_pw.setText(stringToMD5(szDate).substring(26,32));
@@ -75,6 +78,25 @@ public class MainActivity extends AppCompatActivity {
         btn_reset.callOnClick();
     }
 
+
+    public boolean isValidDate(String str) {
+        if(str.length() != 8) return false;
+
+
+        boolean convertSuccess = true;
+        //指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        try {
+            //设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
+            format.setLenient(false);
+            format.parse(str);
+        } catch (ParseException | java.text.ParseException e) {
+            convertSuccess=false;
+        }
+        return convertSuccess;
+    }
+
+
     public String stringToMD5(String plainText) {
         byte[] secretBytes = null;
         try {

+ 2 - 2
app/src/main/res/values/themes.xml

@@ -1,8 +1,8 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
-    <style name="Theme.HNPassWord" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
+    <style name="Theme.HNPassWord" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
         <!-- Primary brand color. -->
-        <item name="colorPrimary">@color/purple_500</item>
+        <item name="colorPrimary">#ff6347</item>
         <item name="colorPrimaryVariant">@color/purple_700</item>
         <item name="colorOnPrimary">@color/white</item>
         <!-- Secondary brand color. -->