Skip to content

Instantly share code, notes, and snippets.

View kirich1409's full-sized avatar

Kirill Rozov kirich1409

View GitHub Profile
abstract class Animal {
public void voice(){
System.out.println("unknown");
}
}
final class Cat {
public abstract void voice(){
System.out.println("meow");
}
abstract class Animal {
public void voice(){
System.out.println("unknown");
}
}
final class Cat {
public abstract void voice(){
System.out.println("meow");
}
@kirich1409
kirich1409 / MainFragment.kt
Created November 17, 2018 17:29
Как происходит доставка зависимостей в Fragment сейчас
class MainFragment : Fragment() {
// The dependency isn't final and private
@Inject
lateinit var sampleDep: SampleDependency
override fun onAttach(context: Context) {
super.onAttach(context)
// Inject dependencies with Dagger 2
}
@kirich1409
kirich1409 / 1_MainFragment.kt
Last active February 21, 2020 09:52
Пример реализации FragmentFactory из androidx.fragment 1.1.0, позовляющих доставлять зависимости в конструктор.
// Описываем зависимости в констркуторе, они сразу final и private
class MainFragment(private val dependency: SampleDependency) : Fragment()
StrictMode.ThreadPolicy.Builder threadPolicyBuilder =
new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectDiskReads()
.penaltyLog();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
threadPolicyBuilder.detectResourceMismatches();
}
@kirich1409
kirich1409 / Android OS distribution May 2019.csv
Last active May 8, 2019 07:36
Android OS distribution May 2019
Version October 2018 (%) May 2019(%) Diff (%)
2.3 0.2 0.3 +0.1
4.0 0.3 0.3 0
4.1 1.1 1.2 +0.1
4.2 1.5 1.5 0
4.3 0.4 0.5 +0.1
4.4 7.6 6.9 -0.7
5.0 3.5 3 -0.5
5.1 14.4 11.5 -2.9
6.0 21.3 16.9 -4.4
@kirich1409
kirich1409 / CallbackToFutureAdapter.kt
Last active October 12, 2019 13:26
Sample of new AndroidX Concurrent Futures 1.0.0
fun asyncOperation(): ListenableFuture<Foo> {
return CallbackToFutureAdapter.getFuture { completer: CallbackToFutureAdapter.Resolver<Foo> ->
asyncApi.load(object : OnResult {
override fun onSuccess(foo: Foo) {
completer.set(foo);
}
override fun onError(failure: Failure) {
completer.setException(failure.exception);
@kirich1409
kirich1409 / build.gradle
Last active October 13, 2019 15:29
Jetpack Compose build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "by.kirich1409.sample.jetpackcompose"
@kirich1409
kirich1409 / Hello.kt
Last active October 13, 2019 15:01
Jetpack Compose sample. Composable function
@Composable
fun Hello(name: String) = MaterialTheme {
FlexColumn {
inflexible { // Item height will be equal content height
TopAppBar<MenuItem>( // App Bar with title
title = { Text("Jetpack Compose Sample") }
)
}
expanded(1F) { // occupy whole empty space in the Column
Center { // Center content
@kirich1409
kirich1409 / MainActivity.kt
Created October 13, 2019 15:02
Jetpack Compose sample. Use composable function as content of an Activity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent { Hello("Jetpack Compose") }
}
}