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

Commit 03e4e44f authored by kholoud mohamed's avatar kholoud mohamed
Browse files

Allow updating enteprise strings in DocUI

Bug: 188410712
Bug: 211422509
Bug: 202398471
Test: manual
Change-Id: I23b69ce3342275c9d6f0af736b7671688c6593dc
parent 8e55c66f
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -16,11 +16,14 @@

package com.android.documentsui;

import static android.app.admin.DevicePolicyResources.Strings.DocumentsUi.PERSONAL_TAB;
import static android.app.admin.DevicePolicyResources.Strings.DocumentsUi.WORK_TAB;

import static androidx.core.util.Preconditions.checkNotNull;

import android.app.admin.DevicePolicyManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import androidx.annotation.Nullable;

@@ -149,14 +152,23 @@ public class ProfileTabs implements ProfileTabsAddons {
            mTabs.removeAllTabs();
            if (mUserIds.size() > 1) {
                // set setSelected to false otherwise it will trigger callback.
                mTabs.addTab(createTab(R.string.personal_tab,
                mTabs.addTab(createTab(
                        getEnterpriseString(PERSONAL_TAB, R.string.personal_tab),
                        mUserIdManager.getSystemUser()), /* setSelected= */false);
                mTabs.addTab(createTab(R.string.work_tab,
                mTabs.addTab(createTab(
                        getEnterpriseString(WORK_TAB, R.string.work_tab),
                        mUserIdManager.getManagedUser()), /* setSelected= */false);
            }
        }
    }

    private String getEnterpriseString(String updatableStringId, int defaultStringId) {
        DevicePolicyManager dpm = mTabsContainer.getContext().getSystemService(
                DevicePolicyManager.class);
        return dpm.getString(
                updatableStringId, () -> mTabsContainer.getContext().getString(defaultStringId));
    }

    /**
     * Returns the user represented by the selected tab. If there is no tab, return the
     * current user.
@@ -182,8 +194,8 @@ public class ProfileTabs implements ProfileTabsAddons {
                && mState.stack.getRoot() != null && mState.stack.getRoot().supportsCrossProfile();
    }

    private TabLayout.Tab createTab(int resId, UserId userId) {
        return mTabs.newTab().setText(resId).setTag(userId);
    private TabLayout.Tab createTab(String text, UserId userId) {
        return mTabs.newTab().setText(text).setTag(userId);
    }

    @Override
+15 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.documentsui.dirlist;

import static android.app.admin.DevicePolicyResources.Strings.DocumentsUi.PREVIEW_WORK_FILE_ACCESSIBILITY;
import static android.app.admin.DevicePolicyResources.Strings.UNDEFINED;

import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
@@ -30,6 +34,7 @@ import android.widget.ImageView;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.recyclerview.widget.RecyclerView;

import com.android.documentsui.R;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;

@@ -171,6 +176,16 @@ public abstract class DocumentHolder
        return view.animate().setDuration(Shared.CHECK_ANIMATION_DURATION).alpha(alpha);
    }

    protected String getPreviewIconContentDescription(boolean isWorkProfile, String fileName) {
        DevicePolicyManager dpm = itemView.getContext().getSystemService(DevicePolicyManager.class);
        String updatableStringId = isWorkProfile ? PREVIEW_WORK_FILE_ACCESSIBILITY : UNDEFINED;
        int defaultStringId = isWorkProfile ? R.string.preview_work_file : R.string.preview_file;
        return dpm.getString(
                updatableStringId,
                () -> itemView.getResources().getString(defaultStringId, fileName),
                /* formatArgs= */ fileName);
    }

    protected static class PreviewAccessibilityDelegate extends View.AccessibilityDelegate {
        private Function<View, Boolean> mCallback;

+3 −4
Original line number Diff line number Diff line
@@ -116,10 +116,9 @@ final class GridDocumentHolder extends DocumentHolder {
        mPreviewIcon.setVisibility(show ? View.VISIBLE : View.GONE);
        if (show) {
            mPreviewIcon.setContentDescription(
                    itemView.getResources().getString(
                            mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier())
                                    ? R.string.preview_work_file
                                    : R.string.preview_file, mDoc.displayName));
                    getPreviewIconContentDescription(
                            mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier()),
                            mDoc.displayName));
            mPreviewIcon.setAccessibilityDelegate(new PreviewAccessibilityDelegate(clickCallback));
        }
    }
+3 −4
Original line number Diff line number Diff line
@@ -98,10 +98,9 @@ final class GridPhotoHolder extends DocumentHolder {
        mPreviewIcon.setVisibility(show ? View.VISIBLE : View.GONE);
        if (show) {
            mPreviewIcon.setContentDescription(
                    itemView.getResources().getString(
                            mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier())
                                    ? R.string.preview_work_file
                                    : R.string.preview_file, mDoc.displayName));
                    getPreviewIconContentDescription(
                            mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier()),
                            mDoc.displayName));
            mPreviewIcon.setAccessibilityDelegate(new PreviewAccessibilityDelegate(clickCallback));
        }
    }
+3 −4
Original line number Diff line number Diff line
@@ -137,10 +137,9 @@ final class ListDocumentHolder extends DocumentHolder {
            mPreviewIcon.setVisibility(show ? View.VISIBLE : View.GONE);
            if (show) {
                mPreviewIcon.setContentDescription(
                        itemView.getResources().getString(
                                mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier())
                                        ? R.string.preview_work_file
                                        : R.string.preview_file, mDoc.displayName));
                        getPreviewIconContentDescription(
                                mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier()),
                                mDoc.displayName));
                mPreviewIcon.setAccessibilityDelegate(
                        new PreviewAccessibilityDelegate(clickCallback));
            }
Loading