不積跬步無以至千里
一.前摘
來電的通知在谷歌原生機器中的邏輯處理是鎖屏界面顯示來電全屏通知,非鎖屏界面(即解鎖狀態下)顯示的是懸浮通知,並沒有考慮全屏界面的情形。
而我們今天的需求設計是:鎖屏界面,解鎖狀態下都顯示通知的全屏通知,但是全屏界面下要顯示懸浮通知,其實這裏場景開始是因爲在相機的錄像的時候突然的來電或者鬧鐘都會打斷錄像,此時感覺這種邏輯體驗挺不好的,因此有了這個修改,其實想想啊,相機錄像與照相其實都是屬於全屏的界面,而全屏界面(還有玩遊戲的場景)更類似於用戶正在全心關注的做某件事不想被輕易打擾或者中斷,因此這裏就相當於修改在全屏界面需要顯示懸浮通知了。
二.正文
其實我之前寫過一片文章可以看看SystemUI 解密通知如何顯示爲普通通知,懸浮通知還是全屏通知,這篇文章寫了是關於通知是顯示普通通知,懸浮通知還是全屏通知,想了解這塊邏輯可以看着一篇文章。
既然我們知道了如何判斷什麼時候懸浮通知還是全屏通知,我們這還有一個點就是判斷當前是否爲全屏界面,不說了,直接上才藝。
代碼路徑如下:
app/src/com/android/systemui/statusbar/phone/StatusBar.java