Commit Graph

49 Commits

Author SHA1 Message Date
Aurimas Liutikas
fd52c1433c Migrated SystemUI & SettingsLib to androidx
Test: make SystemUI SettingsLib
Bug:76692459
Change-Id: I248fdf4042a0a97bc6349091da21c936c2d37c95
2018-04-20 12:48:23 -07:00
Brad Stenning
38b46f82f7 Add an option to display HVAC temp values in sysui
Bug: 77148007
Test: on device that has a real HVAC unit
Change-Id: I97b303dd947858157ede72c5d537ae6a1e40cc67
2018-03-28 15:49:56 -07:00
Lujiang Xue
e53f749995 add car volume dialog
Bug: 73134851

Test: manually tested

Change-Id: Ia95a8aa48789652d6af67a542f62353a7bf13607
(cherry picked from commit 4d2a3ef6e9)
2018-03-19 22:38:17 +00:00
Anton Hansson
d137c872cd frameworks/base: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Exempt-From-Owner-Approval: Global cleanup
Change-Id: I26458e41ecb84de91ac9a356a5d4bafb44f463c1
2018-03-07 11:42:04 +00:00
Narayan Kamath
fdbc611502 SystemUI: Remove obsolete dependency on android.car.
Car related functionality was removed in efa42d2cc5.

Test: make
Change-Id: Ieb54aa23a3d028705bf70a707406041fa2a6a0d4
2018-02-06 16:10:02 +00:00
Aurimas Liutikas
a43e216e3e Use the correct prebuilts for lifecycles.
This change should have no effect on the app. It is simply unifying some of the prebuilts.

Bug: 72566647
Change-Id: Ic748f8f425e8c8e44bacf62ea61b9af307774911
2018-01-26 23:20:09 +00:00
Kevin Chyn
aae4a15a22 Add FingerprintDialog API and related plumbing
This commit adds the plumbing which sends the signals from the API
to the component in SysUI. The dialog will be implemented in another
CL in this topic.

Bug: 67497360

Test: Modify Settings to use the new API
Test: FingerprintDialogImpl is able to notify FingerprintDialog clients
      of user events
Test: System dialog is dismissed when client application is killed
      unexpectedly
Test: Open FP settings, lock device, authenticate, authenticate. Repeat

Change-Id: Id28ec9691646bed765dc069cceb4678d9f6db92e
2018-01-23 14:54:48 -08:00
Lucas Dupin
6bd8601e9f New keyguard slice data structure
Using androidx package and new API, also splitting content into
multiple views for better animation support.

Bug: 64155983
Test: visual, see data from provider propagate to AoD
Change-Id: I74b5511d582e7ec1f6ffe5dbc5595f54b9ccb202
2018-01-02 14:19:24 -08:00
Winson Chung
6519c1b0fe Moving some recents logic into the shared lib.
- Creating com.android.system.shared library with recents model code and
  corresponding recents tests
- Removing notion of blacklisted apps since that is now obsolete.

Bug: 67510855
Test: It builds, Recents runs

Change-Id: Ib1f5eefa6e4d4964366061246002509e2e15b19e
2017-10-17 12:24:41 -07:00
Lucas Dupin
7224c1eca2 Moving color extraction classes
Fixes: 62220212
Test: make
Test: runtest -x tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java
Test: runtest -x tests/Internal/src/com/android/internal/colorextraction/types/TonalTest.java
Test: runtest systemui
Change-Id: I7c4cf5c40a88555e81fbad9bec2b32c55c927468
2017-07-07 11:26:45 -07:00
Selim Cinek
afc4f9313c Merge changes from topic 'background_inflation' into oc-dev am: 03fbdbe6ff
am: cc360f9b69

Change-Id: I456f81ff6300792e8639733d0115d878683d1694
2017-05-08 22:30:48 +00:00
Selim Cinek
0f66a4cc16 Moving Row inflation to the background too
Previously only the contentview inflation was on the
background, now the inflation of the row is too.

