* changes:
WifiOemMigrationHook: Migrate Settings global values
WifiManager: Add API for scan always available toggle
SoftApConfiguration: Add shutdown enabled method
We don't want new modules exposing stable aidl directly. APIs should
be defined as java @SystemApi. It also seems like nothing actually
depend on these interfaces, except one simple exception.
Bug: 147200698
Test: m
Change-Id: Ia4222fa35a9a2f3c75cebb12f75c536f27e2fe16
Merged-In: Ia4222fa35a9a2f3c75cebb12f75c536f27e2fe16
This creates individual files for each Parsed_ object.
Each also has a corresponding _Utils class for holding the
parsing logic for each object. This was done to keep the data
class as simple as possible.
This commit does not migrate existing usages of ComponentParseUtils
subclasses, so there will be duplicates of everything. A follow up
change will migrate all the parsing logic to use these new classes.
Bug: 135203078
Test: none, all testing for Parsed_ is to-be-merged and/or TBD
Change-Id: I7bea3b1742bc5d945d1ad287f406488d3bf46476
ParseInput is passed into all parsing methods and simply acts as
a shared container which can hold a generic success or error value.
When it is transformed into a result value, it must be returned to
its parent immediately, who can decide what to do with it.
ParseResult is the type returned when a ParseInput is set to success
or error. It casts itself to a strong type representing the returned
value, and is used by specifying ParseResult<ResultType> instead of
just ResultType for the method return type.
ParseTypeImpl is just the implementation of the two above which handles
moving between them. It also adds some debug functionality in case
the error catching code is incorrect or insufficient and it would be
preferably to always have a stack trace.
It is important to use this infrastructure in a thread-local manner,
such that you don't re-use an input already in use and always bubble
up on any success or error.
A constrained example:
class Parser {
val shared = ParseTypeImpl<>()
fun parse(file: File): Pair<Output, Output> {
// Reset the shared object
val input = shared.reset()
// Pass it to be used by the parsing method
var result = parseOutput(input, file.read())
// Verify the result
if (result.isError()) {
// Bubble up error if necessary
throw Exception(result.errorMessage, result.exception)
}
// Save the result (as it will be lost when the input is reused)
val one = result.result
// Parse something else
result = parseOutput(input, file.read())
// Same verification
if (result.isError()) {
// Bubble up error if necessary
throw Exception(result.errorMessage, result.exception)
}
val two = result.result
return one to two
}
fun parseOutput(input: Input, read: Object): ParseResult<Output> {
return if (read == null) {
input.error("Something went wrong")
} else {
input.success(read)
}
}
}
Bug: 135203078
Change-Id: I532d0047e67f80fd925b481dac8823ab45ad0194
Part of the Parsing/ParsedPackage split into core/server.
Moves core tests that are should now be in services,
and cleans up/migrates test code. Import changes, moving
classes into the server, and general small cleanup.
This is the final commit in the Parsing/ParsedPackage split.
Bug: 135203078
Test: enumerated in first commit of change ID
Ib4fe51d729a56bfb0ea1316e577358ba0dfceccf
Change-Id: I694da372feda070815e05b450807a18d71ec9b9d
I was looking for documentation of what these mean, but discovered
that these attributes have been obsolete for years.
Test: m
Change-Id: Ifcf47e99d22b1546780968d1030f835173612a27
Merged-In: Ifcf47e99d22b1546780968d1030f835173612a27
These were previously turned off as there were no previous
releases to compare it to. Check in empty files as comparison.
Whitelist current lint problems for now (filed bugs to follow-up).
Bug: 149818061
Bug: 149818284
Bug: 147559833
Test: m checkapi
Change-Id: Ib4cbc84ac9a826f7b947c951c94f8f5578f4554d
Merged-In: Ib4cbc84ac9a826f7b947c951c94f8f5578f4554d
(cherry picked from commit daa9d88444)
Currently the method swallows the exception but that pollutes the logs.
This change preserves the behavior while getting rid of distracting
errors in the logs.
Test: atest IntentTest; atest ChooserActivityTest
Change-Id: I2b02dc4ae0343fa1fd58a112455e426d8a6d3f34
MotionEvents sent from InputDispather would be buffered and dispatched
align the vsync by default. And it would provides many of benifits.
But for a high quality gaming experience, low latency input is critical
when we use analogs inputs (e.g mouse or joystick, etc.). So It's
important for gaming applications to process these input events in a
raw way, without them being coalesced on each frame.
- Add new api View.requestUnbufferedDispatch(source) to control which
input source classes could be unbuffered while handled by the view.
Bug: 135740001
Bug: 136277595
Test: atest ViewUnbufferedTest
Change-Id: If65ed1906f59947dcd1e5062519b643a17d0e8e5
Correct the svg path locates in bottom right corner without execeed
the display boundary.
Fixes: 149675352
Test: atest FrameworksCoreTests:android.view.CutoutSpecificationTest
Change-Id: I32eed816fc4fe774724bac7b58a2351fa52dcf4e
These were previously turned off as there were no previous
releases to compare it to. Check in empty files as comparison.
The new tethering APIs fail lint -- I have filed a release
blocking bug to get these cleaned up.
Bug: 149430003
Bug: 147559833
Test: m module-lib-api-api-lint
Test: m module-lib-api-check-last-released-api (with+without incompatibilities)
Change-Id: I2b171dc836ca121502fb345d8dd512a05c566a49
Merged-In: I2b171dc836ca121502fb345d8dd512a05c566a49
(cherry picked from commit 79e35c3beb)
The default setting is now invalid, so that if there is an overlay, it
is used and if not, the default int value is used.
Bug: b/149665432
Test: manual testing - ensure that the brightness value in
Settings>Display>Brightness Level can go the full range from 0% to 100%
(on a device without a float value in the overlay).
Change-Id: I52f3a66e33914bb91e05a6ae90f75d26dc002046
DocumentsUI currently hard-codes the IntentForwarderActivity class name.
It uses this to determine whether to show a 'switch to personal profile'
button. Essentially, it wants to know if the intent it received is a
cross-profile intent, so it asks package manager which intents can
resolve it and checks whether one of them is IntentForwarderActivity.
This is not CTS-enforced, so this CL ensures that it is. OEMs can remove
or rename IntentForwarderActivity as long as they update this API and
keep the corresponding CTS test passing.
Bug: 149568382
Bug: 136249261
Test: atest CtsDevicePolicyManagerTestCases:com.android.cts.devicepolicy.ManagedProfileCrossProfileTest#testCrossProfileIntentFilters
Change-Id: I51916c13320420068987925ac979e59bef3b660d
Ranking used to make use of the various adjustments in
ConnectivityService. These are now implemented in policy.
Test: ConnectivityServiceTest
Change-Id: I56109847678ea5cda1752511123ba652c0f4fe36
Namely :
• Explicitly selected policy
• VPN policy
• Validated policy
These go together to avoid breaking any test, because multiple
tests rely on all of these working.
Test: ConnectivityServiceTest
Change-Id: I7d815f87320c2becbfc93a60a3c54346ff4f47c9
Feature is disabled on non-FBE devices since the profile user will
end up in RUNNING_UNLOCKED state.
Bug: 143516540
Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest
Test: manual
Change-Id: Ib87492577b4e5153a8108036af89c547e4bb76ee
I have a test which instruments com.android.vending, which contains
some content providers. Each test case starts the app and then fairly
quickly kills it. I doubt it ever gets to the stage where the content
providers are working.
When the test runs slowly enough, a new instance of the app gets
killed 10s after an old instance was started, which breaks
things. That seems like the wrong behavior in general, although it
should be rare.
This change attempts to prevent that happening by cleaning up any old
timeout messages for the app when we restart it.
Bug: 149150665
Test: atest FrameworksCoreTests:android.content.ContentResolverTest
Change-Id: I1b04eab6b0fd3d24c0a2ee315818d58de4c5915d