From b47764d15391f139bde5b80c356e2d51066b711d Mon Sep 17 00:00:00 2001 From: DevEmperor <56255079+devemperor@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:14:52 +0200 Subject: [PATCH] added InputIntentBuilder --- .../wristassist/activities/ChatActivity.java | 17 +++-- .../activities/EditChatActivity.java | 8 ++- .../activities/GalleryActivity.java | 20 +++--- .../wristassist/activities/MainActivity.java | 20 +++--- .../activities/PreferencesFragment.java | 23 ++++--- .../wristassist/util/InputIntentBuilder.java | 69 +++++++++++++++++++ 6 files changed, 118 insertions(+), 39 deletions(-) create mode 100644 app/src/main/java/net/devemperor/wristassist/util/InputIntentBuilder.java diff --git a/app/src/main/java/net/devemperor/wristassist/activities/ChatActivity.java b/app/src/main/java/net/devemperor/wristassist/activities/ChatActivity.java index 9b3ab7f..0f115fd 100644 --- a/app/src/main/java/net/devemperor/wristassist/activities/ChatActivity.java +++ b/app/src/main/java/net/devemperor/wristassist/activities/ChatActivity.java @@ -35,6 +35,7 @@ import net.devemperor.wristassist.database.ChatHistoryModel; import net.devemperor.wristassist.database.UsageDatabaseHelper; import net.devemperor.wristassist.items.ChatItem; +import net.devemperor.wristassist.util.InputIntentBuilder; import net.devemperor.wristassist.util.WristAssistUtil; import org.json.JSONArray; @@ -210,9 +211,10 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { public void saveReset(View view) throws JSONException, IOException { if (!saveThisChat) { - Intent intent = new Intent(this, InputActivity.class); - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_set_chat_title)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_chat_title)); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_set_chat_title)) + .setHint(getString(R.string.wristassist_chat_title)) + .build(); startActivityForResult(intent, 1338); } else { for (int i = chatAdapter.getCount() - 1; i > ((chatAdapter.getItem(0).getChatMessage().getRole().equals(ChatMessageRole.SYSTEM.value())) ? 1 : 0); i--) { @@ -230,10 +232,11 @@ public void ask(View view) throws JSONException, IOException { if (errorTv.getVisibility() == View.VISIBLE) { query(chatAdapter.getChatItems().get(chatAdapter.getCount() - 1).getChatMessage().getContent()); } else { - Intent intent = new Intent(this, InputActivity.class); - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_enter_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hands_free", sp.getBoolean("net.devemperor.wristassist.hands_free", false)); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_enter_prompt)) + .setHint(getString(R.string.wristassist_prompt)) + .setHandsFree(sp.getBoolean("net.devemperor.wristassist.hands_free", false)) + .build(); startActivityForResult(intent, 1337); } } diff --git a/app/src/main/java/net/devemperor/wristassist/activities/EditChatActivity.java b/app/src/main/java/net/devemperor/wristassist/activities/EditChatActivity.java index c03eae7..41868be 100644 --- a/app/src/main/java/net/devemperor/wristassist/activities/EditChatActivity.java +++ b/app/src/main/java/net/devemperor/wristassist/activities/EditChatActivity.java @@ -14,6 +14,7 @@ import net.devemperor.wristassist.R; import net.devemperor.wristassist.database.ChatHistoryDatabaseHelper; +import net.devemperor.wristassist.util.InputIntentBuilder; import org.json.JSONException; @@ -72,9 +73,10 @@ protected void onCreate(Bundle savedInstanceState) { } public void editTitle(View view) { - Intent intent = new Intent(this, InputActivity.class); - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_edit_chat_title)); - intent.putExtra("net.devemperor.wristassist.input.content", titleTv.getText().toString()); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_edit_chat_title)) + .setContent(titleTv.getText().toString()) + .build(); editTitleLauncher.launch(intent); } diff --git a/app/src/main/java/net/devemperor/wristassist/activities/GalleryActivity.java b/app/src/main/java/net/devemperor/wristassist/activities/GalleryActivity.java index b79d581..02749f8 100644 --- a/app/src/main/java/net/devemperor/wristassist/activities/GalleryActivity.java +++ b/app/src/main/java/net/devemperor/wristassist/activities/GalleryActivity.java @@ -17,6 +17,7 @@ import net.devemperor.wristassist.adapters.ImageAdapter; import net.devemperor.wristassist.database.ImageModel; import net.devemperor.wristassist.database.ImagesDatabaseHelper; +import net.devemperor.wristassist.util.InputIntentBuilder; import java.util.List; @@ -75,20 +76,19 @@ protected void onCreate(Bundle savedInstanceState) { imageAdapter = new ImageAdapter(imageData, (menuPosition, image) -> { if (menuPosition == 0) { - Intent inputIntent = new Intent(this, InputActivity.class); - inputIntent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_describe_image)); - inputIntent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_image_hint)); - inputIntent.putExtra("net.devemperor.wristassist.input.hands_free", getSharedPreferences("net.devemperor.wristassist", MODE_PRIVATE) - .getBoolean("net.devemperor.wristassist.hands_free", false)); - - inputLauncher.launch(inputIntent); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_describe_image)) + .setHint(getString(R.string.wristassist_image_hint)) + .setHandsFree(getSharedPreferences("net.devemperor.wristassist", MODE_PRIVATE).getBoolean("net.devemperor.wristassist.hands_free", false)) + .build(); + inputLauncher.launch(intent); } else { currentOpenPosition = menuPosition; - Intent openImageIntent = new Intent(this, OpenImageActivity.class); - openImageIntent.putExtra("net.devemperor.wristassist.imageId", imageData.get(menuPosition).getId()); + Intent intent = new Intent(this, OpenImageActivity.class); + intent.putExtra("net.devemperor.wristassist.imageId", imageData.get(menuPosition).getId()); ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, image, "image"); - openImageLauncher.launch(openImageIntent, options); + openImageLauncher.launch(intent, options); } }); galleryWrv.setAdapter(imageAdapter); diff --git a/app/src/main/java/net/devemperor/wristassist/activities/MainActivity.java b/app/src/main/java/net/devemperor/wristassist/activities/MainActivity.java index b165f5b..c509666 100644 --- a/app/src/main/java/net/devemperor/wristassist/activities/MainActivity.java +++ b/app/src/main/java/net/devemperor/wristassist/activities/MainActivity.java @@ -19,6 +19,7 @@ import net.devemperor.wristassist.R; import net.devemperor.wristassist.adapters.MainAdapter; import net.devemperor.wristassist.items.MainItem; +import net.devemperor.wristassist.util.InputIntentBuilder; import java.util.ArrayList; import java.util.Random; @@ -137,17 +138,20 @@ protected void onCreate(Bundle savedInstanceState) { } private void input(boolean withSystemMessage) { - Intent intent = new Intent(this, InputActivity.class); if (withSystemMessage) { - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_enter_system_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_system_prompt)); - intent.putExtra("net.devemperor.wristassist.input.title2", getString(R.string.wristassist_enter_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hint2", getString(R.string.wristassist_prompt)); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_enter_system_prompt)) + .setHint(getString(R.string.wristassist_system_prompt)) + .setTitle2(getString(R.string.wristassist_enter_prompt)) + .setHint2(getString(R.string.wristassist_prompt)) + .build(); inputWithSystemMessageLauncher.launch(intent); } else { - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_enter_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hands_free", sp.getBoolean("net.devemperor.wristassist.hands_free", false)); + Intent intent = new InputIntentBuilder(this) + .setTitle(getString(R.string.wristassist_enter_prompt)) + .setHint(getString(R.string.wristassist_prompt)) + .setHandsFree(sp.getBoolean("net.devemperor.wristassist.hands_free", false)) + .build(); inputLauncher.launch(intent); } } diff --git a/app/src/main/java/net/devemperor/wristassist/activities/PreferencesFragment.java b/app/src/main/java/net/devemperor/wristassist/activities/PreferencesFragment.java index 25f93d9..a9d403f 100644 --- a/app/src/main/java/net/devemperor/wristassist/activities/PreferencesFragment.java +++ b/app/src/main/java/net/devemperor/wristassist/activities/PreferencesFragment.java @@ -18,6 +18,7 @@ import androidx.preference.SwitchPreference; import net.devemperor.wristassist.R; +import net.devemperor.wristassist.util.InputIntentBuilder; import org.apache.commons.validator.routines.UrlValidator; @@ -87,12 +88,12 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { sp.edit().remove("net.devemperor.wristassist.custom_server_model").apply(); chatModelPreference.setEnabled(true); } else { - Intent intent = new Intent(getContext(), InputActivity.class); - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_custom_host)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_custom_host_hint)); - intent.putExtra("net.devemperor.wristassist.input.title2", getString(R.string.wristassist_custom_model)); - intent.putExtra("net.devemperor.wristassist.input.hint2", getString(R.string.wristassist_custom_model_hint)); - + Intent intent = new InputIntentBuilder(getContext()) + .setTitle(getString(R.string.wristassist_custom_host)) + .setHint(getString(R.string.wristassist_custom_host_hint)) + .setTitle2(getString(R.string.wristassist_custom_model)) + .setHint2(getString(R.string.wristassist_custom_model_hint)) + .build(); customServerInputLauncher.launch(intent); } return true; @@ -105,11 +106,11 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { Preference globalSystemQueryPreference = findPreference("net.devemperor.wristassist.global_system_query"); if (globalSystemQueryPreference != null) { globalSystemQueryPreference.setOnPreferenceClickListener(preference -> { - Intent intent = new Intent(getContext(), InputActivity.class); - intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_define_global_system_prompt)); - intent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_system_prompt)); - intent.putExtra("net.devemperor.wristassist.input.content", sp.getString("net.devemperor.wristassist.global_system_query", "")); - + Intent intent = new InputIntentBuilder(getContext()) + .setTitle(getString(R.string.wristassist_define_global_system_prompt)) + .setHint(getString(R.string.wristassist_system_prompt)) + .setContent(sp.getString("net.devemperor.wristassist.global_system_query", "")) + .build(); globalSystemPromptLauncher.launch(intent); return true; }); diff --git a/app/src/main/java/net/devemperor/wristassist/util/InputIntentBuilder.java b/app/src/main/java/net/devemperor/wristassist/util/InputIntentBuilder.java new file mode 100644 index 0000000..708592b --- /dev/null +++ b/app/src/main/java/net/devemperor/wristassist/util/InputIntentBuilder.java @@ -0,0 +1,69 @@ +package net.devemperor.wristassist.util; + +import android.content.Context; +import android.content.Intent; + +import net.devemperor.wristassist.activities.InputActivity; + +public class InputIntentBuilder { + + private final Context context; + private String title; + private String content; + private String hint; + private String title2; + private String content2; + private String hint2; + private boolean handsFree; + + public InputIntentBuilder(Context context) { + this.context = context; + } + + public InputIntentBuilder setTitle(String title) { + this.title = title; + return this; + } + + public InputIntentBuilder setContent(String content) { + this.content = content; + return this; + } + + public InputIntentBuilder setHint(String hint) { + this.hint = hint; + return this; + } + + public InputIntentBuilder setTitle2(String title2) { + this.title2 = title2; + return this; + } + + public InputIntentBuilder setContent2(String content2) { + this.content2 = content2; + return this; + } + + public InputIntentBuilder setHint2(String hint2) { + this.hint2 = hint2; + return this; + } + + public InputIntentBuilder setHandsFree(boolean handsFree) { + this.handsFree = handsFree; + return this; + } + + public Intent build() { + Intent intent = new Intent(context, InputActivity.class); + intent.putExtra("net.devemperor.wristassist.input.title", title); + intent.putExtra("net.devemperor.wristassist.input.content", content); + intent.putExtra("net.devemperor.wristassist.input.hint", hint); + intent.putExtra("net.devemperor.wristassist.input.title2", title2); + intent.putExtra("net.devemperor.wristassist.input.content2", content2); + intent.putExtra("net.devemperor.wristassist.input.hint2", hint2); + intent.putExtra("net.devemperor.wristassist.input.hands_free", handsFree); + return intent; + } +}