diff --git a/.gitignore b/.gitignore
index aa724b7..ef21e5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@
.externalNativeBuild
.cxx
local.properties
+app/release
+/.idea/inspectionProfiles/Project_Default.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 34e59f8..d2713c5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -14,6 +14,12 @@
android:supportsRtl="true"
android:theme="@style/Theme.Android101"
tools:targetApi="31">
+
+
@@ -32,7 +38,6 @@
-
+
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/uk/kagurach/android101/MainActivity.java b/app/src/main/java/uk/kagurach/android101/MainActivity.java
index 9f15a48..a9c83c7 100644
--- a/app/src/main/java/uk/kagurach/android101/MainActivity.java
+++ b/app/src/main/java/uk/kagurach/android101/MainActivity.java
@@ -64,7 +64,7 @@ public class MainActivity extends AppCompatActivity {
textViewAppendString(tv,"*************************\nfinished");
// Initialize Page Helper
- pageHelper = new PageHelper(this,null,MainActivity2.class);
+ pageHelper = new PageHelper(this,null,MainActivity2.class,this);
Button button = findViewById(R.id.Page1NextPage);
button.setEnabled(true);
diff --git a/app/src/main/java/uk/kagurach/android101/Page4.java b/app/src/main/java/uk/kagurach/android101/Page4.java
index 6e46dde..21c30b3 100644
--- a/app/src/main/java/uk/kagurach/android101/Page4.java
+++ b/app/src/main/java/uk/kagurach/android101/Page4.java
@@ -1,8 +1,17 @@
package uk.kagurach.android101;
+import android.app.Activity;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
import androidx.activity.EdgeToEdge;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
@@ -11,6 +20,8 @@ import androidx.core.view.WindowInsetsCompat;
public class Page4 extends AppCompatActivity {
PageHelper pageHelper;
+ ActivityResultLauncher mLauncher;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -21,6 +32,47 @@ public class Page4 extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
+ pageHelper = new PageHelper(this, Page3.class,Page5.class);
+ Button askAI = findViewById(R.id.P4AskAI);
+ askAI.setOnClickListener(new ButtonHandler());
+ Button nextPage = findViewById(R.id.P4PageButton);
+ nextPage.setOnClickListener(pageHelper.pageButtonHandler);
+ nextPage.setOnLongClickListener(pageHelper.longClickHandler);
+
+ mLauncher = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result!=null && result.getResultCode() == RESULT_OK ){
+ assert result.getData() != null;
+ Bundle bundle = result.getData().getExtras();
+ if (bundle!=null) {
+ String response = bundle.getString("reply");
+ TextView tv = findViewById(R.id.P4Result);
+ tv.setText(response);
+ }
+ }
+ }
+ );
+ }
+
+
+ private void callOtherActivity(){
+ EditText editText = findViewById(R.id.P4Ask);
+ String request = editText.getText().toString();
+
+ Intent intent = new Intent(this,Page4OtherActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("request_content",request);
+ intent.putExtras(bundle);
+ mLauncher.launch(intent);
+ }
+
+ private final class ButtonHandler implements View.OnClickListener
+ {
+ @Override
+ public void onClick(View v){
+ callOtherActivity();
+ }
}
diff --git a/app/src/main/java/uk/kagurach/android101/Page4OtherActivity.java b/app/src/main/java/uk/kagurach/android101/Page4OtherActivity.java
new file mode 100644
index 0000000..20976a6
--- /dev/null
+++ b/app/src/main/java/uk/kagurach/android101/Page4OtherActivity.java
@@ -0,0 +1,44 @@
+package uk.kagurach.android101;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+public class Page4OtherActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ Bundle bundle = getIntent().getExtras();
+ if (bundle == null) throw new NullPointerException();
+ String content = bundle.getString("request_content");
+ if (content!=null){
+ content = content.replace("?","?")
+ .replace("?","!")
+ .replace("你","我")
+ .replace("吗","");
+ if (!content.contains("!")){
+ content = "对不起我不知道";
+ }
+ }else {
+ content = "对不起坏掉了";
+ }
+
+ Intent intent = new Intent();
+ Bundle bundle1 = new Bundle();
+ bundle1.putString("reply",content);
+ intent.putExtras(bundle1);
+ setResult(RESULT_OK,intent);
+ finish();
+ }
+
+ private void reply(String s){
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/uk/kagurach/android101/Page5.java b/app/src/main/java/uk/kagurach/android101/Page5.java
new file mode 100644
index 0000000..f7e4b6f
--- /dev/null
+++ b/app/src/main/java/uk/kagurach/android101/Page5.java
@@ -0,0 +1,24 @@
+package uk.kagurach.android101;
+
+import android.os.Bundle;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+public class Page5 extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_page5);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/uk/kagurach/android101/PageHelper.java b/app/src/main/java/uk/kagurach/android101/PageHelper.java
index e00c55f..4086fde 100644
--- a/app/src/main/java/uk/kagurach/android101/PageHelper.java
+++ b/app/src/main/java/uk/kagurach/android101/PageHelper.java
@@ -2,6 +2,7 @@ package uk.kagurach.android101;
import static androidx.core.content.ContextCompat.startActivity;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
@@ -11,15 +12,25 @@ public class PageHelper {
private final Class> _prev;
private final Class> _next;
+ private Activity _activity = null;
+
public final LongClickHandler longClickHandler = new LongClickHandler();
public final PageButtonHandler pageButtonHandler = new PageButtonHandler();
- PageHelper(Context curr,Class> prev,Class> next){
+ PageHelper(Context curr, Class> prev, Class> next){
_curr = curr;
_prev = prev;
_next = next;
}
+
+ PageHelper(Context curr, Class> prev, Class> next,Activity activity){
+ _curr = curr;
+ _prev = prev;
+ _next = next;
+ _activity = activity;
+ }
+
void goPrev(){
if (_prev==null){
return;
@@ -36,6 +47,19 @@ public class PageHelper {
startActivity(_curr,myIntent,null);
}
+ void goNextFinish(){
+ if (_activity == null){
+ throw new IllegalStateException("activity is null, cannot finish the activity");
+ }
+
+ if (_next==null){
+ return;
+ }
+ Intent myIntent = new Intent(_curr, _next);
+ startActivity(_curr,myIntent,null);
+ _activity.finish();
+ }
+
private final class LongClickHandler implements View.OnLongClickListener
{
@Override
@@ -48,7 +72,11 @@ public class PageHelper {
{
@Override
public void onClick(View v){
- goNext();
+ if (_activity == null) {
+ goNext();
+ }else {
+ goNextFinish();
+ }
}
}
}
diff --git a/app/src/main/res/layout/activity_page4.xml b/app/src/main/res/layout/activity_page4.xml
index 6a42e96..567e301 100644
--- a/app/src/main/res/layout/activity_page4.xml
+++ b/app/src/main/res/layout/activity_page4.xml
@@ -7,4 +7,64 @@
android:layout_height="match_parent"
tools:context=".Page4">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_page5.xml b/app/src/main/res/layout/activity_page5.xml
new file mode 100644
index 0000000..530c183
--- /dev/null
+++ b/app/src/main/res/layout/activity_page5.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index a54c86d..4e2f9de 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -11,4 +11,7 @@
确认删除
任务清单
启动任务清单
+ 用户
+ AI
+ 询问AI
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 118bde4..150b231 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,4 +21,7 @@
弱智计算器
退格
Open TODO
+ User
+ AI
+ ASK AI
\ No newline at end of file