Merge "Hide "Always" and "Just once" buttons for empty state screens" into rvc-dev am: 3a507cbf8c am: 80295814cb am: 2b309ff541

Change-Id: I780c83d56d612c6c368b7711e415791c9bf680cc
This commit is contained in:
Antoan Angelov
2020-04-22 13:48:48 +00:00
committed by Automerger Merge Worker
6 changed files with 93 additions and 62 deletions

View File

@@ -437,6 +437,9 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
emptyStateView.setVisibility(View.VISIBLE);
View container = emptyStateView.findViewById(R.id.resolver_empty_state_container);
setupContainerPadding(container);
TextView title = emptyStateView.findViewById(R.id.resolver_empty_state_title);
title.setText(titleRes);
@@ -463,6 +466,12 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
activeListAdapter.markTabLoaded();
}
/**
* Sets up the padding of the view containing the empty state screens.
* <p>This method is meant to be overridden so that subclasses can customize the padding.
*/
protected void setupContainerPadding(View container) {}
private void showConsumerUserNoAppsAvailableEmptyState(ResolverListAdapter activeListAdapter) {
ProfileDescriptor descriptor = getItem(
userHandleToPageIndex(activeListAdapter.getUserHandle()));

View File

@@ -1757,22 +1757,33 @@ public class ResolverActivity extends Activity implements
return;
}
final ViewGroup buttonLayout = findViewById(R.id.button_bar);
if (buttonLayout != null) {
buttonLayout.setVisibility(View.VISIBLE);
if (!useLayoutWithDefault()) {
int inset = mSystemWindowInsets != null ? mSystemWindowInsets.bottom : 0;
buttonLayout.setPadding(buttonLayout.getPaddingLeft(), buttonLayout.getPaddingTop(),
buttonLayout.getPaddingRight(), getResources().getDimensionPixelSize(
R.dimen.resolver_button_bar_spacing) + inset);
}
mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once);
mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always);
resetAlwaysOrOnceButtonBar();
} else {
if (buttonLayout == null) {
Log.e(TAG, "Layout unexpectedly does not have a button bar");
return;
}
ResolverListAdapter activeListAdapter =
mMultiProfilePagerAdapter.getActiveListAdapter();
View buttonBarDivider = findViewById(R.id.resolver_button_bar_divider);
if (activeListAdapter.isTabLoaded()
&& mMultiProfilePagerAdapter.shouldShowEmptyStateScreen(activeListAdapter)) {
buttonLayout.setVisibility(View.INVISIBLE);
buttonBarDivider.setVisibility(View.INVISIBLE);
return;
}
buttonBarDivider.setVisibility(View.VISIBLE);
buttonLayout.setVisibility(View.VISIBLE);
if (!useLayoutWithDefault()) {
int inset = mSystemWindowInsets != null ? mSystemWindowInsets.bottom : 0;
buttonLayout.setPadding(buttonLayout.getPaddingLeft(), buttonLayout.getPaddingTop(),
buttonLayout.getPaddingRight(), getResources().getDimensionPixelSize(
R.dimen.resolver_button_bar_spacing) + inset);
}
mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once);
mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always);
resetAlwaysOrOnceButtonBar();
}
private void resetAlwaysOrOnceButtonBar() {

View File

@@ -213,6 +213,12 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
/* subtitleRes */ 0);
}
@Override
protected void setupContainerPadding(View container) {
container.setPadding(container.getPaddingLeft(), container.getPaddingTop(),
container.getPaddingRight(), /* bottom */ 0);
}
class ResolverProfileDescriptor extends ProfileDescriptor {
private ResolverListAdapter resolverListAdapter;
final ListView listView;

View File

@@ -24,6 +24,7 @@
android:paddingStart="24dp"
android:paddingEnd="24dp">
<RelativeLayout
android:id="@+id/resolver_empty_state_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="48dp"

View File

@@ -112,59 +112,61 @@
</FrameLayout>
</LinearLayout>
</TabHost>
<View
android:layout_alwaysShow="true"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?attr/colorBackgroundFloating"
android:foreground="?attr/dividerVertical" />
<LinearLayout
android:id="@+id/button_bar"
android:visibility="gone"
style="?attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_ignoreOffset="true"
android:layout_alwaysShow="true"
android:layout_hasNestedScrollIndicator="true"
android:gravity="end|center_vertical"
android:orientation="horizontal"
android:layoutDirection="locale"
android:measureWithLargestChild="true"
android:background="?attr/colorBackgroundFloating"
android:paddingTop="@dimen/resolver_button_bar_spacing"
android:paddingBottom="@dimen/resolver_button_bar_spacing"
android:paddingStart="@dimen/resolver_edge_margin"
android:paddingEnd="@dimen/resolver_small_margin"
android:elevation="@dimen/resolver_elevation">
<Button
android:id="@+id/button_once"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:maxLines="2"
style="?attr/buttonBarButtonStyle"
android:fontFamily="@android:string/config_headlineFontFamilyMedium"
android:orientation="vertical"
android:background="?attr/colorBackgroundFloating">
<View
android:id="@+id/resolver_button_bar_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?attr/colorBackgroundFloating"
android:foreground="?attr/dividerVertical" />
<LinearLayout
android:id="@+id/button_bar"
android:visibility="gone"
style="?attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:enabled="false"
android:text="@string/activity_resolver_use_once"
android:onClick="onButtonClick" />
android:layout_ignoreOffset="true"
android:layout_hasNestedScrollIndicator="true"
android:gravity="end|center_vertical"
android:orientation="horizontal"
android:layoutDirection="locale"
android:measureWithLargestChild="true"
android:paddingTop="@dimen/resolver_button_bar_spacing"
android:paddingBottom="@dimen/resolver_button_bar_spacing"
android:paddingStart="@dimen/resolver_edge_margin"
android:paddingEnd="@dimen/resolver_small_margin"
android:elevation="@dimen/resolver_elevation">
<Button
android:id="@+id/button_always"
android:layout_width="wrap_content"
android:layout_gravity="end"
android:maxLines="2"
style="?attr/buttonBarButtonStyle"
android:fontFamily="@android:string/config_headlineFontFamilyMedium"
android:textAllCaps="false"
android:layout_height="wrap_content"
android:enabled="false"
android:text="@string/activity_resolver_use_always"
android:onClick="onButtonClick" />
<Button
android:id="@+id/button_once"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:maxLines="2"
style="?attr/buttonBarButtonStyle"
android:fontFamily="@android:string/config_headlineFontFamilyMedium"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:enabled="false"
android:text="@string/activity_resolver_use_once"
android:onClick="onButtonClick" />
<Button
android:id="@+id/button_always"
android:layout_width="wrap_content"
android:layout_gravity="end"
android:maxLines="2"
style="?attr/buttonBarButtonStyle"
android:fontFamily="@android:string/config_headlineFontFamilyMedium"
android:textAllCaps="false"
android:layout_height="wrap_content"
android:enabled="false"
android:text="@string/activity_resolver_use_always"
android:onClick="onButtonClick" />
</LinearLayout>
</LinearLayout>
</com.android.internal.widget.ResolverDrawerLayout>

View File

@@ -3922,6 +3922,8 @@
<java-symbol type="id" name="resolver_empty_state_button" />
<java-symbol type="id" name="resolver_empty_state_progress" />
<java-symbol type="id" name="resolver_tab_divider" />
<java-symbol type="id" name="resolver_button_bar_divider" />
<java-symbol type="id" name="resolver_empty_state_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" />