Commit Graph

65 Commits

Author SHA1 Message Date
Winson
c0d7058b14 Referencing static interpolators.
Change-Id: I5d2292016e869ed533f5873e373a1eccce651fc5
2016-01-29 11:15:43 -08:00
Yasuhiro Matsuda
32e708ff6f Remove UsbStorageActivity, which is no longer used.
UsbStorageActivity has not been used since the following CL.
https://googleplex-android-review.git.corp.google.com/#/c/673367/

BUG: 19993667
Change-Id: I96ff4cafa947c24aae1e5f76678fef72ac368c91
2015-07-22 22:18:27 +09:00
Xiaohui Chen
05d58afddb sys user split: fix usb debugging notice
BUG:19913735
Change-Id: Iefdf8a12f1622650bb0d61e7ffb73040e4b8d498
2015-07-14 21:43:42 +00:00
Jeff Sharkey
3aeb218d0d am 6480393a: am c2e16e9b: am 63ba1d9e: am d58ddd82: am 246d6984: Merge "Handle missing migration source volume." into mnc-dev
* commit '6480393a0dc4d96de6f58cf0a1420e82bc8203a0':
  Handle missing migration source volume.
2015-07-07 00:30:45 +00:00
Jeff Sharkey
ef10ee0145 Handle missing migration source volume.
Users can try migrating primary storage while the current location
is missing/unmounted.  Fail gracefully instead of runtime restarting.

Bug: 21927076
Change-Id: I40645f8ccea05154e7cbacd188f6cba5f4dbbdc4
2015-07-05 14:34:13 -07:00
Makoto Onuki
9d6dcb7542 am c5614971: am 08dfa1b4: am cadf3969: Merge "Notification for non-adopotable disks shouldn\'t be snoozed" into mnc-dev
* commit 'c561497116bd336160a33839650d11cad14d7dc9':
  Notification for non-adopotable disks shouldn't be snoozed
2015-06-29 17:27:21 +00:00
Chris Wren
5d53df4aed make sysui comments gender neutral
Change-Id: Ie494815e0b651ff120eda439a8fc1ad3461ce66c
2015-06-26 11:26:03 -04:00
Makoto Onuki
b138cb2c0d Notification for non-adopotable disks shouldn't be snoozed
Note if an adoptable SD is mounted as an external disk, it'll still be
snoozeable.  I *think* it's reasonable, as long as the sd card is inside
the device.

Bug 21898269

Change-Id: I0aaa6c85f9db84e3f30d3b0b485a35a5abef84e8
2015-06-24 11:11:30 -07:00
Jeff Sharkey
df27d3bf30 Dismiss migration notification when wizard done.
Bug: 21830731
Change-Id: Ief1428cd1ee0885fbc026885e1907f7272810d0f
2015-06-16 14:35:50 -07:00
Jeff Sharkey
52fc3c0f73 Start using new storage strings.
We have language for "unsupported" devices, and we're letting the
user snooze missing private volumes.

Bug: 21666225
Change-Id: I0bc17e6b854946036f02df5b4953b4344fa85a1f
2015-06-14 20:58:57 -07:00
Xiaohui Chen
ffcfe3411f usb debugging: show alert to secondary user
Bug: 12785423
Change-Id: If7f60899cfdaca7bdad560bd59a78f5be74c24be
2015-06-03 09:32:19 -07:00
Jeff Sharkey
f5a6bd7538 Push initial disk state, handle empty media.
Stash volume count from last scan, and use it to push initial storage
notifications state when listener is first attached.

Also omit disks with invalid size, which usually means they're an
empty slot with no media.

Bug: 20503551
Change-Id: I75097035aebaad70ba32437179a863f6a0910aa5
2015-05-19 14:57:22 -07:00
Jeff Sharkey
a49d5fc767 Updated storage notification icons.
Bug: 19993667
Change-Id: Ibecb634ad7993dc8d1b244654396a6176a0891b9
2015-05-13 11:41:56 -07:00
Adam Powell
2ed547e55f Add alternate intents and refinement callbacks to ChooserActivity
Allow a calling app to supply an array of additional Intents to the
system ChooserActivity.

