This CL adds the following controllers for dealing with Controls in SystemUI: * ControlsController - Handles favorites and communication with other controllers * ControlsBindingController - Handles binding to the different services and comunication with them. * ControlsProviderLifecycleManager - Handles binding with one service and forwards API calls to it. * ControlsListingController - Handles finding and listing apps that satisfy the service requirement Additionally, this CL adds first versions of the management screen to add or remove favorites. These are persisted. To enable: * adb shell settings put secure systemui.controls_available 1 * restart To launch management activity: * Enable controls * adb shell am start com.android.systemui/.controls.management.ControlsProviderSelectorActivity Missing from this CL: * Multi user support * Documentation in the controller classes * Graceful rebinding * Throttling of Binder calls * Better dumps Test: atest com.android.systemui.controls Test: manual testing of favorite management activities Bug: 147732882 Change-Id: Ib4932b7f8fd3f2e3ee0ef1c28ddda1bec66c41e4
70 lines
2.5 KiB
XML
70 lines
2.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright (C) 2019 The Android Open Source Project
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
<LinearLayout
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="?android:attr/selectableItemBackground"
|
|
android:gravity="center_vertical"
|
|
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
|
|
|
<LinearLayout
|
|
android:id="@+id/icon_frame"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:gravity="start|center_vertical"
|
|
android:minWidth="56dp"
|
|
android:orientation="horizontal"
|
|
android:paddingEnd="8dp"
|
|
android:paddingTop="4dp"
|
|
android:paddingBottom="4dp">
|
|
<ImageView
|
|
android:id="@android:id/icon"
|
|
android:layout_width="@dimen/app_icon_size"
|
|
android:layout_height="@dimen/app_icon_size"/>
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:orientation="vertical"
|
|
android:paddingTop="16dp"
|
|
android:paddingBottom="16dp">
|
|
|
|
<TextView
|
|
android:id="@android:id/title"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:ellipsize="marquee"
|
|
android:fadingEdge="horizontal"
|
|
android:singleLine="true"
|
|
android:textAppearance="?android:attr/textAppearanceListItem"/>
|
|
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@android:id/widget_frame"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="match_parent"
|
|
android:gravity="center_vertical|end"
|
|
android:minWidth="64dp"
|
|
android:orientation="vertical"/>
|
|
|
|
</LinearLayout> |