From ac26f754afdee52e2f3c5225341597a08e73f763 Mon Sep 17 00:00:00 2001 From: ThankVinci Date: Thu, 10 Jun 2021 19:57:05 +0800 Subject: [PATCH] 2021/6/9** MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *突然发现之前git上去是全部文件,修改文件和添加文件,可能导致git log被覆盖,这个文件中的内容就是我git上去打的log* **正题:** 应该定制一个标准,先设计好我要在网络上传输什么数据 1.关于核心功能 查询密码 使用到的参数是function=query&md5=xxx ​ 插入密码,使用到的参数是function=xxx&md5=xxx&pwd=xxx 2.关于bug提交,使用到的参数是function=subBug&softVer=xxx&andrVer=xxx&bug=xxxxxx 3.关于软件更新,检查版本,使用到的参数是function=check&softVer=xxx 然后考虑以后可能要扩充的功能,参数名还是抽象点,直接叫para0,para1...... 所以后端代码就要进行修改 **2021/6/10** 修改了后端的代码,后端只会返回两种数据,一种是普通字符串,android端获取后会toast出来,另一种是json字符串,如果是json字符串就解析,然后对数据库进行相应的操作. 然后就完成了bug反馈的功能 写完后端和完成bug反馈功能后就发现,自定义的Handler的功能似乎写死了,不能针对不同的界面进行对应的操作,也不是说不行,只是看上去会有点乱,所以,handler处理msg也要制定一个规范 --- CloudKey/app/build.gradle | 2 +- CloudKey/app/src/main/AndroidManifest.xml | 3 +- .../CloudKey/Fragment/AboutFragment.java | 27 ++++++++++++++ .../CloudKey/Fragment/BugSubFragment.java | 27 ++++++++++++-- .../CloudKey/NetUtils/NetHandler.java | 5 +-- .../CloudKey/NetUtils/NetThread.java | 15 ++++++-- .../src/main/res/layout/about_fragment.xml | 22 ++++++++++++ CloudKey/app/src/main/res/menu/nav_menu.xml | 9 +++-- .../app/src/main/res/navigation/nav_graph.xml | 9 +++-- CloudKey/gradle.properties | 4 ++- 开发历程.md | 36 ++++++++++++++++++- 11 files changed, 143 insertions(+), 16 deletions(-) diff --git a/CloudKey/app/build.gradle b/CloudKey/app/build.gradle index f9f5dab..27c17e5 100644 --- a/CloudKey/app/build.gradle +++ b/CloudKey/app/build.gradle @@ -11,7 +11,7 @@ android { minSdkVersion 16 targetSdkVersion 30 versionCode 1 - versionName "1.0" + versionName "1.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/CloudKey/app/src/main/AndroidManifest.xml b/CloudKey/app/src/main/AndroidManifest.xml index 364e8f1..991551b 100644 --- a/CloudKey/app/src/main/AndroidManifest.xml +++ b/CloudKey/app/src/main/AndroidManifest.xml @@ -6,14 +6,13 @@ android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name" - android:roundIcon="@mipmap/icon" + android:roundIcon="@mipmap/icon_round" android:supportsRtl="true" android:usesCleartextTraffic="true" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> - 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 419f010..8cf7bc0 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 @@ -1,5 +1,11 @@ package com.thankvinci.CloudKey.Fragment; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + import androidx.fragment.app.Fragment; import com.thankvinci.CloudKey.R; @@ -8,4 +14,25 @@ public class AboutFragment extends Fragment { public AboutFragment(){ super(R.layout.about_fragment); } + @Override + public void onViewCreated(View view, Bundle saveInstanceState){ + super.onViewCreated(view,saveInstanceState); + TextView verText = view.findViewById(R.id.text_version); + verText.setText("v"+getAppInfo()); + } + private String getAppInfo(){ + String version = ""; + try { + PackageManager pm = getActivity().getPackageManager(); + PackageInfo pi = pm.getPackageInfo(getActivity().getPackageName(), 0); + version = pi.versionName; + } catch (Exception e) { + e.printStackTrace(); + } + if (version == null || version.length() <= 0) { + version = ""; + } + return version; + } } + 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 96847b1..fc2734a 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 @@ -3,6 +3,8 @@ package com.thankvinci.CloudKey.Fragment; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -10,6 +12,8 @@ import android.widget.Toast; import androidx.fragment.app.Fragment; +import com.thankvinci.CloudKey.NetUtils.NetHandler; +import com.thankvinci.CloudKey.NetUtils.NetThread; import com.thankvinci.CloudKey.R; public class BugSubFragment extends Fragment { @@ -20,6 +24,7 @@ public class BugSubFragment extends Fragment { public void onViewCreated(View view, Bundle saveInstanceState){ super.onViewCreated(view,saveInstanceState); Toast.makeText(getActivity(),"版本信息如若有误可以修改哦~",Toast.LENGTH_LONG).show(); + EditText softVerEdit = view.findViewById(R.id.soft_ver); EditText andrVerEdit = view.findViewById(R.id.android_ver); EditText bugEdit = view.findViewById(R.id.bug_edit); @@ -38,8 +43,26 @@ public class BugSubFragment extends Fragment { Toast.makeText(getActivity(),"一定要全部填写完才能提交哦~",Toast.LENGTH_SHORT).show(); return ; } - - Toast.makeText(getActivity(),"感谢反馈(⑉°з°)-♡",Toast.LENGTH_SHORT).show(); + Handler handler = new NetHandler(getActivity()){ + public void handleMessage(Message msg) { + super.handleMessage(msg); + switch (msg.what){ + case -1: + Toast.makeText(getActivity(),msg.getData().getString("ReturnData"),Toast.LENGTH_SHORT).show(); + break; + } + } + }; + StringBuilder builder = new StringBuilder(); + builder.append("http://1.14.144.194:8080/cscp/cscp?para0=subBug¶1="); + builder.append(softVer); + builder.append("¶2="); + builder.append(andrVer); + builder.append("¶3="); + builder.append(bug); + String url = builder.toString(); + Thread t = new Thread(new NetThread(handler,url)); + t.start(); } }); } 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 bc3a7c9..ea560fe 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 @@ -1,5 +1,6 @@ package com.thankvinci.CloudKey.NetUtils; +import android.app.Activity; import android.os.Handler; import android.os.Message; import android.widget.Toast; @@ -8,8 +9,8 @@ import com.thankvinci.CloudKey.MainActivity; public class NetHandler extends Handler { - private MainActivity activity; - public NetHandler(MainActivity activity){ + private Activity activity; + public NetHandler(Activity activity){ this.activity = activity; } @Override 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 cc3211b..8b5488c 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 @@ -19,15 +19,24 @@ import java.net.URL; public class NetThread implements Runnable { Handler handler; - public NetThread(Handler handler){ + String strUrl; + public NetThread(Handler handler,String strUrl){ this.handler = handler; + this.strUrl = strUrl; } @Override public void run(){ Message msg = new Message(); - String data = getNetWork("http://1.14.144.194:8080/cscp/cscp?function=query&MD5=123456789abcdef0123456789abcd4f0"); - JSONObject jsonObject = JSON.parseObject(data); + String data = getNetWork(strUrl); 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 ; + } + JSONObject jsonObject = JSON.parseObject(data); dataPackage.putString("key",jsonObject.getString("pwd")); msg.what = 0; msg.setData(dataPackage); diff --git a/CloudKey/app/src/main/res/layout/about_fragment.xml b/CloudKey/app/src/main/res/layout/about_fragment.xml index 3dac408..23e2e46 100644 --- a/CloudKey/app/src/main/res/layout/about_fragment.xml +++ b/CloudKey/app/src/main/res/layout/about_fragment.xml @@ -3,6 +3,28 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".Fragment.AboutFragment"> + + \ 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 48acfb4..fc49677 100644 --- a/CloudKey/app/src/main/res/menu/nav_menu.xml +++ b/CloudKey/app/src/main/res/menu/nav_menu.xml @@ -1,5 +1,10 @@ - - + + + + + + + \ 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 dec4b02..63972ec 100644 --- a/CloudKey/app/src/main/res/navigation/nav_graph.xml +++ b/CloudKey/app/src/main/res/navigation/nav_graph.xml @@ -7,11 +7,16 @@ + \ No newline at end of file diff --git a/CloudKey/gradle.properties b/CloudKey/gradle.properties index 52f5917..fccf5f7 100644 --- a/CloudKey/gradle.properties +++ b/CloudKey/gradle.properties @@ -16,4 +16,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true \ No newline at end of file +android.enableJetifier=true +android.injected.testOnly=false +android.overridePathCheck=true \ No newline at end of file diff --git a/开发历程.md b/开发历程.md index e81ad1d..2fa145f 100644 --- a/开发历程.md +++ b/开发历程.md @@ -131,4 +131,38 @@ private String queryPassword(PrintWriter writer, Connection conn, String filemd5 使用到的库 implementation 'androidx.navigation:navigation-fragment:2.2.2' -implementation 'androidx.navigation:navigation-ui:2.2.2' \ No newline at end of file +implementation 'androidx.navigation:navigation-ui:2.2.2' + +**2021/6/9** + +突然决定应该增加一个提交bug的功能(提交时间,版本号,Android版本,bug说明) + +突然决定应该增加一个手动查密码的功能,即,可能用户需要用来解压的文件可能过大,在我优化没做好的情况下,可能会有bug导致无法读取md5码值或者无法解压的情况,用户可以在其他设备中获取待解压文件的md5值,手动在本软件中查询,即提供一个查询的功能 + +先完成一个提交bug的功能,数据库的表已经建成(提交时间,软件版本,Android版本,bug说明) + +完成页面布局和基本逻辑设计后发现在创建线程的部分之前设计写死了传输的数据内容,需要重新设计 + +**2021/6/9** + +*突然发现之前git上去是全部文件,修改文件和添加文件,可能导致git log被覆盖,这个文件中的内容就是我git上去打的log* + +**正题:** + +应该定制一个标准,先设计好我要在网络上传输什么数据 + +1.关于核心功能 查询密码 使用到的参数是function=query&md5=xxx + +​ 插入密码,使用到的参数是function=xxx&md5=xxx&pwd=xxx + +2.关于bug提交,使用到的参数是function=subBug&softVer=xxx&andrVer=xxx&bug=xxxxxx + +3.关于软件更新,检查版本,使用到的参数是function=check&softVer=xxx + +然后考虑以后可能要扩充的功能,参数名还是抽象点,直接叫para0,para1...... + +所以后端代码就要进行修改 + +**2021/6/10** + +修改了后端的代码,后端只会返回两种数据,一种是普通字符串,android端获取后会toast出来,另一种是json字符串,如果是json字符串就解析,然后对数据库进行相应的操作. \ No newline at end of file