Notifications: simplify the flow by removing persistence (#2924)
* Notifications: simplify the flow by removing persistence. * Bump of minSdk to `24` (Android 7). * Add migration to remove `notification.bin` file
This commit is contained in:
committed by
GitHub
parent
edc589b494
commit
801f0b955d
@@ -78,6 +78,20 @@ inline fun <reified T1, reified T2, reified T3, reified T4, reified T5, reified
|
||||
return LambdaFiveParamsRecorder(ensureNeverCalled, block)
|
||||
}
|
||||
|
||||
inline fun <reified T1, reified T2, reified T3, reified T4, reified T5, reified T6, reified R> lambdaRecorder(
|
||||
ensureNeverCalled: Boolean = false,
|
||||
noinline block: (T1, T2, T3, T4, T5, T6) -> R
|
||||
): LambdaSixParamsRecorder<T1, T2, T3, T4, T5, T6, R> {
|
||||
return LambdaSixParamsRecorder(ensureNeverCalled, block)
|
||||
}
|
||||
|
||||
inline fun <reified R> lambdaAnyRecorder(
|
||||
ensureNeverCalled: Boolean = false,
|
||||
noinline block: (List<Any?>) -> R
|
||||
): LambdaListAnyParamsRecorder<R> {
|
||||
return LambdaListAnyParamsRecorder(ensureNeverCalled, block)
|
||||
}
|
||||
|
||||
class LambdaNoParamRecorder<out R>(ensureNeverCalled: Boolean, val block: () -> R) : LambdaRecorder(ensureNeverCalled), () -> R {
|
||||
override fun invoke(): R {
|
||||
onInvoke()
|
||||
@@ -125,3 +139,53 @@ class LambdaFiveParamsRecorder<in T1, in T2, in T3, in T4, in T5, out R>(ensureN
|
||||
return block(p1, p2, p3, p4, p5)
|
||||
}
|
||||
}
|
||||
|
||||
class LambdaSixParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, out R>(
|
||||
ensureNeverCalled: Boolean,
|
||||
val block: (T1, T2, T3, T4, T5, T6) -> R,
|
||||
) : LambdaRecorder(ensureNeverCalled), (T1, T2, T3, T4, T5, T6) -> R {
|
||||
override fun invoke(p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6): R {
|
||||
onInvoke(p1, p2, p3, p4, p5, p6)
|
||||
return block(p1, p2, p3, p4, p5, p6)
|
||||
}
|
||||
}
|
||||
|
||||
class LambdaSevenParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7, out R>(
|
||||
ensureNeverCalled: Boolean,
|
||||
val block: (T1, T2, T3, T4, T5, T6, T7) -> R,
|
||||
) : LambdaRecorder(ensureNeverCalled), (T1, T2, T3, T4, T5, T6, T7) -> R {
|
||||
override fun invoke(p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7): R {
|
||||
onInvoke(p1, p2, p3, p4, p5, p6, p7)
|
||||
return block(p1, p2, p3, p4, p5, p6, p7)
|
||||
}
|
||||
}
|
||||
|
||||
class LambdaEightParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, out R>(
|
||||
ensureNeverCalled: Boolean,
|
||||
val block: (T1, T2, T3, T4, T5, T6, T7, T8) -> R,
|
||||
) : LambdaRecorder(ensureNeverCalled), (T1, T2, T3, T4, T5, T6, T7, T8) -> R {
|
||||
override fun invoke(p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7, p8: T8): R {
|
||||
onInvoke(p1, p2, p3, p4, p5, p6, p7, p8)
|
||||
return block(p1, p2, p3, p4, p5, p6, p7, p8)
|
||||
}
|
||||
}
|
||||
|
||||
class LambdaNineParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, out R>(
|
||||
ensureNeverCalled: Boolean,
|
||||
val block: (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R,
|
||||
) : LambdaRecorder(ensureNeverCalled), (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R {
|
||||
override fun invoke(p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7, p8: T8, p9: T9): R {
|
||||
onInvoke(p1, p2, p3, p4, p5, p6, p7, p8, p9)
|
||||
return block(p1, p2, p3, p4, p5, p6, p7, p8, p9)
|
||||
}
|
||||
}
|
||||
|
||||
class LambdaListAnyParamsRecorder<out R>(
|
||||
ensureNeverCalled: Boolean,
|
||||
val block: (List<Any?>) -> R,
|
||||
) : LambdaRecorder(ensureNeverCalled), (List<Any?>) -> R {
|
||||
override fun invoke(p: List<Any?>): R {
|
||||
onInvoke(*p.toTypedArray())
|
||||
return block(p)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,3 +41,12 @@ fun any() = object : ParameterMatcher {
|
||||
override fun match(param: Any?) = true
|
||||
override fun toString(): String = "any()"
|
||||
}
|
||||
|
||||
/**
|
||||
* A matcher that matches any non null value
|
||||
* Can be used when we don't care about the value of a parameter, just about its nullability.
|
||||
*/
|
||||
fun nonNull() = object : ParameterMatcher {
|
||||
override fun match(param: Any?) = param != null
|
||||
override fun toString(): String = "nonNull()"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user