From fe99950af8108f86fedc90b6967fdf8b4cd305f9 Mon Sep 17 00:00:00 2001 From: SuperSkidder Date: Wed, 21 Jun 2023 13:28:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E9=9D=9E?= =?UTF-8?q?=E5=B8=B8=E7=AE=80=E5=8D=95=E7=9A=84=E5=8E=86=E5=8F=B2=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=BF=9D=E5=AD=98=E4=B8=8E=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + .../me/superskidder/watchgpt/MainFragment.kt | 21 ++++++++++------- .../watchgpt/adapters/MainFragmentAdapter.kt | 1 + .../watchgpt/history/History.java | 4 ---- .../watchgpt/history/HistoryUtil.kt | 23 +++++++++++++++++++ build.gradle | 2 +- 6 files changed, 39 insertions(+), 13 deletions(-) delete mode 100644 app/src/main/java/me/superskidder/watchgpt/history/History.java create mode 100644 app/src/main/java/me/superskidder/watchgpt/history/HistoryUtil.kt diff --git a/app/build.gradle b/app/build.gradle index 0e164e7..75de6ac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -50,6 +50,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1' implementation 'androidx.navigation:navigation-ui-ktx:2.4.1' + implementation 'androidx.core:core-ktx:+' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/src/main/java/me/superskidder/watchgpt/MainFragment.kt b/app/src/main/java/me/superskidder/watchgpt/MainFragment.kt index 427ee0f..eac5f1b 100644 --- a/app/src/main/java/me/superskidder/watchgpt/MainFragment.kt +++ b/app/src/main/java/me/superskidder/watchgpt/MainFragment.kt @@ -1,7 +1,6 @@ +package me.superskidder.watchgpt + import android.os.Bundle -import android.speech.tts.TextToSpeech -import android.speech.tts.TextToSpeech.OnInitListener -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -12,12 +11,14 @@ import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import com.google.gson.GsonBuilder -import me.superskidder.watchgpt.R import me.superskidder.watchgpt.config.SimpleConfig import me.superskidder.watchgpt.data.ChatCompletionMessage import me.superskidder.watchgpt.data.ChatGPTApi import me.superskidder.watchgpt.data.ChatGPTRequest import me.superskidder.watchgpt.data.ChatGPTResponse +import me.superskidder.watchgpt.history.messages +import me.superskidder.watchgpt.history.readHistory +import me.superskidder.watchgpt.history.saveHistory import me.superskidder.watchgpt.speaking.BaiduTranslator import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor @@ -26,7 +27,6 @@ import retrofit2.Callback import retrofit2.Response import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory -import java.util.Locale import java.util.concurrent.TimeUnit @@ -42,14 +42,12 @@ class MainFragment : Fragment() { private var apiKey = "" var systemPrompt = "You are a helpful assistant." - private var messages: List = - listOf(ChatCompletionMessage("system", systemPrompt)) + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_main, container, false) } @@ -100,6 +98,8 @@ class MainFragment : Fragment() { } baiduTranslator = BaiduTranslator() + readHistory(requireContext()) + update() } fun msgBox(title: String, content: String, btn: String) { @@ -113,6 +113,11 @@ class MainFragment : Fragment() { dialog.show() } + override fun onDestroy() { + super.onDestroy() + saveHistory(requireContext()) + } + private fun sendMessage(message: String) { val configManager = SimpleConfig(requireContext()) diff --git a/app/src/main/java/me/superskidder/watchgpt/adapters/MainFragmentAdapter.kt b/app/src/main/java/me/superskidder/watchgpt/adapters/MainFragmentAdapter.kt index 528cd33..003f4bf 100644 --- a/app/src/main/java/me/superskidder/watchgpt/adapters/MainFragmentAdapter.kt +++ b/app/src/main/java/me/superskidder/watchgpt/adapters/MainFragmentAdapter.kt @@ -3,6 +3,7 @@ package me.superskidder.watchgpt.adapters import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.viewpager2.adapter.FragmentStateAdapter +import me.superskidder.watchgpt.MainFragment import me.superskidder.watchgpt.SettingsFragment class MainFragmentAdapter(fragmentActivity: FragmentActivity) : diff --git a/app/src/main/java/me/superskidder/watchgpt/history/History.java b/app/src/main/java/me/superskidder/watchgpt/history/History.java deleted file mode 100644 index 927487f..0000000 --- a/app/src/main/java/me/superskidder/watchgpt/history/History.java +++ /dev/null @@ -1,4 +0,0 @@ -package me.superskidder.watchgpt.history; - -public class History { -} diff --git a/app/src/main/java/me/superskidder/watchgpt/history/HistoryUtil.kt b/app/src/main/java/me/superskidder/watchgpt/history/HistoryUtil.kt new file mode 100644 index 0000000..dd3a6a7 --- /dev/null +++ b/app/src/main/java/me/superskidder/watchgpt/history/HistoryUtil.kt @@ -0,0 +1,23 @@ +package me.superskidder.watchgpt.history + +import android.content.Context +import com.google.gson.Gson +import com.google.gson.GsonBuilder +import me.superskidder.watchgpt.MainFragment +import me.superskidder.watchgpt.config.SimpleConfig +import me.superskidder.watchgpt.data.ChatCompletionMessage + +var messages: List = ArrayList() +fun saveHistory(context: Context) { + val configManager = SimpleConfig(context) + val gson = GsonBuilder().create() + configManager.setString("history", gson.toJson(messages)) +} + +fun readHistory(context: Context) { + val configManager = SimpleConfig(context) + val gson = GsonBuilder().create() + val config = configManager.getString("history", gson.toJson(messages)) + messages = gson.fromJson(config, ArrayList().javaClass) + println(messages.forEach(::println)) +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index a9d7811..be5b699 100644 --- a/build.gradle +++ b/build.gradle @@ -2,5 +2,5 @@ plugins { id 'com.android.application' version '8.0.2' apply false id 'com.android.library' version '8.0.2' apply false - id 'org.jetbrains.kotlin.android' version '1.8.0' apply false + id 'org.jetbrains.kotlin.android' version '1.9.0-RC' apply false } \ No newline at end of file