Skip to content

Commit 2262331

Browse files
committed
Merge branch 'master' into district_api_model_swap
# Conflicts: # android/src/main/java/com/thebluealliance/androidclient/database/tables/DistrictsTable.java # android/src/main/java/com/thebluealliance/androidclient/database/tables/EventsTable.java # android/src/main/java/com/thebluealliance/androidclient/database/writers/DistrictListWriter.java # android/src/main/java/com/thebluealliance/androidclient/database/writers/DistrictWriter.java
2 parents 8625c72 + 3a6eef4 commit 2262331

File tree

8 files changed

+143
-26
lines changed

8 files changed

+143
-26
lines changed

android/src/main/java/com/thebluealliance/androidclient/database/ModelInflater.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.Gson;
66
import com.google.gson.reflect.TypeToken;
77
import com.thebluealliance.androidclient.TbaLogger;
8+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
89
import com.thebluealliance.androidclient.database.tables.AwardsTable;
910
import com.thebluealliance.androidclient.database.tables.DistrictTeamsTable;
1011
import com.thebluealliance.androidclient.database.tables.DistrictsTable;
@@ -308,8 +309,8 @@ public static EventTeam inflateEventTeam(Cursor data, Gson gson) {
308309
return eventTeam;
309310
}
310311

311-
public static District inflateDistrict(Cursor data) {
312-
District district = new District();
312+
public static DistrictDbModel inflateDistrict(Cursor data) {
313+
DistrictDbModel district = new DistrictDbModel();
313314
for (int i = 0; i < data.getColumnCount(); i++) {
314315
switch (data.getColumnName(i)) {
315316
case DistrictsTable.KEY:
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package com.thebluealliance.androidclient.database.model;
2+
3+
import android.content.ContentValues;
4+
5+
import com.google.gson.Gson;
6+
import com.thebluealliance.androidclient.database.TbaDatabaseModel;
7+
import com.thebluealliance.androidclient.database.tables.DistrictsTable;
8+
9+
import javax.annotation.Nullable;
10+
11+
import thebluealliance.api.model.District;
12+
13+
public class DistrictDbModel implements TbaDatabaseModel {
14+
15+
private String key;
16+
private String abbreviation;
17+
private Integer year;
18+
private String displayName;
19+
private Long lastModified;
20+
21+
public DistrictDbModel() {
22+
}
23+
24+
@Override
25+
public String getKey() {
26+
return key;
27+
}
28+
29+
public void setKey(String key) {
30+
this.key = key;
31+
}
32+
33+
public String getAbbreviation() {
34+
return abbreviation;
35+
}
36+
37+
public void setAbbreviation(String abbreviation) {
38+
this.abbreviation = abbreviation;
39+
}
40+
41+
@Nullable
42+
@Override
43+
public Long getLastModified() {
44+
return lastModified;
45+
}
46+
47+
@Override
48+
public void setLastModified(Long lastModified) {
49+
this.lastModified = lastModified;
50+
}
51+
52+
public Integer getYear() {
53+
return year;
54+
}
55+
56+
public void setYear(Integer year) {
57+
this.year = year;
58+
}
59+
60+
public String getDisplayName() {
61+
return displayName;
62+
}
63+
64+
public void setDisplayName(String displayName) {
65+
this.displayName = displayName;
66+
}
67+
68+
@Override
69+
public ContentValues getParams(Gson gson) {
70+
ContentValues params = new ContentValues();
71+
params.put(DistrictsTable.KEY, getKey());
72+
params.put(DistrictsTable.ABBREV, getAbbreviation());
73+
params.put(DistrictsTable.YEAR, getYear());
74+
params.put(DistrictsTable.NAME, getDisplayName());
75+
params.put(DistrictsTable.LAST_MODIFIED, getLastModified());
76+
return params;
77+
}
78+
79+
public static DistrictDbModel fromDistrict(District district) {
80+
DistrictDbModel model = new DistrictDbModel();
81+
model.setKey(district.getKey());
82+
model.setAbbreviation(district.getAbbreviation());
83+
model.setYear(district.getYear());
84+
model.setDisplayName(district.getDisplayName());
85+
return model;
86+
}
87+
88+
public District toDistrict() {
89+
District district = new District();
90+
district.setKey(getKey());
91+
district.setAbbreviation(getAbbreviation());
92+
district.setYear(getYear());
93+
district.setDisplayName(getDisplayName());
94+
return district;
95+
}
96+
}

android/src/main/java/com/thebluealliance/androidclient/database/tables/DistrictsTable.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
import com.thebluealliance.androidclient.database.Database;
88
import com.thebluealliance.androidclient.database.ModelInflater;
99
import com.thebluealliance.androidclient.database.ModelTable;
10+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
1011

11-
import thebluealliance.api.model.District;
12-
13-
public class DistrictsTable extends ModelTable<District> {
12+
public class DistrictsTable extends ModelTable<DistrictDbModel> {
1413

1514
public static final String KEY = "key",
1615
ABBREV = "abbrev",
@@ -38,7 +37,7 @@ public String getLastModifiedColumn() {
3837
}
3938

4039
@Override
41-
public District inflate(Cursor cursor) {
40+
public DistrictDbModel inflate(Cursor cursor) {
4241
return ModelInflater.inflateDistrict(cursor);
4342
}
4443
}

android/src/main/java/com/thebluealliance/androidclient/database/tables/EventsTable.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.thebluealliance.androidclient.database.Database;
1111
import com.thebluealliance.androidclient.database.ModelInflater;
1212
import com.thebluealliance.androidclient.database.ModelTable;
13+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
1314
import com.thebluealliance.androidclient.models.Event;
1415

1516
import java.util.ArrayList;
@@ -104,7 +105,7 @@ protected void insertCallback(Event event) {
104105

105106
if (event.getDistrict() != null) {
106107
District district = (District) event.getDistrict();
107-
mDistrictsTable.add(district, event.getLastModified());
108+
mDistrictsTable.add(DistrictDbModel.fromDistrict(district), event.getLastModified());
108109
}
109110
mDb.setTransactionSuccessful();
110111
} catch (Exception ex) {
@@ -183,8 +184,10 @@ public String getLastModifiedColumn() {
183184
public Event inflate(Cursor cursor) {
184185
Event event = ModelInflater.inflateEvent(cursor);
185186
if (event.getDistrictKey() != null) {
186-
District district = mDistrictsTable.get(event.getDistrictKey());
187-
event.setDistrict(district);
187+
DistrictDbModel dbDistrict = mDistrictsTable.get(event.getDistrictKey());
188+
if (dbDistrict != null) {
189+
event.setDistrict(dbDistrict.toDistrict());
190+
}
188191
}
189192
return event;
190193
}

android/src/main/java/com/thebluealliance/androidclient/database/writers/DistrictListWriter.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
import com.google.common.collect.ImmutableList;
44
import com.thebluealliance.androidclient.database.Database;
5+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
56

67
import java.util.List;
8+
import java.util.stream.Collectors;
79

810
import javax.inject.Inject;
911

12+
import androidx.annotation.WorkerThread;
13+
1014
import androidx.annotation.WorkerThread;
1115
import thebluealliance.api.model.District;
1216

@@ -19,6 +23,9 @@ public DistrictListWriter(Database db) {
1923
@Override
2024
@WorkerThread
2125
public void write(List<District> districts, Long lastModified) {
22-
mDb.getDistrictsTable().add(ImmutableList.copyOf(districts), lastModified);
26+
List<DistrictDbModel> models = districts.stream()
27+
.map(DistrictDbModel::fromDistrict)
28+
.collect(Collectors.toList());
29+
mDb.getDistrictsTable().add(ImmutableList.copyOf(models), lastModified);
2330
}
2431
}

android/src/main/java/com/thebluealliance/androidclient/database/writers/DistrictWriter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.thebluealliance.androidclient.database.writers;
22

33
import com.thebluealliance.androidclient.database.Database;
4+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
45

56
import javax.inject.Inject;
67

@@ -16,6 +17,6 @@ public DistrictWriter(Database db) {
1617
@Override
1718
@WorkerThread
1819
public void write(District district, Long lastModified) {
19-
mDb.getDistrictsTable().add(district, lastModified);
20+
mDb.getDistrictsTable().add(DistrictDbModel.fromDistrict(district), lastModified);
2021
}
2122
}

android/src/main/java/com/thebluealliance/androidclient/datafeed/APICache.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.google.gson.Gson;
77
import com.google.gson.JsonElement;
88
import com.thebluealliance.androidclient.database.Database;
9+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
910
import com.thebluealliance.androidclient.database.tables.AwardsTable;
1011
import com.thebluealliance.androidclient.database.tables.DistrictTeamsTable;
1112
import com.thebluealliance.androidclient.database.tables.DistrictsTable;
@@ -29,6 +30,7 @@
2930
import java.util.ArrayList;
3031
import java.util.Calendar;
3132
import java.util.List;
33+
import java.util.stream.Collectors;
3234

3335
import javax.inject.Inject;
3436
import javax.inject.Singleton;
@@ -360,7 +362,7 @@ public Observable<List<Award>> fetchEventAwards(String eventKey) {
360362
public Observable<District> fetchDistrict(String districtKey) {
361363
return Observable.create((observer) -> {
362364
try {
363-
District district = mDb.getDistrictsTable().get(districtKey);
365+
District district = mDb.getDistrictsTable().get(districtKey).toDistrict();
364366
observer.onNext(district);
365367
observer.onCompleted();
366368
} catch (Exception e) {
@@ -373,8 +375,11 @@ public Observable<List<District>> fetchDistrictList(int year) {
373375
return Observable.create((observer) -> {
374376
try {
375377
String where = String.format("%1$s = ?", DistrictsTable.YEAR);
376-
List<District> districts = mDb.getDistrictsTable()
378+
List<DistrictDbModel> districtModels = mDb.getDistrictsTable()
377379
.getForQuery(null, where, new String[]{Integer.toString(year)});
380+
List<District> districts = districtModels.stream()
381+
.map(DistrictDbModel::toDistrict)
382+
.collect(Collectors.toList());
378383
observer.onNext(districts);
379384
observer.onCompleted();
380385
} catch (Exception e) {

android/src/test/java/com/thebluealliance/androidclient/database/tables/DistrictsTableTest.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
package com.thebluealliance.androidclient.database.tables;
22

3-
import static org.junit.Assert.assertEquals;
4-
import static org.junit.Assert.assertNotNull;
5-
import static org.mockito.Mockito.spy;
6-
73
import android.database.sqlite.SQLiteDatabase;
84

9-
import androidx.test.ext.junit.runners.AndroidJUnit4;
10-
115
import com.google.common.collect.ImmutableList;
126
import com.google.gson.Gson;
137
import com.thebluealliance.androidclient.database.Database;
148
import com.thebluealliance.androidclient.database.DbTableTestDriver;
9+
import com.thebluealliance.androidclient.database.model.DistrictDbModel;
1510
import com.thebluealliance.androidclient.datafeed.framework.ModelMaker;
1611
import com.thebluealliance.androidclient.datafeed.maps.AddDistrictKeys;
1712
import com.thebluealliance.androidclient.di.TBAAndroidModule;
@@ -23,11 +18,17 @@
2318

2419
import java.util.List;
2520

21+
import androidx.test.ext.junit.runners.AndroidJUnit4;
22+
23+
import static org.junit.Assert.assertEquals;
24+
import static org.junit.Assert.assertNotNull;
25+
import static org.mockito.Mockito.spy;
26+
2627
@RunWith(AndroidJUnit4.class)
2728
public class DistrictsTableTest {
2829
private Gson mGson;
2930
private DistrictsTable mTable;
30-
private List<District> mDistricts;
31+
private List<DistrictDbModel> mDistricts;
3132

3233
@Before
3334
public void setUp() {
@@ -36,8 +37,12 @@ public void setUp() {
3637
mGson = TBAAndroidModule.getGson();
3738
mTable = spy(new DistrictsTable(db, mGson));
3839
AddDistrictKeys keyAdder = new AddDistrictKeys(2015);
39-
mDistricts = ModelMaker.getModelList(District.class, "2015_districts");
40-
keyAdder.call(mDistricts);
40+
List<District> districts = ModelMaker.getModelList(District.class, "2015_districts");
41+
mDistricts = districts.stream()
42+
.map(DistrictDbModel::fromDistrict)
43+
.toList();
44+
45+
keyAdder.call(districts);
4146
}
4247

4348
@Test
@@ -57,10 +62,10 @@ public void testAddAndGetList() {
5762

5863
@Test
5964
public void testUpdate() {
60-
District result = DbTableTestDriver.testUpdate(mTable,
61-
mDistricts.get(0),
62-
district -> district.setDisplayName("Test Dist"),
63-
mGson);
65+
DistrictDbModel result = DbTableTestDriver.testUpdate(mTable,
66+
mDistricts.get(0),
67+
district -> district.setDisplayName("Test Dist"),
68+
mGson);
6469
assertNotNull(result);
6570
assertEquals("Test Dist", result.getDisplayName());
6671
}

0 commit comments

Comments
 (0)