diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileUtils.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileUtils.java
index efc67cf..b6364c0 100644
--- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileUtils.java
+++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileUtils.java
@@ -53,7 +53,7 @@ public class FileUtils {
Message msg = new Message();
if (!zipFile.isValidZipFile()){
data.putString("error","压缩包已损坏");
- msg.what = FileHandler.ERROR;
+ msg.what = FileHandler.FUNCTION_ERROR;
msg.setData(data);
handler.sendMessage(msg);
}
diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/QueryPWDDialogFragment.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/QueryPWDDialogFragment.java
new file mode 100644
index 0000000..2b2782d
--- /dev/null
+++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/QueryPWDDialogFragment.java
@@ -0,0 +1,113 @@
+package com.thankvinci.CloudKey.Fragment;
+
+import android.annotation.SuppressLint;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
+
+import com.thankvinci.CloudKey.Files.FileUtils;
+import com.thankvinci.CloudKey.NetUtils.NetCheck;
+import com.thankvinci.CloudKey.NetUtils.NetHandler;
+import com.thankvinci.CloudKey.NetUtils.NetThread;
+import com.thankvinci.CloudKey.R;
+import com.thankvinci.CloudKey.Utils.MyUtils;
+
+public class QueryPWDDialogFragment extends DialogFragment {
+
+ private Fragment fragment;
+
+ private TextView copy2clip,getPWD,clear;
+ private EditText md5_edit,pwd_edit;
+ private ProgressBar progressBar;
+
+ private AlertDialog alertDialog;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return super.onCreateView(inflater, container, savedInstanceState);
+
+ }
+ public AlertDialog onCreateDialog(Bundle savedInstanceState){
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ LayoutInflater inflater = requireActivity().getLayoutInflater();
+ View view = inflater.inflate(R.layout.query_pwd_dialog,null);
+ copy2clip = view.findViewById(R.id.copytoclip);
+ getPWD = view.findViewById(R.id.getPWD);
+ copy2clip.setClickable(false);
+ clear = view.findViewById(R.id.clear);
+
+
+ md5_edit = view.findViewById(R.id.md5_edit);
+ pwd_edit = view.findViewById(R.id.pwd_edit);
+
+ progressBar = view.findViewById(R.id.progress_bar);
+ progressBar.setVisibility(View.INVISIBLE);
+
+ builder.setView(view).setTitle("查询密码").setNegativeButton("取消",null);
+ alertDialog = builder.create();
+ return alertDialog;
+ }
+ @Override
+ public void onStart(){
+ super.onStart();
+ alertDialog.setCanceledOnTouchOutside(false);
+ fragment = this;
+ copy2clip.setOnClickListener(new View.OnClickListener() {
+ @RequiresApi(api = Build.VERSION_CODES.O)
+ @Override
+ public void onClick(View v) {
+ if (copy2clip.getFocusable() == TextView.FOCUSABLE){
+ MyUtils.copyToClipboard(getActivity(),pwd_edit.getText().toString());
+ Toast.makeText(v.getContext(),"已复制到剪贴板",Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+ clear.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ pwd_edit.setText("");
+ md5_edit.setText("");
+ }
+ });
+ getPWD.setOnClickListener(new View.OnClickListener() {
+ @RequiresApi(api = Build.VERSION_CODES.M)
+ @Override
+ public void onClick(View v) {
+ String md5 = md5_edit.getText().toString();
+ if(md5.length() != 32){
+ Toast.makeText(v.getContext(),"MD5码不合法",Toast.LENGTH_SHORT).show();
+ return ;
+ }
+ if("无网络".equals(NetCheck.getNetStatus(v.getContext()))){
+ Toast.makeText(getActivity(),"获取失败,当前网络不畅通"+NetCheck.getNetStatus(v.getContext()),Toast.LENGTH_SHORT).show();
+ return ;
+ }
+ StringBuilder builder = new StringBuilder();
+ builder.append("http://1.14.144.194:8080/cscp/cscp?para0=query¶1=");
+ builder.append(md5);
+ String url = builder.toString();
+ Handler handler = new NetHandler(getActivity(),fragment);
+ Thread nt = new Thread(new NetThread(handler,url));
+ nt.start();
+ }
+ });
+ }
+ public void setPwd(String pwd){
+ pwd_edit.setText(pwd);
+ pwd_edit.setFocusable(false);
+ copy2clip.setClickable(true);
+ copy2clip.setFocusable(true);
+ }
+}
diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetHandler.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetHandler.java
index 84594b2..d9d1919 100644
--- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetHandler.java
+++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetHandler.java
@@ -7,11 +7,14 @@ import android.widget.Toast;
import androidx.fragment.app.Fragment;
+import com.thankvinci.CloudKey.Fragment.QueryPWDDialogFragment;
import com.thankvinci.CloudKey.Fragment.UnzipDialogFragment;
import com.thankvinci.CloudKey.MainActivity;
public class NetHandler extends Handler {
+ public final static int FUNCTION_GET_MD5 = 0;
+ public final static int FUNCTION_ERROR = -1;
private Activity activity;
private Fragment fragment;
public NetHandler(Activity activity,Fragment fragment){
@@ -22,14 +25,18 @@ public class NetHandler extends Handler {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
- case 0:
+ case FUNCTION_GET_MD5:
if (fragment instanceof UnzipDialogFragment){
((UnzipDialogFragment)fragment).setPasswd(msg.getData().getString("key"));
((UnzipDialogFragment)fragment).setFromSQL(true);
Toast.makeText(activity,"获取成功",Toast.LENGTH_SHORT).show();
}
+ if (fragment instanceof QueryPWDDialogFragment){
+ ((QueryPWDDialogFragment)fragment).setPwd(msg.getData().getString("key"));
+ Toast.makeText(activity,"获取成功",Toast.LENGTH_SHORT).show();
+ }
break;
- case -1:
+ case FUNCTION_ERROR:
Toast.makeText(activity,msg.getData().getString("ReturnData"),Toast.LENGTH_SHORT).show();
break;
default:
diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileHandler.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileHandler.java
index 9ca65d2..b0ce31e 100644
--- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileHandler.java
+++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileHandler.java
@@ -23,7 +23,7 @@ public class FileHandler extends Handler {
public final static int FUNCTION_GET_MD5 = 0;
public final static int FUNCTION_GET_PWD = 2;
public final static int FUNCTION_DECOMPRESS = 1;
- public final static int ERROR = -1;
+ public final static int FUNCTION_ERROR = -1;
private Activity activity;
private Fragment fragment;
@@ -41,7 +41,7 @@ public class FileHandler extends Handler {
((UnzipDialogFragment)fragment).setMD5(msg.getData().getString("md5"));
((UnzipDialogFragment)fragment).setProgressBar(View.INVISIBLE);
break;
- case ERROR:
+ case FUNCTION_ERROR:
Toast.makeText(activity,msg.getData().getString("error"),Toast.LENGTH_SHORT).show();
break;
case FUNCTION_DECOMPRESS:
diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileThread.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileThread.java
index 2f973be..b7afd6a 100644
--- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileThread.java
+++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/FileThread.java
@@ -14,11 +14,6 @@ import java.io.IOException;
public class FileThread implements Runnable{
- public final static int FUNCTION_GET_MD5 = 0;
- public final static int FUNCTION_GET_PWD = 2;
- public final static int FUNCTION_DECOMPRESS = 1;
- public final static int ERROR = -1;
-
private String srcFile,desPath,md5,passwd;
private Handler handler;
@@ -36,32 +31,32 @@ public class FileThread implements Runnable{
Message msg = new Message();
Bundle data = new Bundle();
switch (function){
- case FUNCTION_GET_MD5:
+ case FileHandler.FUNCTION_GET_MD5:
try {
md5 = FileUtils.getFileMD5(srcFile);
data.putString("md5",md5);
- msg.what = FUNCTION_GET_MD5;
+ msg.what = FileHandler.FUNCTION_GET_MD5;
msg.setData(data);
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
break;
- case FUNCTION_DECOMPRESS:
+ case FileHandler.FUNCTION_DECOMPRESS:
try {
FileUtils.unzip(srcFile,desPath,passwd,handler);
Log.d("TAG:","解压完成");
md5 = FileUtils.getFileMD5(srcFile);
data.putString("md5",md5);
- msg.what = FUNCTION_GET_MD5;
+ msg.what = FileHandler.FUNCTION_GET_MD5;
data.putBoolean("successful",true);
- msg.what = FUNCTION_DECOMPRESS;
+ msg.what = FileHandler.FUNCTION_DECOMPRESS;
msg.setData(data);
handler.sendMessage(msg);
} catch (ZipException e) {
e.printStackTrace();
data.putString("error","解压失败");
- msg.what = ERROR;
+ msg.what = FileHandler.FUNCTION_ERROR;
msg.setData(data);
handler.sendMessage(msg);
} catch (IOException e) {
diff --git a/CloudKey/app/src/main/res/layout/query_pwd_dialog.xml b/CloudKey/app/src/main/res/layout/query_pwd_dialog.xml
new file mode 100644
index 0000000..5efe8a3
--- /dev/null
+++ b/CloudKey/app/src/main/res/layout/query_pwd_dialog.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CloudKey/app/src/main/res/menu/nav_menu.xml b/CloudKey/app/src/main/res/menu/nav_menu.xml
index fc49677..2039f62 100644
--- a/CloudKey/app/src/main/res/menu/nav_menu.xml
+++ b/CloudKey/app/src/main/res/menu/nav_menu.xml
@@ -5,6 +5,11 @@
+ -
+
+
\ No newline at end of file
diff --git a/CloudKey/app/src/main/res/navigation/nav_graph.xml b/CloudKey/app/src/main/res/navigation/nav_graph.xml
index e411121..7d68250 100644
--- a/CloudKey/app/src/main/res/navigation/nav_graph.xml
+++ b/CloudKey/app/src/main/res/navigation/nav_graph.xml
@@ -33,4 +33,9 @@
android:name="com.thankvinci.CloudKey.Fragment.BugSubFragment"
android:label="BUG提交"
tools:layout="@layout/bug_sub_fragment" />
+
\ No newline at end of file
diff --git a/开发历程.md b/开发历程.md
index 8520dfc..3e35c19 100644
--- a/开发历程.md
+++ b/开发历程.md
@@ -333,4 +333,10 @@ FileHandler负责将获取到的md5码发到NetThread,然后将得到的密码
删除无用的Toast
-使dialog在解压过程中点击空白区域无效,点击取消无效
\ No newline at end of file
+使dialog在解压过程中点击空白区域无效,点击取消无效
+
+**2021/6/13**
+
+添加一个查询密码专用的Dialog,用于给用户输入md5码手动查询密码
+
+界面上有三个TextView控件,一个是将密码复制到剪贴板,一个是清空EditView,一个是获取密码
\ No newline at end of file