Sometimes printer selection from all printers activity does not work.
1. Sometimes selecting a printer from the full printer list does not work if the selected printer was not in the initial drop down list of the print dialog. The reason was that there is a race. We use loaders in the print dialog activity and the all printers one. When these loaders are stopped we stop printer discovery since we do not want to keep this potentially expensive process on going if the activity is paused because say the user decide to press home and start playing his favorite game while the printers dialog is up. As a result the loader does not get printer updates until it is started. The loader of the print dialog activity is stopped while the user is selecting a printer from the all printers activity whose loader is getting discovered recent printers. Now when the user selects a printer the loader of the print dialog activity is started but may not get the latest printers by the time onActivityResult is called with the selected printer. Now we cache the selected printer id and if the loader reports it we select that printer. 2. In the print dialog we show only a few of the discovered printers. If the user selects a printer from the all printers activity that is not in the initial list we shuffle the adapter data to make sure the selected printer is in the shown subset. Now if the printers change, i.e. the printers loader reports new result we were not respecting the reshuffling made before so the short list of printers changes yet again. bug:11034216 Change-Id: I54fe3619e3328b65839d9f4b02309699eae7f8eb
Loading
Please register or sign in to comment