Skip to content

Instantly share code, notes, and snippets.

View ozgurg's full-sized avatar
🏠
Working from home

Özgür Görgülü ozgurg

🏠
Working from home
View GitHub Profile
@ozgurg
ozgurg / DateTimePicker.kt
Last active April 21, 2023 22:53
Android DateTimePicker (MaterialDatePicker + MaterialTimePicker)
import androidx.fragment.app.FragmentManager
import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.timepicker.MaterialTimePicker
import java.util.Calendar
class DateTimePicker(
private val datePicker: MaterialDatePicker<Long>,
private val timePicker: MaterialTimePicker
) {
private var onDateTimeSelectedListener: ((dateTime: DateTime) -> Unit)? = null
@ozgurg
ozgurg / mapTypedArray.kt
Created April 15, 2023 23:58
Kotlin mapTypedArray
inline fun <reified IT, reified OT> Array<IT>.mapTypedArray(transform: (IT) -> OT): Array<OT> {
return map(transform).toTypedArray()
}
@ozgurg
ozgurg / FullScreenDialogFragment.kt
Last active April 14, 2023 19:12
Android Material 3 Full Screen Dialog Style (Dark + Light Theme)
class FullScreenDialogFragment : DialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NO_TITLE, R.style.Theme_App_FullScreenDialog)
}
}
(() => {
"use strict";
let files = null;
window.addEventListener("paste", (event) => {
files = event.clipboardData.files;
document.querySelector('[aria-label="Search by image"]').click();
@ozgurg
ozgurg / RealPathUtil.java
Created August 18, 2022 23:48 — forked from tatocaster/RealPathUtil.java
Real Path Utility class for Android, works for all API
import android.annotation.SuppressLint;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
@ozgurg
ozgurg / Extensions.kt
Created August 16, 2022 23:38
Useful Kotlin extensions
fun <T> MutableList<T>.addOrRemove(item: T) {
if (this.contains(item)) {
this.remove(item)
} else {
this.add(item)
}
}
fun <T> MutableList<T>.findIndex(predicate: (T) -> Boolean): Int {
val item = this.find(predicate)
@ozgurg
ozgurg / io.js
Last active August 15, 2022 14:27
Node.js type="module" path and fs helper. Put the file in the root folder
import { fileURLToPath } from "url";
import { dirname, join } from "path";
import { createReadStream, createWriteStream, existsSync, readFileSync, unlinkSync } from "fs";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const io = Object.freeze({
join,
existsSync,
#!/usr/bin/env node
import debugFactory from "debug";
import dotenv from "dotenv";
import http from "http";
import app from "./../src/app.js";
const debug = debugFactory(process.env.DEBUG);
/**
@ozgurg
ozgurg / www.ts
Last active May 3, 2022 09:59
Node + Express bin/www with TypeScript
#!/usr/bin/env node
import debugFactory from "debug";
import http from "http";
import app from "./../app";
const debug = debugFactory(process.env.DEBUG);
/**
* Get port from environment and store in Express
*/
@ozgurg
ozgurg / make-linear-gradient.scss
Created April 14, 2022 21:52
SASS make-linear-gradient function
@function make-linear-gradient($degree, $stops) {
$gradient: ();
@each $percentage, $color in $stops {
$gradient: append($gradient, $color $percentage, comma)
}
@return linear-gradient($degree, $gradient)
}
.sass {