Android Studio reported that there's an identifier
with a non-ASCII letter. It was nearbyFılterStateInstance,
with a Turkish dotless i. I renamed to ASCII dotted i.
This brings the number of Internationalization
issues in Inspect Code to zero.
* Support both label and itemLabel for robust NearbyResultItem mapping.
* fix code style
* Add getOriginalLabel() for Wikidata edits to avoid fallback issues with itemLabel
* Fix Wikidata edit failure by resetting hasInvalidLocation flag on upload confirmation
---------
Co-authored-by: Sonal Yadav <sonalyadav@Sonals-MacBook-Air.local>
* Optimize SPARQL query for single entity metadata using wikibase:label service
- Use SERVICE wikibase:label for efficient retrieval of labels and descriptions in preferred language
- Remove redundant label/description fetching logic
- Prevent Cartesian product and improve query performance for
* appeded all possible Wikidata languages
* Remove duplicate 'en'
* Update query_for_item.rq
* formatting, comments
---------
Co-authored-by: Sonal Yadav <sonalyadav@Sonals-MacBook-Air.local>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Convert Caption to kotlin
* Convert CaptionListViewAdapter to kotlin
* Convert CaptionListViewAdapter to kotlin
* Removed unused class
* Converted MwParseResult / MwParseResponse to kotlin
* Convert CustomOkHttpNetworkFetcher to kotlin
* Break up MediaDetailPagerFragment to make it easier to convert to kotlin
* Convert MediaDetailProvider to kotlin
* Convert the MediaDetailAdapter to kotlin
* Convert MediaDetailPagerFragment to kotlin
* 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
* Unused class removed
* Convert BasePresenter to kotlin
* Removed redundent class
* Move the Utils class into the utils package
* Inline the creation of a page title object
* Move license utilities into their own file
* Inline app rating since its only ever used in 1 place
* Moved GeoCoordinates utilities into their own class
* Moved Monuments related utils into their own class
* Moved screen capture into its own util class
* Moved handleWebUrl to its own utility class
* Moved fixExtension to its own class
* Moved clipboard copy into its own utility class
* Renames class to match remaining utility method
* Convert UnderlineUtils to kotlin
* Converted the copy-to-clipboard utility to kotlin
* Converted license name and url lookup to kotlin
* Converted fixExtension to kotlin
* Convert handleGeoCoordinates to kotlin
* Monument utils converted to kotlin
* Convert then inline screeen capture in kotlin
* Convert handleWebUrl to kotlin
* NearbyParentFragment.kt: add helper methods for user location overlays and accuracy data.
Before this commit, the code used to create the user location overlays was in multiple places.
Additionally, there was no easy way to access the location accuracy.
This commit places the user location overlay creation code into helper methods, as well as adding
a new location accuracy getter method. These methods can now be used to refactor other parts of the file.
* NearbyParentFragment.kt: create method to update user location overlays
Before this commit, there was no easy way to update the user location overlays.
This commit adds the updateUserLocationOverlays() method, which will properly replace
the old user location overlays with new ones. It will also add the overlays if they
do not already exist.
* NearbyParentFragment.kt: replace old code with calls to updateUserLocationOverlays()
This commit completes the refactor and fixes the issue of the user overlays not
updating. The new method updateUserLocationOverlays is called to refactor and simplify
old code.
* Removal of file is not related to the issue, but is needed for project to compile and run.
* NearbyParentFragment.kt: fix bug where multiple user location overlays would appear
Before this commit, the user could see multiple user location overlays if they paused the app and reopened it when
there are no Places/pins on the map. This was caused by a linear search failing to identify the target overlay
because it compared Drawables between two Overlays, which was unreliable.
This commit contains a better solution for replacing existing user location overlays by adding 2 instance variables
to keep track of the overlays. The position of these overlays in the overlay list can then be found by using indexOf()
with these instance variables rather than the linear search that was implemented before. Some refactoring was also done.
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* refactor: replace unused exception variable with underscore
* refactor: code style fix
* fix: remove unnecessary latLng variable and return null directly
* fix: use explicit true/false instead of isFABsExpanded
* refactor: simplify marker update logic by reducing redundant conditions
* refactor: use data object instead of object
* fix: check placeBindings for null instead of checking each destructured value
* fix: check placeBindings for null instead of checking each destructured value
* docs: fix KDoc for contentUri property by removing incorrect @param tag
* docs: correct @see link in KDoc for showBadgesWithCount
* docs: fix KDoc tag from @property to @param for context in BottomSheetAdapter
* docs: comment out KDoc for disabled method to avoid unresolved @param warning
* docs: fix KDoc for onLongPress by removing invalid @param imageUri
* docs: clean up invalid KDoc tags on property and add docs to isEmpty
* docs: remove invalid @param originalImageCoordinates from findOtherImages KDoc
* docs: fix incorrect @param tag in checkDuplicateImage KDoc
* docs: fix incorrect @param in onLongPress KDoc
* docs: fix invalid @param and @return tags on author property
* docs: fix incorrect @param in provideWikidataMediaInterface KDoc
* docs: fix incorrect @param name in getWikiText KDoc
* docs: escape wikilinks with [[ ]] to avoid KDoc resolution warnings
* docs: fix KDoc by adding missing param descriptions to startActivityWithFlags
* docs: fix KDoc by replacing @param with @property for contentUri
* docs: fix malformed KDoc in startYourself, remove invalid @param line
* docs: remove invalid @param tag in createDialogsAndHandleLocationPermissions
* docs: remove invalid @param tags to @property
* @docs: remove invalid @property tags
* docs: clean up KDoc by removing invalid @param and @return tags
* docs: fix incorrect @param name in removeBlocklisted KDoc
* docs: fix incorrect @param name in checkDuplicateImage KDoc
* docs: fix incorrect @param tag
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Rename .java to .kt
* Refactor: Migrate bookmark location logic to Kotlin
This commit migrates the bookmark location logic to Kotlin, enhancing code maintainability and readability.
- Removes the `BookmarkLocationsContentProvider`, `BookmarkLocationsController`, and `BookmarkLocationsDao` Java classes.
- Creates `BookmarkLocationsDao.kt` and `BookmarkLocationsContentProvider.kt` in Kotlin.
- Migrates the logic from `BookmarkLocationsFragment.java` to `BookmarkLocationsFragment.kt`.
- Updates test files to reflect these changes.
- Addresses associated code review comments.
* Refactor: Migrate to Room Database for Bookmark Locations
This commit migrates the bookmark locations functionality from a custom content provider to Room database.
Key changes:
* **Removal of `BookmarkLocationsContentProvider`:** This class, which previously handled data storage, has been removed.
* **Introduction of `BookmarksLocations`:** This data class now represents a bookmarked location, serving as the Room entity.
* **Creation of `BookmarkLocationsDao`:** This Room DAO handles database interactions for bookmark locations, including:
* Adding, deleting, and querying bookmarked locations.
* Checking if a location is already bookmarked.
* Updating the bookmark status of a location.
* Retrieving all bookmarked locations as `Place` objects.
* **`BookmarkLocationsViewModel`:** Added to manage the data layer for bookmark locations
* **`NearbyUtil`:** Created a Util class for Nearby to manage the bookmark locations.
* **Updates in `PlaceAdapter` and `PlaceAdapterDelegate`:** These classes have been modified to work with the new Room-based data layer.
* **Updates in `AppDatabase`:** The database now includes `BookmarksLocations` as an entity and exposes the `bookmarkLocationsDao`.
* **Updates in `FragmentBuilderModule` and `CommonsApplicationModule`**: for DI
* **Removal of `DBOpenHelper` upgrade for locations**: as it is no longer needed
* **Updates in `NearbyParentFragmentPresenter`**: refactored the logic to use the dao functions
* **Updates in `NearbyParentFragment`**: refactored the logic to use the util and dao functions
* **Update in `BookmarkLocationsController`**: removed as its no longer needed
* **Add `toPlace` and `toBookmarksLocations`**: extension functions to map between data class and entities
* **Update in `CommonsApplication`**: to remove old db table.
* Refactor: Improve bookmark location handling and update database version
This commit includes the following changes:
- Updates the database version to 20.
- Refactors bookmark location handling within `NearbyParentFragment` to improve logic and efficiency.
- Introduces `getBookmarkLocationExists` in `NearbyUtil` to directly update bookmark icons in the bottom sheet adapter.
- Removes unused provider.
- Adjusts `BookmarkLocationsFragment`'s `PlaceAdapter` to use `lifecycleScope` for better coroutine management.
- Refactors `updateBookmarkLocation` in `NearbyParentFragmentPresenter`.
* Toggle bookmark icon in BottomSheetAdapter instead of finding the location each time in the bookmark
* Update bookmark button image in `BottomSheetAdapter`
* Add new toggle function to `BottomSheetAdapter`
* Call the toggle function in `NearbyParentFragment`
* Refactor: Load bookmarked locations using Flow
* `BookmarkLocationsController`: Changed to use `Flow` to load bookmarked locations.
* `BookmarkLocationsDao`: Changed to return `Flow` of bookmark location instead of a list.
* `BookmarkLocationsFragment`: Used `LifecycleScope` to collect data from flow and display it.
* Removed unused `getAllBookmarkLocations()` from `BookmarkLocationsViewModel`.
* Used `map` in `BookmarkLocationsDao` to convert from `BookmarksLocations` to `Place` list.
* Loading locations data in fragment
* BookmarkLocationsController: Changed `loadFavoritesLocations` to be a suspend function.
* BookmarkLocationsFragment: Updated the `initList` function to call the controller's suspend function.
* BookmarkLocationsDao: Changed `getAllBookmarksLocations` and `getAllBookmarksLocationsPlace` to be suspend functions.
* Refactor BookmarkLocationControllerTest and related files to use coroutines
* Migrated `bookmarkDao!!.getAllBookmarksLocations()` to `bookmarkDao!!.getAllBookmarksLocationsPlace()` and added `runBlocking`
* Added `runBlocking` for `loadBookmarkedLocations()` and `testInitNonEmpty()`
* Added `runBlocking` for `getAllBookmarksLocations()` and update `updateMapMarkers`
These changes improve the test structure by ensuring the database functions are executed within a coroutine context.
* Refactor BookmarkLocationsFragment and add tests for BookmarkLocationsDao
* Moved `initList` to `BookmarkLocationsFragment` for better lifecycle handling.
* Added test case for `BookmarkLocationsFragment`'s onResume.
* Added test cases for `BookmarkLocationsDao` operations like adding, retrieving, finding, deleting and updating bookmarks.
* Refactor BookmarkLocationsFragment to load favorites only when view is not null
* BookmarkLocationsFragment: load favorites locations only when view is not null.
* BookmarkLocationsFragmentTest: added spy and verify to test onResume() call initList() method.
* Refactor database and add migration
* `AppDatabase`: Updated to use room migration.
* `CommonsApplicationModule`: added migration from version 19 to 20 to `appDatabase`
* Rename .java to .kt
* Refactor: Migrate bookmark location logic to Kotlin
This commit migrates the bookmark location logic to Kotlin, enhancing code maintainability and readability.
- Removes the `BookmarkLocationsContentProvider`, `BookmarkLocationsController`, and `BookmarkLocationsDao` Java classes.
- Creates `BookmarkLocationsDao.kt` and `BookmarkLocationsContentProvider.kt` in Kotlin.
- Migrates the logic from `BookmarkLocationsFragment.java` to `BookmarkLocationsFragment.kt`.
- Updates test files to reflect these changes.
- Addresses associated code review comments.
* Refactor: Migrate to Room Database for Bookmark Locations
This commit migrates the bookmark locations functionality from a custom content provider to Room database.
Key changes:
* **Removal of `BookmarkLocationsContentProvider`:** This class, which previously handled data storage, has been removed.
* **Introduction of `BookmarksLocations`:** This data class now represents a bookmarked location, serving as the Room entity.
* **Creation of `BookmarkLocationsDao`:** This Room DAO handles database interactions for bookmark locations, including:
* Adding, deleting, and querying bookmarked locations.
* Checking if a location is already bookmarked.
* Updating the bookmark status of a location.
* Retrieving all bookmarked locations as `Place` objects.
* **`BookmarkLocationsViewModel`:** Added to manage the data layer for bookmark locations
* **`NearbyUtil`:** Created a Util class for Nearby to manage the bookmark locations.
* **Updates in `PlaceAdapter` and `PlaceAdapterDelegate`:** These classes have been modified to work with the new Room-based data layer.
* **Updates in `AppDatabase`:** The database now includes `BookmarksLocations` as an entity and exposes the `bookmarkLocationsDao`.
* **Updates in `FragmentBuilderModule` and `CommonsApplicationModule`**: for DI
* **Removal of `DBOpenHelper` upgrade for locations**: as it is no longer needed
* **Updates in `NearbyParentFragmentPresenter`**: refactored the logic to use the dao functions
* **Updates in `NearbyParentFragment`**: refactored the logic to use the util and dao functions
* **Update in `BookmarkLocationsController`**: removed as its no longer needed
* **Add `toPlace` and `toBookmarksLocations`**: extension functions to map between data class and entities
* **Update in `CommonsApplication`**: to remove old db table.
* Refactor: Improve bookmark location handling and update database version
This commit includes the following changes:
- Updates the database version to 20.
- Refactors bookmark location handling within `NearbyParentFragment` to improve logic and efficiency.
- Introduces `getBookmarkLocationExists` in `NearbyUtil` to directly update bookmark icons in the bottom sheet adapter.
- Removes unused provider.
- Adjusts `BookmarkLocationsFragment`'s `PlaceAdapter` to use `lifecycleScope` for better coroutine management.
- Refactors `updateBookmarkLocation` in `NearbyParentFragmentPresenter`.
* Toggle bookmark icon in BottomSheetAdapter instead of finding the location each time in the bookmark
* Update bookmark button image in `BottomSheetAdapter`
* Add new toggle function to `BottomSheetAdapter`
* Call the toggle function in `NearbyParentFragment`
* Refactor: Load bookmarked locations using Flow
* `BookmarkLocationsController`: Changed to use `Flow` to load bookmarked locations.
* `BookmarkLocationsDao`: Changed to return `Flow` of bookmark location instead of a list.
* `BookmarkLocationsFragment`: Used `LifecycleScope` to collect data from flow and display it.
* Removed unused `getAllBookmarkLocations()` from `BookmarkLocationsViewModel`.
* Used `map` in `BookmarkLocationsDao` to convert from `BookmarksLocations` to `Place` list.
* Loading locations data in fragment
* BookmarkLocationsController: Changed `loadFavoritesLocations` to be a suspend function.
* BookmarkLocationsFragment: Updated the `initList` function to call the controller's suspend function.
* BookmarkLocationsDao: Changed `getAllBookmarksLocations` and `getAllBookmarksLocationsPlace` to be suspend functions.
* Refactor BookmarkLocationControllerTest and related files to use coroutines
* Migrated `bookmarkDao!!.getAllBookmarksLocations()` to `bookmarkDao!!.getAllBookmarksLocationsPlace()` and added `runBlocking`
* Added `runBlocking` for `loadBookmarkedLocations()` and `testInitNonEmpty()`
* Added `runBlocking` for `getAllBookmarksLocations()` and update `updateMapMarkers`
These changes improve the test structure by ensuring the database functions are executed within a coroutine context.
* Refactor BookmarkLocationsFragment and add tests for BookmarkLocationsDao
* Moved `initList` to `BookmarkLocationsFragment` for better lifecycle handling.
* Added test case for `BookmarkLocationsFragment`'s onResume.
* Added test cases for `BookmarkLocationsDao` operations like adding, retrieving, finding, deleting and updating bookmarks.
* Refactor BookmarkLocationsFragment to load favorites only when view is not null
* BookmarkLocationsFragment: load favorites locations only when view is not null.
* BookmarkLocationsFragmentTest: added spy and verify to test onResume() call initList() method.
* Refactor database and add migration
* `AppDatabase`: Updated to use room migration.
* `CommonsApplicationModule`: added migration from version 19 to 20 to `appDatabase`
* Resolve conflicts and attach the `commons.db` with `common_room.db` during the migration to persist the data
* Refactor database migration to handle null values and use direct insertion
* Modify the database migration from version 19 to 20 to properly handle null values and use direct data insertion.
* Create a new table `bookmarks_locations` with `NOT NULL` constraints.
* Directly insert data into the new table from old database, safely handling `NULL` values by using `DEFAULT` empty string value.
* Close old database cursor and the database connection.
* Drop the old `bookmarksLocations` table.
* Refactor database schema to delete `bookmarksLocations` table and migrate data
* Delete `bookmarksLocations` table from the database during schema upgrade
* Migrate data from `bookmarksLocations` to `bookmarks_locations` in new schema
* Add `INSERT OR REPLACE` to prevent duplication during migration
* Delete `CONTRIBUTIONS_TABLE` and `BOOKMARKS_LOCATIONS` in the application start-up to have a fresh DB for first start-up after update
* Update sqlite-based database version to 22.
* Update sqlite-based database version to 22.
* Refactor CommonsApplicationModule to utilize application context
* Initialize and use application context directly
* Utilize lateinit for application context
* Added line breaks for improved readability.
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Applied better animation in nearby
* Refactor: Reduce Duration of Rotate Animation
Decreased the duration of the rotate animation from 1000ms to 500ms in `rotate.xml`, resulting in a faster rotation speed.
* Place.java: change getWikiDataEntityID() method to increase speed
Before this commit, this method would perform the String replace method on the Wikidata link every time
getWikiDataEntityID() was called. Also, getWikiDataLink() was called. This caused poor performance
since both method calls are slow.
This commit changes the method to only run the slow methods if the entityID field is empty or
null. Once the field is populated, the method simply returns the field. This change allows
getWikiDataEntityID() to run much faster.
* NearbyParentFragmentPresenter.kt: change async and place update parameters
Before this commit, the parameters that configure the async and place update code contributed to
the slow loading of the red and green map markers.
This commit changes the parameters such that the red and green map markers load much faster.
These parameters may need further tuning. This commit's changes are simply an educated
guess at a good parameter set.
* NearbyParentFragment.kt: rewrite Java Drawable caching code to Kotlin
Before this commit, the code which cached Drawables was written in Java.
This commit rewrites that code into the new Kotlin file, which replaces the Java file.
* NearbyParentFragmentPresenter.kt: change loadPlacesDataAsync to retry HTTP requests after failure
Before this commit, when an HTTP request failed, the entire batch of Places would not get updated,
even if it was only one Place in the batch that caused the failure.
This commit changes the code such that upon HTTP request failure, new HTTP requests are sent with
one Place per request. This allows more Places to be fetched from the server.
* Rename .java to .kt
* Migrated ContributionController
* Rename .java to .kt
* Migrated ContributionDao
* Rename .java to .kt
* Migrated ContributionsContract,ContributionFragment,ContributionListAdapter,ContributionsListContract from java to Kotlin
* Rename .java to .kt
* converted/Migrated
* converted/Migrated
* Rename .java to .kt
* Migrated ContributionController
* Rename .java to .kt
* Migrated ContributionDao
* Rename .java to .kt
* Migrated ContributionsContract,ContributionFragment,ContributionListAdapter,ContributionsListContract from java to Kotlin
* Rename .java to .kt
* Show placeholder and display depiction section when no depictions are available (#6163) (#6165)
* corrected
* corrected
* Update MediaDetailFragment.kt
Spelling correction
* Migrated AboutActivity from Java to Kotlin (#6158)
* Rename Constants to Follow Kotlin Naming Conventions
>This PR refactors constant names in the project to adhere to Kotlin's UPPERCASE_SNAKE_CASE naming convention, improving code readability and maintaining consistency across the codebase.
>Renamed the following constants in LoginActivity:
>saveProgressDialog → SAVE_PROGRESS_DIALOG
>saveErrorMessage → SAVE_ERROR_MESSAGE
>saveUsername → SAVE_USERNAME
>savePassword → SAVE_PASSWORD
>Updated all references to these constants throughout the project.
* Update Project_Default.xml
* Refactor variable names to adhere to naming conventions
Renamed variables to use camel case:
-UPLOAD_COUNT_THRESHOLD → uploadCountThreshold
-REVERT_PERCENTAGE_FOR_MESSAGE → revertPercentageForMessage
-REVERT_SHARED_PREFERENCE → revertSharedPreference
-UPLOAD_SHARED_PREFERENCE → uploadSharedPreference
Renamed variables with uppercase initials to lowercase for alignment with Kotlin conventions:
-Latitude → latitude
-Longitude → longitude
-Accuracy → accuracy
Refactored the following variable names:
-NUMBER_OF_QUESTIONS → numberOfQuestions
-MULTIPLIER_TO_GET_PERCENTAGE → multiplierToGetPercentage
* Refactor Dialog View Initialization with Null-Safe Calls
This PR refactors the dialog setup code in CustomSelectorActivity to improve safety and readability by replacing explicit casts with null-safe generic calls for findViewById.
>Replaced explicit casting (as Button and as TextView) with the generic findViewById<T>() method for improved type safety.
>Added null-safety (?.) to avoid potential crashes if a view is not found in the dialog layout.
why changed:-
>Prevents runtime crashes caused by NullPointerException when a view is missing in the layout.
* Refactor Unit Test: Replace Unsafe Casting with Type-Safe Mocking for findViewById
>PR refactors the unit test for NearbyParentFragment by replacing unsafe casting in the findViewById mocking statements with type-safe
>Ensured all findViewById mocks now use a consistent, type-safe format (findViewById<View>(...)) to reduce verbosity and potential casting errors.
>Verified the functionality of prepareViewsForSheetPosition remains unchanged, ensuring no regression in test behavior.
* Update NearbyParentFragmentUnitTest.kt
* Refactor: Rename Constants to Follow CamelCase Naming Convention
>Updated all constant variable names to follow the camelCase naming convention, removing underscores in the middle or end.
>Ensured variable names remain descriptive and align with code readability best practices.
* Replace private val with const val for URL constants in QuizController
* Renaming the constant to use UPPER_SNAKE_CASE
* Renaming the constant to use UPPER_SNAKE_CASE
* Update Done
* **Refactor: Convert `minimumThresholdForSwipe` to a compile-time constant**
* Convert AboutActivity from Java to Kotlin
This PR converts the AboutActivity class from Java to Kotlin
>Testing:
>Verified all functionalities of the AboutActivity, including toolbar setup, intent launches, and dialog interactions, to ensure behavior remains consistent post-conversion.
>Successfully ran unit tests for AboutActivity to confirm the correctness of methods and logic.
* Thank you for the suggestion! Since these methods all take a single View parameter, replacing them with method references is a great way to simplify the code and improve readability. I'll updated the code accordingly. Added a TODO in the code as a reminder to refactor this in the future.
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Localisation updates from https://translatewiki.net.
* Feat: Make it smoother to switch between nearby and explore maps (#6164)
* 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>
* Localisation updates from https://translatewiki.net.
* enhance spammy category filter (#6167)
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* Localisation updates from https://translatewiki.net.
* correction
* correction
* correction
* GitHub workflow to build betaDebug (#6174)
* [Bug fix] Check if duplicate exist using both original and modified file's checksum (#6169)
* check original file's SHA too along with modified one
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* fix tests
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
---------
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* Add multiline input for caption and description (#6173)
* allow multiple lines for description/caption
* make caption multiline too
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* correction
---------
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
Co-authored-by: Akshay Komar <146421342+Akshaykomar890@users.noreply.github.com>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
Co-authored-by: translatewiki.net <l10n-bot@translatewiki.net>
Co-authored-by: Ifeoluwa Andrew Omole <iomole3@gmail.com>
Co-authored-by: Parneet Singh <111801812+parneet-guraya@users.noreply.github.com>
Co-authored-by: Matija Nalis <mnalis-git@voyager.hr>
* 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>
* Nearby: Search for actual map center
* Add query syntax and methods
* Nearby: Added binary search for loading pins
* Add NearbyQueryParams and refactor
* Add unit tests and complete implementation
* Nearby: Increase max radius from 100km to 300km
* Nearby: Centermost pins now appear on top
* getNearbyItemCount: Added javadoc
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
fixes#6046
the OnFocusChangeListener for nearby place list items sometimes gets invoked when new items aer set, even when the list is hidden, if an item had previously been clicked in it. This in turn causes the onItemClick to be called. This commit adds a check to make sure the list is not hidden when onItemClick is invoked this way.
* temporary fixes part one
* temporary fixes part two
* temporary fixes part three
* temporary fixes part four
* temporary fixes part five
* reformatting
* remove code no longer in use
* Migrate NearbyParentFragmentPresenter to Kotlin
* Partially replace temporary experimental fixes
* Replace temporary experimental fixes part 2
* Replace temporary experimental fixes part 3
* Replace temporary fixes completely
* Fix caching and loading places in Nearby list
* Add place bookmarking logic, Remove all old code
* Nearby Presenter: Close channel properly
* Nearby pins now load starting from the center
Fixes#6049
* Add comments and javadoc for Nearby Presenter
* Fix warnings, Fix formatting, Add javadoc
* Pass unit tests
* Convert upload dagger module to kotlin
* Code cleanup and convert the upload contract to kotlin
* Code cleanup and convert CategoriesContract to kotlin
* Code cleanup and convert MediaLicenseContract to kotlin
* Code cleanup and convert UploadMediaDetailsContract to kotlin
* Code cleanup, fixed nullability and converted DepictsContract to kotlin
* Removed unused class
* Convert FileMetadataUtils to kotlin
* Convert EXIFReader to kotlin
* Convert FileUtils to kotlin
* Convert FileUtilsWrapper to kotlin
* Convert ImageProcessingService to kotlin
* Convert PageContentsCreator to kotlin
* Convert PendingUploadsPresenter and contract to Kotlin with some code-cleanup
* Convert ReadFBMD to kotlin
* Convert SimilarImageInterface to kotlin
* Removed unused classes
* Fix merge/rebase issue
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* refactor getIconFor method and remove call to highlightNearestPlace()
It ensures single responsibility on getIconFor method
* refactor and fix icon issue when coming from nearby banner
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* Rename .java to .kt
* Migrated the following files in util module to Kotlin
- AbstractTextWatcher
- ActivityUtils
- CommonsDateUtil
- DateUtil
* Rename .java to .kt
* Migrated the following files in util module to Kotlin
- DeviceInfoUtil
- ExecutorUtils
- FragmentUtils
* Rename .java to .kt
* Migrated the following files in util module to Kotlin
- ImageUtils
- ImageUtilsWrapper
- LangCodeUtils
- LayoutUtils
- LengthUtils
- LocationUtils
- MapUtils
* Rename .java to .kt
* Migrated all remaining files in util module
* BaseMarker.kt: removed unneeded cast
* TransformImageImpl.kt: removed unreachable code
* ZoomableActivity.kt: removed Unnecessary safe call on a non-null receiver of type ZoomableDraweeView
* ZoomableActivity.kt: removed Unnecessary safe call on a non-null receiver of type ZoomableDraweeView
* DescriptionEditActivity.kt: removed unnecessary non-null assertion (!!) on a non-null receiver of type DescriptionEditHelper
* Media.kt: Property would not be serialized into a 'Parcel'. Added '@IgnoredOnParcel' annotation to remove the warning
* ZoomableActivity.kt: removed Unnecessary non-null assertion (!!) on a non-null receiver of type ZoomableDraweeView
* CategoryClient.kt: removed condition 'page.categoryInfo() == null' as it's always 'false'
* DescriptionEditActivity.kt: removed unnecessary safe call on a non-null receiver of type SessionManager
* DescriptionEditActivity.kt: removed unnecessary safe call on a non-null receiver of type DescriptionEditHelper
* WikidataFeedback.kt: removed unneeded cast
* FailedUploadsFragment.kt: removed unneeded non-null assertion (!!)
* PendingUploadsFragment.kt: removed unneeded non-null assertion (!!)
* AchievementsFragment.java: Changed toUpperCase to toUpperCase(Locale.getDefault())
* ExploreFragment.java: Changed toUpperCase to toUpperCase(Locale.getDefault())
* FileUtils.java: Changed toUpperCase to toUpperCase(Locale.getDefault())
* AchievementsFragment.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* ExploreFragment.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* LocationPickerActivity.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* MediaDetailFragment.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* NearbyFilterSearchRecyclerViewAdapter.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* ProfileActivity.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* RecentSearchesFragment.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* ReviewActivity.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* SearchActivity.java: Changed toUpperCase to toUpperCase(Locale.ROOT)
* UploadMediaPresenter.java: Changed toUpperCase to toLowerCase(Locale.ROOT)
* CategoriesMediaFragment.kt: Changed arguments!! to requireArguments()
* ChildDepictionsFragment.kt: Changed arguments!! to requireArguments()
* DepictedImagesFragment.kt: Changed arguments!! to requireArguments()
* DepictsFragment: Changed Objects.requireNonNull(getView()) to requireViews(), Objects.requireNonNull(getActivity())) to requireActivity()
* ParentCategoriesFragment.kt: Changed arguments!! to requireArguments()
* ParentCategoriesFragment.kt: Changed arguments!! to requireArguments()
* SubCategoriesFragment.kt: Changed arguments!! to requireArguments()
* SubCategoriesFragment.kt: Changed Objects.requireNonNull(getView()) to requireViews(), Objects.requireNonNull(getActivity()) to requireActivity()
* UploadMediaDetailFragment.java: Changed arguments!! to requireArguments()
* WikipediaInstructionsDialogFragment.kt: Changed arguments!! to requireArguments()
* BookmarkItemsDao.java: Added @SuppressLint("Range"), as -1 is expected behavior not index doesn't exist for getColumnIndex()
* BookmarkLocationsDao.java: Added @SuppressLint("Range"), as -1 is expected behavior not index doesn't exist for getColumnIndex()
* AndroidManifest.xml: Removed redundant label android:label="@string/app_name"
* bs\strings.xml: Added missing few quantity
* hr\strings.xml: Added missing few quantity
* hr\strings.xml: Added missing zero, two, few, many quantities for lines 23 - 63
* Revert "hr\strings.xml: Added missing zero, two, few, many quantities for lines 23 - 63"
This reverts commit 47232466ab.
* cy\strings.xml: Added missing zero, two, few, many quantities for lines 23 - 63
* sr\strings.xml: Added missing few quantities for lines 35 to 70
* ro\strings.xml: Added missing few quantity and removed not needed zero for <plurals name="contributions_subtitle" fuzzy="true">
* cs\strings.xml: Added missing few many missing quantities for lines 33 - 74
* lt\strings.xml: Added missing few, many missing quantities for lines 34 - 58
* lt\strings.xml: Replaced . . . with ...
* ca\strings.xml: Added missing many quantities for lines 21 - 51, replaced . . . with ...
* ser\strings.xml: Added missing few quantities, replaced . . . with ...
* br\strings.xml: Added missing two, few, many quantities
* pt\strings.xml: Added missing many quantity, changed . . . to ... and ignored typo as it is correct for European Portuguese
* it\strings.xml: changed . . . to ...
* pt\strings.xml: fixed many quantity
* ca\strings.xml: fixed many quantity
* sr\strings.xml: fixed many quantity
* cy\strings.xml: corrected quantities for "share_license_summary
* fr\strings.xml: changed . . . to ... and add many quantities using the other quantity
* fr\strings.xml: changed . . . to ... and add many quantities using the other quantity. Fixed some typos, added ignore for correct spellings but has warning
* getColumnIndex(): added @SuppressLint("Range") as -1 is expected result for column name doesn't exist
* values-b+sr+Latn\strings.xml: changed . . . to ...
* Revert "values-b+sr+Latn\strings.xml: changed . . . to ..."
This reverts commit 95b909c29f.
* values-b+roa+tara\strings.xml: changed . . . to ...
* Revert "values-b+roa+tara\strings.xml: changed . . . to ..."
This reverts commit b5db1a3e68.
* values-b+roa+tara\strings.xml: changed . . . to ...
* values-b+sr+Latn\strings.xml: changed . . . to ..., add few based on other quantity. Ignored one ImpliedQuantity warning as it is correct.
* it\strings.xml: changed . . . to ..., add many based on other quantity.
* pt-rBR\strings.xml: changed . . . to ..., add many based on other quantity. Fixed typos, ignored warning for "one" quantity as translation didn't use number
* si\strings.xml: Ignored ImpliedQuantity warning as it uses 1 not %d. Removed not needed zero quantity
* si\strings.xml: Ignored ImpliedQuantity warning as it uses 1 not %d. Removed not needed zero quantity. Fixed wrong %1$d. Changed . . . to ...
* mk\strings.xml: changed . . . to ... and ignored ImpliedQuantity as it doesn't use 1
* sl\strings.xml: changed . . . to ... and ignored ImpliedQuantity as it doesn't use %1$d
* ru\strings.xml: changed . . . to ... and ignored ImpliedQuantity as it doesn't use %1$d
* uk\strings.xml: changed . . . to ... and ignored ImpliedQuantity as it doesn't use %1$d
* is\strings.xml: changed . . . to ... and ignored ImpliedQuantity as it doesn't use %1$d
* strings.xml: changed . . . to ...
* af\strings.xml: removed not needed zero quantity
* de\strings.xml: fixed duplicate word typo
* diq\strings.xml: changed - to dash (-)
* hi\strings.xml: removed not needed zero
* in\strings.xml: removed not needed one quantity
* iw\strings.xml: removed not needed many quantity
* ja\strings.xml: removed not needed one quantity
* ko\strings.xml: removed not needed one quantity
* ky\strings.xml: removed not needed one quantity
* mr\strings.xml: removed not needed zero quantity
* my\strings.xml: removed not needed one quantity
* su\strings.xml: removed not needed one quantity
* th\strings.xml: removed not needed one and zero quantity
* zh\strings.xml: removed not needed one quantity
* activity_description_edit.xml: changed android:tint to app:tint, changed layout_alignParentRight to layout_alignParentEnd
* bottom_sheet_details_explore.xml: changed android:tint to app:tint, added focusable, changed to margin layout
* bottom_sheet_item_layout.xml: changed android:tint to app:tint, added focusable
* bottom_sheet_details_explore.xml: changed android:tint to app:tint, added focusable, changed margin layout and removed not needed and invalid params
* item_place.xml.xml: changed android:tint to app:tint, added focusable, changed margin layout and removed not needed and invalid params
* layout_campagin.xml: changed android:tint to app:tint, added focusable, changed margin layout and removed not needed and invalid params
* layout_contribution.xml.xml: changed android:tint to app:tint
* nearby_card_view.xml: changed android:tint to app:tint, added focusable, changed margin layout and removed not needed and invalid params
* nearby_row_button.xml: changed android:tint to app:tint, added focusable, changed margin layout and removed not needed and invalid params
* toolbar_location_picker.xml: changed android:tint to app:tint
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* make database function calls suspending and update room version
* replace MainScope with coroutineScope for database operations
* add suspend keyword and refactor code
* Changed files required to get the app to run correctly. Removed suspend from affected DAO files and funcs, and changed to (Kotlin v1.9.22) and (Kotlin compiler v1.5.8)
* Created refresh button icon, and added it to the nearby_fragment_menu.xml (header of the nearby page). Created function refresh() in NearbyParentFragment.java to handle refresh functionality.
* Replaced refresh() func with emptyCache() and reloadMap()
* Attempt at reloadMap(), no testing done yet.
* added changes for a possibly working emptyCache implementation (needs testing).
* Tested changes as working, edited emptyCache to correctly clear cache and then reload map
---------
Co-authored-by: MarcusBarta <marcusbarta@icloud.com>
* remove unused result expectancy for settings screen launch
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* initial refactor to new result api, wip
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* refactor camera launcher
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* revert callback for video handling
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* invoke callbacks when cancelled
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* handle gallery picker result based on preference
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* remove old method of refactoring for file picker
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* remove legacy result handling callback
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* request code used for handling result was never used for launching an activity, hence removed
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* extract voice result handling into function
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* refactor test
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* remove unused tests
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* cleanup
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* fix-docs
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
* add space after ,
Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
---------
Signed-off-by: parneet-guraya <gurayaparneet@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>
* (fixes#5855) fetch item label in nearby based on user configured language.
* implement a method to delete Place entity from database
* clear the cache for a item when a wikiItem is updated.
* fix style issue
* Update placesRepository on successful WikiItemEdit
* Revert the delete operations added to the PlaceDAO
* Set name of the place to avoid race condition with NearbyParentFragment. Update Success Notification to show only after the pin has been updated.
* Clean-up
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* NearbyParentFragment.java:
OnScroll - removed distance threshold, delay search by 800ms, discard multiple OnScroll within 800ms.
OnDestroy - destroy any queued OnScroll events
* NearbyParentFragment.java:
loadPlacesDataAsync - set batchSize from 50 back to original 3
* comment
---------
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
* *.kt: bulk correction of formatting using ktlint --format
* *.kt: replace wildcard imports and second stage auto format ktlint --format
* QuizQuestionTest.kt: modified property names to camel case to meet ktlint standard
* LevelControllerTest.kt: modified property names to camel case to meet ktlint standard
* QuizActivityUnitTest.kt: modified property names to camel case to meet ktlint standard
* MediaDetailFragmentUnitTests.kt: modified property names to camel case to meet ktlint standard
* UploadWorker.kt: modified property names to camel case to meet ktlint standard
* UploadClient.kt: modified property names to camel case to meet ktlint standard
* BasePagingPresenter.kt: modified property names to camel case to meet ktlint standard
* DescriptionEditActivity.kt: modified property names to camel case to meet ktlint standard
* OnSwipeTouchListener.kt: modified property names to camel case to meet ktlint standard
* MediaDetailFragmentUnitTests.kt: corrected excessive line length to meet ktlint standard
* DepictedItem.kt: corrected property name format and catch format to for ktlint standard
* UploadCategoryAdapter.kt: corrected class definition format to meet ktlint standard
* CustomSelectorActivity.kt: reformatted function names to first letter lowercase to meet ktlint standard
* MediaDetailFragmentUnitTests.kt: fix string literal indentation to meet ktlint standard
* NotForUploadDao.kt: file renamed to match class name, new file NotForUploadStatusDao.kt
* UploadedDao.kt: file renamed to match class name, new file UploadedStatusDao.kt
* Urls.kt: fixed excessive line length for ktLint standard
* Snak_partial.kt & Statement_partial.kt: refactored to remove underscores in class names to meet ktLint standard
* *.kt: fixed consecutive KDOC error for ktLint
* PageableBaseDataSourceTest.kt & UploadPresenterTest.kt: fixed excessive line lengths to meet ktLint standard
* CheckboxTriStatesTest.kt: renamed file to match class name to meet ktLint standard
* .kt: resolved backing-property-naming error in ktLint, made matching properties public, matched names and refactored
* TestConnectionFactory.kt: fixed property naming to adhere to ktLint standard