The chooser will present a merged list of targets that can handle any
of the Intents supplied, including both the standard EXTRA_INTENT as
well as any of the intents supplied in EXTRA_ALTERNATE_INTENTS. These are
treated as ordered; EXTRA_INTENT is considered the first/primary
Intent and EXTRA_ALTERNATE_INTENTS are sorted most important first.

Targets are queried for all supplied Intents. If the same component is
returned for more than one Intent, the target is associated with the
most important Intent that matched.

This allows calling apps to supply several different payloads for an
action depending on what the intended targets are able to support. For
example, an app performing ACTION_SEND may supply image/jpeg data to
compatible targets or a hosted web link to targets that only support
text/plain. The user will have the opportunity to pick from a single
merged list of choices using the best available payload, and will not
be bothered with the implementation details of how the payload will be
delivered to the recipient.

If the calling app wishes to provide further disambiguation or
refinement after the user makes a choice, for example to let the user
choose which of the source intents to send from the primary or
alternates, show a progress dialog as a full-resolution version of a
photo is downloaded from the server before being sent along or while
reticulating splines, the caller can supply an IntentSender to
ACTION_CHOOSER including the extra EXTRA_REFINEMENT_INTENT_SENDER.
This should be the IntentSender obtained from a PendingIntent pointing
at an activity to launch to perform the refinement.

The refinement activity should report that it is finished by obtaining
the ResultReceiver from EXTRA_RESULT_RECEIVER. Available intents to
send to the selected target will be contained in EXTRA_INTENT and
EXTRA_ALTERNATE_INTENTS.

To complete the refinement and send the result along to the chosen
target, the refinement activity should select one of the supplied
intents and send it to the ResultReceiver in a Bundle with the key
EXTRA_INTENT and the result code RESULT_OK. To cancel the refinement,
and let the user select another choice, send RESULT_CANCEL.

While refinement activities cannot modify the filterEquals-affecting
fields of the Intent they return, they may modify extras to provide
additional or altered details to the final recipient. These extras
will be filled into the Intent sent to the final target.

Change-Id: I7ad4739eadd1a0e307675847ccf47ea948918a3a
2015-05-06 13:23:36 -07:00
Jeff Sharkey
50a0545479 Returning to wizard, split move events.
Finish wiring up notifications to jump back into in-progress wizard
flow, using moveId as identifier.

Split move events back into separate creation and progress events,
and pass details as bundle to pass extra stuff like UUID.  Null
package still means moving primary storage.

Add explicit "volume forgotten" event for PackageManager to clean
up internal state with.

Plumb through internal path reported by vold, and bring back FUSE
bypass rewriting optimization.

Bug: 19993667
Change-Id: I0f43edbba36c58c5cd33550022c54c4eb9f01a48
2015-04-29 17:24:12 -07:00
Jeff Sharkey
b36586a7c9 Split some VolumeInfo state into VolumeRecord.
VolumeRecord is a historical record of a volume that we've seen in
the past.  It's now surfaced outside the framework for SystemUI to
drive the notifications that bug users to reinsert missing private
volumes.

Show progress notifications for both storage and package movement
operations.  Notify when an empty disk is inserted (no usable volumes)
which launches into the normal format flow.

Add API to forget volumes.

Bug: 20275424, 20275424
Change-Id: I75602c17fdcd4d1f1f62324e1a08c4a33093eefa
2015-04-28 22:02:36 -07:00
Jeff Sharkey
e6c04f9417 Broadcast hidden volumes, notification polish.
Send limited broadcast intent when certain volume state changes
occur; the only customer for now is ExternalStorageProvider.

Change notification flow to be less bumpy.  Pick USB icon based on
disk type, and avoid using "generic" disk labels.

Bug: 19993667
Change-Id: I263bc9e9aae2ae57eb4d1afe76da686aee5475fb
2015-04-18 23:11:00 -07:00
Jeff Sharkey
27de30d31c Wire up non-visible volumes, more states.
Adds logic to ExternalStorageProvider to scan non-visible volumes,
such as USB OTG devices.  We use internal paths when surfacing these
volumes, which also optimizes around the FUSE daemon for public
devices.  Also dumps internal state when requested.

VolumeInfo now directly contains DiskInfo, which means it's
snapshotted when sending events, avoiding teardown races.  Switch
notifications to use this DiskInfo directly.

Finish wiring up new volume state, including helper methods to make
it readable/writable state clearer.  Handle disks and volumes with
spaces in their labels.

Bug: 19993667
Change-Id: I5c75e5658a6415976811477aebafee7694bde0f4
2015-04-18 16:20:30 -07:00
Jeff Sharkey
7e92ef3a11 Volumes know parent disks; unsupported disks.
This is cleaner and more direct than the reverse of having the disk
publish child volume membership.  Rename state constants to match
public API.  Add state representing bad removal.  Make it clear that
volume flags are related to mounting.

Send new unsupported disk event when we finish scanning an entire
disk and have no meaningful volumes.

Splice disk labels into description when known.  Only adoptable
slots are directly visible to apps.

Bug: 19993667
Change-Id: I12fda95be0d82781f70c3d85c039749052dc936b
2015-04-17 17:35:11 -07:00
Jeff Sharkey
d95d3bfb2b Persist nickname and flags for volumes.
StorageManager now offers to persist a nickname and user flags for
active volumes.  This metadata is kept around and spliced into
any future VolumeInfo when the same UUID is present.  Current user
flags indicate "initialized" and "snoozed" states to control how
notifications are shown.

Notify listeners when metadata changes, and kick public notification
after a volume is initialized.  Make unique PendingIntents when
multiple volumes are active.

Beginnings of plumbing to ask for missing volumes.

Offer explicit accessors for VolumeInfo and DiskInfo to give better
path to documentation and deprecation.

Bug: 19993667
Change-Id: I3d8b68be83f43ba992d21d51cad5b775776d681c
2015-04-14 21:39:47 -07:00
Jeff Sharkey
56bd312913 Checkpoint of storage notifications.
Rewrite of storage notifications to support multiple disks/volumes,
handling the state of each independently.  Update strings to match
spec.  Include actions to jump into wizard when adoptable, otherwise
browse or eject.

Move browse intent creation to common place on VolumeInfo.  Also add
well-formed extra names.  VolumeInfo now carries the parent disk ID
along with it to avoid races when unmounting.

Bug: 19993667
Change-Id: I236ddc7f8112490355f438b828bec8d40c331fdd
2015-04-14 16:46:27 -07:00
Adam Powell
2442841819 Implement ChooserTargetService querying for ChooserActivity
First cut at querying services provided by apps that offer
ChooserTargetServices. This first implementation provides no ranking.

Bind to a limit of 5 ChooserTargetServices and offer the
ChooserTargets they provide as options in the system
ChooserActivity. The chooser now presents targets as a grid and
displays the activity icon from the referrer activity.

Change-Id: I45db829f184fc78d4f18d42b2a60b25bc301eba8
2015-04-13 16:51:16 -07:00
Alan Viverette
4a357cd2e5 Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
Selim Cinek
d3c833fc97 am 53006cab: am cc19946d: Added notification color to all system notifications
* commit '53006cab63fed5d176c5d97d4fc1807192ae9c4d':
  Added notification color to all system notifications
2014-08-20 13:52:14 +00:00
Selim Cinek
255dd04271 Added notification color to all system notifications
Bug: 17128331
Change-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb
2014-08-20 14:25:18 +02:00
Jeff Sharkey
51886f3125 am 840e9325: am 2013cb1f: Merge "Prevent system_server shutdown when trying to format external storage"
* commit '840e932584b4d03f39ba17da57b92b1d1878b21d':
  Prevent system_server shutdown when trying to format external storage
