Skip to content

Commit 9e0b8f0

Browse files
* Added Room Dependency * Shifted ContributionsDao to use RoomDB
1 parent d26b436 commit 9e0b8f0

27 files changed

+315
-871
lines changed

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ dependencies {
102102

103103
//swipe_layout
104104
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
105+
106+
//Room
107+
def room_version= '2.2.3'
108+
implementation "androidx.room:room-runtime:$room_version"
109+
kapt "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
105110
}
106111

107112
android {

app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -150,18 +150,6 @@
150150
android:name="android.accounts.AccountAuthenticator"
151151
android:resource="@xml/authenticator" />
152152
</service>
153-
<service
154-
android:name=".contributions.ContributionsSyncService"
155-
android:exported="true"
156-
android:process=":sync">
157-
<intent-filter>
158-
<action android:name="android.content.SyncAdapter" />
159-
</intent-filter>
160-
161-
<meta-data
162-
android:name="android.content.SyncAdapter"
163-
android:resource="@xml/contributions_sync_adapter" />
164-
</service>
165153

166154
<service
167155
android:name="org.acra.sender.SenderService"
@@ -177,12 +165,6 @@
177165
android:name="android.support.FILE_PROVIDER_PATHS"
178166
android:resource="@xml/provider_paths" />
179167
</provider>
180-
<provider
181-
android:name=".contributions.ContributionsContentProvider"
182-
android:authorities="${applicationId}.contributions.contentprovider"
183-
android:exported="false"
184-
android:label="@string/provider_contributions"
185-
android:syncable="true" />
186168

187169
<provider
188170
android:name=".category.CategoryContentProvider"

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
import fr.free.nrw.commons.category.CategoryDao;
3838
import fr.free.nrw.commons.concurrency.BackgroundPoolExceptionHandler;
3939
import fr.free.nrw.commons.concurrency.ThreadPoolService;
40-
import fr.free.nrw.commons.contributions.ContributionDao;
4140
import fr.free.nrw.commons.data.DBOpenHelper;
41+
import fr.free.nrw.commons.db.AppDatabase;
4242
import fr.free.nrw.commons.di.ApplicationlessInjection;
4343
import fr.free.nrw.commons.kvstore.JsonKvStore;
4444
import fr.free.nrw.commons.logging.FileLoggingTree;
@@ -114,6 +114,9 @@ public AppLanguageLookUpTable getLanguageLookUpTable() {
114114
return languageLookUpTable;
115115
}
116116

117+
@Inject
118+
AppDatabase appDatabase;
119+
117120
/**
118121
* Used to declare and initialize various components and dependencies
119122
*/
@@ -277,7 +280,7 @@ private void updateAllDatabases() {
277280
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
278281

279282
CategoryDao.Table.onDelete(db);
280-
ContributionDao.Table.onDelete(db);
283+
appDatabase.getContributionDao().deleteAll();
281284
BookmarkPicturesDao.Table.onDelete(db);
282285
BookmarkLocationsDao.Table.onDelete(db);
283286
}

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

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
import androidx.annotation.NonNull;
88
import androidx.annotation.Nullable;
9+
import androidx.room.Entity;
10+
import androidx.room.PrimaryKey;
911

1012
import org.apache.commons.lang3.StringUtils;
1113
import org.wikipedia.dataclient.mwapi.MwQueryPage;
@@ -26,6 +28,7 @@
2628
import fr.free.nrw.commons.utils.CommonsDateUtil;
2729
import fr.free.nrw.commons.utils.MediaDataExtractorUtil;
2830

31+
@Entity
2932
public class Media implements Parcelable {
3033

3134
public static final Media EMPTY = new Media("");
@@ -42,25 +45,27 @@ public Media[] newArray(int i) {
4245
};
4346

4447
// Primary metadata fields
45-
protected Uri localUri;
46-
private String thumbUrl;
47-
protected String imageUrl;
48-
protected String filename;
49-
protected String description; // monolingual description on input...
50-
protected String discussion;
51-
protected long dataLength;
52-
protected Date dateCreated;
53-
protected @Nullable Date dateUploaded;
54-
protected int width;
55-
protected int height;
56-
protected String license;
57-
protected String licenseUrl;
58-
protected String creator;
59-
protected ArrayList<String> categories; // as loaded at runtime?
60-
protected boolean requestedDeletion;
61-
private Map<String, String> descriptions; // multilingual descriptions as loaded
62-
private HashMap<String, Object> tags = new HashMap<>();
63-
private @Nullable LatLng coordinates;
48+
@PrimaryKey
49+
@NonNull
50+
public Uri localUri;
51+
public String thumbUrl;
52+
public String imageUrl;
53+
public String filename;
54+
public String description; // monolingual description on input...
55+
public String discussion;
56+
long dataLength;
57+
public Date dateCreated;
58+
@Nullable public Date dateUploaded;
59+
public int width;
60+
public int height;
61+
public String license;
62+
public String licenseUrl;
63+
public String creator;
64+
public ArrayList<String> categories; // as loaded at runtime?
65+
public boolean requestedDeletion;
66+
public HashMap<String, String> descriptions; // multilingual descriptions as loaded
67+
public HashMap<String, String> tags = new HashMap<>();
68+
@Nullable public LatLng coordinates;
6469

6570
/**
6671
* Provides local constructor
@@ -118,7 +123,7 @@ public Media(Parcel in) {
118123
dateCreated = (Date) in.readSerializable();
119124
dateUploaded = (Date) in.readSerializable();
120125
creator = in.readString();
121-
tags = (HashMap<String, Object>) in.readSerializable();
126+
tags = (HashMap<String, String>) in.readSerializable();
122127
width = in.readInt();
123128
height = in.readInt();
124129
license = in.readString();
@@ -218,7 +223,7 @@ public Object getTag(String key) {
218223
* @param key Media key
219224
* @param value Media value
220225
*/
221-
public void setTag(String key, Object value) {
226+
public void setTag(String key, String value) {
222227
tags.put(key, value);
223228
}
224229

app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import androidx.annotation.NonNull;
88
import androidx.annotation.StringDef;
9+
import androidx.room.Entity;
910

1011
import org.apache.commons.lang3.StringUtils;
1112

@@ -21,6 +22,7 @@
2122

2223
import static java.lang.annotation.RetentionPolicy.SOURCE;
2324

25+
@Entity
2426
public class Contribution extends Media {
2527

2628
//{{According to EXIF data|2009-01-09}}
@@ -55,16 +57,16 @@ public Contribution[] newArray(int i) {
5557
public static final String SOURCE_GALLERY = "gallery";
5658
public static final String SOURCE_EXTERNAL = "external";
5759

58-
private Uri contentUri;
59-
private String source;
60-
private String editSummary;
61-
private int state;
62-
private long transferred;
63-
private String decimalCoords;
64-
private boolean isMultiple;
65-
private String wikiDataEntityId;
66-
private Uri contentProviderUri;
67-
private String dateCreatedSource;
60+
public Uri contentUri;
61+
public String source;
62+
public String editSummary;
63+
public int state;
64+
public long transferred;
65+
public String decimalCoords;
66+
public boolean isMultiple;
67+
public String wikiDataEntityId;
68+
public Uri contentProviderUri;
69+
public String dateCreatedSource;
6870

6971
public Contribution(Uri contentUri, String filename, Uri localUri, String imageUrl, Date dateCreated,
7072
int state, long dataLength, Date dateUploaded, long transferred,

0 commit comments

Comments
 (0)