Update layout for App info page.
- Move the app link buttons to the right - Move the footer buttons to the top below the header - Rename the app header details title, summary, and icon views. Bug: 34977561 Test: make RunSettingsRoboTests Change-Id: Id0cfc2b73b4e5cbbc1a58e497da52560892b69c8
This commit is contained in:
@@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2016 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:insetLeft="4dp"
|
|
||||||
android:insetTop="6dp"
|
|
||||||
android:insetRight="4dp"
|
|
||||||
android:insetBottom="6dp">
|
|
||||||
<ripple android:color="?android:attr/colorControlHighlight">
|
|
||||||
<item android:id="@android:id/mask">
|
|
||||||
<shape android:shape="rectangle">
|
|
||||||
<corners android:radius="2dp"/>
|
|
||||||
<solid android:color="@android:color/white"/>
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<shape android:shape="rectangle">
|
|
||||||
<solid android:color="#00ffffff"/>
|
|
||||||
<!--make button border solid color, nontransparent-->
|
|
||||||
<stroke android:color="?android:attr/colorAccent" android:width="1dp"/>
|
|
||||||
<corners android:radius="2dp"/>
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
</ripple>
|
|
||||||
</inset>
|
|
@@ -29,15 +29,13 @@
|
|||||||
android:paddingBottom="24dp" >
|
android:paddingBottom="24dp" >
|
||||||
|
|
||||||
<!-- App snippet with buttons -->
|
<!-- App snippet with buttons -->
|
||||||
<LinearLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp">
|
||||||
android:paddingEnd="8dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@android:id/icon"
|
android:id="@+id/app_detail_icon"
|
||||||
android:layout_width="80dp"
|
android:layout_width="80dp"
|
||||||
android:layout_height="80dp"
|
android:layout_height="80dp"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
@@ -47,12 +45,13 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toEndOf="@id/app_detail_icon"
|
||||||
android:paddingStart="24dp"
|
android:paddingStart="24dp"
|
||||||
android:paddingEnd="24dp"
|
android:paddingEnd="24dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@android:id/title"
|
android:id="@+id/app_detail_title"
|
||||||
style="@style/TextAppearance.EntityHeaderTitle"
|
style="@style/TextAppearance.EntityHeaderTitle"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -62,7 +61,7 @@
|
|||||||
android:paddingTop="8dp"/>
|
android:paddingTop="8dp"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@android:id/summary"
|
android:id="@+id/app_detail_summary"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
@@ -73,8 +72,34 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/app_detail_links"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/right_button"
|
||||||
|
style="@android:style/Widget.Material.Button.Borderless"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:src="@drawable/ic_settings_24dp"
|
||||||
|
android:tint="?android:attr/colorAccent"/>
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/left_button"
|
||||||
|
style="@android:style/Widget.Material.Button.Borderless"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:tint="?android:attr/colorAccent"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/instant_app_developer_title"
|
android:id="@+id/instant_app_developer_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -109,37 +134,4 @@
|
|||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/app_detail_links"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="bottom"
|
|
||||||
android:paddingStart="8dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/left_button"
|
|
||||||
style="@style/AppHeaderLinkButton"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
android:tint="?android:attr/colorAccent"/>
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/right_button"
|
|
||||||
style="@style/AppHeaderLinkButton"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:paddingStart="8dp"
|
|
||||||
android:src="@drawable/ic_settings_24dp"
|
|
||||||
android:tint="?android:attr/colorAccent"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@@ -428,9 +428,5 @@
|
|||||||
<item name="android:textSize">24sp</item>
|
<item name="android:textSize">24sp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppHeaderLinkButton" parent="android:Widget.Material.Button.Borderless">
|
|
||||||
<item name="android:background">@drawable/button_bg_transparent</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="AppActionPrimaryButton" parent="android:Widget.Material.Button.Colored"/>
|
<style name="AppActionPrimaryButton" parent="android:Widget.Material.Button.Colored"/>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -20,7 +20,8 @@
|
|||||||
<com.android.settings.applications.LayoutPreference
|
<com.android.settings.applications.LayoutPreference
|
||||||
android:key="header_view"
|
android:key="header_view"
|
||||||
android:layout="@layout/app_details"
|
android:layout="@layout/app_details"
|
||||||
android:selectable="false"/>
|
android:selectable="false"
|
||||||
|
android:order="-10000"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="notification_settings"
|
android:key="notification_settings"
|
||||||
|
@@ -163,17 +163,17 @@ public class AppHeaderController {
|
|||||||
final Resources res = mAppHeader.getResources();
|
final Resources res = mAppHeader.getResources();
|
||||||
|
|
||||||
// Set Icon
|
// Set Icon
|
||||||
final ImageView iconView = (ImageView) mAppHeader.findViewById(android.R.id.icon);
|
final ImageView iconView = (ImageView) mAppHeader.findViewById(R.id.app_detail_icon);
|
||||||
if (appEntry.icon != null) {
|
if (appEntry.icon != null) {
|
||||||
iconView.setImageDrawable(appEntry.icon.getConstantState().newDrawable(res));
|
iconView.setImageDrawable(appEntry.icon.getConstantState().newDrawable(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set application name.
|
// Set application name.
|
||||||
final TextView labelView = (TextView) mAppHeader.findViewById(android.R.id.title);
|
final TextView labelView = (TextView) mAppHeader.findViewById(R.id.app_detail_title);
|
||||||
labelView.setText(appEntry.label);
|
labelView.setText(appEntry.label);
|
||||||
|
|
||||||
// Version number of application
|
// Version number of application
|
||||||
final TextView appVersion = (TextView) mAppHeader.findViewById(android.R.id.summary);
|
final TextView appVersion = (TextView) mAppHeader.findViewById(R.id.app_detail_summary);
|
||||||
|
|
||||||
if (!TextUtils.isEmpty(versionName)) {
|
if (!TextUtils.isEmpty(versionName)) {
|
||||||
appVersion.setSelected(true);
|
appVersion.setSelected(true);
|
||||||
@@ -206,12 +206,12 @@ public class AppHeaderController {
|
|||||||
* Done mutating appheader, rebinds everything (optionally skip rebinding buttons).
|
* Done mutating appheader, rebinds everything (optionally skip rebinding buttons).
|
||||||
*/
|
*/
|
||||||
public View done(boolean rebindActions) {
|
public View done(boolean rebindActions) {
|
||||||
ImageView iconView = (ImageView) mAppHeader.findViewById(android.R.id.icon);
|
ImageView iconView = (ImageView) mAppHeader.findViewById(R.id.app_detail_icon);
|
||||||
if (iconView != null) {
|
if (iconView != null) {
|
||||||
iconView.setImageDrawable(mIcon);
|
iconView.setImageDrawable(mIcon);
|
||||||
}
|
}
|
||||||
setText(android.R.id.title, mLabel);
|
setText(R.id.app_detail_title, mLabel);
|
||||||
setText(android.R.id.summary, mSummary);
|
setText(R.id.app_detail_summary, mSummary);
|
||||||
if (rebindActions) {
|
if (rebindActions) {
|
||||||
bindAppHeaderButtons();
|
bindAppHeaderButtons();
|
||||||
}
|
}
|
||||||
|
@@ -327,7 +327,7 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
addDynamicPrefs();
|
addDynamicPrefs();
|
||||||
if (mDashboardFeatureProvider.isEnabled()) {
|
if (mDashboardFeatureProvider.isEnabled()) {
|
||||||
mFooter = new LayoutPreference(getPrefContext(), R.layout.app_action_buttons);
|
mFooter = new LayoutPreference(getPrefContext(), R.layout.app_action_buttons);
|
||||||
mFooter.setOrder(10000);
|
mFooter.setOrder(-9999);
|
||||||
mFooter.setKey(KEY_FOOTER);
|
mFooter.setKey(KEY_FOOTER);
|
||||||
getPreferenceScreen().addPreference(mFooter);
|
getPreferenceScreen().addPreference(mFooter);
|
||||||
}
|
}
|
||||||
@@ -1098,10 +1098,10 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
LayoutInflater.from(appSnippet.getContext()).inflate(R.layout.widget_text_views,
|
LayoutInflater.from(appSnippet.getContext()).inflate(R.layout.widget_text_views,
|
||||||
(ViewGroup) appSnippet.findViewById(android.R.id.widget_frame));
|
(ViewGroup) appSnippet.findViewById(android.R.id.widget_frame));
|
||||||
|
|
||||||
ImageView iconView = (ImageView) appSnippet.findViewById(android.R.id.icon);
|
ImageView iconView = (ImageView) appSnippet.findViewById(R.id.app_detail_icon);
|
||||||
iconView.setImageDrawable(icon);
|
iconView.setImageDrawable(icon);
|
||||||
// Set application name.
|
// Set application name.
|
||||||
TextView labelView = (TextView) appSnippet.findViewById(android.R.id.title);
|
TextView labelView = (TextView) appSnippet.findViewById(R.id.app_detail_title);
|
||||||
labelView.setText(label);
|
labelView.setText(label);
|
||||||
// Version number of application
|
// Version number of application
|
||||||
TextView appVersion = (TextView) appSnippet.findViewById(R.id.widget_text1);
|
TextView appVersion = (TextView) appSnippet.findViewById(R.id.widget_text1);
|
||||||
|
@@ -115,8 +115,8 @@ public class AppHeaderControllerTest {
|
|||||||
public void bindViews_shouldBindAllData() {
|
public void bindViews_shouldBindAllData() {
|
||||||
final String testString = "test";
|
final String testString = "test";
|
||||||
final View appHeader = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
|
final View appHeader = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
|
||||||
final TextView label = (TextView) appHeader.findViewById(android.R.id.title);
|
final TextView label = (TextView) appHeader.findViewById(R.id.app_detail_title);
|
||||||
final TextView version = (TextView) appHeader.findViewById(android.R.id.summary);
|
final TextView version = (TextView) appHeader.findViewById(R.id.app_detail_summary);
|
||||||
|
|
||||||
mController = new AppHeaderController(mShadowContext, mFragment, appHeader);
|
mController = new AppHeaderController(mShadowContext, mFragment, appHeader);
|
||||||
mController.setLabel(testString);
|
mController.setLabel(testString);
|
||||||
|
Reference in New Issue
Block a user