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/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/ui/product/CartActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt
index b8c5e62..97277b8 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
@@ -177,9 +177,9 @@ class CartActivity : WooDroidActivity() {
}
order.setLineItems(lineitems);
- order.setBillingAddress(customer.billingAddress)
- order.setShippingAddress(customer.shippingAddress)
- order.setCustomer(customer)
+ order.billingAddress = customer.billingAddress
+ order.shippingAddress = customer.shippingAddress
+ order.customer = customer
createOrder(order)
}
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/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java
deleted file mode 100644
index 0b93ba9..0000000
--- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package me.gilo.woodroid;
-
-import android.content.Context;
-import android.util.Log;
-import me.gilo.woodroid.data.ApiVersion;
-import me.gilo.woodroid.models.PaymentGateway;
-import me.gilo.woodroid.repo.*;
-import me.gilo.woodroid.repo.order.OrderNoteRepository;
-import me.gilo.woodroid.repo.order.RefundRepository;
-import me.gilo.woodroid.repo.product.*;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public class Woocommerce {
-
- public static final ApiVersion API_V1 = ApiVersion.API_VERSION1;
- public static final ApiVersion API_V2 = ApiVersion.API_VERSION2;
- public static final ApiVersion API_V3 = ApiVersion.API_VERSION3;
-
- private final OrderNoteRepository orderNoteRepository;
- private final RefundRepository refundRepository;
- private final AttributeRepository attributeRepository;
- private final AttributeTermRepository attributeTermRepository;
- private final CategoryRepository categoryRepository;
- private final ShippingClassRepository shippingClassRepository;
- private final TagRepository tagRepository;
- private final VariationRepository variationRepository;
- private final CouponRepository couponRepository;
- private final CustomerRepository customerRepository;
- private final OrderRepository orderRepository;
- private final ProductRepository productRepository;
- private final ReviewRepository reviewRepository;
- private final ReportsRepository reportsRepository;
- private final CartRepository cartRepository;
- private final PaymentGatewayRepository paymentGatewayRepository;
- private final SettingsRepository settingsRepository;
- private final ShippingMethodRepository shippingMethodRepository;
-
- public static Builder Builder(){
- return new Builder();
- }
-
- public Woocommerce(String siteUrl, ApiVersion apiVerion, String consumerKey, String consumerSecret) {
- String baseUrl = siteUrl + "/wp-json/wc/v" + apiVerion + "/";
- String cartBaseUrl = siteUrl + "/wp-json/wc/v" + 2 + "/";
-
- orderNoteRepository = new OrderNoteRepository(baseUrl, consumerKey, consumerSecret);
- refundRepository = new RefundRepository(baseUrl, consumerKey, consumerSecret);
- attributeRepository = new AttributeRepository(baseUrl, consumerKey, consumerSecret);
- attributeTermRepository = new AttributeTermRepository(baseUrl, consumerKey, consumerSecret);
- categoryRepository = new CategoryRepository(baseUrl, consumerKey, consumerSecret);
- shippingClassRepository = new ShippingClassRepository(baseUrl, consumerKey, consumerSecret);
- tagRepository = new TagRepository(baseUrl, consumerKey, consumerSecret);
- variationRepository = new VariationRepository(baseUrl, consumerKey, consumerSecret);
- couponRepository = new CouponRepository(baseUrl, consumerKey, consumerSecret);
- customerRepository = new CustomerRepository(baseUrl, consumerKey, consumerSecret);
- orderRepository = new OrderRepository(baseUrl, consumerKey, consumerSecret);
- productRepository = new ProductRepository(baseUrl, consumerKey, consumerSecret);
- reportsRepository = new ReportsRepository(baseUrl, consumerKey, consumerSecret);
- cartRepository = new CartRepository(cartBaseUrl, consumerKey, consumerSecret);
- reviewRepository = new ReviewRepository(baseUrl, consumerKey, consumerSecret);
- paymentGatewayRepository = new PaymentGatewayRepository(baseUrl, consumerKey, consumerSecret);
- settingsRepository = new SettingsRepository(baseUrl, consumerKey, consumerSecret);
- shippingMethodRepository = new ShippingMethodRepository(baseUrl, consumerKey, consumerSecret);
-
- }
-
- public OrderNoteRepository OrderNoteRepository() {
- return orderNoteRepository;
- }
-
- public RefundRepository RefundRepository() {
- return refundRepository;
- }
-
- public AttributeRepository AttributeRepository() {
- return attributeRepository;
- }
-
- public AttributeTermRepository AttributeTermRepository() {
- return attributeTermRepository;
- }
-
- public CategoryRepository CategoryRepository() {
- return categoryRepository;
- }
-
- public ShippingClassRepository ShippingClassRepository() {
- return shippingClassRepository;
- }
-
- public TagRepository TagRepository() {
- return tagRepository;
- }
-
- public VariationRepository VariationRepository() {
- return variationRepository;
- }
-
- public CouponRepository CouponRepository() {
- return couponRepository;
- }
-
- public CustomerRepository CustomerRepository() {
- return customerRepository;
- }
-
- public OrderRepository OrderRepository() {
- return orderRepository;
- }
-
- public ProductRepository ProductRepository() {
- return productRepository;
- }
-
- public ReviewRepository ReviewRepository() {
- return reviewRepository;
- }
-
- public ReportsRepository ReportsRepository() {
- return reportsRepository;
- }
-
- public PaymentGatewayRepository PaymentGatewayRepository() {
- return paymentGatewayRepository;
- }
-
- public SettingsRepository SettingsRepository() {
- return settingsRepository;
- }
-
- public ShippingMethodRepository ShippingMethodRepository() {
- return shippingMethodRepository;
- }
-
- public CartRepository CartRepository(Context context) {
- cartRepository.turnOnCookies(context);
- return cartRepository;
- }
-}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.kt b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.kt
new file mode 100644
index 0000000..111ffad
--- /dev/null
+++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.kt
@@ -0,0 +1,143 @@
+package me.gilo.woodroid
+
+import android.content.Context
+import android.util.Log
+import me.gilo.woodroid.data.ApiVersion
+import me.gilo.woodroid.models.PaymentGateway
+import me.gilo.woodroid.repo.*
+import me.gilo.woodroid.repo.order.OrderNoteRepository
+import me.gilo.woodroid.repo.order.RefundRepository
+import me.gilo.woodroid.repo.product.*
+import org.json.JSONException
+import org.json.JSONObject
+
+class Woocommerce(siteUrl: String, apiVerion: ApiVersion, consumerKey: String, consumerSecret: String) {
+
+ private val orderNoteRepository: OrderNoteRepository
+ private val refundRepository: RefundRepository
+ private val attributeRepository: AttributeRepository
+ private val attributeTermRepository: AttributeTermRepository
+ private val categoryRepository: CategoryRepository
+ private val shippingClassRepository: ShippingClassRepository
+ private val tagRepository: TagRepository
+ private val variationRepository: VariationRepository
+ private val couponRepository: CouponRepository
+ private val customerRepository: CustomerRepository
+ private val orderRepository: OrderRepository
+ private val productRepository: ProductRepository
+ private val reviewRepository: ReviewRepository
+ private val reportsRepository: ReportsRepository
+ private val cartRepository: CartRepository
+ private val paymentGatewayRepository: PaymentGatewayRepository
+ private val settingsRepository: SettingsRepository
+ private val shippingMethodRepository: ShippingMethodRepository
+
+ init {
+ val baseUrl = "$siteUrl/wp-json/wc/v$apiVerion/"
+ val cartBaseUrl = "$siteUrl/wp-json/wc/v2/"
+
+ orderNoteRepository = OrderNoteRepository(baseUrl, consumerKey, consumerSecret)
+ refundRepository = RefundRepository(baseUrl, consumerKey, consumerSecret)
+ attributeRepository = AttributeRepository(baseUrl, consumerKey, consumerSecret)
+ attributeTermRepository = AttributeTermRepository(baseUrl, consumerKey, consumerSecret)
+ categoryRepository = CategoryRepository(baseUrl, consumerKey, consumerSecret)
+ shippingClassRepository = ShippingClassRepository(baseUrl, consumerKey, consumerSecret)
+ tagRepository = TagRepository(baseUrl, consumerKey, consumerSecret)
+ variationRepository = VariationRepository(baseUrl, consumerKey, consumerSecret)
+ couponRepository = CouponRepository(baseUrl, consumerKey, consumerSecret)
+ customerRepository = CustomerRepository(baseUrl, consumerKey, consumerSecret)
+ orderRepository = OrderRepository(baseUrl, consumerKey, consumerSecret)
+ productRepository = ProductRepository(baseUrl, consumerKey, consumerSecret)
+ reportsRepository = ReportsRepository(baseUrl, consumerKey, consumerSecret)
+ cartRepository = CartRepository(cartBaseUrl, consumerKey, consumerSecret)
+ reviewRepository = ReviewRepository(baseUrl, consumerKey, consumerSecret)
+ paymentGatewayRepository = PaymentGatewayRepository(baseUrl, consumerKey, consumerSecret)
+ settingsRepository = SettingsRepository(baseUrl, consumerKey, consumerSecret)
+ shippingMethodRepository = ShippingMethodRepository(baseUrl, consumerKey, consumerSecret)
+
+ }
+
+ fun OrderNoteRepository(): OrderNoteRepository {
+ return orderNoteRepository
+ }
+
+ fun RefundRepository(): RefundRepository {
+ return refundRepository
+ }
+
+ fun AttributeRepository(): AttributeRepository {
+ return attributeRepository
+ }
+
+ fun AttributeTermRepository(): AttributeTermRepository {
+ return attributeTermRepository
+ }
+
+ fun CategoryRepository(): CategoryRepository {
+ return categoryRepository
+ }
+
+ fun ShippingClassRepository(): ShippingClassRepository {
+ return shippingClassRepository
+ }
+
+ fun TagRepository(): TagRepository {
+ return tagRepository
+ }
+
+ fun VariationRepository(): VariationRepository {
+ return variationRepository
+ }
+
+ fun CouponRepository(): CouponRepository {
+ return couponRepository
+ }
+
+ fun CustomerRepository(): CustomerRepository {
+ return customerRepository
+ }
+
+ fun OrderRepository(): OrderRepository {
+ return orderRepository
+ }
+
+ fun ProductRepository(): ProductRepository {
+ return productRepository
+ }
+
+ fun ReviewRepository(): ReviewRepository {
+ return reviewRepository
+ }
+
+ fun ReportsRepository(): ReportsRepository {
+ return reportsRepository
+ }
+
+ fun PaymentGatewayRepository(): PaymentGatewayRepository {
+ return paymentGatewayRepository
+ }
+
+ fun SettingsRepository(): SettingsRepository {
+ return settingsRepository
+ }
+
+ fun ShippingMethodRepository(): ShippingMethodRepository {
+ return shippingMethodRepository
+ }
+
+ fun CartRepository(context: Context): CartRepository {
+ cartRepository.turnOnCookies(context)
+ return cartRepository
+ }
+
+ companion object {
+
+ val API_V1 = ApiVersion.API_VERSION1
+ val API_V2 = ApiVersion.API_VERSION2
+ val API_V3 = ApiVersion.API_VERSION3
+
+ fun Builder(): Builder {
+ return Builder()
+ }
+ }
+}
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..784d38e
--- /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