Skip to content

Commit 66e195d

Browse files
authored
#3482 Use Room in Structured Data branch - remove unused code (#3483)
* #3482 Use Room in Structured Data branch - remove unused code * #3482 Use Room in Structured Data branch - fix unit test compilation * #3482 Use Room in Structured Data branch - add kdoc
1 parent 942cef5 commit 66e195d

20 files changed

+131
-754
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ dependencies {
107107
//Room
108108
def room_version= '2.2.3'
109109
implementation "androidx.room:room-runtime:$room_version"
110+
implementation "androidx.room:room-ktx:$room_version"
110111
kapt "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
111112
implementation 'com.squareup.retrofit2:retrofit:2.7.1'
112113
implementation "androidx.room:room-rxjava2:$room_version"

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,7 @@
183183
android:authorities="${applicationId}.categories.contentprovider"
184184
android:exported="false"
185185
android:label="@string/provider_categories"
186-
android:syncable="false" />
187-
188-
<provider
189-
android:authorities="${applicationId}.depicts.contentprovider"
190-
android:name=".upload.structure.depictions.DepictsContentProvider"
191-
android:exported="false"
192-
android:label="@string/provider_depictions"
193-
android:syncable="false"/>
186+
android:syncable="false" />
194187

195188
<provider
196189
android:name=".explore.recentsearches.RecentSearchesContentProvider"

app/src/main/java/fr/free/nrw/commons/CommonsApplication.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import android.app.NotificationManager;
77
import android.content.Context;
88
import android.database.sqlite.SQLiteDatabase;
9-
import android.database.sqlite.SQLiteException;
109
import android.os.Build;
1110
import android.os.Process;
1211
import android.util.Log;
@@ -16,10 +15,7 @@
1615
import com.facebook.drawee.backends.pipeline.Fresco;
1716
import com.facebook.imagepipeline.core.ImagePipeline;
1817
import com.facebook.imagepipeline.core.ImagePipelineConfig;
19-
import com.facebook.imagepipeline.producers.Consumer;
20-
import com.facebook.imagepipeline.producers.FetchState;
2118
import com.facebook.imagepipeline.producers.NetworkFetcher;
22-
import com.facebook.imagepipeline.producers.ProducerContext;
2319
import com.mapbox.mapboxsdk.Mapbox;
2420
import com.squareup.leakcanary.LeakCanary;
2521
import com.squareup.leakcanary.RefWatcher;
@@ -45,15 +41,14 @@
4541
import fr.free.nrw.commons.category.CategoryDao;
4642
import fr.free.nrw.commons.concurrency.BackgroundPoolExceptionHandler;
4743
import fr.free.nrw.commons.concurrency.ThreadPoolService;
44+
import fr.free.nrw.commons.contributions.ContributionDao;
4845
import fr.free.nrw.commons.data.DBOpenHelper;
49-
import fr.free.nrw.commons.db.AppDatabase;
5046
import fr.free.nrw.commons.di.ApplicationlessInjection;
5147
import fr.free.nrw.commons.kvstore.JsonKvStore;
5248
import fr.free.nrw.commons.logging.FileLoggingTree;
5349
import fr.free.nrw.commons.logging.LogUtils;
5450
import fr.free.nrw.commons.settings.Prefs;
5551
import fr.free.nrw.commons.upload.FileUtils;
56-
import fr.free.nrw.commons.upload.structure.depictions.DepictionDao;
5752
import fr.free.nrw.commons.utils.ConfigUtils;
5853
import io.reactivex.android.schedulers.AndroidSchedulers;
5954
import io.reactivex.internal.functions.Functions;
@@ -129,8 +124,7 @@ public AppLanguageLookUpTable getLanguageLookUpTable() {
129124
return languageLookUpTable;
130125
}
131126

132-
@Inject
133-
AppDatabase appDatabase;
127+
@Inject ContributionDao contributionDao;
134128

135129
/**
136130
* Used to declare and initialize various components and dependencies
@@ -312,9 +306,8 @@ private void updateAllDatabases() {
312306
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
313307

314308
CategoryDao.Table.onDelete(db);
315-
DepictionDao.Table.onDelete(db);
316309
dbOpenHelper.deleteTable(db,CONTRIBUTIONS_TABLE);//Delete the contributions table in the existing db on older versions
317-
appDatabase.getContributionDao().deleteAll();
310+
contributionDao.deleteAll();
318311
BookmarkPicturesDao.Table.onDelete(db);
319312
BookmarkLocationsDao.Table.onDelete(db);
320313
}

app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao;
1010
import fr.free.nrw.commons.category.CategoryDao;
1111
import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao;
12-
import fr.free.nrw.commons.upload.structure.depictions.DepictionDao;
1312

1413
public class DBOpenHelper extends SQLiteOpenHelper {
1514

@@ -29,7 +28,6 @@ public DBOpenHelper(Context context) {
2928
@Override
3029
public void onCreate(SQLiteDatabase sqLiteDatabase) {
3130
CategoryDao.Table.onCreate(sqLiteDatabase);
32-
DepictionDao.Table.onCreate(sqLiteDatabase);
3331
BookmarkPicturesDao.Table.onCreate(sqLiteDatabase);
3432
BookmarkLocationsDao.Table.onCreate(sqLiteDatabase);
3533
RecentSearchesDao.Table.onCreate(sqLiteDatabase);
@@ -38,7 +36,6 @@ public void onCreate(SQLiteDatabase sqLiteDatabase) {
3836
@Override
3937
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int from, int to) {
4038
CategoryDao.Table.onUpdate(sqLiteDatabase, from, to);
41-
DepictionDao.Table.onUpdate(sqLiteDatabase, from, to);
4239
BookmarkPicturesDao.Table.onUpdate(sqLiteDatabase, from, to);
4340
BookmarkLocationsDao.Table.onUpdate(sqLiteDatabase, from, to);
4441
RecentSearchesDao.Table.onUpdate(sqLiteDatabase, from, to);

app/src/main/java/fr/free/nrw/commons/db/AppDatabase.java

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package fr.free.nrw.commons.db
2+
3+
import androidx.room.Database
4+
import androidx.room.RoomDatabase
5+
import androidx.room.TypeConverters
6+
import fr.free.nrw.commons.contributions.Contribution
7+
import fr.free.nrw.commons.contributions.ContributionDao
8+
9+
/**
10+
* The database for accessing the respective DAOs
11+
*
12+
*/
13+
@Database(entities = [Contribution::class], version = 1, exportSchema = false)
14+
@TypeConverters(Converters::class)
15+
abstract class AppDatabase : RoomDatabase() {
16+
abstract fun contributionDao(): ContributionDao
17+
}

app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ public class CommonsApplicationModule {
5555
private Context applicationContext;
5656
public static final String IO_THREAD="io_thread";
5757
public static final String MAIN_THREAD="main_thread";
58-
private AppDatabase appDatabase;
5958

6059
public CommonsApplicationModule(Context applicationContext) {
6160
this.applicationContext = applicationContext;
@@ -247,12 +246,11 @@ public QuadTree providesQuadTres() {
247246
@Provides
248247
@Singleton
249248
public AppDatabase provideAppDataBase() {
250-
appDatabase=Room.databaseBuilder(applicationContext, AppDatabase.class, "commons_room.db").build();
251-
return appDatabase;
249+
return Room.databaseBuilder(applicationContext, AppDatabase.class, "commons_room.db").build();
252250
}
253251

254252
@Provides
255-
public ContributionDao providesContributionsDao() {
256-
return appDatabase.getContributionDao();
253+
public ContributionDao providesContributionsDao(AppDatabase appDatabase) {
254+
return appDatabase.contributionDao();
257255
}
258-
}
256+
}

app/src/main/java/fr/free/nrw/commons/di/ContentProviderBuilderModule.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,25 @@
66
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesContentProvider;
77
import fr.free.nrw.commons.category.CategoryContentProvider;
88
import fr.free.nrw.commons.explore.recentsearches.RecentSearchesContentProvider;
9-
import fr.free.nrw.commons.upload.structure.depictions.DepictsContentProvider;
109

1110
/**
1211
* This Class Represents the Module for dependency injection (using dagger)
1312
* so, if a developer needs to add a new ContentProvider to the commons app
14-
* then that must be mentioned here to inject the dependencies
13+
* then that must be mentioned here to inject the dependencies
1514
*/
1615
@Module
17-
@SuppressWarnings({"WeakerAccess", "unused"})
16+
@SuppressWarnings({ "WeakerAccess", "unused" })
1817
public abstract class ContentProviderBuilderModule {
1918

20-
@ContributesAndroidInjector
21-
abstract CategoryContentProvider bindCategoryContentProvider();
19+
@ContributesAndroidInjector
20+
abstract CategoryContentProvider bindCategoryContentProvider();
2221

23-
@ContributesAndroidInjector
24-
abstract DepictsContentProvider bindDepictsContentProvider();
22+
@ContributesAndroidInjector
23+
abstract RecentSearchesContentProvider bindRecentSearchesContentProvider();
2524

26-
@ContributesAndroidInjector
27-
abstract RecentSearchesContentProvider bindRecentSearchesContentProvider();
28-
29-
@ContributesAndroidInjector
30-
abstract BookmarkPicturesContentProvider bindBookmarkContentProvider();
31-
32-
@ContributesAndroidInjector
33-
abstract BookmarkLocationsContentProvider bindBookmarkLocationContentProvider();
25+
@ContributesAndroidInjector
26+
abstract BookmarkPicturesContentProvider bindBookmarkContentProvider();
3427

28+
@ContributesAndroidInjector
29+
abstract BookmarkLocationsContentProvider bindBookmarkLocationContentProvider();
3530
}

app/src/main/java/fr/free/nrw/commons/explore/depictions/DepictsClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public Observable<DepictedItem> searchForDepictions(String query, int limit, int
5858
String.valueOf(offset)
5959
)
6060
.flatMap(depictSearchResponse ->Observable.fromIterable(depictSearchResponse.getSearch()))
61-
.map(depictSearchItem -> new DepictedItem(depictSearchItem.getLabel(), depictSearchItem.getDescription(), "", false, depictSearchItem.getId()));
61+
.map(DepictedItem::new);
6262
}
6363

6464
/**

app/src/main/java/fr/free/nrw/commons/repository/UploadRemoteDataSource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import fr.free.nrw.commons.upload.UploadModel.UploadItem;
2222
import fr.free.nrw.commons.upload.structure.depictions.DepictModel;
2323
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem;
24-
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem;
2524
import io.reactivex.Observable;
2625
import io.reactivex.Single;
2726

@@ -230,8 +229,8 @@ public List<DepictedItem> getSelectedDepictions() {
230229
* get all depictions
231230
*/
232231

233-
public Observable<DepictedItem> searchAllEntities(String query, List<String> imageTitleList) {
234-
return depictModel.searchAllEntities(query, imageTitleList);
232+
public Observable<DepictedItem> searchAllEntities(String query) {
233+
return depictModel.searchAllEntities(query);
235234
}
236235

237236
public void setSelectedDepictions(List<String> selectedDepictions) {

app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,12 +287,11 @@ public List<DepictedItem> getSelectedDepictions() {
287287
* Search all depictions from
288288
*
289289
* @param query
290-
* @param imageTitleList
291290
* @return
292291
*/
293292

294-
public Observable<DepictedItem> searchAllEntities(String query, List<String> imageTitleList) {
295-
return remoteDataSource.searchAllEntities(query, imageTitleList);
293+
public Observable<DepictedItem> searchAllEntities(String query) {
294+
return remoteDataSource.searchAllEntities(query);
296295
}
297296

298297
public List<String> getDepictionsEntityIdList() {

app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsPresenter.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
44
import static fr.free.nrw.commons.di.CommonsApplicationModule.MAIN_THREAD;
55

6-
import android.util.Log;
7-
86
import fr.free.nrw.commons.explore.depictions.DepictsClient;
97
import fr.free.nrw.commons.repository.UploadRepository;
108
import fr.free.nrw.commons.upload.UploadModel;
@@ -85,7 +83,6 @@ public void onDepictItemClicked(DepictedItem depictedItem) {
8583
@Override
8684
public void searchForDepictions(String query) {
8785
List<DepictedItem> depictedItemList = new ArrayList<>();
88-
List<String> imageTitleList = getImageTitleList();
8986
Observable<DepictedItem> distinctDepictsObservable = Observable
9087
.fromIterable(repository.getSelectedDepictions())
9188
.subscribeOn(ioScheduler)
@@ -97,27 +94,22 @@ public void searchForDepictions(String query) {
9794
})
9895
.observeOn(ioScheduler)
9996
.concatWith(
100-
repository.searchAllEntities(query, imageTitleList)
97+
repository.searchAllEntities(query)
10198
)
10299
.distinct();
103100

104101
Disposable searchDepictsDisposable = distinctDepictsObservable
105102
.observeOn(mainThreadScheduler)
106103
.subscribe(
107-
s -> depictedItemList.add(s),
104+
depictedItemList::add,
108105
Timber::e,
109106
() -> {
110107
view.showProgress(false);
111108

112-
if (null == depictedItemList || depictedItemList.isEmpty()) {
109+
if (depictedItemList.isEmpty()) {
113110
view.showError(true);
114111
} else {
115112
view.showError(false);
116-
//Understand this is shitty, but yes, doing it the other way is even worse and adapter positions can not be trusted
117-
for (int position = 0; position < depictedItemList.size();
118-
position++) {
119-
//depictedItemList.get(position).setPosition(position);
120-
}
121113
view.setDepictsList(depictedItemList);
122114
}
123115
}
@@ -156,18 +148,4 @@ public void fetchThumbnailForEntityId(String entityId, int position) {
156148
view.onImageUrlFetched(response,position);
157149
}));
158150
}
159-
160-
/**
161-
* Returns image title list from UploadItem
162-
* @return
163-
*/
164-
private List<String> getImageTitleList() {
165-
List<String> titleList = new ArrayList<>();
166-
for (UploadModel.UploadItem item : repository.getUploads()) {
167-
if (item.getTitle().isSet()) {
168-
titleList.add(item.getTitle().toString());
169-
}
170-
}
171-
return titleList;
172-
}
173151
}

0 commit comments

Comments
 (0)