Refactor ToastPresenter to perform show()/hide()
In order to support multi-user, we need to create a new context based on the user id and retrieve the services from it (http://b/151414297#comment9). This meant retrieving the services in ToastUI.showToast() instead of on its constructor, which would make the code diverge from Toast$TN.handleShow(). In order to avoid that, now seemed a good time to refactor ToastPresenter to perform show() and hide(). This means ToastPresenter will now be instantiated in every request for a new toast in ToastUI, but fortunately with the refactor we were able to get rid of ToastEntry (which was also beign instantiated in every request). Also found out a bug with this where window tokens were being used to locate the toasts instead of the (non-window) tokens. This is a bit confusing because the method NM.finishToken(package, token) receives a non-window token to locate the ToastRecord and then finish its window token. This didn't have any side-effects because NM itself finishes the tokens after a time-out. Added a test for this. Bug: 152973950 Test: atest android.widget.cts29.ToastTest android.widget.cts.ToastTest ToastWindowTest ToastUITest NotificationManagerServiceTest LegacyToastTest Change-Id: I13cf18890ca22022adb7576c8ecf3285a9b82299
Loading
Please register or sign in to comment