diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/AboutFragment.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/AboutFragment.java index 8cf7bc0..4f8a696 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/AboutFragment.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/AboutFragment.java @@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment; import com.thankvinci.CloudKey.R; public class AboutFragment extends Fragment { + public AboutFragment(){ super(R.layout.about_fragment); } @@ -20,6 +21,8 @@ public class AboutFragment extends Fragment { TextView verText = view.findViewById(R.id.text_version); verText.setText("v"+getAppInfo()); } + + //获取版本号 private String getAppInfo(){ String version = ""; try { diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/BugSubFragment.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/BugSubFragment.java index fc2734a..c63cdb4 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/BugSubFragment.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/BugSubFragment.java @@ -17,12 +17,14 @@ import com.thankvinci.CloudKey.NetUtils.NetThread; import com.thankvinci.CloudKey.R; public class BugSubFragment extends Fragment { + private Fragment fragment; public BugSubFragment(){ super(R.layout.bug_sub_fragment); } @Override public void onViewCreated(View view, Bundle saveInstanceState){ super.onViewCreated(view,saveInstanceState); + fragment = this; Toast.makeText(getActivity(),"版本信息如若有误可以修改哦~",Toast.LENGTH_LONG).show(); EditText softVerEdit = view.findViewById(R.id.soft_ver); @@ -43,7 +45,7 @@ public class BugSubFragment extends Fragment { Toast.makeText(getActivity(),"一定要全部填写完才能提交哦~",Toast.LENGTH_SHORT).show(); return ; } - Handler handler = new NetHandler(getActivity()){ + Handler handler = new NetHandler(getActivity(),fragment){ public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java index 4c4d526..e3c99f6 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java @@ -15,12 +15,17 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; +import com.thankvinci.CloudKey.NetUtils.NetThread; import com.thankvinci.CloudKey.R; import com.thankvinci.CloudKey.Utils.FileHandler; import com.thankvinci.CloudKey.Utils.FileThread; public class UnzipDialogFragment extends DialogFragment { + + //用一个fragment来存当前这个fragment对象 + Fragment fragment; //点击压缩文件弹出来的Dialog private UnzipDialogListener listener; //源文件绝对路径,目标文件夹绝对路径,md5码和密码 @@ -43,19 +48,18 @@ public class UnzipDialogFragment extends DialogFragment { srcFile = getArguments().getString("srcFile"); desPath = getArguments().getString("desPath"); passwd = getArguments().getString("passwd"); + fragment = this; } public void setListener(UnzipDialogListener listener){ this.listener = listener; } @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { - Toast.makeText(getActivity(),"onCreateView",Toast.LENGTH_SHORT).show(); return super.onCreateView(inflater, container, savedInstanceState); } public AlertDialog onCreateDialog(Bundle savedInstanceState){ - Toast.makeText(getActivity(),"onCreateDialog",Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = requireActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.unzip_dialog,null); @@ -68,6 +72,7 @@ public class UnzipDialogFragment extends DialogFragment { desPath_edit.setText(desPath); desPath_edit.setSelection(desPath.length()); + md5_edit = view.findViewById(R.id.md5_edit); passwd_edit = view.findViewById(R.id.pwd_edit); acceptPWD2SQL = view.findViewById(R.id.accept_pwd_2_sql); @@ -89,8 +94,11 @@ public class UnzipDialogFragment extends DialogFragment { public void onClick(View v) { //网络线程 Toast.makeText(getActivity(),"获取密码",Toast.LENGTH_SHORT).show(); - Handler handler = new FileHandler(getActivity()); + //获取MD5码 + Handler handler = new FileHandler(getActivity(),fragment); Thread ft = new Thread(new FileThread(handler,srcFile,desPath,null,FileHandler.FUNCTION_GET_MD5)); + ft.start(); + } }); @@ -99,7 +107,6 @@ public class UnzipDialogFragment extends DialogFragment { public void onClick(DialogInterface dialog, int which) { if (acceptPWD2SQL.isChecked() && !fromSQL){ - } listener.onDialogUnzipClicked(); } @@ -111,7 +118,27 @@ public class UnzipDialogFragment extends DialogFragment { });; return builder.create(); } + public void setFromSQL(boolean fromSQL){ + this.fromSQL = fromSQL; + } public void setPasswd(String passwd){ passwd_edit.setText(passwd); + passwd_edit.setSelection(passwd.length()); + } + public void setMD5(String md5){ + md5_edit.setText(md5); + md5_edit.setSelection(md5.length()); + } + public String getSrcFile(){ + return srcFile; + } + public String getDesPath(){ + return desPath; + } + public String getMD5(){ + return md5; + } + public String getPasswd(){ + return passwd; } } diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/MainActivity.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/MainActivity.java index 87bb650..f5da1e7 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/MainActivity.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/MainActivity.java @@ -28,8 +28,7 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - //声明一个Handler - Handler handler = new NetHandler(this); + //加载NavGraph navHostFragment = (NavHostFragment)getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); navController = navHostFragment.getNavController(); 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 ea560fe..84594b2 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 @@ -5,20 +5,34 @@ import android.os.Handler; import android.os.Message; import android.widget.Toast; +import androidx.fragment.app.Fragment; + +import com.thankvinci.CloudKey.Fragment.UnzipDialogFragment; import com.thankvinci.CloudKey.MainActivity; public class NetHandler extends Handler { private Activity activity; - public NetHandler(Activity activity){ + private Fragment fragment; + public NetHandler(Activity activity,Fragment fragment){ this.activity = activity; + this.fragment = fragment; } @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: - Toast.makeText(activity,msg.getData().getString("key"),Toast.LENGTH_SHORT).show(); + if (fragment instanceof UnzipDialogFragment){ + ((UnzipDialogFragment)fragment).setPasswd(msg.getData().getString("key")); + ((UnzipDialogFragment)fragment).setFromSQL(true); + Toast.makeText(activity,"获取成功",Toast.LENGTH_SHORT).show(); + } + break; + case -1: + Toast.makeText(activity,msg.getData().getString("ReturnData"),Toast.LENGTH_SHORT).show(); + break; + default: break; } } diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetThread.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetThread.java index 91c1f7b..e739c1c 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetThread.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/NetUtils/NetThread.java @@ -3,6 +3,7 @@ package com.thankvinci.CloudKey.NetUtils; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.Log; import androidx.loader.content.CursorLoader; @@ -28,20 +29,22 @@ public class NetThread implements Runnable { @Override public void run(){ Message msg = new Message(); - String data = getNetWork(strUrl); + String data = getNetWork(strUrl);Log.d("TAG:",data); Bundle dataPackage = new Bundle(); if (data.equals("查无结果") || data.equals("反馈成功,感谢支持") || data.equals("反馈失败,请稍后重试") || data.equals("查询失败") || data.equals("插入失败") || data.equals("无效参数")){ msg.what = -1; dataPackage.putString("ReturnData",data); msg.setData(dataPackage); handler.sendMessage(msg); - return ; + }else{ + JSONObject jsonObject = JSON.parseObject(data); + dataPackage.putString("key",jsonObject.getString("pwd")); + msg.what = 0; + msg.setData(dataPackage); + handler.sendMessage(msg); } - JSONObject jsonObject = JSON.parseObject(data); - dataPackage.putString("key",jsonObject.getString("pwd")); - msg.what = 0; - msg.setData(dataPackage); - handler.sendMessage(msg); + + } public String getNetWork(String str_url){ StringBuilder builder = new StringBuilder(); 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 7ab2488..a25026a 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 @@ -5,6 +5,9 @@ import android.os.Handler; import android.os.Message; import android.widget.Toast; +import androidx.fragment.app.Fragment; + +import com.thankvinci.CloudKey.Fragment.UnzipDialogFragment; import com.thankvinci.CloudKey.NetUtils.NetHandler; import com.thankvinci.CloudKey.NetUtils.NetThread; @@ -15,22 +18,24 @@ public class FileHandler extends Handler { public final static int ERROR = -1; private Activity activity; + private Fragment fragment; - private Handler handler; - - public FileHandler(Activity activity){ + public FileHandler(Activity activity,Fragment fragment){ this.activity = activity; + this.fragment = fragment; } @Override public void handleMessage(Message msg) { - handler = new NetHandler(activity); super.handleMessage(msg); switch (msg.what){ case FUNCTION_GET_MD5: + ((UnzipDialogFragment)fragment).setMD5(msg.getData().getString("md5")); + //获取文件密码 StringBuilder builder = new StringBuilder(); builder.append("http://1.14.144.194:8080/cscp/cscp?para0=query¶1="); builder.append(msg.getData().getString("md5")); String url = builder.toString(); + Handler handler = new NetHandler(activity,fragment); Thread nt = new Thread(new NetThread(handler,url)); nt.start(); break; diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/MyUtils.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/MyUtils.java index 510d48d..b8e367b 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/MyUtils.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Utils/MyUtils.java @@ -10,7 +10,4 @@ public class MyUtils { ClipboardManager cmb = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(str); } - public static void onBackExit(){ - - } } diff --git a/开发历程.md b/开发历程.md index 751f9fa..744564b 100644 --- a/开发历程.md +++ b/开发历程.md @@ -255,7 +255,7 @@ FileHandler负责将获取到的md5码发到NetThread,然后将得到的密码 数据流向: -主线程(文件路径)-->FileThread(MD5)-->FileHandler(MD5)-->NetThread(pwd)-->NetHandler(pwd) +主线程(文件路径)-->FileThread(MD5)-->FileHandler(MD5)-->主线程(MD5)-->NetThread(pwd)-->NetHandler(pwd)-->主线程(MD5,pwd)-->FileThread(MD5,pwd) **2021/6/12** @@ -277,4 +277,8 @@ FileHandler负责将获取到的md5码发到NetThread,然后将得到的密码 **2021/6/12** -完成了解压缩用的dialog的布局设计,传入数据也有了,但是遇到个问题,就是,一直以来所有的Handler处理的数据我都是直接Toast出去的,如何把数据更新到Dialog,好像把当前fragment/dialogfragment作为参数传进去会方便点 \ No newline at end of file +完成了解压缩用的dialog的布局设计,传入数据也有了,但是遇到个问题,就是,一直以来所有的Handler处理的数据我都是直接Toast出去的,如何把数据更新到Dialog,好像把当前fragment/dialogfragment作为参数传进去会方便点 + +**2021/6/12** + +再次删除冗余代码,整理比较乱的代码,决定等现在的功能都完成后再增加一个用户自己输入MD5获取密码的界面 \ No newline at end of file