mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Resolve conflicts and attach the commons.db with common_room.db during the migration to persist the data
This commit is contained in:
parent
55fc6352f8
commit
17043a1064
6 changed files with 64 additions and 2447 deletions
|
|
@ -95,17 +95,17 @@ class BookmarkLocationsFragment : DaggerFragment() {
|
|||
val areAllGranted = result.values.all { it }
|
||||
|
||||
if (areAllGranted) {
|
||||
contributionController.locationPermissionCallback.onLocationPermissionGranted()
|
||||
contributionController.locationPermissionCallback?.onLocationPermissionGranted()
|
||||
} else {
|
||||
if (shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) {
|
||||
contributionController.handleShowRationaleFlowCameraLocation(
|
||||
activity,
|
||||
requireActivity(),
|
||||
inAppCameraLocationPermissionLauncher,
|
||||
cameraPickLauncherForResult
|
||||
)
|
||||
} else {
|
||||
contributionController.locationPermissionCallback
|
||||
.onLocationPermissionDenied(
|
||||
?.onLocationPermissionDenied(
|
||||
getString(R.string.in_app_camera_location_permission_denied)
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ import fr.free.nrw.commons.wikidata.WikidataEditListenerImpl
|
|||
import io.reactivex.Scheduler
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import timber.log.Timber
|
||||
import java.util.Objects
|
||||
import javax.inject.Named
|
||||
import javax.inject.Singleton
|
||||
|
|
@ -272,6 +273,8 @@ open class CommonsApplicationModule(private val applicationContext: Context) {
|
|||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execSQL("ATTACH DATABASE '/data/user/0/fr.free.nrw.commons.beta/databases/commons.db' AS oldDb")
|
||||
db.execSQL("""
|
||||
INSERT INTO bookmarks_locations (
|
||||
location_name, location_language, location_description, location_category,
|
||||
|
|
@ -284,10 +287,11 @@ open class CommonsApplicationModule(private val applicationContext: Context) {
|
|||
location_label_text, location_label_icon, location_lat, location_long,
|
||||
location_image_url, location_wikipedia_link, location_wikidata_link,
|
||||
location_commons_link, location_pic, location_exists
|
||||
FROM bookmarksLocations
|
||||
FROM oldDb.bookmarksLocations
|
||||
""")
|
||||
|
||||
db.execSQL("DROP TABLE IF EXISTS bookmarkLocations")
|
||||
db.execSQL("DETACH DATABASE oldDb")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import androidx.lifecycle.LifecycleCoroutineScope
|
|||
import fr.free.nrw.commons.R
|
||||
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
|
||||
object NearbyUtil {
|
||||
|
||||
|
|
@ -16,7 +17,7 @@ object NearbyUtil {
|
|||
) {
|
||||
scope?.launch {
|
||||
val isBookmarked = bookmarksLocationsDao.findBookmarkLocation(name)
|
||||
Log.d("isBookmarked", isBookmarked.toString())
|
||||
Timber.i("isBookmarked: $isBookmarked")
|
||||
if (isBookmarked) {
|
||||
bottomSheetAdapter.updateBookmarkIcon(R.drawable.ic_round_star_filled_24px)
|
||||
} else {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -75,6 +75,7 @@ import fr.free.nrw.commons.nearby.MarkerPlaceGroup
|
|||
import fr.free.nrw.commons.nearby.NearbyController
|
||||
import fr.free.nrw.commons.nearby.NearbyFilterSearchRecyclerViewAdapter
|
||||
import fr.free.nrw.commons.nearby.NearbyFilterState
|
||||
import fr.free.nrw.commons.nearby.NearbyUtil
|
||||
import fr.free.nrw.commons.nearby.Place
|
||||
import fr.free.nrw.commons.nearby.PlacesRepository
|
||||
import fr.free.nrw.commons.nearby.WikidataFeedback
|
||||
|
|
@ -638,21 +639,23 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
private fun initRvNearbyList() {
|
||||
binding!!.bottomSheetNearby.rvNearbyList.layoutManager = LinearLayoutManager(context)
|
||||
adapter = PlaceAdapter(
|
||||
bookmarkLocationDao!!,
|
||||
{ place: Place ->
|
||||
bookmarkLocationsDao = bookmarkLocationDao,
|
||||
scope = scope,
|
||||
onPlaceClicked = { place: Place ->
|
||||
moveCameraToPosition(
|
||||
GeoPoint(place.location.latitude, place.location.longitude)
|
||||
GeoPoint(
|
||||
place.location.latitude,
|
||||
place.location.longitude
|
||||
)
|
||||
)
|
||||
Unit
|
||||
},
|
||||
{ place: Place?, isBookmarked: Boolean? ->
|
||||
presenter!!.toggleBookmarkedStatus(place)
|
||||
Unit
|
||||
onBookmarkClicked = { place: Place?, _: Boolean? ->
|
||||
presenter!!.toggleBookmarkedStatus(place, scope)
|
||||
},
|
||||
commonPlaceClickActions!!,
|
||||
inAppCameraLocationPermissionLauncher,
|
||||
galleryPickLauncherForResult,
|
||||
cameraPickLauncherForResult
|
||||
commonPlaceClickActions = commonPlaceClickActions,
|
||||
inAppCameraLocationPermissionLauncher = inAppCameraLocationPermissionLauncher,
|
||||
galleryPickLauncherForResult = galleryPickLauncherForResult,
|
||||
cameraPickLauncherForResult = cameraPickLauncherForResult
|
||||
)
|
||||
binding!!.bottomSheetNearby.rvNearbyList.adapter = adapter
|
||||
}
|
||||
|
|
@ -2249,34 +2252,34 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
// TODO: Decide button text for fitting in the screen
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_border_24px,
|
||||
R.drawable.ic_round_star_border_24px,
|
||||
""
|
||||
)
|
||||
)
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_directions_black_24dp,
|
||||
R.drawable.ic_directions_black_24dp,
|
||||
resources.getString(fr.free.nrw.commons.R.string.nearby_directions)
|
||||
)
|
||||
)
|
||||
if (place.hasWikidataLink()) {
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_wikidata_logo_24dp,
|
||||
R.drawable.ic_wikidata_logo_24dp,
|
||||
resources.getString(fr.free.nrw.commons.R.string.nearby_wikidata)
|
||||
)
|
||||
)
|
||||
}
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_feedback_black_24dp,
|
||||
R.drawable.ic_feedback_black_24dp,
|
||||
resources.getString(fr.free.nrw.commons.R.string.nearby_wikitalk)
|
||||
)
|
||||
)
|
||||
if (place.hasWikipediaLink()) {
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_wikipedia_logo_24dp,
|
||||
R.drawable.ic_wikipedia_logo_24dp,
|
||||
resources.getString(fr.free.nrw.commons.R.string.nearby_wikipedia)
|
||||
)
|
||||
)
|
||||
|
|
@ -2284,7 +2287,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
if (selectedPlace!!.hasCommonsLink()) {
|
||||
(dataList as ArrayList<BottomSheetItem>).add(
|
||||
BottomSheetItem(
|
||||
fr.free.nrw.commons.R.drawable.ic_commons_icon_vector,
|
||||
R.drawable.ic_commons_icon_vector,
|
||||
resources.getString(fr.free.nrw.commons.R.string.nearby_commons)
|
||||
)
|
||||
)
|
||||
|
|
@ -2363,12 +2366,16 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
}
|
||||
|
||||
private fun updateBookmarkButtonImage(place: Place) {
|
||||
val bookmarkIcon = if (bookmarkLocationDao!!.findBookmarkLocation(place)) {
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_filled_24px
|
||||
} else {
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_border_24px
|
||||
}
|
||||
bottomSheetAdapter!!.updateBookmarkIcon(bookmarkIcon)
|
||||
NearbyUtil.getBookmarkLocationExists(
|
||||
bookmarkLocationDao,
|
||||
place.getName(),
|
||||
scope,
|
||||
bottomSheetAdapter!!
|
||||
)
|
||||
}
|
||||
|
||||
private fun toggleBookmarkButtonImage() {
|
||||
bottomSheetAdapter?.toggleBookmarkIcon()
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
|
|
@ -2546,26 +2553,31 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
override fun onBottomSheetItemClick(view: View?, position: Int) {
|
||||
val item = dataList?.get(position) ?: return // Null check for dataList
|
||||
when (item.imageResourceId) {
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_border_24px,
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_filled_24px -> {
|
||||
presenter?.toggleBookmarkedStatus(selectedPlace)
|
||||
R.drawable.ic_round_star_border_24px -> {
|
||||
presenter?.toggleBookmarkedStatus(selectedPlace, scope)
|
||||
toggleBookmarkButtonImage()
|
||||
}
|
||||
|
||||
R.drawable.ic_round_star_filled_24px -> {
|
||||
presenter?.toggleBookmarkedStatus(selectedPlace, scope)
|
||||
toggleBookmarkButtonImage()
|
||||
selectedPlace?.let { updateBookmarkButtonImage(it) }
|
||||
}
|
||||
|
||||
fr.free.nrw.commons.R.drawable.ic_directions_black_24dp -> {
|
||||
R.drawable.ic_directions_black_24dp -> {
|
||||
selectedPlace?.let {
|
||||
Utils.handleGeoCoordinates(this.context, it.getLocation())
|
||||
binding?.map?.zoomLevelDouble ?: 0.0
|
||||
}
|
||||
}
|
||||
|
||||
fr.free.nrw.commons.R.drawable.ic_wikidata_logo_24dp -> {
|
||||
R.drawable.ic_wikidata_logo_24dp -> {
|
||||
selectedPlace?.siteLinks?.wikidataLink?.let {
|
||||
Utils.handleWebUrl(this.context, it)
|
||||
}
|
||||
}
|
||||
|
||||
fr.free.nrw.commons.R.drawable.ic_feedback_black_24dp -> {
|
||||
R.drawable.ic_feedback_black_24dp -> {
|
||||
selectedPlace?.let {
|
||||
val intent = Intent(this.context, WikidataFeedback::class.java).apply {
|
||||
putExtra("lat", it.location.latitude)
|
||||
|
|
@ -2577,13 +2589,13 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
}
|
||||
}
|
||||
|
||||
fr.free.nrw.commons.R.drawable.ic_wikipedia_logo_24dp -> {
|
||||
R.drawable.ic_wikipedia_logo_24dp -> {
|
||||
selectedPlace?.siteLinks?.wikipediaLink?.let {
|
||||
Utils.handleWebUrl(this.context, it)
|
||||
}
|
||||
}
|
||||
|
||||
fr.free.nrw.commons.R.drawable.ic_commons_icon_vector -> {
|
||||
R.drawable.ic_commons_icon_vector -> {
|
||||
selectedPlace?.siteLinks?.commonsLink?.let {
|
||||
Utils.handleWebUrl(this.context, it)
|
||||
}
|
||||
|
|
@ -2597,13 +2609,13 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), NearbyParentFragmen
|
|||
override fun onBottomSheetItemLongClick(view: View?, position: Int) {
|
||||
val item = dataList!![position]
|
||||
val message = when (item.imageResourceId) {
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_border_24px -> getString(fr.free.nrw.commons.R.string.menu_bookmark)
|
||||
fr.free.nrw.commons.R.drawable.ic_round_star_filled_24px -> getString(fr.free.nrw.commons.R.string.menu_bookmark)
|
||||
fr.free.nrw.commons.R.drawable.ic_directions_black_24dp -> getString(fr.free.nrw.commons.R.string.nearby_directions)
|
||||
fr.free.nrw.commons.R.drawable.ic_wikidata_logo_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikidata)
|
||||
fr.free.nrw.commons.R.drawable.ic_feedback_black_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikitalk)
|
||||
fr.free.nrw.commons.R.drawable.ic_wikipedia_logo_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikipedia)
|
||||
fr.free.nrw.commons.R.drawable.ic_commons_icon_vector -> getString(fr.free.nrw.commons.R.string.nearby_commons)
|
||||
R.drawable.ic_round_star_border_24px -> getString(fr.free.nrw.commons.R.string.menu_bookmark)
|
||||
R.drawable.ic_round_star_filled_24px -> getString(fr.free.nrw.commons.R.string.menu_bookmark)
|
||||
R.drawable.ic_directions_black_24dp -> getString(fr.free.nrw.commons.R.string.nearby_directions)
|
||||
R.drawable.ic_wikidata_logo_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikidata)
|
||||
R.drawable.ic_feedback_black_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikitalk)
|
||||
R.drawable.ic_wikipedia_logo_24dp -> getString(fr.free.nrw.commons.R.string.nearby_wikipedia)
|
||||
R.drawable.ic_commons_icon_vector -> getString(fr.free.nrw.commons.R.string.nearby_commons)
|
||||
else -> "Long click"
|
||||
}
|
||||
Toast.makeText(this.context, message, Toast.LENGTH_SHORT).show()
|
||||
|
|
|
|||
|
|
@ -400,7 +400,10 @@ class NearbyParentFragmentPresenter
|
|||
|
||||
onePlaceBatch.add(Pair(i, MarkerPlaceGroup(
|
||||
bookmarkLocationDao.findBookmarkLocation(
|
||||
fetchedPlace[0]),fetchedPlace[0])))
|
||||
fetchedPlace[0].name
|
||||
),
|
||||
fetchedPlace[0]
|
||||
)))
|
||||
} catch (e: Exception) {
|
||||
Timber.tag("NearbyPinDetails").e(e)
|
||||
onePlaceBatch.add(Pair(i, updatedGroups[i]))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue