Android P通話界面的設(shè)計(jì)更改

背景

Google每一次大版本升級(jí)都會(huì)在架構(gòu)上改動(dòng)通話,本文主要從設(shè)計(jì)模式方面介紹Android O到Android P通話界面InCallUI的改變。

Android O的MVP架構(gòu)

先看圖其掂,

Android P之前的通話界面主要有兩層MVP結(jié)構(gòu),分別為:

外層:CallList(M)-InCallActivity(V)-InCallPresent(P)

內(nèi)層:Call(M)-XXXFragment(V)-XXXPresent(P)

外層MVP

如圖:

Fragment和ViewInterface的關(guān)系

上面圖中每一個(gè)Fragment都有其對(duì)應(yīng)的Ui,如圖:

其中每個(gè)Fragment實(shí)現(xiàn)一個(gè)Ui操作接口碍彭,而一個(gè)Ui操作接口只表示界面的一部分。如VideoUi就只包含視頻相關(guān)view操作证舟、CallCardUi就只包含聯(lián)系人信息的相關(guān)view操作硕旗、CallButtonUi只包含操作按鈕的相關(guān)view操作。所以當(dāng)顯示一個(gè)視頻來電時(shí)女责,需要同時(shí)顯示VideoCallUi漆枚、CallCardUi、CallButtonUi抵知,因此視頻來電界面的InCallActivity里面同時(shí)顯示了VideoCallFragment墙基、CallCardFragment、CallButtonFragment三個(gè)Fragment刷喜。

內(nèi)層MVP

用Call-CallButtonFragment-CallButtonPresenter舉例如下:

Android P的新MVP架構(gòu)

先看圖:


外層MVP

外層變化不大残制,如圖:

主要是Activity里面對(duì)應(yīng)的Fragment的包含關(guān)系的變化。(Android O之后去掉了CallButtonFragment掖疮。)

Fragment和ViewInterface的關(guān)系

如圖:

其中Activity包含的三個(gè)主Fragment每個(gè)Fragment都對(duì)應(yīng)包含一個(gè)完整的界面初茶,比如VideoCallFragment里面有:包含了視頻相關(guān)view操作的VideoCallScreen、包含了聯(lián)系人相關(guān)信息操作的InCallScreen浊闪、包含了操作按鈕相關(guān)操作的InCallButtonUi恼布。即每個(gè)Fragment實(shí)現(xiàn)多個(gè)view操作接口。

如下圖所示:

內(nèi)層MVP

因?yàn)镕ragment和ViewInterface的關(guān)系變化搁宾,所以導(dǎo)致內(nèi)層MVP結(jié)構(gòu)也發(fā)生變化折汞,如圖:

內(nèi)層MVP
CallButtonPresenter MVP

其中的View由之前的一個(gè)僅實(shí)現(xiàn)該view操作的Fragment變成多個(gè)。

加入Delegate模式

MVP中View通知Presenter user events的過程中g(shù)oogle加了一層deleate模式的封裝盖腿,如下:

InCallButtonUi的實(shí)現(xiàn)者們不會(huì)直接通知CallButtonPresenter有用戶操作爽待,而是委派InCallButtonUiDelegate去處理。比如翩腐,撥號(hào)但未真撥號(hào)成功時(shí)顯示的偽通話界面鸟款,如過用戶點(diǎn)擊了該界面的按鈕就不需要CallButtonPresenter去處理。

加入Factory模式

如圖:

新架構(gòu)的優(yōu)點(diǎn)

1. ViewInterface和Fragment的關(guān)系更改后使得內(nèi)層MVP架構(gòu)更容易擴(kuò)展茂卦。

2. 加入Delegate和Factory模式使得外層MVP更容易擴(kuò)展何什。如CallPendingActivity,其界面和InCallActivity界面幾乎一致疙筹,但它不需與Call交互富俄,與用戶交互的操作也與InCallActivity不同禁炒,用新的架構(gòu)就很容易實(shí)現(xiàn)。同時(shí)霍比,視頻彩鈴也可以更容易擴(kuò)展:增加一個(gè)CRBTFragment幕袱,定制自己的界面,實(shí)現(xiàn)VideoCallScreen悠瞬、InCallScreen们豌、InCallButtonUi就行。


原創(chuàng)內(nèi)容歡迎轉(zhuǎn)載浅妆,但請(qǐng)注明出處望迎,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凌外,一起剝皮案震驚了整個(gè)濱河市辩尊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌康辑,老刑警劉巖摄欲,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疮薇,居然都是意外死亡胸墙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門按咒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迟隅,“玉大人,你說我怎么就攤上這事励七≈窍” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵呀伙,是天一觀的道長(zhǎng)补履。 經(jīng)常有香客問我添坊,道長(zhǎng)剿另,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任贬蛙,我火速辦了婚禮雨女,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阳准。我一直安慰自己氛堕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布野蝇。 她就那樣靜靜地躺著讼稚,像睡著了一般括儒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锐想,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天帮寻,我揣著相機(jī)與錄音,去河邊找鬼赠摇。 笑死固逗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藕帜。 我是一名探鬼主播烫罩,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼洽故!你這毒婦竟也來了贝攒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤时甚,失蹤者是張志新(化名)和其女友劉穎饿这,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撞秋,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡长捧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吻贿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片串结。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舅列,靈堂內(nèi)的尸體忽然破棺而出肌割,到底是詐尸還是另有隱情,我是刑警寧澤帐要,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布把敞,位于F島的核電站,受9級(jí)特大地震影響榨惠,放射性物質(zhì)發(fā)生泄漏奋早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一赠橙、第九天 我趴在偏房一處隱蔽的房頂上張望耽装。 院中可真熱鬧,春花似錦期揪、人聲如沸掉奄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姓建。三九已至诞仓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間速兔,已是汗流浹背狂芋。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留憨栽,地道東北人帜矾。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像屑柔,于是被迫代替她去往敵國(guó)和親屡萤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容