View CalendarDateRange.kt
import java.util.Calendar | |
import java.util.Date | |
class CalendarRange(override val start: Calendar, override val endInclusive: Calendar, val field: Int = Calendar.DAY_OF_YEAR) : | |
ClosedRange<Calendar>, Iterable<Calendar> { | |
override fun iterator(): Iterator<Calendar> { | |
return CalendarIterator(start, endInclusive, field) | |
} | |
} |
View fix_permissions.sh
# run in "root" folder (e.g /home/datmusic/api.datmusic.xyz/) | |
chown -R datmusic:www-data storage .env | |
find storage -type f -exec chmod 664 {} \; | |
find storage -type d -exec chmod 775 {} \; | |
chgrp -R www-data storage .env | |
chmod -R ug+rwx storage .env |
View OkHttp3Stack.java
/** | |
* The MIT License (MIT) | |
* | |
* Copyright (c) 2015 Circle Internet Financial | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining a copy | |
* of this software and associated documentation files (the "Software"), to deal | |
* in the Software without restriction, including without limitation the rights | |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
* copies of the Software, and to permit persons to whom the Software is |
View QueryHighlighter.kt
import android.graphics.Typeface | |
import android.text.SpannableString | |
import android.text.TextUtils | |
import android.text.style.CharacterStyle | |
import android.text.style.StyleSpan | |
import android.widget.TextView | |
import java.text.Normalizer | |
import java.util.Locale | |
import java.util.regex.Pattern |
View Fibonacci.kt
package tm.alashow.homework.datastructures.second.kt | |
import java.math.BigInteger | |
fun main(args: Array<String>) { | |
Fibonacci.init() | |
} | |
object Fibonacci { |
View webtextsSolver.js
prepareAnswers(); | |
setTimeout(resetQuestions, 1500); | |
setTimeout(solveQuestions, 3000); | |
function prepareAnswers() { | |
$.each($.find('.multiple-choice-question-element'), function(i, wrapper) { | |
wrapper = $(wrapper); | |
var button = wrapper.find('.save-answers'); | |
var choice = $(wrapper.find('.question-choice')[0]).find('input'); |
View BaseActivity.kt
package tm.alashow.x.ui.base | |
import android.arch.lifecycle.ViewModel | |
import android.arch.lifecycle.ViewModelProvider | |
import android.arch.lifecycle.ViewModelProviders | |
import android.databinding.DataBindingUtil | |
import android.databinding.ViewDataBinding | |
import android.os.Bundle | |
import android.support.annotation.LayoutRes | |
import android.support.annotation.StringRes |
View AppBarLifListeners.kt
// activity | |
private val onAppBarLiftListeners = HashSet<AppBarLiftListener>() | |
val appBar = findViewById<AppBarLayout>(R.id.appBar) | |
if (appBar != null) { | |
appBar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { _, verticalOffset -> | |
onAppBarLiftListeners.forEach { it.onAppBarLift(verticalOffset) } | |
}) | |
} |
View DateTimePickerLocalizer.kt
import timber.log.Timber | |
/** | |
* Patch date picker or time picker to use custom months or am/pm | |
* From: https://stackoverflow.com/a/33599403/2897341 | |
* | |
* @param picker [android.widget.DatePicker] or [android.widget.TimePicker] | |
* @param values months or am/pm | |
*/ | |
fun localizePicker(picker: Any, values: Array<String>) { |
View AppViewModelFactory.kt
class AppViewModelFactory @Inject constructor( | |
private val creators: @JvmSuppressWildcards Map<Class<out ViewModel>, Provider<ViewModel>> | |
) : ViewModelProvider.Factory { | |
var onViewModelCreate: ((viewModel: ViewModel) -> Unit)? = null | |
override fun <T : ViewModel> create(modelClass: Class<T>): T { | |
var creator: Provider<out ViewModel>? = creators[modelClass] | |
if (creator == null) { | |
for ((key, value) in creators) { |
NewerOlder