mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-19 20:29:02 +00:00
Try to export avatar as png
This commit is contained in:
parent
705bbb93b7
commit
4e7496a300
1 changed files with 34 additions and 4 deletions
|
|
@ -1,12 +1,17 @@
|
|||
package com.habitrpg.android.habitica.ui.activities
|
||||
|
||||
import android.R.attr.bitmap
|
||||
import android.R.attr.name
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.view.LayoutInflater
|
||||
import android.view.Menu
|
||||
|
|
@ -16,6 +21,7 @@ import androidx.appcompat.app.AppCompatActivity
|
|||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.habitrpg.android.habitica.HabiticaApplication
|
||||
|
|
@ -36,9 +42,13 @@ import com.habitrpg.common.habitica.helpers.ExceptionHandler
|
|||
import com.habitrpg.common.habitica.helpers.LanguageHelper
|
||||
import com.habitrpg.common.habitica.helpers.launchCatching
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.OutputStream
|
||||
import java.util.Date
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
abstract class BaseActivity : AppCompatActivity() {
|
||||
@Inject
|
||||
lateinit var notificationsManager: NotificationsManager
|
||||
|
|
@ -232,11 +242,31 @@ abstract class BaseActivity : AppCompatActivity() {
|
|||
sharingIntent.putExtra(Intent.EXTRA_TEXT, message)
|
||||
}
|
||||
if (image != null) {
|
||||
val path = MediaStore.Images.Media.insertImage(this.contentResolver, image, "${(Date())}", null)
|
||||
if (path != null) {
|
||||
val uri = Uri.parse(path)
|
||||
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri)
|
||||
val fos: OutputStream
|
||||
val uri: Uri
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
val resolver = contentResolver
|
||||
val contentValues = ContentValues()
|
||||
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "${Date()}.png")
|
||||
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/png")
|
||||
contentValues.put(
|
||||
MediaStore.MediaColumns.RELATIVE_PATH,
|
||||
Environment.DIRECTORY_PICTURES
|
||||
)
|
||||
uri =
|
||||
resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) ?: return
|
||||
fos = resolver.openOutputStream(uri) ?: return
|
||||
} else {
|
||||
val imagesDir =
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
||||
.toString()
|
||||
val file = File(imagesDir, "${Date()}.png")
|
||||
uri = file.absoluteFile.toUri()
|
||||
fos = FileOutputStream(file)
|
||||
}
|
||||
image.compress(Bitmap.CompressFormat.PNG, 100, fos)
|
||||
fos.close()
|
||||
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri)
|
||||
}
|
||||
startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_using)))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue