This patch introduces between ConnectivityManager and
ConnectivityService a mechanism for propagating back to clients
informative errors in the form of error codes and associated custom
runtime exceptions.
Without error code, the service can only throw a limited number of
different exceptions over Binder. Furthermore the throw site stack
traces are always loss. Although for individual instances of a throw,
the error message can be inspected, aggregations of stack traces from
app crashes sanitize error messages and only leaves the stack traces.
This makes debugging dificult for some service calls such as
requestNetwork that can have a variety of failure modes.
In this patch only one failure mode is codified. More can be added later
at a light cost by: 1) defining an error code, 2) defining an
associated exception, 3) mapping the code to the exception. This patch
can serves as a template for doing so.
Test: $ runtest frameworks-net,
#testNetworkRequestMaximum() detects the new exception type.
Bug: 36556809, 36701874
Change-Id: I611fd7915575c9e418f7149fcdc8a879d2a3716d
This change will automatically save the Bluetooth On setting when
the user chooses to backup the phone settings into the cloud. This
setting is restored by the Setup Wizard (SUW) when configuring the
phone and this change will enable or disable the Bluetooth based
on this restored setting.
Bug: 35657817
Test: Manual test with Sailfish
Change-Id: Ie4518593af63f96f8c363f98941ca5260a3ec4bb
Provides an interface for application to send Set Idle
and Get Idle commands to remote HID Device. Support for these
two commands was missing from existing code, so existing code
design is reused to add support for these two commands.
Without this support following mandatory PTS test cases for HID 1.0
cannot be passed, TC_HOS_HID_BV_05/06.
Test: Executed PTS tests TC_HOS_HID_BV_05/06 and confirmed if they can
pass
Bug: 34344715
Change-Id: I548362cc328498920b2dae740f1a76b2cc2d6a67
The MIN and MAX values need to be swapped else
the parameter check in setInterval would always
fail
Bug: 37579882
Change-Id: I48538c2a61be88caaf04abd94074b3d9eb6dde96
Move Bluetooth battery stats tracking to AppScanStats for a more
unified tracking system.
Bug: 37720787
Test: cts-tradefed run cts-dev -m CtsIncidentHostTestCases -t com.android.server.cts.BatteryStatsValidationTest#testBleScans
Perform BLE scan and check battery stats
Change-Id: Ie6c682374e6e258c291d3a11eede649c7747ef40
This patch simplifies argument validation in NsdManager public api and
regroup duplicated validation into common methods.
This makes stack traces more actionable as now specific errors will
cause the api to throw exception from specific methods, whereas before
IllegalArgumentException would be thrown from inside the same api method
for different reasons.
This patch also includes a couple of other small cleanups.
Test: $ runtest -x frameworks/base/tests/net/../NsdManagerTest.java
Bug: 37013369
Change-Id: Iaad13e13976e9bf8f508d7188f823f8184ac414b
Restores previous behaviour where GATT callbacks are invoked on the
binder thread and not the calling process main looper thread.
This fixes performance regressions as well as some
NetworkOnMainThreadException's for some applications.
Bug: 37544152
Bug: 37871717
Test: Covered by prior API tests.
Change-Id: Id8ab705dd4d7f00030e6ac29e056dde5180670e9
(cherry picked from commit 6bdc550e27)
This commit builds on top of prior API commits. It
adds code to the system server, but in a disabled way.
The system server is responsible for monitoring two
(configured) package names: one for the "updater app"
(provided by the platform) and one for the "data app"
(provided by the OEM). When either package changes
the updater app is triggered via a privileged
intent.
The updater is then required to communicate with the
data app and report back to the system server.
Unit tests are included for the major components.
To run:
make -j30 FrameworksServicesTests
adb install -r -g "out/target/product/angler/data/app/FrameworksServicesTests/FrameworksServicesTests.apk"
adb shell am instrument -e package com.android.server.timezone -w com.android.frameworks.servicestests \
"com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner"
Test: See above.
Bug: 31008728
Merged-In: I8f82cdcc2b574778a7e0d0184270f305b69ee17b
Change-Id: I8f82cdcc2b574778a7e0d0184270f305b69ee17b
This class forms the contract between the updater app
(the app provided by and triggered by the system)
and the data app (the app provided by the OEM to
provide time zone data).
Bug: 31008728
Test: make only, just constants
Change-Id: I687b75954e132884aec962fcf8955f3f38a00b2f
Time zone update API classes. Currently hidden but they
will go on to be unhidden in future.
This forms the basis of client and system server code to
support time zone updates.
Tests can be run with:
make -j30 FrameworksCoreTests
adb install out/target/product/angler/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
adb shell am instrument -e package android.app.timezone \
-w com.android.frameworks.coretests \
"com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner"
Bug: 31008728
Test: See above.
Merged-In: I668bc8ac0cb78f3d4d9a4b7ad6ac1534b88af833
Change-Id: Icde574f8974152617a1f7ac9fa225bd5011dcce1
Symptom: If inputmethod handle an KeyEvent time out ,
Did not finish this event correctly , eventually lead to app ANR
Root Cause: without seq number when obtainMessage MSG_TIMEOUT_INPUT_EVENT
Solution: add seq parameter
Test: Input
Test: InputMethod
Fixes: 37648930
Change-Id: I3a2b964b34aa57267bd777305200a2bfdc66f65c
Merged-In: I3a2b964b34aa57267bd777305200a2bfdc66f65c
Signed-off-by: gaoshang <gaoshang@xiaomi.com>
Read and report the error_code & cause_code from last_install.
Bug: 36866437
Test: mma & observe the sysui event in logcat -b events
Change-Id: I5357861fc758e14ed3235bfc8cc76d7561ccea58
This patch adds test coverage for NsdManager#registerService() and
NsdManager#unregisterService(). This test shows a potential defect in
the api: if unregisterService() fails, the associated listener is always
unregistered from NsdManager. If the service initially registered is
still registered, this potentially make it impossible to unregister.
Test: added new unit test
Bug: 37013369, 33298084
Change-Id: Ia089b6d2f2a349907a8b29d9a3acd7f59e177887
Test: cts-tradefed run cts -m CtsLibcoreOkHttpTestCases -a arm64-v8a
Test: cts-tradefed run cts -m CtsLibcoreTestCases -a arm64-v8a
Change-Id: I1487d694c5abe7cf2b938d9f1869d9aeb5285ac5
This is the Java API for ::android::vintf::RuntimeInfo.
This will be used by CTS for device info report purposes.
Bug: 28656227
Test: cts-tradefed run cts -m CtsEdiHostTestCases --skip-preconditions
Change-Id: Id87c95a17e77d7ec1794a6f850de97edf9ae892d
Make sure calls to readBuffer() and readEmbeddedBuffer()
get the correct size, parent and offset passed in, so
these can be validated by libhwbinder.
Modified HwBlob to take a length argument as well,
so it can be validated.
Bug: 30498700
Test: hidl_test, hidl_test_java, Youtube, Maps, Netflix, Camera
Change-Id: I28712db97ae29b46acfe952d3d92d1ce5f666a4d
Merged-In: I28712db97ae29b46acfe952d3d92d1ce5f666a4d
Limit btsnoop file size by rotating between snoop files. The rotation occurrs
when a fixed number of packets have been logged and will start overwriting
the older file.
Bug: 35998031
Test: Enable snoop logs from developer options and let logs get large
Merged-In: I40d5da4c1b1c9b45908e5790d130f1c5e804c773
Change-Id: I40d5da4c1b1c9b45908e5790d130f1c5e804c773
Make NMR2 voicemail columns public
getVisualVoicemailPackageName() and the IS_OMTP_VOICEMAIL is used by
the voicemail UI to filter out voicemails not from the current visual
voicemail app, for example legacy telephony voicemails or previous
default dialer. These voicmails all represent the same source and are
likely duplicates.
BACKED_UP and RESTORED are used by the system dialer voicemail back
up and restore feature in NMR2. Since there are no API bump, it was
hidden and made public in this CL instead. See ag/1803794
ARCHIVED is used to prevent locally saved voicemails from being
deleted during a sync because it does not exist on the server.
Bug: 34463609
Fixes: 34463609
Bug: 32414216
Test: cts test android.provider.cts.VoicemailContractTest
android.telephony.cts.VisualVoicemailServiceTest
Change-Id: Iec1e499e763ad92f4a822715b6022e9cbe557c11
Merged-in: Iec1e499e763ad92f4a822715b6022e9cbe557c11
These classes, originally planned to be part of the
public API, are not ready for public consumption.
They are planned to be un-hidden in a future release.
Bug: 37681043
Test: make update-api and make
Change-Id: I8caccd3f8455341cb56a2256354eacbadedff047
The Log.setWtfHandler() provides a way to override
the default TerribleFailureHandler, so that we can
test that a piece of code reports as terrible
failure as expected.
Unfortunately, we can't actual use setWtfHandler()
at the moment. The problem is as follows:
1. The Log.setWtfHandler() method requires a
Log.TerribleFailureHandler instance.
2. The Log.TerribleFailureHandler interface requires
subclasses to implement a onTerribleFailure()
method. The method requires a Log.TerribleFailure
argument.
3. Log.TerribleFailure is a private inner class.
Given the above, classes outside of Log can't create
an appropriate argument to pass to Log.setWtfHandler().
To resolve this, we update the visibility of
Log.TerribleFailure to be the same as that of
Log.setWtfHandler(), and Log.TerribleFailureHandler.
Test: m -j32
Bug: 37425059
Change-Id: Ie646b931869582398d61495e367e0d36e767a3e3