Merge "Reduce paddings in landscape mode" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7fd5c1ee83
@@ -340,6 +340,30 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
|||||||
protected abstract void showNoWorkToPersonalIntentsEmptyState(
|
protected abstract void showNoWorkToPersonalIntentsEmptyState(
|
||||||
ResolverListAdapter activeListAdapter);
|
ResolverListAdapter activeListAdapter);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates padding and visibilities as a result of an orientation change.
|
||||||
|
* <p>They are not updated automatically, because the view is cached when created.
|
||||||
|
* <p>When overridden, make sure to always call the super method.
|
||||||
|
*/
|
||||||
|
void updateAfterConfigChange() {
|
||||||
|
for (int i = 0; i < getItemCount(); i++) {
|
||||||
|
ViewGroup emptyStateView = getItem(i).getEmptyStateView();
|
||||||
|
ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
|
||||||
|
updateIconVisibility(icon, emptyStateView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateIconVisibility(ImageView icon, ViewGroup emptyStateView) {
|
||||||
|
if (isSpinnerShowing(emptyStateView)) {
|
||||||
|
icon.setVisibility(View.INVISIBLE);
|
||||||
|
} else if (mWorkProfileUserHandle != null
|
||||||
|
&& !getContext().getResources().getBoolean(R.bool.resolver_landscape_phone)) {
|
||||||
|
icon.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
icon.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The empty state screens are shown according to their priority:
|
* The empty state screens are shown according to their priority:
|
||||||
* <ol>
|
* <ol>
|
||||||
@@ -441,7 +465,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
|||||||
ProfileDescriptor descriptor = getItem(
|
ProfileDescriptor descriptor = getItem(
|
||||||
userHandleToPageIndex(activeListAdapter.getUserHandle()));
|
userHandleToPageIndex(activeListAdapter.getUserHandle()));
|
||||||
descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
|
descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
|
||||||
View emptyStateView = descriptor.getEmptyStateView();
|
ViewGroup emptyStateView = descriptor.getEmptyStateView();
|
||||||
resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
|
resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
|
||||||
emptyStateView.setVisibility(View.VISIBLE);
|
emptyStateView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
@@ -464,12 +488,8 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
|||||||
button.setOnClickListener(buttonOnClick);
|
button.setOnClickListener(buttonOnClick);
|
||||||
|
|
||||||
ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
|
ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
|
||||||
if (!getContext().getResources().getBoolean(R.bool.resolver_landscape_phone)) {
|
icon.setImageResource(iconRes);
|
||||||
icon.setVisibility(View.VISIBLE);
|
updateIconVisibility(icon, emptyStateView);
|
||||||
icon.setImageResource(iconRes);
|
|
||||||
} else {
|
|
||||||
icon.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
activeListAdapter.markTabLoaded();
|
activeListAdapter.markTabLoaded();
|
||||||
}
|
}
|
||||||
@@ -491,6 +511,11 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
|||||||
activeListAdapter.markTabLoaded();
|
activeListAdapter.markTabLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isSpinnerShowing(View emptyStateView) {
|
||||||
|
return emptyStateView.findViewById(R.id.resolver_empty_state_progress).getVisibility()
|
||||||
|
== View.VISIBLE;
|
||||||
|
}
|
||||||
|
|
||||||
private void showSpinner(View emptyStateView) {
|
private void showSpinner(View emptyStateView) {
|
||||||
emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.INVISIBLE);
|
emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.INVISIBLE);
|
||||||
emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.INVISIBLE);
|
emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.INVISIBLE);
|
||||||
|
|||||||
@@ -642,6 +642,9 @@ public class ResolverActivity extends Activity implements
|
|||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
mMultiProfilePagerAdapter.getActiveListAdapter().handlePackagesChanged();
|
mMultiProfilePagerAdapter.getActiveListAdapter().handlePackagesChanged();
|
||||||
|
if (isIntentPicker() && shouldShowTabs() && !useLayoutWithDefault()) {
|
||||||
|
updateIntentPickerPaddings();
|
||||||
|
}
|
||||||
|
|
||||||
if (mSystemWindowInsets != null) {
|
if (mSystemWindowInsets != null) {
|
||||||
mResolverDrawerLayout.setPadding(mSystemWindowInsets.left, mSystemWindowInsets.top,
|
mResolverDrawerLayout.setPadding(mSystemWindowInsets.left, mSystemWindowInsets.top,
|
||||||
@@ -649,6 +652,22 @@ public class ResolverActivity extends Activity implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateIntentPickerPaddings() {
|
||||||
|
View titleCont = findViewById(R.id.title_container);
|
||||||
|
titleCont.setPadding(
|
||||||
|
titleCont.getPaddingLeft(),
|
||||||
|
titleCont.getPaddingTop(),
|
||||||
|
titleCont.getPaddingRight(),
|
||||||
|
getResources().getDimensionPixelSize(R.dimen.resolver_title_padding_bottom));
|
||||||
|
View buttonBar = findViewById(R.id.button_bar);
|
||||||
|
buttonBar.setPadding(
|
||||||
|
buttonBar.getPaddingLeft(),
|
||||||
|
getResources().getDimensionPixelSize(R.dimen.resolver_button_bar_spacing),
|
||||||
|
buttonBar.getPaddingRight(),
|
||||||
|
getResources().getDimensionPixelSize(R.dimen.resolver_button_bar_spacing));
|
||||||
|
mMultiProfilePagerAdapter.updateAfterConfigChange();
|
||||||
|
}
|
||||||
|
|
||||||
@Override // ResolverListCommunicator
|
@Override // ResolverListCommunicator
|
||||||
public void sendVoiceChoicesIfNeeded() {
|
public void sendVoiceChoicesIfNeeded() {
|
||||||
if (!isVoiceInteraction()) {
|
if (!isVoiceInteraction()) {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.android.internal.app;
|
|||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -65,6 +66,24 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
|||||||
mShouldShowNoCrossProfileIntentsEmptyState = shouldShowNoCrossProfileIntentsEmptyState;
|
mShouldShowNoCrossProfileIntentsEmptyState = shouldShowNoCrossProfileIntentsEmptyState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void updateAfterConfigChange() {
|
||||||
|
super.updateAfterConfigChange();
|
||||||
|
for (ResolverProfileDescriptor descriptor : mItems) {
|
||||||
|
View emptyStateCont =
|
||||||
|
descriptor.rootView.findViewById(R.id.resolver_empty_state_container);
|
||||||
|
Resources resources = getContext().getResources();
|
||||||
|
emptyStateCont.setPadding(
|
||||||
|
emptyStateCont.getPaddingLeft(),
|
||||||
|
resources.getDimensionPixelSize(
|
||||||
|
R.dimen.resolver_empty_state_container_padding_top),
|
||||||
|
emptyStateCont.getPaddingRight(),
|
||||||
|
resources.getDimensionPixelSize(
|
||||||
|
R.dimen.resolver_empty_state_container_padding_bottom));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ResolverProfileDescriptor createProfileDescriptor(
|
private ResolverProfileDescriptor createProfileDescriptor(
|
||||||
ResolverListAdapter adapter) {
|
ResolverListAdapter adapter) {
|
||||||
final LayoutInflater inflater = LayoutInflater.from(getContext());
|
final LayoutInflater inflater = LayoutInflater.from(getContext());
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
android:id="@+id/resolver_empty_state_container"
|
android:id="@+id/resolver_empty_state_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="48dp"
|
android:paddingTop="@dimen/resolver_empty_state_container_padding_top"
|
||||||
android:paddingBottom="48dp"
|
android:paddingBottom="@dimen/resolver_empty_state_container_padding_bottom"
|
||||||
android:gravity="center_horizontal">
|
android:gravity="center_horizontal">
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/resolver_empty_state_icon"
|
android:id="@+id/resolver_empty_state_icon"
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
android:id="@id/contentPanel">
|
android:id="@id/contentPanel">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
android:id="@+id/title_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alwaysShow="true"
|
android:layout_alwaysShow="true"
|
||||||
@@ -33,7 +34,7 @@
|
|||||||
android:paddingTop="@dimen/resolver_small_margin"
|
android:paddingTop="@dimen/resolver_small_margin"
|
||||||
android:paddingStart="@dimen/resolver_edge_margin"
|
android:paddingStart="@dimen/resolver_edge_margin"
|
||||||
android:paddingEnd="@dimen/resolver_edge_margin"
|
android:paddingEnd="@dimen/resolver_edge_margin"
|
||||||
android:paddingBottom="@dimen/resolver_edge_margin"
|
android:paddingBottom="@dimen/resolver_title_padding_bottom"
|
||||||
android:background="@drawable/bottomsheet_background">
|
android:background="@drawable/bottomsheet_background">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|||||||
23
core/res/res/values-h480dp/dimens.xml
Normal file
23
core/res/res/values-h480dp/dimens.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (C) 2020 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<dimen name="resolver_empty_state_container_padding_top">48dp</dimen>
|
||||||
|
<dimen name="resolver_empty_state_container_padding_bottom">48dp</dimen>
|
||||||
|
<dimen name="resolver_title_padding_bottom">@dimen/resolver_edge_margin</dimen>
|
||||||
|
<dimen name="resolver_button_bar_spacing">8dp</dimen>
|
||||||
|
</resources>
|
||||||
@@ -813,7 +813,7 @@
|
|||||||
<dimen name="chooser_icon_size">56dp</dimen>
|
<dimen name="chooser_icon_size">56dp</dimen>
|
||||||
<dimen name="chooser_badge_size">22dp</dimen>
|
<dimen name="chooser_badge_size">22dp</dimen>
|
||||||
<dimen name="resolver_icon_size">32dp</dimen>
|
<dimen name="resolver_icon_size">32dp</dimen>
|
||||||
<dimen name="resolver_button_bar_spacing">8dp</dimen>
|
<dimen name="resolver_button_bar_spacing">0dp</dimen>
|
||||||
<dimen name="resolver_badge_size">18dp</dimen>
|
<dimen name="resolver_badge_size">18dp</dimen>
|
||||||
<dimen name="resolver_icon_margin">16dp</dimen>
|
<dimen name="resolver_icon_margin">16dp</dimen>
|
||||||
<dimen name="resolver_small_margin">18dp</dimen>
|
<dimen name="resolver_small_margin">18dp</dimen>
|
||||||
@@ -826,6 +826,9 @@
|
|||||||
<dimen name="resolver_max_collapsed_height_with_default">144dp</dimen>
|
<dimen name="resolver_max_collapsed_height_with_default">144dp</dimen>
|
||||||
<dimen name="resolver_max_collapsed_height_with_default_with_tabs">300dp</dimen>
|
<dimen name="resolver_max_collapsed_height_with_default_with_tabs">300dp</dimen>
|
||||||
<dimen name="resolver_tab_text_size">14sp</dimen>
|
<dimen name="resolver_tab_text_size">14sp</dimen>
|
||||||
|
<dimen name="resolver_title_padding_bottom">0dp</dimen>
|
||||||
|
<dimen name="resolver_empty_state_container_padding_top">8dp</dimen>
|
||||||
|
<dimen name="resolver_empty_state_container_padding_bottom">8dp</dimen>
|
||||||
|
|
||||||
<dimen name="chooser_action_button_icon_size">18dp</dimen>
|
<dimen name="chooser_action_button_icon_size">18dp</dimen>
|
||||||
|
|
||||||
|
|||||||
@@ -3961,6 +3961,7 @@
|
|||||||
<java-symbol type="id" name="resolver_button_bar_divider" />
|
<java-symbol type="id" name="resolver_button_bar_divider" />
|
||||||
<java-symbol type="id" name="resolver_empty_state_container" />
|
<java-symbol type="id" name="resolver_empty_state_container" />
|
||||||
<java-symbol type="id" name="button_bar_container" />
|
<java-symbol type="id" name="button_bar_container" />
|
||||||
|
<java-symbol type="id" name="title_container" />
|
||||||
<java-symbol type="string" name="resolver_cant_share_with_work_apps" />
|
<java-symbol type="string" name="resolver_cant_share_with_work_apps" />
|
||||||
<java-symbol type="string" name="resolver_cant_share_with_work_apps_explanation" />
|
<java-symbol type="string" name="resolver_cant_share_with_work_apps_explanation" />
|
||||||
<java-symbol type="string" name="resolver_cant_share_with_personal_apps" />
|
<java-symbol type="string" name="resolver_cant_share_with_personal_apps" />
|
||||||
@@ -3984,6 +3985,9 @@
|
|||||||
<java-symbol type="dimen" name="resolver_max_collapsed_height_with_default_with_tabs" />
|
<java-symbol type="dimen" name="resolver_max_collapsed_height_with_default_with_tabs" />
|
||||||
<java-symbol type="bool" name="resolver_landscape_phone" />
|
<java-symbol type="bool" name="resolver_landscape_phone" />
|
||||||
<java-symbol type="dimen" name="resolver_tab_text_size" />
|
<java-symbol type="dimen" name="resolver_tab_text_size" />
|
||||||
|
<java-symbol type="dimen" name="resolver_title_padding_bottom" />
|
||||||
|
<java-symbol type="dimen" name="resolver_empty_state_container_padding_top" />
|
||||||
|
<java-symbol type="dimen" name="resolver_empty_state_container_padding_bottom" />
|
||||||
|
|
||||||
<!-- Toast message for background started foreground service while-in-use permission restriction feature -->
|
<!-- Toast message for background started foreground service while-in-use permission restriction feature -->
|
||||||
<java-symbol type="string" name="allow_while_in_use_permission_in_fgs" />
|
<java-symbol type="string" name="allow_while_in_use_permission_in_fgs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user