diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 2ed8e73..5eac64c 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -9,10 +9,12 @@
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 63ae14f..115c573 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,9 +1,6 @@
apply plugin: 'com.android.application'
-
apply plugin: 'kotlin-android'
-
apply plugin: 'kotlin-android-extensions'
-
apply plugin: 'kotlin-kapt'
android {
diff --git a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/CouponViewHolder.kt b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/CouponViewHolder.kt
index c0f3681..d9c6cf7 100644
--- a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/CouponViewHolder.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/CouponViewHolder.kt
@@ -17,7 +17,7 @@ class CouponViewHolder(val context: Context, itemView: View) :
val tvTitle = itemView.findViewById(R.id.tvTitle)
val tvDescription = itemView.findViewById(R.id.tvDescription)
- tvTitle.text = coupon.code.toUpperCase()
+ tvTitle.text = coupon.code?.toUpperCase()
tvDescription.text = Html.fromHtml(coupon.description)
itemView.setOnClickListener{
diff --git a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt
index 80ab1a5..aaa21bb 100644
--- a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt
@@ -26,7 +26,7 @@ class OrderViewHolder(val context: Context, itemView: View) :
tvTitle.text = "#" + order.orderNumber
tvStatus.text = order.status
- tvDate.text = DateUtils.getDateString_shortAndSmart(order.getDateCreated())
+ tvDate.text = DateUtils.getDateString_shortAndSmart(order.dateCreated)
tvPrice.text = SpannableString("Ksh${order.total}")
diff --git a/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt b/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt
index bdbe273..c693946 100644
--- a/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt
@@ -25,7 +25,7 @@ constructor() {
private val cart: CollectionReference = FirebaseFirestore.getInstance()
.collection("users")
- .document(FirebaseAuth.getInstance().currentUser!!.uid)
+ .document(FirebaseAuth.getInstance().currentUser?.uid ?: "0")
.collection("cart")
fun cart(): QueryLiveData {
diff --git a/app/src/main/java/me/gilo/woodroid/app/repo/CustomerRepository.kt b/app/src/main/java/me/gilo/woodroid/app/repo/CustomerRepository.kt
index 3bc21b0..b65f2ed 100644
--- a/app/src/main/java/me/gilo/woodroid/app/repo/CustomerRepository.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/repo/CustomerRepository.kt
@@ -17,57 +17,57 @@ constructor() {
fun create(customer: Customer): WooLiveData {
val callBack = WooLiveData()
- woocommerce!!.CustomerRepository().create(customer).enqueue(callBack)
+ woocommerce.CustomerRepository().create(customer).enqueue(callBack)
return callBack
}
fun currentCustomer(): WooLiveData> {
val callBack = WooLiveData>()
val customerFilter = CustomerFilter()
- customerFilter.email = FirebaseAuth.getInstance().currentUser!!.email
+ customerFilter.setEmail(FirebaseAuth.getInstance().currentUser!!.email!!)
- woocommerce!!.CustomerRepository().customers(customerFilter).enqueue(callBack)
+ woocommerce.CustomerRepository().customers(customerFilter).enqueue(callBack)
return callBack
}
fun customer(id: Int): WooLiveData {
val callBack = WooLiveData()
- woocommerce!!.CustomerRepository().customer(id).enqueue(callBack)
+ woocommerce.CustomerRepository().customer(id).enqueue(callBack)
return callBack
}
fun customers(): WooLiveData> {
val callBack = WooLiveData>()
- woocommerce!!.CustomerRepository().customers().enqueue(callBack)
+ woocommerce.CustomerRepository().customers().enqueue(callBack)
return callBack
}
fun customers(customerFilter: CustomerFilter): WooLiveData> {
val callBack = WooLiveData>()
- woocommerce!!.CustomerRepository().customers(customerFilter).enqueue(callBack)
+ woocommerce.CustomerRepository().customers(customerFilter).enqueue(callBack)
return callBack
}
fun update(id: Int, customer: Customer): WooLiveData {
val callBack = WooLiveData()
- woocommerce!!.CustomerRepository().update(id, customer).enqueue(callBack)
+ woocommerce.CustomerRepository().update(id, customer).enqueue(callBack)
return callBack
}
fun delete(id: Int): WooLiveData {
val callBack = WooLiveData()
- woocommerce!!.CustomerRepository().delete(id).enqueue(callBack)
+ woocommerce.CustomerRepository().delete(id).enqueue(callBack)
return callBack
}
fun delete(id: Int, force: Boolean): WooLiveData {
val callBack = WooLiveData()
- woocommerce!!.CustomerRepository().delete(id, force).enqueue(callBack)
+ woocommerce.CustomerRepository().delete(id, force).enqueue(callBack)
return callBack
}
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponActivity.kt
index aa400aa..bc3c502 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponActivity.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponActivity.kt
@@ -50,7 +50,7 @@ class CouponActivity : BaseActivity() {
override fun onResponse(call: Call, response: Response) {
val coupon = response.body()!!
- etCode.setText(coupon.code.toUpperCase())
+ etCode.setText(coupon.code?.toUpperCase())
etDescription.setText(coupon.description)
stopShowingLoading()
@@ -70,7 +70,7 @@ class CouponActivity : BaseActivity() {
if (response.isSuccessful) {
val coupon = response.body()!!
- etCode.setText(coupon.code.toUpperCase())
+ etCode.setText(coupon.code?.toUpperCase())
etDescription.setText(coupon.description)
finish()
@@ -95,7 +95,7 @@ class CouponActivity : BaseActivity() {
override fun onResponse(call: Call, response: Response) {
val coupon = response.body()!!
- etCode.setText(coupon.code.toUpperCase())
+ etCode.setText(coupon.code?.toUpperCase())
etDescription.setText(coupon.description)
stopShowingLoading()
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponsActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponsActivity.kt
index c6be2e3..b47a989 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponsActivity.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/coupon/CouponsActivity.kt
@@ -48,7 +48,7 @@ class CouponsActivity : BaseActivity() {
//Not best practise, but works for purposes of demo
private fun coupons() {
val filter = CouponFilter()
- filter.search = "FEB"
+ filter.setSearch("FEB")
woocommerce.CouponRepository().coupons(filter).enqueue(object : Callback> {
override fun onResponse(call: Call>, response: Response>) {
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/customer/BillingAddressActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/customer/BillingAddressActivity.kt
index 7bcd3db..5340f02 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/customer/BillingAddressActivity.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/customer/BillingAddressActivity.kt
@@ -106,7 +106,7 @@ class BillingAddressActivity : WooDroidActivity() {
customer.billingAddress.country = country
customer.billingAddress.phone = phone
- customer.billingAddress.email = FirebaseAuth.getInstance().currentUser!!.email
+ customer.billingAddress.email = FirebaseAuth.getInstance().currentUser!!.email!!
viewModel.update(customer.id, customer).observe(this, Observer {
response->
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/home/CategoryFragment.kt b/app/src/main/java/me/gilo/woodroid/app/ui/home/CategoryFragment.kt
index 95c2d27..c6c9b93 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/home/CategoryFragment.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/home/CategoryFragment.kt
@@ -62,7 +62,7 @@ class CategoryFragment : Fragment() {
private fun categories() {
val filter = ProductCategoryFilter()
- filter.per_page = 50
+ filter.setPer_page(50)
viewModel.categories(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt
index b8c5e62..b0249ff 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt
@@ -173,13 +173,13 @@ class CartActivity : WooDroidActivity() {
lineItem.productId = cartitem.productId
lineItem.quantity = cartitem.quantity
- lineitems.add(lineItem);
+ lineitems.add(lineItem)
}
- order.setLineItems(lineitems);
- order.setBillingAddress(customer.billingAddress)
- order.setShippingAddress(customer.shippingAddress)
- order.setCustomer(customer)
+ order.lineItems = lineitems
+ order.billingAddress = customer.billingAddress
+ order.shippingAddress = customer.shippingAddress
+ order.customer = customer
createOrder(order)
}
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/product/ShopActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/product/ShopActivity.kt
index 9a89b58..2784b9a 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/product/ShopActivity.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/product/ShopActivity.kt
@@ -78,7 +78,7 @@ class ShopActivity : BaseActivity() {
val filter = ProductFilter()
if (etSearch.text.toString().isNotEmpty()){
- filter.search = etSearch.text.toString()
+ filter.setSearch(etSearch.text.toString())
}
if (etMinPrice.text.toString().isNotEmpty()){
diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/product/section/RelatedProductsFragment.kt b/app/src/main/java/me/gilo/woodroid/app/ui/product/section/RelatedProductsFragment.kt
index 92d687a..251b32f 100644
--- a/app/src/main/java/me/gilo/woodroid/app/ui/product/section/RelatedProductsFragment.kt
+++ b/app/src/main/java/me/gilo/woodroid/app/ui/product/section/RelatedProductsFragment.kt
@@ -67,7 +67,7 @@ class RelatedProductsFragment : Fragment() {
rvShop.adapter = adapter
val filter = ProductFilter()
- filter.include = product.related_ids.toIntArray()
+ filter.setInclude(product.related_ids.toIntArray())
viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
when (response!!.status()) {
diff --git a/build.gradle b/build.gradle
index 83d4ef5..2db2022 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,8 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
-buildscript {
+buildscript {
+ ext.kotlin_version = '1.3.21'
+
ext.kotlin_version = '1.3.31'
ext.kotlin_version = '1.3.31'
repositories {
@@ -9,7 +11,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.4.1'
+ classpath 'com.android.tools.build:gradle:3.5.0-alpha08'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/firebasecart/.gitignore b/firebasecart/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/firebasecart/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/firebasecart/build.gradle b/firebasecart/build.gradle
new file mode 100644
index 0000000..9cda62f
--- /dev/null
+++ b/firebasecart/build.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
+android {
+ compileSdkVersion 28
+
+
+ defaultConfig {
+ minSdkVersion 15
+ targetSdkVersion 28
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}
diff --git a/firebasecart/proguard-rules.pro b/firebasecart/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/firebasecart/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt b/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt
new file mode 100644
index 0000000..ef1a2d6
--- /dev/null
+++ b/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package me.gilo.woodroid.firebasecart
+
+import android.support.test.InstrumentationRegistry
+import android.support.test.runner.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+ assertEquals("me.gilo.woodroid.firebasecart.test", appContext.packageName)
+ }
+}
diff --git a/firebasecart/src/main/AndroidManifest.xml b/firebasecart/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..98d61fc
--- /dev/null
+++ b/firebasecart/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+
diff --git a/firebasecart/src/main/res/values/strings.xml b/firebasecart/src/main/res/values/strings.xml
new file mode 100644
index 0000000..bd5f29d
--- /dev/null
+++ b/firebasecart/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ FirebaseCart
+
diff --git a/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt b/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt
new file mode 100644
index 0000000..9c77b07
--- /dev/null
+++ b/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package me.gilo.woodroid.firebasecart
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+}
diff --git a/settings.gradle b/settings.gradle
index d23f552..04410b5 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':woodroid'
+include ':app', ':woodroid', ':firebasecart'
diff --git a/woodroid/src/main/java/me/gilo/woodroid/Builder.java b/woodroid/src/main/java/me/gilo/woodroid/Builder.java
deleted file mode 100644
index 7ccf855..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/Builder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package me.gilo.woodroid;
-
-import me.gilo.woodroid.data.ApiVersion;
-
-public class Builder {
- private String siteUrl;
- private ApiVersion apiVerion;
- private String consumerKey;
- private String consumerSecret;
-
-
- public Builder() {
- }
-
- public Builder setSiteUrl(String siteUrl) {
- this.siteUrl = siteUrl;
- return this;
- }
-
- public Builder setApiVersion(ApiVersion apiVerion) {
- this.apiVerion = apiVerion;
- return this;
- }
-
- public Builder setConsumerKey(String consumerKey) {
- this.consumerKey = consumerKey;
- return this;
- }
-
- public Builder setConsumerSecret(String consumerSecret) {
- this.consumerSecret = consumerSecret;
- return this;
- }
-
-
- public Woocommerce build() {
- return new Woocommerce(siteUrl, apiVerion, consumerKey, consumerSecret);
- }
-}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/Builder.kt b/woodroid/src/main/java/me/gilo/woodroid/Builder.kt
new file mode 100644
index 0000000..2a89a38
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/Builder.kt
@@ -0,0 +1,36 @@
+package me.gilo.woodroid
+
+import me.gilo.woodroid.data.ApiVersion
+
+
+class Builder {
+ private lateinit var siteUrl: String
+ private lateinit var apiVerion: ApiVersion
+ private lateinit var consumerKey: String
+ private lateinit var consumerSecret: String
+
+ fun setSiteUrl(siteUrl: String): Builder {
+ this.siteUrl = siteUrl
+ return this
+ }
+
+ fun setApiVersion(apiVerion: ApiVersion): Builder {
+ this.apiVerion = apiVerion
+ return this
+ }
+
+ fun setConsumerKey(consumerKey: String): Builder {
+ this.consumerKey = consumerKey
+ return this
+ }
+
+ fun setConsumerSecret(consumerSecret: String): Builder {
+ this.consumerSecret = consumerSecret
+ return this
+ }
+
+
+ fun build(): Woocommerce {
+ return Woocommerce(siteUrl, apiVerion, consumerKey, consumerSecret)
+ }
+}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java
deleted file mode 100644
index 225603c..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package me.gilo.woodroid.callback;
-
-import android.arch.lifecycle.LiveData;
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
-
-import java.io.IOException;
-
-public class CallBackLiveData extends LiveData> implements Callback {
-
- public CallBackLiveData() {
- setValue(new Resource<>(Status.LOADING));
- }
-
- @Override
- public void onResponse(Call call, Response response) {
- if (response.isSuccessful()){
- setValue(new Resource<>(response.body()));
- }else{
- String error = null;
- try {
- error = response.errorBody().string();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- if (error == null){
- error = "Something went wrong";
- }
- setValue(new Resource<>(new NetworkException(error)));
- }
- }
-
- @Override
- public void onFailure(Call call, Throwable t) {
- setValue(new Resource<>( new NetworkException(t)));
- }
-}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt
new file mode 100644
index 0000000..4a69844
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt
@@ -0,0 +1,36 @@
+package me.gilo.woodroid.callback
+
+import android.arch.lifecycle.LiveData
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+
+import java.io.IOException
+
+class CallBackLiveData : LiveData>(), Callback {
+ init {
+ value = Resource(Status.LOADING)
+ }
+
+ override fun onResponse(call: Call, response: Response) {
+ if (response.isSuccessful) {
+ setValue(Resource(response.body()!!))
+ } else {
+ var error: String? = null
+ try {
+ error = response.errorBody()!!.string()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ if (error == null) {
+ error = "Something went wrong"
+ }
+ setValue(Resource(NetworkException(error)))
+ }
+ }
+
+ override fun onFailure(call: Call, t: Throwable) {
+ value = Resource(NetworkException(t))
+ }
+}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java
deleted file mode 100644
index 3be2e40..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package me.gilo.woodroid.callback;
-
-public class NetworkException extends Exception{
-
- public NetworkException() {
- super();
- }
-
- public NetworkException(String message) {
- super(message);
- }
-
- public NetworkException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public NetworkException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt
new file mode 100644
index 0000000..3834332
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt
@@ -0,0 +1,12 @@
+package me.gilo.woodroid.callback
+
+class NetworkException : Exception {
+
+ constructor() : super() {}
+
+ constructor(message: String) : super(message) {}
+
+ constructor(message: String, cause: Throwable) : super(message, cause) {}
+
+ constructor(cause: Throwable) : super(cause) {}
+}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java
deleted file mode 100755
index 0dd25d8..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package me.gilo.woodroid.callback;
-
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.util.Log;
-
-import java.util.List;
-
-
-@SuppressWarnings({"WeakerAccess", "ConstantConditions"})
-public final class Resource {
- @Nullable
- private final T data;
- @Nullable
- private final Exception error;
- Status status = Status.LOADING;
-
- public Resource(@NonNull T data) {
- this(data, null);
- }
-
- public Resource(@NonNull Status status) {
- this(null, null);
- this.status = status;
- }
-
- public Resource(@NonNull Exception exception) {
- this(null, exception);
- this.status = Status.ERROR;
- }
-
- private Resource(@Nullable T value, @Nullable Exception error) {
- this.data = value;
- this.error = error;
-
- if (error != null){
- status = Status.ERROR;
- }else if (data != null){
- if (data instanceof List){
- if (((List) data).size() == 0){
- status = Status.EMPTY;
- }else {
- status = status.SUCCESS;
- }
- }else {
- status = Status.SUCCESS;
- }
- }else {
- status = Status.LOADING;
- }
- }
-
- public boolean isSuccessful() {
- return data != null && error == null;
- }
-
- @NonNull
- public T data() {
- if (error != null) {
- throw new IllegalStateException("error is not null. Call isSuccessful() first.");
- }
- return data;
- }
-
- @NonNull
- public Exception error() {
- if (data != null) {
- throw new IllegalStateException("data is not null. Call isSuccessful() first.");
- }
- return error;
- }
-
- @NonNull
- public Status status() {
- return status;
- }
-
-
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt
new file mode 100755
index 0000000..ab0d743
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt
@@ -0,0 +1,60 @@
+package me.gilo.woodroid.callback
+
+import android.util.Log
+
+
+class Resource private constructor(private val data: T?, private val error: Exception?) {
+ internal var status = Status.LOADING
+
+ val isSuccessful: Boolean
+ get() = data != null && error == null
+
+ constructor(data: T) : this(data, null) {}
+
+ constructor(status: Status) : this(null, null) {
+ this.status = status
+ }
+
+ constructor(exception: Exception) : this(null, exception) {
+ this.status = Status.ERROR
+ }
+
+ init {
+
+ if (error != null) {
+ status = Status.ERROR
+ } else if (data != null) {
+ if (data is List<*>) {
+ if ((data as List<*>).size == 0) {
+ status = Status.EMPTY
+ } else {
+ status = Status.SUCCESS
+ }
+ } else {
+ status = Status.SUCCESS
+ }
+ } else {
+ status = Status.LOADING
+ }
+ }
+
+ fun data(): T? {
+ if (error != null) {
+ throw IllegalStateException("error is not null. Call isSuccessful() first.")
+ }
+ return data
+ }
+
+ fun error(): Exception? {
+ if (data != null) {
+ throw IllegalStateException("data is not null. Call isSuccessful() first.")
+ }
+ return error
+ }
+
+ fun status(): Status {
+ return status
+ }
+
+
+}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java
deleted file mode 100644
index e78ff15..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package me.gilo.woodroid.callback;
-
-public enum Status {
- EMPTY,
- SUCCESS,
- ERROR,
- LOADING;
-
- public Status isLoading(){
- return LOADING;
- }
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt
new file mode 100644
index 0000000..dca3b19
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt
@@ -0,0 +1,11 @@
+package me.gilo.woodroid.callback
+
+enum class Status {
+ EMPTY,
+ SUCCESS,
+ ERROR,
+ LOADING;
+
+ val isLoading: Status
+ get() = LOADING
+}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java
deleted file mode 100644
index ae1c2f9..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package me.gilo.woodroid.callback;
-
-import retrofit2.Call;
-
-public interface WooCall extends Call {
-
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt
new file mode 100644
index 0000000..da39d04
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt
@@ -0,0 +1,5 @@
+package me.gilo.woodroid.callback
+
+import retrofit2.Call
+
+interface WooCall : Call
diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java
deleted file mode 100644
index 7b5c9bd..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package me.gilo.woodroid.data;
-
-public enum ApiVersion {
- API_VERSION1{
- @Override
- public String toString() {
- return "1";
- }
- },
- API_VERSION2{
- @Override
- public String toString() {
- return "2";
- }
- },
- API_VERSION3{
- @Override
- public String toString() {
- return "3";
- }
- },
-}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt
new file mode 100644
index 0000000..8ef6917
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt
@@ -0,0 +1,19 @@
+package me.gilo.woodroid.data
+
+enum class ApiVersion {
+ API_VERSION1 {
+ override fun toString(): String {
+ return "1"
+ }
+ },
+ API_VERSION2 {
+ override fun toString(): String {
+ return "2"
+ }
+ },
+ API_VERSION3 {
+ override fun toString(): String {
+ return "3"
+ }
+ }
+}
\ No newline at end of file
diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java
deleted file mode 100644
index 0c66f79..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package me.gilo.woodroid.data;
-
-import org.apache.http.NameValuePair;
-
-import java.util.ArrayList;
-
-public class RestAdapter {
-
- static String oauth_nonce = "";
- static String oauth_timestamp = "";
- static String oauth_signature_method = "HMAC-SHA1";
-
- static ArrayList params;
-
- private String baseUrl;
- private String consumerKey;
- private String consumerSecret;
-
- public RestAdapter(String baseUrl, String consumerKey, String consumerSecret) {
- this.baseUrl = baseUrl;
- this.consumerKey = consumerKey;
- this.consumerSecret = consumerSecret;
- }
-
-
-
-
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt
new file mode 100644
index 0000000..5096150
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt
@@ -0,0 +1,18 @@
+package me.gilo.woodroid.data
+
+import org.apache.http.NameValuePair
+
+import java.util.ArrayList
+
+class RestAdapter(private val baseUrl: String, private val consumerKey: String, private val consumerSecret: String) {
+ companion object {
+
+ internal var oauth_nonce = ""
+ internal var oauth_timestamp = ""
+ internal var oauth_signature_method = "HMAC-SHA1"
+
+ internal var params: ArrayList? = null
+ }
+
+
+}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java
deleted file mode 100644
index f040349..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package me.gilo.woodroid.data.api;
-
-
-import retrofit2.Call;
-import me.gilo.woodroid.models.LineItem;
-import me.gilo.woodroid.models.filters.CartFilter;
-import retrofit2.http.*;
-
-import java.util.Map;
-
-public interface CartAPI {
-
- @Headers("Content-Type: application/json")
- @POST("clear")
- Call clear();
-
- @GET("count-items")
- Call count();
-
- @GET("cart")
- Call