1. 22 May, 2013 1 commit
  2. 11 May, 2013 1 commit
  3. 07 May, 2013 1 commit
  4. 29 Apr, 2013 1 commit
  5. 26 Apr, 2013 1 commit
    • Jeff Brown's avatar
      Generate SDK docs for v7 support library packages. · caf7b0a1
      Jeff Brown authored
      This change required fixing some bugs in how AAPT handles
      qualified symbols such as "android:layout_height"
      when generating JavaDoc links.  The links were being
      generated using the package name of the generated R file
      rather than the package name of the referenced symbol.
      These broken links caused the JavaDoc build to fail.
      
      Bug: 8175766
      Change-Id: I52fbef27825a25abca960cb44b59c2132267e9d6
      caf7b0a1
  6. 22 Apr, 2013 1 commit
    • Nick Pelly's avatar
      Add ContentValues & CursorWindow to framework.aidl · bb392ba5
      Nick Pelly authored
      By adding these stubs, they will be automatically added to framework.aidl
      in sdk builds.
      
      This makes it easier for unbundled apps to pass these objects across
      AIDL calls.
      
      ContentValues & CursorWindow are already public Parcelables. It is an
      oversight that they were not already in framework.aidl.
      
      There are a lot of other public Parcelables that are missing from
      framework.aidl. This just fixes two commonly requested ones.
      
      Change-Id: If61e19b1206da1680413d9ea03de87a90b6d233e
      bb392ba5
  7. 18 Apr, 2013 1 commit
    • Jaikumar Ganesh's avatar
      Hardware geofence API changes. · da650895
      Jaikumar Ganesh authored
      b/8631678
      
      1.GeofenceRequest object created.
      2.MonitorState moved to a new callback
      3.getTypeAndStatus separated to 2 calls.
      4.Binder death implemented
      5.geofenceChange callback name changed.
      6.Parameters rearranged in some calls.
      
      Change-Id: I8fe9621186aeb49efeb0eef1821a2556afe03cfc
      da650895
  8. 11 Apr, 2013 1 commit
  9. 10 Apr, 2013 1 commit
  10. 05 Apr, 2013 2 commits
    • Daniel Sandler's avatar
      New NotificationListenerService. · 0983cb91
      Daniel Sandler authored
      This is the best and only way for apps to listen for
      notifications: create a NotificationListenerService, wait
      for the NoMan to bind to you (as a result of the user
      checking a box somewhere in Settings and agreeing to a
      scary dialog box), and you'll start receiving notification
      posted and dismissed callbacks. Your service, while enabled,
      will also be able to clear one or all notifications.
      
      Use this power wisely.
      
      This change moves StatusBarNotification out of
      com.android.internal into android.service.notification.
      [Internal customers, including System UI and early users of
      the system-only listener binder API, will need to be
      updated.]
      
      Bug: 8199624
      Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
      0983cb91
    • Daniel Sandler's avatar
      New NotificationListenerService. · 5feceebb
      Daniel Sandler authored
      This is the best and only way for apps to listen for
      notifications: create a NotificationListenerService, wait
      for the NoMan to bind to you (as a result of the user
      checking a box somewhere in Settings and agreeing to a
      scary dialog box), and you'll start receiving notification
      posted and dismissed callbacks. Your service, while enabled,
      will also be able to clear one or all notifications.
      
      Use this power wisely.
      
      This change moves StatusBarNotification out of
      com.android.internal into android.service.notification.
      [Internal customers, including System UI and early users of
      the system-only listener binder API, will need to be
      updated.]
      
      Bug: 8199624
      Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
      5feceebb
  11. 03 Apr, 2013 1 commit
  12. 26 Mar, 2013 1 commit
    • Jeff Brown's avatar
      Use input transport for communications between app and IME. · c28867a1
      Jeff Brown authored
      The input method manager service now supplies an input channel for
      communication while creating an IME session on behalf of the
      application.
      
      This change significanly reduces the overhead of IME event dispatch
      by using a standard input channel to send input events rather than
      using binder.  This results in fewer thread context switches
      and fewer object allocations.
      
      What's more, the IME may perform additional batching of the motion
      events that it receives which may help it catch up if it is
      getting behind while processing them.
      
      Bug: 7984576
      Bug: 8473020
      Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
      c28867a1
  13. 22 Mar, 2013 1 commit
  14. 08 Mar, 2013 1 commit
    • Christopher Tate's avatar
      DO NOT MERGE - Full backup/restore now handles OBBs sensibly · 294b512e
      Christopher Tate authored
      OBB backup/ restore is no longer handled within the target app
      process.  This is done to avoid having to require that OBB-using
      apps have full read/write permission for external storage.
      
      The new OBB backup service is a new component running in the
      same app as the already-existing shared storage backup agent.
      The backup infrastructure delegates backup/restore of apps'
      OBB contents to this component (because the system process
      may not itself read/write external storage).
      
      From the command line, OBB backup is enabled by using new
      -obb / -noobb flags with adb backup.  The default is noobb.
      
      Finally, a couple of nit fixes:
      
      - buffer-size mismatch between the writer and reader of chunked
        file data has been corrected; now the reading side won't be
        issuing an extra pipe read per chunk.
      
      - bu now explicitly closes the transport socket fd after
        adopting it. This was benign but triggered a logged
        warning about leaked fds.
      
      (Cherrypicked)
      
      Change-Id: I471f6348abcccb7bf1e1710b7beda9f23de53e14
      294b512e
  15. 05 Mar, 2013 1 commit
  16. 28 Feb, 2013 1 commit
  17. 19 Feb, 2013 1 commit
  18. 13 Feb, 2013 1 commit
  19. 12 Feb, 2013 4 commits
  20. 11 Feb, 2013 1 commit
  21. 08 Feb, 2013 1 commit
  22. 07 Feb, 2013 2 commits
  23. 29 Jan, 2013 3 commits
  24. 28 Jan, 2013 2 commits
  25. 23 Jan, 2013 1 commit
    • Svetoslav Ganov's avatar
      Adding UI test automation APIs. · 80943d8d
      Svetoslav Ganov authored
      This change adds APIs support for implementing UI tests. Such tests do
      not rely on internal application structure and can span across application
      boundaries. UI automation APIs are encapsulated in the UiAutomation object
      that is provided by an Instrumentation object. It is initialized by the
      system and can be used for both introspecting the screen and performing
      interactions simulating a user. UI test are normal instrumentation tests
      and are executed on the device.
      
      UiAutomation uses the accessibility APIs to introspect the screen and
      a special delegate object to perform privileged operations such as
      injecting input events. Since instrumentation tests are invoked by a shell
      command, the shell program launching the tests creates a delegate object and
      passes it as an argument to started instrumentation. This delegate
      allows the APK that runs the tests to access some privileged operations
      protected by a signature level permissions which are explicitly granted
      to the shell user.
      
      The UiAutomation object also supports running tests in the legacy way
      where the tests are run as a Java shell program. This enables existing
      UiAutomator tests to keep working while the new ones should be implemented
      using the new APIs. The UiAutomation object exposes lower level APIs which
      allow simulation of arbitrary user interactions and writing complete UI test
      cases. Clients, such as UiAutomator, are encouraged to implement higher-
      level APIs which minimize development effort and can be used as a helper
      library by the test developer.
      
      The benefit of this change is decoupling UiAutomator from the system
      since the former was calling hidden APIs which required that it is
      bundled in the system image. This prevented UiAutomator from being
      evolved separately from the system. Also UiAutomator was creating
      additional API surface in the system image. Another benefit of the new
      design is that now test cases have access to a context and can use
      public platform APIs in addition to the UiAutomator ones. Further,
      third-parties can develop their own higher level test APIs on top
      of the lower level ones exposes by UiAutomation.
      
      bug:8028258
      
      Also this change adds the fully qualified resource name of the view's
      id in the emitted AccessibilityNodeInfo if a special flag is set while
      configuring the accessibility service. Also added is API for looking
      up node infos by this id. The id resource name is relatively more stable
      compared to the generaed id number which may change from one build to
      another. This API facilitate reuing the already defined ids for UI
      automation.
      
      bug:7678973
      
      Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
      80943d8d
  26. 15 Jan, 2013 1 commit
  27. 09 Jan, 2013 1 commit
    • Dianne Hackborn's avatar
      New "app ops" service. · a06de0f2
      Dianne Hackborn authored
      Initial implementation, tracking use of the vibrator, GPS,
      and location reports.
      
      Also includes an update to battery stats to also keep track of
      vibrator usage (since I had to be in the vibrator code anyway
      to instrument it).
      
      The service itself is only half-done.  Currently no API to
      retrieve the data (which once there will allow us to show you
      which apps are currently causing the GPS to run and who has
      recently accessed your location), it doesn't persist its data
      like it should, and no way to tell it to reject app requests
      for various operations.
      
      But hey, it's a start!
      
      Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
      a06de0f2
  28. 15 Dec, 2012 1 commit
    • Svetoslav Ganov's avatar
      Refactoring of the screen magnification feature. · 545252f4
      Svetoslav Ganov authored
      1. This patch takes care of the case where a magnified window is covering an unmagnigied
         one. One example is a dialog that covers the IME window.
      
      bug:7634430
      
      2. Ensuring that the UI automator tool can connect and correctly dump the screen.
      
      bug:7694696
      
      3. Removed the partial implementation for multi display magnification. It adds
         unnecessary complexity since it cannot be implemented without support for
         input from multiple screens. We will revisit when necessary.
      
      4. Moved the magnified border window as a surface in the window manager.
      
      5. Moved the mediator APIs on the window manager and the policy methods on the
         WindowManagerPolicy.
      
      6. Implemented batch event processing for the accessibility input filter.
      
      Change-Id: I4ebf68b94fb07201e124794f69611ece388ec116
      545252f4
  29. 04 Dec, 2012 1 commit
  30. 03 Dec, 2012 1 commit
    • Svetoslav Ganov's avatar
      Refactoring of the screen magnification feature. · 152e9bb8
      Svetoslav Ganov authored
      1. The screen magnification feature was implemented entirely as a part of the accessibility
         manager. To achieve that the window manager had to implement a bunch of hooks for an
         external client to observe its internal state. This was problematic since it dilutes
         the window manager interface and allows code that is deeply coupled with the window
         manager to reside outside of it. Also the observer callbacks were IPCs which cannot
         be called with the window manager's lock held. To avoid that the window manager had
         to post messages requesting notification of interested parties which makes the code
         consuming the callbacks to run asynchronously of the window manager. This causes timing
         issues and adds unnecessary complexity.
      
         Now the magnification logic is split in two halves. The first half that is responsible
         to track the magnified portion of the screen and serve as a policy which windows can be
         magnified and it is a part of the window manager. This part exposes higher level APIs
         allowing interested parties with the right permissions to control the magnification
         of a given display. The APIs also allow a client to be registered for callbacks on
         interesting changes such as resize of the magnified region, etc. This part servers
         as a mediator between magnification controllers and the window manager.
      
         The second half is a controller that is responsible to drive the magnification
         state based on touch interactions. It also presents a highlight when magnified to
         suggest the magnified potion of the screen. The controller is responsible for auto
         zooming out in case the user context changes - rotation, new actitivity. The controller
         also auto pans if a dialog appears and it does not interesect the magnified frame.
      
      bug:7410464
      
      2. By design screen magnification and touch exploration work separately and together. If
         magnification is enabled the user sees a larger version of the widgets and a sub section
         of the screen content. Accessibility services use the introspection APIs to "see" what
         is on the screen so they can speak it, navigate to the next item in response to a
         gesture, etc. Hence, the information returned to accessibility services has to reflect
         what a sighted user would see on the screen. Therefore, if the screen is magnified
         we need to adjust the bounds and position of the infos describing views in a magnified
         window such that the info bounds are equivalent to what the user sees.
      
         To improve performance we keep accessibility node info caches in the client process.
         However, when magnification state changes we have to clear these caches since the
         bounds of the cached infos no longer reflect the screen content which just got smaller
         or larger.
      
         This patch propagates not only the window scale as before but also the X/Y pan and the
         bounds of the magnified portion of the screen to the introspected app. This information
         is used to adjust the bounds of the node infos coming from this window such that the
         reported bounds are the same as the user sees not as the app thinks they are. Note that
         if magnification is enabled we zoom the content and pan it along the X and Y axis. Also
         recomputed is the isVisibleToUser property of the reported info since in a magnified
         state the user sees a subset of the window content and the views not in the magnified
         viewport should be reported as not visible to the user.
      
      bug:7344059
      
      Change-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2
      152e9bb8
  31. 29 Nov, 2012 1 commit
  32. 09 Oct, 2012 1 commit