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:
parent
17678add86
commit
04e503177b
62 changed files with 2028 additions and 2618 deletions
|
|
@ -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()"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue