Merge "Rank cards in descending score when loading from db."
This commit is contained in:
committed by
Android (Google) Code Review
commit
0d9e4a4b0e
@@ -201,7 +201,7 @@ public class CardDatabaseHelper extends SQLiteOpenHelper {
|
|||||||
final String selection = CardColumns.CARD_DISMISSED + "=0";
|
final String selection = CardColumns.CARD_DISMISSED + "=0";
|
||||||
Cursor cursor = db.query(CARD_TABLE, null /* columns */, selection,
|
Cursor cursor = db.query(CARD_TABLE, null /* columns */, selection,
|
||||||
null /* selectionArgs */, null /* groupBy */, null /* having */,
|
null /* selectionArgs */, null /* groupBy */, null /* having */,
|
||||||
null /* orderBy */);
|
CardColumns.SCORE + " DESC" /* orderBy */);
|
||||||
return cursor;
|
return cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,10 +18,12 @@ package com.android.settings.homepage.contextualcards;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
|
|
||||||
|
import com.android.settings.intelligence.ContextualCardProto;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
@@ -30,6 +32,9 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
public class CardDatabaseHelperTest {
|
public class CardDatabaseHelperTest {
|
||||||
|
|
||||||
@@ -80,4 +85,38 @@ public class CardDatabaseHelperTest {
|
|||||||
assertThat(columnNames).isEqualTo(expectedNames);
|
assertThat(columnNames).isEqualTo(expectedNames);
|
||||||
cursor.close();
|
cursor.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getContextualCards_shouldSortByScore() {
|
||||||
|
insertFakeCard(mDatabase, "card1", 1, "uri1");
|
||||||
|
insertFakeCard(mDatabase, "card2", 0, "uri2");
|
||||||
|
insertFakeCard(mDatabase, "card3", 10, "uri3");
|
||||||
|
// Should sort as 3,1,2
|
||||||
|
try (final Cursor cursor = CardDatabaseHelper.getInstance(mContext).getContextualCards()) {
|
||||||
|
assertThat(cursor.getCount()).isEqualTo(3);
|
||||||
|
final List<ContextualCard> cards = new ArrayList<>();
|
||||||
|
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
|
||||||
|
cards.add(new ContextualCard(cursor));
|
||||||
|
}
|
||||||
|
assertThat(cards.get(0).getName()).isEqualTo("card3");
|
||||||
|
assertThat(cards.get(1).getName()).isEqualTo("card1");
|
||||||
|
assertThat(cards.get(2).getName()).isEqualTo("card2");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void insertFakeCard(SQLiteDatabase db, String name, double score, String uri) {
|
||||||
|
final ContentValues value = new ContentValues();
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.NAME, name);
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.SCORE, score);
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.SLICE_URI, uri);
|
||||||
|
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.TYPE, ContextualCard.CardType.SLICE);
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.CATEGORY,
|
||||||
|
ContextualCardProto.ContextualCard.Category.DEFAULT.getNumber());
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.PACKAGE_NAME,
|
||||||
|
RuntimeEnvironment.application.getPackageName());
|
||||||
|
value.put(CardDatabaseHelper.CardColumns.APP_VERSION, 1);
|
||||||
|
|
||||||
|
db.insert(CardDatabaseHelper.CARD_TABLE, null, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user