summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorAnton Hansson <hansson@google.com>2019-03-28 10:24:59 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-03-28 10:24:59 +0000
commit98170a36dd4bf5a40545c000596b60bc7947bfa8 (patch)
treef8eebeadbabf10e6023f49355f985fd15860523a /core/java
parentb44f61e98fdce9fadc1dfbcb13e93717701dafb6 (diff)
parenta04d81ef477c3adcfcd06a9f1356b3190318c441 (diff)
Merge "Make TranslatingCursor deal with dupe column names"
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/database/TranslatingCursor.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/core/java/android/database/TranslatingCursor.java b/core/java/android/database/TranslatingCursor.java
index d9165b4c1008..35cbdc764819 100644
--- a/core/java/android/database/TranslatingCursor.java
+++ b/core/java/android/database/TranslatingCursor.java
@@ -22,6 +22,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.os.CancellationSignal;
+import android.util.ArraySet;
import com.android.internal.util.ArrayUtils;
@@ -59,7 +60,7 @@ public class TranslatingCursor extends CrossProcessCursorWrapper {
private final boolean mDropLast;
private final int mAuxiliaryColumnIndex;
- private final int[] mTranslateColumnIndices;
+ private final ArraySet<Integer> mTranslateColumnIndices;
public TranslatingCursor(@NonNull Cursor cursor, @NonNull Config config,
@NonNull Translator translator, boolean dropLast) {
@@ -70,9 +71,12 @@ public class TranslatingCursor extends CrossProcessCursorWrapper {
mDropLast = dropLast;
mAuxiliaryColumnIndex = cursor.getColumnIndexOrThrow(config.auxiliaryColumn);
- mTranslateColumnIndices = new int[config.translateColumns.length];
- for (int i = 0; i < mTranslateColumnIndices.length; ++i) {
- mTranslateColumnIndices[i] = cursor.getColumnIndex(config.translateColumns[i]);
+ mTranslateColumnIndices = new ArraySet<>();
+ for (int i = 0; i < cursor.getColumnCount(); ++i) {
+ String columnName = cursor.getColumnName(i);
+ if (ArrayUtils.contains(config.translateColumns, columnName)) {
+ mTranslateColumnIndices.add(i);
+ }
}
}