diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/BillingActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/BillingActivity.java index 309531a..71ed7d5 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/BillingActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/BillingActivity.java @@ -52,7 +52,7 @@ public class BillingActivity extends AppCompatActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_billing); - setTitle("Billing"); + setTitle(getString(R.string.billing)); // Get current merchant instance merchant = Merchant.getInstance(); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/ConfirmationActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/ConfirmationActivity.java index 2613086..10cf440 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/ConfirmationActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/ConfirmationActivity.java @@ -38,7 +38,7 @@ public class ConfirmationActivity extends AppCompatActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_confirmation); - setTitle("Products"); + setTitle(getString(R.string.products)); // Get current merchant merchant = Merchant.getInstance(); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/DebugActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/DebugActivity.java index 37271ce..cc40557 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/DebugActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/DebugActivity.java @@ -21,7 +21,7 @@ public class DebugActivity extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Debug tools"); + setTitle(getString(R.string.debug_tools)); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View contentView = inflater.inflate(R.layout.activity_debug, null, false); mContainer.addView(contentView, 0); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/InventoryActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/InventoryActivity.java index 4f0508c..32b0848 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/InventoryActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/InventoryActivity.java @@ -56,7 +56,7 @@ public class InventoryActivity extends MainActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Product catalog"); + setTitle(getString(R.string.product_catalog)); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mContentView = inflater.inflate(R.layout.activity_inventory, null, false); mContainer.addView(mContentView, 0); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/LocationPickerActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/LocationPickerActivity.java index 944afc6..6f22402 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/LocationPickerActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/LocationPickerActivity.java @@ -45,7 +45,7 @@ public class LocationPickerActivity extends AppCompatActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Pick location"); + setTitle(getString(R.string.pick_location)); setContentView(R.layout.activity_location_picker); // Set default location to previous location if available diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrderDisplayActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrderDisplayActivity.java index cbacb5e..9476150 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrderDisplayActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrderDisplayActivity.java @@ -59,7 +59,7 @@ public class NewOrderDisplayActivity extends AppCompatActivity implements NewOrd protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_order_display); - setTitle("Order"); + setTitle(getString(R.string.order)); mTotalPrice = findViewById(R.id.text_view_total_price); TextView mTextViewCustomerName = findViewById(R.id.text_view_customer_name); mOrder = (Order) getIntent().getSerializableExtra("order"); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrdersActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrdersActivity.java index b893862..007be8b 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrdersActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/NewOrdersActivity.java @@ -31,7 +31,7 @@ public class NewOrdersActivity extends MainActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("New Orders"); + setTitle(getString(R.string.new_order)); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mContentView = inflater.inflate(R.layout.activity_new_orders, null, false); mContainer.addView(mContentView, 0); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/OfferDetailsActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/OfferDetailsActivity.java index 394adad..78009f5 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/OfferDetailsActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/OfferDetailsActivity.java @@ -46,7 +46,7 @@ public class OfferDetailsActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_offer_details); - setTitle("Offer"); + setTitle(getString(R.string.offer)); mDiscountType = findViewById(R.id.radio_group_set_discount_type); mDiscountType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrderDisplayActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrderDisplayActivity.java index b4a168b..7702344 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrderDisplayActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrderDisplayActivity.java @@ -46,7 +46,7 @@ public class OngoingOrderDisplayActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Order"); + setTitle(getString(R.string.order)); setContentView(R.layout.activity_ongoing_order_display); order = (Order) getIntent().getSerializableExtra("order"); initViews(); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrdersActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrdersActivity.java index 9ee1423..6495fe7 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrdersActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/OngoingOrdersActivity.java @@ -31,7 +31,7 @@ public class OngoingOrdersActivity extends MainActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Ongoing orders"); + setTitle(getString(R.string.ongoing_orders)); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mContentView = inflater.inflate(R.layout.activity_new_orders, null, false); mContainer.addView(mContentView, 0); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/ProductOfferActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/ProductOfferActivity.java index c117a74..1fbd020 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/ProductOfferActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/ProductOfferActivity.java @@ -7,12 +7,10 @@ import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; -import android.widget.LinearLayout; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.StaggeredGridLayoutManager; import com.google.android.material.button.MaterialButtonToggleGroup; import com.google.android.material.textfield.TextInputEditText; @@ -49,7 +47,7 @@ public class ProductOfferActivity extends MainActivity implements OfferActionLis @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Offers"); + setTitle(getString(R.string.offers)); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mContentView = inflater.inflate(R.layout.activity_product_offer, null, false); mContainer.addView(mContentView, 0); @@ -166,10 +164,12 @@ public void onDeleteOfferSelect(int type, int itemIdx, int offerIdx) { if (type == OfferActionListener.PRODUCT_OFFER) { Product product = mProductOfferAdapter.getProducts().get(itemIdx); product.getOffers().remove(offerIdx); + mProductOfferAdapter.notifyItemChanged(itemIdx); FirebaseUtils.updateProductOffers(product); } else { Brand brand = mBrandOfferAdapter.getBrands().get(itemIdx); brand.getOffers().remove(offerIdx); + mBrandOfferAdapter.notifyItemChanged(itemIdx); FirebaseUtils.updateBrandOffers(brand); } } @@ -203,6 +203,9 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } UIUtils.showToast(this, "Offer updated"); } + // Refresh views + mProductOfferAdapter.notifyDataSetChanged(); + mBrandOfferAdapter.notifyDataSetChanged(); } } } diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/SettingsActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/SettingsActivity.java index b0ed095..c64d2f4 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/SettingsActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/SettingsActivity.java @@ -38,6 +38,7 @@ public class SettingsActivity extends AppCompatActivity { private TextInputEditText mEditTextDomainName; private TextInputLayout mTextLayoutDomainName; + private Button mSetLocation; private boolean isDomainNameOptionOverridden = false; private boolean isDomainNameChangeConfirmed = false; @@ -46,7 +47,7 @@ public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTitle("Settings"); + setTitle(getString(R.string.settings)); setContentView(R.layout.activity_settings); Merchant merchant = Merchant.getInstance(); final TextInputEditText storeName = findViewById(R.id.edit_text_store_name); @@ -65,8 +66,11 @@ protected void onCreate(Bundle savedInstanceState) { mLocation = merchant.getLatLng(); } - Button setLocation = findViewById(R.id.button_set_location); - setLocation.setOnClickListener(new View.OnClickListener() { + mSetLocation = findViewById(R.id.button_set_location); + if (mLocation != null) { + mSetLocation.setText(R.string.change_location); + } + mSetLocation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SettingsActivity.this, LocationPickerActivity.class); @@ -190,7 +194,7 @@ public void onCheckComplete(boolean isAvailable) { if (mEditTextDomainName.getText().toString().trim().equals(queryDomainName)) { searchProgressBar.setVisibility(View.INVISIBLE); mTextLayoutDomainName.setEndIconMode(TextInputLayout.END_ICON_CUSTOM); - if (isAvailable || mSavedDomainName.equals(queryDomainName)) { + if (isAvailable || queryDomainName.equals(mSavedDomainName)) { mTextLayoutDomainName.setEndIconDrawable(getDrawable(R.drawable.ic_action_ok_circle)); mDomainName = s.toString(); } else { @@ -211,6 +215,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { double latitutde = data.getDoubleExtra(CommonUtils.LATITUDE, 0.0); double longitude = data.getDoubleExtra(CommonUtils.LONGITUDE, 0.0); mLocation = new LatLng(latitutde, longitude); + mSetLocation.setText(R.string.change_location); } else { UIUtils.showToast(this, getString(R.string.no_location_set)); } diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/model/Product.java b/merchant-app/app/src/main/java/com/googleinterns/smb/model/Product.java index 59cc0cd..48dce46 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/model/Product.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/model/Product.java @@ -92,6 +92,23 @@ public Double getDiscountedPrice() { if (discountedPrice == null) { discountedPrice = MRP; } + double bestOffer = 0.0; + boolean isOfferAvailable = false; + for (Offer offer : getOffers()) { + double currentOfferPrice = 0.0; + if (Offer.EXPIRED.equals(offer.getStatus())) continue; + isOfferAvailable = true; + if (offer.getOfferType() == Offer.OfferType.PERCENTAGE_OFFER) { + currentOfferPrice = MRP * offer.getOfferAmount() / (double) 100; + } else { + currentOfferPrice = offer.getOfferAmount(); + } + if (currentOfferPrice > bestOffer) { + bestOffer = currentOfferPrice; + } + } + double offerDiscountPrice = MRP - bestOffer; + if (isOfferAvailable && offerDiscountPrice < discountedPrice) return offerDiscountPrice; return discountedPrice; } diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanBarcodeActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanBarcodeActivity.java index 47508cf..fcd48fa 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanBarcodeActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanBarcodeActivity.java @@ -21,7 +21,7 @@ public class ScanBarcodeActivity extends ScanActivity { @Override protected void initViews() { - setTitle("Scan Barcode"); + setTitle(getString(R.string.scan_barcode)); setContentView(R.layout.activity_scan_barcode); TextView helpText = findViewById(R.id.text_view_help); helpText.setText(R.string.point_at_a_barcode_to_scan); diff --git a/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanTextActivity.java b/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanTextActivity.java index 9537e67..2638489 100644 --- a/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanTextActivity.java +++ b/merchant-app/app/src/main/java/com/googleinterns/smb/scan/ScanTextActivity.java @@ -36,7 +36,7 @@ public class ScanTextActivity extends ScanActivity implements @Override protected void initViews() { - setTitle("Scan Text"); + setTitle(getString(R.string.scan_text)); setContentView(R.layout.activity_scan_text); TextView helpText = findViewById(R.id.text_view_help); helpText.setText(R.string.point_at_product_text_to_scan); diff --git a/merchant-app/app/src/main/res/layout/activity_product_offer.xml b/merchant-app/app/src/main/res/layout/activity_product_offer.xml index 541d1c4..1be2989 100644 --- a/merchant-app/app/src/main/res/layout/activity_product_offer.xml +++ b/merchant-app/app/src/main/res/layout/activity_product_offer.xml @@ -22,7 +22,9 @@ + android:layout_height="wrap_content" + android:imeOptions="actionDone" + android:inputType="text" /> diff --git a/merchant-app/app/src/main/res/layout/activity_settings.xml b/merchant-app/app/src/main/res/layout/activity_settings.xml index 89e32d0..4c106aa 100644 --- a/merchant-app/app/src/main/res/layout/activity_settings.xml +++ b/merchant-app/app/src/main/res/layout/activity_settings.xml @@ -35,7 +35,8 @@ + android:layout_height="wrap_content" + android:inputType="text" /> @@ -128,7 +129,8 @@ + android:layout_height="wrap_content" + android:inputType="text" /> diff --git a/merchant-app/app/src/main/res/values/strings.xml b/merchant-app/app/src/main/res/values/strings.xml index 3f08b68..911afbb 100644 --- a/merchant-app/app/src/main/res/values/strings.xml +++ b/merchant-app/app/src/main/res/values/strings.xml @@ -49,7 +49,6 @@ Set quantity Newly detected products have been added to your inventory Set discount - Debug tools No internet connection Accept Decline @@ -57,8 +56,6 @@ New orders Profile icon Inventory - Ongoing orders - Settings Open navigation drawer Close navigation drawer google logo @@ -88,16 +85,15 @@ Automatically download attachments for incoming emails Only download attachments when manually requested - Offers Pick location marker Save Set Location Store Location Store address Store name - You can choose to provide a domain name for your store which will allow more customers to access your store. - Domain name (optional) - Location permissions are required for you to access current location. + You can choose to provide a URL Path for your store which will allow more customers to access your store. + Shareable URL Path (optional) + Location permissions are required to access your current location if you want to set your current location as your store location. Forever OK Set a price to mark available @@ -132,7 +128,6 @@ Time of order: Customer Address Call - Products Deliver with Dunzo Find products Price: @@ -159,7 +154,23 @@ New product Search Search here - Valid domain name is not set. Do you want to continue? - Changing domain name will make all previous domain pages invalid. Do you want to continue? + Valid URL Path is not set. Do you want to continue? + Changing URL Path will make all previous domain pages invalid. Do you want to continue? Yes + Change Location + + + Scan Barcode + Scan Text + Billing + Products + Debug tools + Product catalog + Pick location + New Orders + Offer + Order + Ongoing orders + Offers + Settings