1 /*
2  * Copyright 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package androidx.compose.runtime.rxjava3.samples
18 
19 import androidx.annotation.Sampled
20 import androidx.compose.material.Text
21 import androidx.compose.runtime.Composable
22 import androidx.compose.runtime.getValue
23 import androidx.compose.runtime.rxjava3.subscribeAsState
24 import io.reactivex.rxjava3.core.Completable
25 import io.reactivex.rxjava3.core.Flowable
26 import io.reactivex.rxjava3.core.Maybe
27 import io.reactivex.rxjava3.core.Observable
28 import io.reactivex.rxjava3.core.Single
29 
30 @Sampled
31 @Composable
ObservableSamplenull32 fun ObservableSample(observable: Observable<String>) {
33     val value: String by observable.subscribeAsState("initial")
34     Text("Value is $value")
35 }
36 
37 @Sampled
38 @Composable
FlowableSamplenull39 fun FlowableSample(flowable: Flowable<String>) {
40     val value: String by flowable.subscribeAsState("initial")
41     Text("Value is $value")
42 }
43 
44 @Sampled
45 @Composable
SingleSamplenull46 fun SingleSample(single: Single<String>) {
47     val value: String by single.subscribeAsState("initial")
48     Text("Value is $value")
49 }
50 
51 @Sampled
52 @Composable
MaybeSamplenull53 fun MaybeSample(maybe: Maybe<String>) {
54     val value: String by maybe.subscribeAsState("initial")
55     Text("Value is $value")
56 }
57 
58 @Sampled
59 @Composable
CompletableSamplenull60 fun CompletableSample(completable: Completable) {
61     val completed by completable.subscribeAsState()
62     Text("Completable is $completed")
63 }
64