diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bfe24b9..8f8b5ef 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,44 +1,49 @@
+ package="me.gilo.wc">
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/me/gilo/wc/adapter/viewholder/CouponViewHolder.kt b/app/src/main/java/me/gilo/wc/adapter/viewholder/CouponViewHolder.kt
index b418963..5eaa7bd 100644
--- a/app/src/main/java/me/gilo/wc/adapter/viewholder/CouponViewHolder.kt
+++ b/app/src/main/java/me/gilo/wc/adapter/viewholder/CouponViewHolder.kt
@@ -1,11 +1,13 @@
package me.gilo.wc.adapter.viewholder
import android.content.Context
+import android.content.Intent
import android.support.v7.widget.RecyclerView
import android.text.Html
import android.view.View
import android.widget.TextView
import me.gilo.wc.R
+import me.gilo.wc.ui.coupon.CouponActivity
import me.gilo.woodroid.models.Coupon
class CouponViewHolder(val context: Context, itemView: View) :
@@ -17,6 +19,13 @@ class CouponViewHolder(val context: Context, itemView: View) :
tvTitle.text = coupon.code.toUpperCase()
tvDescription.text = Html.fromHtml(coupon.description)
+
+ itemView.setOnClickListener{
+ val intent = Intent(context, CouponActivity::class.java)
+ intent.putExtra("couponId", coupon.id)
+
+ context.startActivity(intent)
+ }
}
diff --git a/app/src/main/java/me/gilo/wc/adapter/viewholder/MenuViewHolder.java b/app/src/main/java/me/gilo/wc/adapter/viewholder/MenuViewHolder.java
index 55aa6df..5272fbe 100644
--- a/app/src/main/java/me/gilo/wc/adapter/viewholder/MenuViewHolder.java
+++ b/app/src/main/java/me/gilo/wc/adapter/viewholder/MenuViewHolder.java
@@ -6,7 +6,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import me.gilo.wc.R;
-import me.gilo.wc.ui.coupon.CouponActivity;
+import me.gilo.wc.ui.coupon.CouponsActivity;
import me.gilo.wc.ui.ShopActivity;
public class MenuViewHolder extends RecyclerView.ViewHolder {
@@ -37,7 +37,7 @@ public class MenuViewHolder extends RecyclerView.ViewHolder {
context.startActivity(intent);
break;
case "Coupons":
- intent = new Intent(context, CouponActivity.class);
+ intent = new Intent(context, CouponsActivity.class);
context.startActivity(intent);
break;
}
diff --git a/app/src/main/java/me/gilo/wc/ui/BaseActivity.kt b/app/src/main/java/me/gilo/wc/ui/BaseActivity.kt
index 27dfdb7..6586e0e 100644
--- a/app/src/main/java/me/gilo/wc/ui/BaseActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/BaseActivity.kt
@@ -4,11 +4,20 @@ import android.content.Context
import android.support.v7.app.AppCompatActivity
import io.github.inflationx.viewpump.ViewPumpContextWrapper
import me.gilo.wc.ui.state.ProgressDialogFragment
+import me.gilo.woodroid.Woocommerce
open class BaseActivity : AppCompatActivity() {
private lateinit var progressDialog : ProgressDialogFragment
+ val woocommerce = Woocommerce.Builder()
+ .setSiteUrl("http://157.230.131.179")
+ .setApiVersion(Woocommerce.API_V2)
+ .setConsumerKey("ck_26c61abd7eeff238d87dc56585bf26cb2d1a1ec3")
+ .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e")
+ .build()
+
+
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
}
@@ -20,6 +29,10 @@ open class BaseActivity : AppCompatActivity() {
progressDialog.show(manager, "progress")
}
+ fun showLoading() {
+ showLoading("This will only take a sec", "Loading")
+ }
+
fun stopShowingLoading() {
progressDialog.dismiss()
}
diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt
index 7e25125..fae4799 100644
--- a/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt
@@ -5,7 +5,6 @@ import kotlinx.android.synthetic.main.activity_add_coupon.*
import kotlinx.android.synthetic.main.content_add_coupon.*
import me.gilo.wc.R
import me.gilo.wc.ui.BaseActivity
-import me.gilo.woodroid.Woocommerce
import me.gilo.woodroid.models.Coupon
import retrofit2.Call
import retrofit2.Callback
@@ -13,13 +12,20 @@ import retrofit2.Response
class AddCouponActivity : BaseActivity() {
+
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_coupon)
setSupportActionBar(toolbar)
+ title = "Add Coupon"
+
bCreate.setOnClickListener { submit() }
+
+
+
}
private fun submit() {
@@ -36,13 +42,6 @@ class AddCouponActivity : BaseActivity() {
private fun createCoupon(coupon: Coupon) {
showLoading("Loading", "This won't take long")
- val woocommerce = Woocommerce.Builder()
- .setSiteUrl("http://157.230.131.179")
- .setApiVersion(Woocommerce.API_V2)
- .setConsumerKey("ck_26c61abd7eeff238d87dc56585bf26cb2d1a1ec3")
- .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e")
- .build()
-
woocommerce.Coupon().create(coupon).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
val couponResponse = response.body()
diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt
index b19619d..afb26f0 100644
--- a/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt
@@ -1,26 +1,20 @@
package me.gilo.wc.ui.coupon
-import android.content.Intent
import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
+import android.widget.Toast
import kotlinx.android.synthetic.main.activity_coupon.*
import kotlinx.android.synthetic.main.content_coupon.*
import me.gilo.wc.R
-import me.gilo.wc.adapter.CouponAdapter
import me.gilo.wc.ui.BaseActivity
-import me.gilo.woodroid.Woocommerce
import me.gilo.woodroid.models.Coupon
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
-import java.util.*
+
+
class CouponActivity : BaseActivity() {
-
- lateinit var adapter : CouponAdapter
- lateinit var coupons: ArrayList
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_coupon)
@@ -28,44 +22,89 @@ class CouponActivity : BaseActivity() {
title = "Coupon"
- val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
- rvCoupons.layoutManager = layoutManager
- rvCoupons.isNestedScrollingEnabled = false
+ val couponId = intent.getIntExtra("couponId", 0)
- coupons = ArrayList()
+ if (couponId != 0){
+ getCoupon(couponId)
- adapter = CouponAdapter(coupons)
- rvCoupons.adapter = adapter
+ bDelete.setOnClickListener{delete(couponId)}
+ bUpdate.setOnClickListener{
+ val coupon = Coupon()
+ coupon.id = couponId
+ coupon.code = etCode.text.toString()
+ coupon.description = etDescription.text.toString()
- coupons()
+ update(coupon)
+ }
- fab.setOnClickListener{
- startActivity(Intent(baseContext, AddCouponActivity::class.java))
+ }else{
+ Toast.makeText(baseContext, "You did not pass coupon id", Toast.LENGTH_LONG).show()
}
}
- //Not best practise, but works for purposes of demo
- private fun coupons() {
- val woocommerce = Woocommerce.Builder()
- .setSiteUrl("http://157.230.131.179")
- .setApiVersion(Woocommerce.API_V2)
- .setConsumerKey("ck_26c61abd7eeff238d87dc56585bf26cb2d1a1ec3")
- .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e")
- .build()
+ private fun getCoupon(couponId: Int) {
+ showLoading()
- woocommerce.Coupon().coupons().enqueue(object : Callback> {
- override fun onResponse(call: Call>, response: Response>) {
- val couponResponse = response.body()
- for (coupon in couponResponse!!) {
- coupons.add(coupon)
- }
+ woocommerce.Coupon().coupon(couponId).enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
+ val coupon = response.body()!!
- adapter.notifyDataSetChanged()
+ etCode.setText(coupon.code.toUpperCase())
+ etDescription.setText(coupon.description)
+
+ stopShowingLoading()
}
- override fun onFailure(call: Call>, t: Throwable) {
+ override fun onFailure(call: Call, t: Throwable) {
+ stopShowingLoading()
+ }
+ })
+ }
+ private fun delete(couponId: Int) {
+ showLoading()
+
+ woocommerce.Coupon().delete(couponId).enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
+ if (response.isSuccessful) {
+ val coupon = response.body()!!
+
+ etCode.setText(coupon.code.toUpperCase())
+ etDescription.setText(coupon.description)
+
+ finish()
+ }else{
+ Toast.makeText(this@CouponActivity, "" + response.code() + " : " + response.message(), Toast.LENGTH_SHORT).show()
+ }
+
+ stopShowingLoading()
+ }
+
+ override fun onFailure(call: Call, t: Throwable) {
+ stopShowingLoading()
+ }
+ })
+ }
+
+
+ private fun update(coupon: Coupon) {
+ showLoading()
+
+ woocommerce.Coupon().update(coupon.id, coupon).enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
+ val coupon = response.body()!!
+
+ etCode.setText(coupon.code.toUpperCase())
+ etDescription.setText(coupon.description)
+
+ stopShowingLoading()
+
+ finish()
+ }
+
+ override fun onFailure(call: Call, t: Throwable) {
+ stopShowingLoading()
}
})
}
diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt
new file mode 100644
index 0000000..1486ceb
--- /dev/null
+++ b/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt
@@ -0,0 +1,65 @@
+package me.gilo.wc.ui.coupon
+
+import android.content.Intent
+import android.os.Bundle
+import android.support.v7.widget.LinearLayoutManager
+import kotlinx.android.synthetic.main.activity_coupons.*
+import kotlinx.android.synthetic.main.content_coupons.*
+import me.gilo.wc.R
+import me.gilo.wc.adapter.CouponAdapter
+import me.gilo.wc.ui.BaseActivity
+import me.gilo.woodroid.models.Coupon
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+import java.util.*
+
+class CouponsActivity : BaseActivity() {
+
+
+ lateinit var adapter : CouponAdapter
+ lateinit var coupons: ArrayList
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_coupons)
+ setSupportActionBar(toolbar)
+
+ title = "Coupons"
+
+ val layoutManager = LinearLayoutManager(baseContext, LinearLayoutManager.VERTICAL, false)
+ rvCoupons.layoutManager = layoutManager
+ rvCoupons.isNestedScrollingEnabled = false
+
+ coupons = ArrayList()
+
+ adapter = CouponAdapter(coupons)
+ rvCoupons.adapter = adapter
+
+ coupons()
+
+ fab.setOnClickListener{
+ startActivity(Intent(baseContext, AddCouponActivity::class.java))
+ }
+
+ }
+
+ //Not best practise, but works for purposes of demo
+ private fun coupons() {
+ woocommerce.Coupon().coupons().enqueue(object : Callback> {
+ override fun onResponse(call: Call>, response: Response>) {
+ val couponResponse = response.body()
+ for (coupon in couponResponse!!) {
+ coupons.add(coupon)
+ }
+
+ adapter.notifyDataSetChanged()
+ }
+
+ override fun onFailure(call: Call>, t: Throwable) {
+
+ }
+ })
+ }
+
+}
diff --git a/app/src/main/res/layout/activity_coupon.xml b/app/src/main/res/layout/activity_coupon.xml
index e9c5180..a27a22b 100644
--- a/app/src/main/res/layout/activity_coupon.xml
+++ b/app/src/main/res/layout/activity_coupon.xml
@@ -1,36 +1,26 @@
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".ui.coupon.CouponActivity">
-
+
-
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_coupons.xml b/app/src/main/res/layout/activity_coupons.xml
new file mode 100644
index 0000000..4330a30
--- /dev/null
+++ b/app/src/main/res/layout/activity_coupons.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/content_add_coupon.xml b/app/src/main/res/layout/content_add_coupon.xml
index 5789648..e24de9f 100644
--- a/app/src/main/res/layout/content_add_coupon.xml
+++ b/app/src/main/res/layout/content_add_coupon.xml
@@ -24,74 +24,36 @@
android:background="@drawable/rect_white"
android:orientation="vertical">
-
-
-
-
-
-
-
+ android:layout_weight="1"
+ android:cursorVisible="true"
+ android:hint="Coupon code"
+ android:paddingLeft="8dp"
+ android:paddingTop="8dp"
+ android:paddingRight="8dp"
+ android:paddingBottom="8dp"
+ android:textSize="18sp"
+ />
-
-
-
-
-
+ android:layout_weight="1"
+ android:cursorVisible="true"
+ android:gravity="top|left"
+ android:hint="Enter text here"
+ android:minLines="3"
+ android:paddingLeft="8dp"
+ android:paddingTop="8dp"
+ android:paddingRight="8dp"
+ android:paddingBottom="8dp"
+ android:textSize="18sp"
+ />
diff --git a/app/src/main/res/layout/content_coupon.xml b/app/src/main/res/layout/content_coupon.xml
index 3219115..61421d8 100644
--- a/app/src/main/res/layout/content_coupon.xml
+++ b/app/src/main/res/layout/content_coupon.xml
@@ -1,20 +1,107 @@
-
+
-
+ android:layout_height="wrap_content"
+ >
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/content_coupons.xml b/app/src/main/res/layout/content_coupons.xml
new file mode 100644
index 0000000..c779708
--- /dev/null
+++ b/app/src/main/res/layout/content_coupons.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 228a998..89c5ccb 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -9,5 +9,6 @@
fonts/GT-America-Medium.otf
fonts/GT-America-Regular.otf
AddCouponActivity
+ CouponsActivity
diff --git a/build.gradle b/build.gradle
index e8a345f..18184a0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,6 +19,7 @@ allprojects {
repositories {
google()
jcenter()
+ maven { url 'https://jitpack.io' }
}
}
diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/Coupon.java b/woodroid/src/main/java/me/gilo/woodroid/models/Coupon.java
index b4a1d76..e87a783 100644
--- a/woodroid/src/main/java/me/gilo/woodroid/models/Coupon.java
+++ b/woodroid/src/main/java/me/gilo/woodroid/models/Coupon.java
@@ -17,7 +17,7 @@ public class Coupon implements Serializable{
private int usage_limit_per_user;
private int limit_usage_to_x_items;
private String[] meta_data;
- private String id;
+ private int id;
private String date_modified_gmt;
private String amount;
private String date_created;
@@ -136,11 +136,11 @@ public class Coupon implements Serializable{
this.meta_data = meta_data;
}
- public String getId() {
+ public int getId() {
return id;
}
- public void setId(String id) {
+ public void setId(int id) {
this.id = id;
}