From 861a145f05256f15c4ed284adede158a3b95c891 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Mon, 18 Dec 2017 18:13:53 +0900 Subject: [PATCH 01/35] Fixed syntax --- app/src/main/res/values/strings.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b8e100744..c2e38b921 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,9 +69,7 @@ %d uploads No categories matching %1$s found - - Add categories to make your images more discoverable on Wikimedia Commons. - - - -Start typing to add categories. + Add categories to make your images more discoverable on Wikimedia Commons.\nStart typing to add categories. Categories Settings Sign Up From d52844b7e1cdb7928989502519f5d40c5bb00db8 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 18 Dec 2017 17:39:11 +0100 Subject: [PATCH 02/35] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 4 +-- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-kab/strings.xml | 4 ++- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-lb/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 39 ++++++++++++++++++------- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-ps/strings.xml | 6 ++-- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 2 +- 13 files changed, 47 insertions(+), 24 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 202823455..93acf627a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -68,7 +68,7 @@ %d hochgeladene Dateien Die Kategorie „%1$s“ wurde nicht gefunden - Füge Kategorien hinzu, um deine Bilder auf Wikimedia Commons auffindbarer zu machen.\n\nBeginn zu schreiben, um Kategorien hinzuzufügen. + Füge Kategorien hinzu, um deine Bilder auf Wikimedia Commons auffindbarer zu machen.\n\nBeginn zu schreiben, um Kategorien hinzuzufügen. Kategorien Einstellungen Registrieren diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 28ea9236e..4b06e5ad8 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -68,7 +68,7 @@ %d subidas No se encontraron categorías que coincidieran con %1$s - Añade categorías para hacer que tus imágenes sean más fáciles de encontrar en Wikimedia Commons.\n -\n -Comienza a escribir para añadir categorías. + Añade categorías para hacer que tus imágenes sean más fáciles de encontrar en Wikimedia Commons.\n -\n -Comienza a escribir para añadir categorías. Categorías Ajustes Regístrate @@ -192,7 +192,7 @@ no se encontró ninguna descripción Página del archivo en Commons Elemento de Wikidata - Error mientras se guardaban imágenes en la caché + Error al almacenar imágenes en la antememoria 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. Por favor, describa el elemento multimedia tanto como sea posible: ¿dónde fue tomado?, ¿qué muestra?, ¿cuál es el contexto? Por favor, describa los objetos o personas. Ofrezca la información que no puede ser inferida tan facilmente, por ejemplo el momento del día si es un paisaje. Si el medio muestra algo inusual, explique qué lo hace insual. Otorgar permiso diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 28293ebc8..f2cd19624 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -68,7 +68,7 @@ %d téléversements Aucune catégorie correspondant à %1$s trouvée - Ajoutez des catégories pour rendre vos images plus simple à trouver sur Wikimedia Commons. \n\nCommencer à ajouter des catégories. \nAppuyez sur ce message (ou retournez en arrière) pour sauter cette étape. + Ajoutez des catégories pour rendre vos images plus simples à trouver sur Wikimedia Commons. \n-\n-Commencer à ajouter des catégories. Catégories Paramètres S’inscrire diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index f9989e41c..ec68503b4 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -67,7 +67,7 @@ %d अपलोड %1$s से कोई श्रेणी मेल नहीं खाती - अपने छवियों को विकिमीडिया कॉमन्स में अधिक ढूँढने लायक बनाने हेतु श्रेणियाँ लगायें। \n\nश्रेणी जोड़ने हेतु लिखना शुरू करें।\nइसे न करने हेतु इस संदेश को टैप करें या पीछे का बटन दबायें। + अपने छवियों को विकिमीडिया कॉमन्स में अधिक ढूँढने लायक बनाने हेतु श्रेणियाँ लगायें। \n\nश्रेणी जोड़ने हेतु लिखना शुरू करें।\nइसे न करने हेतु इस संदेश को टैप करें या पीछे का बटन दबायें। श्रेणियाँ पसंद खाता खोलें diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 87758c40e..c34d53bae 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -68,7 +68,7 @@ %d caricamenti Non è stata trovata alcuna categoria che contiene %1$s - Aggiungi categorie per rendere le tue immagini più facilmente individuabili su Wikimedia Commons.\n -\n -Inizia a digitare per aggiungere categorie. + Aggiungi categorie per rendere le tue immagini più facilmente individuabili su Wikimedia Commons.\n -\n -Inizia a digitare per aggiungere categorie. Categorie Impostazioni Registrati diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 724d4fa38..34152a670 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -68,7 +68,7 @@ %d n usali Ulac taggayin imenṭaḍen akked %1$s i yettwafen - Rnu taggayin akken ad terreḍ tugniwin-ik fessus-it i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin.\nSenneḍ ɣef yizen-agi (neɣ uɣal ar deffir) akken ad tnegzeḍ asebter-agi. + Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin. Taggayin Iɣewwaṛen Jerred @@ -201,4 +201,6 @@ Azen afaylu n uɣmis Azen afaylu n uɣmis i yinermisen s yimayl Qqen ar umiḍan-ik + Adeg ur ibeddel ara. + Ulac adeg diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9177bdb25..0e568ab8c 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -67,7 +67,7 @@ %d개 업로드 %1$s와(과) 일치하는 분류를 찾을 수 없습니다 - 위키미디어 공용에서 그림을 더 찾기 쉽게 만들기 위해 분류를 추가합니다.\n -\n -분류를 추가하려면 입력을 시작하세요. + 위키미디어 공용에서 그림을 더 찾기 쉽게 만들기 위해 분류를 추가합니다.\n -\n -분류를 추가하려면 입력을 시작하세요. 분류 설정 가입하기 diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index 911ba9dd7..46b927a23 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -67,7 +67,7 @@ %d Fichieren eropgelueden D\'Kategorie %1$s gouf net fonnt - Setzt Kategorien dobäi fir datt Är Biller méi einfach op Wikimedia Commons ze fanne sinn.\n\nFänkt u mat Tippe fir Kategorien dobäizesetzen. + Setzt Kategorien dobäi fir datt Är Biller méi einfach op Wikimedia Commons ze fanne sinn.\n\nFänkt u mat Tippe fir Kategorien dobäizesetzen. Kategorien Astellungen Mellt Iech un diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index eb1649236..ed9bcec38 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -20,11 +20,11 @@ Baigiamas įkelti %1$s Įkelti %1$s nepavyko Bakstelėkite norėdami Rodyti - - 1 keliamas failas + + %d keliamas failas %d keliamų failų - Mano įkėlimai + Naujausi mano įkėlimai Eilėje Nepavyko %1$d%% baigta @@ -50,21 +50,24 @@ Ieškoti kategorijas Išsaugoti Atnaujinti + GPS išjungta jūsų įrenginyje. Ar norite įjungti? + Išjungti GPS + Nėra įkėlimų kol kas Dar nėra įkėlimų 1 įkėlimas %d įkėlimai - - Pradedamas 1 įkėlimas + + Pradedamas %d įkėlimas Pradedami %d įkėlimai - - 1 įkėlimas + + %d įkėlimas %d įkėlimai Nerasta kategorijų, atitinkančiu %1$s - Pridėkite kategorijas, kad jūsų paveikslėliai būtų lengviau randami Vikimedija Commons.\n\nPradėkite rašyti, kad pridėtumėte kategorijas.\nPaspauskite šią žinutę (ar paspauskite atgal), kad praleistumėte šį žingsnį. + Pridėkite kategorijas, kad jūsų paveikslėliai būtų lengviau randami Vikimedija Commons.\n -\n -Pradėkite rašyti, kad pridėtumėte kategorijas. Kategorijos Nustatymai Užsiregistruoti @@ -74,7 +77,7 @@ Siųsti Atsiliepimą (El. paštu) Nėra įdiegtos el. pašto tvarkyklės Neseniai naudotos kategorijos - Laukiama pirmo sinchronizavimo + Laukiama pirmo sinchronizavimo… Dar neįkėlėte jokių nuotraukų. Bandykite dar kartą Atšaukti @@ -101,7 +104,7 @@ Ar viską supratote? Taip! Kategorijos - Įkeliama… + Kraunasi... Niekas nepasirinkta Nėra aprašymo Nežinoma licencija @@ -116,5 +119,21 @@ Ne Pavadinimas Aprašymas + Įkėlimo data + Licencija + Koordinatės + Ar tikrai norite atsijungti? + Įkelti paveikslėlį + Sveiki atvykę į Vikipediją + Atšaukti + Atidaryti + Uždaryti + Įkelti + Netoliese + Apie + Nustatymai + Atsiliepimai + Atsijungti Suteikti leidimą + Prisijunkite prie savo paskyros diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index f3d5d7a76..15a785f6d 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -68,7 +68,7 @@ %d opplastinger Ingen kategorier som stemte overens med %1$s funnet - Legg til kategorier for å gjøre bildene dine lettere å finne på Wikimedia Commons.\n\nBegynn å skrive navnet på kategoriene.\nTrykk på denne meldingen (eller trykk tilbake) for å hoppe over dette steget. + Legg til kategorier for å gjøre bildene dine lettere å finne på Wikimedia Commons.\n -\n -Begynn å skrive navnet på kategoriene. Kategorier Innstillinger Registrer deg diff --git a/app/src/main/res/values-ps/strings.xml b/app/src/main/res/values-ps/strings.xml index 406e8717f..800bb79ba 100644 --- a/app/src/main/res/values-ps/strings.xml +++ b/app/src/main/res/values-ps/strings.xml @@ -32,7 +32,7 @@ وېشنيزې پلټل خوندي کول بياتازه کول - + 1 پورته کول %d پورته کول @@ -40,7 +40,7 @@ امستنې نومليکنه په اړه - <a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">د پټنتيا تگلاره</a> + <a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">د پټنتيا تگلاره</a> په اړه وروستۍ کارېدلې وېشنيزې تاسې تر اوسه کوم انځور نه دی پورته کړی. @@ -68,6 +68,8 @@ هو نه سرليک + ويکيپېډياښه راغلئ + ناگارل پرانيستل تړل کور diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 22174857a..5e4bd93ce 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -63,7 +63,7 @@ %d yükleme %1$s ile eşleşen bir kategori bulunamadı - Resimlerinizi Wikimedia Commons\'ta daha bulunabilir duruma getirmek için kategoriler ekleyin.\n\nKategori eklemek için yazmaya başlayın. + Resimlerinizi Wikimedia Commons\'ta daha bulunabilir duruma getirmek için kategoriler ekleyin.\n\nKategori eklemek için yazmaya başlayın. Kategoriler Ayarlar Hakkında diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index c66498b96..271fbed30 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -68,7 +68,7 @@ %d次上传 没有找到匹配%1$s的分类 - 添加分类使您的图像更容易在维基共享资源被找到。\n -\n -开始输入以添加分类。 + 添加分类使您的图像更容易在维基共享资源被找到。\n -\n -开始输入以添加分类。 分类 设置 注册 From b3cf78c65aab507f7a21b12d50ec6e7f392fa6ec Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Tue, 19 Dec 2017 20:14:11 +1000 Subject: [PATCH 03/35] Update changelog.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index df1c2d2af..a25d9fe2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Wikimedia Commons for Android +## v2.6.5 beta +- Changed "send log" feature to only send logs to private Google group forum +- Switched to using Wikimedia maps server instead of Mapbox for privacy reasons +- Removed event logging from app for privacy reasons +- Fixed crash caused by rapidly switching from Nearby map to list while loading + ## v2.6.4 beta - Excluded httpclient and commons-logging to fix release build errors - Fixed crashes caused by Fresco and Dagger From eb372eb093fffc722c1778a99739df7bcb4c1cf3 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Dec 2017 20:12:08 +1000 Subject: [PATCH 04/35] Versioning for v2.6.5 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d9cd7a7c5..184e756ac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -83,8 +83,8 @@ android { defaultConfig { applicationId 'fr.free.nrw.commons' - versionCode 79 - versionName '2.6.4' + versionCode 80 + versionName '2.6.5' setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) minSdkVersion project.minSdkVersion From 3d6c6e0301e604308a24f50a8b209641ab3eb404 Mon Sep 17 00:00:00 2001 From: prajgov Date: Tue, 19 Dec 2017 19:11:39 +0530 Subject: [PATCH 05/35] added JavaDoc comments --- .../fr/free/nrw/commons/AboutActivity.java | 8 +++ .../free/nrw/commons/CommonsApplication.java | 52 ++++++++++++++----- build.gradle | 2 +- 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java index 0ef5fa171..6ed1bba1d 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java @@ -8,10 +8,18 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.theme.NavigationBaseActivity; import fr.free.nrw.commons.ui.widget.HtmlTextView; +/** + * Represents about screen of this app + */ public class AboutActivity extends NavigationBaseActivity { @BindView(R.id.about_version) TextView versionText; @BindView(R.id.about_license) HtmlTextView aboutLicenseText; + /** + * This method helps in the creation About screen + * + * @param savedInstanceState Data bundle + */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 9a7b94a99..c2da8ad98 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -44,21 +44,32 @@ import timber.log.Timber; ) public class CommonsApplication extends DaggerApplication { + public static final String DEFAULT_EDIT_SUMMARY = "Uploaded using Android Commons app"; + public static final String FEEDBACK_EMAIL = "commons-app-android@googlegroups.com"; + public static final String LOGS_PRIVATE_EMAIL = "commons-app-android-private@googlegroups.com"; + public static final String FEEDBACK_EMAIL_SUBJECT = "Commons Android App (%s) Feedback"; @Inject SessionManager sessionManager; @Inject DBOpenHelper dbOpenHelper; @Inject @Named("default_preferences") SharedPreferences defaultPrefs; @Inject @Named("application_preferences") SharedPreferences applicationPrefs; @Inject @Named("prefs") SharedPreferences otherPrefs; - - public static final String DEFAULT_EDIT_SUMMARY = "Uploaded using Android Commons app"; - - public static final String FEEDBACK_EMAIL = "commons-app-android@googlegroups.com"; - public static final String LOGS_PRIVATE_EMAIL = "commons-app-android-private@googlegroups.com"; - public static final String FEEDBACK_EMAIL_SUBJECT = "Commons Android App (%s) Feedback"; - private CommonsApplicationComponent component; private RefWatcher refWatcher; + /** + * Provides a way to get member refWatcher + * + * @param context Application context + * @return application member refWatcher + */ + public static RefWatcher getRefWatcher(Context context) { + CommonsApplication application = (CommonsApplication) context.getApplicationContext(); + return application.refWatcher; + } + + /** + * Used to declare and initialize various components and dependencies + */ @Override public void onCreate() { super.onCreate(); @@ -80,6 +91,10 @@ public class CommonsApplication extends DaggerApplication { System.setProperty("in.yuvi.http.fluent.PROGRESS_TRIGGER_THRESHOLD", "3.0"); } + /** + * Helps in setting up LeakCanary library + * @return instance of LeakCanary + */ protected RefWatcher setupLeakCanary() { if (LeakCanary.isInAnalyzerProcess(this)) { return RefWatcher.DISABLED; @@ -87,16 +102,19 @@ public class CommonsApplication extends DaggerApplication { return LeakCanary.install(this); } - public static RefWatcher getRefWatcher(Context context) { - CommonsApplication application = (CommonsApplication) context.getApplicationContext(); - return application.refWatcher; - } - + /** + * Helps in injecting dependency library Dagger + * @return Dagger injector + */ @Override - protected AndroidInjector applicationInjector() { + protected AndroidInjector applicationInjector() { return injector(); } + /** + * used to create injector of application component + * @return Application component of Dagger + */ public CommonsApplicationComponent injector() { if (component == null) { component = DaggerCommonsApplicationComponent.builder() @@ -106,6 +124,11 @@ public class CommonsApplication extends DaggerApplication { return component; } + /** + * clears data of current application + * @param context Application context + * @param logoutListener Implementation of interface LogoutListener + */ public void clearApplicationData(Context context, LogoutListener logoutListener) { File cacheDirectory = context.getCacheDir(); File applicationDirectory = new File(cacheDirectory.getParent()); @@ -145,6 +168,9 @@ public class CommonsApplication extends DaggerApplication { Contribution.Table.onDelete(db); } + /** + * Interface used to get log-out events + */ public interface LogoutListener { void onLogoutComplete(); } diff --git a/build.gradle b/build.gradle index 6b7e5dc00..b0e8b6718 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { google() } dependencies { - classpath "com.android.tools.build:gradle:${project.gradleVersion}" + classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.dicedmelon.gradle:jacoco-android:0.1.1' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.7.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" From 19ef7b126c5f1fb27d6e9553355741bac090c3a7 Mon Sep 17 00:00:00 2001 From: prajgov Date: Tue, 19 Dec 2017 19:25:49 +0530 Subject: [PATCH 06/35] added JavaDoc comments --- .../java/fr/free/nrw/commons/License.java | 9 ++++++ .../java/fr/free/nrw/commons/LicenseList.java | 32 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/License.java b/app/src/main/java/fr/free/nrw/commons/License.java index 7b75cfda8..db893de16 100644 --- a/app/src/main/java/fr/free/nrw/commons/License.java +++ b/app/src/main/java/fr/free/nrw/commons/License.java @@ -2,6 +2,9 @@ package fr.free.nrw.commons; import android.support.annotation.Nullable; +/** + * represents Licence object + */ public class License { private String key; private String template; @@ -56,6 +59,12 @@ public class License { } } + /** + * Gets the license URL + * + * @param language license language + * @return URL + */ public @Nullable String getUrl(String language) { if (url == null) { return null; diff --git a/app/src/main/java/fr/free/nrw/commons/LicenseList.java b/app/src/main/java/fr/free/nrw/commons/LicenseList.java index ab32f8815..536be225b 100644 --- a/app/src/main/java/fr/free/nrw/commons/LicenseList.java +++ b/app/src/main/java/fr/free/nrw/commons/LicenseList.java @@ -13,10 +13,18 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; +/** + * Represents LicenseList + */ public class LicenseList { private Map licenses = new HashMap<>(); private Resources res; + /** + * Constructs new instance of LicenceList + * + * @param activity License activity + */ public LicenseList(Activity activity) { res = activity.getResources(); XmlPullParser parser = res.getXml(R.xml.wikimedia_licenses); @@ -31,14 +39,28 @@ public class LicenseList { } } + /** + * Gets a collection of licenses + * @return License values + */ public Collection values() { return licenses.values(); } + /** + * Gets license + * @param key License key + * @return License that matches key + */ public License get(String key) { return licenses.get(key); } + /** + * Creates a license from template + * @param template License template + * @return null + */ @Nullable License licenseForTemplate(String template) { String ucTemplate = new PageTitle(template).getDisplayText(); @@ -50,6 +72,11 @@ public class LicenseList { return null; } + /** + * Gets template name id + * @param template License template + * @return name id of template + */ private String nameIdForTemplate(String template) { // hack :D (converts dashes and periods to underscores) // cc-by-sa-3.0 -> cc_by_sa_3_0 @@ -57,6 +84,11 @@ public class LicenseList { "_").replace(".", "_"); } + /** + * Gets name of given template + * @param template License template + * @return name of template + */ private String nameForTemplate(String template) { int nameId = res.getIdentifier("fr.free.nrw.commons:string/" + nameIdForTemplate(template), null, null); From 93b7611bc1c16a0c5c8f05257c0bfff8bfc2c64a Mon Sep 17 00:00:00 2001 From: prajgov Date: Tue, 19 Dec 2017 19:58:38 +0530 Subject: [PATCH 07/35] added JavaDoc comments --- .../fr/free/nrw/commons/data/Category.java | 170 ++++++++++++------ 1 file changed, 112 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/data/Category.java b/app/src/main/java/fr/free/nrw/commons/data/Category.java index 757f6b691..25214fdc6 100644 --- a/app/src/main/java/fr/free/nrw/commons/data/Category.java +++ b/app/src/main/java/fr/free/nrw/commons/data/Category.java @@ -14,6 +14,9 @@ import java.util.Date; import fr.free.nrw.commons.category.CategoryContentProvider; +/** + * Represents a category + */ public class Category { private Uri contentUri; @@ -22,67 +25,12 @@ public class Category { private int timesUsed; // Getters/setters - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - private Date getLastUsed() { - // warning: Date objects are mutable. - return (Date)lastUsed.clone(); - } - - public void setLastUsed(Date lastUsed) { - // warning: Date objects are mutable. - this.lastUsed = (Date)lastUsed.clone(); - } - - private void touch() { - lastUsed = new Date(); - } - - private int getTimesUsed() { - return timesUsed; - } - - public void setTimesUsed(int timesUsed) { - this.timesUsed = timesUsed; - } - - public void incTimesUsed() { - timesUsed++; - touch(); - } - - //region Database/content-provider stuff /** - * Persist category. - * @param client ContentProviderClient to handle DB connection + * Gets category from cursor + * @param cursor Category cursor + * @return Category from cursor */ - public void save(ContentProviderClient client) { - try { - if (contentUri == null) { - contentUri = client.insert(CategoryContentProvider.BASE_URI, this.toContentValues()); - } else { - client.update(contentUri, toContentValues(), null, null); - } - } catch (RemoteException e) { - throw new RuntimeException(e); - } - } - - private ContentValues toContentValues() { - ContentValues cv = new ContentValues(); - cv.put(Table.COLUMN_NAME, getName()); - cv.put(Table.COLUMN_LAST_USED, getLastUsed().getTime()); - cv.put(Table.COLUMN_TIMES_USED, getTimesUsed()); - return cv; - } - private static Category fromCursor(Cursor cursor) { // Hardcoding column positions! Category c = new Category(); @@ -152,6 +100,112 @@ public class Category { return items; } + /** + * Gets name + * + * @return name + */ + public String getName() { + return name; + } + + /** + * Modifies name + * + * @param name Category name + */ + public void setName(String name) { + this.name = name; + } + + /** + * Gets last used date + * + * @return Last used date + */ + private Date getLastUsed() { + // warning: Date objects are mutable. + return (Date) lastUsed.clone(); + } + + /** + * Modifies last used date + * + * @param lastUsed Category date + */ + public void setLastUsed(Date lastUsed) { + // warning: Date objects are mutable. + this.lastUsed = (Date) lastUsed.clone(); + } + + /** + * Generates new last used date + */ + private void touch() { + lastUsed = new Date(); + } + + //region Database/content-provider stuff + + /** + * Gets no. of times the category is used + * + * @return no. of times used + */ + private int getTimesUsed() { + return timesUsed; + } + + /** + * Modifies no. of times used + * + * @param timesUsed Category used times + */ + public void setTimesUsed(int timesUsed) { + this.timesUsed = timesUsed; + } + + /** + * Increments timesUsed by 1 and sets last used date as now. + */ + public void incTimesUsed() { + timesUsed++; + touch(); + } + + /** + * Persist category. + * + * @param client ContentProviderClient to handle DB connection + */ + public void save(ContentProviderClient client) { + try { + if (contentUri == null) { + contentUri = client.insert(CategoryContentProvider.BASE_URI, this.toContentValues()); + } else { + client.update(contentUri, toContentValues(), null, null); + } + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + + /** + * Gets content values + * + * @return Content values + */ + private ContentValues toContentValues() { + ContentValues cv = new ContentValues(); + cv.put(Table.COLUMN_NAME, getName()); + cv.put(Table.COLUMN_LAST_USED, getLastUsed().getTime()); + cv.put(Table.COLUMN_TIMES_USED, getTimesUsed()); + return cv; + } + + /** + * Represents table + */ public static class Table { public static final String TABLE_NAME = "categories"; From 4bb3e58c4ee8c9906be094bfb8c3bdf8edaf04ec Mon Sep 17 00:00:00 2001 From: prajgov Date: Tue, 19 Dec 2017 20:30:37 +0530 Subject: [PATCH 08/35] added JavaDoc comments --- .../java/fr/free/nrw/commons/data/Category.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/data/Category.java b/app/src/main/java/fr/free/nrw/commons/data/Category.java index 25214fdc6..87ab6f2ea 100644 --- a/app/src/main/java/fr/free/nrw/commons/data/Category.java +++ b/app/src/main/java/fr/free/nrw/commons/data/Category.java @@ -229,15 +229,30 @@ public class Category { + COLUMN_TIMES_USED + " INTEGER" + ");"; + /** + * Creates new database with provided SQLite database + * + * @param db Category database + */ public static void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_STATEMENT); } + /** + * Deletes existing database + * @param db Category database + */ public static void onDelete(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } + /** + * Updates given database + * @param db Category database + * @param from Exiting category id + * @param to New category id + */ public static void onUpdate(SQLiteDatabase db, int from, int to) { if (from == to) { return; From 7e6374f11a1dd4263003b7e75094a66ca1983230 Mon Sep 17 00:00:00 2001 From: prajgov Date: Tue, 19 Dec 2017 20:54:28 +0530 Subject: [PATCH 09/35] added JavaDoc comments --- .../main/java/fr/free/nrw/commons/Utils.java | 27 ++++++++++++++++ .../fr/free/nrw/commons/WelcomeActivity.java | 23 ++++++++++--- .../free/nrw/commons/utils/LengthUtils.java | 32 +++++++++++++++++++ 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index 87dab7f68..a8bd91a39 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -37,12 +37,23 @@ public class Utils { } } + /** + * Creates an URL for thumbnail + * + * @param filename Thumbnail file name + * @return URL of thumbnail + */ public static String makeThumbBaseUrl(@NonNull String filename) { String name = new PageTitle(filename).getPrefixedText(); String sha = new String(Hex.encodeHex(DigestUtils.md5(name))); return String.format("%s/%s/%s/%s", BuildConfig.IMAGE_URL_BASE, sha.substring(0, 1), sha.substring(0, 2), urlEncode(name)); } + /** + * Encodes given URL in UTF-8 format + * @param url Unformatted URL + * @return Formatted URL + */ public static String urlEncode(String url) { try { return URLEncoder.encode(url, "utf-8"); @@ -61,6 +72,11 @@ public class Utils { return string.substring(0, 1).toUpperCase(Locale.getDefault()) + string.substring(1); } + /** + * Generates licence name with given ID + * @param license License ID + * @return Name of license + */ public static int licenseNameFor(String license) { switch (license) { case Prefs.Licenses.CC_BY_3: @@ -81,6 +97,12 @@ public class Utils { throw new RuntimeException("Unrecognized license value: " + license); } + /** + * Fixing incorrect extension + * @param title File name + * @param extension Correct extension + * @return File with correct extension + */ public static String fixExtension(String title, String extension) { Pattern jpegPattern = Pattern.compile("\\.jpeg$", Pattern.CASE_INSENSITIVE); @@ -96,6 +118,11 @@ public class Utils { return title; } + /** + * Tells whether dark theme is active or not + * @param context Activity context + * @return The state of dark theme + */ public static boolean isDarkTheme(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("theme", false); } diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index f6c5999e9..17c4be137 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -18,6 +18,21 @@ public class WelcomeActivity extends BaseActivity { private WelcomePagerAdapter adapter = new WelcomePagerAdapter(); + /** + * Creates a way to change current activity to WelcomeActivity + * + * @param context Activity context + */ + public static void startYourself(Context context) { + Intent welcomeIntent = new Intent(context, WelcomeActivity.class); + context.startActivity(welcomeIntent); + } + + /** + * Initialises exiting fields and dependencies + * + * @param savedInstanceState WelcomeActivity bundled data + */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -30,14 +45,12 @@ public class WelcomeActivity extends BaseActivity { adapter.setCallback(this::finish); } + /** + * References WelcomePageAdapter to null before the activity is destroyed + */ @Override public void onDestroy() { adapter.setCallback(null); super.onDestroy(); } - - public static void startYourself(Context context) { - Intent welcomeIntent = new Intent(context, WelcomeActivity.class); - context.startActivity(welcomeIntent); - } } diff --git a/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java index 6fd9f9612..ac59c1bbe 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java @@ -37,6 +37,13 @@ public class LengthUtils { return computeAngleBetween(from, to) * 6371009.0D; // Earth's radius in meter } + /** + * Computes angle between two points + * + * @param from Point A + * @param to Point B + * @return Angle in radius + */ private static double computeAngleBetween(LatLng from, LatLng to) { return distanceRadians(Math.toRadians(from.getLatitude()), Math.toRadians(from.getLongitude()), @@ -44,18 +51,43 @@ public class LengthUtils { Math.toRadians(to.getLongitude())); } + /** + * Computes arc length between 2 points + * @param lat1 Latitude of point A + * @param lng1 Longitude of point A + * @param lat2 Latitude of point B + * @param lng2 Longitude of point B + * @return Arc length between the points + */ private static double distanceRadians(double lat1, double lng1, double lat2, double lng2) { return arcHav(havDistance(lat1, lat2, lng1 - lng2)); } + /** + * Gets twice the amount of arc sine of (x)^(1/2) + * @param x Angle in radian + * @return Twice the angle + */ private static double arcHav(double x) { return 2.0D * Math.asin(Math.sqrt(x)); } + /** + * Computes distance between two points that are on same Longitude + * @param lat1 Latitude of point A + * @param lat2 Latitude of point B + * @param longitude Longitude on which they lie + * @return Arc length between points + */ private static double havDistance(double lat1, double lat2, double longitude) { return hav(lat1 - lat2) + hav(longitude) * Math.cos(lat1) * Math.cos(lat2); } + /** + * Computes square sine function for half of the value entered + * @param x Angle in radians + * @return One-forth of square of sine function + */ private static double hav(double x) { double sinHalf = Math.sin(x * 0.5D); return sinHalf * sinHalf; From 3036a3372b085b1eca163a798ef42d29e163ddc6 Mon Sep 17 00:00:00 2001 From: maskara Date: Wed, 20 Dec 2017 02:02:10 +0530 Subject: [PATCH 10/35] Fix issue where map opens with incorrect coordinates --- .../java/fr/free/nrw/commons/media/MediaDetailFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 718ee4f58..75e366767 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -384,7 +384,7 @@ public class MediaDetailFragment extends DaggerFragment { private void openMap(LatLng coordinates) { //Open map app at given position Uri gmmIntentUri = Uri.parse( - "geo:0,0?q=" + coordinates.getLatitude() + "," + coordinates.getLatitude()); + "geo:0,0?q=" + coordinates.getLatitude() + "," + coordinates.getLongitude()); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) { From 0aa20effe0de188eddfaa351188cb4bfbd621886 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 21 Dec 2017 08:24:43 +0100 Subject: [PATCH 11/35] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ast/strings.xml | 3 ++- app/src/main/res/values-bn/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 4 ++-- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 22 +++++++++++++++++++++- app/src/main/res/values-kab/strings.xml | 3 ++- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 2 +- 10 files changed, 33 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml index 13fb52168..af7db5bcd 100644 --- a/app/src/main/res/values-ast/strings.xml +++ b/app/src/main/res/values-ast/strings.xml @@ -68,7 +68,7 @@ %d cargues Nun s\'alcontró denguna categoría que case con %1$s - Amieste categoríes pa facer les imaxes más fáciles d\'alcontrar en Wikimedia Commons.\n\nPrincipie a escribir p\'amestar categoríes.\nToque nesti mensaxe (o calque atrás) pa saltar esti pasu. + Amiesta categoríes pa facer les imaxes más fáciles d\'alcontrar en Wikimedia Commons.\nPrincipia a escribir p\'amestar categoríes. Categoríes Configuración Date d\'alta @@ -203,4 +203,5 @@ Anicia sesión na to cuenta L\'allugamientu nun camudó. L\'allugamientu nun ta disponible. + Ríquese permisu p\'amosar una llista de llugares cercanos diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 50babcad9..e267c3a9a 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -68,7 +68,7 @@ %dটি আপলোড %1$s-এর সাথে মিলে এমন কোন বিষয়শ্রেণী পাওয়া যায়নি - উইকিমিডিয়া কমন্স থেকে আপনার মিডিয়া ফাইলটি সহজে খুঁজে পেতে বিষয়শ্রেণী যুক্ত করুন।\n\nবিষয়শ্রেণী যোগ করার জন্য টাইপিং শুরু করুন।\nএই ধাপটি বাতিল করতে এই বার্তাতে (বা ফিরে যান) টোকা দিন। + উইকিমিডিয়া কমন্স থেকে আপনার মিডিয়া ফাইলটি সহজে খুঁজে পেতে বিষয়শ্রেণী যুক্ত করুন।\n\nবিষয়শ্রেণী যোগ করার জন্য টাইপিং শুরু করুন। বিষয়শ্রেণীসমূহ সেটিং নিবন্ধন করুন diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 93acf627a..d3c207184 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -68,7 +68,7 @@ %d hochgeladene Dateien Die Kategorie „%1$s“ wurde nicht gefunden - Füge Kategorien hinzu, um deine Bilder auf Wikimedia Commons auffindbarer zu machen.\n\nBeginn zu schreiben, um Kategorien hinzuzufügen. + Füge Kategorien hinzu, um deine Bilder auf Wikimedia Commons auffindbarer zu machen.\nBeginne mit der Eingabe, um Kategorien hinzuzufügen. Kategorien Einstellungen Registrieren diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 4b06e5ad8..6675370ba 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -68,7 +68,7 @@ %d subidas No se encontraron categorías que coincidieran con %1$s - Añade categorías para hacer que tus imágenes sean más fáciles de encontrar en Wikimedia Commons.\n -\n -Comienza a escribir para añadir categorías. + Añade categorías para hacer que tus imágenes sean más fáciles de encontrar en Wikimedia Commons.\nComienza a escribir para añadir categorías. Categorías Ajustes Regístrate diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f2cd19624..18953d716 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -68,12 +68,12 @@ %d téléversements Aucune catégorie correspondant à %1$s trouvée - Ajoutez des catégories pour rendre vos images plus simples à trouver sur Wikimedia Commons. \n-\n-Commencer à ajouter des catégories. + Ajoutez des catégories pour rendre vos images plus simples à trouver sur Wikimedia Commons. \nCommencer à ajouter des catégories. Catégories Paramètres S’inscrire À propos - L’application Wikimedia Commons est une application ouverte créée et tenue à jour par les bénéficiaires et volontaires de la communauté Wikimedia. La fondation Wikimedia n’est pas associée à la création, le développement ou l’entretien de l’application. + L’application Wikimedia Commons est une application open source créée et tenue à jour par les bénéficiaires et volontaires de la communauté Wikimedia. La fondation Wikimedia n’est pas associée à la création, le développement ou l’entretien de l’application. <a href=\"https://github.com/commons-app/apps-android-commons\">Sources</a> et <a href=\"https://commons-app.github.io/\">site web</a> sur GitHub. Créer un nouveau <a href=\"https://github.com/commons-app/apps-android-commons/issues\">signalement GitHub</a> pour signales des bogues ou des suggestions. <a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Politique de confidentialité</a> <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Remerciements</a> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c34d53bae..b1106e25d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -68,7 +68,7 @@ %d caricamenti Non è stata trovata alcuna categoria che contiene %1$s - Aggiungi categorie per rendere le tue immagini più facilmente individuabili su Wikimedia Commons.\n -\n -Inizia a digitare per aggiungere categorie. + Aggiungi categorie per rendere le tue immagini più facilmente individuabili su Wikimedia Commons.\nInizia a digitare per aggiungere categorie. Categorie Impostazioni Registrati diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index e6fe129e1..f2d2369cf 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -49,6 +49,9 @@ 検索するカテゴリ 保存 更新 + お使いのデバイスではGPSが無効になっています。有効にしますか? + GPSを有効にする + まだ何もアップロードされていません。 \@string/contributions_subtitle_zero %d 件のアップロード @@ -60,7 +63,7 @@ %d 件のアップロード %1$s に一致するカテゴリが見つかりません - あなたの画像をウィキメディア・コモンズで見つけやすくするためにカテゴリを追加してください。\n\nカテゴリ名の入力を開始してください。\nこの手順をスキップするにはこのメッセージをタップしてください(または戻るボタン)。 + あなたの画像をウィキメディア・コモンズで見つけやすくするためにカテゴリを追加してください。\n\nカテゴリ名の入力を開始してください。\nこの手順をスキップするにはこのメッセージをタップしてください(または戻るボタン)。 カテゴリ 設定 利用者登録 @@ -126,9 +129,11 @@ 不明なライセンス 更新 必要な権限:外部ストレージを読み込みます。これがなければアプリは機能しません。 + 必要な権限:外部ストレージを作成します。これがなければアプリは機能しません。 オプションの権限:カテゴリ候補の現在の位置を取得する 承認 周りの場所 + 付近の場所が見つかりません 警告 このファイルが既にコモンズにあります。本当にアップロードしますか? はい @@ -146,6 +151,9 @@ ウィキデータを使用してください (警告:これを無効にすると、モバイルデータを大量に消費する可能性があります) 最近のアップロードファイルに表示する最大件数 + 最大限 + 最近のアップロードファイルに表示する最大件数 + 2段階認証は現在サポートされていません。 ログアウトしてもよろしいですか? 背景画像 画像がありません @@ -155,18 +163,30 @@ レインボーブリッジ チューリップ ウィキペディアへようこそ + シドニーオペラハウス キャンセル 開く 閉じる ホーム アップロード + 付近 このアプリについて 設定 フィードバック ログアウト チュートリアル + 場所の権限がないと、近くの場所を表示できません 説明がありません ウィキデータ項目 + 画像をキャッシュする際のエラー + ファイル固有の説明的な表題。ファイル名として使われます。平易な言葉を使い、空白を入れることができます。拡張子は含めないでください。 + 可能な限りメディアを説明してください:どこで撮られましたか?それは何を示していますか?文脈とは何ですか?物や人を説明してください。容易に推測できない情報、例えば風景の場合の時刻を明らかにする。メディアに珍しいことがある場合は、何が珍しいのかを説明してください。 + 権限を取得 外部ストレージを使用 + アプリ内のカメラで撮影した写真を端末に保存する + ログファイルを送信する + メールで開発者にログファイルを送信する + 自分のアカウントにログイン + 場所は変更されていません。 位置が無効です。 diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 34152a670..94f70c1ea 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -68,7 +68,7 @@ %d n usali Ulac taggayin imenṭaḍen akked %1$s i yettwafen - Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin. + Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin. Taggayin Iɣewwaṛen Jerred @@ -203,4 +203,5 @@ Qqen ar umiḍan-ik Adeg ur ibeddel ara. Ulac adeg + Ilaq usireg i uskan tabdart n wadigen iqerben diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 0e568ab8c..5af2947a1 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -67,7 +67,7 @@ %d개 업로드 %1$s와(과) 일치하는 분류를 찾을 수 없습니다 - 위키미디어 공용에서 그림을 더 찾기 쉽게 만들기 위해 분류를 추가합니다.\n -\n -분류를 추가하려면 입력을 시작하세요. + 위키미디어 공용에서 그림을 더 찾기 쉽게 만들기 위해 분류를 추가합니다.\n분류를 추가하려면 입력을 시작하세요. 분류 설정 가입하기 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 271fbed30..cba13eb68 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -68,7 +68,7 @@ %d次上传 没有找到匹配%1$s的分类 - 添加分类使您的图像更容易在维基共享资源被找到。\n -\n -开始输入以添加分类。 + 添加分类使您的图像更容易在维基共享资源被找到。开始输入以添加分类。 分类 设置 注册 From 4ef996f2c0184a75cdc9ec56618bd623de4388fb Mon Sep 17 00:00:00 2001 From: prajgov Date: Thu, 21 Dec 2017 18:11:44 +0530 Subject: [PATCH 12/35] added JavaDoc comments --- .../main/java/fr/free/nrw/commons/Media.java | 67 ++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Media.java b/app/src/main/java/fr/free/nrw/commons/Media.java index c75aae2a5..27888e350 100644 --- a/app/src/main/java/fr/free/nrw/commons/Media.java +++ b/app/src/main/java/fr/free/nrw/commons/Media.java @@ -47,16 +47,35 @@ public class Media implements Parcelable { private HashMap tags = new HashMap<>(); private @Nullable LatLng coordinates; + /** + * Provides local constructor + */ protected Media() { this.categories = new ArrayList<>(); this.descriptions = new HashMap<>(); } + /** + * Provides a minimal constructor + * + * @param filename Media filename + */ public Media(String filename) { this(); this.filename = filename; } + /** + * Provide Media constructor + * @param localUri Media URI + * @param imageUrl Media image URL + * @param filename Media filename + * @param description Media description + * @param dataLength Media date length + * @param dateCreated Media creation date + * @param dateUploaded Media date uploaded + * @param creator Media creator + */ public Media(Uri localUri, String imageUrl, String filename, String description, long dataLength, Date dateCreated, @Nullable Date dateUploaded, String creator) { this(); @@ -90,19 +109,33 @@ public class Media implements Parcelable { descriptions = in.readHashMap(ClassLoader.getSystemClassLoader()); } + /** + * Gets tag of media + * @param key Media key + * @return Media tag + */ public Object getTag(String key) { return tags.get(key); } + /** + * Modifies tag of media + * @param key Media key + * @param value Media value + */ public void setTag(String key, Object value) { tags.put(key, value); } + /** + * Gets media display title + * @return Media title + */ public String getDisplayTitle() { if (filename == null) { return ""; } - // FIXME: Gross hack bercause my regex skills suck maybe or I am too lazy who knows + // FIXME: Gross hack because my regex skills suck maybe or I am too lazy who knows String title = getFilePageTitle().getDisplayText().replaceFirst("^File:", ""); Matcher matcher = displayTitlePattern.matcher(title); if (matcher.matches()) { @@ -112,14 +145,27 @@ public class Media implements Parcelable { } } + /** + * Gets file page title + * @return New media page title + */ public PageTitle getFilePageTitle() { return new PageTitle("File:" + getFilename().replaceFirst("^File:", "")); } + /** + * Gets local URI + * @return Media local URI + */ public Uri getLocalUri() { return localUri; } + /** + * Gets image URL + * can be null. + * @return Image URL + */ @Nullable public String getImageUrl() { if (imageUrl == null && this.getFilename() != null) { @@ -304,6 +350,10 @@ public class Media implements Parcelable { this.categories.addAll(categories); } + /** + * Modifies (or sets) media descriptions + * @param descriptions Media descriptions + */ void setDescriptions(Map descriptions) { for (String key : this.descriptions.keySet()) { this.descriptions.remove(key); @@ -313,6 +363,11 @@ public class Media implements Parcelable { } } + /** + * Gets media description in preferred language + * @param preferredLanguage Language preferred + * @return Description in preferred language + */ public String getDescription(String preferredLanguage) { if (descriptions.containsKey(preferredLanguage)) { // See if the requested language is there. @@ -329,11 +384,21 @@ public class Media implements Parcelable { } } + /** + * Method of Parcelable interface + * @return zero + */ @Override public int describeContents() { return 0; } + /** + * Creates a way to transfer information between two or more + * activities. + * @param parcel Instance of Parcel + * @param flags Parcel flag + */ @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeParcelable(localUri, flags); From 28264e93ce0753f75735c8d6fe1ba95611c551c0 Mon Sep 17 00:00:00 2001 From: prajgov Date: Thu, 21 Dec 2017 18:32:54 +0530 Subject: [PATCH 13/35] added JavaDoc comments --- .../free/nrw/commons/WelcomePagerAdapter.java | 41 +++++++++++++++---- .../fr/free/nrw/commons/mwapi/LogBuilder.java | 21 ++++++++++ .../fr/free/nrw/commons/mwapi/LogTask.java | 10 +++++ .../free/nrw/commons/mwapi/MediaResult.java | 14 +++++++ .../free/nrw/commons/mwapi/UploadResult.java | 33 +++++++++++++++ 5 files changed, 112 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java index 9669196e9..eedc5ee0d 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -10,13 +10,6 @@ import butterknife.ButterKnife; import butterknife.OnClick; public class WelcomePagerAdapter extends PagerAdapter { - private static final int PAGE_FINAL = 4; - private Callback callback; - - public interface Callback { - void onYesClicked(); - } - static final int[] PAGE_LAYOUTS = new int[]{ R.layout.welcome_wikipedia, R.layout.welcome_do_upload, @@ -24,16 +17,34 @@ public class WelcomePagerAdapter extends PagerAdapter { R.layout.welcome_image_details, R.layout.welcome_final }; + private static final int PAGE_FINAL = 4; + private Callback callback; + /** + * Changes callback to provided one + * + * @param callback New callback + * it can be null. + */ public void setCallback(@Nullable Callback callback) { this.callback = callback; } + /** + * Gets total number of layouts + * @return Number of layouts + */ @Override public int getCount() { return PAGE_LAYOUTS.length; } + /** + * Compares given view with provided object + * @param view Adapter view + * @param object Adapter object + * @return Equality between view and object + */ @Override public boolean isViewFromObject(View view, Object object) { return (view == object); @@ -52,16 +63,32 @@ public class WelcomePagerAdapter extends PagerAdapter { return layout; } + /** + * Provides a way to remove an item from container + * @param container Adapter view group container + * @param position Index of item + * @param obj Adapter object + */ @Override public void destroyItem(ViewGroup container, int position, Object obj) { container.removeView((View) obj); } + /** + * Interface used create on clicked callback(s). + */ + public interface Callback { + void onYesClicked(); + } + class ViewHolder { ViewHolder(View view) { ButterKnife.bind(this, view); } + /** + * Triggers on click callback on button click + */ @OnClick(R.id.welcomeYesButton) void onClicked() { if (callback != null) { diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java index 7a4b294fa..c855d788b 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java @@ -22,6 +22,14 @@ public class LogBuilder { private final String schema; private final SharedPreferences prefs; + /** + * Main constructor of LogBuilder + * + * @param schema Log schema + * @param revision Log revision + * @param mwApi Wiki media API instance + * @param prefs Instance of SharedPreferences + */ LogBuilder(String schema, long revision, MediaWikiApi mwApi, SharedPreferences prefs) { this.prefs = prefs; this.data = new JSONObject(); @@ -30,6 +38,12 @@ public class LogBuilder { this.mwApi = mwApi; } + /** + * Adds data to preferences + * @param key Log key + * @param value Log object value + * @return LogBuilder + */ public LogBuilder param(String key, Object value) { try { data.put(key, value); @@ -39,6 +53,10 @@ public class LogBuilder { return this; } + /** + * Encodes JSON object to URL + * @return URL to JSON object + */ URL toUrl() { JSONObject fullData = new JSONObject(); try { @@ -66,6 +84,9 @@ public class LogBuilder { logTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, this); } + /** + * Logs in false + */ public void log() { log(false); } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/LogTask.java b/app/src/main/java/fr/free/nrw/commons/mwapi/LogTask.java index 3fce8aaf1..e564a50ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/LogTask.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/LogTask.java @@ -6,10 +6,20 @@ class LogTask extends AsyncTask { private final MediaWikiApi mwApi; + /** + * Main constructor of LogTask + * + * @param mwApi Media wiki API instance + */ public LogTask(MediaWikiApi mwApi) { this.mwApi = mwApi; } + /** + * Logs events in background + * @param logBuilders LogBuilder instance + * @return Background success state ( TRUE or FALSE ) + */ @Override protected Boolean doInBackground(LogBuilder... logBuilders) { return mwApi.logEvents(logBuilders); diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaResult.java b/app/src/main/java/fr/free/nrw/commons/mwapi/MediaResult.java index cfddf8c15..f2f34ce6d 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaResult.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/MediaResult.java @@ -4,15 +4,29 @@ public class MediaResult { private final String wikiSource; private final String parseTreeXmlSource; + /** + * Full-fledged constructor of MediaResult + * + * @param wikiSource Media wiki source + * @param parseTreeXmlSource Media tree parsed in XML + */ MediaResult(String wikiSource, String parseTreeXmlSource) { this.wikiSource = wikiSource; this.parseTreeXmlSource = parseTreeXmlSource; } + /** + * Gets wiki source + * @return Wiki source + */ public String getWikiSource() { return wikiSource; } + /** + * Gets tree parsed in XML + * @return XML parsed tree + */ public String getParseTreeXmlSource() { return parseTreeXmlSource; } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/UploadResult.java b/app/src/main/java/fr/free/nrw/commons/mwapi/UploadResult.java index 34d050b2c..9422497b3 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/UploadResult.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/UploadResult.java @@ -9,11 +9,24 @@ public class UploadResult { private String imageUrl; private String canonicalFilename; + /** + * Minimal constructor + * + * @param resultStatus Upload result status + * @param errorCode Upload error code + */ UploadResult(String resultStatus, String errorCode) { this.resultStatus = resultStatus; this.errorCode = errorCode; } + /** + * Full-fledged constructor + * @param resultStatus Upload result status + * @param dateUploaded Uploaded date + * @param canonicalFilename Uploaded file name + * @param imageUrl Uploaded image file name + */ UploadResult(String resultStatus, Date dateUploaded, String canonicalFilename, String imageUrl) { this.resultStatus = resultStatus; this.dateUploaded = dateUploaded; @@ -21,22 +34,42 @@ public class UploadResult { this.imageUrl = imageUrl; } + /** + * Gets uploaded date + * @return Upload date + */ public Date getDateUploaded() { return dateUploaded; } + /** + * Gets image url + * @return Uploaded image url + */ public String getImageUrl() { return imageUrl; } + /** + * Gets canonical file name + * @return Uploaded file name + */ public String getCanonicalFilename() { return canonicalFilename; } + /** + * Gets upload error code + * @return Error code + */ public String getErrorCode() { return errorCode; } + /** + * Gets upload result status + * @return Upload result status + */ public String getResultStatus() { return resultStatus; } From 2ef4fdc46581f9a49ce00fab24024c466f950d86 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:38:53 +0530 Subject: [PATCH 14/35] Update LicenseList.java --- app/src/main/java/fr/free/nrw/commons/LicenseList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/LicenseList.java b/app/src/main/java/fr/free/nrw/commons/LicenseList.java index 536be225b..a2a4bb3ea 100644 --- a/app/src/main/java/fr/free/nrw/commons/LicenseList.java +++ b/app/src/main/java/fr/free/nrw/commons/LicenseList.java @@ -14,7 +14,7 @@ import java.util.Locale; import java.util.Map; /** - * Represents LicenseList + * Represents a list of */ public class LicenseList { private Map licenses = new HashMap<>(); @@ -124,4 +124,4 @@ public class LicenseList { } } -} \ No newline at end of file +} From 80635adbfc895bf155e6831d2ab0c80747d1ca77 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:40:16 +0530 Subject: [PATCH 15/35] Update Media.java --- app/src/main/java/fr/free/nrw/commons/Media.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Media.java b/app/src/main/java/fr/free/nrw/commons/Media.java index 27888e350..726d787f3 100644 --- a/app/src/main/java/fr/free/nrw/commons/Media.java +++ b/app/src/main/java/fr/free/nrw/commons/Media.java @@ -119,7 +119,7 @@ public class Media implements Parcelable { } /** - * Modifies tag of media + * Modifies( or creates a) tag of media * @param key Media key * @param value Media value */ From 8f32fc1c0173d18313da21d7f2e7d1324dc782d1 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:47:17 +0530 Subject: [PATCH 16/35] Update CommonsApplication.java --- .../fr/free/nrw/commons/CommonsApplication.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index c2da8ad98..b9ec73863 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -44,15 +44,20 @@ import timber.log.Timber; ) public class CommonsApplication extends DaggerApplication { - public static final String DEFAULT_EDIT_SUMMARY = "Uploaded using Android Commons app"; - public static final String FEEDBACK_EMAIL = "commons-app-android@googlegroups.com"; - public static final String LOGS_PRIVATE_EMAIL = "commons-app-android-private@googlegroups.com"; - public static final String FEEDBACK_EMAIL_SUBJECT = "Commons Android App (%s) Feedback"; @Inject SessionManager sessionManager; @Inject DBOpenHelper dbOpenHelper; @Inject @Named("default_preferences") SharedPreferences defaultPrefs; @Inject @Named("application_preferences") SharedPreferences applicationPrefs; @Inject @Named("prefs") SharedPreferences otherPrefs; + + public static final String DEFAULT_EDIT_SUMMARY = "Uploaded using Android Commons app"; + + public static final String FEEDBACK_EMAIL = "commons-app-android@googlegroups.com"; + + public static final String LOGS_PRIVATE_EMAIL = "commons-app-android-private@googlegroups.com"; + + public static final String FEEDBACK_EMAIL_SUBJECT = "Commons Android App (%s) Feedback"; + private CommonsApplicationComponent component; private RefWatcher refWatcher; From 1d94b8a87c1589a5ebc387cd962b965d3c3b757a Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:54:37 +0530 Subject: [PATCH 17/35] Update CommonsApplication.java --- .../free/nrw/commons/CommonsApplication.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index b9ec73863..ee0f10019 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -61,17 +61,6 @@ public class CommonsApplication extends DaggerApplication { private CommonsApplicationComponent component; private RefWatcher refWatcher; - /** - * Provides a way to get member refWatcher - * - * @param context Application context - * @return application member refWatcher - */ - public static RefWatcher getRefWatcher(Context context) { - CommonsApplication application = (CommonsApplication) context.getApplicationContext(); - return application.refWatcher; - } - /** * Used to declare and initialize various components and dependencies */ @@ -106,11 +95,22 @@ public class CommonsApplication extends DaggerApplication { } return LeakCanary.install(this); } - - /** - * Helps in injecting dependency library Dagger - * @return Dagger injector + + /** + * Provides a way to get member refWatcher + * + * @param context Application context + * @return application member refWatcher */ + public static RefWatcher getRefWatcher(Context context) { + CommonsApplication application = (CommonsApplication) context.getApplicationContext(); + return application.refWatcher; + } + + /** + * Helps in injecting dependency library Dagger + * @return Dagger injector + */ @Override protected AndroidInjector applicationInjector() { return injector(); From 278b655a10d2aaf249e3cb36cb8a82755ec36e73 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:56:25 +0530 Subject: [PATCH 18/35] Update LicenseList.java --- app/src/main/java/fr/free/nrw/commons/LicenseList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/LicenseList.java b/app/src/main/java/fr/free/nrw/commons/LicenseList.java index a2a4bb3ea..d08e314cc 100644 --- a/app/src/main/java/fr/free/nrw/commons/LicenseList.java +++ b/app/src/main/java/fr/free/nrw/commons/LicenseList.java @@ -14,7 +14,7 @@ import java.util.Locale; import java.util.Map; /** - * Represents a list of + * Represents a list of Licenses */ public class LicenseList { private Map licenses = new HashMap<>(); From d3f2ef32fd6c8fce7aba8da8bb36211e19eb107f Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Thu, 21 Dec 2017 20:58:02 +0530 Subject: [PATCH 19/35] Update Utils.java --- app/src/main/java/fr/free/nrw/commons/Utils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index a8bd91a39..967f2cf8e 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -50,9 +50,9 @@ public class Utils { } /** - * Encodes given URL in UTF-8 format + * URL Encode an URL in UTF-8 format * @param url Unformatted URL - * @return Formatted URL + * @return Encoded URL */ public static String urlEncode(String url) { try { From 1bb7dbeb13271a3ae0641b80fbc5074a45e5f744 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 11:35:16 +0530 Subject: [PATCH 20/35] Update build.gradle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b0e8b6718..6b7e5dc00 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath "com.android.tools.build:gradle:${project.gradleVersion}" classpath 'com.dicedmelon.gradle:jacoco-android:0.1.1' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.7.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" From 57820e75b859a0296cd3c53dda03680ec89cee3b Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 11:42:35 +0530 Subject: [PATCH 21/35] Update LengthUtils.java --- .../main/java/fr/free/nrw/commons/utils/LengthUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java index ac59c1bbe..8b687164b 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/LengthUtils.java @@ -64,9 +64,9 @@ public class LengthUtils { } /** - * Gets twice the amount of arc sine of (x)^(1/2) + * Computes inverse of haversine * @param x Angle in radian - * @return Twice the angle + * @return Inverse of haversine */ private static double arcHav(double x) { return 2.0D * Math.asin(Math.sqrt(x)); @@ -84,9 +84,9 @@ public class LengthUtils { } /** - * Computes square sine function for half of the value entered + * Computes haversine * @param x Angle in radians - * @return One-forth of square of sine function + * @return Haversine of x */ private static double hav(double x) { double sinHalf = Math.sin(x * 0.5D); From 75056581d94b2af7be8011aa2633cce4f521433a Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 11:43:39 +0530 Subject: [PATCH 22/35] Update LogBuilder.java --- app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java index c855d788b..2a2456cc3 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java @@ -83,10 +83,7 @@ public class LogBuilder { LogTask logTask = new LogTask(mwApi); logTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, this); } - - /** - * Logs in false - */ + public void log() { log(false); } From af20ec068c49e15badeb4fb0600b8c1922175574 Mon Sep 17 00:00:00 2001 From: prajgov Date: Fri, 22 Dec 2017 11:46:48 +0530 Subject: [PATCH 23/35] added JavaDoc comments --- app/src/main/java/fr/free/nrw/commons/data/Category.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/data/Category.java b/app/src/main/java/fr/free/nrw/commons/data/Category.java index 87ab6f2ea..05a8681f7 100644 --- a/app/src/main/java/fr/free/nrw/commons/data/Category.java +++ b/app/src/main/java/fr/free/nrw/commons/data/Category.java @@ -42,10 +42,10 @@ public class Category { } /** - * Find persisted category in database, based on its name. + * Find persisted category in database table, based on its name. * @param client ContentProviderClient to handle DB connection * @param name Category's name - * @return category from database, or null if not found + * @return category from , database table, or null if not found */ public static @Nullable Category find(ContentProviderClient client, String name) { Cursor cursor = null; @@ -230,7 +230,7 @@ public class Category { + ");"; /** - * Creates new database with provided SQLite database + * Creates new table with provided SQLite database * * @param db Category database */ @@ -239,7 +239,7 @@ public class Category { } /** - * Deletes existing database + * Deletes existing table * @param db Category database */ public static void onDelete(SQLiteDatabase db) { From f4cfa5d544e440144d0ee8d517ec4966654a5842 Mon Sep 17 00:00:00 2001 From: prajgov Date: Fri, 22 Dec 2017 11:58:50 +0530 Subject: [PATCH 24/35] added JavaDoc comments --- .../fr/free/nrw/commons/data/Category.java | 213 +++++++++--------- 1 file changed, 104 insertions(+), 109 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/data/Category.java b/app/src/main/java/fr/free/nrw/commons/data/Category.java index 05a8681f7..be4a29846 100644 --- a/app/src/main/java/fr/free/nrw/commons/data/Category.java +++ b/app/src/main/java/fr/free/nrw/commons/data/Category.java @@ -25,6 +25,107 @@ public class Category { private int timesUsed; // Getters/setters + /** + * Gets name + * + * @return name + */ + public String getName() { + return name; + } + + /** + * Modifies name + * + * @param name Category name + */ + public void setName(String name) { + this.name = name; + } + + /** + * Gets last used date + * + * @return Last used date + */ + private Date getLastUsed() { + // warning: Date objects are mutable. + return (Date)lastUsed.clone(); + } + + /** + * Modifies last used date + * + * @param lastUsed Category date + */ + public void setLastUsed(Date lastUsed) { + // warning: Date objects are mutable. + this.lastUsed = (Date)lastUsed.clone(); + } + + /** + * Generates new last used date + */ + private void touch() { + lastUsed = new Date(); + } + + /** + * Gets no. of times the category is used + * + * @return no. of times used + */ + private int getTimesUsed() { + return timesUsed; + } + + /** + * Modifies no. of times used + * + * @param timesUsed Category used times + */ + public void setTimesUsed(int timesUsed) { + this.timesUsed = timesUsed; + } + + /** + * Increments timesUsed by 1 and sets last used date as now. + */ + public void incTimesUsed() { + timesUsed++; + touch(); + } + + //region Database/content-provider stuff + + /** + * Persist category. + * @param client ContentProviderClient to handle DB connection + */ + public void save(ContentProviderClient client) { + try { + if (contentUri == null) { + contentUri = client.insert(CategoryContentProvider.BASE_URI, this.toContentValues()); + } else { + client.update(contentUri, toContentValues(), null, null); + } + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + + /** + * Gets content values + * + * @return Content values + */ + private ContentValues toContentValues() { + ContentValues cv = new ContentValues(); + cv.put(Table.COLUMN_NAME, getName()); + cv.put(Table.COLUMN_LAST_USED, getLastUsed().getTime()); + cv.put(Table.COLUMN_TIMES_USED, getTimesUsed()); + return cv; + } /** * Gets category from cursor @@ -42,10 +143,10 @@ public class Category { } /** - * Find persisted category in database table, based on its name. + * Find persisted category in database, based on its name. * @param client ContentProviderClient to handle DB connection * @param name Category's name - * @return category from , database table, or null if not found + * @return category from database, or null if not found */ public static @Nullable Category find(ContentProviderClient client, String name) { Cursor cursor = null; @@ -100,112 +201,6 @@ public class Category { return items; } - /** - * Gets name - * - * @return name - */ - public String getName() { - return name; - } - - /** - * Modifies name - * - * @param name Category name - */ - public void setName(String name) { - this.name = name; - } - - /** - * Gets last used date - * - * @return Last used date - */ - private Date getLastUsed() { - // warning: Date objects are mutable. - return (Date) lastUsed.clone(); - } - - /** - * Modifies last used date - * - * @param lastUsed Category date - */ - public void setLastUsed(Date lastUsed) { - // warning: Date objects are mutable. - this.lastUsed = (Date) lastUsed.clone(); - } - - /** - * Generates new last used date - */ - private void touch() { - lastUsed = new Date(); - } - - //region Database/content-provider stuff - - /** - * Gets no. of times the category is used - * - * @return no. of times used - */ - private int getTimesUsed() { - return timesUsed; - } - - /** - * Modifies no. of times used - * - * @param timesUsed Category used times - */ - public void setTimesUsed(int timesUsed) { - this.timesUsed = timesUsed; - } - - /** - * Increments timesUsed by 1 and sets last used date as now. - */ - public void incTimesUsed() { - timesUsed++; - touch(); - } - - /** - * Persist category. - * - * @param client ContentProviderClient to handle DB connection - */ - public void save(ContentProviderClient client) { - try { - if (contentUri == null) { - contentUri = client.insert(CategoryContentProvider.BASE_URI, this.toContentValues()); - } else { - client.update(contentUri, toContentValues(), null, null); - } - } catch (RemoteException e) { - throw new RuntimeException(e); - } - } - - /** - * Gets content values - * - * @return Content values - */ - private ContentValues toContentValues() { - ContentValues cv = new ContentValues(); - cv.put(Table.COLUMN_NAME, getName()); - cv.put(Table.COLUMN_LAST_USED, getLastUsed().getTime()); - cv.put(Table.COLUMN_TIMES_USED, getTimesUsed()); - return cv; - } - - /** - * Represents table - */ public static class Table { public static final String TABLE_NAME = "categories"; @@ -278,4 +273,4 @@ public class Category { } } //endregion -} +} \ No newline at end of file From f86fb5ed53a1b77b241d0aa9fb7b88d75bd9d2a2 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 12:02:02 +0530 Subject: [PATCH 25/35] Update WelcomePagerAdapter.java --- app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java index eedc5ee0d..a346655cf 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -74,9 +74,6 @@ public class WelcomePagerAdapter extends PagerAdapter { container.removeView((View) obj); } - /** - * Interface used create on clicked callback(s). - */ public interface Callback { void onYesClicked(); } From d4f35f2c74c3eabbb6a3f63efc3484fe22039ef4 Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 12:05:11 +0530 Subject: [PATCH 26/35] Update WelcomeActivity.java --- .../fr/free/nrw/commons/WelcomeActivity.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index 17c4be137..72d122e77 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -18,16 +18,6 @@ public class WelcomeActivity extends BaseActivity { private WelcomePagerAdapter adapter = new WelcomePagerAdapter(); - /** - * Creates a way to change current activity to WelcomeActivity - * - * @param context Activity context - */ - public static void startYourself(Context context) { - Intent welcomeIntent = new Intent(context, WelcomeActivity.class); - context.startActivity(welcomeIntent); - } - /** * Initialises exiting fields and dependencies * @@ -53,4 +43,14 @@ public class WelcomeActivity extends BaseActivity { adapter.setCallback(null); super.onDestroy(); } + + /** + * Creates a way to change current activity to WelcomeActivity + * + * @param context Activity context + */ + public static void startYourself(Context context) { + Intent welcomeIntent = new Intent(context, WelcomeActivity.class); + context.startActivity(welcomeIntent); + } } From a4e8b9a26af94c149f171342e109af0a6c94925c Mon Sep 17 00:00:00 2001 From: Prajeen Govardhanam <32291277+prajgov@users.noreply.github.com> Date: Fri, 22 Dec 2017 12:18:17 +0530 Subject: [PATCH 27/35] Update WelcomeActivity.java --- app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index 72d122e77..7bfb22890 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -43,7 +43,7 @@ public class WelcomeActivity extends BaseActivity { adapter.setCallback(null); super.onDestroy(); } - + /** * Creates a way to change current activity to WelcomeActivity * From f7d4914882aec87254749dc070948cb1e3ec32c0 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 25 Dec 2017 15:03:30 +0100 Subject: [PATCH 28/35] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-bg/strings.xml | 4 +- app/src/main/res/values-ca/strings.xml | 3 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 123 +++++++++++++++++++++---- 5 files changed, 113 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 2f874d462..4628ca951 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -8,8 +8,8 @@ Регистриране Влизане в системата Изчакайте… - Успешно вписване. - Неуспешно вписване! + Успешно влизане. + Неуспешно влизане! Файлът не е намерен. Моля, опитайте с друг файл. Неуспешен опит за удостоверяване! Качването започна! diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 838e6938e..f0e946d90 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -13,7 +13,7 @@ No s\'ha trobat el fitxer. Proveu-ho amb un altre fitxer. L\'autenticació ha fallat! Ha començat la càrrega! - S\'ha carregat %1$s ! + S’ha pujat %1$s. Prem per veure la teva càrrega Començant la càrrega al servidor de %1$s Carregant %1$s @@ -78,6 +78,7 @@ Wikimedia:Commons-android-texts-sobre privacitat/ca Quant a Envia comentaris (per correu) + No hi ha cap client de correu instal·lat Categories usades recentment S’està esperant la primera sincronització… Encara no heu carregat cap foto. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 6675370ba..c30e5c70d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -13,7 +13,7 @@ No se encontró el archivo. Prueba con otro. Falló la autenticación. Ha comenzado la carga. - ¡Se subieron %1$s! + Se ha cargado %1$s. Pulsa para ver tu subida Empezando la subida de %1$s Cargando %1$s diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index ec68503b4..bc08a1f55 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -67,7 +67,7 @@ %d अपलोड %1$s से कोई श्रेणी मेल नहीं खाती - अपने छवियों को विकिमीडिया कॉमन्स में अधिक ढूँढने लायक बनाने हेतु श्रेणियाँ लगायें। \n\nश्रेणी जोड़ने हेतु लिखना शुरू करें।\nइसे न करने हेतु इस संदेश को टैप करें या पीछे का बटन दबायें। + विकिमीडिया कॉमन्स पर अपनी छवियों को अधिक खोजने योग्य बनाने के लिए श्रेणियां जोड़ें|\nश्रेणियां जोड़ने के लिए टाइप करना प्रारंभ करें| श्रेणियाँ पसंद खाता खोलें diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 5e4bd93ce..d7288a1e8 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,6 +1,6 @@ - Wikimedia Commons + Commons Ayarlar Kullanıcı adı Parola @@ -31,6 +31,7 @@ Yükleniyor Galeri\'den Fotoğraf çek + Yakınındakiler Yüklemelerim Paylaş Tarayıcıda görüntüle @@ -41,6 +42,7 @@ Oturum açılamıyor - lütfen parolanızı kontrol edin Çok sayıda başarısız girişimde bulundunuz. Birkaç dakika sonra tekrar deneyin. Üzgünüz, bu kullanıcı Commons\'ta engellendi + İki faktörlü kimlik doğrulama kodunu sağlamalısınız. Oturum açma başarısız Yükle Bu grubun adı @@ -49,39 +51,53 @@ Kategorileri ara Kaydet Yenile - - Henüz yükleme yok - 1 yükleme + GPS, cihazınızda devre dışı bırakılmıştır. Etkinleştirmek ister misiniz? + GPS\'i etkinleştir + Henüz yüklenmedi + + \@string/contributions_subtitle_zero + %d yükleme %d yükleme - - 1 yüklemeye başlanıyor - %d yüklemeye başlanıyor + + %d yüklenmeye başlanıyor + %d yüklenmeye başlanıyor - - 1 yükleme + + %d yükleme %d yükleme %1$s ile eşleşen bir kategori bulunamadı - Resimlerinizi Wikimedia Commons\'ta daha bulunabilir duruma getirmek için kategoriler ekleyin.\n\nKategori eklemek için yazmaya başlayın. + Resimlerinizi Wikimedia Commons\'ta daha bulunabilir duruma getirmek için kategoriler ekleyin.\nKategori eklemek için yazmaya başlayın. Kategoriler Ayarlar + Kaydol Hakkında - <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache Lisansı s2</a> altında yayımlanan Açık Kaynak yazılımı - Kaynak: <a href=\"https://github.com/commons-app/apps-android-commons\">GitHub</a>\n\nYazılım hataları: <a href=\" https://github.com/commons-app/apps-android-commons/issues\">Github</a> - <a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Gizlilik Politikası</a> + Wikimedia Commons uygulaması, Wikimedia topluluğunun imtiyaz sahibi ve gönüllüleri tarafından oluşturulmuş ve sürdürülmüş açık kaynak kodlu bir uygulamadır. Vikipedi Vakfı, uygulamanın oluşturulması, geliştirilmesi veya bakımına dahil değildir. + GitHub üzerinde <a href=\"https://github.com/commons-app/apps-android-commons\">Kaynak</a> ve <a href=\"https://commons-app.github.io/\">website</a>. Hata raporları ve önerileri için yeni bir <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub sorunu</a> oluştur. + <a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Gizlilik Politikası</a> + <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Katkıda bulunanlar</a> Hakkında Geri Bildirim Gönder (E-posta ile) + Yüklü bir e-posta istemcisi yok Son kullanılan kategoriler İlk eşitleme için bekleniyor… Henüz yüklenmiş hiç fotoğrafınız yok. Tekrar dene İptal Bu resmi %1$s lisansı altında olacak. + Bu resmi göndererek bunun kendi eserim olduğumu, telif hakkıyla korunan materyal veya selfie içermediğini ve aksi takdirde <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Wikimedia Commons politikalarına</a> uyduğunu beyan ederim. İndir Lisans - CC Attribution-ShareAlike 3.0 - CC Attribution 3.0 + Önceki başlığı/açıklamayı kullan + Otomatik olarak mevcut konumu al + Resim koordinat olarak etiketlendirilmemişse kategori önerileri için mevcut konum bulun + Gece modu + Koyu temayı kullanın + Attribution-ShareAlike 4.0 + Attribution 4.0 + Attribution-ShareAlike 3.0 + Attribution 3.0 CC0 CC BY-SA 3.0 CC BY-SA 3.0 (Avusturya) @@ -95,10 +111,17 @@ CC BY-SA 3.0 (Polonya) CC BY-SA 3.0 (Romanya) CC BY 3.0 + CC BY-SA 4.0 + CC BY 4.0 CC0 + Wikimedia Commons, Vikipedi\'de kullanılan resimlerin çoğunu barındırır. + Resimleriniz dünyanın dört bir yanındaki insanlara eğitim vermeye yardımcı olur! + Lütfen tamamen kendiniz çektiğiniz veya oluşturduğunuz resimleri yükleyin: + - Doğal nesneler (çiçekler, hayvanlar, dağlar)\n- Faydalı nesneler (bisiklet, tren istasyonları)\n- Ünlü insanlar (belediye başkanınız, tanıştığınız Olimpik atletler) Lütfen şunları YÜKLEMEYİN: - Öz çekimlerinizi ya da arkadaşlarınızın fotoğraflarını\n- İnternetten indirdiğiniz resimleri\n- Tescilli uygulamaların ekran görüntülerini Yüklenebileceklere örnekler: + - Başlık: Sydney Opera Binası\n- Tanım: Körfezin genelinden bakıldığında Sydney Opera Binası\n- Kategoriler: Sydney Opera Binası, batıdan Sydney Opera Binası Resimleriniz ile Vikipedi maddelerinin canlandırılmasına katkıda bulunabilirsiniz! Vikipedi\'ye Wikimedia Commons\'tan gelen görüntüler. Görüntüler dünya insanlarının eğitiminde yardımcı olur. @@ -106,11 +129,79 @@ Bunu anladınız mı? Evet! Kategoriler - Yükleniyor… + Yükleniyor... Hiçbir şey seçilmedi Açıklama yok Bilinmeyen lisans Yenile + Gerekli izinler: Harici depolama biriminin okunması. Uygulama buna izin verilmeden çalışmaz. + Gerekli izin: Harici depolama birimi üzerine yazma. Uygulama buna izin verilmeden çalışmaz. + İsteğe bağlı izin: Kategori önerileri için geçerli konum alma + Tamam + Yakındaki yerler + Yakınlardaki yer bulunamadı + Uyarı + Bu dosya zaten Commons\'da var. Devam etmek istediğinizden emin misiniz? + Evet + Hayır + Başlık + Medyanın başlığı + Açıklama + Medya için yapılan tanımı/açıklamayı buraya yazınız. Açıklamanız uzun olabilir ve birden fazla satıra sığabilir. Umuyoruz ki güzel ve bilgilendirici olacaktır. + Yükleme tarihi Lisans Koordinatlar + Sağlanmamış + Beta Deneycisi Olun + Google Play\'deki beta kanalımıza dahil olarak yeni özelliklere ve hata düzeltmelerine erken erişin + Vikiveri\'yi kullanın + (Uyarı: devre dışı bırakılması mobil veri tüketimine neden olabilir) + 2 Faktörlü Kimlik Doğrulama (2FA) Kodu + Son Yükleme Limitim + Maksimum Limit + 500\'den fazla görüntülenemiyor + Yeni Yükleme Sınırı Ayarla + İki faktörlü kimlik doğrulama şu anda desteklenmiyor. + Gerçekten çıkış yapmak istiyor musunuz? + Commons Logo + Arka plan görüntüsü + Medya Görüntüsü Başarısız Oldu + Resim Bulunamadı + Resim Yükle + Zao Dağı + Lamalar + Gökkuşağı Köprüsü + Lale + Selfie (\'\'özçekim\'\') göndermeyin + Tescilli Resim + Vikipedi\'ye Hoş Geldiniz + Telif Haklarına Hoş Geldiniz + Sidney Opera Binası + İptal + + Kapat + Anasayfa + Yükle + Yakınındakiler + Hakkında + Ayarlar + Geri bildirim + Çıkış + Eğitim + Yakındaki yerler, konum izinleri olmadan görüntülenemez + hiçbir açıklama bulunamadı + Commons dosya sayfası + Vikiveri ögesi + Resimler önbelleğe alınırken hata oluştu + Dosya için dosya adı olarak kullanılacak benzersiz açıklayıcı bir başlık olmalıdır. Boşluk bırakarak sade bir dil kullanabilirsiniz. Dosya uzantısını dahil etmeyin + Lütfen medyayı mümkün olduğunca açıklayın: Nerede çekildi? Ne gösteriyor? Bağlam nedir? Lütfen nesneleri veya kişileri tanımlayın. Kolay tahmin edilemeyen bilgileri açıklayın, örneğin bir manzara ise günün saatini belirtin. Medya alışılmadık bir şey gösteriyorsa lütfen olağandışı yapan şeyleri açıklayın. + İzin ver + Harici depolamayı kullanın + Uygulama kamerası kullanıldığında çekilen fotoğrafları cihazına kaydedin + Kayıt dosyasını gönder + Kayıt dosyasını, e-posta aracılığıyla geliştiricilere gönderin + Hesabınızda oturum açın + Konum değiştirilmedi + Konum kullanılamıyor. + Yakındaki yerler listesini görüntülemek için izin vermeniz gerekiyor From 906410643b5972e6e568d0433719629c77b440c4 Mon Sep 17 00:00:00 2001 From: Agent-8 <31672191+Agent-8@users.noreply.github.com> Date: Tue, 26 Dec 2017 12:41:20 -0500 Subject: [PATCH 29/35] Add files via upload --- .../nrw/commons/ui/widget/CompatTextView.java | 169 ++++++++++-------- .../nrw/commons/ui/widget/HtmlTextView.java | 93 +++++----- .../nrw/commons/ui/widget/OverlayDialog.java | 105 ++++++----- 3 files changed, 207 insertions(+), 160 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/ui/widget/CompatTextView.java b/app/src/main/java/fr/free/nrw/commons/ui/widget/CompatTextView.java index 2508877ed..a04f7f8c8 100644 --- a/app/src/main/java/fr/free/nrw/commons/ui/widget/CompatTextView.java +++ b/app/src/main/java/fr/free/nrw/commons/ui/widget/CompatTextView.java @@ -1,73 +1,96 @@ -package fr.free.nrw.commons.ui.widget; - -/** - * Created by mikel on 07/08/2017. - */ - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.drawable.Drawable; -import android.support.annotation.Nullable; -import android.support.v4.view.ViewCompat; -import android.support.v7.widget.AppCompatDrawableManager; -import android.support.v7.widget.AppCompatTextView; -import android.util.AttributeSet; - -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.utils.UiUtils; - -public class CompatTextView extends AppCompatTextView { - public CompatTextView(Context context) { - super(context); - init(null); - } - - public CompatTextView(Context context, AttributeSet attrs) { - super(context, attrs); - init(attrs); - } - - public CompatTextView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(attrs); - } - - private void init(@Nullable AttributeSet attrs) { - if (attrs != null) { - Context context = getContext(); - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CompatTextView); - - // Obtain DrawableManager used to pull Drawables safely, and check if we're in RTL - AppCompatDrawableManager dm = AppCompatDrawableManager.get(); - boolean rtl = ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL; - - // Grab the compat drawable padding from the XML - float drawablePadding = a.getDimension(R.styleable.CompatTextView_drawablePadding, 0); - - // Grab the compat drawable resources from the XML - int startDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableStart, 0); - int topDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableTop, 0); - int endDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableEnd, 0); - int bottomDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableBottom, 0); - - // Load the used drawables, fall back to whatever was set in an "android:" - Drawable[] currentDrawables = getCompoundDrawables(); - Drawable left = startDrawableRes != 0 - ? dm.getDrawable(context, startDrawableRes) : currentDrawables[0]; - Drawable right = endDrawableRes != 0 - ? dm.getDrawable(context, endDrawableRes) : currentDrawables[1]; - Drawable top = topDrawableRes != 0 - ? dm.getDrawable(context, topDrawableRes) : currentDrawables[2]; - Drawable bottom = bottomDrawableRes != 0 - ? dm.getDrawable(context, bottomDrawableRes) : currentDrawables[3]; - - // Account for RTL and apply the compound Drawables - Drawable start = rtl ? right : left; - Drawable end = rtl ? left : right; - setCompoundDrawablesWithIntrinsicBounds(start, top, end, bottom); - setCompoundDrawablePadding((int) UiUtils.convertDpToPixel(drawablePadding, getContext())); - - a.recycle(); - } - } -} +package fr.free.nrw.commons.ui.widget; + +/** + * Created by mikel on 07/08/2017. + */ + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.support.annotation.Nullable; +import android.support.v4.view.ViewCompat; +import android.support.v7.widget.AppCompatDrawableManager; +import android.support.v7.widget.AppCompatTextView; +import android.util.AttributeSet; + +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.utils.UiUtils; + +/** + * a text view compatible with older versions of the platform + */ +public class CompatTextView extends AppCompatTextView { + + /** + * Constructs a new instance of CompatTextView + * @param context the view context + */ + public CompatTextView(Context context) { + super(context); + init(null); + } + + /** + * Constructs a new instance of CompatTextView + * @param context the view context + * @param attrs the set of attributes for the view + */ + public CompatTextView(Context context, AttributeSet attrs) { + super(context, attrs); + init(attrs); + } + + /** + * Constructs a new instance of CompatTextView + * @param context + * @param attrs + * @param defStyleAttr + */ + public CompatTextView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(attrs); + } + + /** + * initializes the view + * @param attrs the attribute set of the view, which can be null + */ + private void init(@Nullable AttributeSet attrs) { + if (attrs != null) { + Context context = getContext(); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CompatTextView); + + // Obtain DrawableManager used to pull Drawables safely, and check if we're in RTL + AppCompatDrawableManager dm = AppCompatDrawableManager.get(); + boolean rtl = ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL; + + // Grab the compat drawable padding from the XML + float drawablePadding = a.getDimension(R.styleable.CompatTextView_drawablePadding, 0); + + // Grab the compat drawable resources from the XML + int startDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableStart, 0); + int topDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableTop, 0); + int endDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableEnd, 0); + int bottomDrawableRes = a.getResourceId(R.styleable.CompatTextView_drawableBottom, 0); + + // Load the used drawables, fall back to whatever was set in an "android:" + Drawable[] currentDrawables = getCompoundDrawables(); + Drawable left = startDrawableRes != 0 + ? dm.getDrawable(context, startDrawableRes) : currentDrawables[0]; + Drawable right = endDrawableRes != 0 + ? dm.getDrawable(context, endDrawableRes) : currentDrawables[1]; + Drawable top = topDrawableRes != 0 + ? dm.getDrawable(context, topDrawableRes) : currentDrawables[2]; + Drawable bottom = bottomDrawableRes != 0 + ? dm.getDrawable(context, bottomDrawableRes) : currentDrawables[3]; + + // Account for RTL and apply the compound Drawables + Drawable start = rtl ? right : left; + Drawable end = rtl ? left : right; + setCompoundDrawablesWithIntrinsicBounds(start, top, end, bottom); + setCompoundDrawablePadding((int) UiUtils.convertDpToPixel(drawablePadding, getContext())); + + a.recycle(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/ui/widget/HtmlTextView.java b/app/src/main/java/fr/free/nrw/commons/ui/widget/HtmlTextView.java index e7f5eaeeb..4e73776c1 100644 --- a/app/src/main/java/fr/free/nrw/commons/ui/widget/HtmlTextView.java +++ b/app/src/main/java/fr/free/nrw/commons/ui/widget/HtmlTextView.java @@ -1,42 +1,51 @@ -package fr.free.nrw.commons.ui.widget; - -import android.content.Context; -import android.os.Build; -import android.support.v7.widget.AppCompatTextView; -import android.text.Html; -import android.text.Spanned; -import android.text.method.LinkMovementMethod; -import android.util.AttributeSet; - -/** - * An {@link AppCompatTextView} which formats the text to HTML displayable text and makes any - * links clickable. - */ -public class HtmlTextView extends AppCompatTextView { - - public HtmlTextView(Context context, AttributeSet attrs) { - super(context, attrs); - - setMovementMethod(LinkMovementMethod.getInstance()); - setText(fromHtml(getText().toString())); - } - - public void setHtmlText(String newText) { - setText(fromHtml(newText)); - } - - /** - * Fix Html.fromHtml is deprecated problem - * - * @param source provided Html string - * @return returned Spanned of appropriate method according to version check - */ - private static Spanned fromHtml(String source) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY); - } else { - //noinspection deprecation - return Html.fromHtml(source); - } - } -} +package fr.free.nrw.commons.ui.widget; + +import android.content.Context; +import android.os.Build; +import android.support.v7.widget.AppCompatTextView; +import android.text.Html; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.util.AttributeSet; + +/** + * An {@link AppCompatTextView} which formats the text to HTML displayable text and makes any + * links clickable. + */ +public class HtmlTextView extends AppCompatTextView { + + /** + * Constructs a new instance of HtmlTextView + * @param context the context of the view + * @param attrs the set of attributes for the view + */ + public HtmlTextView(Context context, AttributeSet attrs) { + super(context, attrs); + + setMovementMethod(LinkMovementMethod.getInstance()); + setText(fromHtml(getText().toString())); + } + + /** + * Sets the text to be displayed + * @param newText the text to be displayed + */ + public void setHtmlText(String newText) { + setText(fromHtml(newText)); + } + + /** + * Fix Html.fromHtml is deprecated problem + * + * @param source provided Html string + * @return returned Spanned of appropriate method according to version check + */ + private static Spanned fromHtml(String source) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY); + } else { + //noinspection deprecation + return Html.fromHtml(source); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java index 6b2913d6d..4dea43ffb 100644 --- a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java +++ b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java @@ -1,46 +1,61 @@ -package fr.free.nrw.commons.ui.widget; - -import android.app.Dialog; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.view.Gravity; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; - -public abstract class OverlayDialog extends DialogFragment { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(STYLE_NO_FRAME, android.R.style.Theme_Holo_Light); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - setDialogLayoutToFullScreen(); - super.onViewCreated(view, savedInstanceState); - } - - private void setDialogLayoutToFullScreen() { - Window window = getDialog().getWindow(); - WindowManager.LayoutParams wlp = window.getAttributes(); - window.requestFeature(Window.FEATURE_NO_TITLE); - wlp.gravity = Gravity.BOTTOM; - wlp.width = WindowManager.LayoutParams.MATCH_PARENT; - wlp.height = WindowManager.LayoutParams.MATCH_PARENT; - window.setAttributes(wlp); - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - Dialog dialog = super.onCreateDialog(savedInstanceState); - Window window = dialog.getWindow(); - window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - return dialog; - } +package fr.free.nrw.commons.ui.widget; + +import android.app.Dialog; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.DialogFragment; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +/** + * a formatted dialog fragment + */ +public abstract class OverlayDialog extends DialogFragment { + + /** + * creates a DialogFragment with the correct style and theme + * @param savedInstanceState + */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setStyle(STYLE_NO_FRAME, android.R.style.Theme_Holo_Light); + } + + /** + * allows subclasses to initialize themselves if needed + * @param view the view being used + * @param savedInstanceState bundle re-constructed from a previous saved state + */ + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + setDialogLayoutToFullScreen(); + super.onViewCreated(view, savedInstanceState); + } + + /** + * sets the dialog layout to fullscreen + */ + private void setDialogLayoutToFullScreen() { + Window window = getDialog().getWindow(); + WindowManager.LayoutParams wlp = window.getAttributes(); + window.requestFeature(Window.FEATURE_NO_TITLE); + wlp.gravity = Gravity.BOTTOM; + wlp.width = WindowManager.LayoutParams.MATCH_PARENT; + wlp.height = WindowManager.LayoutParams.MATCH_PARENT; + window.setAttributes(wlp); + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + Dialog dialog = super.onCreateDialog(savedInstanceState); + Window window = dialog.getWindow(); + window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + return dialog; + } } \ No newline at end of file From 031855f908637f0d18a9ef7dad7fd8a79ba4702c Mon Sep 17 00:00:00 2001 From: Agent-8 <31672191+Agent-8@users.noreply.github.com> Date: Tue, 26 Dec 2017 12:42:26 -0500 Subject: [PATCH 30/35] Add files via upload --- .../commons/settings/SettingsActivity.java | 123 ++++++++++-------- 1 file changed, 69 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java index d731c70d1..54b462097 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsActivity.java @@ -1,55 +1,70 @@ -package fr.free.nrw.commons.settings; - -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.support.v7.app.AppCompatDelegate; -import android.view.MenuItem; - -import butterknife.ButterKnife; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.theme.NavigationBaseActivity; - -public class SettingsActivity extends NavigationBaseActivity { - private AppCompatDelegate settingsDelegate; - - @Override - protected void onCreate(Bundle savedInstanceState) { - // Check prefs on every activity starts - if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false)) { - setTheme(R.style.DarkAppTheme); - } else { - setTheme(R.style.LightAppTheme); - } - - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_settings); - - ButterKnife.bind(this); - initDrawer(); - } - - // Get an action bar - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - if (settingsDelegate == null) { - settingsDelegate = AppCompatDelegate.create(this, null); - } - settingsDelegate.onPostCreate(savedInstanceState); - - //Get an up button - //settingsDelegate.getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - - //Handle action-bar clicks - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } +package fr.free.nrw.commons.settings; + +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatDelegate; +import android.view.MenuItem; + +import butterknife.ButterKnife; +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.theme.NavigationBaseActivity; + +/** + * allows the user to change the settings + */ +public class SettingsActivity extends NavigationBaseActivity { + private AppCompatDelegate settingsDelegate; + + /** + * to be called when the activity starts + * @param savedInstanceState the previously saved state + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + // Check prefs on every activity starts + if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false)) { + setTheme(R.style.DarkAppTheme); + } else { + setTheme(R.style.LightAppTheme); + } + + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + + ButterKnife.bind(this); + initDrawer(); + } + + // Get an action bar + /** + * takes care of actions taken after the creation has happened + * @param savedInstanceState the saved state + */ + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + if (settingsDelegate == null) { + settingsDelegate = AppCompatDelegate.create(this, null); + } + settingsDelegate.onPostCreate(savedInstanceState); + + //Get an up button + //settingsDelegate.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + /** + * Handle action-bar clicks + * @param item the selected item + * @return true on success, false on failure + */ + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } } \ No newline at end of file From 4e828085910a0efb2532767ae3e9588c70e4e044 Mon Sep 17 00:00:00 2001 From: Agent-8 <31672191+Agent-8@users.noreply.github.com> Date: Tue, 26 Dec 2017 12:45:05 -0500 Subject: [PATCH 31/35] Added documentation --- .../fr/free/nrw/commons/location/LatLng.java | 282 ++++++++++-------- 1 file changed, 150 insertions(+), 132 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/location/LatLng.java b/app/src/main/java/fr/free/nrw/commons/location/LatLng.java index 3ddaab568..672a83f0c 100644 --- a/app/src/main/java/fr/free/nrw/commons/location/LatLng.java +++ b/app/src/main/java/fr/free/nrw/commons/location/LatLng.java @@ -1,132 +1,150 @@ -package fr.free.nrw.commons.location; - -import android.location.Location; -import android.support.annotation.NonNull; - -public class LatLng { - - private final double latitude; - private final double longitude; - private final float accuracy; - - /** Accepts latitude and longitude. - * North and South values are cut off at 90° - * - * @param latitude double value - * @param longitude double value - */ - public LatLng(double latitude, double longitude, float accuracy) { - if (-180.0D <= longitude && longitude < 180.0D) { - this.longitude = longitude; - } else { - this.longitude = ((longitude - 180.0D) % 360.0D + 360.0D) % 360.0D - 180.0D; - } - this.latitude = Math.max(-90.0D, Math.min(90.0D, latitude)); - this.accuracy = accuracy; - } - - public static LatLng from(@NonNull Location location) { - return new LatLng(location.getLatitude(), location.getLongitude(), location.getAccuracy()); - } - - public int hashCode() { - boolean var1 = true; - byte var2 = 1; - long var3 = Double.doubleToLongBits(this.latitude); - int var5 = 31 * var2 + (int)(var3 ^ var3 >>> 32); - var3 = Double.doubleToLongBits(this.longitude); - var5 = 31 * var5 + (int)(var3 ^ var3 >>> 32); - return var5; - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } else if (!(o instanceof LatLng)) { - return false; - } else { - LatLng var2 = (LatLng)o; - return Double.doubleToLongBits(this.latitude) == Double.doubleToLongBits(var2.latitude) && Double.doubleToLongBits(this.longitude) == Double.doubleToLongBits(var2.longitude); - } - } - - public String toString() { - return "lat/lng: (" + this.latitude + "," + this.longitude + ")"; - } - - /** - * Rounds the float to 4 digits and returns absolute value. - * - * @param coordinate A coordinate value as string. - * @return String of the rounded number. - */ - private String formatCoordinate(double coordinate) { - double roundedNumber = Math.round(coordinate * 10000d) / 10000d; - double absoluteNumber = Math.abs(roundedNumber); - return String.valueOf(absoluteNumber); - } - - /** - * Returns "N" or "S" depending on the latitude. - * - * @return "N" or "S". - */ - private String getNorthSouth() { - if (this.latitude < 0) { - return "S"; - } - - return "N"; - } - - /** - * Returns "E" or "W" depending on the longitude. - * - * @return "E" or "W". - */ - private String getEastWest() { - if (this.longitude >= 0 && this.longitude < 180) { - return "E"; - } - - return "W"; - } - - /** - * Returns a nicely formatted coordinate string. Used e.g. in - * the detail view. - * - * @return The formatted string. - */ - public String getPrettyCoordinateString() { - return formatCoordinate(this.latitude) + " " + this.getNorthSouth() + ", " - + formatCoordinate(this.longitude) + " " + this.getEastWest(); - } - - /** - * Return the location accuracy in meter. - * - * @return float - */ - public float getAccuracy() { - return accuracy; - } - - /** - * Return the longitude in degrees. - * - * @return double - */ - public double getLongitude() { - return longitude; - } - - /** - * Return the latitude in degrees. - * - * @return double - */ - public double getLatitude() { - return latitude; - } -} +package fr.free.nrw.commons.location; + +import android.location.Location; +import android.support.annotation.NonNull; + +/** + * the latitude and longitude of the user + */ +public class LatLng { + + private final double latitude; + private final double longitude; + private final float accuracy; + + /** Accepts latitude and longitude. + * North and South values are cut off at 90 + * + * @param latitude double value + * @param longitude double value + */ + public LatLng(double latitude, double longitude, float accuracy) { + if (-180.0D <= longitude && longitude < 180.0D) { + this.longitude = longitude; + } else { + this.longitude = ((longitude - 180.0D) % 360.0D + 360.0D) % 360.0D - 180.0D; + } + this.latitude = Math.max(-90.0D, Math.min(90.0D, latitude)); + this.accuracy = accuracy; + } + + /** + * gets the latitude and longitude of a given non-null location + * @param location the non-null location of the user + * @return + */ + public static LatLng from(@NonNull Location location) { + return new LatLng(location.getLatitude(), location.getLongitude(), location.getAccuracy()); + } + + /** + * creates a hash code for the longitude and longitude + */ + public int hashCode() { + boolean var1 = true; + byte var2 = 1; + long var3 = Double.doubleToLongBits(this.latitude); + int var5 = 31 * var2 + (int)(var3 ^ var3 >>> 32); + var3 = Double.doubleToLongBits(this.longitude); + var5 = 31 * var5 + (int)(var3 ^ var3 >>> 32); + return var5; + } + + /** + * checks for equality of two LatLng objects + * @param o the second LatLng object + */ + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof LatLng)) { + return false; + } else { + LatLng var2 = (LatLng)o; + return Double.doubleToLongBits(this.latitude) == Double.doubleToLongBits(var2.latitude) && Double.doubleToLongBits(this.longitude) == Double.doubleToLongBits(var2.longitude); + } + } + + /** + * returns a string representation of the latitude and longitude + */ + public String toString() { + return "lat/lng: (" + this.latitude + "," + this.longitude + ")"; + } + + /** + * Rounds the float to 4 digits and returns absolute value. + * + * @param coordinate A coordinate value as string. + * @return String of the rounded number. + */ + private String formatCoordinate(double coordinate) { + double roundedNumber = Math.round(coordinate * 10000d) / 10000d; + double absoluteNumber = Math.abs(roundedNumber); + return String.valueOf(absoluteNumber); + } + + /** + * Returns "N" or "S" depending on the latitude. + * + * @return "N" or "S". + */ + private String getNorthSouth() { + if (this.latitude < 0) { + return "S"; + } + + return "N"; + } + + /** + * Returns "E" or "W" depending on the longitude. + * + * @return "E" or "W". + */ + private String getEastWest() { + if (this.longitude >= 0 && this.longitude < 180) { + return "E"; + } + + return "W"; + } + + /** + * Returns a nicely formatted coordinate string. Used e.g. in + * the detail view. + * + * @return The formatted string. + */ + public String getPrettyCoordinateString() { + return formatCoordinate(this.latitude) + " " + this.getNorthSouth() + ", " + + formatCoordinate(this.longitude) + " " + this.getEastWest(); + } + + /** + * Return the location accuracy in meter. + * + * @return float + */ + public float getAccuracy() { + return accuracy; + } + + /** + * Return the longitude in degrees. + * + * @return double + */ + public double getLongitude() { + return longitude; + } + + /** + * Return the latitude in degrees. + * + * @return double + */ + public double getLatitude() { + return latitude; + } +} \ No newline at end of file From c606f5193fc532a803896988b1f2ed3f45bebb69 Mon Sep 17 00:00:00 2001 From: Agent-8 <31672191+Agent-8@users.noreply.github.com> Date: Wed, 27 Dec 2017 09:48:22 -0500 Subject: [PATCH 32/35] updated javadoc comments --- .../fr/free/nrw/commons/ui/widget/OverlayDialog.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java index 4dea43ffb..bf7742843 100644 --- a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java +++ b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java @@ -13,6 +13,7 @@ import android.view.WindowManager; /** * a formatted dialog fragment + * This class is used by NearbyInfoDialog */ public abstract class OverlayDialog extends DialogFragment { @@ -27,7 +28,8 @@ public abstract class OverlayDialog extends DialogFragment { } /** - * allows subclasses to initialize themselves if needed + * When the view is created, sets the dialog layout to full screen + * * @param view the view being used * @param savedInstanceState bundle re-constructed from a previous saved state */ @@ -50,6 +52,12 @@ public abstract class OverlayDialog extends DialogFragment { window.setAttributes(wlp); } + /** + * builds custom dialog container + * + * @param savedInstanceState the previously saved state + * @return the dialog + */ @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -58,4 +66,4 @@ public abstract class OverlayDialog extends DialogFragment { window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); return dialog; } -} \ No newline at end of file +} From e72819f6477e492b5b48ff1540b6efb751c384d6 Mon Sep 17 00:00:00 2001 From: Agent-8 <31672191+Agent-8@users.noreply.github.com> Date: Wed, 27 Dec 2017 09:49:37 -0500 Subject: [PATCH 33/35] updated javadoc comments --- .../fr/free/nrw/commons/location/LatLng.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/location/LatLng.java b/app/src/main/java/fr/free/nrw/commons/location/LatLng.java index 672a83f0c..d587b88e3 100644 --- a/app/src/main/java/fr/free/nrw/commons/location/LatLng.java +++ b/app/src/main/java/fr/free/nrw/commons/location/LatLng.java @@ -4,19 +4,26 @@ import android.location.Location; import android.support.annotation.NonNull; /** - * the latitude and longitude of the user + * a latitude and longitude point with accuracy information, often of a picture */ public class LatLng { private final double latitude; private final double longitude; private final float accuracy; - - /** Accepts latitude and longitude. - * North and South values are cut off at 90 - * - * @param latitude double value - * @param longitude double value + + /** + * Accepts latitude and longitude. + * North and South values are cut off at 90° + * + * @param latitude the latitude + * @param longitude the longitude + * @param accuracy the accuracy + * + * Examples: + * the Statue of Liberty is located at 40.69° N, 74.04° W + * The Statue of Liberty could be constructed as LatLng(40.69, -74.04, 1.0) + * where positive signifies north, east and negative signifies south, west. */ public LatLng(double latitude, double longitude, float accuracy) { if (-180.0D <= longitude && longitude < 180.0D) { @@ -147,4 +154,4 @@ public class LatLng { public double getLatitude() { return latitude; } -} \ No newline at end of file +} From b4a995ef2044b179a7ce7c6171619fcb8b06c7d5 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 28 Dec 2017 08:53:02 +0100 Subject: [PATCH 34/35] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-cs/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index efd2cd7e6..570afa99d 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -120,7 +120,7 @@ Prosím NENAHRÁVEJTE: - Selfie nebo obrázky vašich přátel\n- Obrázky stažené z Internetu\n- Screenshoty z proprietárních aplikací Příklad nahraného souboru: - - Název: Opera v Sydney\n- Popis: Opra v Sydney, pohled přes záliv\n- Kategorie: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views + - Název: Opera v Sydney\n- Popis: Opera v Sydney, pohled přes záliv\n- Kategorie: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views Přispějte svými obrázky. Pomozte oživit články na Wikipedii. Obrázky na Wikipedii pochází \nz Wikimedia Commons. Vaše obrázky pomáhají vzdělávat lidi po celém světě. From 836baf2ae39cf9a4e0fe24d430b8f9a7b5c49def Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Thu, 28 Dec 2017 18:58:17 +0900 Subject: [PATCH 35/35] Removed redundant category "Sydney Opera House from the west" already contains the category "Sydney Opera House", so it is not recommended to include it. I understand this is just an example, but still better show the right thing when educating users. --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c2e38b921..ca7b119c0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -123,7 +123,7 @@ Please do NOT upload: - Selfies or pictures of your friends\n- Pictures you downloaded from the Internet\n- Screenshots of proprietary apps Example upload: - - Title: Sydney Opera House\n- Description: Sydney Opera House as viewed from across the bay\n- Categories: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views + - Title: Sydney Opera House\n- Description: Sydney Opera House as viewed from across the bay\n- Categories: Sydney Opera House from the west, Sydney Opera House remote views Contribute your images. Help Wikipedia articles come to life! Images on Wikipedia come from Wikimedia Commons. Your images help educate people around the world.