Skip to content

Instantly share code, notes, and snippets.

View siifii's full-sized avatar
🐿️
Focusing

Kareem Alsaifi siifii

🐿️
Focusing
View GitHub Profile
@siifii
siifii / MainActivity.kt
Created September 22, 2021 08:15 — forked from codinginflow/MainActivity.kt
Circular Determinate ProgressBar with Background and Text Tutorial
package com.codinginflow.circulardeterminateprogressbar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private var progr = 0
override fun onCreate(savedInstanceState: Bundle?) {
@siifii
siifii / gist:5dfec4591094357fa6c08ec54e255250
Created September 17, 2020 11:54
handle fragment onBack pressed
activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
//YOUR_CODE
}
})
@siifii
siifii / FileExtension
Created May 3, 2020 20:10
copy input stream to file extension
import android.os.Environment
import java.io.File
import java.io.InputStream
fun File.copyInputStreamToFile(inputStream: InputStream) {
this.outputStream().use { fileOut ->
inputStream.copyTo(fileOut)
}
}
@siifii
siifii / DownloadManagerActivity
Last active May 3, 2020 20:01
Download File with download manager
var downloadID: Long = 0L
var manager: DownloadManager? = null
private val onDownloadComplete: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1)
if (downloadID == id) {
openDownloadedAttachment(context, downloadID)
}
@siifii
siifii / FileUtil
Created April 28, 2020 07:44
How to Get File Path from URI working on -- Android Oreo (8.1) or above
fun Uri.toFilePath(context: Context) : String {
val id = DocumentsContract.getDocumentId(this)
val inputStream = context.contentResolver.openInputStream(this)
val file = File(context.cacheDir.absolutePath + "/" + id)
writeFile(inputStream!!, file)
return file.absolutePath
}
fun writeFile(`in`: InputStream, file: File?) {
@siifii
siifii / dash_line.xml
Created March 9, 2020 11:42
Adding a dash line border shape.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="#FFFFFF" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
@siifii
siifii / RecyclerActivity.kt
Created February 25, 2020 13:17
Filterable & Searchable Recyclerview.
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextChange(newText: String): Boolean {
adapter.filter.filter(newText)
return false
}
override fun onQueryTextSubmit(query: String): Boolean {
return false
}
})
@siifii
siifii / recyclerview_layout.xml
Last active February 23, 2020 13:16
Adding padding for recycerview's last item.
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="0dp"
android:layout_height="0dp"
------
android:layout_marginBottom="40dp"
android:clipToPadding="false"
------
android:paddingBottom="56dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
@siifii
siifii / MyRecyclerActivity.kt
Last active February 23, 2020 13:16
Recyclerview's gridlayout/straggedgridlayout with flexible and dynamic width and height
val layoutManager = FlexboxLayoutManager(this)
layoutManager.flexDirection = FlexDirection.ROW
layoutManager.justifyContent = JustifyContent.FLEX_START
recyclerview.layoutManager = layoutManager
//TODO TO KNOW MORE ABOUT FLEXBOX CHECK https://github.com/google/flexbox-layout