Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RxDialog
Search
JasonNi
June 17, 2017
Technology
440
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RxDialog
JasonNi
June 17, 2017
More Decks by JasonNi
See All by JasonNi
Android UI Design Pattern
jasonni
0
160
Google Mobile Developer Summit Overview
jasonni
1
79
Google Mobile Design Codelab.pdf
jasonni
1
140
JQuery Plugin Publish
jasonni
1
300
Other Decks in Technology
See All in Technology
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
690
Meet AgentCore Identity Consent Portal
hironobuiga
3
180
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.6k
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
670
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.3k
企業の現実世界をグラフで写し取る
sansantech
PRO
0
250
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
120
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
530
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
470
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
150
DAMOS - The Smart Cruise Control for RAM
ennael
PRO
1
110
並行性の問題を防げ!実践トランザクション入門
occhi
0
250
Featured
See All Featured
Music & Morning Musume
bryan
48
7.4k
BBQ
matthewcrist
89
10k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Deep Space Network (abreviated)
tonyrice
0
350
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
3Y%JBMPH +BTPO/J!1JOLPJ
Ⱇデ璭 剤剓倞Ⱇデ儘곏爚
鐱ⴕ璭 怏駈哭⟝儘곏爚
崞⹛璭 剤崞⹛儘곏爚
璭璭㋐姹㖈♧饱
None
None
None
public class LaunchActivity { @Override protected void onCreate(Bundle savedInstanceState)
{ Observable<Boolean> launchObservable = RxDialog.create(); Observable<Boolean> campaignObservable = RxDialog.create(); Observable<Boolean> rateObservable = RxDialog.create(); // ... Observable.concat( launchObservable, campaignObservable, rateObservable ); // ... } } LaunchActivity.java
public class RxDialog { public static Observable<Boolean> create() {
return Observable.create(emitter -> { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setPositiveButton(R.string.alert_ok, (dialog, which) -> { if (!emitter.isDisposed()) { emitter.onNext(true); emitter.onComplete(); } }); Dialog dialog = builder.show(); // ... }); } } RxDialog.java
onComplete onComplete
public class RxDialog { public static Observable<Boolean> create() {
return Observable.create(emitter -> { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setPositiveButton(R.string.alert_ok, (dialog, which) -> { if (!emitter.isDisposed()) { emitter.onNext(true); emitter.onComplete(); } }); Dialog dialog = builder.show(); // ... }); } } RxDialog.java onComplete
public class LaunchActivity { @Override protected void onCreate(Bundle savedInstanceState)
{ Observable<Boolean> launchObservable = RxDialog.create(); Observable<Boolean> campaignObservable = RxDialog.create(); Observable<Boolean> rateObservable = RxDialog.create(); // ... Observable.concat( launchObservable, campaignObservable, rateObservable ); // ... } } LaunchActivity.java
onComplete
public class LaunchActivity { @Override protected void onCreate(Bundle savedInstanceState)
{ Observable<Boolean> launchObservable = Observable.empty(); Observable<Boolean> campaignObservable = Observable.empty(); Observable<Boolean> rateObservable = Observable.empty(); // ... if (有公告) launchObservable = RxDialog.create(); if (有評價) launchObservable = RxDialog.create(); if (有活動) launchObservable = RxDialog.create(); Observable.concat( launchObservable, campaignObservable, rateObservable ); // ... } } LaunchActivity.java
That's all Folks! jasonni
QJOLPJDPNBCPVUDBSFFST
None