1
1
package fr .free .nrw .commons .modifications ;
2
2
3
- import android .content .ContentProviderClient ;
4
- import android .content .ContentValues ;
5
- import android .database .Cursor ;
6
- import android .database .sqlite .SQLiteDatabase ;
7
3
import android .net .Uri ;
8
- import android .os .RemoteException ;
9
4
10
5
import org .json .JSONArray ;
11
- import org .json .JSONException ;
12
6
import org .json .JSONObject ;
13
7
14
8
import java .util .ArrayList ;
@@ -17,37 +11,36 @@ public class ModifierSequence {
17
11
private Uri mediaUri ;
18
12
private ArrayList <PageModifier > modifiers ;
19
13
private Uri contentUri ;
20
- private ContentProviderClient client ;
21
14
22
15
public ModifierSequence (Uri mediaUri ) {
23
16
this .mediaUri = mediaUri ;
24
17
modifiers = new ArrayList <>();
25
18
}
26
19
27
- public ModifierSequence (Uri mediaUri , JSONObject data ) {
20
+ ModifierSequence (Uri mediaUri , JSONObject data ) {
28
21
this (mediaUri );
29
22
JSONArray modifiersJSON = data .optJSONArray ("modifiers" );
30
23
for (int i = 0 ; i < modifiersJSON .length (); i ++) {
31
24
modifiers .add (PageModifier .fromJSON (modifiersJSON .optJSONObject (i )));
32
25
}
33
26
}
34
27
35
- public Uri getMediaUri () {
28
+ Uri getMediaUri () {
36
29
return mediaUri ;
37
30
}
38
31
39
32
public void queueModifier (PageModifier modifier ) {
40
33
modifiers .add (modifier );
41
34
}
42
35
43
- public String executeModifications (String pageName , String pageContents ) {
36
+ String executeModifications (String pageName , String pageContents ) {
44
37
for (PageModifier modifier : modifiers ) {
45
38
pageContents = modifier .doModification (pageName , pageContents );
46
39
}
47
40
return pageContents ;
48
41
}
49
42
50
- public String getEditSummary () {
43
+ String getEditSummary () {
51
44
StringBuilder editSummary = new StringBuilder ();
52
45
for (PageModifier modifier : modifiers ) {
53
46
editSummary .append (modifier .getEditSumary ()).append (" " );
@@ -56,97 +49,16 @@ public String getEditSummary() {
56
49
return editSummary .toString ();
57
50
}
58
51
59
- public JSONObject toJSON () {
60
- JSONObject data = new JSONObject ();
61
- try {
62
- JSONArray modifiersJSON = new JSONArray ();
63
- for (PageModifier modifier : modifiers ) {
64
- modifiersJSON .put (modifier .toJSON ());
65
- }
66
- data .put ("modifiers" , modifiersJSON );
67
- return data ;
68
- } catch (JSONException e ) {
69
- throw new RuntimeException (e );
70
- }
71
- }
72
-
73
- public ContentValues toContentValues () {
74
- ContentValues cv = new ContentValues ();
75
- cv .put (Table .COLUMN_MEDIA_URI , mediaUri .toString ());
76
- cv .put (Table .COLUMN_DATA , toJSON ().toString ());
77
- return cv ;
52
+ ArrayList <PageModifier > getModifiers () {
53
+ return modifiers ;
78
54
}
79
55
80
- public static ModifierSequence fromCursor (Cursor cursor ) {
81
- // Hardcoding column positions!
82
- ModifierSequence ms = null ;
83
- try {
84
- ms = new ModifierSequence (Uri .parse (cursor .getString (1 )),
85
- new JSONObject (cursor .getString (2 )));
86
- } catch (JSONException e ) {
87
- throw new RuntimeException (e );
88
- }
89
- ms .contentUri = ModificationsContentProvider .uriForId (cursor .getInt (0 ));
90
-
91
- return ms ;
92
- }
93
-
94
- public void save () {
95
- try {
96
- if (contentUri == null ) {
97
- contentUri = client .insert (ModificationsContentProvider .BASE_URI , this .toContentValues ());
98
- } else {
99
- client .update (contentUri , toContentValues (), null , null );
100
- }
101
- } catch (RemoteException e ) {
102
- throw new RuntimeException (e );
103
- }
104
- }
105
-
106
- public void delete () {
107
- try {
108
- client .delete (contentUri , null , null );
109
- } catch (RemoteException e ) {
110
- throw new RuntimeException (e );
111
- }
56
+ Uri getContentUri () {
57
+ return contentUri ;
112
58
}
113
59
114
- public void setContentProviderClient ( ContentProviderClient client ) {
115
- this .client = client ;
60
+ void setContentUri ( Uri contentUri ) {
61
+ this .contentUri = contentUri ;
116
62
}
117
63
118
- public static class Table {
119
- public static final String TABLE_NAME = "modifications" ;
120
-
121
- public static final String COLUMN_ID = "_id" ;
122
- public static final String COLUMN_MEDIA_URI = "mediauri" ;
123
- public static final String COLUMN_DATA = "data" ;
124
-
125
- // NOTE! KEEP IN SAME ORDER AS THEY ARE DEFINED UP THERE. HELPS HARD CODE COLUMN INDICES.
126
- public static final String [] ALL_FIELDS = {
127
- COLUMN_ID ,
128
- COLUMN_MEDIA_URI ,
129
- COLUMN_DATA
130
- };
131
-
132
- private static final String CREATE_TABLE_STATEMENT = "CREATE TABLE " + TABLE_NAME + " ("
133
- + "_id INTEGER PRIMARY KEY,"
134
- + "mediauri STRING,"
135
- + "data STRING"
136
- + ");" ;
137
-
138
- public static void onCreate (SQLiteDatabase db ) {
139
- db .execSQL (CREATE_TABLE_STATEMENT );
140
- }
141
-
142
- public static void onUpdate (SQLiteDatabase db , int from , int to ) {
143
- db .execSQL ("DROP TABLE IF EXISTS " + TABLE_NAME );
144
- onCreate (db );
145
- }
146
-
147
- public static void onDelete (SQLiteDatabase db ) {
148
- db .execSQL ("DROP TABLE IF EXISTS " + TABLE_NAME );
149
- onCreate (db );
150
- }
151
- }
152
64
}
0 commit comments