Empty state UI tweaks
- Remove icons from empty state UI - Increase padding and font sizes - Remove config change handling as icons no longer need to be toggled and padding wasn't changing. - Remove some other now-unused methods Bug: 195093229 Test: atest ResolverActivityTest Test: atest ChooserActivityTest Test: Visual inspection of UI Change-Id: Iaa9f7c4e4734e07e76bd9280eb1154c0c67585eb
This commit is contained in:
@@ -15,10 +15,8 @@
|
||||
*/
|
||||
package com.android.internal.app;
|
||||
|
||||
import android.annotation.DrawableRes;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.StringRes;
|
||||
import android.app.AppGlobals;
|
||||
import android.app.admin.DevicePolicyEventLogger;
|
||||
import android.content.ContentResolver;
|
||||
@@ -33,7 +31,6 @@ import android.stats.devicepolicy.DevicePolicyEnums;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.R;
|
||||
@@ -347,30 +344,6 @@ 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>
|
||||
@@ -461,27 +434,13 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
protected void showEmptyState(ResolverListAdapter activeListAdapter,
|
||||
@DrawableRes int iconRes, @StringRes int titleRes, @StringRes int subtitleRes) {
|
||||
showEmptyState(activeListAdapter, iconRes, titleRes, subtitleRes, /* buttonOnClick */ null);
|
||||
protected void showEmptyState(ResolverListAdapter activeListAdapter, String title,
|
||||
String subtitle) {
|
||||
showEmptyState(activeListAdapter, title, subtitle, /* buttonOnClick */ null);
|
||||
}
|
||||
|
||||
protected void showEmptyState(ResolverListAdapter activeListAdapter,
|
||||
@DrawableRes int iconRes, String title, String subtitle) {
|
||||
showEmptyState(activeListAdapter, iconRes, title, subtitle, /* buttonOnClick */ null);
|
||||
}
|
||||
|
||||
protected void showEmptyState(ResolverListAdapter activeListAdapter,
|
||||
@DrawableRes int iconRes, @StringRes int titleRes, @StringRes int subtitleRes,
|
||||
View.OnClickListener buttonOnClick) {
|
||||
String title = titleRes == 0 ? null : mContext.getString(titleRes);
|
||||
String subtitle = subtitleRes == 0 ? null : mContext.getString(subtitleRes);
|
||||
showEmptyState(activeListAdapter, iconRes, title, subtitle, buttonOnClick);
|
||||
}
|
||||
|
||||
protected void showEmptyState(ResolverListAdapter activeListAdapter,
|
||||
@DrawableRes int iconRes, String title, String subtitle,
|
||||
View.OnClickListener buttonOnClick) {
|
||||
String title, String subtitle, View.OnClickListener buttonOnClick) {
|
||||
ProfileDescriptor descriptor = getItem(
|
||||
userHandleToPageIndex(activeListAdapter.getUserHandle()));
|
||||
descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
|
||||
@@ -507,10 +466,6 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
button.setVisibility(buttonOnClick != null ? View.VISIBLE : View.GONE);
|
||||
button.setOnClickListener(buttonOnClick);
|
||||
|
||||
ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
|
||||
icon.setImageResource(iconRes);
|
||||
updateIconVisibility(icon, emptyStateView);
|
||||
|
||||
activeListAdapter.markTabLoaded();
|
||||
}
|
||||
|
||||
@@ -537,7 +492,6 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
}
|
||||
|
||||
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);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.VISIBLE);
|
||||
@@ -545,7 +499,6 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
}
|
||||
|
||||
private void resetViewVisibilitiesForWorkProfileEmptyState(View emptyStateView) {
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.VISIBLE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.VISIBLE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_subtitle).setVisibility(View.VISIBLE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
|
||||
@@ -554,7 +507,6 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
|
||||
}
|
||||
|
||||
private void resetViewVisibilitiesForConsumerUserEmptyState(View emptyStateView) {
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.GONE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.GONE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_subtitle).setVisibility(View.GONE);
|
||||
emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.GONE);
|
||||
|
||||
@@ -193,7 +193,6 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
|
||||
protected void showWorkProfileOffEmptyState(ResolverListAdapter activeListAdapter,
|
||||
View.OnClickListener listener) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_work_apps_off,
|
||||
getWorkAppPausedTitle(),
|
||||
/* subtitle = */ null,
|
||||
listener);
|
||||
@@ -203,12 +202,10 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
|
||||
protected void showNoPersonalToWorkIntentsEmptyState(ResolverListAdapter activeListAdapter) {
|
||||
if (mIsSendAction) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantShareWithWorkMessage());
|
||||
} else {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantAccessWorkMessage());
|
||||
}
|
||||
@@ -218,12 +215,10 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
|
||||
protected void showNoWorkToPersonalIntentsEmptyState(ResolverListAdapter activeListAdapter) {
|
||||
if (mIsSendAction) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantShareWithPersonalMessage());
|
||||
} else {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantAccessPersonalMessage());
|
||||
}
|
||||
@@ -231,19 +226,13 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
|
||||
|
||||
@Override
|
||||
protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
|
||||
showEmptyState(listAdapter,
|
||||
R.drawable.ic_no_apps,
|
||||
getNoPersonalAppsAvailableMessage(),
|
||||
/* subtitle= */ null);
|
||||
showEmptyState(listAdapter, getNoPersonalAppsAvailableMessage(), /* subtitle= */ null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
|
||||
showEmptyState(listAdapter,
|
||||
R.drawable.ic_no_apps,
|
||||
getNoWorkAppsAvailableMessage(),
|
||||
/* subtitle = */ null);
|
||||
showEmptyState(listAdapter, getNoWorkAppsAvailableMessage(), /* subtitle = */ null);
|
||||
}
|
||||
|
||||
private String getWorkAppPausedTitle() {
|
||||
|
||||
@@ -673,7 +673,6 @@ public class ResolverActivity extends Activity implements
|
||||
getResources().getDimensionPixelSize(R.dimen.resolver_button_bar_spacing),
|
||||
buttonBar.getPaddingRight(),
|
||||
getResources().getDimensionPixelSize(R.dimen.resolver_button_bar_spacing));
|
||||
mMultiProfilePagerAdapter.updateAfterConfigChange();
|
||||
}
|
||||
|
||||
@Override // ResolverListCommunicator
|
||||
|
||||
@@ -26,7 +26,6 @@ import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_WORK
|
||||
import android.annotation.Nullable;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.UserHandle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -74,24 +73,6 @@ 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());
|
||||
@@ -203,7 +184,6 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
protected void showWorkProfileOffEmptyState(ResolverListAdapter activeListAdapter,
|
||||
View.OnClickListener listener) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_work_apps_off,
|
||||
getWorkAppPausedTitle(),
|
||||
/* subtitle = */ null,
|
||||
listener);
|
||||
@@ -212,7 +192,6 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
@Override
|
||||
protected void showNoPersonalToWorkIntentsEmptyState(ResolverListAdapter activeListAdapter) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantAccessWorkMessage());
|
||||
}
|
||||
@@ -220,7 +199,6 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
@Override
|
||||
protected void showNoWorkToPersonalIntentsEmptyState(ResolverListAdapter activeListAdapter) {
|
||||
showEmptyState(activeListAdapter,
|
||||
R.drawable.ic_sharing_disabled,
|
||||
getCrossProfileBlockedTitle(),
|
||||
getCantAccessPersonalMessage());
|
||||
}
|
||||
@@ -228,7 +206,6 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
@Override
|
||||
protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
|
||||
showEmptyState(listAdapter,
|
||||
R.drawable.ic_no_apps,
|
||||
getNoPersonalAppsAvailableMessage(),
|
||||
/* subtitle = */ null);
|
||||
}
|
||||
@@ -236,7 +213,6 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
|
||||
@Override
|
||||
protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
|
||||
showEmptyState(listAdapter,
|
||||
R.drawable.ic_no_apps,
|
||||
getNoWorkAppsAvailableMessage(),
|
||||
/* subtitle= */ null);
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
<vector android:height="32dp" android:viewportHeight="24"
|
||||
android:viewportWidth="24" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@color/resolver_empty_state_icon" android:fillType="evenOdd" android:pathData="M18.8123,20.0145L21.3999,22.6021L22.602,21.4L2.602,1.4L1.3999,2.6021L3.9873,5.1895C3.6248,5.552 3.3998,6.052 3.3998,6.602C3.3998,7.702 4.2998,8.602 5.3998,8.602C5.9498,8.602 6.4498,8.377 6.8123,8.0145L9.9873,11.1895C9.6248,11.552 9.3998,12.052 9.3998,12.602C9.3998,13.702 10.2998,14.602 11.3998,14.602C11.9498,14.602 12.4498,14.377 12.8123,14.0145L15.9873,17.1895C15.6248,17.552 15.3998,18.052 15.3998,18.602C15.3998,19.702 16.2998,20.602 17.3998,20.602C17.9498,20.602 18.4498,20.377 18.8123,20.0145ZM17.3998,8.602C16.2998,8.602 15.3998,7.7021 15.3998,6.602C15.3998,5.502 16.2998,4.602 17.3998,4.602C18.4998,4.602 19.3998,5.502 19.3998,6.602C19.3998,7.7021 18.4998,8.602 17.3998,8.602ZM5.3998,14.6021C6.4998,14.6021 7.3998,13.7021 7.3998,12.6021C7.3998,11.5021 6.4998,10.6021 5.3998,10.6021C4.2998,10.6021 3.3998,11.5021 3.3998,12.6021C3.3998,13.7021 4.2998,14.6021 5.3998,14.6021ZM7.3998,18.6021C7.3998,19.7021 6.4998,20.6021 5.3998,20.6021C4.2998,20.6021 3.3998,19.7021 3.3998,18.6021C3.3998,17.5021 4.2998,16.6021 5.3998,16.6021C6.4998,16.6021 7.3998,17.5021 7.3998,18.6021ZM13.3998,18.6021C13.3998,19.7021 12.4998,20.6021 11.3998,20.6021C10.2998,20.6021 9.3998,19.7021 9.3998,18.6021C9.3998,17.5021 10.2998,16.6021 11.3998,16.6021C12.4998,16.6021 13.3998,17.5021 13.3998,18.6021ZM13.3999,6.602C13.3999,7.547 12.7357,8.3444 11.8511,8.5504L9.4516,6.1509C9.6576,5.2663 10.4549,4.602 11.3999,4.602C12.4999,4.602 13.3999,5.502 13.3999,6.602ZM17.8511,14.5504C18.7357,14.3444 19.3999,13.547 19.3999,12.6021C19.3999,11.5021 18.4999,10.6021 17.3999,10.6021C16.4549,10.6021 15.6576,11.2663 15.4516,12.1509L17.8511,14.5504Z"/>
|
||||
</vector>
|
||||
@@ -1,4 +0,0 @@
|
||||
<vector android:height="32dp" android:viewportHeight="24"
|
||||
android:viewportWidth="24" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@color/resolver_empty_state_icon" android:fillType="evenOdd" android:pathData="M19.7225,20.9245L21.2011,22.4031L22.4032,21.201L2.8022,1.6L1.6001,2.8021L8.1265,9.3284L7.64,9.612C7.1,9.112 6.39,8.802 5.6,8.802C3.94,8.802 2.6,10.142 2.6,11.802C2.6,13.462 3.94,14.802 5.6,14.802C6.39,14.802 7.1,14.492 7.64,13.992L14.69,18.112C14.64,18.332 14.6,18.562 14.6,18.802C14.6,20.462 15.94,21.802 17.6,21.802C18.43,21.802 19.18,21.467 19.7225,20.9245ZM16.8938,18.0958L18.3063,19.5083C18.125,19.6895 17.875,19.802 17.6,19.802C17.05,19.802 16.6,19.352 16.6,18.802C16.6,18.527 16.7125,18.277 16.8938,18.0958ZM15.1871,16.3891L9.3881,10.5901L8.51,11.102C8.56,11.332 8.6,11.562 8.6,11.802C8.6,12.042 8.56,12.272 8.51,12.502L15.1871,16.3891ZM15.56,6.992L12.4382,8.8119L11.1766,7.5503L14.69,5.502C14.64,5.282 14.6,5.042 14.6,4.802C14.6,3.142 15.94,1.802 17.6,1.802C19.26,1.802 20.6,3.142 20.6,4.802C20.6,6.462 19.26,7.802 17.6,7.802C16.81,7.802 16.09,7.492 15.56,6.992ZM18.6,4.802C18.6,4.252 18.15,3.802 17.6,3.802C17.05,3.802 16.6,4.252 16.6,4.802C16.6,5.352 17.05,5.802 17.6,5.802C18.15,5.802 18.6,5.352 18.6,4.802ZM5.6,12.802C5.05,12.802 4.6,12.352 4.6,11.802C4.6,11.252 5.05,10.802 5.6,10.802C6.15,10.802 6.6,11.252 6.6,11.802C6.6,12.352 6.15,12.802 5.6,12.802Z"/>
|
||||
</vector>
|
||||
@@ -1,4 +0,0 @@
|
||||
<vector android:height="32dp" android:viewportHeight="24.0"
|
||||
android:viewportWidth="24.0" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@color/resolver_empty_state_icon" android:pathData="M20,6h-4L16,4c0,-1.11 -0.89,-2 -2,-2h-4c-1.11,0 -2,0.89 -2,2v1.17L10.83,8L20,8v9.17l1.98,1.98c0,-0.05 0.02,-0.1 0.02,-0.16L22,8c0,-1.11 -0.89,-2 -2,-2zM14,6h-4L10,4h4v2zM19,19L8,8 6,6 2.81,2.81 1.39,4.22 3.3,6.13C2.54,6.41 2.01,7.14 2.01,8L2,19c0,1.11 0.89,2 2,2h14.17l1.61,1.61 1.41,-1.41 -0.37,-0.37L19,19zM4,19L4,8h1.17l11,11L4,19z"/>
|
||||
</vector>
|
||||
@@ -30,36 +30,30 @@
|
||||
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"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_centerHorizontal="true" />
|
||||
<TextView
|
||||
android:id="@+id/resolver_empty_state_title"
|
||||
android:layout_below="@+id/resolver_empty_state_icon"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@string/config_headlineFontFamilyMedium"
|
||||
android:textColor="@color/resolver_empty_state_text"
|
||||
android:textSize="14sp"
|
||||
android:textSize="18sp"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true" />
|
||||
<TextView
|
||||
android:id="@+id/resolver_empty_state_subtitle"
|
||||
android:layout_below="@+id/resolver_empty_state_title"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/resolver_empty_state_text"
|
||||
android:textSize="12sp"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true" />
|
||||
<Button
|
||||
android:id="@+id/resolver_empty_state_button"
|
||||
android:layout_below="@+id/resolver_empty_state_subtitle"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/resolver_switch_on_work"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -959,7 +959,7 @@
|
||||
<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_top">48dp</dimen>
|
||||
<dimen name="resolver_empty_state_container_padding_bottom">8dp</dimen>
|
||||
|
||||
<dimen name="chooser_action_button_icon_size">18dp</dimen>
|
||||
|
||||
@@ -4297,9 +4297,6 @@
|
||||
<java-symbol type="string" name="resolver_no_work_apps_available" />
|
||||
<java-symbol type="string" name="resolver_no_personal_apps_available" />
|
||||
<java-symbol type="string" name="resolver_switch_on_work" />
|
||||
<java-symbol type="drawable" name="ic_work_apps_off" />
|
||||
<java-symbol type="drawable" name="ic_sharing_disabled" />
|
||||
<java-symbol type="drawable" name="ic_no_apps" />
|
||||
<java-symbol type="drawable" name="ic_screenshot_edit" />
|
||||
<java-symbol type="dimen" name="resolver_empty_state_height" />
|
||||
<java-symbol type="dimen" name="resolver_empty_state_height_with_tabs" />
|
||||
|
||||
Reference in New Issue
Block a user