Test: runtest systemui
Bug: 34888292
Change-Id: I3adc6b3311217421c9de5c37794397b8a3fd665d
2017-05-02 16:30:52 -07:00
Lucas Dupin
8da8f2e9dd Color extraction on scrims
Consuming color extraction library to add wallpaper
colors to sysui scrims. Handles both lock screen and
notification shade.

Bug: 36856508
Bug: 37013527
Test: runtest --path frameworks/base/packages/SystemUI/tests/src/com/android/systemui/statusbar/ScrimViewTest.java
Change-Id: I8d964c978a766243d90bbfb3432d19eebf1a2056
2017-05-01 11:21:45 -07:00
Colin Cross
b666c16c15 Add missing transitive dependencies
Add android-support-v7-palette to SystemUI for
android-support-v7-mediarouter

Bug: 36902714
Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: I6aa18380fa338a01f73381ab0a3259ff94173ce1
(cherry picked from commit 2560663a1e)
2017-04-11 17:12:40 +00:00
Colin Cross
2560663a1e Add missing transitive dependencies
Add android-support-v7-palette to SystemUI for
android-support-v7-mediarouter

Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: I6aa18380fa338a01f73381ab0a3259ff94173ce1
2017-04-05 15:40:17 -07:00
Jason Monk
1cbf5fbd7a Switch cast over to support library dialog
Makes UI more consistent and removes the cast detail panel from QS.

Test: visual
Change-Id: I9a70b9695511c5f1e4235a838a071079506963a6
Fixes: 35407111
2017-03-30 15:23:43 -04:00
Colin Cross
2b6aa352e5 Remove framework-protos from SystemUI
SystemUI builds against the framework, it doesn't need to have its
own copy of framework-protos.

Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: Ia971b2bc648558283562c7080b4d683a7e45fb60
2017-03-23 18:08:41 -07:00
Jason Monk
23f85ec14d Move Keyguard to SystemUI
Test: make
Change-Id: I3abb67e2b022737d2aa0226bb07f3966ad68fff7
2017-02-10 07:45:58 -08:00
Jason Monk
4f70b9cfd4 Faster plugin updating from UI control
Send a broadcast back and forth to speed up the rate at which plugins
are enabled or disabled.

Also update make files to handle exclude tests better.

Test: Manual
Change-Id: Ic8f45c663c3a5e5fd4b3e9e2f79480e155845c14
2016-10-28 10:13:56 -04:00
Jorim Jaggi
d05651790a Add latency tracking for checking PIN (1/2)
Also move tags to Keyguard as we need it in Keyguard.

Change-Id: I718581cb4081830da1c3a2f4ad9b9f0ec6f09ae5
2016-10-07 16:18:00 +02:00
Jason Monk
fcdcf7f636 Merge "Plugins for sysui" 2016-09-19 16:54:12 +00:00
Jorim Jaggi
56a1bba4f5 Fix incremental builds
To cut build times in half if INCREMENTAL_BUILDS=true is enabled.

Bug: 27711635
Change-Id: I45a918b3bbb6c9e60f6ff93c7f00915f0e0d865f
2016-09-15 12:29:32 -07:00
Jason Monk
86bc331889 Plugins for sysui
Why this is safe:
 - To never ever be used in production code, simply for rapid
   prototyping (multiple checks in place)
 - Guarded by signature level permission checks, so only matching
   signed code will be used
 - Any crashing plugins are auto-disabled and sysui is allowed
   to continue in peace

Now on to what it actually does.  Plugins are separate APKs that
are expected to implement interfaces provided by SystemUI.  Their
code is dynamically loaded into the SysUI process which can allow
for multiple prototypes to be created and run on a single android
build.

-------

PluginLifecycle:

plugin.onCreate(Context sysuiContext, Context pluginContext);
 --- This is always called before any other calls

pluginListener.onPluginConnected(Plugin p);
 --- This lets the plugin hook know that a plugin is now connected.

** Any other calls back and forth between sysui/plugin **

