From aa84dedd6490ad64a14a646b56666a72a404628e Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 26 Feb 2025 18:00:48 +0900 Subject: [PATCH 01/13] Removed Explore, Peer review, because we are at risk of being removed from Google Play tomorrow --- .../java/fr/free/nrw/commons/auth/LoginActivity.kt | 2 +- .../free/nrw/commons/contributions/MainActivity.kt | 14 +++++++------- .../nrw/commons/navtab/MoreBottomSheetFragment.kt | 4 ++-- .../main/java/fr/free/nrw/commons/navtab/NavTab.kt | 10 +++++----- app/src/main/res/layout/activity_login.xml | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt index 75c4ac26d..4e2b9199f 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt @@ -86,7 +86,7 @@ class LoginActivity : AccountAuthenticatorActivity() { loginPassword.addTextChangedListener(textWatcher) loginTwoFactor.addTextChangedListener(textWatcher) - skipLogin.setOnClickListener { skipLogin() } +// skipLogin.setOnClickListener { skipLogin() } forgotPassword.setOnClickListener { forgotPassword() } aboutPrivacyPolicy.setOnClickListener { onPrivacyPolicyClicked() } signUpButton.setOnClickListener { signUp() } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt index a61567393..ccba5064e 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt @@ -478,13 +478,13 @@ after opening the app. * @param longitude current longitude of Nearby map */ fun loadExploreMapFromNearby(zoom: Double, latitude: Double, longitude: Double) { - val bundle = Bundle() - bundle.putDouble("prev_zoom", zoom) - bundle.putDouble("prev_latitude", latitude) - bundle.putDouble("prev_longitude", longitude) - - loadFragment(ExploreFragment.newInstance(), false, bundle) - setSelectedItemId(NavTab.EXPLORE.code()) +// val bundle = Bundle() +// bundle.putDouble("prev_zoom", zoom) +// bundle.putDouble("prev_latitude", latitude) +// bundle.putDouble("prev_longitude", longitude) +// +// loadFragment(ExploreFragment.newInstance(), false, bundle) +// setSelectedItemId(NavTab.EXPLORE.code()) } /** diff --git a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt index 3f7a196fe..5a551cb01 100644 --- a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt @@ -67,9 +67,9 @@ class MoreBottomSheetFragment : BottomSheetDialogFragment() { ): View? { binding = FragmentMoreBottomSheetBinding.inflate(inflater, container, false) - if (store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED)) { +// if (store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED)) { binding?.morePeerReview?.visibility = View.GONE - } +// } binding?.apply { moreLogout.setOnClickListener { onLogoutClicked() } diff --git a/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt b/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt index 4573fccad..fe94ae6b0 100644 --- a/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt +++ b/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt @@ -29,11 +29,11 @@ enum class NavTab( return NearbyParentFragment.newInstance() } }, - EXPLORE(R.string.navigation_item_explore, R.drawable.ic_globe) { - override fun newInstance(): Fragment { - return ExploreFragment.newInstance() - } - }, +// EXPLORE(R.string.navigation_item_explore, R.drawable.ic_globe) { +// override fun newInstance(): Fragment { +// return ExploreFragment.newInstance() +// } +// }, BOOKMARKS(R.string.bookmarks, R.drawable.ic_round_star_border_24px) { override fun newInstance(): Fragment { return BookmarkFragment.newInstance() diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 7cfd761a7..f3710c502 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -207,7 +207,7 @@ android:text="@string/forgot_password" android:visibility="visible" /> - + android:visibility="visible" />--> From 88eedc3506722bda6f154b8d118ca44f7456fb76 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 26 Feb 2025 18:03:24 +0900 Subject: [PATCH 02/13] Revert previous commit, wrong branch This reverts commit aa84dedd6490ad64a14a646b56666a72a404628e. --- .../java/fr/free/nrw/commons/auth/LoginActivity.kt | 2 +- .../free/nrw/commons/contributions/MainActivity.kt | 14 +++++++------- .../nrw/commons/navtab/MoreBottomSheetFragment.kt | 4 ++-- .../main/java/fr/free/nrw/commons/navtab/NavTab.kt | 10 +++++----- app/src/main/res/layout/activity_login.xml | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt index 4e2b9199f..75c4ac26d 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt @@ -86,7 +86,7 @@ class LoginActivity : AccountAuthenticatorActivity() { loginPassword.addTextChangedListener(textWatcher) loginTwoFactor.addTextChangedListener(textWatcher) -// skipLogin.setOnClickListener { skipLogin() } + skipLogin.setOnClickListener { skipLogin() } forgotPassword.setOnClickListener { forgotPassword() } aboutPrivacyPolicy.setOnClickListener { onPrivacyPolicyClicked() } signUpButton.setOnClickListener { signUp() } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt index ccba5064e..a61567393 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.kt @@ -478,13 +478,13 @@ after opening the app. * @param longitude current longitude of Nearby map */ fun loadExploreMapFromNearby(zoom: Double, latitude: Double, longitude: Double) { -// val bundle = Bundle() -// bundle.putDouble("prev_zoom", zoom) -// bundle.putDouble("prev_latitude", latitude) -// bundle.putDouble("prev_longitude", longitude) -// -// loadFragment(ExploreFragment.newInstance(), false, bundle) -// setSelectedItemId(NavTab.EXPLORE.code()) + val bundle = Bundle() + bundle.putDouble("prev_zoom", zoom) + bundle.putDouble("prev_latitude", latitude) + bundle.putDouble("prev_longitude", longitude) + + loadFragment(ExploreFragment.newInstance(), false, bundle) + setSelectedItemId(NavTab.EXPLORE.code()) } /** diff --git a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt index 5a551cb01..3f7a196fe 100644 --- a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt @@ -67,9 +67,9 @@ class MoreBottomSheetFragment : BottomSheetDialogFragment() { ): View? { binding = FragmentMoreBottomSheetBinding.inflate(inflater, container, false) -// if (store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED)) { + if (store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED)) { binding?.morePeerReview?.visibility = View.GONE -// } + } binding?.apply { moreLogout.setOnClickListener { onLogoutClicked() } diff --git a/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt b/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt index fe94ae6b0..4573fccad 100644 --- a/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt +++ b/app/src/main/java/fr/free/nrw/commons/navtab/NavTab.kt @@ -29,11 +29,11 @@ enum class NavTab( return NearbyParentFragment.newInstance() } }, -// EXPLORE(R.string.navigation_item_explore, R.drawable.ic_globe) { -// override fun newInstance(): Fragment { -// return ExploreFragment.newInstance() -// } -// }, + EXPLORE(R.string.navigation_item_explore, R.drawable.ic_globe) { + override fun newInstance(): Fragment { + return ExploreFragment.newInstance() + } + }, BOOKMARKS(R.string.bookmarks, R.drawable.ic_round_star_border_24px) { override fun newInstance(): Fragment { return BookmarkFragment.newInstance() diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index f3710c502..7cfd761a7 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -207,7 +207,7 @@ android:text="@string/forgot_password" android:visibility="visible" /> - + android:visibility="visible" /> From b2f655522e9cae50f81513e9c0fd54027ffa8e45 Mon Sep 17 00:00:00 2001 From: Parneet Singh <111801812+parneet-guraya@users.noreply.github.com> Date: Thu, 27 Feb 2025 06:41:32 +0530 Subject: [PATCH 03/13] bump to action's v4 (#6225) Signed-off-by: parneet-guraya --- .github/workflows/android-ci-comment.yml | 2 +- .github/workflows/android.yml | 8 ++++---- .github/workflows/build-beta.yml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/android-ci-comment.yml b/.github/workflows/android-ci-comment.yml index b200c9a70..3a5b5af5c 100644 --- a/.github/workflows/android-ci-comment.yml +++ b/.github/workflows/android-ci-comment.yml @@ -16,7 +16,7 @@ jobs: if: github.event.workflow_run.conclusion == 'success' steps: - name: Checkout base branch - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.workflow_run.head_branch }} - name: Download Run ID Artifact diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 8a744bc0a..b0b01de2c 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -16,17 +16,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - name: Cache packages id: cache-packages - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.gradle/caches @@ -41,7 +41,7 @@ jobs: - name: AVD cache if: github.event_name != 'pull_request' - uses: actions/cache@v3 + uses: actions/cache@v4 id: avd-cache with: path: | diff --git a/.github/workflows/build-beta.yml b/.github/workflows/build-beta.yml index 933d08e3e..8e1a26e15 100644 --- a/.github/workflows/build-beta.yml +++ b/.github/workflows/build-beta.yml @@ -8,9 +8,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' From fa24b93830507062e15b5b90399ac66e59ffc4eb Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 27 Feb 2025 13:01:51 +0100 Subject: [PATCH 04/13] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-in/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 79f266d8b..e977e56d5 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -4,6 +4,7 @@ * Akmaie Ajam * Arifin.wijaya * Birusian +* Boesenbergia * DARMAS BUDI SANTOSO * Daud I.F. Argana * Fafau06 @@ -295,7 +296,7 @@ Galat penyampaian pemberitahuan Galat mengambil gambar untuk ditinjau. Tekan segarkan untuk coba lagi. Pemberitahuan tidak ditemukan - Terjemahkan + Pertalaghi Bahasa Pilih bahasa untuk terjemahan yang ingin Anda kirimkan Lanjutkan From 218476acbcdf98d244a0dac50f93fd6c43dc205b Mon Sep 17 00:00:00 2001 From: Rohit Verma <101377978+rohit9625@users.noreply.github.com> Date: Sun, 2 Mar 2025 01:49:43 +0530 Subject: [PATCH 05/13] fix: rename isDarkTheme property to prevent recursion (#6231) --- .../nrw/commons/nearby/fragments/NearbyParentFragment.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt index 500231642..25baf3a92 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt @@ -223,7 +223,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), private var view: View? = null private var scope: LifecycleCoroutineScope? = null private var presenter: NearbyParentFragmentPresenter? = null - private var isDarkTheme = false + private var _isDarkTheme = false private var isFABsExpanded = false private var selectedPlace: Place? = null private var clickedMarker: Marker? = null @@ -461,7 +461,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), } } } - isDarkTheme = systemThemeUtils?.isDeviceInNightMode() == true + _isDarkTheme = systemThemeUtils?.isDeviceInNightMode() == true if (Utils.isMonumentsEnabled(Date())) { binding?.rlContainerWlmMonthMessage?.visibility = View.VISIBLE } else { @@ -631,7 +631,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), * another refactor */ private fun initThemePreferences() { - if (isDarkTheme) { + if (_isDarkTheme) { binding!!.bottomSheetNearby.rvNearbyList.setBackgroundColor( requireContext().resources.getColor(fr.free.nrw.commons.R.color.contributionListDarkBackground) ) @@ -915,7 +915,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), } override fun isDarkTheme(): Boolean { - return isDarkTheme + return _isDarkTheme } }) binding!!.nearbyFilterList.root From 6b56075df84c5dfa1080aa417a358b9b35a84cc2 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 3 Mar 2025 13:01:29 +0100 Subject: [PATCH 06/13] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-hi/strings.xml | 14 ++++----- app/src/main/res/values-pa/strings.xml | 39 ++++++++++++++++++++++---- app/src/main/res/values-qq/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ 4 files changed, 45 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 91f9652c4..7f742a319 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -136,8 +136,8 @@ परिचय विकिमीडिया कॉमन्स एप्प एक मुक्त स्रोत एप्प है जो कि विकिमीडिया समुदाय के अनुदानप्राप्तकर्ताओं व स्वयंसेवकों द्वारा निर्मित एवं प्रबंधित है। विकिमीडिया फॉऊण्डेशन इस एप्प के निर्माण, विकास व प्रबंधन में किसी प्रकार से भी संलग्न नहीं है। त्रुटि की सूचना और सुझावों के लिए <a href=\"%1$s\"> GitHub समस्या </a> बनाएं - <u>गोपनीयता नीति</u> - <u>श्रेय</u> + गोपनीयता नीति + श्रेय परिचय प्रतिक्रिया दें (ईमेल द्वारा) कोई ईमेल साधन स्थापित नहीं @@ -150,7 +150,7 @@ डाउनलोड डिफॉल्ट लाइसेन्स पिछले शीर्षक/विवरण का उपयोग करें - रात्रि मोड + थीम एट्रीब्यूशन-शेयरअलाइक 4.0 एट्रिब्यूशन 4.0 एट्रीब्यूशन-शेयरअलाइक 3.0 @@ -263,12 +263,12 @@ विकीपीडिया कॉमन्स <u>हमें रेट करें</u> - <u>अक्सर पूछे जाने वाले प्रश्न</u> + अक्सर पूछे जाने वाले प्रश्न प्रशिक्षण छोड़ें इंटरनेट उपलब्ध नहीं सूचनाएं लाने में त्रुटि कोई सूचनाएँ नहीं मिलीं - <u>अनुवाद</u> + अनुवाद भाषाएँ आगे बढ़ें रद्द करें @@ -284,7 +284,7 @@ हाल की खोजें हाल में खोजे गये प्रश्न श्रेणी लोड करते समय त्रुटि उत्पन्न हुई। - मीडिया + मीडिया श्रेणियाँ निर्वाचित नक्शा @@ -315,7 +315,7 @@ सांख्यिकी धन्यवाद प्राप्त किया निर्वाचित चित्र - स्तर + स्तर %d चित्र अपलोड हुआ चित्रों को वापस नहीं किया गया उपयोग हुए चित्र diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 11f917c3f..a017d11e0 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -10,8 +10,14 @@ --> ਕਾਮਨਜ਼ ਮਾਰਕਾ + ਹਵਾਲੇ ਕਰੋ ਇੱਕ ਹੋਰ ਵੇਰਵਾ ਸ਼ਾਮਲ ਕਰੋ ਨਵਾਂ ਯੋਗਦਾਨ ਸ਼ਾਮਲ ਕਰੋ + ਕੈਮਰੇ ਰਾਹੀਂ ਯੋਗਦਾਨ ਸ਼ਾਮਲ ਕਰੋ + ਤਸਵੀਰਾਂ ਰਾਹੀਂ ਯੋਗਦਾਨ ਸ਼ਾਮਲ ਕਰੋ + ਸੁਰਖੀ + ਭਾਸ਼ਾ ਦਾ ਵੇਰਵਾ + ਸੁਰਖੀ ਵੇਰਵਾ ਤਸਵੀਰ ਸਾਰੇ @@ -37,14 +43,19 @@ ਪੜਚੋਲ ਕਰੋ ਦਿੱਖ ਆਮ + ਸੁਝਾਅ + ਪਰਦੇਦਾਰੀ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਪਸੰਦਾਂ + ਚੜ੍ਹਾਉਣਾ ਜਾਰੀ ਐ ਵਰਤੋਂਕਾਰ ਨਾਂ ਲੰਘ-ਸ਼ਬਦ ਦਾਖ਼ਲ ਹੋਵੋ ਪਾਰਸ਼ਬਦ ਭੁੱਲ ਗਏ? + ਖਾਤਾ ਬਣਾਓ ਦਾਖ਼ਲਾ ਹੋ ਰਿਹਾ ਹੈ ਉਡੀਕੋ ਜੀ… + ਸੁਰਖੀਆਂ ਅਤੇ ਵੇਰਵੇ ਨਵਿਆਏ ਜਾ ਰਹੇ ਹਨ ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ... ਦਾਖ਼ਲ ਹੋਣਾ ਸਫ਼ਲ! ਦਾਖ਼ਲ ਹੋਣਾ ਅਸਫ਼ਲ! @@ -53,11 +64,13 @@ ਅੱਪਲੋਡ ਸ਼ੁਰੂ ਹੋਇਆ! %1$s ਅੱਪਲੋਡ ਹੋ ਗਏ! ਆਪਣਾ ਅੱਪਲੋਡ ਵੇਖਣ ਲਈ ਥਪੇੜੋ - %1$s ਅੱਪਲੋਡ ਸ਼ੁਰੂ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ + ਫਾਈਲ ਚੜ੍ਹਾਈ ਜਾ ਰਹੀ ਐ: %s %1$s ਅੱਪਲੋਡ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ %1$s ਦਾ ਅੱਪਲੋਡ ਖ਼ਤਮ ਹੋ ਰਿਹਾ ਹੈ - %1$s ਦਾ ਅੱਪਲੋਡ ਫੇਲ੍ਹ ਹੋਇਆ + %1$s ਨੂੰ ਚੜ੍ਹਾਉਣ ਵਿੱਚ ਨਾਕਾਮ + %1$s ਚੜ੍ਹਾਉਣਾ ਰੋਕਿਆ ਗਿਆ ਵੇਖਣ ਲਈ ਥਪੇੜੋ + ਵੇਖਣ ਲਈ ਥਪੇੜੋ ਮੇਰੇ ਅੱਪਲੋਡ ਕਤਾਰ ਵਿਚ ਫੇਲ੍ਹ ਹੋਇਆ @@ -68,12 +81,17 @@ ਨੇੜੇ-ਤੇੜੇ ਮੇਰੇ ਅੱਪਲੋਡ ਕੜੀ ਦੀ ਨਕਲ ਕਰੋ + ਕੜੀ ਨੂੰ ਚੂੰਢੀ-ਤਖਤੀ ਉੱਤੇ ਨਕਲ ਕੀਤਾ ਗਿਆ ਐ ਸਾਂਝਾ ਕਰੋ + ਫਾਇਲ ਸਫ਼ਾ ਵੇਖੋ ਸੁਰਖੀ (ਲੋੜੀਂਦੀ) + ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਫਾਈਲ ਲਈ ਇੱਕ ਸੁਰਖੀ ਦਿਓ ਵੇਰਵਾ + ਸੁਰਖੀ ਦਾਖ਼ਲ ਹੋਣ ਵਿੱਚ ਅਸਮਰੱਥ - ਨੈੱਟਵਰਕ ਫੇਲ੍ਹ ਹੋਇਆ ਹੈ ਬਹੁਤ ਸਾਰੀਆਂ ਅਸਫ਼ਲ ਕੋਸ਼ਿਸ਼ਾਂ। ਥੋੜ੍ਹੀ ਦੇਰ ਬਾਅਦ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ। ਅਫ਼ਸੋਸ, ਇਹ ਵਰਤੋਂਕਾਰ ਨੂੰ ਕਾਮਨਜ਼ ਤੇ ਰੋਕ ਲਾਈ ਗਈ ਹੈ। + ਤੁਹਾਨੂੰ ਆਪਣਾ ਦੋ-ਕਾਰਕ ਪ੍ਰਮਾਣੀਕਰਨ ਕੋਡ ਦੇਣਾ ਪਵੇਗਾ। ਦਾਖ਼ਲ ਹੋਣਾ ਅਸਫ਼ਲ! ਚੜ੍ਹਾਉ ਇਸ ਸੈੱਟ ਨੂੰ ਨਾਂ ਦਿਓ @@ -85,10 +103,12 @@ ਸੂਚੀ ਫ਼ਿਲਹਾਲ ਕੋਈ ਅੱਪਲੋਡ ਨਹੀਂ %1$s ਨਾਲ਼ ਮੇਲ ਖਾਂਦੀ ਕੋਈ ਸ਼੍ਰੇਣੀ ਨਹੀਂ ਲੱਭੀ + %1$s ਨਾਲ ਮੇਲ ਖਾਂਦੀਆਂ ਕੋਈ ਵਿਕੀਡਾਟਾ ਚੀਜ਼ਾਂ ਨਹੀਂ ਲੱਭਿਆਂ। ਆਪਣੀਆਂ ਤਸਵੀਰਾਂ ਨੂੰ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਵਿਚ ਜ਼ਿਆਦਾ ਲੱਭਣਯੋਗ ਬਣਾਉਣ ਲਈ ਸ਼੍ਰੇਣੀਆਂ ਜੋੜੋ।\n\nਸ਼੍ਰੇਣੀਆਂ ਜੋੜਨ ਲਈ ਟਾਈਪ ਕਰਨ ਅਰੰਭ ਕਰੋ।\nਇਸ ਕਾਰਜ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਨ ਲਈ ਇਹ ਸੁਨੇਹਾ ਥਪੇੜੋ (ਜਾਂ ਵਾਪਸੀ ਬਟਨ ਦਬਾਓ)। ਸ਼੍ਰੇਣੀਆਂ ਪਸੰਦਾਂ ਖਾਤਾ ਬਣਾਓ + ਵਿਸ਼ੇਸ਼ ਤਸਵੀਰ ਸ਼੍ਰੇਣੀ ਇਸ ਬਾਰੇ ਅਜ਼ਾਦ ਸਰੋਤ ਸਾਫ਼ਟਵੇਅਰ ਨੂੰ <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a> ਅਧੀਨ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ @@ -105,9 +125,9 @@ ਰੱਦ ਕਰੋ ਇਹ ਤਸਵੀਰ ਅੱਪਲੋਡ ਕਰਨ ਨਾਲ ਹੀ ਮੈਂ ਦਾਅਵਾ ਕਰਦਾ ਹਾਂ/ਕਰਦੀ ਹਾਂ ਕਿ ਇਹ ਮੇਰਾ ਆਪਣਾ ਕਾਰਜ ਹੈ, ਕਿ ਇਸ ਤਹਿਤ ਕੋਈ ਕਾਪੀਰਾਈਟ ਉਲੰਘਣਾ ਨਹੀਂ ਕੀਤੀ ਗਈ ਅਤੇ <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਨੀਤੀਆਂ</a> ਮੁਤਾਬਿਕ ਇਹ ਠੀਕ ਹੈ। ਡਾਊਨਲੋਡ - ਲਸੰਸ - ਪਹਿਲਾਂ ਵਾਲਾ ਸਿਰਲੇਖ/ਜਾਣਕਾਰੀ ਵਰਤੋ - ਰਾਤ ਦਾ ਅੰਦਾਜ਼ + ਮੂਲ ਲਸੰਸ + ਪਿਛਲੇ ਸਿਰਲੇਖ ਅਤੇ ਵੇਰਵੇ ਦੀ ਵਰਤੋਂ ਕਰੋ + ਵਿਸ਼ਾ-ਵਸਤੂ Attribution-ShareAlike 4.0 Attribution 4.0 CC Attribution-ShareAlike 3.0 @@ -120,8 +140,14 @@ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਜ਼ਿਆਦਾਤਰ ਉਹ ਤਸਵੀਰਾਂ ਦਾ ਭੰਡਾਰ ਹੈ ਜੋ ਵਿਕੀਪੀਡੀਆ \'ਤੇ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਤੁਹਾਡੀਆਂ ਤਸਵੀਰਾਂ ਵਿਸ਼ਵ ਦੇ ਬਾਕੀ ਲੋਕਾਂ ਨੂੰ ਸਿੱਖਿਅਤ ਕਰਨ ਲਈ ਸਹਾਈ ਹਨ! ਕਿਰਪਾ ਕਰਕੇ ਉਹ ਤਸਵੀਰਾਂ ਨੂੰ ਚੜ੍ਹਾਉ ਜੋ ਤੁਹਾਡੇ ਵੱਲੋਂ ਲਈਆਂ ਗਈਆਂ ਹਨ ਜਾਂ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ: + ਕੁਦਰਤੀ ਵਸਤੂਆਂ (ਫੁੱਲ, ਜਾਨਵਰ, ਪਹਾੜ) + ਲਾਹੇਵੰਦ ਵਸਤੂਆਂ (ਸੈਕਲ, ਰੇਲ ਅੱਡਾ) + ਮਸ਼ਹੂਰ ਲੋਕ (ਤੁਹਾਡੇ mayor, ਓਲੰਪਿਕ ਖਿਡਾਰੀ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਮਿਲੇ ਸੀ) ਕਿਰਪਾ ਕਰਕੇ ਅਪਲੋਡ ਨਾ ਕਰੋ: + ਤੁਹਾਡੇ ਦੋਸਤਾਂ ਦੀਆਂ ਸੈਲਫ਼ੀਆਂ ਜਾਂ ਤਸਵੀਰਾਂ ਉਦਾਹਰਣ ਵਜੋਂ ਇਹ ਅਪਲੋਡ: + ਸਿਰਲੇਖ: ਸਿਡਨੀ ਓਪੇਰਾ ਹਾਊਸ + ਵੇਰਵਾ: ਸਿਡਨੀ ਓਪੇਰਾ ਹਾਊਸ ਜਿਵੇਂ ਖਾੜੀ ਦੇ ਪਾਰ ਤੋਂ ਦਿਖਦਾ ਐ ਆਪਣੀਆਂ ਤਸਵੀਰਾਂ ਦਾ ਯੋਗਦਾਨ ਪਾਓ। ਵਿਕੀਪੀਡੀਆ ਲੇਖਾਂ ਨੂੰ ਸੁਰਜੀਤ ਕਰ ਦਿਓ! ਵਿਕੀਪੀਡੀਆ ਉਤਲੀਆਂ ਤਸਵੀਰਾਂ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ ਤੁਹਾਡੀਆਂ ਤਸਵੀਰਾਂ ਦੁਨੀਆਂ ਭਰ ਦੇ ਲੋਕਾਂ ਨੂੰ ਪੜ੍ਹਨ ਵਿਚ ਮਦਦ ਕਰਦੀਆਂ ਹਨ। @@ -132,6 +158,7 @@ ਸ਼੍ਰੇਣੀਆਂ ਲੱਦ ਰਿਹਾ ਹੈ... ਕੋਈ ਵੀ ਨਹੀਂ ਚੁਣਿਆ + ਕੋਈ ਸੁਰਖੀ ਨਹੀਂ ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ ਕੋਈ ਗੱਲਬਾਤ ਨਹੀਂ ਅਣਜਾਣ ਲਸੰਸ @@ -139,8 +166,10 @@ ਆਗਿਆ ਚਾਹੀਦੀ ਹੈ: ਬਾਹਰੀ ਸਟੋਰੇਜ ਬਾਰੇ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਐਪ ਕਾਰਜ ਨਹੀਂ ਕਰ ਸਕੇਗੀ। ਠੀਕ ਹੈ ਖ਼ਬਰਦਾਰ + ਚੜ੍ਹਾਉ ਹਾਂ ਨਹੀਂ + ਸੁਰਖੀ ਸਿਰਲੇਖ ਵੇਰਵਾ ਗੱਲਬਾਤ diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 9417f90ec..71eea66e4 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -3,6 +3,7 @@ * A100Star * Ajeje Brazorf * Amire80 +* Annick green * Cabal * Googology * LeGuyanaisPure @@ -27,6 +28,7 @@ {{Identical|Submit}} {{identical|All}} + Reba ishakiro Status text about number of uploads left.\n* %1$d represents number of uploads left, including current one See the current issue [https://phabricator.wikimedia.org/T267142 T267142] tracked in Phabricator about the <code><nowiki>|zero=</nowiki></code> option currently not supported on Translatewiki.net with the custom <code><nowiki>{{PLURAL}}</nowiki></code> rules used by this project for Android, using a non-MediaWiki syntax. {{Identical|Upload}} diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 371744b44..2fde6f007 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -821,4 +821,6 @@ Bildtext Bildtext kopierades till urklipp Grattis! Alla bilder i detta album har antingen laddats upp eller markerats för att inte laddas upp. + Visa i \"Utforska\" + Visa i \"I närheten\" From 139a296bd32bc3df8f8737d7f9662d69e84cc701 Mon Sep 17 00:00:00 2001 From: Parneet Singh <111801812+parneet-guraya@users.noreply.github.com> Date: Mon, 3 Mar 2025 18:14:08 +0530 Subject: [PATCH 07/13] Comment in PR with generated builds. (#6226) * revert prior attempt Signed-off-by: parneet-guraya * trigger workflows_run event after uploading artifacts Signed-off-by: parneet-guraya --------- Signed-off-by: parneet-guraya --- .github/workflows/android-ci-comment.yml | 96 ------------------- .github/workflows/android.yml | 21 ++-- .github/workflows/comment_artifacts_on_PR.yml | 96 +++++++++++++++++++ 3 files changed, 104 insertions(+), 109 deletions(-) delete mode 100644 .github/workflows/android-ci-comment.yml create mode 100644 .github/workflows/comment_artifacts_on_PR.yml diff --git a/.github/workflows/android-ci-comment.yml b/.github/workflows/android-ci-comment.yml deleted file mode 100644 index 3a5b5af5c..000000000 --- a/.github/workflows/android-ci-comment.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Android CI Comment - -on: - workflow_run: - workflows: ["Android CI"] - types: [completed] - branches: [main] - -permissions: - issues: write - -jobs: - comment: - name: Comment on PR with APK links - runs-on: ubuntu-latest - if: github.event.workflow_run.conclusion == 'success' - steps: - - name: Checkout base branch - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_branch }} - - name: Download Run ID Artifact - uses: actions/download-artifact@v4 - with: - name: run-id - run-id: ${{ github.event.workflow_run.id }} - - - name: Read Run ID - id: read-run-id - run: echo "RUN_ID=$(cat run_id.txt)" >> $GITHUB_ENV - - - name: Comment on PR with APK download links - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - uses: actions/github-script@v6 - with: - script: | - try { - const token = process.env.GH_TOKEN; - if (!token) { - throw new Error('GITHUB_TOKEN is not set.'); - } - - const runId = "${{ env.RUN_ID }}"; - if (!runId) { - throw new Error('Run ID not found.'); - } - - // Get the PR number from the workflow_run event - const prNumber = ${{ github.event.workflow_run.pull_requests[0].number }}; - if (!prNumber) { - console.log('No PR number found in workflow_run event.'); - return; - } - - const { data: { artifacts } } = await github.rest.actions.listWorkflowRunArtifacts({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: runId - }); - - if (!artifacts || artifacts.length === 0) { - console.log('No artifacts found for this workflow run.'); - return; - } - - const betaArtifact = artifacts.find(artifact => artifact.name === "betaDebugAPK"); - const prodArtifact = artifacts.find(artifact => artifact.name === "prodDebugAPK"); - - if (!betaArtifact || !prodArtifact) { - console.log('Could not find both Beta and Prod APK artifacts.'); - console.log('Available artifacts:', artifacts.map(a => a.name).join(', ')); - return; - } - - const betaDownloadUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/suites/${runId}/artifacts/${betaArtifact.id}`; - const prodDownloadUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/suites/${runId}/artifacts/${prodArtifact.id}`; - - const commentBody = ` - 📱 **APK for pull request is ready to see the changes** 📱 - - [Download Beta APK](${betaDownloadUrl}) - - [Download Prod APK](${prodDownloadUrl}) - `; - - await github.rest.issues.createComment({ - issue_number: prNumber, - owner: context.repo.owner, - repo: context.repo.repo, - body: commentBody - }); - - console.log('Successfully posted comment with APK download links'); - } catch (error) { - console.error('Error in PR comment creation:', error); - core.setFailed(`Workflow failed: ${error.message}`); - } diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b0b01de2c..bc8b03c9e 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,10 +1,6 @@ name: Android CI -on: [push, pull_request, workflow_dispatch] - -permissions: - contents: read - actions: read +on: [push, pull_request, workflow_dispatch] concurrency: group: build-${{ github.event.pull_request.number || github.ref }} @@ -106,14 +102,13 @@ jobs: with: name: prodDebugAPK path: app/build/outputs/apk/prod/debug/app-*.apk - - - name: Store Workflow Run ID - if: github.event_name == 'pull_request' - run: echo "${{ github.run_id }}" > run_id.txt - - name: Upload Run ID as Artifact - if: github.event_name == 'pull_request' + - name: Create and PR number artifact + run: | + echo "{\"pr_number\": ${{ github.event.pull_request.number || 'null' }}}" > pr_number.json + + - name: Upload PR number artifact uses: actions/upload-artifact@v4 with: - name: run-id - path: run_id.txt + name: pr_number + path: ./pr_number.json diff --git a/.github/workflows/comment_artifacts_on_PR.yml b/.github/workflows/comment_artifacts_on_PR.yml new file mode 100644 index 000000000..ee4ae7c46 --- /dev/null +++ b/.github/workflows/comment_artifacts_on_PR.yml @@ -0,0 +1,96 @@ +name: Comment Artifacts on PR + +on: + workflow_run: + workflows: [ "Android CI" ] + types: [ completed ] + +permissions: + pull-requests: write + contents: read + +concurrency: + group: comment-${{ github.event.workflow_run.id }} + cancel-in-progress: true + +jobs: + comment: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }} + steps: + - name: Download and process artifacts + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const fs = require('fs'); + const runId = context.payload.workflow_run.id; + + const allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: runId, + }); + + const prNumberArtifact = allArtifacts.data.artifacts.find(artifact => artifact.name === "pr_number"); + if (!prNumberArtifact) { + console.log("pr_number artifact not found."); + return; + } + + const download = await github.rest.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: prNumberArtifact.id, + archive_format: 'zip', + }); + + fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data)); + const { execSync } = require('child_process'); + execSync('unzip -q pr_number.zip -d ./pr_number/'); + fs.unlinkSync('pr_number.zip'); + + const prData = JSON.parse(fs.readFileSync('./pr_number/pr_number.json', 'utf8')); + const prNumber = prData.pr_number; + + if (!prNumber || prNumber === 'null') { + console.log("No valid PR number found in pr_number.json. Skipping."); + return; + } + + const artifactsToLink = allArtifacts.data.artifacts.filter(artifact => artifact.name !== "pr_number"); + if (artifactsToLink.length === 0) { + console.log("No artifacts to link found."); + return; + } + + const comments = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: Number(prNumber), + }); + + const oldComments = comments.data.filter(comment => + comment.body.startsWith("✅ Generated APK variants!") + ); + for (const comment of oldComments) { + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: comment.id, + }); + console.log(`Deleted old comment ID: ${comment.id}`); + }; + + const commentBody = `✅ Generated APK variants!\n` + + artifactsToLink.map(artifact => { + const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}/artifacts/${artifact.id}`; + return `- 🤖 [Download ${artifact.name}](${artifactUrl})`; + }).join('\n'); + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: Number(prNumber), + body: commentBody + }); From d233de6103b6a9a19475fd0bc558646d56303976 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 6 Mar 2025 13:01:40 +0100 Subject: [PATCH 08/13] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-lb/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 16 +++++++++++----- app/src/main/res/values-qq/strings.xml | 4 ++++ app/src/main/res/values-tcy/strings.xml | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index a0be9be25..2ef0b7c0a 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -181,6 +181,7 @@ Neen Beschrëftung Titel + Motiven Beschreiwung Diskussioun Auteur diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 1aaee6e9c..731ac6a32 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -406,10 +406,10 @@ Gebruik een aangepaste auteursnaam in plaats van uw gebruikersnaam tijdens het uploaden van foto\'s Aangepaste auteursnaam Bijdragen - Dichtbij + In de buurt Meldingen Meldingen (gelezen) - Meldingen dichtbij weergeven + Melding in de buurt weergeven Toon in-app-melding voor de dichtstbijzijnde plaats die foto\'s nodig heeft Lijst Toestemming om op te slaan @@ -615,7 +615,7 @@ Kies voor de beste resultaten de modus van hoge nauwkeurigheid. Locatie inschakelen? Schakel locatiediensten in zodat de app uw huidige locatie toont - In de Buurt heeft locatie nodig om correct te werken + ‘In de buurt’ heeft locatietoegang nodig om correct te werken Voor de verkenningskaart is locatietoestemming nodig om afbeeldingen in de buurt weer te geven U moet locatietoestemming geven om de locatie automatisch in te stellen. Heeft u deze twee foto\'s op dezelfde plek gemaakt? Wilt u de breedtegraad/lengtegraad van de afbeelding rechts gebruiken? @@ -657,7 +657,7 @@ Wekelijks Alle tijden Uploaden - In de Buurt + In de buurt Gebruikt Mijn ranking Beperkte verbindingsmodus ingeschakeld! @@ -724,7 +724,7 @@ Wijzig items Categorieën bewerken Geavanceerde opties - U kunt de zoekopdracht Dichtbij aanpassen. Als u fouten krijgt, kunt u opnieuw instellen en toepassen. + U kunt de zoekopdracht ‘In de buurt’ aanpassen. Als u fouten krijgt, kunt u opnieuw instellen en toepassen. Toepassen Opnieuw instellen Locatiegegevens helpen wiki-bewerkers om uw foto te vinden, waardoor deze veel nuttiger wordt.\nUw recente uploads hebben geen locatie.\nWe raden u aan om de locatie in de instellingen van uw camera-app in te schakelen.\nBedankt voor het uploaden! @@ -835,4 +835,10 @@ Account Account laten verdwijnen Waarschuwing verwijdering account + Verdwijnen is een <b>laatste redmiddel</b> en moet <b>alleen worden gebruikt als u voor altijd wilt stoppen met bewerken</b> en om zoveel mogelijk van uw voorgaande relaties te verbergen.<br/><br/>Accountverwijdering op Wikipedia gebeurt door uw accountnaam te wijzigen opdat anderen uw bijdragen niet meer kunnen herkennen. De procedure wordt accountverdwijning genoemd. <b>Door verdwijnen wordt geen volledige anonimiteit gegarandeerd en worden geen bijdragen aan de projecten verwijderd.</b> + Bijschrift + Bijschrift gekopieerd naar klembord + Gefeliciteerd, alle foto’s in dit album zijn ofwel geüpload ofwel gemarkeerd als ‘niet om te uploaden’. + Weergeven in Verkennen + Weergeven in ‘In de buurt’ diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 71eea66e4..7b521a8ac 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -192,6 +192,7 @@ {{Doc-commons-app-depicts}} {{identical|Bookmark}} Option to make the app\'s theme follow the global system setting. + ‘Nearby’ should be translated as in {{msg-wm|Commons-android-strings-navigation item nearby}} {{Identical|More}} {{Optional}}\n<code>&amp;#169;</code> is the copyright symbol (©). {{Doc-commons-app-depicts}} @@ -204,9 +205,12 @@ {{identical|Done}} {{Doc-commons-app-depicts}} {{Identical|Advanced options}} + ‘Nearby’ should be translated as in {{msg-wm|Commons-android-strings-navigation item nearby}} {{Identical|Detail}} \"Set as avatar\" should be translated the same as {{msg-wm|Commons-android-strings-menu set avatar}}. {{Doc-commons-app-depicts}} An answer to the question in {{msg-wm|Commons-android-strings-custom selector confirm deletion message}}. {{optional}} + “Explore” should be translated as in {{msg-wm|Commons-android-strings-navigation item explore}} + ‘Nearby’ should be translated as in {{msg-wm|Commons-android-strings-navigation item nearby}} diff --git a/app/src/main/res/values-tcy/strings.xml b/app/src/main/res/values-tcy/strings.xml index fbbe499d2..f3eb3562f 100644 --- a/app/src/main/res/values-tcy/strings.xml +++ b/app/src/main/res/values-tcy/strings.xml @@ -66,7 +66,7 @@ %s ಅಪ್ಲೋಡ್ ಸುರು ಆವೊಂದುಂಡು %1$s ಅಪ್ಲೋಡ್ ಆವೊಂದುಂಡು %1$s ಅಪ್ಲೋಡ್ ಕೈದ್ ಆವೊಂದುಂಡು. - %1$s ಅಪ್ಲೋಡ್ ಸರಿ ಆತಿಜಿ + %1$s ಅಪ್ಲೋಡ್ ಆತಿಜಿ ತುಯಾರ ಮೆಲ್ಲ ಒತ್ತುಲೆ ಎನ್ನ ದಿಂಜಯೀನಾ ವಿಚಾರೊಳು ದಿಂಜೊಂತುಂಡು From 939d01b267da261d2c998e31ea489df7ea1c56c4 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Thu, 6 Mar 2025 23:00:45 +0900 Subject: [PATCH 09/13] Bumped to 5.1.3 to reflect feature parity but the real 5.1.3 release was performed in the google_play_safe branch --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dbb5458bd..6890177e8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -212,8 +212,8 @@ android { defaultConfig { //applicationId 'fr.free.nrw.commons' - versionCode 1043 - versionName '5.1.2' + versionCode 1046 + versionName '5.1.3' setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) minSdkVersion 21 From 681881f4f6a6734ee13d20e77a0cafce8f28e3c3 Mon Sep 17 00:00:00 2001 From: Rohit Verma <101377978+rohit9625@users.noreply.github.com> Date: Fri, 7 Mar 2025 04:51:31 +0530 Subject: [PATCH 10/13] fix: crash when opening leader board tab (#6220) --- .../fr/free/nrw/commons/contributions/ContributionsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt index 0b7736bab..8447c6540 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt @@ -500,7 +500,7 @@ class ContributionsFragment private fun setUploadCount() { okHttpJsonApiClient - ?.getUploadCount((activity as MainActivity).sessionManager?.currentAccount!!.name) + ?.getUploadCount(sessionManager?.currentAccount!!.name) ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread())?.let { compositeDisposable.add( From d11439f85d922477b56d796c1478bc18e69d3884 Mon Sep 17 00:00:00 2001 From: Parneet Singh <111801812+parneet-guraya@users.noreply.github.com> Date: Fri, 7 Mar 2025 06:22:52 +0530 Subject: [PATCH 11/13] add cancel button listener (#6216) Signed-off-by: parneet-guraya --- .../fr/free/nrw/commons/upload/UploadMediaDetailAdapter.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.kt index 05ed5f665..b19da15e6 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.kt @@ -16,6 +16,7 @@ import android.view.View import android.view.ViewGroup import android.widget.AdapterView import android.widget.AdapterView.OnItemClickListener +import android.widget.Button import android.widget.EditText import android.widget.FrameLayout import android.widget.ImageView @@ -330,6 +331,9 @@ class UploadMediaDetailAdapter : RecyclerView.Adapter(R.id.cancel_button) + .setOnClickListener { v: View? -> dialog.dismiss() } + editText.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) = hideRecentLanguagesSection() From 32d485cc51cac10bf3a6593a15b843c2d3f3e84d Mon Sep 17 00:00:00 2001 From: Rohit Verma <101377978+rohit9625@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:32:28 +0530 Subject: [PATCH 12/13] fix: null context issue by removing context getter override (#6218) Refactored related code to resolve build issues --- .../contributions/ContributionsContract.kt | 2 +- .../contributions/ContributionsFragment.kt | 33 ++++++++++--------- .../contributions/ContributionsPresenter.kt | 8 +++-- .../di/CommonsDaggerSupportFragment.kt | 5 --- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.kt index 269536428..7027950e3 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.kt @@ -10,7 +10,7 @@ interface ContributionsContract { interface View { fun showMessage(localizedMessage: String) - fun getContext(): Context + fun getContext(): Context? } interface UserActionListener : BasePresenter { diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt index 8447c6540..f293ccc44 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt @@ -74,12 +74,9 @@ import java.util.Date import javax.inject.Inject import javax.inject.Named -class ContributionsFragment - - : CommonsDaggerSupportFragment(), FragmentManager.OnBackStackChangedListener, +class ContributionsFragment : CommonsDaggerSupportFragment(), FragmentManager.OnBackStackChangedListener, LocationUpdateListener, MediaDetailProvider, SensorEventListener, ICampaignsView, - ContributionsContract.View, - ContributionsListFragment.Callback { + ContributionsContract.View, ContributionsListFragment.Callback { @JvmField @Inject @Named("default_preferences") @@ -307,9 +304,11 @@ class ContributionsFragment } } notification.setOnClickListener { view: View? -> - startYourself( - context, "unread" - ) + context?.let { + startYourself( + it, "unread" + ) + } } } @@ -889,14 +888,16 @@ class ContributionsFragment * this function updates the number of contributions */ fun upDateUploadCount() { - WorkManager.getInstance(context) - .getWorkInfosForUniqueWorkLiveData(UploadWorker::class.java.simpleName).observe( - viewLifecycleOwner - ) { workInfos: List -> - if (workInfos.size > 0) { - setUploadCount() + context?.let { + WorkManager.getInstance(it) + .getWorkInfosForUniqueWorkLiveData(UploadWorker::class.java.simpleName).observe( + viewLifecycleOwner + ) { workInfos: List -> + if (workInfos.size > 0) { + setUploadCount() + } } - } + } } @@ -953,7 +954,7 @@ class ContributionsFragment Timber.d("Skipping re-upload for non-failed %s", contribution.toString()) } } else { - showLongToast(context, R.string.this_function_needs_network_connection) + context?.let { showLongToast(it, R.string.this_function_needs_network_connection) } } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.kt index 617051e52..2a36101b9 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.kt @@ -80,9 +80,11 @@ class ContributionsPresenter @Inject internal constructor( .save(contribution) .subscribeOn(ioThreadScheduler) .subscribe { - makeOneTimeWorkRequest( - view!!.getContext().applicationContext, ExistingWorkPolicy.KEEP - ) + view!!.getContext()?.applicationContext?.let { + makeOneTimeWorkRequest( + it, ExistingWorkPolicy.KEEP + ) + } }) } } diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsDaggerSupportFragment.kt b/app/src/main/java/fr/free/nrw/commons/di/CommonsDaggerSupportFragment.kt index 5468cfa10..eb0ce83f3 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsDaggerSupportFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsDaggerSupportFragment.kt @@ -63,9 +63,4 @@ abstract class CommonsDaggerSupportFragment : Fragment(), HasSupportFragmentInje return getInstance(activity.applicationContext) } - - // Ensure getContext() returns a non-null Context - override fun getContext(): Context { - return super.getContext() ?: throw IllegalStateException("Context is null") - } } From 972bf785f19471d397e9eb4a0f749aa3d8bd0051 Mon Sep 17 00:00:00 2001 From: Parneet Singh <111801812+parneet-guraya@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:56:41 +0530 Subject: [PATCH 13/13] Fix empty username (#6209) * revert changes from #5860 Signed-off-by: parneet-guraya * read author prop instead Signed-off-by: parneet-guraya * Use user prop if author is empty or null Signed-off-by: parneet-guraya * fix test Signed-off-by: parneet-guraya --------- Signed-off-by: parneet-guraya --- app/src/main/java/fr/free/nrw/commons/Media.kt | 13 +++++++++++++ .../fr/free/nrw/commons/category/GridViewAdapter.kt | 13 ++++--------- .../commons/contributions/ContributionViewHolder.kt | 2 +- .../java/fr/free/nrw/commons/delete/DeleteHelper.kt | 2 +- .../nrw/commons/explore/media/MediaConverter.kt | 2 +- .../nrw/commons/explore/media/PagedMediaAdapter.kt | 9 ++------- .../nrw/commons/media/MediaDetailPagerFragment.java | 4 ++-- .../fr/free/nrw/commons/delete/DeleteHelperTest.kt | 10 +++++----- 8 files changed, 29 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Media.kt b/app/src/main/java/fr/free/nrw/commons/Media.kt index 293321c27..1222cd8b0 100644 --- a/app/src/main/java/fr/free/nrw/commons/Media.kt +++ b/app/src/main/java/fr/free/nrw/commons/Media.kt @@ -125,6 +125,19 @@ class Media constructor( categoriesHiddenStatus = categoriesHiddenStatus ) + /** + * Returns Author if it's not null or empty, otherwise + * returns user + * @return Author or User + */ + fun getAuthorOrUser(): String? { + return if (!author.isNullOrEmpty()) { + author + } else{ + user + } + } + /** * Gets media display title * @return Media title diff --git a/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt b/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt index 5dbcc59fd..0198c61a5 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt @@ -98,14 +98,9 @@ class GridViewAdapter( */ @SuppressLint("StringFormatInvalid") private fun setUploaderView(item: Media, uploader: TextView) { - if (!item.author.isNullOrEmpty()) { - uploader.visibility = View.VISIBLE - uploader.text = context.getString( - R.string.image_uploaded_by, - item.user - ) - } else { - uploader.visibility = View.GONE - } + uploader.text = context.getString( + R.string.image_uploaded_by, + item.getAuthorOrUser() + ) } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt index d1dbf4509..32028cfd2 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt @@ -54,7 +54,7 @@ an upload might take a dozen seconds. */ this.contribution = contribution this.position = position binding.contributionTitle.text = contribution.media.mostRelevantCaption - binding.authorView.text = contribution.media.author + binding.authorView.text = contribution.media.getAuthorOrUser() //Removes flicker of loading image. binding.contributionImage.hierarchy.fadeDuration = 0 diff --git a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt index be0b2bd79..09959d0ef 100644 --- a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt +++ b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt @@ -111,7 +111,7 @@ class DeleteHelper @Inject constructor( val userPageString = "\n{{subst:idw|${media.filename}}} ~~~~" - val creator = media.author + val creator = media.getAuthorOrUser() ?: throw RuntimeException("Failed to nominate for deletion") return pageEditClient.prependEdit( diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt index de084ba50..0cfb270a3 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt @@ -39,7 +39,7 @@ class MediaConverter metadata.licenseShortName(), metadata.prefixedLicenseUrl, getAuthor(metadata), - getAuthor(metadata), + imageInfo.getUser(), MediaDataExtractorUtil.extractCategoriesFromList(metadata.categories()), metadata.latLng, entity.labels().mapValues { it.value.value() }, diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt index c987b76c2..364b5d363 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt @@ -52,12 +52,7 @@ class SearchImagesViewHolder( binding.categoryImageView.setOnClickListener { onImageClicked(item.second) } binding.categoryImageTitle.text = media.mostRelevantCaption binding.categoryImageView.setImageURI(media.thumbUrl) - if (media.author?.isNotEmpty() == true) { - binding.categoryImageAuthor.visibility = View.VISIBLE - binding.categoryImageAuthor.text = - containerView.context.getString(R.string.image_uploaded_by, media.user) - } else { - binding.categoryImageAuthor.visibility = View.GONE - } + binding.categoryImageAuthor.text = + containerView.context.getString(R.string.image_uploaded_by, media.getAuthorOrUser()) } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index b4b4e9c57..cba582a35 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -328,7 +328,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple .append("\n\n"); builder.append("User that you want to report: ") - .append(media.getAuthor()) + .append(media.getUser()) .append("\n\n"); if (sessionManager.getUserName() != null) { @@ -423,7 +423,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple // Initialize bookmark object bookmark = new Bookmark( m.getFilename(), - m.getAuthor(), + m.getAuthorOrUser(), BookmarkPicturesContentProvider.uriForName(m.getFilename()) ); updateBookmarkState(menu.findItem(R.id.menu_bookmark_current_image)); diff --git a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt index 80cced5c9..230099810 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt @@ -96,7 +96,7 @@ class DeleteHelperTest { ).thenReturn("Media successfully deleted: Test Media Title") val creatorName = "Creator" - whenever(media.author).thenReturn("$creatorName") + whenever(media.getAuthorOrUser()).thenReturn("$creatorName") whenever(media.filename).thenReturn("Test file.jpg") val makeDeletion = deleteHelper.makeDeletion( context, @@ -133,7 +133,7 @@ class DeleteHelperTest { whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -148,7 +148,7 @@ class DeleteHelperTest { .thenReturn(Observable.just(false)) whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -163,7 +163,7 @@ class DeleteHelperTest { .thenReturn(Observable.just(true)) whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -221,7 +221,7 @@ class DeleteHelperTest { whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn(null) + whenever(media.getAuthorOrUser()).thenReturn(null) deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() }