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

Commit 264fa44f authored by Kelvin Kwan's avatar Kelvin Kwan
Browse files

Load Item with current user and store information in it.

Test: atest DocumentsUIGoogleTests
Bug: 148263330
Change-Id: I4532c7478c3b5f779a059637625a14bf2d2e6bac
parent d8c64f5e
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
/*
 * 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.
 */

package com.android.documentsui.base;

import androidx.annotation.Nullable;

/**
 * An interface for looking up application name.
 */
public interface LookupApplicationName {
    /**
     * Looking up an application name by user id and package name.
     */
    @Nullable
    String getApplicationName(UserId userId, String packageName);
}
+4 −6
Original line number Diff line number Diff line
@@ -16,17 +16,15 @@

package com.android.documentsui.dirlist;

import androidx.annotation.Nullable;
import android.app.AuthenticationRequiredException;
import android.app.PendingIntent;
import android.graphics.drawable.Drawable;
import android.util.Log;

import androidx.annotation.Nullable;

import com.android.documentsui.DocumentsApplication;
import com.android.documentsui.Model.Update;
import com.android.documentsui.R;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.dirlist.DocumentsAdapter.Environment;

/**
@@ -121,8 +119,8 @@ abstract class Message {
            assert(mEnv.getFeatures().isRemoteActionsEnabled());

            RootInfo root = mEnv.getDisplayState().stack.getRoot();
            String appName = DocumentsApplication
                    .getProvidersCache(mEnv.getContext()).getApplicationName(root.authority);
            String appName = DocumentsApplication.getProvidersCache(
                    mEnv.getContext()).getApplicationName(root.userId, root.authority);
            update(mEnv.getContext().getString(R.string.authentication_required, appName),
                    mEnv.getContext().getResources().getText(R.string.sign_in),
                    mEnv.getContext().getDrawable(R.drawable.ic_dialog_info));
+2 −1
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ import com.android.documentsui.base.Providers;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;
import com.android.documentsui.base.UserId;
import com.android.documentsui.clipping.ClipStore;
import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.clipping.UrisSupplier;
@@ -290,7 +291,7 @@ public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.Co
        }
        DocumentInfo doc = mModel.getDocument(selection.iterator().next());
        Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS);
        intent.setPackage(mProviders.getPackageName(doc.authority));
        intent.setPackage(mProviders.getPackageName(UserId.DEFAULT_USER, doc.authority));
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setData(doc.derivedUri);
        try {
+6 −3
Original line number Diff line number Diff line
@@ -34,9 +34,11 @@ import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Features;
import com.android.documentsui.base.Lookup;
import com.android.documentsui.base.LookupApplicationName;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;
import com.android.documentsui.base.UserId;
import com.android.documentsui.queries.SearchViewManager;

import java.util.List;
@@ -49,7 +51,7 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
    private final Context mContext;
    private final SelectionTracker<String> mSelectionManager;
    private final Lookup<String, Uri> mUriLookup;
    private final Lookup<String, String> mAppNameLookup;
    private final LookupApplicationName mAppNameLookup;

    public MenuManager(
            Features features,
@@ -58,7 +60,7 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
            DirectoryDetails dirDetails,
            Context context,
            SelectionTracker<String> selectionManager,
            Lookup<String, String> appNameLookup,
            LookupApplicationName appNameLookup,
            Lookup<String, Uri> uriLookup,
            IntSupplier filesCountSupplier) {

@@ -292,7 +294,8 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
            Resources res = mContext.getResources();
            String selectedModelId = mSelectionManager.getSelection().iterator().next();
            Uri selectedUri = mUriLookup.lookup(selectedModelId);
            String appName = mAppNameLookup.lookup(selectedUri.getAuthority());
            String appName = mAppNameLookup.getApplicationName(UserId.DEFAULT_USER,
                    selectedUri.getAuthority());
            String title = res.getString(R.string.menu_view_in_owner, appName);
            view.setTitle(title);
        }
+8 −6
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.documentsui.inspector;

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

import androidx.annotation.StringRes;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -26,16 +25,19 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.DocumentsContract;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import android.view.View;
import android.view.View.OnClickListener;

import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.VisibleForTesting;

import com.android.documentsui.DocumentsApplication;
import com.android.documentsui.ProviderExecutor;
import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.UserId;
import com.android.documentsui.inspector.actions.Action;
import com.android.documentsui.inspector.actions.ClearDefaultAppAction;
import com.android.documentsui.inspector.actions.ShowInProviderAction;
@@ -172,7 +174,7 @@ public final class InspectorController {
                    mShowProvider.init(
                        showProviderAction,
                        (view) -> {
                            showInProvider(docInfo.derivedUri);
                            showInProvider(docInfo.derivedUri, UserId.DEFAULT_USER);
                        });
                }

@@ -260,10 +262,10 @@ public final class InspectorController {
     *
     * @param DocumentInfo whose flag FLAG_SUPPORTS_SETTINGS is set.
     */
    public void showInProvider(Uri uri) {
    public void showInProvider(Uri uri, UserId userId) {

        Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS);
        intent.setPackage(mProviders.getPackageName(uri.getAuthority()));
        intent.setPackage(mProviders.getPackageName(userId, uri.getAuthority()));
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setData(uri);
        mContext.startActivity(intent);
Loading