pluginListener.onPluginDisconnected(Plugin p);
 --- Lets the plugin hook know that it should stop interacting with
     this plugin and drop all references to it.

plugin.onDestroy();
 --- Finally the plugin can perform any cleanup to ensure that its not
     leaking into the SysUI process.

Any time a plugin APK is updated the plugin is destroyed and recreated
to load the new code/resources.

-------

Creating plugin hooks:

To create a plugin hook, first create an interface in
frameworks/base/packages/SystemUI/plugin that extends Plugin.
Include in it any hooks you want to be able to call into from
sysui and create callback interfaces for anything you need to
pass through into the plugin.

Then to attach to any plugins simply add a plugin listener and
onPluginConnected will get called whenever new plugins are installed,
updated, or enabled.  Like this example from SystemUIApplication:

PluginManager.getInstance(this).addPluginListener(OverlayPlugin.COMPONENT,
        new PluginListener<OverlayPlugin>() {
    @Override
    public void onPluginConnected(OverlayPlugin plugin) {
        PhoneStatusBar phoneStatusBar = getComponent(PhoneStatusBar.class);
        if (phoneStatusBar != null) {
            plugin.setup(phoneStatusBar.getStatusBarWindow(),
                    phoneStatusBar.getNavigationBarView());
        }
    }
}, OverlayPlugin.VERSION, true /* Allow multiple plugins */);

Note the VERSION included here.  Any time incompatible changes in the
interface are made, this version should be changed to ensure old plugins
aren't accidentally loaded.  Since the plugin library is provided by
SystemUI, default implementations can be added for new methods to avoid
version changes when possible.

-------

Implementing a Plugin:

See the ExamplePlugin for an example Android.mk on how to compile
a plugin.  Note that SystemUILib is not static for plugins, its classes
are provided by SystemUI.

Plugin security is based around a signature permission, so plugins must
hold the following permission in their manifest.

<uses-permission android:name="com.android.systemui.permission.PLUGIN" />

A plugin is found through a querying for services, so to let SysUI know
about it, create a service with a name that points at your implementation
of the plugin interface with the action accompanying it:

<service android:name=".TestOverlayPlugin">
    <intent-filter>
        <action android:name="com.android.systemui.action.PLUGIN_COMPONENT" />
    </intent-filter>
</service>

Change-Id: I42c573a94907ca7a2eaacbb0a44614d49b8fc26f
2016-09-02 11:33:22 -04:00
Adam Lesinski
38e89667e3 Build SystemUI and Keyguard with AAPT2
Bug:29462255
Change-Id: I0bd6da7da21927d185ff230c81aac390cfa8029d
2016-07-07 12:23:02 -07:00
Adam Lesinski
8138058a46 Revert "Build SystemUI and Keyguard with AAPT2"
Looks like SystemUI's manifest may be corrupt.

This reverts commit 91f576081f.

Bug:29939875
Change-Id: I06e5f3cbc4629a67d254a8fcfcb9749b317aef5f
2016-07-01 19:46:55 +00:00
Adam Lesinski
91f576081f Build SystemUI and Keyguard with AAPT2
Bug:29462255
Change-Id: I9a886b4d17a7dbc4cfd7b4f8d398138f00df04a7
2016-06-29 21:38:34 -07:00
Yao Chen
634acb9712 Add CarVolumeDialogController in SystemUI for Android Auto.
Cars usually have an external audio module. When Android is serving as
the car's headunit, users should be able to adjust the car's volume
through SystemUI. The following changes are made to make it work:

+ Load VolumeDialogController from SystemUIFactory
+ Added CarSystemUIFactory
+ Added CarVolumeDialogController which extends VolumeDialogController
  and it uses CarAudioManager as source of truth for volume controls.
+ Some refactor in VolumeDialogController to make it easier for
subclasses to override volume controls.

Note that CarAudioManager does not completely replace AudioManager.
Majority of code in VolumeDialogController still applies in the car use
case, so I made CarVolumeDialogController a subclass of
VolumeDialogController instead of making them peers.

Bug: 27595951

