Skip to content

Instantly share code, notes, and snippets.

View 4xes's full-sized avatar

Alexey 4xes

  • Mail.Ru Group
  • Moscow
View GitHub Profile
@4xes
4xes / CursorAdapter.kt
Last active June 26, 2020 13:31
Empty state cursor recycler adapter
package com.efectum.ui.base.adapter
import android.util.Log
import android.database.Cursor
import android.database.DataSetObserver
import androidx.recyclerview.widget.RecyclerView
abstract class CursorAdapter<VH : RecyclerView.ViewHolder>(cursor: Cursor?) : RecyclerView.Adapter<VH>() {
var cursor: Cursor? = null
@4xes
4xes / Error.java
Created March 27, 2020 18:51
Error slider
E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.view.MotionEvent.getX()' on a null object reference
at androidx.constraintlayout.motion.widget.MotionScene.bestTransitionFor(MotionScene.java:254)
at androidx.constraintlayout.motion.widget.MotionScene.processTouchEvent(MotionScene.java:1153)
at androidx.constraintlayout.motion.widget.MotionLayout.onTouchEvent(MotionLayout.java:3063)
at android.view.View.dispatchTouchEvent(View.java:13462)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2881)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3215)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2897)
at com.efectum.ui.collage.widget.ClickableProgressLayout.dispatchTouchEvent(ClickableProgressLayout.kt:43)
package editor.video.motion.fast.slow.core.utils
import android.os.SystemClock
import android.support.test.espresso.*
import android.view.View
import org.hamcrest.Matcher
import java.lang.Exception
import java.util.concurrent.TimeoutException
@4xes
4xes / CollectionUtils.kt
Last active December 20, 2018 11:29
States
fun Map<String, Parcelable>.toBundle(): Bundle {
val output = Bundle()
for (key in keys) {
output.putParcelable(key, this[key])
}
return output
}
fun <T : Parcelable>Bundle.toMap(c: Class<T>): ArrayMap<String, T> {
val output = ArrayMap<String, T>()
printIds()
}
@SuppressLint("HardwareIds")
private fun printIds() {
Log.d("DeviceId", Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID))
Thread(Runnable {
Log.d("Advert", AdvertisingIdClient.getAdvertisingIdInfo(this)?.id)
}).start()
}
@4xes
4xes / ReviewUtils.kt
Created February 1, 2018 12:02
ReviewUtils.kt
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.Parcelable
import android.util.Log
import android.widget.Toast
object ReviewUtils {
fun openStoreReviewInChrome(activity: Activity, urlReview: String) {
val uriStore = Uri.parse(urlReview)
@4xes
4xes / Readme.md
Last active January 17, 2018 16:36
Настройка myTracker
  1. Добавить зависимость от myTracker в Gradle:
compile 'com.my.tracker:mytracker-sdk:1.4.2'
  1. Взять у менеджера id и добавить его в проект через ресурсы или поле в Gradle.
  2. Инициализировать myTracker в Application:
        MyTracker.createTracker(BuildConfig.MY_TRACKER_APP_ID, this)
        MyTracker.initTracker()
 if (BuildConfig.DEBUG) {
//: To run this playground start a SimpleHTTPServer on the commandline like this:
//:
//: `python -m SimpleHTTPServer 8000`
//:
//: It will serve up the current directory, so make sure to be in the directory containing episodes.json
import UIKit
import PlaygroundSupport
@4xes
4xes / Links.txt
Created July 21, 2016 14:56
Work with WebSockets and Push Notifications
@4xes
4xes / FizzBuzz.java
Created May 24, 2016 13:24
Fizz Buzz task
public class FizzBuzz {
public static void fizzbuzz(){
String[] fizzBuzz = {null, "fizz", "buzz", "fizz buzz"};
for(int i = 1; i <= 100; i++){
fizzBuzz[0] = String.valueOf(i);
int fizz = i % 3 == 0? 1: 0;
int buzz = i % 5 == 0? 2: 0;