Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.blendin.app.Utl
- import android.content.Context
- import android.graphics.Bitmap
- import com.amazonaws.auth.BasicAWSCredentials
- import com.amazonaws.mobile.client.AWSMobileClient
- import com.amazonaws.mobileconnectors.s3.transferutility.TransferListener
- import com.amazonaws.mobileconnectors.s3.transferutility.TransferState
- import com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility
- import com.amazonaws.services.s3.AmazonS3Client
- import com.amazonaws.services.s3.model.CannedAccessControlList
- import com.blendin.app.R
- import com.blendin.core.extentions.toast
- import timber.log.Timber
- import java.io.File
- import java.io.FileOutputStream
- import java.io.OutputStream
- class WpsService {
- companion object {
- fun initWPS(context: Context) {
- AWSMobileClient.getInstance().initialize(context).execute()
- }
- fun uploadImage(
- fileName: String,
- bitmap: Bitmap,
- context: Context,
- onUploaded: () -> Unit,
- onError: () -> Unit
- ) {
- val credentials = BasicAWSCredentials(
- context.resources.getString(R.string.WPS_KEY),
- context.resources.getString(R.string.WPS_SECRET)
- )
- val s3Client = AmazonS3Client(credentials)
- val transferUtility = TransferUtility.builder()
- .context(context)
- .awsConfiguration(AWSMobileClient.getInstance().configuration)
- .s3Client(s3Client)
- .build()
- val file: File = persistImage(bitmap, context)
- val uploadObserver = transferUtility.upload(
- "blendin-userfiles-mobilehub-1929261559",
- "jsaS3/$fileName",
- file,
- CannedAccessControlList.PublicRead
- )
- uploadObserver.setTransferListener(object : TransferListener {
- override fun onProgressChanged(id: Int, bytesCurrent: Long, bytesTotal: Long) {
- val percentDonef = bytesCurrent / bytesTotal * 100
- val percentDone = percentDonef.toInt()
- Timber.e("PERCENT$percentDone.toString()")
- }
- override fun onStateChanged(id: Int, state: TransferState?) {
- if (TransferState.COMPLETED == state) {
- context.toast("UPLOADED!")
- Timber.e("UPLOAD")
- onUploaded()
- }
- }
- override fun onError(id: Int, ex: Exception?) {
- onError()
- context.toast("Error WPS :" + ex!!.message!!)
- Timber.e("Error WPS :" + ex.message!!)
- }
- })
- }
- fun persistImage(bitmap: Bitmap, context: Context): File {
- val filesDir: File = context.filesDir
- val imageFile = File(filesDir, "testImg" + ".jpg")
- var os: OutputStream
- try {
- os = FileOutputStream(imageFile)
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os)
- os.flush()
- os.close()
- } catch (e: Exception) {
- com.github.ajalt.timberkt.e { "Error writing bitmap$e" }
- }
- return imageFile
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement