From 148f82b6338386839dea49c9039d1ffb62daa709 Mon Sep 17 00:00:00 2001 From: JasonYANG17 <39414350+JasonYANG170@users.noreply.github.com> Date: Wed, 10 May 2023 16:52:37 +0800 Subject: [PATCH] Initial commit --- .gitignore | 15 ++ .idea/.gitignore | 8 + .idea/.name | 1 + .idea/compiler.xml | 6 + .idea/gradle.xml | 19 ++ .idea/misc.xml | 16 ++ app/.gitignore | 1 + app/build.gradle | 40 ++++ app/proguard-rules.pro | 21 ++ .../YANG/Chat/ExampleInstrumentedTest.java | 25 ++ app/src/main/AndroidManifest.xml | 44 ++++ .../main/java/com/YANG/Chat/MainActivity.java | 54 +++++ .../java/com/YANG/Chat/SecondActivity.java | 217 ++++++++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 31 +++ app/src/main/res/drawable/_9414350.jpg | Bin 0 -> 3002 bytes .../res/drawable/ic_launcher_background.xml | 74 ++++++ app/src/main/res/drawable/shape.xml | 9 + app/src/main/res/drawable/shape2.xml | 9 + app/src/main/res/layout/activity_main.xml | 41 ++++ app/src/main/res/layout/activity_second2.xml | 95 ++++++++ app/src/main/res/menu/main.xml | 13 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 16 ++ app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 16 ++ app/src/main/res/xml/backup_rules.xml | 14 ++ .../main/res/xml/data_extraction_rules.xml | 20 ++ .../java/com/YANG/Chat/ExampleUnitTest.java | 17 ++ build.gradle | 5 + gradle.properties | 21 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 +++++++++++++++ gradlew.bat | 89 +++++++ settings.gradle | 16 ++ 47 files changed, 1167 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/YANG/Chat/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/YANG/Chat/MainActivity.java create mode 100644 app/src/main/java/com/YANG/Chat/SecondActivity.java create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/_9414350.jpg create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/shape.xml create mode 100644 app/src/main/res/drawable/shape2.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_second2.xml create mode 100644 app/src/main/res/menu/main.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/YANG/Chat/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..b3405b3 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +My Application \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..263e06c --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..120695a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..59f971d --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.example.myapplication' + compileSdk 32 + + defaultConfig { + applicationId "com.example.myapplication" + minSdk 24 + targetSdk 32 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'com.android.volley:volley:1.2.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/YANG/Chat/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/YANG/Chat/ExampleInstrumentedTest.java new file mode 100644 index 0000000..084606c --- /dev/null +++ b/app/src/androidTest/java/com/YANG/Chat/ExampleInstrumentedTest.java @@ -0,0 +1,25 @@ +package com.YANG.Chat; + +import android.content.Context; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.myapplication", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..586344d --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/YANG/Chat/MainActivity.java b/app/src/main/java/com/YANG/Chat/MainActivity.java new file mode 100644 index 0000000..4d956b0 --- /dev/null +++ b/app/src/main/java/com/YANG/Chat/MainActivity.java @@ -0,0 +1,54 @@ +package com.YANG.Chat; + +import android.content.Intent; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import android.os.Bundle; +import com.example.myapplication.R; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + + getMenuInflater().inflate(R.menu.main,menu); + delay(4000); + Toast.makeText(MainActivity.this,"Wellcome to YANG Chat",Toast.LENGTH_LONG).show(); + Intent intent = new Intent("A"); + startActivity(intent); + return true; + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()){ + case R.id.add_Item: + Toast.makeText(this,"add",Toast.LENGTH_LONG).show(); + break; + case R.id.remove_Item: + Toast.makeText(this,"remove",Toast.LENGTH_LONG).show(); + break; + default: + } + return true; + } + + private void delay(int ms) { + try { + Thread.currentThread(); + Thread.sleep(ms); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/YANG/Chat/SecondActivity.java b/app/src/main/java/com/YANG/Chat/SecondActivity.java new file mode 100644 index 0000000..78da44f --- /dev/null +++ b/app/src/main/java/com/YANG/Chat/SecondActivity.java @@ -0,0 +1,217 @@ +package com.YANG.Chat; + +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; +import androidx.appcompat.app.AppCompatActivity; +import android.os.Bundle; +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; +import com.example.myapplication.R; +import org.json.JSONException; +import org.json.JSONObject; + +public class SecondActivity extends AppCompatActivity { + String know=""; + public static boolean isNumeric(String str){ + for(int i=str.length();--i>=0;){ + int chr=str.charAt(i); + if(chr<48 || chr>57) + return true; + } + return false; + } + + // private long mPressedTime = 0; // 用于记录返回键按下时间 + + @Override + public void onBackPressed() { + // long mNowTime = System.currentTimeMillis(); // 获取当前时间 + // if ((mNowTime - mPressedTime) > 2000) { + // 和前一次按返回键时间差大于2000ms,给出提示并记录这次按键时间 + // Toast.makeText(this, "再按一次返回键退出应用程序", Toast.LENGTH_SHORT).show(); + // mPressedTime = mNowTime; + // } else { + // 和前一次按返回键时间差小于等于2000ms,退出应用程序 + moveTaskToBack(true); + // } + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_second2); + RequestQueue queue2 = Volley.newRequestQueue(this); + JsonObjectRequest request2 = new JsonObjectRequest(Request.Method.GET, "https://api.vvhan.com/api/qqsc?key=d99dcb4f1464d219df975eb56d91733c", null, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + String asd = response.toString(); + // Toast.makeText(SecondActivity.this, response.toString(), Toast.LENGTH_LONG).show(); + try { + JSONObject jsonObject = new JSONObject(asd); + String ves = jsonObject.getString("text"); + if(ves.equals("V2.1")) { + + }else{ + // tv1 = findViewById(R.id.textView3); + // tv1.setTextSize(20); + know="发现新版本\""+ves+"\"请更新。\n\n"; + // Toast.makeText(SecondActivity.this, know, Toast.LENGTH_LONG).show(); + } + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { +// 处理错误 + Toast.makeText(SecondActivity.this, "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + queue2.add(request2); + // RequestQueue queue2 = Volley.newRequestQueue(this); + JsonObjectRequest request3 = new JsonObjectRequest(Request.Method.GET, "https://api.vvhan.com/api/qqsc?key=d0bad3425fe73b651253c3dea47c759d", null, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + String asd = response.toString(); + // Toast.makeText(SecondActivity.this, response.toString(), Toast.LENGTH_LONG).show(); + try { + JSONObject jsonObject = new JSONObject(asd); + String ves1 = "公告:\n"+jsonObject.getString("text"); + know=know+ves1; + + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText(know); + + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { +// 处理错误 + Toast.makeText(SecondActivity.this, "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + queue2.add(request3); + } + private TextView tv1; + int passcard=0; + public void myOnclick(View view) { + // EditText tv1=(EditText) findViewById(R.id.editTextTextPersonName); +//获取文本 + EditText tv2 = (EditText) findViewById(R.id.editTextTextPersonName); + if (passcard == 0) { + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText("正在等待服务器验证您的密钥......"); + RequestQueue queue2 = Volley.newRequestQueue(this); + String pass2 = tv2.getText().toString(); + if(isNumeric(pass2)){ + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText("请先输入密钥完成身份验证"); + }else { + + + int pass3 = Integer.valueOf(pass2); + // RequestQueue queue = Volley.newRequestQueue(this); + JsonObjectRequest request2 = new JsonObjectRequest(Request.Method.GET, "https://api.vvhan.com/api/qqsc?key=492fa5701060de4b2f30e08cbbe2defe", null, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + String asd = response.toString(); + // Toast.makeText(SecondActivity.this, response.toString(), Toast.LENGTH_LONG).show(); + try { + JSONObject jsonObject = new JSONObject(asd); + int name = jsonObject.getInt("text"); + if (name-2004 == pass3) { + passcard = 1; + // Toast.makeText(SecondActivity.this, "pass", Toast.LENGTH_LONG).show(); + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText("验证成功,您已成功登录。"); + } else { + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText("验证失败,请检查您的密钥或与开发者联系。"); + } + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { +// 处理错误 + Toast.makeText(SecondActivity.this, "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + queue2.add(request2); + } + } else { + + // EditText tv2=(EditText) findViewById(R.id.editTextTextPersonName); + String name = tv2.getText().toString(); + TextView mTextView = null; + setContentView(R.layout.activity_second2); + + RequestQueue queue = Volley.newRequestQueue(this); + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText("正在等待ChatGPT回复,请稍后......"); + JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, "https://hub.onmicrosoft.cn/chat?q=" + name, null, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + String asd = response.toString(); + // Toast.makeText(SecondActivity.this, response.toString(), Toast.LENGTH_LONG).show(); + try { + JSONObject jsonObject = new JSONObject(asd); + String name = jsonObject.getString("answer"); + tv1 = findViewById(R.id.textView3); + tv1.setTextSize(20); + tv1.setText(name); + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + }, + new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { +// 处理错误 + Toast.makeText(SecondActivity.this, "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + +// 将请求添加到请求队列中request2 + + queue.add(request); + } + } + + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..1ee1493 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/_9414350.jpg b/app/src/main/res/drawable/_9414350.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0fc6a75657e4b1a1fabd4853d1971aa14eef70f GIT binary patch literal 3002 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 b7Grgbp>Ce(=Pxhl)Qh8nt=%ek7+?Pd0IaQx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..956b344 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/shape.xml b/app/src/main/res/drawable/shape.xml new file mode 100644 index 0000000..a0de6ed --- /dev/null +++ b/app/src/main/res/drawable/shape.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape2.xml b/app/src/main/res/drawable/shape2.xml new file mode 100644 index 0000000..5d87112 --- /dev/null +++ b/app/src/main/res/drawable/shape2.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..ecdccf7 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,41 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_second2.xml b/app/src/main/res/layout/activity_second2.xml new file mode 100644 index 0000000..418ad03 --- /dev/null +++ b/app/src/main/res/layout/activity_second2.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + +