I noticed this issue years ago because it used a hard-to-understand
string that needed better documentation (see #688). I forgot it,
but recently, I started to explore the app much more deeply and
came back to it.
It looks like this string is only used in this layout element,
but the element itself is not used anywhere. It usage appears to
have been removed in #634.
* Update alternative texts for the welcome screen
I've also updated their documentation for translators (qq)
in transltaewiki itself.
Resolves#689.
* Fixed typo
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
There should be a comma before "etc." in a list,
and there already is a comma before "etc."
in the string depicts_search_text_hint, so it should be
in this string to for consistency.
Resolves issue #6492.
Remove the title of a web activity and the accompanying
string resource.
This was not a real translatable message, but something that
looks more like an identifier that shouldn't be translated.
As far as I can tell, it's not seen anywhere in the interface
because the actual title is set in the code that calls it.
This fixes the layouts to work in both left to right (LTR)
and right to left (RTL) languages.
Also replace two hard-coded strings in the depicts picker
with proper string resources.
Fixes#6502.
Make the text of the panel consistent with its title.
The title is "Featured images", so the text should
use the same term.
Also move this resource next to the title, to make it easier
for the translators.
I was going over all the strings and documenting them (see #6457),
and I had a very hard time understand what this message does.
I read the code and finally figured it out. I added qq documentation
for it so now it's clearer, but I also think that the English
message can be clearer:
* "subsequent" changed to "the next" - shorter, easier word.
* "media" changed to "item" - "media" could mean a lot of things,
and "item" is clearer in this context.
Its usage was removed from the file
app/src/main/res/layout/fragment_achievements.xml in a8387f0,
but the message remained in the strings file.
Resolves#6456.
As I was documenting undocumented strings (see #6457), I noticed
that two messages are only used once in a few lines of code that
were commented out in 2023.
To clean up the messages, I am removing them from the strings
list and deleting the commented-out code.
Another comment: While working on this, I also noticed that
"Recent Searches" is hardcoded in the XML file, and
I'm not sure where does it actually appear. I fixed it, too,
but perhaps it can be completely removed.
Fixes#6439.
* Converted welcome activity / pager to kotlin
* Removed unused interface
* Convert ViewPagerAdapter to kotlin and enforce that all tabs must have a title that comes from strings.xml
* Convert OkHttpConnectionFactory and remove an exception class nobody was using
* Convert MapController to kotlin along with fixing nullability in a few places
* fix: infinite loading progress bar after nominating for deletion
* add logs for testing
* refactor: use globalFileUsage instead of achievement to append in reason
Fetching achievements is a time consuming operation and globalFileUsage gives the similar result in optimal time
* test(ReasonBuilder): fix tests according to new behavior
* refactor: remove logs added for testing
* test: await for async getReason method call
---------
Co-authored-by: Neel Doshi <neeldoshi147@gmail.com>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Nearby: Add 'Show in Explore' 3-dots menu item
* MainActivity: Add methods to pass extras between Nearby and Explore
* MainActivity: Extend loadFragment() to support passing fragment arguments
* Nearby: Add ability to navigate to Explore fragment on 'Show in Explore' click
* Explore: Read fragment arguments for Nearby map data and update Explore map if present
* Explore: Add 'Show in Nearby' 3-dots menu item. Only visible when Map tab is selected
* Explore: On 'Show in Nearby' click, navigate to Nearby fragment, passing map data as fragment args
* Nearby: Read fragment arguments for Explore map data and update Nearby map if present
* MainActivity: Fix memory leaks when navigating between bottom nav destinations
* Explore: Fix crashes caused by unattached map fragment
* Refactor code to pass unit tests
* Explore: Format javadocs
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* feat: show the message "Congratulations, all pictures in this album have been either uploaded or marked as not for upload." in the custom picker when all images are either uploaded or marked.
* refactor: fix indentation in the code
* refactor: replace LiveData with StateFlow
* fix: fixed the bug that was causing one ImageFragment testcase to fail.
* fix: fixed the Congratulation message being shown for a brief moment while switching off the switch
* refactor: move hardcoded string to strings.xml.
* docs: add comment to clarify visibility logic in ImageFragment
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* feat: Long-pressing a row in "Uploads" copies the caption to clipboard, and displays a snack saying "Caption copied to clipboard
* refactor: using string resources for the text instead of hard coded values
* Add a "copy link" button next to the share button. Add relative English and Simplified Chinese text in strings.xml.
* Change the icon from copy to link
* Fixed typo
* Fixed case
---------
Co-authored-by: Justweng <justweng19@gmail.com>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Rename AchievementFragment from `.java` to `.kt`
* Migrated AchievementFragment to kotlin
* Revamped Achievement Screen
* fixed AchievementFragment Unit Test
* fixed Level on MoreBottomSheetFragment
* Implemented Badge and Minor Code Refactor
* Fixed the badge issue & made the badge clickable
* Removed Redundant XML Code & Converted badges to green color and added values inside it
* Fixed : showSnackBarWithRetry Test
* Fixed : Theme issues on Light Mode
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Issue #5811: "Delete folder" menu in custom image selector
* Issue 5811: folder deletion for api < 29.
* Issue 5811: folder deletion for api < 29.
* Issue 5811: folder deletion for api 29.
* Issue 5811: folder deletion
* Issue 5811: fixes merge conflicts, replaces used function onActivityResult with an ActivityResultLauncher
* Update Constants.java
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* UI design for legend to explain the colors of the nearby pins
* Add listener for the button to toggle the visibility of the legend (make it hideable)
* Change wording for legend and make text localizable
* Fixed typo
* Fixed typo
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit adds logic to classify notifications as "email" type when the notification text contains "sent you an email". It also updates the email notification prompt to support localization, ensuring a better user experience across different regions.
### Problem:
1. Previously, email-related notifications from the backend were missing a URL. As a result, when users clicked on these notifications, there was no link to open, and the notifications were categorized as UNKNOWN. This led to a poor user experience since there was no feedback provided when the user clicked on an email notification.
2. Additionally, the existing code used hardcoded English text for the email notification prompt, which did not provide a localized experience for users in different regions.
### Solution:
1. Added logic to categorize email-related notifications as `EMAIL` when the notification text contains "sent you an email".
2. Replaced the hardcoded "Check your email inbox" string with a localized string and added translations for multiple languages, including zh, zh-rhk, zh-rcn, zh-rtw, and ja.
### Changes:
- **NotificationClient**:
- Modified `WikimediaNotification.toCommonsNotification()` to check if the notification text contains "sent you an email". If it does, the notification is classified as `EMAIL_MESSAGE` instead of the default `UNKNOWN`.
- **NotificationActivity**:
- In the `NotificatinAdapter` click handler, added a check for `EMAIL_MESSAGE` type. When an email-type notification is clicked, a localized "Check your mail box" prompt is shown using `Snackbar`, instead of attempting to open a URL (which is typically missing for such notifications).
- Modified to fetch the string using `getString(R.string.check_your_mail_box)` to support localization.
- **NotificationType**:
- Added a new `EMAIL` type to categorize email-related notifications.
- **Localization**:
- Added localized translations for "Check your mail box" in zh, zh-rhk, zh-rcn, zh-rtw, and ja.
Co-authored-by: Qiutong Zeng <Qiutong.zeng@anu.edu.au>
* Splitted the query
* Made changes to the query
* Improvised query
* Improvised query by dividing in the batches
* Fixed failing tests
* Improved batches
* Improved sorting
* Fixes issue caused by search this area button
* Fixed failing tests
* Fixed unnecessary reloads on onResume
* Fixed few pins not loading on changing apps
* Improved zoom level and fixed the pins not loading from the center
* Removed toggle chips and changed pin's color
* Fixed wikidata url
* Fixed unit tests
* Implemented retry with delay of 5000ms
* Fixed exception issue and pins issue
* Added change color icon to pin
* Improved pin clicking
* Removed search this area button
* Implemented caching of places
* Fixed unit test
* Factorized methods
* Changed primary key from location to entity id
* Fixed tests
* Fixed conflicts
* Fixed unit test
* Fixed unit test
* Fixed the bug
* Fixed issue with pin loading on the first launch
* Updated javadocs
* Temporary commit - only for testing
* Replaced Temporary commit
* Temporary commit - Added jcenter
* Made minor changes
* Fixed unit tests
* Fixed unit tests
* Fixed minor bug