diff options
| author | Anton Hansson <hansson@google.com> | 2019-03-28 10:24:59 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-03-28 10:24:59 +0000 |
| commit | 98170a36dd4bf5a40545c000596b60bc7947bfa8 (patch) | |
| tree | f8eebeadbabf10e6023f49355f985fd15860523a /core/java | |
| parent | b44f61e98fdce9fadc1dfbcb13e93717701dafb6 (diff) | |
| parent | a04d81ef477c3adcfcd06a9f1356b3190318c441 (diff) | |
Merge "Make TranslatingCursor deal with dupe column names"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/database/TranslatingCursor.java | 12 |
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); + } } } |