Change-Id: Id4adec7281e41aa71f3de034e5b88a32a89be305
2016-04-19 14:50:10 -07:00
Adrian Roos
4cc2a58ed2 Fix duplicate eventlogtags warnings
Moves the protos and event log tags into a library,
so the build system doesn't think they're duplicates.

Bug: 27151225
Change-Id: Ic96b6b811d4813a4c48940081ea77b12fb23f0bc
2016-02-25 09:28:13 -08:00
Sid Soundararajan
b58c46acec Initial Commit of a Horizontal Grid View based recents UI for TV.
Change-Id: I048210e6fc91abafa41300ccb219b7bb9c84e835
2016-01-28 11:13:23 -08:00
Chris Wren
77781d3aaa a step toward enforcing unique metrics log IDs
First of several change lists:
1. Add in the new proto (this CL)
2. Migrate the existing code over to the proto.
3. Remove MetricsConstants once it is unused.

Bug: 26442178
Change-Id: Ic24829246af8ec5b202e39a85960aac5cf336c33
2016-01-25 11:24:08 -05:00
Jason Monk
87ccd55e8a Switch Tuner to support prefs (and some improvements)
Change-Id: I2ef62c0c56d4af69f9f34e1cfd297999d59b7da6
2015-12-16 19:41:25 +00:00
Ying Wang
471c1adf08 Add android.support.v7.recyclerview resources.
This fixes build error of unresolved symbols if you build with Jack
disabled.

Change-Id: I0a9e1288015cc8894b7cdda3130aa8df628092e9
2015-12-04 18:45:57 -08:00
Winson
c29ff0025b Adding history view.
- Initial changes to show a history view within Overview (behind tuner
  flag)
- Restoring the task view dim in the stack

Change-Id: I0503d11768736c86f3145942404391dfacd0ddd6
2015-11-25 11:42:19 -08:00
Winson
190fe3bf88 Refactoring secondary user recents logic.
- Removing old broadcasts in favor of direct aidl interface between
  system and secondary users.  Also moving user specific implementation
  into RecentsImpl, allowing Recents to handle proxying between users.

Change-Id: I4bd5ef1d1ee47309b7c754f50a5e8b2e2aab988f
2015-10-22 12:26:21 -07:00
Blazej Magnowski
7232332dc9 System to track touch and sensor events before unlocking the phone
Added a new component which tracks touch and sensor events and
also events like showing the bouncer tapping a notification and
others. The collection is enabled when the screen is turned on and
is disabled after the phone is unlocked. The data is saved in a
protobuf file in internal storage in a directory called
"good_touches". There is also an option to collect events which
end with the screen turning off. These are saved in the
"bad_touches" file. Everything is hidden behind the
ENABLE_ANALYTICS flag which is set by default to false and can be
turned on only if Build.IS_DEBUGGABLE is true. Also
behind the ENFORCE_BOUNCER flag the class shows the bouncer before
expanding a notification, showing quick settings or launching an
affordance from one of the bottom corners.

Change-Id: Iaeae0fb7a0d9c707daf7a270201fa5b1cd84c74a
2015-08-20 16:05:14 -07:00
Jorim Jaggi
3557e0ebee Enable incremental SysUI builds on -eng targets
Ideally, we would also do incremental builds on userdebug targets,
but this introduces a risk that userdebug builds would be different
to user builds. So we only do it on eng builds for now.

Change-Id: I2778d270052cf26e6c767f1847991a425d8bbd12
2015-04-10 14:41:17 -07:00
Jason Monk
2ba4ce6a06 Create SettingsLib
This will hold common code that SystemUI and Settings (and others)
will share.

Bug: 19180466
Change-Id: I6614b31d6c3b0a2d426a2aa8ce66725245339d22
2015-02-02 11:33:17 -05:00
Jorim Jaggi
fb0d644b2b Add option to exclude SystemUI tests
Setting the environment variable EXCLUDE_SYSTEMUI_TESTS to something
excludes the tests package during building. Saves a few seconds for
incremental changes in SystemUI for fast UI iteration changes.

