diff --git a/.gitignore b/.gitignore
index 4323000..28a30c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@
.externalNativeBuild
'.idea'
'.idea'
+/app/google-services.json
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 61a9130..fb7f4a8 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 23a89bb..e9969a1 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,10 +4,10 @@
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 2370474..602056e 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -26,5 +26,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5d35ec..17e6b98 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,9 +1,6 @@
-
+
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 8fa6152..823c708 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,15 +2,15 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 30
- buildToolsVersion "30.0.2"
+ buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.quintus.labs.grocerystore"
- minSdkVersion 19
- targetSdkVersion 29
+ minSdkVersion 21
+ targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- vectorDrawables.useSupportLibrary true
+ vectorDrawables.useSupportLibrary true
}
buildTypes {
release {
@@ -23,7 +23,16 @@ allprojects {
repositories {
google()
jcenter()
- maven { url "https://jitpack.io" }
+ mavenCentral()
+ maven {
+ url "https://jitpack.io"
+ }
+ maven {
+ url "https://s3-ap-southeast-1.amazonaws.com/godel-release/godel/"
+ }
+ maven {
+ url "https://dl.bintray.com/sasidhar-678/maven"
+ }
}
}
@@ -46,6 +55,11 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-messaging:20.1.5'
implementation 'com.google.firebase:firebase-analytics:17.3.0'
+ implementation 'com.razorpay:checkout:1.6.6'
+ implementation 'com.instamojo:android-sdk:+'
+ implementation 'com.payumoney.sdkui:plug-n-play:1.6.0'
+ implementation 'com.google.firebase:firebase-core:19.0.1'
+ implementation 'com.google.firebase:firebase-auth:21.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0'
diff --git a/app/google-services.json b/app/google-services.json
deleted file mode 100644
index ed61775..0000000
--- a/app/google-services.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "project_info": {
- "project_number": "319212250245",
- "firebase_url": "https://grocery-store-1bea8.firebaseio.com",
- "project_id": "grocery-store-1bea8",
- "storage_bucket": "grocery-store-1bea8.appspot.com"
- },
- "client": [
- {
- "client_info": {
- "mobilesdk_app_id": "1:319212250245:android:a20fb6e9e597c8d0e4b5ec",
- "android_client_info": {
- "package_name": "com.quintus.labs.grocerystore"
- }
- },
- "oauth_client": [
- {
- "client_id": "319212250245-jtt89efjae1ja53jm91b8l3vfq2pt68s.apps.googleusercontent.com",
- "client_type": 1,
- "android_info": {
- "package_name": "com.quintus.labs.grocerystore",
- "certificate_hash": "8c889b31613bd7616b4daad8d13de687189d31ec"
- }
- },
- {
- "client_id": "319212250245-o051f11qefdr0931hfs5979r5qk2qqup.apps.googleusercontent.com",
- "client_type": 3
- }
- ],
- "api_key": [
- {
- "current_key": "AIzaSyB_lf5SI1I3mH7QzNJpzG0QEmaYgCU_Zcg"
- }
- ],
- "services": {
- "appinvite_service": {
- "other_platform_oauth_client": [
- {
- "client_id": "319212250245-o051f11qefdr0931hfs5979r5qk2qqup.apps.googleusercontent.com",
- "client_type": 3
- }
- ]
- }
- }
- }
- ],
- "configuration_version": "1"
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 50ccf9c..9ccaf3f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
@@ -8,6 +9,9 @@
+
+
+
-
+
+
+
+
+
+
+
@@ -29,8 +48,7 @@
-
+ android:label="@string/app_name" />
-
+
diff --git a/app/src/main/assets/fonts/Chango-Regular.ttf b/app/src/main/assets/fonts/Chango-Regular.ttf
deleted file mode 100644
index ad34f64..0000000
Binary files a/app/src/main/assets/fonts/Chango-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/MavenPro-Regular.ttf b/app/src/main/assets/fonts/MavenPro-Regular.ttf
deleted file mode 100644
index 6442c2b..0000000
Binary files a/app/src/main/assets/fonts/MavenPro-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/Merienda-Bold.ttf b/app/src/main/assets/fonts/Merienda-Bold.ttf
deleted file mode 100644
index 02762ca..0000000
Binary files a/app/src/main/assets/fonts/Merienda-Bold.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/Merienda-Regular.ttf b/app/src/main/assets/fonts/Merienda-Regular.ttf
deleted file mode 100644
index 055eaea..0000000
Binary files a/app/src/main/assets/fonts/Merienda-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/Molle-Regular.ttf b/app/src/main/assets/fonts/Molle-Regular.ttf
deleted file mode 100644
index afe522d..0000000
Binary files a/app/src/main/assets/fonts/Molle-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OleoScript-Bold.ttf b/app/src/main/assets/fonts/OleoScript-Bold.ttf
deleted file mode 100644
index 1a58168..0000000
Binary files a/app/src/main/assets/fonts/OleoScript-Bold.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OleoScript-Regular.ttf b/app/src/main/assets/fonts/OleoScript-Regular.ttf
deleted file mode 100644
index a34baa1..0000000
Binary files a/app/src/main/assets/fonts/OleoScript-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-Bold.ttf b/app/src/main/assets/fonts/OpenSans-Bold.ttf
deleted file mode 100644
index fd79d43..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-Bold.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-BoldItalic.ttf b/app/src/main/assets/fonts/OpenSans-BoldItalic.ttf
deleted file mode 100644
index 9bc8009..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-BoldItalic.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-ExtraBold.ttf b/app/src/main/assets/fonts/OpenSans-ExtraBold.ttf
deleted file mode 100644
index 21f6f84..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-ExtraBold.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-Light.ttf b/app/src/main/assets/fonts/OpenSans-Light.ttf
deleted file mode 100644
index 0d38189..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-Light.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-Regular.ttf b/app/src/main/assets/fonts/OpenSans-Regular.ttf
deleted file mode 100644
index db43334..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-Regular.ttf and /dev/null differ
diff --git a/app/src/main/assets/fonts/OpenSans-Semibold.ttf b/app/src/main/assets/fonts/OpenSans-Semibold.ttf
deleted file mode 100644
index 1a7679e..0000000
Binary files a/app/src/main/assets/fonts/OpenSans-Semibold.ttf and /dev/null differ
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/AddressListActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/AddressListActivity.java
new file mode 100644
index 0000000..2a3c4d8
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/AddressListActivity.java
@@ -0,0 +1,89 @@
+package com.quintus.labs.grocerystore.activity;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.annotation.SuppressLint;
+import android.location.Address;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.google.gson.Gson;
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
+import com.quintus.labs.grocerystore.model.AddAddress;
+import com.quintus.labs.grocerystore.model.AddAddressListResponse;
+import com.quintus.labs.grocerystore.model.User;
+import com.quintus.labs.grocerystore.model.UserResponse;
+import com.quintus.labs.grocerystore.util.ErrorUtils;
+import com.quintus.labs.grocerystore.util.NetworkCheck;
+import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class AddressListActivity extends AppCompatActivity {
+ TextView address_name_display,address_phone_display,address_email_display,address_display,address_country_display,address_state_display,address_city_display,address_pincode_display,address_type_display;
+ String _country, _state, _city, _name, _email, _phone, _address, _zip, _address_type, userString;
+ LocalStorage localStorage;
+ Gson gson = new Gson();
+ User user;
+ AddAddress addAddress;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_address_list);
+
+ address_name_display = findViewById(R.id.address_name_display);
+ address_phone_display = findViewById(R.id.address_phone_display);
+ address_email_display = findViewById(R.id.address_email_display);
+ address_display =findViewById(R.id.address_display);
+ address_country_display =findViewById(R.id.address_country_display);
+ address_state_display =findViewById(R.id.address_state_display);
+ address_city_display =findViewById(R.id.address_city_display);
+ address_pincode_display =findViewById(R.id.address_pincode_display);
+ address_type_display =findViewById(R.id.address_type_display);
+
+ localStorage = new LocalStorage(getApplicationContext());
+ userString = localStorage.getUserLogin();
+ user = gson.fromJson(userString, User.class);
+// token = "Bearer " + user.getToken();
+
+ if (NetworkCheck.isNetworkAvailable(getApplicationContext())) {
+ AddressDataList();
+ }
+ }
+
+ public void AddressDataList(){
+
+// Call call = RestClient.getRestService(getApplicationContext()).getAddressList(user);
+// call.enqueue(new Callback() {
+// @Override
+// public void onResponse(Call call, Response response) {
+// AddAddressListResponse addressListResponse = response.body();
+// if (addressListResponse != null) {
+// if (response.code() == 200) {
+// showData();
+// }
+//
+// } else {
+// Toast.makeText(getApplicationContext(), getResources().getString(R.string.label_something_went_wrong), Toast.LENGTH_LONG).show();
+//
+// }
+// }
+// @Override
+// public void onFailure(Call call, Throwable t) {
+// Toast.makeText(getApplicationContext(), getResources().getString(R.string.please_try_after_sometime), Toast.LENGTH_LONG).show();
+// }
+// });
+ }
+
+ private void showData() {
+
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/BaseActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/BaseActivity.java
index d691c8f..1120166 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/BaseActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/BaseActivity.java
@@ -15,7 +15,9 @@
import com.google.gson.reflect.TypeToken;
import com.quintus.labs.grocerystore.interfaces.AddorRemoveCallbacks;
import com.quintus.labs.grocerystore.model.Cart;
+import com.quintus.labs.grocerystore.model.CartDetails;
import com.quintus.labs.grocerystore.model.Order;
+import com.quintus.labs.grocerystore.model.ProductDetail;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import java.lang.reflect.Type;
@@ -34,6 +36,7 @@ public class BaseActivity extends AppCompatActivity implements AddorRemoveCallba
private static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 10;
private static final int MY_PERMISSIONS_REQUEST_CAMERA = 20;
List cartList = new ArrayList();
+ List cartList1 = new ArrayList();
List orderList = new ArrayList();
Gson gson;
LocalStorage localStorage;
@@ -48,45 +51,30 @@ protected void onCreate(Bundle savedInstanceState) {
gson = new Gson();
userJson = localStorage.getUserLogin();
progressDialog = new ProgressDialog(BaseActivity.this);
- //user = gson.fromJson(userJson, UserResult.class);
- // NetworkCheck.isNetworkAvailable(getApplicationContext());
- cartCount();
+
}
public int cartCount() {
- gson = new Gson();
- if (localStorage.getCart() != null) {
- String jsonCart = localStorage.getCart();
- Log.d("CART : ", jsonCart);
- Type type = new TypeToken>() {
- }.getType();
- cartList = gson.fromJson(jsonCart, type);
-
- //Toast.makeText(getContext(),remedyList.size()+"",Toast.LENGTH_LONG).show();
- return cartList.size();
- }
- return 0;
+ return 0;
}
- public List getCartList() {
+ public List getCartList() {
if (localStorage.getCart() != null) {
String jsonCart = localStorage.getCart();
- //Log.d("CART : ", jsonCart);
- Type type = new TypeToken>() {
+ Type type = new TypeToken>() {
}.getType();
- cartList = gson.fromJson(jsonCart, type);
- return cartList;
+ cartList1 = gson.fromJson(jsonCart, type);
+ return cartList1;
}
- return cartList;
+ return cartList1;
}
public List getOrderList() {
if (localStorage.getOrder() != null) {
String jsonOrder = localStorage.getOrder();
- //Log.d("CART : ", jsonCart);
Type type = new TypeToken>() {
}.getType();
orderList = gson.fromJson(jsonOrder, type);
@@ -95,20 +83,6 @@ public List getOrderList() {
return orderList;
}
- public Double getTotalPrice() {
- cartList = getCartList();
- Double total = 0.0;
- if (cartCount() > 0) {
- for (int i = 0; i < cartList.size(); i++) {
- total = total + Double.valueOf(cartList.get(i).getSubTotal());
- Log.d(TAG, "Total :" + total + "");
- }
- Log.d(TAG, "Total :" + total + "");
- return total;
- }
- return total;
- }
-
@Override
public void onAddProduct() {
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/CartActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/CartActivity.java
index e139486..90a5302 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/CartActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/CartActivity.java
@@ -7,6 +7,7 @@
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
@@ -24,12 +25,19 @@
import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.adapter.CartAdapter;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.model.Cart;
+import com.quintus.labs.grocerystore.model.CartDetails;
+import com.quintus.labs.grocerystore.model.ProductDetail;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import java.util.ArrayList;
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
/**
* Grocery App
* https://github.com/quintuslabs/GroceryStore
@@ -38,7 +46,7 @@
*/
public class CartActivity extends BaseActivity {
LocalStorage localStorage;
- List cartList = new ArrayList<>();
+ List cartList = new ArrayList<>();
Gson gson;
RecyclerView recyclerView;
CartAdapter adapter;
@@ -47,6 +55,8 @@ public class CartActivity extends BaseActivity {
LinearLayout checkoutLL;
TextView totalPrice;
private String mState = "SHOW_MENU";
+ String token;
+ View progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -59,17 +69,18 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_black_24dp);
- //upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
-
+ progress = findViewById(R.id.progress_bar);
localStorage = new LocalStorage(getApplicationContext());
gson = new Gson();
emptyCart = findViewById(R.id.empty_cart_img);
checkoutLL = findViewById(R.id.checkout_LL);
totalPrice = findViewById(R.id.total_price);
- totalPrice.setText("Rs. " + getTotalPrice() + "");
- setUpCartRecyclerview();
+ token = localStorage.getApiKey();
+ recyclerView = findViewById(R.id.cart_rv);
+ recyclerView.setHasFixedSize(true);
+ getCartDetails();
}
@@ -82,7 +93,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
if (mState.equalsIgnoreCase("HIDE_MENU")) {
item.setVisible(false);
} else {
- item.setVisible(true);
+ item.setVisible(false);
}
return true;
}
@@ -156,17 +167,20 @@ public void onBackPressed() {
private void changeActionBarTitle(ActionBar actionBar) {
// Create a LayoutParams for TextView
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
- RelativeLayout.LayoutParams.MATCH_PARENT, // Width of TextView
+ RelativeLayout.LayoutParams.WRAP_CONTENT, // Width of TextView
RelativeLayout.LayoutParams.WRAP_CONTENT); // Height of TextView
+lp.setMarginStart(300);
+
TextView tv = new TextView(getApplicationContext());
// Apply the layout parameters to TextView widget
tv.setLayoutParams(lp);
tv.setGravity(Gravity.CENTER);
tv.setTypeface(null, Typeface.BOLD);
// Set text to display in TextView
- tv.setText("Cart"); // ActionBar title text
+ tv.setText("My Cart"); // ActionBar title text
tv.setTextSize(20);
+
// Set the text color of TextView to red
// This line change the ActionBar title text color
tv.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
@@ -179,16 +193,7 @@ private void changeActionBarTitle(ActionBar actionBar) {
private void setUpCartRecyclerview() {
- cartList = new ArrayList<>();
- cartList = getCartList();
- if (cartList.isEmpty()) {
- mState = "HIDE_MENU";
- invalidateOptionsMenu();
- emptyCart.setVisibility(View.VISIBLE);
- checkoutLL.setVisibility(View.GONE);
- }
- recyclerView = findViewById(R.id.cart_rv);
- recyclerView.setHasFixedSize(true);
+
recyclerViewlayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(recyclerViewlayoutManager);
adapter = new CartAdapter(cartList, CartActivity.this);
@@ -205,13 +210,58 @@ public void onCheckoutClicked(View view) {
@Override
public void updateTotalPrice() {
- totalPrice.setText("Rs. " + getTotalPrice() + "");
- if (getTotalPrice() == 0.0) {
- mState = "HIDE_MENU";
- invalidateOptionsMenu();
- emptyCart.setVisibility(View.VISIBLE);
- checkoutLL.setVisibility(View.GONE);
- }
+
+ getCartDetails();
+ }
+
+
+ private void getCartDetails() {
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).getCartList(token);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ CartDetails cartDetails = response.body();
+ if (response.code() == 200) {
+ if (cartDetails.getTotalItems() > 0) {
+ cartList = cartDetails.getProductDetails();
+ String _subtotal = String.valueOf(cartDetails.getProductTotalPrice());
+ totalPrice.setText("Rs. " + _subtotal);
+ setUpCartRecyclerview();
+ } else {
+ mState = "HIDE_MENU";
+ invalidateOptionsMenu();
+ emptyCart.setVisibility(View.VISIBLE);
+ checkoutLL.setVisibility(View.GONE);
+ }
+
+
+ }
+
+ }
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+ }
+
+ private void hideProgressDialog() {
+ progress.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ progress.setVisibility(View.VISIBLE);
}
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/CheckoutActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/CheckoutActivity.java
index faaa124..f55395c 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/CheckoutActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/CheckoutActivity.java
@@ -35,7 +35,6 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_black_24dp);
- //upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
@@ -56,7 +55,6 @@ private void changeActionBarTitle(ActionBar actionBar) {
// Apply the layout parameters to TextView widget
tv.setLayoutParams(lp);
tv.setGravity(Gravity.CENTER);
- //tv.setTypeface(null, Typeface.BOLD);
// Set text to display in TextView
tv.setText("Checkout"); // ActionBar title text
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(), "fonts/Poppins-Bold.ttf");
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/MainActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/MainActivity.java
index c94b239..2d5debc 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/MainActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/MainActivity.java
@@ -4,6 +4,7 @@
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
+import android.os.Handler;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
@@ -14,6 +15,7 @@
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
@@ -22,6 +24,7 @@
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -34,6 +37,7 @@
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.adapter.SearchAdapter;
import com.quintus.labs.grocerystore.api.clients.RestClient;
+import com.quintus.labs.grocerystore.fragment.AddressFragment;
import com.quintus.labs.grocerystore.fragment.CategoryFragment;
import com.quintus.labs.grocerystore.fragment.HomeFragment;
import com.quintus.labs.grocerystore.fragment.MyOrderFragment;
@@ -42,7 +46,9 @@
import com.quintus.labs.grocerystore.fragment.PopularProductFragment;
import com.quintus.labs.grocerystore.fragment.ProfileFragment;
import com.quintus.labs.grocerystore.helper.Converter;
+import com.quintus.labs.grocerystore.model.CartDetails;
import com.quintus.labs.grocerystore.model.Product;
+import com.quintus.labs.grocerystore.model.ProductDetail;
import com.quintus.labs.grocerystore.model.ProductResult;
import com.quintus.labs.grocerystore.model.User;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
@@ -64,9 +70,17 @@ public class MainActivity extends BaseActivity
implements NavigationView.OnNavigationItemSelectedListener {
private static int cart_count = 0;
User user;
+ private ArrayList productDetail = new ArrayList<>();
List productList = new ArrayList<>();
SearchAdapter mAdapter;
private RecyclerView recyclerView;
+ boolean doubleBackToExitPressedOnce = false;
+
+ LocalStorage localStorage;
+
+ Gson gson;
+ String token;
+ View progress;
@SuppressLint("ResourceAsColor")
static void centerToolbarTitle(@NonNull final Toolbar toolbar) {
@@ -82,6 +96,8 @@ static void centerToolbarTitle(@NonNull final Toolbar toolbar) {
toolbar.requestLayout();
//also you can use titleView for changing font: titleView.setTypeface(Typeface);
}
+
+
}
@Override
@@ -90,24 +106,39 @@ public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
- super.onBackPressed();
- }
- }
+ getCartDetails();
+ FragmentManager manager = getSupportFragmentManager();
+ int count = manager.getBackStackEntryCount();
+ // Log.d("This Fragment name: ", ""+count);
+ if (count == 1) {
+ if (doubleBackToExitPressedOnce) {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_HOME);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ startActivity(intent);
+ finish();
+ return;
+ }
+ this.doubleBackToExitPressedOnce = true;
+ Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ doubleBackToExitPressedOnce = false;
+ }
+ }, 2000);
- /*public void toggleCommunicationGroup(View button) {
- NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
- MenuItem group = navigationView.getMenu().findItem(R.id.nav_communication_group);
- boolean isVisible = group.isVisible();
- group.setVisible(!isVisible);
- Button toggleButton = (Button)findViewById(R.id.main_toggle_button);
- if (isVisible) {
- toggleButton.setText("Enable communication group");
- } else {
- toggleButton.setText("Disable communication group");
+ } else {
+
+ super.onBackPressed();
+ }
}
- }*/
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
@@ -117,6 +148,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
menuItem.setIcon(Converter.convertLayoutToImage(MainActivity.this, cart_count, R.drawable.ic_shopping_basket));
final MenuItem searchItem = menu.findItem(R.id.action_search);
+ searchItem.setVisible(false);
SearchView searchView = null;
if (searchItem != null) {
@@ -159,34 +191,8 @@ public boolean onQueryTextChange(String s) {
}
private void getSearchProduct(String query) {
- Call call = RestClient.getRestService(getApplicationContext()).searchProduct(query);
- call.enqueue(new Callback() {
- @Override
- public void onResponse(Call call, Response response) {
- Log.d("Response :=>", response.body() + "");
- if (response != null) {
-
- ProductResult productResult = response.body();
- if (productResult.getCode() == 200) {
-
- productList = productResult.getProductList();
- setUpRecyclerView();
-
- }
-
- }
-
-
- }
-
- @Override
- public void onFailure(Call call, Throwable t) {
- Log.d("Error", t.getMessage());
- }
- });
-
}
private void setUpRecyclerView() {
@@ -225,8 +231,13 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
centerToolbarTitle(toolbar);
- cart_count = cartCount();
+ //cart_count = cartCount();
+ progress = findViewById(R.id.progress_bar);
+ localStorage = new LocalStorage(getApplicationContext());
+ gson = new Gson();
+ token = localStorage.getApiKey();
+ getCartDetails();
FloatingActionButton fab = findViewById(R.id.fab);
recyclerView = findViewById(R.id.search_recycler_view);
fab.setVisibility(View.GONE);
@@ -248,6 +259,8 @@ public void onClick(View view) {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+ toggle.getDrawerArrowDrawable().setColor(getResources().getColor(R.color.black));
+
drawer.setDrawerListener(toggle);
toggle.syncState();
@@ -287,6 +300,9 @@ private void displaySelectedScreen(int itemId) {
case R.id.nav_profile:
fragment = new ProfileFragment();
break;
+// case R.id.nav_address:
+// fragment = new AddressFragment();
+// break;
case R.id.nav_category:
fragment = new CategoryFragment();
break;
@@ -317,6 +333,7 @@ private void displaySelectedScreen(int itemId) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_from_right, R.anim.slide_to_left);
ft.replace(R.id.content_frame, fragment);
+ ft.addToBackStack(null);
ft.commit();
}
@@ -337,14 +354,74 @@ public boolean onNavigationItemSelected(MenuItem item) {
@Override
public void onAddProduct() {
super.onAddProduct();
- cart_count++;
- invalidateOptionsMenu();
+ // cart_count++;
+ getCartDetails();
+ // invalidateOptionsMenu();
}
@Override
public void onRemoveProduct() {
super.onRemoveProduct();
+ // cart_count--;
+ getCartDetails();
+ // invalidateOptionsMenu();
+ }
+
+
+ private void getCartDetails() {
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).getCartList(token);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ CartDetails cartDetails = response.body();
+ if (response.code() == 200) {
+ assert cartDetails != null;
+ cart_count = cartDetails.getTotalItems();
+ productDetail.clear();
+ if(cartDetails.getProductDetails().size()>0) {
+ for (int i = 0; i < cartDetails.getProductDetails().size(); i++) {
+
+ int id = cartDetails.getProductDetails().get(i).getProduct().getId();
+ int count = cartDetails.getProductDetails().get(i).getCount();
+ ProductDetail productDetails = new ProductDetail(id, count);
+ productDetail.add(productDetails);
+ }
+ String cartStr = gson.toJson(productDetail);
+ Log.d("CART", cartStr);
+ localStorage.setCart(cartStr);
+ }else{
+ productDetail.clear();
+ localStorage.deleteCart();
+ }
+ invalidateOptionsMenu();
+ }
+
+ }
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+ }
+
+ private void hideProgressDialog() {
+ progress.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ progress.setVisibility(View.VISIBLE);
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/OtpVarificationActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/OtpVarificationActivity.java
new file mode 100644
index 0000000..1bf84cd
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/OtpVarificationActivity.java
@@ -0,0 +1,263 @@
+package com.quintus.labs.grocerystore.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.CountDownTimer;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.google.gson.Gson;
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
+import com.quintus.labs.grocerystore.model.User;
+import com.quintus.labs.grocerystore.model.UserResponse;
+import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+
+public class OtpVarificationActivity extends AppCompatActivity{
+
+ public static final String TAG = "VarificationActivity==>";
+ Button submit;
+ String _otp,_phone,firebaseToken;
+ LocalStorage localStorage;
+ Gson gson = new Gson();
+ private static EditText otpcode;
+ User user;
+
+
+ String userjson;
+
+ int _otpSuccess = 1;
+ CountDownTimer cTimer = null;
+ int counter = 30;
+ TextView otp;
+ EditText otp_box_1,otp_box_2,otp_box_3,otp_box_4,otp_box_5,otp_box_6;
+ TextView resend_otp,otp_timer;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_otp_verification);
+ otpcode = findViewById(R.id.otp_text);
+ localStorage = new LocalStorage(getApplicationContext());
+ firebaseToken = localStorage.getFirebaseToken();
+ submit = findViewById(R.id.verify);
+
+ userjson = localStorage.getUserLogin();
+ user = gson.fromJson(userjson, User.class);
+ _phone = user.getPhone();
+
+ otp = findViewById(R.id.otp);
+ resend_otp = findViewById(R.id.resend_otp);
+ otp_timer = findViewById(R.id.otp_timer);
+ otp_box_1 = findViewById(R.id.otp_box_1);
+ otp_box_2 = findViewById(R.id.otp_box_2);
+ otp_box_3 = findViewById(R.id.otp_box_3);
+ otp_box_4 = findViewById(R.id.otp_box_4);
+ otp_box_5 = findViewById(R.id.otp_box_5);
+ otp_box_6 = findViewById(R.id.otp_box_6);
+ otp.setText("Enter OTP sent to "+ _phone);
+ otp_box_1.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+
+ if(editable!=null){
+ if(editable.length()==1)
+ otp_box_2.requestFocus();
+ }
+ }
+ });
+ otp_box_2.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ if(editable!=null){
+ if(editable.length()==1)
+ otp_box_3.requestFocus();
+ }
+ }
+ });
+ otp_box_3.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ if(editable!=null){
+ if(editable.length()==1)
+ otp_box_4.requestFocus();
+ }
+ }
+ });
+ otp_box_4.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ if(editable!=null){
+ if(editable.length()==1)
+ otp_box_5.requestFocus();
+ }
+ }
+ });
+ otp_box_5.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ if(editable!=null){
+ if(editable.length()==1)
+ otp_box_6.requestFocus();
+ }
+ }
+ });
+
+ }
+
+
+ public void onVerifyMobileOtpClicked(View view) {
+ _otp = otp_box_1.getText().toString().trim()+otp_box_2.getText().toString().trim()+otp_box_3.getText().toString().trim()+otp_box_4.getText().toString().trim()+otp_box_5.getText().toString().trim()+otp_box_6.getText().toString().trim();
+
+ if (_otp.length() != 6) {
+ Toast.makeText(this, "Please enter valid OTP", Toast.LENGTH_SHORT).show();
+ } else {
+ user = new User( _otp,_phone);
+ submitOtp(user);
+ }
+
+ }
+
+
+ private void submitOtp(User user) {
+ Call call = RestClient.getRestService(getApplicationContext()).otpVerification(user);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+// Log.d("Response :=>", response.body() + "");
+ UserResponse userResponse = response.body();
+ if (userResponse != null) {
+ if (response.code() == 200) {
+ startActivity(new Intent(getApplicationContext(), MainActivity.class));
+ Toast.makeText(getApplicationContext(), "Mobile verified Successfully", Toast.LENGTH_LONG).show();
+ }
+ } else {
+ Toast.makeText(getApplicationContext(), "Please Enter Correct OTP", Toast.LENGTH_LONG).show();
+
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d(TAG, "onFailure: " + t.getMessage());
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.please_try_after_sometime), Toast.LENGTH_LONG).show();
+
+ }
+ });
+
+ }
+
+
+ public void onResendOTPClicked(View view) {
+
+ showTimer();
+
+ User user = gson.fromJson(localStorage.getUserLogin(), User.class);
+ Call call = RestClient.getRestService(getApplicationContext()).resendOTP(user);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ UserResponse userResponse = response.body();
+ if (userResponse != null) {
+ if (response.code() == 200) {
+ Toast.makeText(getApplicationContext(), "Otp sent to your mobile number", Toast.LENGTH_LONG).show();
+ }
+
+ } else {
+ Toast.makeText(getApplicationContext(), "Please Enter Correct OTP", Toast.LENGTH_LONG).show();
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d(TAG, "onFailure: " + t.getMessage());
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.please_try_after_sometime), Toast.LENGTH_LONG).show();
+ }
+ });
+ }
+
+ private void showTimer() {
+ otp_timer.setVisibility(View.VISIBLE);
+ resend_otp.setVisibility(View.GONE);
+ cTimer = new CountDownTimer(30000,1000) {
+ @Override
+ public void onTick(long millisUntilFinished) {
+ if(counter>0){
+ otp_timer.setText("Please Wait : "+counter);
+ counter--;
+ }
+
+ }
+ @Override
+ public void onFinish() {
+ resend_otp.setVisibility(View.VISIBLE);
+ otp_timer.setVisibility(View.GONE);
+
+ }
+ }.start();
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductActivity.java
index f2722c8..9a54be4 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductActivity.java
@@ -15,6 +15,7 @@
import android.widget.RelativeLayout;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -23,11 +24,15 @@
import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.adapter.PopularProductAdapter;
import com.quintus.labs.grocerystore.adapter.ProductAdapter;
import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.helper.Converter;
import com.quintus.labs.grocerystore.helper.Data;
+import com.quintus.labs.grocerystore.model.CartDetails;
import com.quintus.labs.grocerystore.model.Category;
+import com.quintus.labs.grocerystore.model.PopularProducts;
+import com.quintus.labs.grocerystore.model.PopularProductsResult;
import com.quintus.labs.grocerystore.model.Product;
import com.quintus.labs.grocerystore.model.ProductResult;
import com.quintus.labs.grocerystore.model.Token;
@@ -56,12 +61,18 @@ public class ProductActivity extends BaseActivity {
LocalStorage localStorage;
Gson gson = new Gson();
User user;
- Token token;
+ String token;
String categoryName;
Category category;
- List productList = new ArrayList<>();
ProductAdapter mAdapter;
private RecyclerView recyclerView;
+ Integer id;
+ int page=1;
+ int page_size=10;
+ boolean isLoading = true;
+
+ List productList = new ArrayList<>();
+
@SuppressLint("ResourceAsColor")
@Override
@@ -80,11 +91,11 @@ protected void onCreate(Bundle savedInstanceState) {
localStorage = new LocalStorage(getApplicationContext());
user = gson.fromJson(localStorage.getUserLogin(), User.class);
- token = new Token(user.getToken());
+ token = localStorage.getApiKey();
+ getCartDetails();
Intent intent = getIntent();
- categoryName = intent.getStringExtra("category");
- category = new Category(categoryName, user.getToken());
+ id= intent.getIntExtra("id",0);
cart_count = cartCount();
recyclerView = findViewById(R.id.product_rv);
@@ -95,21 +106,33 @@ protected void onCreate(Bundle savedInstanceState) {
}
+
+
+
private void getCategoryProduct() {
+
showProgressDialog();
- Call call = RestClient.getRestService(getApplicationContext()).getCategoryProduct(category);
- call.enqueue(new Callback() {
+ Call call = RestClient.getRestService(getApplicationContext()).allProducts(id,page,page_size);
+ call.enqueue(new Callback() {
@Override
- public void onResponse(Call call, Response response) {
+ public void onResponse(Call call, Response response) {
Log.d("Response :=>", response.body() + "");
if (response != null) {
- ProductResult productResult = response.body();
- if (productResult.getCode() == 200) {
+ PopularProducts productResult = response.body();
+ if (response.code() == 200) {
- productList = productResult.getProductList();
+ productList = productResult.getResults();
setUpRecyclerView();
+ if (page < productResult.getTotalPages()) {
+ isLoading = true;
+ } else {
+ isLoading = false;
+ }
+
+ initScrollListener();
+
}
}
@@ -118,15 +141,18 @@ public void onResponse(Call call, Response respons
}
@Override
- public void onFailure(Call call, Throwable t) {
- Log.d("Error", t.getMessage());
+ public void onFailure(Call call, Throwable t) {
hideProgressDialog();
-
}
});
+
}
+
+
+
+
private void hideProgressDialog() {
progress.setVisibility(View.GONE);
}
@@ -161,7 +187,7 @@ private void changeActionBarTitle(ActionBar actionBar) {
private void setUpRecyclerView() {
- mAdapter = new ProductAdapter(productList, ProductActivity.this, Tag);
+ mAdapter = new ProductAdapter(productList, ProductActivity.this,Tag);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
@@ -171,7 +197,7 @@ private void setUpRecyclerView() {
private void setUpGridRecyclerView() {
- mAdapter = new ProductAdapter(productList, ProductActivity.this, Tag);
+ mAdapter = new ProductAdapter(productList, ProductActivity.this,Tag);
RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getApplicationContext(), 2);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
@@ -223,16 +249,118 @@ public boolean onCreateOptionsMenu(Menu menu) {
@Override
public void onAddProduct() {
- cart_count++;
- invalidateOptionsMenu();
+ getCartDetails();
}
@Override
public void onRemoveProduct() {
- cart_count--;
- invalidateOptionsMenu();
+ getCartDetails();
}
+ private void initScrollListener() {
+ recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ }
+
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+ super.onScrolled(recyclerView, dx, dy);
+
+ LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+
+ if (isLoading) {
+ if (linearLayoutManager != null && linearLayoutManager.findLastCompletelyVisibleItemPosition() == productList.size() - 1) {
+ //bottom of list!
+ loadMore();
+
+ }
+ }
+ }
+ });
+
+ }
+
+ private void loadMore() {
+ page = page + 1;
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).allProducts(id,page, page_size);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ PopularProducts productResult = response.body();
+ if (response.code() == 200) {
+
+ productList.addAll( productResult.getResults());
+ mAdapter.notifyDataSetChanged();
+
+ if (page < productResult.getTotalPages()) {
+ isLoading = true;
+ } else {
+ isLoading = false;
+ }
+
+ initScrollListener();
+
+ }
+
+ }
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error", t.getMessage());
+ hideProgressDialog();
+
+ }
+ });
+
+
+ }
+
+
+
+ private void getCartDetails() {
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).getCartList(token);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ CartDetails cartDetails = response.body();
+ if (response.code() == 200) {
+ assert cartDetails != null;
+ cart_count=cartDetails.getTotalItems();
+ invalidateOptionsMenu();
+ }
+
+ }
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+ }
+
+
+
+
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductViewActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductViewActivity.java
index 0d050ae..926d12a 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductViewActivity.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/ProductViewActivity.java
@@ -17,19 +17,32 @@
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.helper.Converter;
+import com.quintus.labs.grocerystore.interfaces.AddorRemoveCallbacks;
+import com.quintus.labs.grocerystore.model.AddToCart;
import com.quintus.labs.grocerystore.model.Cart;
+import com.quintus.labs.grocerystore.model.CartDetails;
+import com.quintus.labs.grocerystore.model.ProductDetail;
+import com.quintus.labs.grocerystore.model.ProductDetails;
+import com.quintus.labs.grocerystore.model.Token;
+import com.quintus.labs.grocerystore.model.User;
import com.quintus.labs.grocerystore.util.Utils;
+import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Response;
+
/**
* Grocery App
* https://github.com/quintuslabs/GroceryStore
@@ -39,31 +52,36 @@
public class ProductViewActivity extends BaseActivity {
private static int cart_count = 0;
public TextView quantity, inc, dec;
- String _id, _title, _image, _description, _price, _currency, _discount, _attribute;
+ String _id, _title, _image, _description, _price, _currency, _discount, _attribute, _quantity;
TextView id, title, description, price, org_price, currency, discount, attribute;
ImageView imageView;
ProgressBar progressBar;
LinearLayout addToCart, share;
RelativeLayout quantityLL;
- List cartList = new ArrayList<>();
+ List cartList = new ArrayList<>();
int cartId;
Cart cart;
+ ProductDetails productDetails;
+ String token;
+ User user;
+ View changeProgressBar;
+ private ArrayList productDetail = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_product_view);
+ changeProgressBar = findViewById(R.id.progress_bar);
Intent intent = getIntent();
_id = intent.getStringExtra("id");
- _title = intent.getStringExtra("title");
- _image = intent.getStringExtra("image");
- _description = intent.getStringExtra("description");
- _price = intent.getStringExtra("price");
- _currency = intent.getStringExtra("currency");
- _discount = intent.getStringExtra("discount");
- _attribute = intent.getStringExtra("attribute");
+ localStorage = new LocalStorage(getApplicationContext());
+ user = gson.fromJson(localStorage.getUserLogin(), User.class);
+ token = localStorage.getApiKey();
+
+ getProductDetails();
+ getCartDetails();
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));
changeActionBarTitle(getSupportActionBar());
@@ -73,14 +91,12 @@ protected void onCreate(Bundle savedInstanceState) {
//upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
- cart_count = cartCount();
title = findViewById(R.id.apv_title);
- description = findViewById(R.id.apv_description);
+ description = findViewById(R.id.description);
currency = findViewById(R.id.apv_currency);
price = findViewById(R.id.apv_price);
org_price = findViewById(R.id.apv_org_price);
- attribute = findViewById(R.id.apv_attribute);
discount = findViewById(R.id.apv_discount);
imageView = findViewById(R.id.apv_image);
progressBar = findViewById(R.id.progressbar);
@@ -91,57 +107,16 @@ protected void onCreate(Bundle savedInstanceState) {
inc = findViewById(R.id.quantity_plus);
dec = findViewById(R.id.quantity_minus);
- cartList = getCartList();
- title.setText(_title);
- description.setText(_description);
- if (_discount != "" && _discount.length() > 0) {
- price.setText(_discount);
- org_price.setText(_price);
- org_price.setPaintFlags(org_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- } else {
- price.setText(_price);
- }
- currency.setText(_currency);
- attribute.setText(_attribute);
- discount.setText(_discount);
- Log.d(TAG, "Discount : " + _discount);
-
-
- if (_price != null && _price.length() != 0 && _price != "" && _discount != null && _discount.length() != 0 && _discount != "") {
- double M = Double.parseDouble(_price);
- double S = Double.parseDouble(_discount);
- double discount_m = M - S;
- int disPercent = (int) Math.round((discount_m / M) * 100);
-
- if (disPercent > 1) {
- discount.setText(disPercent + "% OFF");
- } else {
- discount.setVisibility(View.GONE);
- }
-
- } else {
- discount.setVisibility(View.GONE);
- }
- if (_image != null) {
- Picasso.get().load(Utils.ProductImage + _image).error(R.drawable.no_image).into(imageView, new Callback() {
- @Override
- public void onSuccess() {
- progressBar.setVisibility(View.GONE);
- }
+ cartList = getCartList();
+ quantity.setText("0");
- @Override
- public void onError(Exception e) {
- progressBar.setVisibility(View.GONE);
- }
- });
- }
if (!cartList.isEmpty()) {
for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(_id)) {
+ if (cartList.get(i).getId().equals(Integer.parseInt(_id))) {
addToCart.setVisibility(View.GONE);
quantityLL.setVisibility(View.VISIBLE);
- quantity.setText(cartList.get(i).getQuantity());
+ quantity.setText(String.valueOf(cartList.get(i).getCount()));
cartId = i;
}
@@ -152,8 +127,8 @@ public void onError(Exception e) {
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- String userEntry = _image + "\n" + _title + "\n" + _description + "\n" + _attribute + "-" + _currency + _price + "(" + _discount + ")";
-
+ // String userEntry = productDetails.getImages().get(0).getImage() + "\n" + _title + "\n" + _description + "\n" + _attribute + "-" + _currency + _price + "(" + _discount + ")";
+ String userEntry = productDetails.getImages().get(0).getImage() + "\n" + productDetails.getName() + "\n" + productDetails.getDescription() + "\n" + productDetails.getCurrency().getSymbol() + productDetails.getPrice() + "(" + productDetails.getMrp() + ")";
Intent textShareIntent = new Intent(Intent.ACTION_SEND);
textShareIntent.putExtra(Intent.EXTRA_TEXT, userEntry);
textShareIntent.setType("text/plain");
@@ -162,19 +137,24 @@ public void onClick(View view) {
});
+ if(quantity.getText().toString().equalsIgnoreCase("0")){
+ addToCart.setVisibility(View.VISIBLE);
+ quantityLL.setVisibility(View.GONE);
+ }
addToCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- _price = price.getText().toString();
-
- cart = new Cart(_id, _title, _image, _currency, _price, _attribute, "1", _price);
- cartList.add(cart);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- onAddProduct();
+
addToCart.setVisibility(View.GONE);
quantityLL.setVisibility(View.VISIBLE);
+
+ _quantity = quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ quantity.setText(String.valueOf(qty));
+
+ AddToCart addtoCart = new AddToCart(1, Integer.parseInt(_id), null, true);
+ addingToCart(addtoCart, "plus");
+
}
});
@@ -182,53 +162,80 @@ public void onClick(View view) {
inc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- _price = price.getText().toString();
-
-
- // int total_item = Integer.parseInt(cartList.get(cartId).getQuantity());
- int total_item = Integer.parseInt(quantity.getText().toString());
- total_item++;
- Log.d("totalItem", total_item + "");
- quantity.setText(total_item + "");
- String subTotal = String.valueOf(Double.parseDouble(_price) * total_item);
- cartList.get(cartId).setQuantity(quantity.getText().toString());
- cartList.get(cartId).setSubTotal(subTotal);
- cartList.get(cartId).setAttribute(attribute.getText().toString());
- cartList.get(cartId).setPrice(_price);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
+ _quantity = quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ quantity.setText(String.valueOf(qty));
+
+ AddToCart addtoCart = new AddToCart(1, Integer.parseInt(_id), null, true);
+ addingToCart(addtoCart, "plus");
+
+
+
}
});
dec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- _price = price.getText().toString();
-
- //int total_item = Integer.parseInt(quantity.getText().toString());
- int total_item = Integer.parseInt(quantity.getText().toString());
- if (total_item != 1) {
- total_item--;
- quantity.setText(total_item + "");
- Log.d("totalItem", total_item + "");
- String subTotal = String.valueOf(Double.parseDouble(_price) * total_item);
-
-
- cartList.get(cartId).setQuantity(quantity.getText().toString());
- cartList.get(cartId).setSubTotal(subTotal);
- cartList.get(cartId).setAttribute(attribute.getText().toString());
- cartList.get(cartId).setPrice(_price);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
+ _quantity = quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) - 1;
+ quantity.setText(String.valueOf(qty));
+
+ if(quantity.getText().toString().equalsIgnoreCase("0")){
+ addToCart.setVisibility(View.VISIBLE);
+ quantityLL.setVisibility(View.GONE);
}
+
+ AddToCart addtoCart = new AddToCart(1, Integer.parseInt(_id), null, false);
+ addingToCart(addtoCart, "minus");
+
+
+
}
});
}
+ private void getProductDetails() {
+
+ Call call = RestClient.getRestService(getApplicationContext()).productDetails(_id);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.code() == 200) {
+ productDetails = response.body();
+ title.setText(productDetails.getName());
+ description.setText(productDetails.getDescription());
+ org_price.setText(productDetails.getMrp());
+ org_price.setPaintFlags(org_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
+ price.setText(productDetails.getPrice());
+ currency.setText(productDetails.getCurrency().getSymbol());
+
+
+ if (productDetails.getImages().get(0).getImage() != null) {
+ Picasso.get().load(productDetails.getImages().get(0).getImage()).error(R.drawable.no_image).into(imageView, new Callback() {
+ @Override
+ public void onSuccess() {
+ progressBar.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onError(Exception e) {
+ progressBar.setVisibility(View.GONE);
+ }
+ });
+ }
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d(TAG, "onFailure: " + t.getMessage());
+ }
+ });
+ }
+
private void changeActionBarTitle(ActionBar actionBar) {
// Create a LayoutParams for TextView
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
@@ -282,18 +289,133 @@ public boolean onCreateOptionsMenu(Menu menu) {
}
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
+
+
+ private void addingToCart(AddToCart addtoCart, final String plus) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+
+ if (plus.equalsIgnoreCase("plus")) {
+ onAddProduct();
+ Toast.makeText(getApplicationContext(), "Successfully added", Toast.LENGTH_SHORT).show();
+
+ } else {
+ onRemoveProduct();
+ Toast.makeText(getApplicationContext(), "Successfully removed", Toast.LENGTH_SHORT).show();
+
+ }
+
+
+ } else {
+ Toast.makeText(getApplicationContext(), "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(getApplicationContext(), "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
+
@Override
public void onAddProduct() {
- cart_count++;
- invalidateOptionsMenu();
+ super.onAddProduct();
+ getCartDetails();
}
@Override
public void onRemoveProduct() {
- cart_count--;
- invalidateOptionsMenu();
+ super.onRemoveProduct();
+ getCartDetails();
+ }
+
+ private void getCartDetails() {
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(getApplicationContext()).getCartList(token);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ CartDetails cartDetails = response.body();
+ if (response.code() == 200) {
+ cart_count = cartDetails.getTotalItems();
+
+ productDetail.clear();
+ if(cartDetails.getProductDetails().size()>0) {
+ for (int i = 0; i < cartDetails.getProductDetails().size(); i++) {
+
+ int id = cartDetails.getProductDetails().get(i).getProduct().getId();
+ int count = cartDetails.getProductDetails().get(i).getCount();
+ ProductDetail productDetails = new ProductDetail(id, count);
+ productDetail.add(productDetails);
+ }
+ String cartStr = gson.toJson(productDetail);
+ Log.d("CART", cartStr);
+ localStorage.setCart(cartStr);
+ }else{
+ productDetail.clear();
+ localStorage.deleteCart();
+ }
+
+
+ invalidateOptionsMenu();
+ }
+
+ }
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+ }
+
+ @Override
+ public void onBackPressed(){
+ startActivity(new Intent(getApplicationContext(), MainActivity.class));
+ overridePendingTransition(R.anim.slide_from_right, R.anim.slide_to_left);
+ finish();
}
+
}
+
+
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/SplashScreen.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/SplashScreen.java
index 81f11f8..36844f8 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/activity/SplashScreen.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/SplashScreen.java
@@ -6,10 +6,18 @@
import android.os.Bundle;
import android.os.Handler;
+import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.User;
+import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
public class SplashScreen extends AppCompatActivity {
+ LocalStorage localStorage;
+ Gson gson = new Gson();
+ String userjson;
+ User user;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -20,12 +28,26 @@ protected void onCreate(Bundle savedInstanceState) {
@Override
public void run() {
// This method will be executed once the timer is over
-
-
+ localStorage = new LocalStorage(getApplicationContext());
+ if (localStorage.isUserLoggedIn()) {
+ userjson = localStorage.getUserLogin();
+ user = gson.fromJson(userjson, User.class);
+ if (user.isPhone_verified()) {
+ startActivity(new Intent(getApplicationContext(), MainActivity.class));
+ finish();
+ } else {
+ startActivity(new Intent(getApplicationContext(), LoginRegisterActivity.class));
+ finish();
+ }
+ } else {
Intent i = new Intent(getApplicationContext(), WelcomeActivity.class);
startActivity(i);
finish();
overridePendingTransition(R.anim.slide_from_right, R.anim.slide_to_left);
+ }
+
+
+
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/activity/SubCategoryActivity.java b/app/src/main/java/com/quintus/labs/grocerystore/activity/SubCategoryActivity.java
new file mode 100644
index 0000000..e2b9606
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/activity/SubCategoryActivity.java
@@ -0,0 +1,133 @@
+package com.quintus.labs.grocerystore.activity;
+
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.cardview.widget.CardView;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.adapter.CategoryAdapter;
+import com.quintus.labs.grocerystore.adapter.SubCategoryAdapter;
+import com.quintus.labs.grocerystore.model.Banners;
+import com.quintus.labs.grocerystore.model.SubCategory;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SubCategoryActivity extends AppCompatActivity {
+ List subCategoryList = new ArrayList<>();
+ private RecyclerView recyclerView;
+ private SubCategoryAdapter mAdapter;
+ View progress;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_sub_category);
+ recyclerView = findViewById(R.id.subCategory_rv);
+ progress = findViewById(R.id.progress_bar);
+
+ getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));
+ changeActionBarTitle(getSupportActionBar());
+ getSupportActionBar().setDisplayShowHomeEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ final Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_black_24dp);
+ //upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP);
+ getSupportActionBar().setHomeAsUpIndicator(upArrow);
+
+
+ Intent intent = getIntent();
+ subCategoryList = (List) intent.getSerializableExtra("category");
+
+ getData();
+
+
+ }
+
+ private void changeActionBarTitle(ActionBar actionBar) {
+ // Create a LayoutParams for TextView
+ RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT, // Width of TextView
+ RelativeLayout.LayoutParams.WRAP_CONTENT); // Height of TextView
+ TextView tv = new TextView(getApplicationContext());
+ // Apply the layout parameters to TextView widget
+ tv.setLayoutParams(lp);
+ tv.setGravity(Gravity.CENTER);
+ tv.setTypeface(null, Typeface.BOLD);
+ // Set text to display in TextView
+ tv.setText("SubCategory"); // ActionBar title text
+ tv.setTextSize(20);
+
+ // Set the text color of TextView to red
+ // This line change the ActionBar title text color
+ tv.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
+
+ // Set the ActionBar display option
+ actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+ // Finally, set the newly created TextView as ActionBar custom view
+ actionBar.setCustomView(tv);
+ }
+
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ // todo: goto back activity from here
+
+ onBackPressed();
+ return true;
+
+ case R.id.cart_action:
+ startActivity(new Intent(getApplicationContext(), CartActivity.class));
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+
+ private void getData() {
+ if (subCategoryList.size() > 0) {
+ setupSubCategoryRecycleView();
+ }
+ }
+
+ private void setupSubCategoryRecycleView() {
+ mAdapter = new SubCategoryAdapter(subCategoryList, getApplicationContext());
+ RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false);
+ recyclerView.setLayoutManager(mLayoutManager);
+ recyclerView.setItemAnimator(new DefaultItemAnimator());
+ recyclerView.setAdapter(mAdapter);
+ }
+
+ private void hideProgressDialog() {
+ progress.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ progress.setVisibility(View.VISIBLE);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/AddressListAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/AddressListAdapter.java
new file mode 100644
index 0000000..e67a55c
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/AddressListAdapter.java
@@ -0,0 +1,73 @@
+package com.quintus.labs.grocerystore.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.User;
+
+import java.util.List;
+
+public class AddressListAdapter extends RecyclerView.Adapter {
+ private Context mContext;
+ private List addressList;
+ private String address_status;
+
+ @Override
+ public void onBindViewHolder(final AddressListAdapter.MyViewHolder holder, int position) {
+ holder.address_name_display.setText(addressList.get(position).getName());
+ holder.address_phone_display.setText(addressList.get(position).getPhone());
+ holder.address_email_display.setText(addressList.get(position).getEmail());
+ holder.address_display.setText(addressList.get(position).getAddress());
+ holder.address_country_display.setText(addressList.get(position).getCountry());
+ holder.address_state_display.setText(addressList.get(position).getState());
+ holder.address_city_display.setText(addressList.get(position).getCity());
+ holder.address_pincode_display.setText(addressList.get(position).getZip());
+ holder.address_type_display.setText(addressList.get(position).getAddress_type());
+ }
+
+
+ public AddressListAdapter(Context mContext, List addressList, String address_status) {
+ this.mContext = mContext;
+ this.addressList = addressList;
+ this.address_status= address_status;
+ }
+
+ @Override
+ public AddressListAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.address_list_items, parent, false);
+
+ return new AddressListAdapter.MyViewHolder(itemView);
+ }
+
+ public static class MyViewHolder extends RecyclerView.ViewHolder {
+ TextView address_name_display,address_phone_display,address_email_display,address_display,address_country_display,address_state_display,address_city_display,address_pincode_display,address_type_display;
+
+
+
+ public MyViewHolder(View view) {
+ super(view);
+ address_name_display = view.findViewById(R.id.address_name_display);
+ address_phone_display = view.findViewById(R.id.address_phone_display);
+ address_email_display = view.findViewById(R.id.address_email_display);
+ address_display = view.findViewById(R.id.address_display);
+ address_country_display = view.findViewById(R.id.address_country_display);
+ address_state_display = view.findViewById(R.id.address_state_display);
+ address_city_display = view.findViewById(R.id.address_city_display);
+ address_pincode_display = view.findViewById(R.id.address_pincode_display);
+ address_type_display = view.findViewById(R.id.address_type_display);
+
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return addressList.size();
+ }
+}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/AdvertisementBannerAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/AdvertisementBannerAdapter.java
new file mode 100644
index 0000000..e86d625
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/AdvertisementBannerAdapter.java
@@ -0,0 +1,100 @@
+package com.quintus.labs.grocerystore.adapter;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.cardview.widget.CardView;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.AdvertisementBannerResult;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+
+import java.util.List;
+
+
+
+/**
+ * Grocery App
+ * https://github.com/quintuslabs/GroceryStore
+ * Created on 18-Feb-2019.
+ * Created by : Santosh Kumar Dash:- http://santoshdash.epizy.com
+ */
+public class AdvertisementBannerAdapter extends RecyclerView.Adapter {
+
+ List advertisementBannerList;
+ Context context;
+ String Tag;
+
+
+ public AdvertisementBannerAdapter(List advertisementBannerList, Context context, String tag) {
+ this.advertisementBannerList = advertisementBannerList;
+ this.context = context;
+ Tag = tag;
+ }
+
+ @NonNull
+ @Override
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
+ View itemView;
+
+ itemView = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.row_adv_banner, parent, false);
+
+
+
+ return new MyViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
+
+ final AdvertisementBannerResult result = advertisementBannerList.get(position);
+
+
+ Picasso.get()
+ .load( result.getImage())
+ .into(holder.imageView, new Callback() {
+ @Override
+ public void onSuccess() {
+
+ }
+
+ @Override
+ public void onError(Exception e) {
+ Log.d("Error : ", e.getMessage());
+ }
+ });
+
+
+
+
+
+ }
+
+ @Override
+ public int getItemCount() {
+
+ return advertisementBannerList.size();
+
+
+ }
+
+ public class MyViewHolder extends RecyclerView.ViewHolder {
+ ImageView imageView;
+
+ public MyViewHolder(@NonNull View itemView) {
+ super(itemView);
+ imageView = itemView.findViewById(R.id.image);
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CartAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CartAdapter.java
index 2e75f29..2fed906 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CartAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CartAdapter.java
@@ -9,6 +9,7 @@
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
@@ -17,7 +18,12 @@
import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.activity.CartActivity;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
+import com.quintus.labs.grocerystore.model.AddToCart;
import com.quintus.labs.grocerystore.model.Cart;
+import com.quintus.labs.grocerystore.model.Product;
+import com.quintus.labs.grocerystore.model.ProductDetail;
+import com.quintus.labs.grocerystore.model.Products;
import com.quintus.labs.grocerystore.util.Utils;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import com.squareup.picasso.Callback;
@@ -25,6 +31,9 @@
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Response;
+
/**
* Grocery App
* https://github.com/quintuslabs/GroceryStore
@@ -33,14 +42,17 @@
*/
public class CartAdapter extends RecyclerView.Adapter {
- List cartList;
+ List cartList;
Context context;
int pQuantity = 1;
String _subtotal, _price, _quantity;
LocalStorage localStorage;
Gson gson;
+ View changeProgressBar;
+ String token;
+ TextView quantity;
- public CartAdapter(List cartList, Context context) {
+ public CartAdapter(List cartList, Context context) {
this.cartList = cartList;
this.context = context;
}
@@ -61,22 +73,23 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
- final Cart cart = cartList.get(position);
+ final ProductDetail cart = cartList.get(position);
localStorage = new LocalStorage(context);
gson = new Gson();
- holder.title.setText(cart.getTitle());
- holder.attribute.setText(cart.getAttribute());
- _price = cart.getPrice();
- _quantity = cart.getQuantity();
+ token = localStorage.getApiKey();
+ holder.title.setText(cart.getProduct().getName());
+ // holder.attribute.setText(cart.getAttribute());
+ _price = cart.getProduct().getPrice();
+ _quantity = String.valueOf(cart.getCount());
- holder.quantity.setText(_quantity);
+ quantity.setText(_quantity);
holder.price.setText(_price);
- holder.currency.setText(cart.getCurrency());
+ holder.currency.setText(cart.getProduct().getCurrency().getSymbol());
_subtotal = String.valueOf(Double.parseDouble(_price) * Integer.parseInt(_quantity));
holder.subTotal.setText(_subtotal);
- Log.d("Cart Image==>", cart.getImage());
+ Log.d("Cart Image==>", cart.getProduct().getImages().get(0).getImage());
Picasso.get()
- .load(Utils.ProductImage + cart.getImage())
+ .load( cart.getProduct().getImages().get(0).getImage())
.into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
@@ -93,27 +106,14 @@ public void onError(Exception e) {
@Override
public void onClick(View v) {
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
+ pQuantity = Integer.parseInt(quantity.getText().toString());
if (pQuantity >= 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item++;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
-
- if (cartList.get(i).getId().equalsIgnoreCase(cart.getId())) {
-
- // Log.d("totalItem", total_item + "");
-
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
- }
- }
+ int prouct_id = cart.getProduct().getId();
+ String price=cart.getProduct().getPrice();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, true);
+ addingToCart(addtoCart, "plus",price,position);
+
+
}
@@ -123,44 +123,28 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
- if (pQuantity != 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item--;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(cart.getId())) {
-
- //holder.quantity.setText(total_item + "");
- //Log.d("totalItem", total_item + "");
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
+ pQuantity = Integer.parseInt(quantity.getText().toString());
+
+
+ int prouct_id = cart.getProduct().getId();
+ String price=cart.getProduct().getPrice();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, false);
+ addingToCart(addtoCart, "minus",price,position);
+
+
- }
- }
}
- }
+
});
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ int prouct_id = cart.getProduct().getId();
+ Products products= new Products(prouct_id);
+ removeWholeProductFromCart(products);
- cartList.remove(position);
- notifyItemRemoved(position);
- notifyItemRangeChanged(position, cartList.size());
- Gson gson = new Gson();
- String cartStr = gson.toJson(cartList);
- Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
}
@@ -180,7 +164,7 @@ public class MyViewHolder extends RecyclerView.ViewHolder {
TextView title;
ProgressBar progressBar;
CardView cardView;
- TextView offer, currency, price, quantity, attribute, addToCart, subTotal;
+ TextView offer, currency, price, attribute, addToCart, subTotal;
Button plus, minus, delete;
public MyViewHolder(@NonNull View itemView) {
@@ -197,6 +181,167 @@ public MyViewHolder(@NonNull View itemView) {
delete = itemView.findViewById(R.id.cart_delete);
subTotal = itemView.findViewById(R.id.sub_total);
price = itemView.findViewById(R.id.product_price);
+ changeProgressBar = itemView.findViewById(R.id.progress_bar);
}
}
+
+ private void removefromCart(AddToCart addtoCart, final int position) {
+ showProgressDialog();
+
+ Call call = RestClient.getRestService(context).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+
+ cartList.remove(position);
+ notifyItemRemoved(position);
+ notifyItemRangeChanged(position, cartList.size());
+ Gson gson = new Gson();
+ String cartStr = gson.toJson(cartList);
+ Log.d("CART", cartStr);
+ localStorage.setCart(cartStr);
+ ((CartActivity) context).updateTotalPrice();
+
+
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+ }
+
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
+
+
+ private void addingToCart(AddToCart addtoCart, final String plus,final String price,final int position) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+ if (plus.equalsIgnoreCase("plus")) {
+ Toast.makeText(context, "Successfully added", Toast.LENGTH_SHORT).show();
+ int total_item = Integer.parseInt(quantity.getText().toString());
+ total_item++;
+ quantity.setText(total_item + "");
+ _subtotal = String.valueOf(Double.parseDouble(price) * total_item);
+ notifyDataSetChanged();
+ } else {
+ Toast.makeText(context, "Successfully removed", Toast.LENGTH_SHORT).show();
+ int total_item = Integer.parseInt(quantity.getText().toString());
+ total_item--;
+ quantity.setText(total_item + "");
+ _subtotal = String.valueOf(Double.parseDouble(price) * total_item);
+ notifyDataSetChanged();
+ }
+
+
+ ((CartActivity) context).updateTotalPrice();
+
+
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_LONG).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_LONG).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
+
+
+
+
+
+ private void removeWholeProductFromCart(Products products) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).removeFromCart(token, products);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ if (response != null) {
+
+ if (response.code() == 204) {
+ Toast.makeText(context, " Successfully Removed From Cart.", Toast.LENGTH_SHORT).show();
+ ((CartActivity) context).updateTotalPrice();
+
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
}
+
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CategoryAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CategoryAdapter.java
index fe08bf5..7ca4d01 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CategoryAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CategoryAdapter.java
@@ -2,6 +2,7 @@
import android.content.Context;
import android.content.Intent;
+import android.os.Parcelable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,11 +17,15 @@
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.activity.ProductActivity;
+import com.quintus.labs.grocerystore.activity.SubCategoryActivity;
import com.quintus.labs.grocerystore.model.Category;
+import com.quintus.labs.grocerystore.model.SubCategory;
import com.quintus.labs.grocerystore.util.Utils;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
+import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -32,13 +37,11 @@
public class CategoryAdapter extends RecyclerView.Adapter {
List categoryList;
+ List subCategoryList= new ArrayList<>();
Context context;
String Tag;
- public CategoryAdapter(List categoryList, Context context) {
- this.categoryList = categoryList;
- this.context = context;
- }
+
public CategoryAdapter(List categoryList, Context context, String tag) {
this.categoryList = categoryList;
@@ -66,11 +69,10 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
final Category category = categoryList.get(position);
- holder.title.setText(category.getCategry());
- Log.d("Category Image ==>", category.getCateimg());
- if (Tag.equalsIgnoreCase("Category")) {
+ holder.title.setText(category.getName());
+
Picasso.get()
- .load(Utils.CategoryImage + category.getCateimg())
+ .load( category.getImage())
.into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
@@ -82,39 +84,26 @@ public void onError(Exception e) {
Log.d("Error : ", e.getMessage());
}
});
- }
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent intent = new Intent(context, ProductActivity.class);
- intent.putExtra("category", category.getCategry());
+ subCategoryList= category.getSubCategory();
+ Intent intent = new Intent(context, SubCategoryActivity.class);
+ intent.putExtra("category",(Serializable) subCategoryList);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
}
});
- holder.title.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent intent = new Intent(context, ProductActivity.class);
- intent.putExtra("category", category.getCategry());
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- context.startActivity(intent);
- }
- });
}
@Override
public int getItemCount() {
- if (Tag.equalsIgnoreCase("Home") && categoryList.size() < 6 && categoryList.size() > 3) {
- return 3;
- } else if (Tag.equalsIgnoreCase("Home") && categoryList.size() >= 6) {
- return 6;
- } else {
+
return categoryList.size();
- }
+
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CheckoutCartAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CheckoutCartAdapter.java
index ff143c4..c2f4a15 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CheckoutCartAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CheckoutCartAdapter.java
@@ -91,82 +91,7 @@ public void onError(Exception e) {
}
});
- /* holder.plus.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
-
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
- if (pQuantity >= 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item++;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
-
- if (cartList.get(i).getId().equalsIgnoreCase(cart.getId())) {
-
- // Log.d("totalItem", total_item + "");
-
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
- }
- }
- }
-
-
- }
- });
- holder.minus.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
-
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
- if (pQuantity != 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item--;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(cart.getId())) {
-
- //holder.quantity.setText(total_item + "");
- //Log.d("totalItem", total_item + "");
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
-
- }
- }
-
- }
- }
- });
-
- holder.delete.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
-
- cartList.remove(position);
- notifyItemRemoved(position);
- notifyItemRangeChanged(position, cartList.size());
- Gson gson = new Gson();
- String cartStr = gson.toJson(cartList);
- Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((CartActivity) context).updateTotalPrice();
-
- }
- });*/
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/CountryAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CountryAdapter.java
new file mode 100644
index 0000000..f6cb711
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/CountryAdapter.java
@@ -0,0 +1,84 @@
+package com.quintus.labs.grocerystore.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.Country;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class CountryAdapter extends BaseAdapter {
+
+ Context context;
+ List countryList;
+ ArrayList arrayList=new ArrayList();
+ private static LayoutInflater inflater=null;
+
+ public CountryAdapter(Context context, List countryList) {
+ this.context = context;
+ this.countryList = countryList;
+ inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ this.arrayList.addAll(countryList);
+ }
+
+ @Override
+ public int getCount() {
+ return countryList.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return position;
+
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ View listItemView = convertView;
+ if(listItemView == null) {
+ listItemView = inflater.inflate(R.layout.country_list_item, null);
+ }
+
+ Country country = countryList.get(position);
+ TextView country_name = (TextView) listItemView.findViewById(R.id.country_name);
+ country_name.setText(country.getCountry());
+
+
+
+ return listItemView;
+ }
+
+
+ //filter
+ public void filter(String charText){
+ charText = charText.toLowerCase(Locale.getDefault());
+ countryList.clear();
+ if (charText.length()==0){
+ countryList.addAll(arrayList);
+ }
+ else {
+ for (Country country : arrayList){
+ if (country.getCountry().toLowerCase(Locale.getDefault())
+ .contains(charText)){
+ countryList.add(country);
+ }
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/HomeSliderAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/HomeSliderAdapter.java
index 23c48b6..c7c6d04 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/HomeSliderAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/HomeSliderAdapter.java
@@ -1,15 +1,22 @@
package com.quintus.labs.grocerystore.adapter;
import android.content.Context;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
+import android.widget.ProgressBar;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.Banners;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+
+import java.util.List;
/**
* Grocery App
@@ -21,20 +28,20 @@ public class HomeSliderAdapter extends PagerAdapter {
private Context context;
private LayoutInflater layoutInflater;
- private Integer[] images;
- public HomeSliderAdapter(Context context) {
- this.context = context;
- }
+ private List bannersList;
+
+
- public HomeSliderAdapter(Context context, Integer[] images) {
+ public HomeSliderAdapter( Context context,List bannersList) {
this.context = context;
- this.images = images;
+ this.bannersList = bannersList;
}
+
@Override
public int getCount() {
- return images.length;
+ return bannersList.size();
}
@Override
@@ -48,7 +55,21 @@ public Object instantiateItem(ViewGroup container, final int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.item_home_slider, null);
ImageView imageView = view.findViewById(R.id.imageView);
- imageView.setImageResource(images[position]);
+ final ProgressBar progressBar = view.findViewById(R.id.progressbar);
+
+
+ Banners utils = bannersList.get(position);
+ Picasso.get().load(utils.getImage()).error(R.drawable.no_image).into(imageView, new Callback() {
+ @Override
+ public void onSuccess() {
+ progressBar.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onError(Exception e) {
+ Log.d("Error : ", e.getMessage());
+ }
+ });
ViewPager vp = (ViewPager) container;
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/NewProductAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/NewProductAdapter.java
index bf9dfe8..e20392c 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/NewProductAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/NewProductAdapter.java
@@ -1,5 +1,6 @@
package com.quintus.labs.grocerystore.adapter;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Paint;
@@ -11,6 +12,7 @@
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
@@ -21,9 +23,13 @@
import com.quintus.labs.grocerystore.activity.BaseActivity;
import com.quintus.labs.grocerystore.activity.MainActivity;
import com.quintus.labs.grocerystore.activity.ProductViewActivity;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.interfaces.AddorRemoveCallbacks;
+import com.quintus.labs.grocerystore.model.AddToCart;
import com.quintus.labs.grocerystore.model.Cart;
-import com.quintus.labs.grocerystore.model.Product;
+import com.quintus.labs.grocerystore.model.CartDetails;
+import com.quintus.labs.grocerystore.model.PopularProductsResult;
+import com.quintus.labs.grocerystore.model.ProductDetail;
import com.quintus.labs.grocerystore.util.Utils;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import com.squareup.picasso.Callback;
@@ -32,6 +38,9 @@
import java.util.ArrayList;
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Response;
+
import static com.quintus.labs.grocerystore.activity.BaseActivity.TAG;
/**
@@ -42,21 +51,21 @@
*/
public class NewProductAdapter extends RecyclerView.Adapter {
- List productList;
+ List productList;
Context context;
String Tag;
LocalStorage localStorage;
Gson gson;
- List cartList = new ArrayList<>();
+ List cartList = new ArrayList<>();
+
String _quantity, _price, _attribute, _subtotal;
+ String token;
+ View changeProgressBar;
+
- public NewProductAdapter(List productList, Context context) {
- this.productList = productList;
- this.context = context;
- }
- public NewProductAdapter(List productList, Context context, String tag) {
+ public NewProductAdapter(List productList, Context context, String tag) {
this.productList = productList;
this.context = context;
Tag = tag;
@@ -77,29 +86,30 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
return new MyViewHolder(itemView);
}
+ @SuppressLint("ResourceType")
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
- final Product product = productList.get(position);
+ final PopularProductsResult product = productList.get(position);
localStorage = new LocalStorage(context);
gson = new Gson();
- cartList = ((BaseActivity) context).getCartList();
- holder.quantity.setText("1");
+ cartList = ((BaseActivity) context).getCartList();
+ holder.quantity.setText("0");
+ token=localStorage.getApiKey();
holder.title.setText(product.getName());
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- holder.price.setText(product.getDiscount());
- holder.org_price.setText(product.getPrice());
+ if (Float.parseFloat(product.getPrice()) < Float.parseFloat(product.getMrp())) {
+ holder.price.setText(product.getPrice());
+ holder.org_price.setText(product.getMrp());
holder.org_price.setPaintFlags(holder.org_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
holder.price.setText(product.getPrice());
holder.org_price.setVisibility(View.GONE);
}
- holder.currency.setText(product.getCurrency());
- holder.attribute.setText(product.getAttribute());
- Log.d(TAG, Utils.ProductImage + product.getImage());
- Picasso.get().load(Utils.ProductImage + product.getImage()).error(R.drawable.no_image).into(holder.imageView, new Callback() {
+ holder.currency.setText(product.getCurrency().getSymbol());
+
+ Picasso.get().load(product.getImages().get(0).getImage()).error(R.drawable.no_image).into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
holder.progressBar.setVisibility(View.GONE);
@@ -113,40 +123,33 @@ public void onError(Exception e) {
if (!cartList.isEmpty()) {
for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
+ if (cartList.get(i).getId().equals(product.getId())) {
holder.shopNow.setVisibility(View.GONE);
holder.quantity_ll.setVisibility(View.VISIBLE);
- holder.quantity.setText(cartList.get(i).getQuantity());
-
+ holder.quantity.setText(String.valueOf(cartList.get(i).getCount()));
+ Log.d("Tag : ", cartList.get(i).getId() + "-->" + product.getId());
}
}
}
-
+ if( holder.quantity.getText().toString().equalsIgnoreCase("0")){
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
+ }
holder.shopNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.shopNow.setVisibility(View.GONE);
holder.quantity_ll.setVisibility(View.VISIBLE);
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- _price = product.getDiscount();
- } else {
- _price = product.getPrice();
- }
_quantity = holder.quantity.getText().toString();
- _attribute = product.getAttribute();
- _subtotal = String.valueOf(Double.parseDouble(_price) * Integer.parseInt(_quantity));
-
+ int qty=Integer.parseInt(_quantity)+1;
+ holder.quantity.setText(String.valueOf(qty));
if (context instanceof MainActivity) {
- Cart cart = new Cart(product.getId(), product.getName(), product.getImage(), product.getCurrency(), _price, _attribute, _quantity, _subtotal);
- cartList = ((BaseActivity) context).getCartList();
- cartList.add(cart);
-
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((AddorRemoveCallbacks) context).onAddProduct();
- notifyItemChanged(position);
+
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1,prouct_id,null,true);
+ addingToCart(addtoCart,position,"plus");
+
}
}
});
@@ -155,21 +158,13 @@ public void onClick(View v) {
holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1,prouct_id,null,true);
+ addingToCart(addtoCart,position,"plus");
+ _quantity = holder.quantity.getText().toString();
+ int qty=Integer.parseInt(_quantity)+1;
+ holder.quantity.setText(String.valueOf(qty));
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
- int total_item = Integer.parseInt(cartList.get(i).getQuantity());
- total_item++;
- Log.d("totalItem", total_item + "");
- holder.quantity.setText(total_item + "");
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- }
- }
}
@@ -179,27 +174,16 @@ public void onClick(View v) {
@Override
public void onClick(View v) {
- if (Integer.parseInt(holder.quantity.getText().toString()) != 1) {
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
-
- total_item--;
- holder.quantity.setText(total_item + "");
- Log.d("totalItem", total_item + "");
-
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
-
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
-
- }
- }
-
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1,prouct_id,null,false);
+ addingToCart(addtoCart,position,"minus");
+ _quantity = holder.quantity.getText().toString();
+ int qty=Integer.parseInt(_quantity)-1;
+ if(qty<1){
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
}
+ holder.quantity.setText(String.valueOf(qty));
}
@@ -209,16 +193,7 @@ public void onClick(View v) {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, ProductViewActivity.class);
- intent.putExtra("id", product.getId());
- intent.putExtra("title", product.getName());
- intent.putExtra("image", product.getImage());
- intent.putExtra("price", product.getPrice());
- intent.putExtra("currency", product.getCurrency());
- intent.putExtra("attribute", product.getAttribute());
- intent.putExtra("discount", product.getDiscount());
- intent.putExtra("description", product.getDescription());
-
-
+ intent.putExtra("id", product.getId()+"");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
}
@@ -233,10 +208,7 @@ public int getItemCount() {
}
- @Override
- public int getItemViewType(int position) {
- return position;
- }
+
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
@@ -262,7 +234,58 @@ public MyViewHolder(@NonNull View itemView) {
plus = itemView.findViewById(R.id.quantity_plus);
minus = itemView.findViewById(R.id.quantity_minus);
cardView = itemView.findViewById(R.id.card_view);
-
+ changeProgressBar = itemView.findViewById(R.id.progress_bar);
}
}
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
+
+ private void addingToCart( AddToCart addtoCart,final int position,final String plus) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+ if (plus.equalsIgnoreCase("plus")) {
+ ((AddorRemoveCallbacks) context).onAddProduct();
+ Toast.makeText(context, "Successfully added", Toast.LENGTH_SHORT).show();
+
+ } else {
+ ((AddorRemoveCallbacks) context).onRemoveProduct();
+ Toast.makeText(context, "Successfully removed", Toast.LENGTH_SHORT).show();
+
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OfferAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OfferAdapter.java
index 6ad9773..9ae3d26 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OfferAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OfferAdapter.java
@@ -1,17 +1,22 @@
package com.quintus.labs.grocerystore.adapter;
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import com.quintus.labs.grocerystore.R;
-import com.quintus.labs.grocerystore.model.Offer;
+import com.quintus.labs.grocerystore.model.VoucherList;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
@@ -25,16 +30,13 @@
*/
public class OfferAdapter extends RecyclerView.Adapter {
- List offerList;
+ List offerList;
Context context;
String Tag;
+ Integer[] imageList = { R.drawable.offer_bg_1, R.drawable.offer_bg_2, R.drawable.offer_bg_3, R.drawable.offer_bg_4};
- public OfferAdapter(List offerList, Context context) {
- this.offerList = offerList;
- this.context = context;
- }
- public OfferAdapter(List offerList, Context context, String tag) {
+ public OfferAdapter(List offerList, Context context, String tag) {
this.offerList = offerList;
this.context = context;
Tag = tag;
@@ -55,18 +57,37 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
- Offer offer = offerList.get(position);
- Picasso.get().load(offer.getImage()).error(R.drawable.no_image).into(holder.imageView, new Callback() {
- @Override
- public void onSuccess() {
- holder.progressBar.setVisibility(View.GONE);
+ final VoucherList offer = offerList.get(position);
+
+ if(offer.getVoucherStatus().equalsIgnoreCase("ongoing")) {
+ holder.cardView.setVisibility(View.VISIBLE);
+ }else{
+ holder.cardView.setVisibility(View.GONE);
+ }
+ holder.name.setText(offer.getName());
+ holder.end_date.setText(offer.getEndDate());
+ holder.status.setText(offer.getVoucherStatus());
+ holder.code.setText(offer.getCode());
+ holder.discount_price.setText(offer.getDiscountAmount());
+ holder.minimum_ordre_price.setText(offer.getMinSpent());
+
+ holder.imageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
+ ClipData clip = ClipData.newPlainText("PROMOCODE", offer.getCode());
+ clipboard.setPrimaryClip(clip);
+ Toast.makeText(context, "Code Copied !", Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ if (position >= imageList.length) {
+
+ } else {
+ Picasso.get().load(imageList[position]).into(holder.backgroundImage);
}
- @Override
- public void onError(Exception e) {
- }
- });
}
@Override
@@ -78,14 +99,24 @@ public int getItemCount() {
}
public class MyViewHolder extends RecyclerView.ViewHolder {
- ImageView imageView;
+ TextView name,end_date,status,code,discount_price,minimum_ordre_price;
ProgressBar progressBar;
+ ImageView imageView,backgroundImage;
+ CardView cardView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
- imageView = itemView.findViewById(R.id.offer_image);
+ imageView = itemView.findViewById(R.id.copy);
+ backgroundImage = itemView.findViewById(R.id.offer_image);
+ name = itemView.findViewById(R.id.name);
+ end_date = itemView.findViewById(R.id.end_date);
+ status = itemView.findViewById(R.id.status);
+ code = itemView.findViewById(R.id.code);
+ discount_price = itemView.findViewById(R.id.discount_price);
+ minimum_ordre_price = itemView.findViewById(R.id.minimum_ordre_price);
progressBar = itemView.findViewById(R.id.progressbar);
+ cardView = itemView.findViewById(R.id.card_view);
}
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderAdapter.java
index 832a683..236b782 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderAdapter.java
@@ -1,5 +1,6 @@
package com.quintus.labs.grocerystore.adapter;
+import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.util.Log;
@@ -8,6 +9,7 @@
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -18,10 +20,16 @@
import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.api.clients.RestClient;
-import com.quintus.labs.grocerystore.model.Order;
+import com.quintus.labs.grocerystore.model.AddressDetails;
+import com.quintus.labs.grocerystore.model.DelExecDetails;
+import com.quintus.labs.grocerystore.model.OrderDetails;
+import com.quintus.labs.grocerystore.model.OrderDetailsData;
+import com.quintus.labs.grocerystore.model.OrdersResult;
import com.quintus.labs.grocerystore.model.OrderItem;
import com.quintus.labs.grocerystore.model.OrdersResult;
+import com.quintus.labs.grocerystore.model.ProductsData;
import com.quintus.labs.grocerystore.model.User;
+import com.quintus.labs.grocerystore.model.VoucherList;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import java.util.ArrayList;
@@ -41,19 +49,23 @@
*/
public class OrderAdapter extends RecyclerView.Adapter {
- List orderList;
+ List orderList;
+ OrderDetailsData orderDetails;
+ DelExecDetails delExecDetails;
+ List productsData;
+ AddressDetails addressDetails;
+ OrderItemAdapter orderItemAdapter;
Context context;
- int pQuantity = 1;
- String _subtotal, _price, _quantity;
+ String Tag;
+ RecyclerView recyclerView;
LocalStorage localStorage;
Gson gson;
- User user;
String token;
- List orderItemList = new ArrayList<>();
- OrderItemAdapter orderItemAdapter;
- RecyclerView recyclerView;
+ View changeProgressBar;
+ TextView total,payable,payable_price_dec;
+ LinearLayout ll_total;
- public OrderAdapter(List orderList, Context context) {
+ public OrderAdapter(List orderList, Context context) {
this.orderList = orderList;
this.context = context;
}
@@ -75,54 +87,73 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
+ localStorage = new LocalStorage(context);
+ gson = new Gson();
+ token = localStorage.getApiKey();
- final Order order = orderList.get(position);
- holder.orderId.setText("#" + order.getId());
- holder.date.setText(order.getDate());
- holder.total.setText(order.getTotal());
- holder.status.setText(order.getStatus());
+ final OrdersResult order = orderList.get(position);
+ holder.order_no.setText("#" + order.getOrderNo());
+ holder.order_date.setText(order.getCreatedDate());
+ holder.total_price.setText(order.getTotal());
holder.status.setText(order.getStatus());
+ holder.delivery_date.setText(order.getDeliveryDate());
holder.viewDetails.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- openOrderItemModal(order);
+ openOrderItemModal(order.getId());
}
});
- }
+ }
- private void openOrderItemModal(Order order) {
+ private void openOrderItemModal(int id) {
final Dialog dialog = new Dialog(context, R.style.FullScreenDialogStyle);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.orderdetails_dialog);
- Gson gson = new Gson();
- localStorage = new LocalStorage(context);
- user = gson.fromJson(localStorage.getUserLogin(), User.class);
- token = user.getToken();
- OrderItem orderItem = new OrderItem();
- orderItem.setOrder_id(order.getId());
- orderItem.setToken(token);
+
Button dialogButton = dialog.findViewById(R.id.dialogButtonOK);
recyclerView = dialog.findViewById(R.id.order_list);
-
- Call call = RestClient.getRestService(context).getOrderItems(orderItem);
- call.enqueue(new Callback() {
+ total = dialog.findViewById(R.id.total_price);
+ payable = dialog.findViewById(R.id.payable_price);
+ payable_price_dec = dialog.findViewById(R.id.payable_price_dec);
+ ll_total = dialog.findViewById(R.id.ll_total);
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).getSingleOrderDetails(token,id);
+ call.enqueue(new Callback() {
+ @SuppressLint("SetTextI18n")
@Override
- public void onResponse(Call call, Response response) {
- orderItemList = response.body().getOrderItemList();
- orderItemAdapter = new OrderItemAdapter(orderItemList, context);
+ public void onResponse(Call call, Response response) {
+ orderDetails = response.body().getOrderDetails();
+ delExecDetails=response.body().getDelExecDetails();
+ productsData=response.body().getProducts();
+ addressDetails=response.body().getAddressDetails();
+ total.setText(orderDetails.getPaymentMode());
+ if(orderDetails.getPaymentMode().equalsIgnoreCase("online")){
+ payable_price_dec.setText("Total Price Paid : ");
+ }else{
+ payable_price_dec.setText("Total Payable Price : ");
+ }
+ if(orderDetails.getPaymentStatus().equalsIgnoreCase("failure")){
+ ll_total.setVisibility(View.GONE);
+ }
+ payable.setText(productsData.get(0).getProduct().getCurrency().getSymbol()+" "+ orderDetails.getPayableAmount());
+ orderItemAdapter = new OrderItemAdapter(orderDetails,delExecDetails,productsData,addressDetails, context);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(context);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(orderItemAdapter);
+ hideProgressDialog();
+
}
@Override
- public void onFailure(Call call, Throwable t) {
+ public void onFailure(Call call, Throwable t) {
Log.d(TAG, "errorResponse:==>" + t.getMessage());
+ hideProgressDialog();
}
});
@@ -146,17 +177,29 @@ public int getItemCount() {
public class MyViewHolder extends RecyclerView.ViewHolder {
- TextView orderId, date, total, status, viewDetails;
+ TextView order_no,total_price,status,delivery_date,order_date;
+ Button viewDetails;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
- orderId = itemView.findViewById(R.id.order_id);
- date = itemView.findViewById(R.id.date);
- total = itemView.findViewById(R.id.total_amount);
+ order_no = itemView.findViewById(R.id.order_no);
+ total_price = itemView.findViewById(R.id.total_price);
+ delivery_date = itemView.findViewById(R.id.delivery_date);
status = itemView.findViewById(R.id.status);
- viewDetails = itemView.findViewById(R.id.viewDetails);
+ order_date = itemView.findViewById(R.id.order_date);
+ viewDetails = itemView.findViewById(R.id.view_details);
+ changeProgressBar = itemView.findViewById(R.id.progress_bar);
+
}
}
+
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderItemAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderItemAdapter.java
index 72cfcac..defa845 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderItemAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/OrderItemAdapter.java
@@ -13,7 +13,12 @@
import androidx.recyclerview.widget.RecyclerView;
import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.model.AddressDetails;
+import com.quintus.labs.grocerystore.model.DelExecDetails;
+import com.quintus.labs.grocerystore.model.OrderDetails;
+import com.quintus.labs.grocerystore.model.OrderDetailsData;
import com.quintus.labs.grocerystore.model.OrderItem;
+import com.quintus.labs.grocerystore.model.ProductsData;
import com.quintus.labs.grocerystore.util.Utils;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
@@ -21,12 +26,18 @@
import java.util.List;
public class OrderItemAdapter extends RecyclerView.Adapter {
- List orderItemList;
+ OrderDetailsData orderItemList;
+ DelExecDetails delExecDetails;
+ List productsData;
+ AddressDetails addressDetails;
Context context;
- public OrderItemAdapter(List orderItemList, Context context) {
+ public OrderItemAdapter(OrderDetailsData orderItemList, DelExecDetails delExecDetails,List productsData,AddressDetails addressDetails,Context context) {
this.orderItemList = orderItemList;
+ this.delExecDetails = delExecDetails;
+ this.productsData = productsData;
+ this.addressDetails = addressDetails;
this.context = context;
}
@@ -48,14 +59,19 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull final OrderItemAdapter.MyViewHolder holder, final int position) {
- final OrderItem order = orderItemList.get(position);
- holder.order_id.setText("#" + order.getOrderid());
- holder.order_title.setText(order.getItemname() + "(" + order.getAttribute() + ")");
- holder.order_quantity.setText(order.getItemquantity());
- holder.order_unitprice.setText(order.getCurrency() + order.getItemprice());
- holder.total_price.setText(order.getItemquantity() + "X" + order.getItemprice() + "=" + order.getItemtotal());
+ final OrderDetailsData order = orderItemList;
+ final DelExecDetails delExecDetailsdata = delExecDetails;
+ final ProductsData productsDataList= productsData.get(position);
+ final AddressDetails addressDetailsData=addressDetails;
+ holder.order_id.setText("#" + order.getOrderNo());
+
+ holder.order_title.setText(productsDataList.getProduct().getName());
+
+ holder.order_quantity.setText(String.valueOf(productsDataList.getQuantity()));
+ holder.order_unitprice.setText(productsDataList.getProduct().getCurrency().getSymbol()+" "+productsDataList.getProduct().getPrice());
+ holder.total_price.setText(productsDataList.getProduct().getCurrency().getSymbol() + " " + productsDataList.getPrice());
Picasso.get()
- .load(Utils.ProductImage + order.getitemImage())
+ .load(productsDataList.getProduct().getImages().get(0).getImage())
.into(holder.order_image, new Callback() {
@Override
public void onSuccess() {
@@ -73,11 +89,11 @@ public void onError(Exception e) {
@Override
public int getItemCount() {
-
- return orderItemList.size();
+ return productsData.size();
}
+
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView order_id, order_title, order_quantity, order_unitprice, total_price;
ImageView order_image;
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/PopularProductAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/PopularProductAdapter.java
index de5d30c..d81a0d0 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/PopularProductAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/PopularProductAdapter.java
@@ -1,5 +1,6 @@
package com.quintus.labs.grocerystore.adapter;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Paint;
@@ -11,6 +12,7 @@
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
@@ -20,10 +22,15 @@
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.activity.BaseActivity;
import com.quintus.labs.grocerystore.activity.MainActivity;
+import com.quintus.labs.grocerystore.activity.OtpVarificationActivity;
import com.quintus.labs.grocerystore.activity.ProductViewActivity;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.interfaces.AddorRemoveCallbacks;
import com.quintus.labs.grocerystore.model.Cart;
-import com.quintus.labs.grocerystore.model.Product;
+import com.quintus.labs.grocerystore.model.PopularProductsResult;
+import com.quintus.labs.grocerystore.model.AddToCart;
+import com.quintus.labs.grocerystore.model.ProductDetail;
+import com.quintus.labs.grocerystore.util.CustomToast;
import com.quintus.labs.grocerystore.util.Utils;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import com.squareup.picasso.Callback;
@@ -32,6 +39,9 @@
import java.util.ArrayList;
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Response;
+
/**
* Grocery App
* https://github.com/quintuslabs/GroceryStore
@@ -40,20 +50,18 @@
*/
public class PopularProductAdapter extends RecyclerView.Adapter {
- List productList;
+ List productList;
Context context;
String Tag;
LocalStorage localStorage;
Gson gson;
- List cartList = new ArrayList<>();
+ List cartList = new ArrayList<>();
String _quantity, _price, _attribute, _subtotal;
+ String token;
+ View changeProgressBar;
- public PopularProductAdapter(List productList, Context context) {
- this.productList = productList;
- this.context = context;
- }
- public PopularProductAdapter(List productList, Context context, String tag) {
+ public PopularProductAdapter(List productList, Context context, String tag) {
this.productList = productList;
this.context = context;
Tag = tag;
@@ -75,26 +83,29 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
return new MyViewHolder(itemView);
}
+ @SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
- final Product product = productList.get(position);
+ final PopularProductsResult product = productList.get(position);
localStorage = new LocalStorage(context);
gson = new Gson();
+ token = localStorage.getApiKey();
cartList = ((BaseActivity) context).getCartList();
+ holder.quantity.setText("0");
+
holder.title.setText(product.getName());
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- holder.price.setText(product.getDiscount());
- holder.org_price.setText(product.getPrice());
+ if (Float.parseFloat(product.getPrice()) < Float.parseFloat(product.getMrp())) {
+ holder.price.setText(product.getCurrency().getSymbol() + (" ") + product.getPrice());
+ holder.org_price.setText(product.getMrp());
holder.org_price.setPaintFlags(holder.org_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
- holder.price.setText(product.getPrice());
+ holder.price.setText(product.getCurrency().getSymbol() + (" ") + product.getPrice());
holder.org_price.setVisibility(View.GONE);
}
- holder.attribute.setText(product.getAttribute());
- Picasso.get().load(Utils.ProductImage + product.getImage()).error(R.drawable.no_image).into(holder.imageView, new Callback() {
+ Picasso.get().load(product.getImages().get(0).getImage()).error(R.drawable.no_image).into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
holder.progressBar.setVisibility(View.GONE);
@@ -109,41 +120,35 @@ public void onError(Exception e) {
if (!cartList.isEmpty()) {
for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
+ if (cartList.get(i).getId().equals(product.getId())) {
holder.shopNow.setVisibility(View.GONE);
holder.quantity_ll.setVisibility(View.VISIBLE);
- holder.quantity.setText(cartList.get(i).getQuantity());
+ holder.quantity.setText(String.valueOf(cartList.get(i).getCount()));
Log.d("Tag : ", cartList.get(i).getId() + "-->" + product.getId());
}
}
}
-
+ if (holder.quantity.getText().toString().equalsIgnoreCase("0")) {
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
+ }
holder.shopNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.shopNow.setVisibility(View.GONE);
holder.quantity_ll.setVisibility(View.VISIBLE);
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- _price = product.getDiscount();
- } else {
- _price = product.getPrice();
- }
- holder.currency.setText(product.getCurrency());
- _quantity = holder.quantity.getText().toString();
- _attribute = product.getAttribute();
- _subtotal = String.valueOf(Double.parseDouble(_price) * Integer.parseInt(_quantity));
+
if (context instanceof MainActivity) {
- Cart cart = new Cart(product.getId(), product.getName(), product.getImage(), product.getCurrency(), _price, _attribute, _quantity, _subtotal);
- cartList = ((BaseActivity) context).getCartList();
- cartList.add(cart);
-
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((AddorRemoveCallbacks) context).onAddProduct();
- notifyItemChanged(position);
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, true);
+ addingToCart(addtoCart, "plus");
+ _quantity = holder.quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ holder.quantity.setText(String.valueOf(qty));
+
+
}
}
});
@@ -152,49 +157,34 @@ public void onClick(View v) {
holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
- int total_item = Integer.parseInt(cartList.get(i).getQuantity());
- total_item++;
- Log.d("totalItem", total_item + "");
- holder.quantity.setText(total_item + "");
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- }
- }
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, true);
+ addingToCart(addtoCart, "plus");
+ _quantity = holder.quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ holder.quantity.setText(String.valueOf(qty));
}
+
+
});
holder.minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (Integer.parseInt(holder.quantity.getText().toString()) != 1) {
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
-
- total_item--;
- holder.quantity.setText(total_item + "");
- Log.d("totalItem", total_item + "");
-
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- }
- }
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, false);
+ addingToCart(addtoCart, "minus");
+ _quantity = holder.quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) - 1;
+ if (qty < 1) {
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
}
+ holder.quantity.setText(String.valueOf(qty));
}
@@ -203,19 +193,14 @@ public void onClick(View v) {
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- Intent intent = new Intent(context, ProductViewActivity.class);
- intent.putExtra("id", product.getId());
- intent.putExtra("title", product.getName());
- intent.putExtra("image", product.getImage());
- intent.putExtra("price", product.getPrice());
- intent.putExtra("currency", product.getCurrency());
- intent.putExtra("attribute", product.getAttribute());
- intent.putExtra("discount", product.getDiscount());
- intent.putExtra("description", product.getDescription());
+ Intent intent = new Intent(context, ProductViewActivity.class);
+ intent.putExtra("id", product.getId() + "");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
+
+
}
});
@@ -229,10 +214,6 @@ public int getItemCount() {
}
- @Override
- public int getItemViewType(int position) {
- return position;
- }
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
@@ -258,7 +239,60 @@ public MyViewHolder(@NonNull View itemView) {
plus = itemView.findViewById(R.id.quantity_plus);
minus = itemView.findViewById(R.id.quantity_minus);
cardView = itemView.findViewById(R.id.card_view);
+ changeProgressBar = itemView.findViewById(R.id.progress_bar);
}
}
+
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
+
+ private void addingToCart(AddToCart addtoCart, final String plus) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+ if (plus.equalsIgnoreCase("plus")) {
+ ((AddorRemoveCallbacks) context).onAddProduct();
+ Toast.makeText(context, "Successfully added", Toast.LENGTH_SHORT).show();
+
+ } else {
+ ((AddorRemoveCallbacks) context).onRemoveProduct();
+ Toast.makeText(context, "Successfully removed", Toast.LENGTH_SHORT).show();
+
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/ProductAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/ProductAdapter.java
index 1dece77..ffcda7a 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/ProductAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/ProductAdapter.java
@@ -9,6 +9,7 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
@@ -20,11 +21,16 @@
import com.google.gson.Gson;
import com.quintus.labs.grocerystore.R;
import com.quintus.labs.grocerystore.activity.BaseActivity;
+import com.quintus.labs.grocerystore.activity.MainActivity;
import com.quintus.labs.grocerystore.activity.ProductActivity;
import com.quintus.labs.grocerystore.activity.ProductViewActivity;
+import com.quintus.labs.grocerystore.api.clients.RestClient;
import com.quintus.labs.grocerystore.interfaces.AddorRemoveCallbacks;
+import com.quintus.labs.grocerystore.model.AddToCart;
import com.quintus.labs.grocerystore.model.Cart;
+import com.quintus.labs.grocerystore.model.PopularProductsResult;
import com.quintus.labs.grocerystore.model.Product;
+import com.quintus.labs.grocerystore.model.ProductDetail;
import com.quintus.labs.grocerystore.util.Utils;
import com.quintus.labs.grocerystore.util.localstorage.LocalStorage;
import com.squareup.picasso.Callback;
@@ -33,6 +39,9 @@
import java.util.ArrayList;
import java.util.List;
+import retrofit2.Call;
+import retrofit2.Response;
+
/**
* Grocery App
* https://github.com/quintuslabs/GroceryStore
@@ -41,21 +50,19 @@
*/
public class ProductAdapter extends RecyclerView.Adapter {
- List productList;
+ List productList;
Context context;
String Tag;
int pQuantity = 1;
LocalStorage localStorage;
Gson gson;
- List cartList = new ArrayList<>();
+ List cartList = new ArrayList<>();
String _quantity, _price, _attribute, _subtotal;
+ String token;
+ View changeProgressBar;
- public ProductAdapter(List productList, Context context) {
- this.productList = productList;
- this.context = context;
- }
- public ProductAdapter(List productList, Context context, String tag) {
+ public ProductAdapter(List productList, Context context, String tag) {
this.productList = productList;
this.context = context;
Tag = tag;
@@ -80,34 +87,19 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
- final Product product = productList.get(position);
+ final PopularProductsResult product = productList.get(position);
localStorage = new LocalStorage(context);
gson = new Gson();
cartList = ((BaseActivity) context).getCartList();
+ holder.quantity.setText("0");
+ token = localStorage.getApiKey();
holder.title.setText(product.getName());
- if (product.getPrice() != null && product.getPrice().length() != 0 && product.getDiscount() != null && product.getDiscount().length() != 0) {
-
- double M = Double.parseDouble(product.getPrice());
- double S = Double.parseDouble(product.getDiscount());
- double discount = M - S;
-
- int disPercent = (int) Math.round((discount / M) * 100);
- if (disPercent > 1) {
- holder.offer.setText(disPercent + "% OFF");
- } else {
- holder.offer.setVisibility(View.GONE);
- }
-
- } else {
- holder.offer.setVisibility(View.GONE);
- }
- holder.attribute.setText(product.getAttribute());
- holder.currency.setText(product.getCurrency());
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- holder.price.setText(product.getDiscount());
- holder.org_price.setText(product.getPrice());
+ holder.currency.setText(String.valueOf(product.getCurrency().getSymbol()));
+ if (Float.parseFloat(product.getPrice()) < Float.parseFloat(product.getMrp())) {
+ holder.price.setText(product.getPrice());
+ holder.org_price.setText(product.getMrp());
holder.org_price.setPaintFlags(holder.org_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
@@ -115,8 +107,9 @@ public void onBindViewHolder(@NonNull final MyViewHolder holder, final int posit
holder.org_price.setVisibility(View.GONE);
}
+
Picasso.get()
- .load(Utils.ProductImage + product.getImage())
+ .load(product.getImages().get(0).getImage())
.into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
@@ -130,152 +123,80 @@ public void onError(Exception e) {
});
- if (product.getDiscount() == null || product.getDiscount().length() == 0) {
- holder.offer.setVisibility(View.GONE);
- }
-
if (!cartList.isEmpty()) {
for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
- holder.addToCart.setVisibility(View.GONE);
- holder.subTotal.setVisibility(View.VISIBLE);
- holder.quantity.setText(cartList.get(i).getQuantity());
- _quantity = cartList.get(i).getQuantity();
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- _price = product.getDiscount();
- } else {
- _price = product.getPrice();
- }
-
- _subtotal = String.valueOf(Double.parseDouble(_price) * Integer.parseInt(_quantity));
- holder.subTotal.setText(_quantity + "X" + _price + "= Rs." + _subtotal);
+ if (cartList.get(i).getId().equals(product.getId())) {
+ holder.shopNow.setVisibility(View.GONE);
+ holder.quantity_ll.setVisibility(View.VISIBLE);
+ holder.quantity.setText(String.valueOf(cartList.get(i).getCount()));
Log.d("Tag : ", cartList.get(i).getId() + "-->" + product.getId());
}
}
- } else {
+ }
- holder.quantity.setText("1");
+ if (holder.quantity.getText().toString().equalsIgnoreCase("0")) {
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
}
- holder.plus.setOnClickListener(new View.OnClickListener() {
+ holder.shopNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
- if (pQuantity >= 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item++;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
-
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
-
- // Log.d("totalItem", total_item + "");
-
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(total_item + "X" + holder.price.getText().toString() + "= Rs." + _subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- notifyItemChanged(position);
- }
- }
- }
+ holder.shopNow.setVisibility(View.GONE);
+ holder.quantity_ll.setVisibility(View.VISIBLE);
- }
- });
- holder.minus.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pQuantity = Integer.parseInt(holder.quantity.getText().toString());
- if (pQuantity != 1) {
- int total_item = Integer.parseInt(holder.quantity.getText().toString());
- total_item--;
- holder.quantity.setText(total_item + "");
- for (int i = 0; i < cartList.size(); i++) {
- if (cartList.get(i).getId().equalsIgnoreCase(product.getId())) {
-
- //holder.quantity.setText(total_item + "");
- //Log.d("totalItem", total_item + "");
- _subtotal = String.valueOf(Double.parseDouble(holder.price.getText().toString()) * total_item);
- cartList.get(i).setQuantity(holder.quantity.getText().toString());
- cartList.get(i).setSubTotal(_subtotal);
- holder.subTotal.setText(total_item + "X" + holder.price.getText().toString() + "= Rs." + _subtotal);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- notifyItemChanged(position);
- }
- }
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, true);
+ addingToCart(addtoCart, "plus");
+ _quantity = holder.quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ holder.quantity.setText(String.valueOf(qty));
- }
}
});
- holder.cardView.setOnClickListener(new View.OnClickListener() {
+ holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- /*Intent intent = new Intent(context, ProductActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- context.startActivity(intent);*/
- Toast.makeText(context, "Product Clicked", Toast.LENGTH_LONG).show();
+
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, true);
+ addingToCart(addtoCart, "plus");
+
+ _quantity = holder.quantity.getText().toString();
+ int qty = Integer.parseInt(_quantity) + 1;
+ holder.quantity.setText(String.valueOf(qty));
+
+
}
});
-
- holder.addToCart.setOnClickListener(new View.OnClickListener() {
+ holder.minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- holder.addToCart.setVisibility(View.GONE);
- holder.subTotal.setVisibility(View.VISIBLE);
-
-
- if (product.getDiscount() != null && product.getDiscount().length() != 0) {
- _price = product.getDiscount();
- } else {
- _price = product.getPrice();
- }
+ int prouct_id = product.getId();
+ AddToCart addtoCart = new AddToCart(1, prouct_id, null, false);
+ addingToCart(addtoCart, "minus");
_quantity = holder.quantity.getText().toString();
- _attribute = product.getAttribute();
-
- if (Integer.parseInt(_quantity) != 0) {
- _subtotal = String.valueOf(Double.parseDouble(_price) * Integer.parseInt(_quantity));
- holder.subTotal.setText(_quantity + "X" + _price + "= Rs." + _subtotal);
- if (context instanceof ProductActivity) {
- Cart cart = new Cart(product.getId(), product.getName(), product.getImage(), product.getCurrency(), _price, _attribute, _quantity, _subtotal);
- cartList = ((BaseActivity) context).getCartList();
- cartList.add(cart);
- String cartStr = gson.toJson(cartList);
- //Log.d("CART", cartStr);
- localStorage.setCart(cartStr);
- ((AddorRemoveCallbacks) context).onAddProduct();
- notifyItemChanged(position);
- }
- } else {
- Toast.makeText(context, "Please Add Quantity", Toast.LENGTH_SHORT).show();
+ int qty = Integer.parseInt(_quantity) - 1;
+ if (qty < 1) {
+ holder.shopNow.setVisibility(View.VISIBLE);
+ holder.quantity_ll.setVisibility(View.GONE);
}
+ holder.quantity.setText(String.valueOf(qty));
}
});
+
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, ProductViewActivity.class);
- intent.putExtra("id", product.getId());
- intent.putExtra("title", product.getName());
- intent.putExtra("image", product.getImage());
- intent.putExtra("price", product.getPrice());
- intent.putExtra("currency", product.getCurrency());
- intent.putExtra("attribute", product.getAttribute());
- intent.putExtra("discount", product.getDiscount());
- intent.putExtra("description", product.getDescription());
-
-
+ intent.putExtra("id", product.getId() + "");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
}
@@ -289,36 +210,84 @@ public int getItemCount() {
return productList.size();
}
- @Override
- public int getItemViewType(int position) {
- return position;
- }
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
- TextView title;
+ TextView title, attribute, currency, price, org_price, shopNow;
ProgressBar progressBar;
+ LinearLayout quantity_ll;
+ TextView plus, minus, quantity;
CardView cardView;
- TextView offer, currency, price, org_price, quantity, attribute, addToCart, subTotal;
- Button plus, minus;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.product_image);
title = itemView.findViewById(R.id.product_title);
- progressBar = itemView.findViewById(R.id.progressbar);
- cardView = itemView.findViewById(R.id.card_view);
- offer = itemView.findViewById(R.id.product_discount);
- currency = itemView.findViewById(R.id.product_currency);
+ attribute = itemView.findViewById(R.id.product_attribute);
price = itemView.findViewById(R.id.product_price);
org_price = itemView.findViewById(R.id.original_price);
+ currency = itemView.findViewById(R.id.product_currency);
+ shopNow = itemView.findViewById(R.id.shop_now);
+ progressBar = itemView.findViewById(R.id.progressbar);
+ quantity_ll = itemView.findViewById(R.id.quantity_ll);
quantity = itemView.findViewById(R.id.quantity);
- addToCart = itemView.findViewById(R.id.add_to_cart);
- attribute = itemView.findViewById(R.id.product_attribute);
plus = itemView.findViewById(R.id.quantity_plus);
minus = itemView.findViewById(R.id.quantity_minus);
- subTotal = itemView.findViewById(R.id.sub_total);
+ cardView = itemView.findViewById(R.id.card_view);
+ changeProgressBar = itemView.findViewById(R.id.progress_bar);
}
}
+
+ private void hideProgressDialog() {
+ changeProgressBar.setVisibility(View.GONE);
+ }
+
+ private void showProgressDialog() {
+ changeProgressBar.setVisibility(View.VISIBLE);
+ }
+
+ private void addingToCart(AddToCart addtoCart, final String plus) {
+
+
+ showProgressDialog();
+ Call call = RestClient.getRestService(context).addToCart(token, addtoCart);
+ call.enqueue(new retrofit2.Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ Log.d("Response :=>", response.body() + "");
+ if (response != null) {
+
+ AddToCart addToCartResponse = response.body();
+ if (response.code() == 200) {
+ if (plus.equalsIgnoreCase("plus")) {
+ ((AddorRemoveCallbacks) context).onAddProduct();
+ Toast.makeText(context, "Successfully added", Toast.LENGTH_SHORT).show();
+
+ } else {
+ ((AddorRemoveCallbacks) context).onRemoveProduct();
+ Toast.makeText(context, "Successfully removed", Toast.LENGTH_SHORT).show();
+
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(context, "please try after sometime", Toast.LENGTH_SHORT).show();
+ }
+
+
+ hideProgressDialog();
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Log.d("Error==> ", t.getMessage());
+ hideProgressDialog();
+ }
+ });
+
+
+ }
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/SearchAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/SearchAdapter.java
index d9a4f00..47be0b4 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/adapter/SearchAdapter.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/SearchAdapter.java
@@ -36,10 +36,6 @@ public SearchAdapter(List productList, Context context) {
this.context = context;
}
- public SearchAdapter(List productList, Context context, String tag) {
- this.productList = productList;
- this.context = context;
- }
@NonNull
@Override
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/adapter/SubCategoryAdapter.java b/app/src/main/java/com/quintus/labs/grocerystore/adapter/SubCategoryAdapter.java
new file mode 100644
index 0000000..3f745a3
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/adapter/SubCategoryAdapter.java
@@ -0,0 +1,119 @@
+package com.quintus.labs.grocerystore.adapter;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.cardview.widget.CardView;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.quintus.labs.grocerystore.R;
+import com.quintus.labs.grocerystore.activity.CartActivity;
+import com.quintus.labs.grocerystore.activity.ProductActivity;
+import com.quintus.labs.grocerystore.activity.SubCategoryActivity;
+import com.quintus.labs.grocerystore.model.Category;
+import com.quintus.labs.grocerystore.model.SubCategory;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Grocery App
+ * https://github.com/quintuslabs/GroceryStore
+ * Created on 18-Feb-2019.
+ * Created by : Santosh Kumar Dash:- http://santoshdash.epizy.com
+ */
+public class SubCategoryAdapter extends RecyclerView.Adapter {
+
+
+ List subCategoryList = new ArrayList<>();
+ Context context;
+
+
+ public SubCategoryAdapter(List subCategoryList, Context context) {
+ this.subCategoryList = subCategoryList;
+ this.context = context;
+ }
+
+
+ @NonNull
+ @Override
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
+ View itemView;
+
+ itemView = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.row_category, parent, false);
+
+
+ return new MyViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
+
+ final SubCategory category = subCategoryList.get(position);
+ holder.title.setText(category.getName());
+
+ Picasso.get()
+ .load(category.getImage())
+ .into(holder.imageView, new Callback() {
+ @Override
+ public void onSuccess() {
+ holder.progressBar.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onError(Exception e) {
+ Log.d("Error : ", e.getMessage());
+ }
+ });
+
+ holder.cardView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+
+ Intent intent = new Intent(context, ProductActivity.class);
+ intent.putExtra("id", category.getId());
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intent);
+ }
+ });
+
+ }
+
+ @Override
+ public int getItemCount() {
+
+ return subCategoryList.size();
+
+
+ }
+
+ public class MyViewHolder extends RecyclerView.ViewHolder {
+ ImageView imageView;
+ TextView title;
+ ProgressBar progressBar;
+ CardView cardView;
+
+ public MyViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ imageView = itemView.findViewById(R.id.category_image);
+ title = itemView.findViewById(R.id.category_title);
+ progressBar = itemView.findViewById(R.id.progressbar);
+ cardView = itemView.findViewById(R.id.card_view);
+ }
+ }
+}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/api/LocalAppConfig.java b/app/src/main/java/com/quintus/labs/grocerystore/api/LocalAppConfig.java
new file mode 100644
index 0000000..3452361
--- /dev/null
+++ b/app/src/main/java/com/quintus/labs/grocerystore/api/LocalAppConfig.java
@@ -0,0 +1,6 @@
+package com.quintus.labs.grocerystore.api;
+
+public class LocalAppConfig {
+ public static final boolean FIREBASE_OTP = false;
+ public static final String TENANT_ID_HEADER_VALUE = "api_3.hZR4a3wLm1RXWSuZZflCeYn65E7ERR3w";
+}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/api/LoggingInterceptor.java b/app/src/main/java/com/quintus/labs/grocerystore/api/LoggingInterceptor.java
index 85ead1d..e40a0e9 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/api/LoggingInterceptor.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/api/LoggingInterceptor.java
@@ -35,8 +35,6 @@ public Response intercept(Chain chain) throws IOException {
long t1 = System.nanoTime();
String requestLog = String.format("Sending request %s on %s%n%s",
request.url(), chain.connection(), request.headers());
- //YLog.d(String.format("Sending request %s on %s%n%s",
- // request.url(), chain.connection(), request.headers()));
if (request.method().compareToIgnoreCase("post") == 0) {
requestLog = "\n" + requestLog + "\n" + bodyToString(request);
}
diff --git a/app/src/main/java/com/quintus/labs/grocerystore/api/RestService.java b/app/src/main/java/com/quintus/labs/grocerystore/api/RestService.java
index cf568bf..2ac9853 100644
--- a/app/src/main/java/com/quintus/labs/grocerystore/api/RestService.java
+++ b/app/src/main/java/com/quintus/labs/grocerystore/api/RestService.java
@@ -1,21 +1,52 @@
package com.quintus.labs.grocerystore.api;
-import com.quintus.labs.grocerystore.model.Category;
+import static com.quintus.labs.grocerystore.api.LocalAppConfig.TENANT_ID_HEADER_VALUE;
+
+import com.quintus.labs.grocerystore.model.AddAddress;
+import com.quintus.labs.grocerystore.model.AddAddressListResponse;
+import com.quintus.labs.grocerystore.model.AddToCart;
+import com.quintus.labs.grocerystore.model.AdvertisementBanner;
+import com.quintus.labs.grocerystore.model.Banners;
+import com.quintus.labs.grocerystore.model.CartDetails;
import com.quintus.labs.grocerystore.model.CategoryResult;
+import com.quintus.labs.grocerystore.model.CheckoutDetails;
+import com.quintus.labs.grocerystore.model.City;
+import com.quintus.labs.grocerystore.model.Country;
+import com.quintus.labs.grocerystore.model.Currency;
+import com.quintus.labs.grocerystore.model.InitiatePayment;
+import com.quintus.labs.grocerystore.model.MessageResponse;
import com.quintus.labs.grocerystore.model.Order;
-import com.quintus.labs.grocerystore.model.OrderItem;
-import com.quintus.labs.grocerystore.model.OrdersResult;
-import com.quintus.labs.grocerystore.model.PlaceOrder;
+import com.quintus.labs.grocerystore.model.OrderDetails;
+import com.quintus.labs.grocerystore.model.Pin;
+import com.quintus.labs.grocerystore.model.PopularProducts;
+import com.quintus.labs.grocerystore.model.ProductDetails;
import com.quintus.labs.grocerystore.model.ProductResult;
-import com.quintus.labs.grocerystore.model.Token;
+import com.quintus.labs.grocerystore.model.Products;
+import com.quintus.labs.grocerystore.model.State;
+import com.quintus.labs.grocerystore.model.Total;
+import com.quintus.labs.grocerystore.model.UpdatePayment;
import com.quintus.labs.grocerystore.model.User;
-import com.quintus.labs.grocerystore.model.UserResult;
+import com.quintus.labs.grocerystore.model.User1;
+import com.quintus.labs.grocerystore.model.UserResponse;
+import com.quintus.labs.grocerystore.model.Voucher;
+import com.quintus.labs.grocerystore.model.VoucherListData;
+import com.quintus.labs.grocerystore.model.VoucherResult;
+import com.quintus.labs.grocerystore.model.VoucherValidity;
+
+import java.util.List;
import retrofit2.Call;
import retrofit2.http.Body;
+import retrofit2.http.DELETE;
import retrofit2.http.GET;
+import retrofit2.http.HTTP;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.PATCH;
import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Path;
import retrofit2.http.Query;
/**
@@ -26,43 +57,170 @@
*/
public interface RestService {
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/register/")
+ Call register(@Body User user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/login/")
+ Call login(@Body User user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/forget_password/")
+ Call forgotPassword(@Body User user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @PUT("users/confirm_forget_password/")
+ Call resetPassword(@Body User1 user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/verify_otp/")
+ Call otpVerification(@Body User user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/verify_resend_otp/")
+ Call resendOTP(@Body User user);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("config/slider_images/")
+ Call> bannerList();
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/categories/")
+ Call allCategory(@Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("vouchers/list/")
+ Call allOffers(@Header("Authorization") String token, @Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/popular_categories/")
+ Call popularCategory(@Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/popular_products/")
+ Call popularProducts(@Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/product/recently_added/")
+ Call newProducts(@Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/category/{id}/products/")
+ Call allProducts(@Path("id") int id, @Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/product/{id}/details/")
+ Call productDetails(@Path("id") String id);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/wishlist/")
+ Call getFavouriteProducts(@Header("Authorization") String token);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/currency_lists/")
+ Call currencyData(@Header("Authorization") String token);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("users/address/list/")
+ Call> getAddressList(@Header("Authorization") String token);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("users/address/default/")
+ Call defaultAddress(@Header("Authorization") String token);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/address/create/")
+ Call addAddress(@Header("Authorization") String token, @Body AddAddress addAddress);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @PUT("users/address/{id}/update/")
+ Call updateAddress(@Header("Authorization") String token, @Path("id") int id, @Body AddAddress addAddress);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @DELETE("users/address/{id}/delete/")
+ Call deleteAddress(@Header("Authorization") String token, @Path("id") String id);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("catalog/search/")
+ Call searchProduct(@Header("Authorization") String token, @Query("search") String search, @Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("catalog/add_update_wishlist/")
+ Call addFavouriteProduct(@Header("Authorization") String token);
+
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("vouchers/voucher_validity/")
+ Call checkVoucher(@Header("Authorization") String token, @Body Voucher voucher);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("orders/list/")
+ Call getOrderDetails(@Header("Authorization") String token, @Query("page") int page, @Query("page_size") int page_size);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("orders/{id}/details/")
+ Call getSingleOrderDetails(@Header("Authorization") String token, @Path("id") int id);
+
+ @GET("locations/countries/")
+ Call> getCountry();
+
+ @GET("locations/country/{id}/states/")
+ Call> getState(@Path("id") int id);
+
+ @GET("locations/state/{id}/cities/")
+ Call> getCity(@Path("id") int id);
+
+ @GET("locations/pin/")
+ Call pin(@Path("id") int id);
+
+ @GET("locations/city/{id}/pin/")
+ Call> getZip(@Path("id") int id);
+
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("users/address/create/")
+ Call createAddress();
- @POST("api/v1/register")
- Call register(@Body User user);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @PUT("/users/address/{id}/update/")
+ Call updateAddress(@Path("id") int id);
- @POST("api/v1/login")
- Call login(@Body User user);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("vouchers/voucher_validity/")
+ Call checkVoucher(@Header("Authorization") String token);
- @POST("api/v1/forgot_password")
- Call forgotPassword(@Body User user);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("payments/initiate/")
+ Call initiatePayment(@Header("Authorization") String token, @Body Total total);
- @POST("api/v1/reset_password")
- Call resetPassword(@Body User user);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @PUT("payments/{id}/status_update/")
+ Call updatePayment(@Header("Authorization") String token, @Path("id") String id, @Body UpdatePayment updatePayment);
- @POST("api/v1/allcategory")
- Call allCategory(@Body Token token);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("carts/checkout/")
+ Call createOrder(@Header("Authorization") String token, @Body CheckoutDetails checkoutDetails);
- @POST("api/v1/newProduct")
- Call newProducts(@Body Token token);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @GET("carts/list/")
+ Call getCartList(@Header("Authorization") String token);
- @POST("api/v1/homepage")
- Call popularProducts(@Body Token token);
- @POST("api/v1/getlist")
- Call getCategoryProduct(@Body Category category);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @POST("carts/create_update/")
+ Call addToCart(@Header("Authorization") String token, @Body AddToCart addtoCart);
- @POST("api/v1/placeorder")
- Call confirmPlaceOrder(@Body PlaceOrder placeOrder);
+ @Headers("X-TENANT-ID:" + TENANT_ID_HEADER_VALUE)
+ @HTTP(method = "DELETE", path = "carts/remove_product/", hasBody = true)
+ Call removeFromCart(@Header("Authorization") String token, @Body Products products);
- @POST("api/v1/orderDetails")
- Call