summaryrefslogtreecommitdiff
path: root/packages/Shell/src
AgeCommit message (Collapse)Author
2019-10-07Fix bugreport rename in API workflowAbhijeet Kaur
In the current implementation of API flow of bugreport, renaming bugreports works fine but it changes the entire name. In legacy flow, the user is only able to rename the suffix of the file. The prefix of the name (bugreport-deviceName-buildID) remains unchanged. Also, wifi and telephony bugreports have the type of the bugreport specified explicitly in the name. Fix Shell's rename implementation to follow legacy logic. Also stop setting name property in the API flow since it's a functional no-op anyway, and we want all communications to dumpstate be through the API when possible. No need to call trackInfoWithId() for remote bugreports as Shell does not process any notification related to it. Bug: 123617758 Test: * Take interactive bugreport, rename and save. (work as expected) Test: Corner case: * Take interactive bugreport, rename and save. * Click on the progress notification again and keep the edit box open. * Wait for bugreport to finish, filename edit box would be disabled and autofilled with last saved rename. You will still be able to edit title and summary. (works as expected) Change-Id: I0016ef4fc1e80fb792712c45439e2b0d348f5249
2019-09-26Merge "Handle legacy broadcasts from dumpstate logic in onFinished() callback"Abhijeet Kaur
2019-09-24Handle legacy broadcasts from dumpstate logic in onFinished() callbackAbhijeet Kaur
In legacy bugreport workflow dumpstate used to send BUGREPORT_STARTED, BUGREPORT_FINISHED and REMOTE_BUGREPORT_FINISHED broadcasts. BUGREPORT_FINISHED and REMOTE_BUGREPORT_FINISHED broadcasts contain information about the bugreport file, this information is not with dumpstate in the API WORKFLOW, and is passed to it by the API caller. Hence these broadcasts need to be sent by the caller of the bugreport API to share the bugreport file information in the onfinished() callback function. Send REMOTE_BUGREPORT_DISPATCH broadcast for DevicePolicyManager to handle. Add minimal information in these broadcasts. Not adding all fields that dumpstate used to send, as most of those were used by Shell. Only sending necessary fileds used by receivers of these broadcasts. Handle clean up of old bugreports in onFinished() callback function Bug: 137825297 Test: * Interactive/Full bugreports successfully created * Share notification appears as expected * Able to attach these to gmail Test: * Trigger remote bugreport by hardcoding the value of remote bugreport when calling the API * Remote bugreport is created successfully * No share notification (same behavior as before) * Same logs in logcat as triggering remote bugreport using old flow: * adb shell setprop dumpstate.options bugreportremote * adb shell setprop ctl.start bugreport Test: * TestDpc (go/testdpc): * Install TestDPC * Set it as Device Owner * Open TestDPC to trigger a remote bugreport ("Request bugreport") * Shows user consent for bugreport collection (indicating that the API workflow is triggered. * Once the collection is complete and you tap "Share" in the notification. * TestDPC shows another notification showing the received bugreport file path and hash. * Verify using adb shell to check if the bugreport file is present in the above specified file path Change-Id: I07c0c64b74a723683601e53e3c68a374ca54f3cb
2019-09-18Merge "Bugreport progress notification should use the bug icon." am: ↵Dan Sandler
cb783ea2ee am: 704b11756a am: 777b2325be am: 362e959c7d Change-Id: I161186cbfef27ace50349d60b1726ef3ba6d1932
2019-09-12Bugreport progress notification should use the bug icon.Dan Sandler
(Don't worry, stat_sys_adb isn't going away, but it will only be used by the ADB notification now.) Bug: 138661761 Test: initiate bugreport from globalactions Change-Id: I238659d50f70bfbc047133d89afb76f78ec841f9
2019-08-19Set up to migrate requestBugreport flavors to use bugreport APIAbhijeet Kaur
Add initial set up code to migrate requestBugreport, requestBugreportWithDescription, requestWifiBugreport and requestTelephonyBugreport to use the new Bugreport API. Prepare the intent (to trigger API workflow) but do not send. Not sending the intent keeps the workflow same as before. This set up helps to move away from directly setting system properties (dumpstate.options.title and dumpstate.options.description). Bug: 139415553 Test: build and flash. Taking a bugreport works as usual Change-Id: I0b57643ff8f4eadb281e1d7788171ef751a01b79
2019-08-07Merge "Remove obsolete methods from DumpstateListener implementations"Nandana Dutt
am: cbdb10f982 Change-Id: Ia746b0cdadd0c4d652c373763f7a12266b080e3b
2019-08-06Remove obsolete methods from DumpstateListener implementationsNandana Dutt
Note that with the new Bugreporting API, SystemServer is the only expected DumpstateListener implementation. Once we fully migrate Shell app, we can remove the implementation in BugreportService as well. BUG: 128980174 Test: bugreport from power menu, observe progress bar Change-Id: I40d654a70bd9ceb3a29f8a0113b85616100f4ee9 Merged-In: I40d654a70bd9ceb3a29f8a0113b85616100f4ee9
2019-08-06Merge "Remove obsolete methods from DumpstateListener implementations"Nandana Dutt
2019-08-05Merge "Add logic to handle screenshot file creation failure"TreeHugger Robot
2019-08-05Add logic to handle screenshot file creation failureAbhijeet Kaur
Delete the bugreport file to free the space before returning. Delete unnecessary if blocks as the File constructor would never return null Bug:123617758 Test: Force code to execute the if (screenshotFd == null) block. Bugreport file gets deleted successfully Change-Id: Ib88278a8a56799ef562b8b06e5e530a8e31e85d5
2019-08-01Remove obsolete methods from DumpstateListener implementationsNandana Dutt
Note that with the new Bugreporting API, SystemServer is the only expected DumpstateListener implementation. Once we fully migrate Shell app, we can remove the implementation in BugreportService as well. BUG: 128980174 Test: bugreport from power menu, observe progress bar Change-Id: I40d654a70bd9ceb3a29f8a0113b85616100f4ee9
2019-08-01Merge "Leave error handling the same as old workflow using dumpstate"TreeHugger Robot
2019-07-31Leave error handling the same as old workflow using dumpstateAbhijeet Kaur
Removing the TODO as won't be working on improving error handling as part of this bug. Created another bug (b/138576498) to work on better error handling. Bug: 123617758 Bug: 127431371 Test: builds (only removing comment) Change-Id: I8a7fea416e9871909cfb3cc801232bff6056536e
2019-07-29Merge "Make shell bugreport file names consistent with dumpstate"Abhijeet Kaur
2019-07-29Make shell bugreport file names consistent with dumpstateAbhijeet Kaur
Since bugreport API workflow will be replacing old workflow of directly starting dumpstate, we aim that the resulting file names be the same as the users are used to the old file names (that dumpstate used to decide). Bug:126862297 Test: * Build and flash to the device * Turn on Settings feature flag to use the bugreport API * Take interactive and full bugreports * Output file names same as before Change-Id: I24d800e26a8cc4f739038ac0f27da13bd83f7f47
2019-07-25Set id for bugreports after dumpstate increments it.Abhijeet Kaur
dumpstate increments system property PROPERTY_LAST_ID when a bugreport is triggered. In the old workflow for bugreports, dumpstate used to get triggered before Shell, and dumpstate would send the 'id' to Shell. Hence Shell always assumed that it has a known value for 'id', that is why 'id' is declared as a final variable which could be assigned value in the constructor. In new workflow using API, the 'id' is incremented after dumpstate gets triggered. Hence making the following changes: * Changing 'id' variable to be not final * Reading 'id' after dumpstate has incremented the system property Bug: 123617758 Test: Build and flash to device. Turn on the feature flaggenerate bugreports Check the progress and Finish notifications. Change-Id: I44762190391c128cba135bf0ef795a1ae872dbb7
2019-07-22Merge "Progress notification for interactive bugreports"TreeHugger Robot
2019-07-18Add logic to create screenshot fileAbhijeet Kaur
* Creating screenshot file for all types of bugreport * The logic to populate the screenshot file is in dumpstate (few bugreport types that do not need screenshots will leave the file untouched/empty) * Delete the empty screenshot file and set the file to null so that empty file does not get shared * This TODO was previously left as binder did not allow to send null screenshotfd, which was recently fixed. While fixing and testing the optional screenshot fd CL with these changes, left the value "null" by default. Fixed now. * Not adding any logic here on the basis of the type of bugreport as all that is already in dumpstate * Making the names of bugreport (.zip file) and bugreport screenshot (.png file) consistent. In the old flow also both have the same names. Bug: 123617758 Test: * Build and flash to the device * Turn on use bugreport API feature flag from Settings * Take interactive bugreport Expectation: On clicking the notification to "Share the bugreport" only 1 file (the bugreport zip file) gets shared. Also, there is no screenshot file in /bugreports/ in the device * Take full bugreport Expectation: On clicking the notification to "Share the bugreport" 2 files (bugreport zip and screenshot png file) get shared. Also we can see the screenshot file in /bugreports/ in the device Change-Id: I39cb6913033b6e3c61bd0c6655a76524c12d2428
2019-06-04Progress notification for interactive bugreportsAbhijeet Kaur
Send instant progress notification for interactive bugreports (when using bugreport API), starting notification when progress = 0 Bug: 123617758 Test: * Build and flash to the device * Turn on use bugreport API feature flag from Settings * Take interactive bugreport Expectation: Progress notification is shown instantly Change-Id: Icd834c05324108430ee6cb9c3d8539f91059e563
2019-05-29Merge "Add dark theme for Shell app." into qt-dev am: 190e99cf3a am: 1cceacc469Abhijeet Kaur
am: 2c90394b5d Change-Id: I8c913dfa6823f9c9cfee1a68a3f61000e5594b57
2019-05-28Migrate Shell app to use the new bugreport API.Abhijeet Kaur
Add new calls to bugreport API, all the while keeping the previous code and logic untouched. Added feature flag in Settings which if untouched, runs the old dumpstate workflow by default. To test the new workflow turn on the feature flag from UI or `adb shell setprop settings_call_bugreport_api true`. Add permission TRIGGER_SHELL_BUGREPORT so that not all can send broadcasts to trigger bugreports. Create new receiver BugreportRequestedReceiver for the new broadcast intent that the shell app will use. Whitelist Shell app to use the bugreport API. Bug: 123617758 Test: manually built and flash to device. Turn on the feature flag, generate bugreports and check the onProgress and onFinish notifications. Test: Turn off the feature flag test old workflow. Change-Id: I1c7c258a48815a0386d7d4771301cd76f9cae3d0
2019-05-24Add dark theme for Shell app.Abhijeet Kaur
Bugreport info dialog is used in the BugreportProgressService; services are not themeable from the manifest file. Added themed context wrapper in the service file. Text view underlines are no longer black, and are white in color. Bug: 128364209 Test: build and flash to device, manually verified the color of the dialog Change-Id: Ia42c1c7c2b6f2e30d91a5522f1d6b3507b032cdb
2019-03-23Add Looper.prepare() to doInBackground()Abhijeet Kaur
Fix runtime error that was being thrown as Looper.prepare() was not called in the async function doInBackground. Bug: 124612105 Test: Was not able to reproduce the bug (that is make code execution flow through the catch block). * Reproduced by throwing IOException in the try block so that code flows to the catch block. * Build and flash. * Take interactive bugreport and change title and name of the bugreport from the progress bar. Merged-In: I6a5ea594d95462e1c66bd28eb81dd5f4daa6f35e Change-Id: I6a5ea594d95462e1c66bd28eb81dd5f4daa6f35e (cherry picked from commit b7a6549654374800d3954b4e765c86b5a888258b)
2019-03-22Add Looper.prepare() to doInBackground()Abhijeet Kaur
Fix runtime error that was being thrown as Looper.prepare() was not called in the async function doInBackground. Bug: 124612105 Test: Was not able to reproduce the bug (that is make code execution flow through the catch block). * Reproduced by throwing IOException in the try block so that code flows to the catch block. * Build and flash. * Take interactive bugreport and change title and name of the bugreport from the progress bar. Change-Id: I6a5ea594d95462e1c66bd28eb81dd5f4daa6f35e
2019-01-23Improvements to Bugreporting API.Nandana Dutt
* Add cancelBugreport method. * Remove unused arguments to onFinished listener call. * Publish the system service now that sepolicy for it is submitted. * Use the new bugreportd service. Test: boots BUG:111441001 Change-Id: I12d72e0e1f4ca72d285fd02a3fc1a44f5c179885
2019-01-15BugreportAPI : Connect listener to binder callbacksNandana Dutt
BUG: 111441001 Test: builds Test: interactive bugreport still works Change-Id: Ie3f2328f558bb2de1dec2908c6ab13f5a17df115
2019-01-14Add the new dumpstate listener methods to implementationsNandana Dutt
Add dummy implementations for status, error and finished callbacks. Next step: wire these up end-to-end; change Shell's listener to be BugreportManager.BugreportListener, and make it communicate with the native service explicitly through the new system api. BUG: 111441001 Test: Verified progress in interactive bugreport still works Change-Id: Iad0bb7b23b04f6bc7e3b31e5071df42409c78684
2018-10-03Merge "Disable the buginfo dialog on AndroidTV"Nandana Dutt
2018-10-03Merge "Warn about sensitive bugreport contents."Nandana Dutt
2018-10-02Synchronize access to sNotificationBundle.Felipe Leme
Otherwise Shell can crash due to ConcurrentModificationException Test: atest BugreportReceiverTest Test: manual verification Fixes:116280360 Change-Id: I138acd43b313d2a7a9d945fb44a9d63e1ad798eb Merged-In: I138acd43b313d2a7a9d945fb44a9d63e1ad798eb (cherry picked from commit ee72fa19a97f2b0677a130204e3527bc3233e4d9)
2018-10-02Warn about sensitive bugreport contents.Jeff Sharkey
We show this message when clicking a notification, but we also want to alert users when they're picking files to attach/share. Bug: 114711671 Test: manual Change-Id: I23e249c93d6fa9cf960ef2a61d3fe769eb56ddf5 Merged-In: I23e249c93d6fa9cf960ef2a61d3fe769eb56ddf5 (cherry picked from commit 59137825eb11e6ca4c53e43a9973983ebdd09b33)
2018-10-02Disable the buginfo dialog on AndroidTVKristian Monsen
Bug: 113033835 Test: Tested manually on Atom Change-Id: If65997e28db7c0100018145f9313549494e41a2a Merged-In: If65997e28db7c0100018145f9313549494e41a2a (cherry picked from commit cb68d29f03f14b188ccc02b877161173b631685d) (cherry picked from commit 01badb78744bc48e35215556a49ac97a17cbce3a)
2018-08-28Migrated various apps under frameworks/base/packages/Shell to androidxKOUSHIK PANUGANTI
Bug: 76692459 Test: make Shell Change-Id: If11159cac1bd5aa61c46a346647b97a661abbf11 Merged-In: If11159cac1bd5aa61c46a346647b97a661abbf11 (cherry picked from commit e92135a6e9e3bae6236063d35670f3f7f2f51be4) (cherry picked from commit 474df059db94fac9a279e5f90ab0c046de4a3e08) (cherry picked from commit e0efaddbebaf9cdabe4253d7f3cfdf87dc9a7446)
2018-02-22Bugreport SAF provider isn't "advanced."Jeff Sharkey
UX churn over the years has turned FLAG_ADVANCED into "show internal storage" which means it's super confusing. When the Bugreport SAF provider is enabled, just show it. Test: sure Bug: 32540478 Change-Id: Id11278c27da8f5f1d1346b208d85b5db59a9e174
2018-01-11Allow custom keyguard "prompt reason"Lucas Dupin
Adds the possibility of presenting a custom message on the keyboard if you're trying to dismiss the keyguard. This is particularly useful when you're showing the bouncer because custom authentication (SmarLock) failed. Test: launch FLAG_SHOW_WHEN_LOCKED activity and call KeyguardManager#requestDismissKeyguard Fixes: 63940122 Change-Id: I0d88c0e59521887efa56d74874062b2b14970e4e
2018-01-05Apply IDumpstateListener changesVishnu Nair
Bug: 70154685 Test: Take bugreport on phone and verify debug output Change-Id: Icc5b532689c050837f6b4bde93f4655abec4aa0a
2017-11-30Update screenshot requests to render proper crop and rotation.chaviw
The previous screenshot requests in SystemUI would generate a bitmap and then adjust crop and rotation afterwards. Bitmaps from screenshots are now hw Bitmaps so they can't be updated in software. Instead request the proper crop and rotation from the native code to generate a Bitmap with the correct configurations. Change-Id: I4591c468b055c784460e5ddf2f9163ffa943c2ee Fixes: 69898957 Test: Manual screenshots work and bugreport screenshots work in landscape.
2017-07-14Don't tag bugreport notifications as System.Felipe Leme
Otherwise, they'll skip DND settings. Test: mmm -j32 frameworks/base/packages/Shell && adb install -r -g ${OUT}/data/app/ShellTests/ShellTests.apk && adb shell am instrument -e class com.android.shell.BugreportReceiverTest$1 -w com.android.shell.tests/android.support.test.runner.AndroidJUnitRunner Bug: 63509844 Change-Id: I7d802b4c8d115c989979a9edaff2f83fc19a4eae
2017-06-27Only require that system UIDs tag their sockets.Jeff Sharkey
Apps with a normal UID are typically isolated enough to not require socket tagging; we're mostly interested in tracking down internal UIDs that have lots of code sharing the same UID. Also fix up everyone doing manual string checks of Build.TYPE, since we now have first-class fields for those. Bug: 38126076 Test: builds, boots Change-Id: I3a40348196bd8459289f2b9355d9783a07f1e7dd
2017-06-02Merge "Enable wide color gamut rendering"TreeHugger Robot
2017-06-02Enable wide color gamut renderingRomain Guy
When wide color gamut rendering is requested, hwui will now use an rgba16f scRGB-nl surface for rendering. This change also fixes the way screenshots are handled in the platform to behave properly with wide gamut rendering. This change does not affect hardware layers. They also need to use rgba16f scRGB-nl; this will be addressed in another CL. Bug: 29940137 Test: CtsUiRenderingTestCases, CtsGraphicsTestCases Change-Id: I68fd96c451652136c566ec48fb0e97c2a7a257c5
2017-05-30Merge "Fix #62169466 bug report sharing options empty" into oc-dev am: ↵Amit Pawar
4d473c65cb am: e775158c6b Change-Id: Ice0e3330502330dde934d7e7544e466fcffcacca
2017-05-30Fix #62169466 bug report sharing options emptyAmith Yamasani
Was caused by a new requirement to not offer to show non-exported intent handlers as options. For first time warning dialog, don't show a chooser activity. Change-Id: Ibada9a7a14b77ec0670bf35ba0944f369d42bf69 Fixes: 62169466 Test: manual Test: mmm -j32 frameworks/base/packages/Shell && adb install -r -g ${OUT}/data/app/ShellTests/ShellTests.apk && adb shell am instrument -e class com.android.shell.BugreportReceiverTest$1 -w com.android.shell.tests/android.support.test.runner.AndroidJUnitRunner
2017-05-25Merge "Working around bugreport crash issues" into oc-dev am: 5176a4cda3Makoto Onuki
am: 44cb1486f3 Change-Id: I70495f11952e9d234d74fa3fd7149dec70fb7350
2017-05-25Working around bugreport crash issuesMakoto Onuki
Overall we need more synchronization, but I'm taking a safe approach here for oc-dev for now. Bug: 62043115 Test: adb shell am instrument -w com.android.shell.tests Change-Id: I0e22c5160cb96ce51dc1775237f01b7bf5c97a17
2017-05-24Merge "Make BugreportStorageProvider subclass FileSystemProvider."Ben Lin
2017-05-23Add new task flag when starting chooser activity in bug report.Bryce Lee
This flag is required whenever starting an activity from a non-activity context. Change-Id: Ia77e6e7801d712a20d407bc2ac92e543bc287010 Fixes: 62016780 Test: Click on generated bug report notification
2017-05-22Make BugreportStorageProvider subclass FileSystemProvider.Ben Lin
This allows it to gain all the benefits of FSP, ie. listening in on File-system level changes without any explicitly notification Uri passing back and forth. This also reverts commit 6c9ff513c6d7d3de7ab8920d88111c2b1dc1bb1f. Test: Manual test. Bug: 38183534 Change-Id: I30a1d8489ec8732bdb80611bd8fa7099763de2a3
2017-04-21Only show progress log every 10%Makoto Onuki
Bug: 37501913 Test: manual Change-Id: Ib7d14da0af33d39aa29b0b58c63c51e1059e0ada