diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index 849be02..fcc5e40 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 13c2fac..8fa344e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,7 +2,6 @@
-
>? = null
private lateinit var fileChooserLauncher: ActivityResultLauncher
+ private lateinit var urlInput: EditText
+ private lateinit var loadUrlButton: Button
+
+ companion object {
+ const val SHARED_PREFS_NAME = "lobchat_prefs"
+ const val KEY_SAVED_URL = "saved_url"
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 初始化视图组件
webView = findViewById(R.id.webView)
- urlInputLayout = findViewById(R.id.urlInputLayout)
urlInput = findViewById(R.id.urlInput)
loadUrlButton = findViewById(R.id.loadUrlButton)
- // 检查并请求存储权限
- if (!hasStoragePermission()) {
- requestStoragePermission()
+ // 从 SharedPreferences 加载上次保存的 URL
+ val sharedPreferences = getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE)
+ val savedUrl = sharedPreferences.getString(KEY_SAVED_URL, "")
+ if (!savedUrl.isNullOrEmpty()) {
+ urlInput.setText(savedUrl)
}
// 设置状态栏为透明,使系统自动使用默认的颜色
@@ -84,6 +84,10 @@ class MainActivity : AppCompatActivity() {
});
""".trimIndent(), null
)
+ // 隐藏输入框和按钮
+ urlInput.visibility = View.GONE
+ loadUrlButton.visibility = View.GONE
+ webView.visibility = View.VISIBLE
}
}
@@ -121,89 +125,19 @@ class MainActivity : AppCompatActivity() {
url = "https://$url"
}
+ // 保存用户输入的 URL 到 SharedPreferences
+ with(sharedPreferences.edit()) {
+ putString(KEY_SAVED_URL, url)
+ apply()
+ }
+
// 加载用户输入的 URL
webView.loadUrl(url)
-
- // 切换视图:隐藏 URL 输入部分并显示 WebView
- urlInputLayout.visibility = View.GONE
- webView.visibility = View.VISIBLE
} else {
Toast.makeText(this, "Please enter a valid URL", Toast.LENGTH_SHORT).show()
}
}
}
- // 方法:检查是否具有存储权限
- private fun hasStoragePermission(): Boolean {
- return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- ContextCompat.checkSelfPermission(
- this,
- android.Manifest.permission.READ_MEDIA_IMAGES
- ) == PackageManager.PERMISSION_GRANTED
- } else {
- ContextCompat.checkSelfPermission(
- this,
- android.Manifest.permission.READ_EXTERNAL_STORAGE
- ) == PackageManager.PERMISSION_GRANTED
- }
- }
-
- // 方法:请求存储权限
- private fun requestStoragePermission() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.READ_MEDIA_IMAGES)) {
- showPermissionRationale(android.Manifest.permission.READ_MEDIA_IMAGES)
- } else {
- ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.READ_MEDIA_IMAGES), 1)
- }
- } else {
- if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.READ_EXTERNAL_STORAGE)) {
- showPermissionRationale(android.Manifest.permission.READ_EXTERNAL_STORAGE)
- } else {
- ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE), 1)
- }
- }
- }
-
- // 方法:显示权限请求解释
- private fun showPermissionRationale(permission: String) {
- AlertDialog.Builder(this)
- .setTitle("Permission Required")
- .setMessage("This app requires access to your storage to select images. Please grant the permission.")
- .setPositiveButton("OK") { _, _ ->
- ActivityCompat.requestPermissions(this, arrayOf(permission), 1)
- }
- .setNegativeButton("Cancel") { dialog, _ ->
- dialog.dismiss()
- }
- .create()
- .show()
- }
-
- // 处理权限请求结果
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- if (requestCode == 1) {
- if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
- Toast.makeText(this, "Read permission granted", Toast.LENGTH_SHORT).show()
- } else {
- Toast.makeText(this, "Read permission denied", Toast.LENGTH_SHORT).show()
- // 引导用户前往设置手动开启权限
- AlertDialog.Builder(this)
- .setTitle("Permission Denied")
- .setMessage("Storage permission is required for this app. Please allow it from settings.")
- .setPositiveButton("Settings") { _, _ ->
- val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
- val uri = Uri.fromParts("package", packageName, null)
- intent.data = uri
- startActivity(intent)
- }
- .setNegativeButton("Cancel") { dialog, _ ->
- dialog.dismiss()
- }
- .create()
- .show()
- }
- }
- }
-}
\ No newline at end of file
+ // 此时不再需要权限检查方法
+}