2014-08-12 22:21:09 +00:00
Alan Viverette
ed8e09b664 Remove dialog icons
BUG: 16493564
Change-Id: Ica59abb70a924cccd705172d323a535ef9b75cf1
2014-07-22 18:41:37 -07:00
Dan Sandler
59f0258a27 Categorize some system notifications.
Change-Id: Ia343bc276f50f488e2165056cff249a02f01d45a
2014-03-26 01:31:04 +00:00
John Eckerdal
a804d65f4a Prevent system_server shutdown when trying to format external storage
The SystemUI does not provied path information on which volume that should
be formatted. So when the user selects "Blank CD Card" an intent is sent to
ExternalMediaFormatActivity and forwarded to ExternalStorageFormatter then
actual volume that is unformatted is not included in the information sent
in the Intent.
This causes the ExternalStorageFormatter to go through Environment to find
a Volume but the actual volume found that way is not correct.

To solve the issue look up the correct StorageVolumeand reuse the existing
EXTRA_STORAGE_VOLUME extra and send it as part of the Intent.

Change-Id: Ib360a9ce071ebe95fc3ca847ed68b6db05928a42
2014-03-20 14:37:30 +01:00
Dan Sandler
bfe61f696d Make some notifications public (safe for secure lockscreens):
- USB connected
 - ADB enabled
 - Low storage
 - USB mass storage status
 - Tethering status

Change-Id: I8224d7bcc8141fc90ac5e28d4392c52724c524a7
2014-01-30 14:20:43 -05:00
John Spurlock
209bede6b9 Remove trailing whitespace from system ui.
Baseline existing .java files, no excuses going forward.

Change-Id: I4bd0f25bbda6f2ec832e34ef5c70d4830bf07f99
2013-07-17 12:23:27 -04:00
John Spurlock
3e309b2edc Decouple storage notification from status bar.
Hoist the usb storage notification listener to a top-level
system ui service, not dependent on a status bar implementation.

Change-Id: Ic9e7fba1e5bfd758d72226f6d796c2f04f6b17e6
2013-06-25 11:12:41 -04:00
John Spurlock
de84f0e77e Organize the imports in systemui.
To follow android conventions, more importantly to remove the
unused.

Change-Id: I75881718e84360a579a3b02c26489ad250bc9227
2013-06-12 14:50:47 -04:00
John Spurlock
cd686b5b6d Migrate systemui Slog calls to Log
Change-Id: Ib6734c85960f06fed646599565b8eeba26b9e98e
2013-06-06 16:40:56 -04:00
Benoit Goby
29a4b7277e Fix UsbDebuggingActivity not shown in adb tcpip mode
Bug: 8646772
Change-Id: If34c756bece903a0a452070bbc94ebc71d325bf6
2013-04-17 17:34:30 -07:00
Dianne Hackborn
40e9f2922c Quiet down a lot of logging.
Also fix a little problem where the USER_STARTED broadcasts
were not being sent as ordered broadcasts(!).

Change-Id: I3aa3e0a9b3900967cdd2d115ee103371b0a50c41
2012-11-27 19:12:23 -08:00
Jeff Sharkey
fc3f24b4b6 Make USB services multi-user aware.
USB settings are now isolated per-user, since they revolve around
installed packages.  User-specific settings are returned based on
calling user, or referenced by UserHandle passed to SystemUI.  Each
settings Context is wrapped as a specific user, so all broadcasts are
sent correctly.  Upgrades any existing USB settings to OWNER.

Physical events, like new devices, are routed to the currently active
user.  Switch to using AtomicFile when persisting settings.

Bug: 7244888
Change-Id: I8a723ad3d55ac1bff99276c5f3a3f5e8f013432f
2012-10-02 18:09:10 -07:00
Jeff Brown
bf6f6f9de7 Update references to migrated global settings.
Fixed one setting that was migrated but not marked deprecated.

Removed a hidden setting that is no longer used by the new
power manager service.

Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
2012-09-25 15:27:51 -07:00
Dianne Hackborn
50cdf7c306 Fix issue #7214090: Need to be able to post notifications to all users
Also fix a bunch of system services that should be doing this.  And
while doing that, found I needed to fix PendingIntent to evaluate
USER_CURRENT at the point of sending, not creation.

