diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Acces.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Acces.kt new file mode 100644 index 0000000..f0739e6 --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Acces.kt @@ -0,0 +1,13 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + +@Serializable +data class Acces( + @SerializedName("lat") + val lat: Double?, + @SerializedName("lng") + val lng: Double? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Address.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Address.kt new file mode 100644 index 0000000..9e02e9e --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Address.kt @@ -0,0 +1,30 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + + +@Serializable +data class Address( + @SerializedName("city") + val city: String?, + @SerializedName("countryCode") + val countryCode: String?, + @SerializedName("countryName") + val countryName: String?, + @SerializedName("county") + val county: String?, + @SerializedName("district") + val district: String?, + @SerializedName("label") + val label: String?, + @SerializedName("postalCode") + val postalCode: String?, + @SerializedName("state") + val state: String?, + @SerializedName("stateCode") + val stateCode: String?, + @SerializedName("subdistrict") + val subdistrict: String? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Category.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Category.kt new file mode 100644 index 0000000..6806091 --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Category.kt @@ -0,0 +1,16 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + + +@Serializable +data class Category( + @SerializedName("id") + val id: String?, + @SerializedName("name") + val name: String?, + @SerializedName("primary") + val primary: Boolean? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/HerePlaces.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/HerePlaces.kt new file mode 100644 index 0000000..9b38cc6 --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/HerePlaces.kt @@ -0,0 +1,12 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + + +@Serializable +data class HerePlaces( + @SerializedName("items") + val items: List? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Item.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Item.kt new file mode 100644 index 0000000..f85a56a --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Item.kt @@ -0,0 +1,26 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + + +@Serializable +data class Item( + @SerializedName("access") + val access: List?, + @SerializedName("address") + val address: Address?, + @SerializedName("categories") + val categories: List?, + @SerializedName("distance") + val distance: Int?, + @SerializedName("id") + val id: String?, + @SerializedName("position") + val position: Position?, + @SerializedName("resultType") + val resultType: String?, + @SerializedName("title") + val title: String? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Position.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Position.kt new file mode 100644 index 0000000..145acf9 --- /dev/null +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/here/dto/Position.kt @@ -0,0 +1,14 @@ +package app.waste2wealth.com.ktorClient.here.dto + + +import com.google.gson.annotations.SerializedName +import kotlinx.serialization.Serializable + + +@Serializable +data class Position( + @SerializedName("lat") + val lat: Double?, + @SerializedName("lng") + val lng: Double? +) \ No newline at end of file diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepoImpl.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepoImpl.kt index 56ba090..a849991 100644 --- a/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepoImpl.kt +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepoImpl.kt @@ -1,21 +1,23 @@ package app.waste2wealth.com.ktorClient.repository import app.waste2wealth.com.ktorClient.Resource +import app.waste2wealth.com.ktorClient.here.dto.HerePlaces import app.waste2wealth.com.ktorClient.placesAPI.dto.Places import io.ktor.client.HttpClient import io.ktor.client.request.get class PlacesRepoImpl(private val client: HttpClient) : PlacesRepository { - override suspend fun getPlaces(latLong: String): Resource { + override suspend fun getPlaces(latLong: String): Resource { return try { Resource.Success( - client.get( - "https://maps.googleapis.com/maps/api/geocode/json?" + - "latlng=$latLong&key=AIzaSyC_z_sTz6p0bG6pGBetmvs3eJPitx3a8IY" + client.get( + "https://revgeocode.search.hereapi.com/v1/" + + "revgeocode?at=$latLong" + + "&apiKey=OVXwPOfMbCfNnN2Vfv3lWpZnf_MMioswgR650v5gDug" ) ) } catch (e: Exception) { - println("API is ${e.message}") + println("API is ${e.printStackTrace()}") Resource.Failure(e) } } diff --git a/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepository.kt b/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepository.kt index 7d08e25..f796bcf 100644 --- a/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepository.kt +++ b/app/src/main/java/app/waste2wealth/com/ktorClient/repository/PlacesRepository.kt @@ -1,9 +1,10 @@ package app.waste2wealth.com.ktorClient.repository import app.waste2wealth.com.ktorClient.Resource +import app.waste2wealth.com.ktorClient.here.dto.HerePlaces import app.waste2wealth.com.ktorClient.placesAPI.dto.Places interface PlacesRepository { - suspend fun getPlaces(latLong: String): Resource + suspend fun getPlaces(latLong: String): Resource } diff --git a/app/src/main/java/app/waste2wealth/com/location/LocationViewModel.kt b/app/src/main/java/app/waste2wealth/com/location/LocationViewModel.kt index cf1febe..462882a 100644 --- a/app/src/main/java/app/waste2wealth/com/location/LocationViewModel.kt +++ b/app/src/main/java/app/waste2wealth/com/location/LocationViewModel.kt @@ -71,8 +71,8 @@ class LocationViewModel @Inject constructor( } is Resource.Success -> { - resource.result.results?.forEach { address -> - listOfAddresses.add(address.formattedAddress) + resource.result.items?.forEach { address -> + listOfAddresses.add(address?.address?.label) } latitude = it.latitude longitude = it.longitude diff --git a/app/src/main/java/app/waste2wealth/com/navigation/NavigationController.kt b/app/src/main/java/app/waste2wealth/com/navigation/NavigationController.kt index 8b06b47..c1fd37d 100644 --- a/app/src/main/java/app/waste2wealth/com/navigation/NavigationController.kt +++ b/app/src/main/java/app/waste2wealth/com/navigation/NavigationController.kt @@ -144,11 +144,11 @@ fun NavigationController( } composable(Screens.Community.route) { - CommunitiesSection( - paddingValues = paddingValues, - email = email.value, - name = name.value, - ) +// CommunitiesSection( +// paddingValues = paddingValues, +// email = email.value, +// name = name.value, +// ) // CommunityInfo() } composable(Screens.ReportWaste.route) {