- Split system-server internal interface in two. One accessible only
inside of the services part of system server. One accessible
everywhere. This is necessary as the second part needs to be
accessible by the PermissionBackupHelper. But the former uses internal
data structures that should not be moved into android.permission.
- Remove old delayed permission restore code from
PermissionManagerService and Settings. This code now lives in
permission controller
- Keep the logic to remember which users still have delayed permissions
left. It is quite expensive to call into permission controller for
ever install of an app, hence this check is necessary. Currently this
mirrors the original logic. This can be improved further later.
Test: Built
Change-Id: Ibc1d5183c361dc55896882db1f7b765e1bee6e84
It's possible to use SEND_MULTIPLE while only sending 1 item.
Adjust the text in this case so that we don't show:
"{fileName} + 0 files".
Better handle errors when attempting to extract file names
and thumbnails.
Bug: 120419296
Test: atest ChooserActivityTest
Change-Id: Ib381974ffbf61c98031ada287bf2533172e6cf9f
Capturing any security exceptions for file content preview, and
logging for now
Bug: 124203056
Test: Bug report -> Share -> Switch profile
Change-Id: Ia22f5d646795d09eae34ca498bee4442665783cd
Continuation of ag/6226654; edits made per Svetoslav's last comments.
Bug: 122740752
Bug: 123080754
Test: blueline-userdebug build completes successfully.
Change-Id: I3e43137eb6e0d8cae77e14d331150d5a05ede07c
Need to limit the width of the content preview area
to a maximum, especially for landscape mode
Bug: 120419296
Test: Visual inspection of landscape/portrait
Change-Id: Ia1d6dc00ca4e0bcb0d06b0d30c24be25b20528e8
Frameworks Base section of power monitor addition. Since IPowerStats
does not have a java interface, we needed to make a native interface
into the code. I followed how the LowPowerStats collection is being
done.
Native code is located in
com_android_server_am_BatteryStatsService.cpp. We are calling the
getEnergyData to get all rails energy data that has been collecting from
boot. This energy data is collected in uWs (microWatt seconds). After
the rail data is collected at each update in the RailStats class, the
wifi and cellular total energy values will contain the energy that all
rails associated with the specific subsystem will have.
We update and collect the energy data using battery stats and propagate
it to telephony metrics. When we collect the total energy for an update
we need to zero out the energy data so it can be accumulated correctly.
1/31: Added modemRailEnergy and wifiRailEnergy to Volta historian.
Bug: 115929961
Test: adb shell dumpsys activity service TelephonyDebugService --metrics
Results Examples:
Energy consumed by modem (mAh): 2.41
Energy Rails consumed by modem (mAh): 2.76
Dumpsys historian results:
+4m23s712ms (2) 100 cc511a18 modemRailChargemAh=0.34 wifiRailChargemAh=1.17 +wifi_scan stats=0:"dump"
+10m24s089ms (2) 100 c4511a18 modemRailChargemAh=0.71 wifiRailChargemAh=1.77 stats=0:"write"
+11m24s228ms (3) 100 c4511a19 volt=4315 charge=3988 modemRailChargemAh=0.77 wifiRailChargemAh=1.94 wifi_signal_strength=2 stats=0:"battery-state"
Change-Id: I97521a03204968079e61f3de86640d4f1a580255
Support sharing 1 or more non-image type files, with potential
for system generated thumbnail image
Bug: 120419296
Test: atest ChooserActivityTest
Change-Id: I17c44435bb0444035e2ec7675cbc367b75cc3a8e
This is to decrease the size of the data. We are not using some of the
dimensions we collect the data for currently.
Test: atest LooperStatsTest BinderCallsStatsTest
Change-Id: I9e51eadb0001e4e7bc5250e5e72b1d4c082ee6d9
This should start at the app zygote isolated UID range, not the
regular isolated UID range.
Bug: 123758436
Test: atest CtsSeccompHostTestcases
atest android.app.cts.ServiceTest#testActivityServiceBindingLru
Change-Id: Ic1b1ee02ab86a2e0f6a02525b466e6f5fdcdaf6c
Update vold to only create package sandboxes and not do any bind mounts.
After zygote forks, all the necessary bind mounts will be setup for
the process.
Bug: 124009234
Test: manual
Test: atest cts/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest MediaProviderTests
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Ibd4af79b385e20228a0e9ce4446f14ead87e228e
Make HiddenApiUsageLogger a singleton initialised in Zygote pre-fork and
rely on copy-on-write to prevent heap size increases
Test: atest google/perf/memory/memory-test
Bug: 123705750
Change-Id: Idc5ad13d4e158659009290f410ce721013345308
The idea is to measure new feature success and some logs to track are
missing.
Additionally, as part of the project, it became clear that phone
orientation is currently not logged. While this is something we want to
know in the context of sharesheets, this will also be a valueable
metric for other applications.
Bug: 122511750
Test: Added some tests, but wasn't able to test addition in
ResolverDrawerLayout and for the direct share target logging.
Change-Id: I0a6bc6f94a318ea3cf59bf8233ec33a2ddda80ce
These Extensible Metadata Platform (XMP) tags contain XML data which
is used to communicate rich metadata information beyond EXIF.
TIFF: Tag 700
JPEG: Application segment 1 (0xFFE1) with segment header
"http://ns.adobe.com/xap/1.0/\x00"
Bug: 120791890
Test: atest cts/tests/tests/media/src/android/media/cts/ExifInterfaceTest.java
Change-Id: Iacccbf9b516b3204d99a760eaeb19a41554c3f97
It turns out that AppRestrictionsHelper#addSystemImes() has always
queried for the owner user's system IMEs despite the fact that it's
trying to query system IMEs for a restricted profile user. This
behavior has not changed since its beginning [1].
Most likely people would not have noticed this though, because:
* Settings app does not show a menu item to create a restricted user
on phone devices.
* Even if it's available, most people do not use restricted users.
* Even if someone created a restrected user, most likely the owner
user and the restrected user share the same set of system IMEs,
which are defined as "pre-installed" IMEs.
Anyway, AppRestrictionsHelper#addSystemImes() will start using a newly
introduced @hide API IMM#getEnabledInputMethodListAsUser() so that it
can query for the right user's system IMEs, instead of querying owner
user's ones.
[1]: Ifced841ad3bfbde33d2403356216dd1749b7fa9a
a7a93784d1f9798d37cb618def1a558f8d626f0f
Bug: 122164939
Test: atest SettingsLibTests:AppRestrictionsHelperTest
Test: manually done as follows.
1. Build aosp_taimen-userdebug and flash it.
2. adb shell pm create-user --restricted test_profile
3. adb shell am start -a android.settings.USER_SETTINGS
4. Click the gear icon next to the "test_profile" user.
5. By adding a log, make sure that IMMS#getInputMethodList()
gets called with userId = 10.
Change-Id: I5b50b5fe143c74c87b331bda3e5bcc4d6248436e
The API enables developers to display icons for menu items. Before this,
the common workaround was to reflect in MenuPopupHelper (non-public
class), and call setForceShowIcon there.
Bug: 123769396
Test: atest android.widget.cts.PopupMenuTest
Change-Id: If4ef46bc7786a2e7e756a9b15c81147e0cce1090
- Only backup and restore global state for the system user.
- Ignore user id in data for restore (as user 0 on source device could
be restoring to user 10 on target device for example).
- Don't restore managed services for managed users.
Bug: 123349308
Test: 1) atest $(find \
frameworks/base/services/tests/uiservicestests/src/com/android/server/notification \
-name '*Test.java')
2) Manual: Test backup and restore of DND configurations and app
notifications in system and non-system user.
TODO: More testing
Change-Id: Iea2933f2d8709f830a65815871ce974c00f6ce83
This CL fixes a regression introduced by my previous CL [1], which
enabled InputMethodManager#getEnabledInputMethodList() to return the
result based on the caller's user ID, not based on the current IME
user, even when it gets called from background users.
Since Keyguard always runs as user 0 currently, it is now Keyguard's
responsibility for querying enabled IMEs with an explicit user ID. To
do so this CL adds a @hide API IMM#getEnabledInputMethodListAsUser()
and lets KeyguardPasswordView use it.
[1]: I192a0f5a1375170d17a4c08af94f23966dbaea8b
7f8ee4b9dd
Bug: 122164939
Fix: 123904896
Test: Manually verified as follows.
1. Build aosp_taimen-userdebug and flash it.
2. make -j SoftKeyboard
3. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
4. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
5. adb shell pm create-user test_user
6. adb shell am switch-user 10
7. adb shell locksettings set-password aaaa
8. adb shell wm dismiss-keyguard
9. Make sure that the IME switcher icon is not shown at the right
end of the password field.
Change-Id: I6e7d7353c2b5b1da5d460ae005fb2585f85fb1c4
Log the status of getEditChoicesBeforeSending with the
SMART_REPLY_VISIBLE and SMART_REPLY_ACTION events.
Log whether the reply was changed before sending with the
SMART_REPLY_ACTION event.
Bug: 123407240
Test: atest NotificationManagerServiceTest SmartReplyControllerTest SmartReplyViewTest NotificationContentViewTest RemoteInputViewTest SmartReplyViewTest
Change-Id: I92bf9b9486f023e7a1ab553c24a9d021dc2f3133
The overall workflow of Content Capture is:
- send initial structure
- send deltas afterwards
Initially, the initial structure was being reported one view at time, which was causing janking.
This CL changes it so while that while the initial structure is being laid out, the content captures
are held. Then after it's finished, it traverses the structure and sends the initial events.
This change also allowed use to optimize the performance by caching the following state:
- View.isImportantForContentCapture()
- View.getContentCaptureSession()
- Context.getContentCaptureManager()
Besides the performance improvements, this approach also has the following advantanges:
- It sends the VIEW_APPEARED events for the parent views before the events for the children.
- It send events to notify when the view structure layout is ready.
Bug: 123307965
Test: atest CtsContentCaptureServiceTestCases
Test: m update-api
Change-Id: I6db7cc11c6edf65cbffe42187fda82c84c3665ff