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