Note that this may end up with us having some notification shown to
non-primary users that lead to settings UI that should only be for
the primary user (such as the vpn notification).  I'm not sure what
to do about this, maybe we need a different UI to come up there or
something, but showing the actual notification for those users at
least seems less broken than not telling them at all.

Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
2012-09-24 10:55:46 -07:00
Benoit Goby
4e68bd420b Add UsbDebuggingManager and UsbDebuggingActivity
The UsbDebuggingManager listens to adbd requests and displays a dialog
when the public key authentification fails, for the user to confirm if it
wants to allow USB debugging from the attached host. If the user chooses
to always allow USB debugging, the UsbDebuggingManager writes the public
key to adbd's config file so that the public key authenfication succeeds
next time.

Change-Id: I115c828331d8e326c380844ee33915d5dff22260
2012-08-20 13:44:34 -07:00
Adam Powell
c992087d09 Fix bug 5614962 - Constant spinning wheel in USB Mass Storage screen (UX)
Disable the window-level progress spinner; another is already shown while
connecting.

Use the correct Settings icon for SystemUI.

Specify the activity title for the USB mass storage screen in the
manifest to avoid title flashing during startup.

Change-Id: Ic57af56bf1661a5eaa91fff77471dc8447340d16
2011-11-17 18:01:07 -08:00
Mike Lockwood
3ac588b09a Revert "USB connected notification and temporary USB options dialog"
This reverts commit 5787a2d5b4.

Change-Id: Ia5f097ffaa3798a42f71d005cffd5007556882d5
2011-07-02 22:07:25 -04:00
Mike Lockwood
f59717ddb5 Combine UsbManager.setPrimaryFunction and setDefaultFunction
Due to the property trigger on persist.sys.usb.config,
setting the default function also sets the current function.
Now we combine both of these methods into setCurrentFunction, which has
a "makeDefault" option to make the new function the default.

This change should eliminate some problems with setting properties due to
multiple property triggers happening at the same time.

Change-Id: I9851299e9c2ee20475eada1a8104c0d50bf5a9e1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-22 15:19:33 -04:00
Mike Lockwood
7730ad569d Fix window leak in UsbPreferenceActivity
Change-Id: I4160e73a4e840662c6ac724e27460853fb259eae
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-22 12:02:10 -04:00
Mike Lockwood
422bf6702f USB: Make MTP/PTP toggle in the USB preferences set the default mode
Change-Id: I438f7f24f06298ad41a99199c26c45bd7884afdd
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-20 21:54:55 -04:00
Mike Lockwood
5787a2d5b4 USB connected notification and temporary USB options dialog
This change adds a notification when USB is connected.
Selecting the notification brings up a dialog to allow switching between
MTP and PTP modes, and also allows mounting a CD image for installing AFT.
The UI design is not final - this is a temporary implementation of the UI.

Change-Id: Idd678537aba595fd4cb183ea755bf437f372d826
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-17 19:49:05 -04:00
Mike Lockwood
ad5f83e91b USB Manager string clean up:
- Use "Cancel" instead of "Ignore"
- Customize the text for the "always use" checkbox for devices and accessories
- Clean up strings for AccessoryChat test program

Bug: 4074719

Change-Id: Ideec838e4c1f1a82ef4ae411c9124417ffb63165
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-15 16:23:40 -04:00
Mike Lockwood
8f6dce44e3 Fix broadcast receiver leak in UsbConfirmActivity
Change-Id: Ie1db70d9a57f16f192178583871994467f50a636
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-14 20:17:13 -04:00
Mike Lockwood
bce6f8f249 Add a dialog to ask user to start an application for a USB device or accessory
This is used when there is only one application available and the user has
not chosen to start it by default.
If more than one application is available we continue to use UsbResolverActivity

Bug: 4074719

Change-Id: Id61f2ccc6de5b9ac70fb4670006ff1fee2028d55
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-13 19:18:08 -04:00
Mike Lockwood
024b4f1494 Support for USB accessory URIs
If a USB accessory is attached and we have no application that supports it,
display a dialog offering the user the option to visit the accessory's website
if the accessory has a URI.

Bug: 4073248

Change-Id: I30e2a802493fb6e203532a7f79402379c40bc3b8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-10 14:35:33 -05:00