Skip to content

Instantly share code, notes, and snippets.

View Apsaliya's full-sized avatar

Ankit Saliya Apsaliya

  • Pune, India.
View GitHub Profile
@Apsaliya
Apsaliya / README.md
Created August 4, 2020 01:54 — forked from foulegg/README.md
Generate a ClearTax capital gains report using the capital gains statement from Kuvera (depends on beautifulsoup4 and openpyxl)

Installing dependencies

This script requires two Python dependencies: beautifulsoup4 and openpyxl. Install them first using pip:

$ pip install beautifulsoup4
$ pip install openpyxl

You might have to use sudo if installing globally.

@Apsaliya
Apsaliya / ActivityResultRestore.kt
Created June 1, 2020 16:13
On Activity result restore
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
resultIntent: Intent?
) {
lifecycleScope.launch {
if (resultCode == Activity.RESULT_OK && resultIntent != null) {
val uri = resultIntent.data!!
contentResolver
.takePersistableUriPermission(
@Apsaliya
Apsaliya / Restorefile.kt
Created June 1, 2020 16:10
RestoreFile
fun onLocalRestoreRequested(activity: Activity) {
val mimeTypes = arrayOf("application/zip", "application/octet-stream", "application/x-zip-compressed", "multipart/x-zip")
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("*/*")
.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
activity.startActivityForResult(intent, 696)
@Apsaliya
Apsaliya / Restore.kt
Created June 1, 2020 16:08
Restore from stream
suspend fun restoreFromInputStream(context: Context,
contentStream: InputStream): Boolean {
return withContext(Dispatchers.IO) {
var result = false
var toBeRestoredZipFile: File? = null
var extractedFilesDir: File? = null
try {
val dbFile = context.getDatabasePath("dbName.db")
val parentDbFile = dbFile.parentFile
val dataDir = requireNotNull(context.filesDir.parentFile)
@Apsaliya
Apsaliya / activityResult.kt
Created June 1, 2020 15:58
On Activity result
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
resultIntent: Intent?
) {
lifecycleScope.launch {
if (resultCode == Activity.RESULT_OK && resultIntent != null) {
val uri = resultIntent.data!!
val pfd = contentResolver.openFileDescriptor(uri, "w")
pfd?.use {
@Apsaliya
Apsaliya / backupfile.kt
Created June 1, 2020 15:49
Create backup file in external storage
fun onLocalBackupRequested(activity: Activity) {
val mimeTypes = arrayOf("application/zip")
val fn = getBackupFileName(prefix)
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/zip")
.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
.putExtra(
Intent.EXTRA_TITLE, fn
)
@Apsaliya
Apsaliya / backup.kt
Last active June 1, 2020 17:22
backup_zip
suspend fun packZipFileForBackup(context: Context): File? {
return withContext(Dispatchers.IO) {
val dbFile = context.getDatabasePath("dbName.db")
val dbParentDirectory = dbFile.parentFile
val zipFilePath = context.filesDir.path + "backup.zip" // create zip file for backup
val zipFile = File(zipFilePath)
val daraDir = context.filesDir.parentFile
if (daraDir != null) {
val sharedPrefDirectoryPath = daraDir.absolutePath + "/shared_prefs"