diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b234a73..e941a4d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
location permissions for the 'MyLocation' functionality.
-->
+
> {
private lateinit var mMap: GoogleMap
+ private var location: LatLng? = null
+ private var merchants: List? = null
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -32,6 +45,8 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback {
val mapFragment = childFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
+
+ // TODO https://github.com/Agorise/bitsy-wallet/blob/feat_merchants/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/MapFragment.kt
}
/**
@@ -46,10 +61,43 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback {
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
- // Add a marker in Sydney and move the camera
- val sydney = LatLng(-34.0, 151.0)
- mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
- mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
+// val gson = GsonBuilder()
+// .setLenient()
+// .create()
+// val retrofit = Retrofit.Builder()
+// .baseUrl("https://intranet.palmpay.io/")
+// .addConverterFactory(GsonConverterFactory.create(gson))
+// .build()
+//
+// val ambassadorService = retrofit.create(AmbassadorService::class.java)
+// val call = ambassadorService.allMerchants
+// call.enqueue(this)
+ }
+
+ override fun onResponse(call: Call>, response: Response>) {
+ if (response.isSuccessful) {
+ val res: FeathersResponse? = response.body()
+ merchants = res!!.data
+ for (mer in merchants!!) {
+ location = LatLng(mer.lat.toDouble(), mer.lon.toDouble())
+ mMap.addMarker(
+ MarkerOptions().position(location!!).title(mer.name).snippet(mer.address).icon(
+ BitmapDescriptorFactory.fromResource(R.drawable.ic_merchants)
+ )
+ )
+ }
+ } else {
+ try {
+ Log.e("error_bitsy", response.errorBody()?.string())
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ }
+ }
+
+ override fun onFailure(call: Call>, t: Throwable) {
+
}
}
diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Ambassador.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Ambassador.kt
new file mode 100644
index 0000000..f02947d
--- /dev/null
+++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Ambassador.kt
@@ -0,0 +1,5 @@
+package cy.agorise.bitsybitshareswallet.models
+
+class Ambassador(var id: String?, var account: String?, var country: String?, var city: String?) {
+ var cityId: String? = null
+}
\ No newline at end of file
diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/AmbassadorLocation.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/AmbassadorLocation.kt
new file mode 100644
index 0000000..8e44024
--- /dev/null
+++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/AmbassadorLocation.kt
@@ -0,0 +1,29 @@
+package cy.agorise.bitsybitshareswallet.models
+
+import androidx.annotation.NonNull
+
+class AmbassadorLocation(
+ var id: String?,
+ var name: String?,
+ var country: String?
+) : Comparable {
+
+ override fun toString(): String {
+ return this.name!!
+ }
+
+ override fun equals(other: Any?): Boolean {
+ return other is AmbassadorLocation && id == other.id
+ }
+
+ override fun compareTo(@NonNull other: AmbassadorLocation): Int {
+ return name!!.compareTo(other.name!!)
+ }
+
+ override fun hashCode(): Int {
+ var result = id?.hashCode() ?: 0
+ result = 31 * result + (name?.hashCode() ?: 0)
+ result = 31 * result + (country?.hashCode() ?: 0)
+ return result
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Merchant.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Merchant.kt
new file mode 100644
index 0000000..1059a7b
--- /dev/null
+++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Merchant.kt
@@ -0,0 +1,37 @@
+package cy.agorise.bitsybitshareswallet.models
+
+import java.util.*
+
+class Merchant {
+
+ var id: String? = null
+ var address: String? = null
+ var phone: String? = null
+ var name: String? = null
+ var lat: Float = 0F
+ var lon: Float = 0F
+ var city: String? = null
+ var country: String? = null
+ var createdAt: Date? = null
+ var updatedAt: Date? = null
+ var __v: Int = 0
+
+ constructor() {}
+ constructor(id: String) {
+ this.id = id
+ }
+
+ constructor(_id: String, address: String, phone: String, name: String, lat: Float, lon: Float, city: String, country: String, createdAt: Date, updatedAt: Date, __v: Int) {
+ this.id = _id
+ this.address = address
+ this.phone = phone
+ this.name = name
+ this.lat = lat
+ this.lon = lon
+ this.city = city
+ this.country = country
+ this.createdAt = createdAt
+ this.updatedAt = updatedAt
+ this.__v = __v
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/network/AmbassadorService.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/network/AmbassadorService.kt
new file mode 100644
index 0000000..e714da2
--- /dev/null
+++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/network/AmbassadorService.kt
@@ -0,0 +1,21 @@
+package cy.agorise.bitsybitshareswallet.network
+
+import cy.agorise.bitsybitshareswallet.models.Ambassador
+import cy.agorise.bitsybitshareswallet.models.AmbassadorLocation
+import cy.agorise.bitsybitshareswallet.models.Merchant
+import retrofit2.Call
+import retrofit2.http.GET
+import retrofit2.http.Query
+
+interface AmbassadorService {
+
+ //https://ambpay.palmpay.io/api/v1/merchants?%24sort%5Baccount%5D=1&%24limit=50&%24skip=0
+ @get:GET("/api/v1/merchants?%24sort%5Baccount%5D=1&%24limit=50&%24skip=0")
+ val allMerchants: Call>
+
+ @GET("/api/v1/ambassadors")
+ fun getAmbassadors(@Query("cityId") cityId: String): Call>
+
+ @GET("/api/v1/cities")
+ fun getAllCitiesSync(@Query("\$skip") skip: Long): Call>
+}
\ No newline at end of file
diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/network/FeathersResponse.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/network/FeathersResponse.kt
new file mode 100644
index 0000000..70ddbc4
--- /dev/null
+++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/network/FeathersResponse.kt
@@ -0,0 +1,19 @@
+package cy.agorise.bitsybitshareswallet.network
+
+class FeathersResponse(private val error: Throwable?) {
+ var total: Long = 0
+ var limit: Long = 0
+ var skip: Long = 0
+ var data: List? = null
+
+ val isSuccessful: Boolean
+ get() = error == null && data != null
+
+ fun message(): String {
+ return if (error != null) {
+ error.message!!
+ } else {
+ ""
+ }
+ }
+}
\ No newline at end of file