Skip to content

Instantly share code, notes, and snippets.

View erdemtopak's full-sized avatar
:octocat:

Erdem Topak erdemtopak

:octocat:
  • Flink
  • Berlin
View GitHub Profile
@erdemtopak
erdemtopak / viewModelFactory.kt
Created April 14, 2020 13:20
Create ViewModelFactory
fun createViewModelFactory(viewModel: ViewModel): ViewModelProvider.Factory {
return object : ViewModelProvider.Factory {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel?> create(modelClass: Class<T>): T = viewModel as T
}
}
@erdemtopak
erdemtopak / CoroutineOrder.kt
Created March 18, 2020 09:33
Coroutine Execution For Humans
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
object Main {
@JvmStatic
fun main(args: Array<String>) {
runBlocking {
val job = launch {
println("Coroutine start")
launch {
@erdemtopak
erdemtopak / build.kts
Created March 9, 2020 10:07
Dependency List for Multi-Module Projects
tasks.register<DependencyReportTask>("allDependencies") {
evaluationDependsOnChildren()
this.setRenderer(org.gradle.api.tasks.diagnostics.internal.dependencies.AsciiDependencyReportRenderer())
}
@erdemtopak
erdemtopak / ZoomLayoutManager.kt
Created January 13, 2020 10:08
Zoom recyclerview layout manager
import android.content.Context
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kotlin.math.abs
class ZoomRecyclerLayout: LinearLayoutManager {
private val mShrinkAmount = 0.15f
private val mShrinkDistance = 0.9f
@erdemtopak
erdemtopak / extend_trial.sh
Created December 17, 2019 10:35
Extend Trial
#!/bin/sh
rm ~/Library/Preferences/GoLand2019*/eval/*evaluation.key
# The one below not required right not but keep in mind
# rm ~/Library/Preferences/GoLand2019*/options/options.xml
@erdemtopak
erdemtopak / NoNotNullAssertionOperator.kt
Created August 1, 2019 13:55
Ktlint rule for `!!` (not-null assertion operator)
import com.github.shyiko.ktlint.core.Rule
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.jetbrains.kotlin.lexer.KtTokens.EXCLEXCL
class NoNotNullAssertionOperator : Rule("no-notnull-assertion") {
override fun visit(
node: ASTNode,
autoCorrect: Boolean,
emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit
@erdemtopak
erdemtopak / DrawableTransition.kt
Created July 9, 2019 08:45
Drawable Transition animation
/*
** res/drawable/transition_background.xml **
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_selection_label_background_gray" />
<item android:drawable="@drawable/shape_selection_label_background_blue" />
</transition>
** layout file **
@erdemtopak
erdemtopak / ShakeAnim.kt
Created July 9, 2019 08:24
Shake Animation for TextInputFields
/* res/anim/shake.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="50"
android:fromXDelta="-0.3%"
android:repeatCount="5"
android:repeatMode="reverse"
android:toXDelta="0.3%"/>
</set>
@erdemtopak
erdemtopak / RestartApp.kt
Created March 13, 2019 16:49
Restart Android Application
package com.erdem.test;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.view.View
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
import java.lang.ref.WeakReference
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty
public fun <V : View> Fragment.bindView(id: Int): ReadOnlyProperty<Fragment, V> = ViewFinderProperty(id)