- threshold set to 60% (using a constant)
- fix also one issue during layout direction resolution (parent could be null so delay resolution
up to when parent is no more null)
Change-Id: I65f24a297aac6bc0d5d482ee31b55db0b201e5bf
- use ViewGroup inheritance if defined
- use different heuristics (inherit, firstStrong, anyRtl, ltr, rtl)
- add more unit tests
Change-Id: Ic1325aa7d9e4689b181e0a2d08b7dd7fb3f0dbeb
Change NMS parsing to handle extended /proc/ stats formats by pairing
values with header keys. Move TrafficStats to integer tags to match
kernel internals, and offer well-known tags for system services.
Async policy event dispatch from NPMS, and update tests to block for
event dispatch. Narrow app policy to exclude apps signed with system
key, which are usually critical.
Bug: 4948913, 4903489, 4585280
Change-Id: Idb357227ccaa617906411f309371cea18d7bc519
This fixes a bug where the animations in MultiWaveView were keeping references
to bitmaps and preventing them from being reclaimed during GC. The solution
is two-fold:
1. When any given animation completes, it is now removed from the list of running
animators objects.
2. When the client explicitly calls reset(), we release all references to
animators and objects.
Change-Id: Ice434ed1720fe4c253b9607ef61699d41f87f777
Basiaclly two changes included:
- Let CallLog use new data usage feedback API, so that
ContactsProvider2 is able to figure out what type of contact
method is used when a person is contacted.
- introduce phone_only parameter for strequent uri, which enables
Contacts app to obtain a contact list for recently phone-called
contacts.
markAsContacted() isn't used anymore, as nhe new API takes care of
old counters (TIMES_CONTACTED/LAST_TIME_CONTACTED) too.
Bug: 4371572
Change-Id: Ie193bb91ee49b18f4a546a1f52be780bb514301d
A follow up change in voicemail content provider will now
populate this extra instead instead of EXTRA_CHANGED_BY to indicate if
the change was caused by the receiver. This makes the the security of
the notifications a bit tighter by not revealing the package name of the
app that made the change to others.
See Bug http://b/4773134
Change-Id: Ie376c40c7bba9792da3b18e66d9f205166a402e0
b/2689122 SSL error shows the wrong page when triggered by an image/javascript in the page.
This change receives the URL which has a cert error from webkit and carrys it in SslError.
so the Browser app can show the URL in the dialog boxes. Related CLs are:
webkit: https://android-git.corp.google.com/g/#change,117817
browser: https://android-git.corp.google.com/g/#change,117835
Change-Id: I65c3f038a48b6386fa93cb25a9ef70dbfb982c18
When there are no paired devices, pairing a new device
will cause a crash since the profile proxies will be null.
Change-Id: Ie1a9fd198e46d7e9cc2ba1b2f3a806b3c709f568
The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.
Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.
ICameraRecordingProxy
startRecording()
stopRecording()
releaseRecordingFrame()
ICameraRecordingProxyListener
dataCallbackTimestamp()
The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the
recording.
The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
(1) The app: MediaRecorder.start().
(2) The recorder: ICamera.unlock() and ICamera.disconnect().
(3) The recorder: ICameraRecordingProxy.startRecording().
(4) The app: ICamera.reconnect().
(5) The app: ICamera.startRecording().
4. During recording
(1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
(2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
(1) The app: MediaRecorder.stop()
(2) The recorder: ICameraRecordingProxy.stopRecording().
(3) The app: ICamera.stopRecording().
bug:2644213
Change-Id: I15269397defc25cbbcae16abc071c8349c123122
1. Added scrolling accessibility event to provicde feedback
when a view is scrolled.
Note: We need scroll events for ICS since even though we have
touch exploration the user does not know when something
is scrollable and not feedback is provided while scrolling.
bug:4902097
2. Added a text selection change event to provide feedback
for selection changes including cursor movement.
Note: We need the text selection change events for ICS since
even though the IME supports navigation in text fields
the user receives no feedback for the current selection/
cursor position.
bug:4586186
3. Added a scrollable property to both AccessibilityEvent and
AccessibilityNodeInfo. The info has to describe the source
in terms of all properties that make sense for accessibility
purposes and the event has this property (kinda duplicated)
since clients will aways want to know if the source is
scrollable to provided clue to the user and we want to avoid
pulling the info of the source for every accessibility event.
Change-Id: I232d6825da78e6a12d52125f51320217e6fadb11
The repeatsMonthlyOnDayCount() function was returning true for events
like FREQ=MONTHLY;BYDAY=TU which actually appear weekly. This is not
the desired behavior of the function.
Bug 4522027
Change-Id: I03ef68b429828097c8bad7fcd374e7c9eb4c7b03
After unreverting the linkstate change patch, hook up notification handlers
that didn't exist when the first patch was created, like
EthernetDataTracker.java and Vpn.java.
For the observers that handle interfaceStatusChanged(), I made
interfaceLinkStatusChanged() call it so they both do the same thing.
Change-Id: I0077e5e5f48f3932ba98f5bf363243892f2de6cc
Signed-off-by: Mike J. Chen <mjchen@google.com>