Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afec9d03 authored by arangelov's avatar arangelov
Browse files

Improve strings for share sheet and intent resolvers.

Fixes: 151694643
Fixes: 150942431
Test: manual
Change-Id: Ie419e791aa1d2d2cbd32b3f091833b54b90c81eb
parent 1f9fef65
Loading
Loading
Loading
Loading
+49 −14
Original line number Diff line number Diff line
@@ -115,6 +115,10 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
        mInjector = injector;
    }

    protected boolean isQuietModeEnabled(UserHandle workProfileUserHandle) {
        return mInjector.isQuietModeEnabled(workProfileUserHandle);
    }

    void setOnProfileSelectedListener(OnProfileSelectedListener listener) {
        mOnProfileSelectedListener = listener;
    }
@@ -339,23 +343,32 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
    protected abstract void showNoPersonalToWorkIntentsEmptyState(
            ResolverListAdapter activeListAdapter);

    protected abstract void showNoPersonalAppsAvailableEmptyState(
            ResolverListAdapter activeListAdapter);

    protected abstract void showNoWorkAppsAvailableEmptyState(
            ResolverListAdapter activeListAdapter);

    protected abstract void showNoWorkToPersonalIntentsEmptyState(
            ResolverListAdapter activeListAdapter);

    void showEmptyState(ResolverListAdapter listAdapter) {
    void showNoAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
        UserHandle listUserHandle = listAdapter.getUserHandle();
        if (UserHandle.myUserId() == listUserHandle.getIdentifier()
                || !hasAppsInOtherProfile(listAdapter)) {
            if (mWorkProfileUserHandle != null) {
        if (mWorkProfileUserHandle != null
                && (UserHandle.myUserId() == listUserHandle.getIdentifier()
                        || !hasAppsInOtherProfile(listAdapter))) {
            DevicePolicyEventLogger.createEvent(
                    DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_APPS_RESOLVED)
                    .setStrings(getMetricsCategory())
                    .setBoolean(/*isPersonalProfile*/ listUserHandle == mPersonalProfileUserHandle)
                    .write();
            if (listUserHandle == mPersonalProfileUserHandle) {
                showNoPersonalAppsAvailableEmptyState(listAdapter);
            } else {
                showNoWorkAppsAvailableEmptyState(listAdapter);
            }
            showEmptyState(listAdapter,
                    R.drawable.ic_no_apps,
                    R.string.resolver_no_apps_available,
                    /* subtitleRes */ 0);
        } else if (mWorkProfileUserHandle == null) {
            showConsumerUserNoAppsAvailableEmptyState(listAdapter);
        }
    }

@@ -371,7 +384,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
                userHandleToPageIndex(activeListAdapter.getUserHandle()));
        descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
        View emptyStateView = descriptor.getEmptyStateView();
        resetViewVisibilities(emptyStateView);
        resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
        emptyStateView.setVisibility(View.VISIBLE);

        ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
@@ -395,6 +408,17 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
        activeListAdapter.markTabLoaded();
    }

    private void showConsumerUserNoAppsAvailableEmptyState(ResolverListAdapter activeListAdapter) {
        ProfileDescriptor descriptor = getItem(
                userHandleToPageIndex(activeListAdapter.getUserHandle()));
        descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
        View emptyStateView = descriptor.getEmptyStateView();
        resetViewVisibilitiesForConsumerUserEmptyState(emptyStateView);
        emptyStateView.setVisibility(View.VISIBLE);

        activeListAdapter.markTabLoaded();
    }

    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);
@@ -402,14 +426,25 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter {
                .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);
        emptyStateView.findViewById(R.id.empty).setVisibility(View.GONE);
    }

    private void resetViewVisibilities(View emptyStateView) {
    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);
        emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE);
        emptyStateView.findViewById(R.id.empty).setVisibility(View.GONE);
    }

    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);
        emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE);
        emptyStateView.findViewById(R.id.empty).setVisibility(View.VISIBLE);
    }

    protected void showListView(ResolverListAdapter activeListAdapter) {
+19 −3
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
            View.OnClickListener listener) {
        showEmptyState(activeListAdapter,
                R.drawable.ic_work_apps_off,
                R.string.resolver_turn_on_work_apps_share,
                R.string.resolver_turn_on_work_apps,
                /* subtitleRes */ 0,
                listener);
    }
@@ -185,7 +185,7 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
        showEmptyState(activeListAdapter,
                R.drawable.ic_sharing_disabled,
                R.string.resolver_cant_share_with_work_apps,
                R.string.resolver_cant_share_cross_profile_explanation);
                R.string.resolver_cant_share_with_work_apps_explanation);
    }

    @Override
