Skip to content

Commit 8891f76

Browse files
committed
Add SaveBitmap.kt utils function #134
Signed-off-by: Sanju S <spikeysanju98@gmail.com>
1 parent a77fbcd commit 8891f76

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
*
3+
* *
4+
* * * MIT License
5+
* * *
6+
* * * Copyright (c) 2020 Spikey Sanju
7+
* * *
8+
* * * Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* * * of this software and associated documentation files (the "Software"), to deal
10+
* * * in the Software without restriction, including without limitation the rights
11+
* * * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* * * copies of the Software, and to permit persons to whom the Software is
13+
* * * furnished to do so, subject to the following conditions:
14+
* * *
15+
* * * The above copyright notice and this permission notice shall be included in all
16+
* * * copies or substantial portions of the Software.
17+
* * *
18+
* * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* * * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* * * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* * * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* * * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* * * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24+
* * * SOFTWARE.
25+
* *
26+
*
27+
*
28+
*/
29+
30+
package thecodemonks.org.nottzapp.utils
31+
32+
import android.app.Activity
33+
import android.content.ContentValues
34+
import android.graphics.Bitmap
35+
import android.net.Uri
36+
import android.os.Build
37+
import android.os.Environment
38+
import android.provider.MediaStore
39+
40+
@JvmField
41+
val DEFAULT_FILENAME = "${"Expenso" + System.currentTimeMillis()}.png"
42+
43+
fun saveBitmap(activity: Activity, bitmap: Bitmap, filename: String = DEFAULT_FILENAME): Uri? {
44+
val contentValues = ContentValues().apply {
45+
put(MediaStore.MediaColumns.DISPLAY_NAME, filename)
46+
put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg")
47+
48+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
49+
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES)
50+
}
51+
}
52+
53+
val contentResolver = activity.contentResolver
54+
55+
val imageUri: Uri? = contentResolver.insert(
56+
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
57+
contentValues
58+
)
59+
60+
return imageUri.also {
61+
val fileOutputStream = imageUri?.let { contentResolver.openOutputStream(it) }
62+
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream)
63+
fileOutputStream?.close()
64+
}
65+
}

0 commit comments

Comments
 (0)