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(
|
||||
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:
|
||||
* <ol>
|
||||
@@ -441,7 +465,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
ProfileDescriptor descriptor = getItem(
|
||||
userHandleToPageIndex(activeListAdapter.getUserHandle()));
|
||||
descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
|
||||
View emptyStateView = descriptor.getEmptyStateView();
|
||||
ViewGroup emptyStateView = descriptor.getEmptyStateView();
|
||||
resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
|
||||
emptyStateView.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -464,12 +488,8 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
button.setOnClickListener(buttonOnClick);
|
||||
|
||||
ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
|
||||
if (!getContext().getResources().getBoolean(R.bool.resolver_landscape_phone)) {
|
||||
icon.setVisibility(View.VISIBLE);
|
||||
icon.setImageResource(iconRes);
|
||||
} else {
|
||||
icon.setVisibility(View.GONE);
|
||||
}
|
||||
icon.setImageResource(iconRes);
|
||||
updateIconVisibility(icon, emptyStateView);
|
||||
|
||||
activeListAdapter.markTabLoaded();
|
||||
}
|
||||
@@ -491,6 +511,11 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
activeListAdapter.markTabLoaded();
|
||||
}
|
||||
|
||||
private boolean isSpinnerShowing(View emptyStateView) {
|
||||
return emptyStateView.findViewById(R.id.resolver_empty_state_progress).getVisibility()
|
||||
== View.VISIBLE;
|
||||
}
|
||||
|
||||
private void showSpinner(View emptyStateView) {
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_icon).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) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mMultiProfilePagerAdapter.getActiveListAdapter().handlePackagesChanged();
|
||||
if (isIntentPicker() && shouldShowTabs() && !useLayoutWithDefault()) {
|
||||
updateIntentPickerPaddings();
|
||||
}
|
||||
|
||||
if (mSystemWindowInsets != null) {
|
||||
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
|
||||
public void sendVoiceChoicesIfNeeded() {
|
||||
if (!isVoiceInteraction()) {
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.internal.app;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.UserHandle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -65,6 +66,24 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
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(
|
||||
ResolverListAdapter adapter) {
|
||||
final LayoutInflater inflater = LayoutInflater.from(getContext());
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
android:id="@+id/resolver_empty_state_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="48dp"
|
||||
android:paddingBottom="48dp"
|
||||
android:paddingTop="@dimen/resolver_empty_state_container_padding_top"
|
||||
android:paddingBottom="@dimen/resolver_empty_state_container_padding_bottom"
|
||||
android:gravity="center_horizontal">
|
||||
<ImageView
|
||||
android:id="@+id/resolver_empty_state_icon"
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
android:id="@id/contentPanel">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/title_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alwaysShow="true"
|
||||
@@ -33,7 +34,7 @@
|
||||
android:paddingTop="@dimen/resolver_small_margin"
|
||||
android:paddingStart="@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">
|
||||
|
||||
<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_badge_size">22dp</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_icon_margin">16dp</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_with_tabs">300dp</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>
|
||||
|
||||
|
||||
@@ -3961,6 +3961,7 @@
|
||||
<java-symbol type="id" name="resolver_button_bar_divider" />
|
||||
<java-symbol type="id" name="resolver_empty_state_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_explanation" />
|
||||
<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="bool" name="resolver_landscape_phone" />
|
||||
<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 -->
|
||||
<java-symbol type="string" name="allow_while_in_use_permission_in_fgs" />
|
||||
|
||||
Reference in New Issue
Block a user