All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
class StickySectionItemDecoration( | |
private val recyclerView: RecyclerView, | |
private val callback: Callback | |
) : RecyclerView.ItemDecoration() { | |
private var headerViewCache: View? = null | |
private var isInLayout = false | |
interface Callback { | |
fun isHeader(position: Int): Boolean |
class NoAnimationItemAnimator : SimpleItemAnimator() { | |
override fun animateRemove(holder: RecyclerView.ViewHolder): Boolean { | |
dispatchRemoveFinished(holder) | |
return false | |
} | |
override fun animateAdd(holder: RecyclerView.ViewHolder): Boolean { | |
dispatchAddFinished(holder) | |
return false | |
} |
enum class MultiState { | |
CONTENT, | |
EMPTY, | |
LOADING, | |
ERROR | |
} |
class AspectRatioCardView @JvmOverloads constructor( | |
context: Context, | |
attrs: AttributeSet? = null, | |
defStyleAttr: Int = 0 | |
) : CardView(context, attrs, defStyleAttr) { | |
private var ratio = 1.0f | |
init { | |
attrs?.let { |
__author__ = 'schwa' | |
import os | |
import subprocess | |
import glob | |
from github import Github # pip install PyGithub | |
from bitbucket.bitbucket import Bitbucket # pip install --user bitbucket-api | |
GH_USERNAME = '[email protected]' | |
GH_PASSWORD = '1234' |
#!/usr/bin/env python | |
################# | |
## CREDENTIALS ## | |
################# | |
GH_PERSONAL_ACCESS_TOKEN = '' | |
BB_USERNAME = '' | |
BB_APP_PASSWORD = '' | |
BB_OAUTH_KEY = '' |
class AutoMaxLinesTextView @JvmOverloads constructor( | |
context: Context, | |
attrs: AttributeSet? = null, | |
defStyleAttr: Int = android.R.attr.textViewStyle | |
) : AppCompatTextView(context, attrs, defStyleAttr) { | |
override fun onLayout( | |
changed: Boolean, | |
left: Int, | |
top: Int, |
class MarqueeAnimateView @JvmOverloads constructor( | |
context: Context, | |
attrs: AttributeSet? = null, | |
defStyleAttr: Int = 0 | |
) : View(context, attrs, defStyleAttr) { | |
companion object { | |
private const val STATE_START = 0 | |
private const val STATE_STOP = 1 |
#!/bin/bash | |
if [ -z "$1" ] | |
then | |
path="." | |
else | |
path=$1 | |
fi | |
for filename in $path"/strings"*.xml; do |
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.