Compare commits

...

2 Commits

2 changed files with 29 additions and 7 deletions

View File

@ -12,7 +12,7 @@ android {
minSdk = 24
targetSdk = 34
versionCode = 4
versionName = "1.0.3"
versionName = "1.0.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

View File

@ -9,6 +9,7 @@ import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.view.View
import android.webkit.MimeTypeMap
import android.widget.AdapterView
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
@ -20,6 +21,7 @@ import com.ray650128.floatingwindow.utils.DensityUtil
import com.ray650128.floatingwindow.utils.FloatingWindowHelperUtils
import com.ray650128.floatingwindow.utils.PreferenceUtil
import com.ray650128.floatingwindow.view.ValueEditor
import java.io.File
class SettingActivity : AppCompatActivity() {
@ -52,15 +54,16 @@ class SettingActivity : AppCompatActivity() {
private val galleryLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data = result.data
imageUri = data?.data
val returnUri = data?.data ?: return@registerForActivityResult
imageUri = saveImageToCache(returnUri)
Glide.with(this).load(imageUri).into(binding.imgPreview)
FloatingWindowHelperUtils.setIcon(windowIcon, imageUri)
FloatingWindowHelperUtils.setIcon(windowIcon, Uri.parse(imageUri))
//workingCheckItemAdapter.setImageUri(currentPosition, currentUri)
//checkPassButton()
}
}
private var imageUri: Uri? = null
private var imageUri: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -72,7 +75,7 @@ class SettingActivity : AppCompatActivity() {
yOffset = PreferenceUtil.yOffset
windowGravity = FloatingWindowHelperUtils.GravityType.fromInt(PreferenceUtil.gravity)
windowIcon = FloatingWindowHelperUtils.IconType.fromInt(PreferenceUtil.icon)
imageUri = if (PreferenceUtil.iconPath.isNullOrEmpty()) null else {
if (!PreferenceUtil.iconPath.isNullOrEmpty()) {
Uri.parse(PreferenceUtil.iconPath)
}
@ -94,7 +97,7 @@ class SettingActivity : AppCompatActivity() {
onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
windowIcon = FloatingWindowHelperUtils.IconType.fromIndex(position)
FloatingWindowHelperUtils.setIcon(windowIcon, imageUri)
FloatingWindowHelperUtils.setIcon(windowIcon, Uri.parse(imageUri))
if (windowIcon == FloatingWindowHelperUtils.IconType.CUSTOM) {
imgPreview.isVisible = true
btnPickPhoto.isVisible = true
@ -205,7 +208,7 @@ class SettingActivity : AppCompatActivity() {
PreferenceUtil.yOffset = yOffset
PreferenceUtil.gravity = windowGravity.type
PreferenceUtil.icon = windowIcon.value
PreferenceUtil.iconPath = imageUri?.toString()
PreferenceUtil.iconPath = imageUri
finish()
}
@ -230,4 +233,23 @@ class SettingActivity : AppCompatActivity() {
val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI)
galleryLauncher.launch(intent)
}
private fun saveImageToCache(uri: Uri?): String? {
if (uri == null) return null
val inputStream = contentResolver.openInputStream(uri)
inputStream?.use { input ->
val extension = getFileExtension(uri.toString())
val outputFile = File(cacheDir, "custom.$extension")
outputFile.outputStream().use { output ->
input.copyTo(output)
}
return outputFile.absolutePath
}
return null
}
private fun getFileExtension(uri: String): String {
return MimeTypeMap.getSingleton().getExtensionFromMimeType(contentResolver.getType(Uri.parse(uri)))
?: "jpg" // Default extension
}
}