diff options
Diffstat (limited to 'java/src/com')
5 files changed, 37 insertions, 19 deletions
diff --git a/java/src/com/android/intentresolver/ResolverListAdapter.java b/java/src/com/android/intentresolver/ResolverListAdapter.java index d1e8c15b..ab669f92 100644 --- a/java/src/com/android/intentresolver/ResolverListAdapter.java +++ b/java/src/com/android/intentresolver/ResolverListAdapter.java @@ -47,6 +47,7 @@ import androidx.annotation.WorkerThread; import com.android.intentresolver.chooser.DisplayResolveInfo; import com.android.intentresolver.chooser.TargetInfo; +import com.android.intentresolver.icons.LabelInfo; import com.android.intentresolver.icons.TargetDataLoader; import com.android.internal.annotations.VisibleForTesting; @@ -762,12 +763,12 @@ public class ResolverListAdapter extends BaseAdapter { } protected final void onLabelLoaded( - DisplayResolveInfo displayResolveInfo, CharSequence[] result) { + DisplayResolveInfo displayResolveInfo, LabelInfo result) { if (displayResolveInfo.hasDisplayLabel()) { return; } - displayResolveInfo.setDisplayLabel(result[0]); - displayResolveInfo.setExtendedInfo(result[1]); + displayResolveInfo.setDisplayLabel(result.getLabel()); + displayResolveInfo.setExtendedInfo(result.getSubLabel()); notifyDataSetChanged(); } diff --git a/java/src/com/android/intentresolver/icons/DefaultTargetDataLoader.kt b/java/src/com/android/intentresolver/icons/DefaultTargetDataLoader.kt index 646ca8e1..054fbe71 100644 --- a/java/src/com/android/intentresolver/icons/DefaultTargetDataLoader.kt +++ b/java/src/com/android/intentresolver/icons/DefaultTargetDataLoader.kt @@ -94,7 +94,7 @@ class DefaultTargetDataLoader( .executeOnExecutor(executor) } - override fun loadLabel(info: DisplayResolveInfo, callback: Consumer<Array<CharSequence?>>) { + override fun loadLabel(info: DisplayResolveInfo, callback: Consumer<LabelInfo>) { val taskId = nextTaskId.getAndIncrement() LoadLabelTask(context, info, isAudioCaptureDevice, presentationFactory) { result -> removeTask(taskId) @@ -108,8 +108,8 @@ class DefaultTargetDataLoader( if (!info.hasDisplayLabel()) { val result = LoadLabelTask.loadLabel(context, info, isAudioCaptureDevice, presentationFactory) - info.displayLabel = result[0] - info.extendedInfo = result[1] + info.displayLabel = result.label + info.extendedInfo = result.subLabel } } diff --git a/java/src/com/android/intentresolver/icons/LabelInfo.kt b/java/src/com/android/intentresolver/icons/LabelInfo.kt new file mode 100644 index 00000000..a9c4cd77 --- /dev/null +++ b/java/src/com/android/intentresolver/icons/LabelInfo.kt @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2023 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.intentresolver.icons + +class LabelInfo(val label: CharSequence?, val subLabel: CharSequence?) diff --git a/java/src/com/android/intentresolver/icons/LoadLabelTask.java b/java/src/com/android/intentresolver/icons/LoadLabelTask.java index b9a9d89d..6d443f78 100644 --- a/java/src/com/android/intentresolver/icons/LoadLabelTask.java +++ b/java/src/com/android/intentresolver/icons/LoadLabelTask.java @@ -28,16 +28,16 @@ import com.android.intentresolver.chooser.DisplayResolveInfo; import java.util.function.Consumer; -class LoadLabelTask extends AsyncTask<Void, Void, CharSequence[]> { +class LoadLabelTask extends AsyncTask<Void, Void, LabelInfo> { private final Context mContext; private final DisplayResolveInfo mDisplayResolveInfo; private final boolean mIsAudioCaptureDevice; protected final TargetPresentationGetter.Factory mPresentationFactory; - private final Consumer<CharSequence[]> mCallback; + private final Consumer<LabelInfo> mCallback; LoadLabelTask(Context context, DisplayResolveInfo dri, boolean isAudioCaptureDevice, TargetPresentationGetter.Factory presentationFactory, - Consumer<CharSequence[]> callback) { + Consumer<LabelInfo> callback) { mContext = context; mDisplayResolveInfo = dri; mIsAudioCaptureDevice = isAudioCaptureDevice; @@ -46,7 +46,7 @@ class LoadLabelTask extends AsyncTask<Void, Void, CharSequence[]> { } @Override - protected CharSequence[] doInBackground(Void... voids) { + protected LabelInfo doInBackground(Void... voids) { try { Trace.beginSection("app-label"); return loadLabel( @@ -56,7 +56,7 @@ class LoadLabelTask extends AsyncTask<Void, Void, CharSequence[]> { } } - static CharSequence[] loadLabel( + static LabelInfo loadLabel( Context context, DisplayResolveInfo displayResolveInfo, boolean isAudioCaptureDevice, @@ -79,21 +79,19 @@ class LoadLabelTask extends AsyncTask<Void, Void, CharSequence[]> { if (!hasRecordPermission) { // Doesn't have record permission, so warn the user - return new CharSequence[]{ + return new LabelInfo( pg.getLabel(), - context.getString(R.string.usb_device_resolve_prompt_warn) - }; + context.getString(R.string.usb_device_resolve_prompt_warn)); } } - return new CharSequence[]{ + return new LabelInfo( pg.getLabel(), - pg.getSubLabel() - }; + pg.getSubLabel()); } @Override - protected void onPostExecute(CharSequence[] result) { + protected void onPostExecute(LabelInfo result) { mCallback.accept(result); } } diff --git a/java/src/com/android/intentresolver/icons/TargetDataLoader.kt b/java/src/com/android/intentresolver/icons/TargetDataLoader.kt index 6186a5ab..07c62177 100644 --- a/java/src/com/android/intentresolver/icons/TargetDataLoader.kt +++ b/java/src/com/android/intentresolver/icons/TargetDataLoader.kt @@ -39,7 +39,7 @@ abstract class TargetDataLoader { ) /** Load target label */ - abstract fun loadLabel(info: DisplayResolveInfo, callback: Consumer<Array<CharSequence?>>) + abstract fun loadLabel(info: DisplayResolveInfo, callback: Consumer<LabelInfo>) /** Loads DisplayResolveInfo's display label synchronously, if needed */ abstract fun getOrLoadLabel(info: DisplayResolveInfo) |