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.
| val world = "World" | |
| val spannedText = SpannableString("Hello $world!") | |
| spannedText | |
| .spanWith(world) { | |
| what = BackgroundColorSpan(Color.RED) | |
| flags = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | |
| } | |
| .spanWith(world) { | |
| what = StyleSpan(Typeface.BOLD) | |
| flags = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE |
| # ALIAS | |
| # ============= | |
| alias ..='cd ..' | |
| case `uname` in | |
| Darwin) | |
| alias flushdns='sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache flushed' | |
| alias ls='ls -GpF' # Mac OSX specific | |
| alias ll='ls -alGpF' # Mac OSX specific | |
| ;; |
| #include <U8g2lib.h> | |
| // constructor | |
| U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ 4, /* data=*/ 5); | |
| // fake data | |
| const String SYMBOL = "Bitcoin"; | |
| const String QUOTE = "USD"; | |
| const float PRICE = 20000.12345; | |
| const float PERCENT_1h = -1.12345; |
| #include <ESP8266WiFi.h> | |
| #include <WiFiClientSecure.h> | |
| #include <ArduinoJson.h> | |
| const char* SSID = "SSID"; | |
| const char* PASSWORD = "PASSWORD"; | |
| const String API_KEY = "API_KEY"; | |
| const char* SYMBOL = "BTC"; |
| // + info: https://arduino-esp8266.readthedocs.io/en/2.4.2/esp8266wifi/readme.html | |
| #include <ESP8266WiFi.h> | |
| const char* SSID = "SSID"; | |
| const char* PASSWORD = "PASSWORD"; | |
| void setup() { | |
| Serial.begin(115200); | |
| delay(100); | |
| interface AdapterUpdatable<TYPE> { | |
| companion object { | |
| private const val DEFAULT_UPDATE_CURRENT_LIST = false | |
| } | |
| val list: MutableList<TYPE> | |
| fun update( | |
| newList: List<TYPE>, | |
| updateCurrentList: Boolean = DEFAULT_UPDATE_CURRENT_LIST, |
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.
| #!/bin/bash | |
| if [ -z "$1" ] | |
| then | |
| path="." | |
| else | |
| path=$1 | |
| fi | |
| for filename in $path"/strings"*.xml; do |
| package me.seebrock3r.common.widget | |
| import android.graphics.Canvas | |
| import android.graphics.Paint | |
| import android.graphics.Rect | |
| import android.view.View | |
| import androidx.annotation.ColorInt | |
| import androidx.annotation.Px | |
| import androidx.core.graphics.withTranslation | |
| import androidx.core.view.children |
| 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 |