Skip to content

Commit f345174

Browse files
committed
Fix conflicts
2 parents c5d4d55 + bfc9998 commit f345174

File tree

44 files changed

+1397
-166
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1397
-166
lines changed

CREDITS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ their contribution to the product.
4646
* Ilgaz Er
4747
* Alicia Bendz
4848
* Kaartic Sivaraam
49+
* Vanshika Arora
4950

5051
3rd party open source libraries used:
5152
* Butterknife

app/build.gradle

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,35 @@
11
plugins {
22
id 'com.github.triplet.play' version '2.2.1' apply false
33
}
4+
45
apply from: '../gitutils.gradle'
56
apply plugin: 'com.android.application'
67
apply plugin: 'kotlin-android'
78
apply plugin: 'kotlin-kapt'
89
apply plugin: 'jacoco-android'
910
apply from: 'quality.gradle'
11+
1012
def isRunningOnTravisAndIsNotPRBuild = System.getenv("CI") == "true" && file('../play.p12').exists()
13+
1114
if(isRunningOnTravisAndIsNotPRBuild) {
1215
apply plugin: 'com.github.triplet.play'
1316
}
17+
1418
dependencies {
19+
1520
// Utils
1621
implementation 'com.github.nicolas-raoul:Quadtree:ac16ea8035bf07'
17-
implementation 'com.google.code.gson:gson:2.8.5'
1822
implementation 'in.yuvi:http.fluent:1.3'
1923
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
2024
implementation 'com.squareup.okio:okio:1.15.0'
21-
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
22-
implementation 'io.reactivex.rxjava2:rxjava:2.2.3'
2325
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
2426
implementation 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.1.1'
2527
implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1'
2628
implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1'
2729
implementation 'com.facebook.fresco:fresco:1.13.0'
28-
implementation 'com.drewnoakes:metadata-extractor:2.11.0'
2930
implementation 'com.dmitrybrant:wikimedia-android-data-client:0.0.18'
3031
implementation 'org.apache.commons:commons-lang3:3.8.1'
32+
3133
// UI
3234
implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
3335
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
@@ -39,19 +41,20 @@ dependencies {
3941
implementation 'com.karumi:dexter:5.0.0'
4042
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
4143
kapt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
44+
4245
// Logging
4346
implementation 'ch.acra:acra-dialog:5.3.0'
4447
implementation 'ch.acra:acra-mail:5.3.0'
45-
implementation 'com.jakewharton.timber:timber:4.7.1'
4648
implementation 'org.slf4j:slf4j-api:1.7.25'
4749
api('com.github.tony19:logback-android-classic:1.1.1-6') {
4850
exclude group: 'com.google.android', module: 'android'
4951
}
52+
5053
// Dependency injector
51-
implementation "com.google.dagger:dagger:$DAGGER_VERSION"
5254
implementation "com.google.dagger:dagger-android-support:$DAGGER_VERSION"
5355
kapt "com.google.dagger:dagger-android-processor:$DAGGER_VERSION"
5456
kapt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
57+
5558
// Unit testing
5659
testImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
5760
testImplementation "org.jetbrains.kotlin:kotlin-reflect:$KOTLIN_VERSION"
@@ -62,6 +65,7 @@ dependencies {
6265
testImplementation 'com.squareup.okhttp3:mockwebserver:3.10.0'
6366
testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5"
6467
testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5"
68+
6569
// Android testing
6670
androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
6771
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
@@ -73,59 +77,73 @@ dependencies {
7377
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.10.0'
7478
androidTestImplementation 'org.mockito:mockito-core:2.10.0'
7579
androidTestUtil 'androidx.test:orchestrator:1.1.1'
80+
7681
// Debugging
7782
debugImplementation "com.squareup.leakcanary:leakcanary-android:$LEAK_CANARY_VERSION"
7883
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$LEAK_CANARY_VERSION"
7984
testImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$LEAK_CANARY_VERSION"
85+
8086
// Support libraries
8187
implementation "com.google.android.material:material:1.1.0-alpha04"
8288
implementation "androidx.browser:browser:1.0.0"
8389
implementation "androidx.cardview:cardview:1.0.0"
8490
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
8591
implementation "androidx.exifinterface:exifinterface:1.0.0"
92+
8693
//swipe_layout
8794
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
95+
8896
//metadata extractor
8997
implementation 'com.drewnoakes:metadata-extractor:2.11.0'
9098
}
99+
91100
android {
92101
compileSdkVersion 28
93102
buildToolsVersion "28.0.3"
103+
94104
defaultConfig {
95105
applicationId 'fr.free.nrw.commons'
96106
versionCode 475
97107
versionName '2.11.0'
98108
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
109+
99110
minSdkVersion 19
100111
targetSdkVersion 28
101112
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
102113
testInstrumentationRunnerArguments clearPackageData: 'true'
114+
103115
testOptions {
104116
execution 'ANDROIDX_TEST_ORCHESTRATOR'
105117
}
118+
106119
vectorDrawables.useSupportLibrary = true
107120
}
108121
packagingOptions {
109122
exclude 'META-INF/androidx.*'
110123
exclude 'META-INF/proguard/androidx-annotations.pro'
111124
}
125+
112126
testOptions {
113127
unitTests.returnDefaultValues = true
114128
unitTests.includeAndroidResources = true
129+
115130
unitTests.all {
116131
jvmArgs '-noverify'
117132
}
118133
}
134+
119135
sourceSets {
120136
// use kotlin only in tests (for now)
121137
test.java.srcDirs += 'src/test/kotlin'
122138
// use main assets and resources in test
123139
test.assets.srcDirs += 'src/main/assets'
124140
test.resources.srcDirs += 'src/main/resoures'
125141
}
142+
126143
signingConfigs {
127144
release
128145
}
146+
129147
buildTypes {
130148
release {
131149
minifyEnabled true
@@ -151,13 +169,17 @@ android {
151169
signingConfigs.release.keyAlias = System.getenv("key_alias")
152170
signingConfigs.release.keyPassword = System.getenv("key_password")
153171
}
172+
154173
configurations.all {
155174
resolutionStrategy.force 'androidx.annotation:annotation:1.0.2'
156175
}
176+
157177
flavorDimensions 'tier'
158178
productFlavors {
159179
prod {
180+
160181
applicationId 'fr.free.nrw.commons'
182+
161183
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
162184
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\""
163185
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
@@ -181,10 +203,12 @@ android {
181203
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
182204
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
183205
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
206+
184207
dimension 'tier'
185208
}
186209
beta {
187210
applicationId 'fr.free.nrw.commons.beta'
211+
188212
// What values do we need to hit the BETA versions of the site / api ?
189213
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
190214
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\""
@@ -209,18 +233,22 @@ android {
209233
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
210234
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
211235
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
236+
212237
dimension 'tier'
213238
}
214239
}
240+
215241
lintOptions {
216242
disable 'MissingTranslation'
217243
disable 'ExtraTranslation'
218244
abortOnError false
219245
}
246+
220247
compileOptions {
221248
sourceCompatibility JavaVersion.VERSION_1_8
222249
targetCompatibility JavaVersion.VERSION_1_8
223250
}
251+
224252
buildToolsVersion buildToolsVersion
225253
}
226254
if(isRunningOnTravisAndIsNotPRBuild) {
@@ -229,6 +257,7 @@ if(isRunningOnTravisAndIsNotPRBuild) {
229257
userFraction = 1
230258
serviceAccountEmail = System.getenv("SERVICE_ACCOUNT_NAME")
231259
serviceAccountCredentials = file("../play.p12")
260+
232261
resolutionStrategy = "auto"
233262
outputProcessor { // this: ApkVariantOutput
234263
versionNameOverride = "$versionNameOverride.$versionCode"

app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ void shareScreen(Bitmap bitmap) {
199199
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
200200
intent.putExtra(Intent.EXTRA_STREAM, fileUri);
201201
intent.setType("image/png");
202-
startActivity(Intent.createChooser(intent, "Share image via"));
202+
startActivity(Intent.createChooser(intent, getString(R.string.share_image_via)));
203203
} catch (IOException e) {
204204
e.printStackTrace();
205205
}
@@ -316,8 +316,8 @@ private void setUploadProgress(int uploadCount){
316316

317317
private void setZeroAchievements() {
318318
AlertDialog.Builder builder=new AlertDialog.Builder(this)
319-
.setMessage("You haven't made any contributions yet")
320-
.setPositiveButton("Ok", (dialog, which) -> {
319+
.setMessage(getString(R.string.no_achievements_yet))
320+
.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
321321
});
322322
AlertDialog dialog = builder.create();
323323
dialog.show();

app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.widget.Toast;
88

99
import fr.free.nrw.commons.BuildConfig;
10+
import fr.free.nrw.commons.R;
1011
import fr.free.nrw.commons.theme.BaseActivity;
1112
import timber.log.Timber;
1213

@@ -39,7 +40,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
3940
Timber.d("Overriding URL %s", url);
4041

4142
Toast toast = Toast.makeText(SignupActivity.this,
42-
"Account created!", Toast.LENGTH_LONG);
43+
R.string.account_created, Toast.LENGTH_LONG);
4344
toast.show();
4445
// terminate on task completion.
4546
finish();

app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void removeNotification(Notification notification) {
8787
setAdapter(notificationList);
8888
adapter.notifyDataSetChanged();
8989
Snackbar snackbar = Snackbar
90-
.make(relativeLayout,"Notification marked as read", Snackbar.LENGTH_LONG);
90+
.make(relativeLayout, getString(R.string.notification_mark_read), Snackbar.LENGTH_LONG);
9191

9292
snackbar.show();
9393
if (notificationList.size()==0){
@@ -99,7 +99,7 @@ public void removeNotification(Notification notification) {
9999
else {
100100
adapter.notifyDataSetChanged();
101101
setAdapter(notificationList);
102-
Toast.makeText(NotificationActivity.this, "There was some error!", Toast.LENGTH_SHORT).show();
102+
Toast.makeText(NotificationActivity.this, getString(R.string.some_error), Toast.LENGTH_SHORT).show();
103103
}
104104
}, throwable -> {
105105

app/src/main/java/fr/free/nrw/commons/quiz/QuizResultActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ void shareScreen(Bitmap bitmap) {
163163
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
164164
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
165165
intent.setType("image/png");
166-
startActivity(Intent.createChooser(intent, "Share image via"));
166+
startActivity(Intent.createChooser(intent, getString(R.string.share_image_via)));
167167
} catch (Exception e) {
168168
e.printStackTrace();
169169
}

app/src/main/res/values-ar/strings.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,4 +552,10 @@
552552
<string name="delete_helper_ask_reason_copyright_logo">شعار</string>
553553
<string name="delete_helper_ask_reason_copyright_other">أخرى</string>
554554
<string name="delete_helper_ask_alert_set_positive_button_reason">لأنها</string>
555+
<string name="share_image_via">مشاركة الصور عبر</string>
556+
<string name="no_achievements_yet">أنت لم تقدم أية مساهمات حتى الآن</string>
557+
<string name="account_created">تم إنشاء الحساب!</string>
558+
<string name="text_copy">تم نسخ النص إلى الحافظة.</string>
559+
<string name="notification_mark_read">تم تعليم الإخطار كمقروء</string>
560+
<string name="some_error">ثمة خطأ ما!</string>
555561
</resources>

app/src/main/res/values-diq/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,4 +254,7 @@
254254
<string name="please_wait">Kerem kerên, bıpawên...</string>
255255
<string name="skip_image" fuzzy="true">NÊ RESIMİ RAVİYARNE</string>
256256
<string name="image_info">Melumatê resımi</string>
257+
<string name="account_created">Hesab vıraziya!</string>
258+
<string name="text_copy">Metın kopyayê panoyi biyo</string>
259+
<string name="some_error">Yew xeta biye!</string>
257260
</resources>

app/src/main/res/values-el/strings.xml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<string name="preference_category_appearance">Εμφάνιση</string>
2222
<string name="preference_category_general">Γενικά</string>
2323
<string name="preference_category_feedback">Ανατροφοδότηση</string>
24+
<string name="preference_category_privacy">Ιδιωτικότητα</string>
2425
<string name="preference_category_location">Τοποθεσία</string>
2526
<string name="app_name">Commons</string>
2627
<string name="bullet">•</string>
@@ -176,7 +177,7 @@
176177
<string name="menu_refresh">Ανανέωση</string>
177178
<string name="storage_permission_title">Αιτείται Άδεια Αποθήκευσης</string>
178179
<string name="read_storage_permission_rationale">Απαιτούμενη άδεια: Ανάγνωση εξωτερικής αποθήκευσης. Η εφαρμογή δεν μπορεί να έχει πρόσβαση στην συλλογή σας χωρίς αυτή.</string>
179-
<string name="write_storage_permission_rationale" fuzzy="true">Απαιτούμενη άδεια: Με εξωτερική αποθήκευση. Το πρόγραμμα δεν μπορεί να έχει πρόσβαση στην κάμερα σας χωρίς αυτήν.</string>
180+
<string name="write_storage_permission_rationale">Απαιτούμενη άδεια: Εγγραφή σε εξωτερική αποθήκευση. Το πρόγραμμα δεν θα έχει πρόσβαση στην κάμερα/συλλογή σας χωρίς αυτήν.</string>
180181
<string name="location_permission_rationale">Προαιρετική άδεια: Ανάκτηση τρέχουσας θέσης σας για προτάσεις κατηγοριών</string>
181182
<string name="ok">Εντάξει</string>
182183
<string name="title_activity_nearby">Κοντινοί Τόποι</string>
@@ -187,6 +188,7 @@
187188
<string name="no">Όχι</string>
188189
<string name="media_detail_title">Τίτλος</string>
189190
<string name="media_detail_description">Περιγραφή</string>
191+
<string name="media_detail_discussion">Συζήτηση</string>
190192
<string name="media_detail_author">Συγγραφέας</string>
191193
<string name="media_detail_uploaded_date">Ημερομηνία φόρτωσης</string>
192194
<string name="media_detail_license">Άδεια</string>
@@ -344,6 +346,7 @@
344346
<string name="delete_recent_searches_dialog">Είστε σίγουρος ότι θέλετε να καθαρίσετε το ιστορικό αναζήτησης;</string>
345347
<string name="search_history_deleted">Το ιστορικό αναζήτησης διεγράφη</string>
346348
<string name="nominate_delete">Ορίστε για Αφαίρεση</string>
349+
<string name="delete">Διαγραφή</string>
347350
<string name="Achievements">Κατορθώματα</string>
348351
<string name="statistics">Στατιστικά</string>
349352
<string name="statistics_thanks">Ευχαριστίες που έχουν ληφθεί</string>
@@ -399,9 +402,17 @@
399402
<string name="no_categories_selected_warning_desc">Εικόνες χωρίς κατηγορίες χρησιμοποιούνται σπάνια. Θέλετε πράγματι να στείλετε δίχως να επιλέξετε κατηγορίες?</string>
400403
<string name="yes_submit">Ναι, υποβολή</string>
401404
<string name="no_go_back">Όχι, Επιστροφή</string>
405+
<string name="review_thanks_yes_button_text">Ναι, γιατί όχι</string>
406+
<string name="review_thanks_no_button_text">Επόμενη εικόνα</string>
402407
<string name="no_image">Δεν χρησιμοποιούνται εικόνες</string>
403408
<string name="no_image_uploaded">Δεν έχουν ανεβεί εικόνες</string>
404-
<string name="no_notification" fuzzy="true">Δεν έχετε αδιάβαστες Ενημερώσεις.</string>
405-
<string name="no_archived_notification" fuzzy="true">Δεν έχετε αρχειοθετημένες Ενημερώσεις.</string>
409+
<string name="no_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string>
410+
<string name="no_archived_notification">Δεν έχετε αρχειοθετημένες ενημερώσεις</string>
406411
<string name="please_wait">Παρακαλούμε περιμένετε…</string>
412+
<string name="exif_tag_name_author">Δημιουργός</string>
413+
<string name="exif_tag_name_copyright">Πνευματικά δικαιώματα</string>
414+
<string name="exif_tag_name_location">Τοποθεσία</string>
415+
<string name="exif_tag_name_software">Λογισμικό</string>
416+
<string name="image_info">Πληροφορίες Εικόνας</string>
417+
<string name="delete_helper_show_deletion_title_failed">Απέτυχε</string>
407418
</resources>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Authors:
3+
* Cblair91
4+
-->
5+
<resources>
6+
<string name="crash_dialog_title">Commons has crashed</string>
7+
<string name="crash_dialog_text">Oops. Something went wrong!</string>
8+
<string name="crash_dialog_comment_prompt">Tell us what you were doing, then share it via email to us. Will help us fix it!</string>
9+
<string name="crash_dialog_ok_toast">Thank you!</string>
10+
</resources>

0 commit comments

Comments
 (0)