Skip to content

Instantly share code, notes, and snippets.

@premacck
premacck / EndlessRecyclerViewScrollListener.java
Last active August 22, 2018 07:11
Endless RecyclerView scroll listener for simple pagination in Android.
// TODO: put package information here
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import org.jetbrains.annotations.Contract;
/**
@premacck
premacck / FlippedProgressBar.java
Last active August 22, 2018 07:11
Android progressBar in reverse direction.
// TODO: put package information here
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.ProgressBar;
/**
*
* Created by Prem $ on 9/29/2017.
@premacck
premacck / DynamicColorProgress.java
Last active April 21, 2019 05:52
Android - Circular indeterminate ProgressBar smoothly fading between various material colors
// TODO: put package information here
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.util.AttributeSet;
import android.widget.ProgressBar;
@premacck
premacck / StatefulRecyclerView.java
Last active August 22, 2018 07:11
RecyclerView which saves and restores states on application lifecycle changes.
// TODO: put package information here
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
/**
@premacck
premacck / ShimmerLinearLayout.java
Last active April 1, 2019 10:45
Animating, customizable Shimmer layout to be used as a substitute for LinearLayout
// TODO: put package information here
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
@premacck
premacck / ShimmerRelativeLayout.java
Last active April 21, 2019 05:51
Animating, customizable Shimmer layout to be used as a substitute for RelativeLayout
// TODO: put package information here
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
@premacck
premacck / BaseRecyclerView.java
Last active August 22, 2018 07:10
A Base RecyclerView class for ease in creating Adapters with DiffUtil and dependency injection.
// TODO: put package information here
import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
/**
@premacck
premacck / VerticalViewPager,java
Created October 12, 2018 14:18
Vertical ViewPager
/**
* Uses a combination of a PageTransformer and swapping X & Y coordinates
* of touch events to create the illusion of a vertically scrolling ViewPager.
*
* Requires API 11+
*
*/
public class VerticalViewPager extends ViewPager {
public VerticalViewPager(Context context) {
@premacck
premacck / BlurBottomSheet.kt
Last active June 6, 2023 06:55
Bottom sheet dialog with dim and blur background, and curved corners. works with BlurKit (https://github.com/CameraKit/blurkit-android) and Anko (https://github.com/Kotlin/anko)
//TODO: add package info here
import android.os.Bundle
import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.accessibility.AccessibilityNodeInfo
import android.widget.FrameLayout
import androidx.annotation.LayoutRes
@premacck
premacck / BlurAlertDialog.kt
Last active March 29, 2019 08:42
AlertDialog like DoalogFragment with blur background. Works with BlurKit (https://github.com/CameraKit/blurkit-android) and Anko (https://github.com/Kotlin/anko)
// TODO: add package info here
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.accessibility.AccessibilityNodeInfo
import androidx.annotation.StringRes
import androidx.annotation.StyleRes