This is a case we found in monkey test, the main thread handles message while the activity has been recycled. It will raise a NullPointerException when we use getActivity() in following lines.
Assumpt the situation is: settings run in background and activity been recycled quickly, but handler still in the process.
Test: NA
Change-Id: I19db4f13e13294618ec8e42e4d9c54ce23504344
Signed-off-by: liurong <liurong@xiaomi.com>
Description: Make the default preferred sim slot as the first one(0) when get PREFERRED_SIM.
Test: NA
Change-Id: Id54bdbefd413c58ecd637cb8ff522861ead79331
Signed-off-by: liurong <liurong@xiaomi.com>
Mobile data always on was enabled by changing the default in
ConnectivityService to 1. However, the default value in the
developer options setting was left at 0. This means that by
default (i.e., when the setting is empty), mobile data always on
is enabled but appears in developer options as disabled.
Fix this by changing the default in developer options. This is
simpler than the other options (adding database upgrade code to
settings, making the default be controlled by config.xml and
ensuring that when a config changed broadcast is received the
value is re-rease, hardcoding a default value as an @hide
constant in Settings, etc.)
Bug: 23113288
Test: setting is off after "adb shell settings delete global mobile_data_always_on"
Change-Id: I27e2c0af7a03e510e640dbcfa281449d00385154
Add icon "+" displayed in APN setting differs from ones in other
settings like VPN settings, SIP accounts etc. Change the icon to
align with others.
Bug: 35936472
Test: Manually check icon display with fix
Change-Id: I99a57fbeb55bb04f911d28e85752ec04edab6f0e
Use WifiManager#removePasspointConfiguration when forgetting a
Passpoint network to remove the configuration.
This maintains the legacy behavior, where forgetting a Passpoint
network/AP will remove its provider's profile.
Bug: 34207710
Test: manual test
Change-Id: I8b7f6d9fb20fa9f0f0d90566f76c2a39308ce420
The query expression used to search for a term prefix is the prefix
itself with a '*' character appended to it. However, if query string
contains trailing space, the query expresssion (e.g. "screen *") doesn't
work. So to fix this issue, the unnecessary trailing space should be
removed.
Bug: 35231587
Test: manual - go to search in Settings and enter "screen "
Change-Id: Ifa5d96f5d38ad5454272f140da440b8ff55d5614
onResume initialize UI before registering switch change listener.
So that listener is not invoked in UI initialization, but only real
switch change by user.
Bug: 33680334
Test: make
Test: manual - carrier app is not invoked in onResume
Change-Id: I7ca1eb1eab214b50c8de72946590c1ecb676d4df
Bluetooth is the receiver for the OPEN_RECEIVED_FILES intent, so we
should aim the intent directly at them.
Test: go to BT settings and click "Open Received Files" in the context
Change-Id: I057215f1faf04c8c735a7e9340325716225ad22d
Fix: 35246073
As per CDD: The "android.*" namespace for intent constants is reserved
for public
Android API in AOSP. (Whether public to the full SDK, @SystemApi or
defined in AOSP support libraries.)
ACTION_CARRIER_SETUP intent is generally useful for carrier privileged
apps which is unbundled carrier apps, thus move to public APIs 33679956
Test: Manual
Bug: 33679956
Merged-in: I85dfa99d0b20bb1b534dfe8ead3c274a5c739786
Change-Id: I84ffd5f2c8c3418689ee3d5ff5ddc3f9f7959763
Use a foreground service to show the notification, separating dialog
creation from the receiver.
Test: pair request from remote device while the screen is off
Bug: 35234069
Change-Id: Ia3be3e8efdacf465e095af5a498ef5eb0fca83cd
Under expected circumstances, those null pointer checks are not
needed: onCreate() is always called before onCreateView(),
and the former creates the objects: mBluetoothSelectA2dpCodec,
mBluetoothSelectA2dpSampleRate, mBluetoothSelectA2dpBitsPerSample,
mBluetoothSelectA2dpChannelMode, mBluetoothSelectA2dpLdacPlaybackQuality .
For some unknown reason, somehow the following chain of calls is executed
before onCreate() :
onCreateView() ->
getActivity().registerReceiver(mBluetoothA2dpReceiver, ...) ->
mBluetoothA2dpReceiver.onReceive(...) ->
updateBluetoothA2dpConfigurationValues()
Adding the null pointer checks until the issue is understood.
Test: Code compilation
Bug: 35204511
Change-Id: I7c1d81015e66b26544b7b26f36cbc75f11713496
Provide calling package name in cell info APIs
BUG=31041780
Merged-In: Iad6e5c67ead2bf50d83d1ccad48c3f0341f53712
Change-Id: Iad6e5c67ead2bf50d83d1ccad48c3f0341f53712
Add an explicit check when calling getResources() inside
updateBluetoothA2dpConfigurationValues().
This fixes a potential race condition - the latter could be called
in background when processing intent update.
Bug: 35021206
Test: Manual UI testing
Change-Id: I38117c5b1e08f4b2ecfd7637bb3e34920aa0d296
Previously, the JNI upcall would contain only the current codec config.
In the new API, the upcall contains:
1. The current codec config
2. The list of codecs containing the local codecs capabilities
3. The list of codecs containing the selectable codecs capabilities.
This list is the intersection of the local codecs capabilities
and the capabilities of the paired device.
Also, refactored the Java internals to accomodate the extra information:
* Added new class BluetoothCodecStatus that contains the extra info:
current codec config, local codecs capabilities and selectable
codecs capabilities
* Renamed method getCodecConfig() to getCodecStatus() and return the
corresponding BluetoothCodecStatus object.
* Updates to class BluetoothCodecConfig:
new methods isValid(), getCodecName(), and updated toString()
so it is more user friendly
* Removed BluetoothCodecConfig.EXTRA_CODEC_CONFIG and
EXTRA_PREVIOUS_CODEC_CONFIG.
The former is superseded by BluetoothCodecStatus.EXTRA_CODEC_STATUS;
the latter is not really used.
Test: A2DP streaming with headsets and switching the codecs
Change-Id: I490a70c82b686be7105862aeaeafcff495369dae
Use new function getDiscoveryEndMillis() to replace use of shared preferences
and intents.
Test: scan recently, then connect from external BT device
Bug: 34395439
Change-Id: Ia498b3bb4868b656cbbb9fbdc607a49af948343b
This allows for quick performance testing and also for a better
dogfooding experience.
Bug: 34256441
Test: Verification with getprop.
Change-Id: I81c5e0b1044d4569a6fe55a4b30f7e21c4465fc2
* Use the summary strings instead of the titles strings as appropriate.
* Use proper translatable strings instead of hard-coded "Streaming: "
embedded string.
Test: UI visual observation
Change-Id: I0222afc30c75e68e2568c33c781755802d86c502
1. There is no way to disconnect VPN after 'Clear credentials'
without removing whole Internet connection because VPN profile to
disconnect is removed when Clear credentials.
2. This commit checks whether VPN is being established or not when
Clear credentials and disconnect VPN if VPN is being established.
Lastly, this shows a toast message to inform VPN disconnected.
Test: manual - took a photo
Signed-off-by : Sungmin Lee <insight.lee@lge.com>
Bug: 29093779
Change-Id: Id5ea01c8731b3b0fca2a31d9d84e8c103952b377
This should avoid potential crashes in case somehow onCreateView() is
called without onCreate() being called first.
Test: Manual UI interaction with Developer Settings
Bug: 34192829
Change-Id: Iaf46d05f30d20f98727c4dbfb91feef8509c92f7
When Wi-Fi is off, Advanced menus below should be disabled:
1. "Wi-Fi Direct"
2. "WPS Push Button"
3. "WPS Pin Entry"
in Settings->Wi-Fi->Advanced.
Bug:31102679
Test: Test with the device
Change-Id: I5af4c18512c991211eb42ef759e00917828f1b4c
Index's constructor will hold context of caller.
context.getApplicationContext() instead of context to prevent activity
leaks.
Bug: https://code.google.com/p/android/issues/detail?id=223322
Test: manual-start a new activity call Index constructor ,then pressed
back.
Change-Id: Ic12af62f9b718d328610a57985f64ca4629bab99
Signed-off-by: gaochong <gaochong@xiaomi.com>
1. When Settings > More and change disallow configuring VPN policy
and resume Settings, update VPN preference state.
2. When Settings > More > VPN and change disallow configuring VPN policy
and resume VPN Settings, update its state.
Test: manual
Signed-off-by : Sungmin Lee <insight.lee@lge.com>
Change-Id: I4f3c85733ca6ba05cba46e2f4854f54a42b10c21
To facilitate user recovery from issues where the band mode
list is incomplete and may not report the full list of bands,
the user should *always* have the ability to set the band mode
selection to AUTOMATIC.
Bug: 28124606
Test: compilation, UI check
Change-Id: Ib961d9b058ade5a51dfec0777971c8c98dee2033
Adding a new toggle to control whether network
recommendations are enabled.
Removed the "Use open networks" pref and its associated strings
and components as it's no longer needed.
Test: Built and ran.
BUG: 33549591
BUG: 33270391
Change-Id: I03069ca30d06089600ca958f8da117564189f839
Merged-In: I7248ac32e0598d82107c150372c1fe4e9e2243a5
Merged-In: I82eed6dc7daef1c622ea4e33ce42c331e0cd786d
If permission review is enabled toggling bluetoth on or off
results in a user prompt to collect consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.
bug:28715749
Change-Id: I0b9065446f9d0cfb819065eaf2dc160eb1c1f7ec
When rotating the device, the Activity of the target
Fragment become null. So NullPointerException occurs.
The dialog should check if the Activity is null
before calling onActivityResult().
Bug: 28333723
Test: manual - go to Settings > Apps > Clock,
click Battery optimization and rotate device
Change-Id: I7f68d6ece7d169fd96d04c1788e55ee506aae1ae