Sharing animation

This commit is contained in:
2021-09-08 00:48:20 +02:00
parent 3397efe47f
commit 09ce7b6fb8
15 changed files with 469 additions and 99 deletions
@@ -0,0 +1,63 @@
package com.ericampire.android.androidstudycase.util.extension
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.os.Environment
import android.widget.Toast
import androidx.core.app.ShareCompat
import androidx.core.content.FileProvider
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.downloader.utils.Utils
import org.zxconnect.android.beserve.util.R
import java.io.File
fun Context.downloadAndShare(
url: String,
onSuccess: () -> Unit,
onError: (String?) -> Unit
) {
val dirPath = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).toString()
val fileName = url.substringAfterLast("/")
val filePath = Utils.getPath(dirPath, fileName)
val downloadRequest = PRDownloader.download(url, dirPath, fileName).build()
downloadRequest.start(object : OnDownloadListener {
override fun onDownloadComplete() {
shareFile(filePath)
onSuccess()
}
override fun onError(error: Error) {
onError(error.serverErrorMessage)
}
})
}
fun Context.copyTextToClipboard(text: String) {
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("text", text)
clipboardManager.setPrimaryClip(clipData)
Toast.makeText(this, "Link copied to clipboard", Toast.LENGTH_LONG).show()
}
private fun Context.shareFile(filePath: String) {
val file = File(filePath)
val fileUri = FileProvider.getUriForFile(
this,
this.applicationContext.packageName.toString() + ".provider",
file
)
val shareIntent = ShareCompat.IntentBuilder(this)
.setChooserTitle(getString(R.string.txt_share_lottie_file))
.setStream(fileUri)
.setType("application/pdf")
.createChooserIntent()
startActivity(shareIntent)
}