Change-Id: I596a0273133c8a8bece0cc364e2ec61fdea45116
2015-01-20 16:41:01 +01:00
Jorim Jaggi
380ecb81db Make Keyguard a library and make StatusBar the new Keyguard.
This change achieves a couple of things:
- Let Keyguard be a library, so we can use it in SystemUI.
- Introduce FLAG_KEYGUARD for windows and deprecate TYPE_KEYGUARD. Make
all the TYPE_KEYGUARD behaviour dependant on the flag.
- Implement a new KeyguardService in SystemUI, and bind that service
from PhoneWindowManager.
- Introduce BaseStatusBar.setKeyguardState and inflate
KeyguardSimpleHostView there and use FLAG_KEYGUARD for the window, such
that the status bar window essentially gets the Keyguard.

Bug: 13635952
Change-Id: I059d80d8b9b9818a778ab685f4672ea2694def63
2014-03-28 22:35:03 +01:00
John Spurlock
f7abb08794 Remove unused services module dependency from sysui.
Change-Id: I9ac1040bece7755478d57c44f48b1e31bff6bf57
2013-06-25 15:09:36 -04:00
Christopher Tate
ccbf84f44c Some system apps are more system than others
"signatureOrSystem" permissions are no longer available to all apps
residing en the /system partition.  Instead, there is a new /system/priv-app
directory, and only apps whose APKs are in that directory are allowed
to use signatureOrSystem permissions without sharing the platform cert.
This will reduce the surface area for possible exploits of system-
bundled applications to try to gain access to permission-guarded
operations.

The ApplicationInfo.FLAG_SYSTEM flag continues to mean what it is
says in the documentation: it indicates that the application apk was
bundled on the /system partition.  A new hidden flag FLAG_PRIVILEGED
has been introduced that reflects the actual right to access these
permissions.

At some point the "system" permission category will be
renamed to "privileged".

Bug 8765951

Change-Id: I6f0fd9cdb9170e076dfc66d83ecea76f8dd7335d
2013-06-17 12:47:35 -07:00
Dianne Hackborn
e8587722b6 Apparently SystemUI no longer needs the carousel.
Change-Id: Ib886b83fb096a8ef35b167e2727360353c020ec1
2013-03-27 17:43:57 -07:00
Chris Wren
64161ccb2f add logging to debug panel touches.
Turn on gesture recorder.
Add events to the Event Log.

Bug:7686690
Change-Id: I53b7d43f5bdc002360e305182597765f3c430b11
2013-01-07 14:25:58 -05:00
Wink Saville
a639b311e9 Create telephony-common and mms-common
These have been created to reduce the size and complexity
of frameworks/base.

mms-common was created by moving all of
  frameworks/base/core/java/com/google/android/mms
to:
   frameworks/opt/mms

telephony-common was created by moving some of
   frameworks/base/telephony
to:
   frameworks/opt/telephony

Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
2012-07-11 16:02:08 -07:00
Brett Chabot
caf30a18b5 Add functional test for screenshots.
Change-Id: Ice2cbc656f9814da7d0634644a250c1af9243ad1
2011-07-28 19:52:49 -07:00
Ying Wang
55ca691006 Fix proguard flag file dependency.
Change-Id: Icd30226cfaa943648f8724b4208a22c661070262
2010-09-30 13:20:45 -07:00
Jim Miller
783cb60ddb Update RecentApplications to use shared Carousel widget.
Change-Id: I5ca7389aeca9ee6f03f48317f9d1034f9fb8c1ca
2010-09-03 17:44:57 -07:00
Daniel Sandler
1ab5cae8df Actually reference the fixed Proguard flags.
Bug: 2869888
Change-Id: I3277b51cd411c7933607c08b6022870ef83e9197
2010-08-02 14:53:16 -04:00
Joe Onorato
79de0c5500 Move the StatusBarPhone package into a new catch-all SystemUI.apk. 2010-06-02 14:48:45 -07:00