summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2023-10-16 20:12:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-10-16 20:12:35 +0000
commit8a3d1eaadf52b713916517797e561e27421f67cf (patch)
tree5f552bb8e9d1b539aceb68c6b89c0b6c14c33323 /java
parent6f76017966b3110d3a83ca1a91fadf56beed5615 (diff)
parent8ea89dd1b1a192710340d58eae28a003f63c804c (diff)
Merge "Replace array of strings with a class" into main
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/intentresolver/ResolverListAdapter.java7
-rw-r--r--java/src/com/android/intentresolver/icons/DefaultTargetDataLoader.kt6
-rw-r--r--java/src/com/android/intentresolver/icons/LabelInfo.kt19
-rw-r--r--java/src/com/android/intentresolver/icons/LoadLabelTask.java22
-rw-r--r--java/src/com/android/intentresolver/icons/TargetDataLoader.kt2
-rw-r--r--java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java3
-rw-r--r--java/tests/src/com/android/intentresolver/v2/ResolverWrapperActivity.java3
7 files changed, 41 insertions, 21 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)
diff --git a/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java b/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
index fbcfcd35..7ffb90ce 100644
--- a/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
@@ -38,6 +38,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.SelectableTargetInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.emptystate.CrossProfileIntentsChecker;
+import com.android.intentresolver.icons.LabelInfo;
import com.android.intentresolver.icons.TargetDataLoader;
import java.util.List;
@@ -263,7 +264,7 @@ public class ResolverWrapperActivity extends ResolverActivity {
@Override
public void loadLabel(
@NonNull DisplayResolveInfo info,
- @NonNull Consumer<CharSequence[]> callback) {
+ @NonNull Consumer<LabelInfo> callback) {
mLabelIdlingResource.increment();
mTargetDataLoader.loadLabel(
info,
diff --git a/java/tests/src/com/android/intentresolver/v2/ResolverWrapperActivity.java b/java/tests/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
index 610d031e..0fb77457 100644
--- a/java/tests/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
@@ -42,6 +42,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.SelectableTargetInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.emptystate.CrossProfileIntentsChecker;
+import com.android.intentresolver.icons.LabelInfo;
import com.android.intentresolver.icons.TargetDataLoader;
import java.util.List;
@@ -267,7 +268,7 @@ public class ResolverWrapperActivity extends ResolverActivity {
@Override
public void loadLabel(
@NonNull DisplayResolveInfo info,
- @NonNull Consumer<CharSequence[]> callback) {
+ @NonNull Consumer<LabelInfo> callback) {
mLabelIdlingResource.increment();
mTargetDataLoader.loadLabel(
info,