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>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@
257257
<string name="nearby_info_menu_commons_article">Página del archivo en Commons</string>
258258
<string name="nearby_info_menu_wikidata_article">Elemento de Wikidata</string>
259259
<string name="nearby_info_menu_wikipedia_article">Artículo de Wikipedia</string>
260-
<string name="error_while_cache">Error al almacenar imágenes en la caché</string>
260+
<string name="error_while_cache">Error al almacenar imágenes en la antememoria</string>
261261
<string name="title_info">Un título único descriptivo para el archivo, que servirá como un nombre de archivo. Puede usar un lenguaje claro con espacios. No incluya la extensión del archivo.</string>
262262
<string name="description_info">Por favor, describe el elemento multimedia tanto como sea posible: ¿dónde fue tomado?, ¿qué muestra?, ¿cuál es el contexto? Por favor, describe los objetos o personas. Ofrece la información que no puede ser inferida tan fácilmente, por ejemplo el momento del día si es un paisaje. Si el medio muestra algo inusual, explica qué lo hace inusual.</string>
263263
<string name="upload_image_too_dark">La imagen está demasiado oscura, ¿seguro que quieres subirla? Wikimedia Commons solo acepta imágenes con valor enciclopédico.</string>

0 commit comments

Comments
 (0)