WIP for profile loading
This commit is contained in:
parent
e38dc6c913
commit
e34ff6ff2b
2 changed files with 103 additions and 2 deletions
|
@ -237,7 +237,7 @@ class UserInfoActivity : AbsBaseActivity() {
|
||||||
.compressToBitmapAsFlowable(File(profileImagePath, USER_BANNER))
|
.compressToBitmapAsFlowable(File(profileImagePath, USER_BANNER))
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe { bitmap -> bannerImage.setImageBitmap(bitmap) })
|
.subscribe({ bitmap -> bannerImage.setImageBitmap(bitmap) }, { t -> println() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadImageFromStorage(path: String) {
|
private fun loadImageFromStorage(path: String) {
|
||||||
|
@ -249,7 +249,7 @@ class UserInfoActivity : AbsBaseActivity() {
|
||||||
.compressToBitmapAsFlowable(File(path, USER_PROFILE))
|
.compressToBitmapAsFlowable(File(path, USER_PROFILE))
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe { bitmap -> userImage!!.setImageBitmap(bitmap) })
|
.subscribe({ bitmap -> userImage!!.setImageBitmap(bitmap) }, { t -> println() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun saveToInternalStorage(bitmapImage: Bitmap, userBanner: String): String {
|
private fun saveToInternalStorage(bitmapImage: Bitmap, userBanner: String): String {
|
||||||
|
|
101
app/src/main/java/code/name/monkey/retromusic/util/ImageSaver.kt
Normal file
101
app/src/main/java/code/name/monkey/retromusic/util/ImageSaver.kt
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 Hemanth Savarala.
|
||||||
|
*
|
||||||
|
* Licensed under the GNU General Public License v3
|
||||||
|
*
|
||||||
|
* This is free software: you can redistribute it and/or modify it under
|
||||||
|
* the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package code.name.monkey.retromusic.util
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.BitmapFactory
|
||||||
|
import android.os.Environment
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileInputStream
|
||||||
|
import java.io.FileOutputStream
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by hemanths on 2019-11-05.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class ImageSaver(val context: Context) {
|
||||||
|
private var external: Boolean = false
|
||||||
|
private var directoryName: String = "RetroMusic"
|
||||||
|
private var fileName: String = "profile.png"
|
||||||
|
|
||||||
|
fun setFileName(fileName: String): ImageSaver {
|
||||||
|
this.fileName = fileName
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setDirectoryName(directoryName: String): ImageSaver {
|
||||||
|
this.directoryName = directoryName
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setStoreType(external: Boolean): ImageSaver {
|
||||||
|
this.external = external
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun save(bitmap: Bitmap) {
|
||||||
|
var fileOutputStream: FileOutputStream? = null
|
||||||
|
try {
|
||||||
|
fileOutputStream = FileOutputStream(createFile())
|
||||||
|
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream)
|
||||||
|
} catch (er: Exception) {
|
||||||
|
println(er)
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
fileOutputStream?.close()
|
||||||
|
} catch (er: IOException) {
|
||||||
|
println(er)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getFile(): File {
|
||||||
|
return createFile()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun createFile(): File {
|
||||||
|
val directory: File = if (external) {
|
||||||
|
getFileStorePlace(directoryName)
|
||||||
|
} else {
|
||||||
|
context.getDir(directoryName, Context.MODE_PRIVATE)
|
||||||
|
}
|
||||||
|
if (!directory.exists() && !directory.mkdirs()) {
|
||||||
|
println("Error in creating folders $directory")
|
||||||
|
}
|
||||||
|
println("Create file -> $directory/$fileName")
|
||||||
|
return File(directory, fileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getFileStorePlace(directoryName: String): File {
|
||||||
|
return File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), directoryName)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun load(): Bitmap? {
|
||||||
|
var inputStream: FileInputStream? = null
|
||||||
|
return try {
|
||||||
|
inputStream = FileInputStream(createFile())
|
||||||
|
BitmapFactory.decodeStream(inputStream)
|
||||||
|
} catch (er: Exception) {
|
||||||
|
try {
|
||||||
|
inputStream?.close()
|
||||||
|
} catch (e: IOException) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue