Context:
Android uses a hand-crafted list for timezones to pick from in
Settings. Independently of what we actually show the user, when a
user is selecting their timezone they are selecting an olson timezone
ID. Separate olson ids exist for a sets of zone rules. If two places
have differed in their zone rules in the past they have different
olson ids. Olson Ids are usually named after cities and have
"exemplar locations", e.g. "Europe/London" covers the UK and the
exemplar location is "London".
Exemplar locations were often chosen based on historic considerations
and do not necessarily make sense to contemporary users.
Normal Android users don't know or care about any of this, but they do
understand geography/cities and sometimes understand things like
timezone names like "British Summer Time" (but usually not in other
countries).
Unfortunately timezone names understood by users also don't have a
one-to-one mapping with olson IDs. Two places can have the same
timezone name for part of the year but not the rest. For example, all
of a the country Foo may be using "Foo Standard Time" for part of the
year, but in summer some parts of the country may switch to "Foo
Summer Time" while others stay on "Foo Standard Time". These would
have different Olson Ids.
Also, two places that historically differed in their choice of
timezone rules may have since aligned. e.g. parts of Europe. They
still have their own olson ids.
The Android hand-crafted list is (I assume) based on a set of
compromises to provide reasonable coverage of users' needs without
overwhelming them with too many choices for historic irrelevancies.
To assist with picking a timezone that makes sense to a user, Android
currently does the following:
When selecting a timezone:
For "local" timezones Android shows the timezone "long name". e.g.
"British Summer Time", "Eastern Standard Time".
For non-local timezones Android uses the exemplar location (e.g. the
city).
This had an issue:
Some "local" timezones, e.g. Australia for English (Australian),
would show multiple entries for the same long timezone name without
any way of telling them apart.
After this change:
This change means that settings now uses the exemplar location in
preference when the Android display strings would be ambiguous. For
countries where there is no ambiguity (e.g. the UK) Android continues
to use the timezone long name.
Bug: 19058953
Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2132
Change-Id: I6d4d34ea950f94e569e133670c2287b34ba50e30
It enables customizations for certain cases like whether the user is able to
create restricted profiles or multiuser UI is disabled.
Bug: 21197002
Change-Id: Ia672c0f9bb451877f8debe04438b46cb2b7e9242
- In particular, tells OEMs how to add their own settings
Change-Id: I45e4fb7ff59705a2bcb53a72c71fd230f2e085c5
# Conflicts:
# src/com/android/settings/location/LocationSettings.java
When deciding to show the user section or not, Just rely
on supportsMultipleUsers. Don't check hasMultipleUsers.
BUG:21119929
Change-Id: Ifbddac10e2f6dc02b8e2e55b41ab9f5be018dfca
Default phone information is not available for a secondary
user and when accessed using service command *#*#INFO#*#*,
it causes crash in Settings. Removed the preference for a
secondary user.
To verify:
1. Add user(slide down status bar>user icon>Add user>
OK>finish the setup guide).
2. As new user launch Phone app>input “*#*#4636#*#*”>
tap Phone information>check
Causes Settings to crash with:
Caused by: java.lang.IllegalStateException: Default phones haven't been made yet!
at com.android.internal.telephony.PhoneFactory.getDefaultPhone(PhoneFactory.java:214)
at com.android.settings.RadioInfo.onCreate(RadioInfo.java:263)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
Change-Id: Ie23107c5eead04183cfd8b5460a9a7a3426a99b8
The fact that isSpellCheckerEnabled returns true does not mean
that getCurrentSpellChecker will return non null. By default
isSpellCheckerEnabled is true in TextServicesSettings, even when
there is no spellchecker service active on the device.
The issue can be verified by disabling the Google Keyboard (assuming
the GMS LatinImeGoogle is used) in Settings|Apps and later
entering Settings|Language & input. Without this patch Settings
crashes at that point with the following stack:
E/AndroidRuntime(13020): Caused by: java.lang.NullPointerException: \
Attempt to invoke virtual method 'java.lang.CharSequence android.vie\
w.textservice.SpellCheckerInfo.loadLabel(android.content.pm.PackageM\
anager)' on a null object reference
E/AndroidRuntime(13020): at com.android.settings.inputmethod.\
InputMethodAndLanguageSettings.onResume(InputMethodAndLanguageSettin\
gs.java:253)
E/AndroidRuntime(13020): at android.app.Fragment.performResum\
e(Fragment.java:2096)
E/AndroidRuntime(13020): at android.app.FragmentManagerImpl.m\
oveToState(FragmentManager.java:928)
E/AndroidRuntime(13020): at android.app.FragmentManagerImpl.m\
oveToState(FragmentManager.java:1067)
Bug: 19832033
Change-Id: I65e6d269572e064aa6897807b6611ef947d90211
Check for cross-user installs was missing a short-circuit for installs
where no UID was specified. This is now added.
Bug: 19194391
Change-Id: I10aa8323b47e0fcabb59e7c30d677080bb80b976
Second try to commit tapjacking protection for device administrator permission dialog.
Remplaced tap by spaces
Signed-off-by: Stephan Huber <huber.stephan.sit@gmail.com>
Change-Id: I8e14e713d1f039ca79f5006cdeb12b65652884fb
Show overall usage with a 50% transparency when looking at a
specific app details page. (Otherwise you can't tell them apart.)
Bug: 18927935
Change-Id: I0cad1ba0451a9dab3ed90fa5aa53c115dbe3e1d3
APNs with type="ia" and no APN address (apn="") are used to
prevent an initial attach APN from being sent to the modem. This
in turn prevents the LTE ESM information procedure from being
used during the LTE attach. These APNs are meaningless and confusing to end users - so this
change hides them from the APN list.
Bug: 19101183
Change-Id: I9aacf787f8c175a301ad546f972f8972aad2a6b3
VoLTE Provisioned flag can be lost when new device image is flashed. Currently
there is no way to trigger Verizon provisioning update from device. This patch
adds button in hidden settings which allow to manually change value of the
flag.
Bug: 19038362
Change-Id: I23f13004dbcf9eaf711c66261696772b1d7bfd6e
Users for which UserManager.getUserInfo returned null were shown as
unnamed users on Settings > Data Usage. This behavior has now changed
to show their data usage under the same item as UID_REMOVED.
Bug: 18174376
Change-Id: I8d172647edb51f7a277b4b714e9b7f3a0b5f3154
(cherry picked from commit cd9b1507fb)
As a result of commit 7de119c (ag/591931), SDP is performed when the
pairing dialog pops up. There are multiple problems with this. On badly
behaved devices an SDP request might trigger pairing from the remote
side, other devices (like Logitech keyboards) will close the connection
once SDP disconnects, causing the pairing to fail.
Further more, fetchUuidsWithSdk() is an asynchronous call. The code that
was added does not wait for SDP to complete. Thus the check for the PBAP
UUID will always fail and cause the permission check to still be
displayed.
With this change, SDP is not performed when the dialog is popped up and
PBAP permission is granted after bonding and subsequent service
discovery in accordance with final consensus in bug 16964116.
Bug: 18948640
Change-Id: I149afa8ae59b63f59ba579c12f97c3ea3d70112c
The settings app is shared among the personal and work profiles.
When fetching print jobs it was not getting the ones for the work
profile, rather the ones for the current user which is the personal
profile.
bug:18867406
Change-Id: I99f8cf3a3e2b133a0a4d5a8915473d1190e205f4