View main.dart
class Apple {} | |
class Banana {} | |
List<Apple> bag([List<Apple> apples]) => apples ?? <Banana>[]; | |
void main() { | |
// ok | |
final bag1 = bag([Apple()]); | |
print(bag1); |
View RxDelay.kt
object Rx { | |
fun <T> delayFlowable(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(), | |
block: () -> Flowable<T>): Flowable<T> { | |
return Completable.timer(delay, timeUnit, scheduler).andThen(Flowable.defer { block() }) | |
} | |
fun <T> delayObservable(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(), | |
block: () -> Observable<T>): Observable<T> { | |
return Completable.timer(delay, timeUnit, scheduler).andThen(Observable.defer { block() }) | |
} |
View RxExt.kt
/** | |
* Maps the [Single] value [T] to a nullable type [R?] which will become [Maybe.empty] when `R == null`, | |
* otherwise [Maybe.just] | |
*/ | |
inline fun <T, R> Single<T>.mapNullable(crossinline mapper: (T) -> R?): Maybe<R> = this.flatMapMaybe { | |
val result = mapper(it) | |
if (result == null) Maybe.empty() else Maybe.just(result) | |
} |
View Locale.kt
package com.pascalwelsch.android.util | |
import android.content.Context | |
import androidx.core.os.ConfigurationCompat | |
import androidx.core.os.LocaleListCompat | |
import java.util.Locale | |
/** | |
* Returns an [Iterable] for the languages of the user, sorted by priority. First choice first. | |
*/ |
View make_archive.sh
#!/bin/sh | |
# Check if 7zip is installed and install it if not | |
hash 7z 2>/dev/null || { | |
echo >&2 "7z is required to be installed"; | |
echo "I will install it for you"; | |
brew install p7zip; | |
} | |
# Read the commit sha |
View TestParcelable.java
public class ParcelableTest extends AndroidTestCase { | |
/** | |
* Parcels the given Parcelable, unparcels it and returns the unparceled value | |
* | |
* @param value the Parcelable to operate on | |
*/ | |
public static Parcelable parcelAndUnparcel(Parcelable value) { | |
Parcel parcel = Parcel.obtain(); | |
value.writeToParcel(parcel, 0); |
View KIntent.kt
package com.pascalwelsch.extensions | |
import android.app.Activity | |
import android.content.Context | |
import android.content.Intent | |
import android.os.Build | |
import android.os.Bundle | |
/** | |
* Extensions for simpler launching of Activities |
View LastCall.java
package com.pascalwelsch.mockito; | |
import org.mockito.exceptions.base.MockitoException; | |
import org.mockito.exceptions.verification.ArgumentsAreDifferent; | |
import org.mockito.internal.debugging.LocationImpl; | |
import org.mockito.internal.junit.JUnitTool; | |
import org.mockito.internal.reporting.SmartPrinter; | |
import org.mockito.internal.verification.VerificationModeFactory; | |
import org.mockito.internal.verification.api.VerificationData; | |
import org.mockito.internal.verification.argumentmatching.ArgumentMatchingTool; |
View build.gradle
dependencies { | |
compile "ThirtyInch:thirtyinch" | |
compile "ThirtyInch:thirtyinch-rx" | |
compile "ThirtyInch:thirtyinch-plugin" | |
testCompile "ThirtyInch:thirtyinch-test" | |
} |
View LastCall.java
package com.pascalwelsch.mockito; | |
import org.mockito.exceptions.base.MockitoException; | |
import org.mockito.exceptions.verification.ArgumentsAreDifferent; | |
import org.mockito.internal.debugging.LocationImpl; | |
import org.mockito.internal.invocation.InvocationMatcher; | |
import org.mockito.internal.junit.JUnitTool; | |
import org.mockito.internal.reporting.SmartPrinter; | |
import org.mockito.internal.verification.api.VerificationData; | |
import org.mockito.internal.verification.argumentmatching.ArgumentMatchingTool; |