Loading src/com/android/documentsui/base/LookupApplicationName.java 0 → 100644 +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); } src/com/android/documentsui/dirlist/Message.java +4 −6 Original line number Diff line number Diff line Loading @@ -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; /** Loading Loading @@ -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)); Loading src/com/android/documentsui/files/ActionHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading src/com/android/documentsui/files/MenuManager.java +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading @@ -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) { Loading Loading @@ -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); } Loading src/com/android/documentsui/inspector/InspectorController.java +8 −6 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -172,7 +174,7 @@ public final class InspectorController { mShowProvider.init( showProviderAction, (view) -> { showInProvider(docInfo.derivedUri); showInProvider(docInfo.derivedUri, UserId.DEFAULT_USER); }); } Loading Loading @@ -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 Loading
src/com/android/documentsui/base/LookupApplicationName.java 0 → 100644 +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); }
src/com/android/documentsui/dirlist/Message.java +4 −6 Original line number Diff line number Diff line Loading @@ -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; /** Loading Loading @@ -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)); Loading
src/com/android/documentsui/files/ActionHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading
src/com/android/documentsui/files/MenuManager.java +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading @@ -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) { Loading Loading @@ -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); } Loading
src/com/android/documentsui/inspector/InspectorController.java +8 −6 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -172,7 +174,7 @@ public final class InspectorController { mShowProvider.init( showProviderAction, (view) -> { showInProvider(docInfo.derivedUri); showInProvider(docInfo.derivedUri, UserId.DEFAULT_USER); }); } Loading Loading @@ -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