If the locale puts the AM/PM before the hour and minute in time
formatting, make sure TimePicker respects that by putting the AM/PM
above the hour and minute in landscape mode, where the AM/PM used to
always appear below the hour and minute.
Two sets of locales are affected. All of them put the AM/PM before
the hour and minute, but the first set also defaults to 12-hour, so
the change is most visible in these: Ewe, Chinese (both Simplified
and Traditional, including Cantonese), Korean, and Tamil. The second
set, Hungarian, Japanese, Myanmar, Sinhala, and Turkish, would only
see the difference if the time picker is forced into 12-hour mode.
Test: manual (tested en-US, ar-EG, ta-IN, zh-Hans-CN, ko-KR)
Change-Id: Ic5840d46d81a004294bda4644df02c721152686b
Fixes: 63352170
Previously, the code that decided where the AM/PM indicator should
end up relative to the hours and minutes assumed that the locale was
LTR. Now it works correctly for RTL locales too.
Bug: 62846484
Test: manual (tested adding an alarm under ar-EG, en-US, and ta-IN, all of which are 12-hour)
Change-Id: I748baff01e2b3398747a2f8c074edbd16322bdf9
A long-standing bug in RelativeLayout meant that items inside a
RelativeLayout with layout centering (layout_centerHorizontal)
and WRAP_CONTENT would cause the surrounding RelativeLayout to be
sized incorrectly, resulting in bad layouts overall (the RelativeLayout
could end up much too large, pushing other layouts out of view). This
artifact was visible in TimePicker in landscape mode, but worked
around in the O release by forcing LTR on the parent layout of the
RelativeLayout.
The problem was that the case of center/wrap would end up positioning
the view on the left of the layout, instead of the RTL-friendly right
side. The fix is to do the correct thing in RTL mode (position relative
to the right side of the layout instead).
Bug: 63003526 TimePicker RTL issue
Bug: 62846484 TimePicker layout is broken in RTL landscape mode
Test: manual (run Clock app in RTL and non-RTL modes and observe layout behavior in
both portrait and landscape modes).
Change-Id: I9033857a39f422e3d6fb6e4d313d1739ae3f5c63
The index on where to add a child view was not being saved when writing
to a Parcel. This causes the index to default to 0 and resulted in views
always being added as the first view.
Now, persist this value to the Parcel and restore it.
Test: booted up on Nexus 6P, created notification with RemoteView, added
two views and verified views added in correct order.
Bug: 63177271
Change-Id: I94384e348b8a5168efe0601f382cdd2db6791fdb
Test: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest
bit FrameworksCoreTests:android.widget.TextViewActivityTest
bit FrameworksCoreTests:android.widget.TextViewActivityMoutseTest
Bug: 62745625
Change-Id: I360250a5c2a92d09c8d8f559b51c74f490f70c2c
Removing the recently-added APIs to adjust the title for
the popup window, and moving setting the title to
preparePopup(), which is guaranteed to have a context.
(The bug is a crash because we didn't have a context.)
Apps wishing to specify their own title can still do so
in the LayoutParams without bothering with the get/set.
Bug: 62675086
Test: With TalkBack running, navigate to Settings->
Network & Internet. Select the more options button and
double-tap to select it. It now announces "Popup Window".
Change-Id: I9735ace42c24ef4977d3f4d5150f768d44aff351
Fixes: 62444792
Test: manual verification with app that uses it the string
Test: CtsAutoFillServiceTestCases pass
Change-Id: Ic859a7a80ab25f6e240a308715b7c50708c497f3
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.
Bug: 62813533
Bug: 62879353
Test: Manually done
Merged-In: I4442ddc48dadb5c968b444be86038b602074d301
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
(cherry picked from commit 6d6cd68660)
While a negative height is pretty silly, crashing apps on
the new version of android makes them sad.
Test: Existing CTS passes.
Bug: 62434804
Change-Id: I5fc3fc50fb6ccfa9e96f38ded4fb8e338f263f09
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.
Bug: 62813533
Bug: 62879353
Test: Manually done
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
Also changed ArrayAdapter to use it, when set.
Fixes: 37518906
Test: cts-tradefed run commandAndExit cts-dev -m CtsWidgetTestCases -t android.widget.cts.BaseAdapterTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsWidgetTestCases -t android.widget.cts.ArrayAdapterTest
Test: m update-api
Change-Id: I5e883555b0fb9d084b57b9239595bf0632fc41af
This CL enables TextView to trigger
HapticFeedbackConstants.TEXT_HANDLE_MOVE on devices that explicitly
enable this feature with resource overlay. This CL should have no
behavior change and no performance impact by default.
Since the use case of HapticFeedbackConstants.TEXT_HANDLE_MOVE is
when the user is manually moving the text insertion/selection handle
on the touch screen, it is intentional that text handle move
triggered by hardware keyboard, mouse, TextView APIs, IME APIs, and
any other internal API calls do not trigger the haptic feedback
even if the feature is enabled with resource overlay.
Bug: 62454887
Test: Manually done as follows.
* Not triggered on cursor move by mouse
* Not triggered on cursor move by hardware keyboard
* Not triggered on cursor move by IME
* Triggered on cursor move by touch screen
Change-Id: I5e78aafb065378ca88ba39ec507b121c8baa3631
When switching back to the Radial Time Picker with an
IME visible, make sure to hide it.
Test: Set time from Settings. Switch to TextInputTimePicker.
Enter text so IME appears. Switch back to RadialTimePicker
IME should be hidden again.
Change-Id: Ia0ed149d74333b2f643d50a324172b64aa5e223b
Also updates documentation for RemoteViews clone to reflect the ISE;
however, the implementation is still incorrect and the method should be
deprecated and replaced with a copy constructor.
Bug: 62576297
Test: make -j32
Change-Id: I72dea99fa45a838d22eb54190a0f26a15e8ba766
Adding a default title and a hidden API to customize
the title.
Bug: 30177642
Test: With TalkBack running, navigate to Settings->
Network & Internet. Select the more options button and
double-tap to select it. It now announces "Popup Window".
Change-Id: I38591a25be0fe1d5bf57c9edee29f09c92e258ea
This CL will be reverted once it merges into the next release branch
to re-introduce the proposed APIs.
This CL also makes the following code changes to preserve API
compatibility:
-- It keeps the recently added RemoteViews.clone() synchronized logic
intact, but moves it inside the method to avoid changing the API
signature.
-- It reverts the RttCall.read() behavior to the oc-dev logic, since
we can't throw IOException until we get an API level bump. (The
original logic returned null instead of throwing.)
Test: builds, boots
Bug: 62427252, 62431886, 62427329
Bug: 62468911, 62431162, 62428935, 62429096
Bug: 37290820, 37359238, 36886243
Bug: 30143923, 35761231, 62192626, 29829689
Change-Id: I83d723f598cb0ee1fe198e65debd86ef7fd0420c
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
bit CtsWidgetTestCases:android.widget.cts.EditTextTest
Bug: 62271937
Change-Id: Ib3447281f3bd1abc811a25fc55ad55e34e155bbb
Because cloning wasn't synchronized, the notification
could become a non-root temporarily which in turn could
lead to a crash.
1. We're now properly synchronizing the cloning, such that
this can't happen anymore
2. We're now only cloning the old statusbar notification lightly
instead of heavily to avoid this altogether
Test: manual, update decoratedcustomview notifications really fast
Change-Id: Ia6525eec64ad9a26956ca2198e20198f55b2173c
Fixes: 62181033
- Sending scroll events for accessibility.
- Sending text update events when state changes.
- Blocking text updates during fling to reduce number of events.
- Making widget focusable by default, which keeps focus from
moving to the rest of the UI when the text box becomes invisible.
- Managing visibility of the text box alongside IME state, so the
IME won't decide to display the password keyboard during a fling.
This CL re-merges change I459d37d4a54c91e1cb5c7ec68fe0f012b25fb740
but includes a fix to hide the visibility of the input text field
whenever the keyboard needs to be hidden, even if the keyboard
is not being shown or the text box isn't active. That removes an
undesirable visual side-effect of the previous change. This CL
also has a more correct decision about when to send a text change
accessibility event.
Bug: 21494380
Bug: 37016501
Test: Ran NumberPicker CTS, including a new change.
Change-Id: I04c49ddc2f877cd019ee355c722c81dcd3ba0dda
Remove throwing an error and instead clamp
the selected date to min/max when changing
ranges.
Bug: 36636681
Test: manually verified that the case in the
bug does not happen again
Change-Id: If540f58d21375d2320df5215504d4569e5c2be2e