@@ -193,7 +193,23 @@ public class ChooserMultiProfilePagerAdapter extends AbstractMultiProfilePagerAd
        showEmptyState(activeListAdapter,
                R.drawable.ic_sharing_disabled,
                R.string.resolver_cant_share_with_personal_apps,
                R.string.resolver_cant_share_cross_profile_explanation);
                R.string.resolver_cant_share_with_personal_apps_explanation);
    }

    @Override
    protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
        showEmptyState(listAdapter,
                R.drawable.ic_no_apps,
                R.string.resolver_no_personal_apps_available_share,
                /* subtitleRes */ 0);
    }

    @Override
    protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
        showEmptyState(listAdapter,
                R.drawable.ic_no_apps,
                R.string.resolver_no_work_apps_available_share,
                /* subtitleRes */ 0);
    }

    class ChooserProfileDescriptor extends ProfileDescriptor {
+6 −8
Original line number Diff line number Diff line
@@ -752,6 +752,11 @@ public class ResolverActivity extends Activity implements
            }
            mRegistered = true;
        }
        if (shouldShowTabs() && mMultiProfilePagerAdapter.isWaitingToEnableWorkProfile()) {
            if (mMultiProfilePagerAdapter.isQuietModeEnabled(getWorkProfileUserHandle())) {
                mMultiProfilePagerAdapter.markWorkProfileEnabledBroadcastReceived();
            }
        }
        mMultiProfilePagerAdapter.getActiveListAdapter().handlePackagesChanged();
        updateProfileViewButton();
    }
@@ -990,7 +995,7 @@ public class ResolverActivity extends Activity implements
            return;
        }
        if (shouldShowEmptyState(listAdapter)) {
            mMultiProfilePagerAdapter.showEmptyState(listAdapter);
            mMultiProfilePagerAdapter.showNoAppsAvailableEmptyState(listAdapter);
        } else {
            mMultiProfilePagerAdapter.showListView(listAdapter);
        }
@@ -1603,8 +1608,6 @@ public class ResolverActivity extends Activity implements
    }

    private void resetTabsHeaderStyle(TabWidget tabWidget) {
        String workContentDescription = getString(R.string.resolver_work_tab_accessibility);
        String personalContentDescription = getString(R.string.resolver_personal_tab_accessibility);
        for (int i = 0; i < tabWidget.getChildCount(); i++) {
            View tabView = tabWidget.getChildAt(i);
            TextView title = tabView.findViewById(android.R.id.title);
@@ -1612,11 +1615,6 @@ public class ResolverActivity extends Activity implements
            title.setTextColor(getAttrColor(this, android.R.attr.textColorTertiary));
            title.setTextSize(TypedValue.COMPLEX_UNIT_PX,
                    getResources().getDimension(R.dimen.resolver_tab_text_size));
            if (title.getText().equals(getString(R.string.resolver_personal_tab))) {
                tabView.setContentDescription(personalContentDescription);
            } else if (title.getText().equals(getString(R.string.resolver_work_tab))) {
                tabView.setContentDescription(workContentDescription);
            }
        }
    }

+17 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
            View.OnClickListener listener) {
        showEmptyState(activeListAdapter,
                R.drawable.ic_work_apps_off,
                R.string.resolver_turn_on_work_apps_view,
                R.string.resolver_turn_on_work_apps,
                /* subtitleRes */ 0,
                listener);
    }
@@ -188,6 +188,22 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA
                R.string.resolver_cant_access_personal_apps_explanation);
    }

    @Override
    protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
        showEmptyState(listAdapter,
                R.drawable.ic_no_apps,
                R.string.resolver_no_personal_apps_available_resolve,
                /* subtitleRes */ 0);
    }

    @Override
    protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
        showEmptyState(listAdapter,
                R.drawable.ic_no_apps,
                R.string.resolver_no_work_apps_available_resolve,
                /* subtitleRes */ 0);
    }

    class ResolverProfileDescriptor extends ProfileDescriptor {
        private ResolverListAdapter resolverListAdapter;
        final ListView listView;
+9 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/resolver_empty_state"
    android:layout_width="match_parent"
    android:layout_height="@dimen/resolver_empty_state_height"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:visibility="gone"
@@ -72,4 +72,12 @@
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/resolver_empty_state_subtitle"
        android:indeterminateTint="?attr/colorAccent"/>
    <TextView android:id="@+id/empty"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorBackgroundFloating"
        android:text="@string/noApplications"
        android:padding="@dimen/chooser_edge_margin_normal"
        android:layout_marginBottom="56dp"
        android:gravity="center"/>
</RelativeLayout>
 No newline at end of file
Loading