Commit 9f5af180 authored by Muhammad Suryono's avatar Muhammad Suryono

fix conflict with cart

parents 529d46fb 6497aa0a
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<activity <activity
android:name=".CartActivity" android:name=".CartActivity"
android:theme="@style/AppTheme.appbar" /> android:theme="@style/AppTheme.appbar" />
<activity android:name=".ProductActivity" /> <activity android:name=".ProductActivity" android:theme="@style/AppTheme.appbar" />
<activity android:name=".SplashScreen"> <activity android:name=".SplashScreen">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:theme="@style/AppTheme.appbar" /> android:theme="@style/AppTheme.appbar" />
<activity android:name=".FormProductActivity" />
<meta-data <meta-data
android:name="preloaded_fonts" android:name="preloaded_fonts"
......
package com.yono.messeripos;
import android.os.Bundle;
import android.os.PersistableBundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class FormProductActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form_product);
}
}
...@@ -2,6 +2,8 @@ package com.yono.messeripos; ...@@ -2,6 +2,8 @@ package com.yono.messeripos;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
...@@ -11,12 +13,14 @@ import android.view.View; ...@@ -11,12 +13,14 @@ import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProviders;
import com.google.android.material.button.MaterialButton; import com.google.android.material.button.MaterialButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputEditText;
import com.yono.messeripos.models.MainViewModels; import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.models.UsersModels; import com.yono.messeripos.models.UsersModels;
...@@ -52,6 +56,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -52,6 +56,7 @@ public class LoginActivity extends AppCompatActivity {
btnLogin.setOnClickListener(new View.OnClickListener() { btnLogin.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Snackbar snackbar = Snackbar.make(v, "Oppss! Wrong Username Or Password!", Snackbar.LENGTH_LONG);
if (TextUtils.isEmpty(username.getText().toString()) && if (TextUtils.isEmpty(username.getText().toString()) &&
TextUtils.isEmpty(password.getText().toString())){ TextUtils.isEmpty(password.getText().toString())){
...@@ -84,12 +89,11 @@ public class LoginActivity extends AppCompatActivity { ...@@ -84,12 +89,11 @@ public class LoginActivity extends AppCompatActivity {
password.setEnabled(true); password.setEnabled(true);
btnLogin.setEnabled(true); btnLogin.setEnabled(true);
}else { }else {
snackbar.show();
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE);
username.setEnabled(true); username.setEnabled(true);
password.setEnabled(true); password.setEnabled(true);
btnLogin.setEnabled(true); btnLogin.setEnabled(true);
finish();
} }
} }
......
...@@ -10,6 +10,7 @@ import android.view.View; ...@@ -10,6 +10,7 @@ import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
...@@ -20,6 +21,11 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -20,6 +21,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import com.yono.messeripos.adapter.ProductAdapter;
import com.yono.messeripos.databinding.ActivityMainBinding;
import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.models.ProductModels;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.yono.messeripos.adapter.CategoryAdapter; import com.yono.messeripos.adapter.CategoryAdapter;
import com.yono.messeripos.adapter.ProductAdapter; import com.yono.messeripos.adapter.ProductAdapter;
...@@ -39,9 +45,8 @@ public class MainActivity extends AppCompatActivity { ...@@ -39,9 +45,8 @@ public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding; ActivityMainBinding binding;
CategoryAdapter categoryAdapter; CategoryAdapter categoryAdapter;
ProductAdapter productAdapter; ProductAdapter productAdapter;
ImageView btnDelete;
ImageView btnEdit;
public static Boolean status_update = false; public static Boolean status_update = false;
MaterialButton addToCart;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -58,7 +63,6 @@ public class MainActivity extends AppCompatActivity { ...@@ -58,7 +63,6 @@ public class MainActivity extends AppCompatActivity {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
} }
toolbar = findViewById(R.id.topAppBar); toolbar = findViewById(R.id.topAppBar);
...@@ -72,6 +76,8 @@ public class MainActivity extends AppCompatActivity { ...@@ -72,6 +76,8 @@ public class MainActivity extends AppCompatActivity {
status_update = true; status_update = true;
binding.rvCategory.setVisibility(View.GONE); binding.rvCategory.setVisibility(View.GONE);
productAdapter.notifyDataSetChanged(); productAdapter.notifyDataSetChanged();
}else if (id == R.id.create) {
startActivity(new Intent(getApplicationContext(), FormProductActivity.class));
} }
return true; return true;
} }
...@@ -117,9 +123,5 @@ public class MainActivity extends AppCompatActivity { ...@@ -117,9 +123,5 @@ public class MainActivity extends AppCompatActivity {
Log.d("Get data from products", "Response " + js); Log.d("Get data from products", "Response " + js);
} }
}); });
} }
} }
\ No newline at end of file
...@@ -19,7 +19,6 @@ import java.util.ArrayList; ...@@ -19,7 +19,6 @@ import java.util.ArrayList;
public class PaymentActivity extends AppCompatActivity { public class PaymentActivity extends AppCompatActivity {
private ArrayList<PaymentResponse> paymentResponses = new ArrayList<>(); private ArrayList<PaymentResponse> paymentResponses = new ArrayList<>();
MaterialToolbar toolbars;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
......
...@@ -6,6 +6,8 @@ import android.content.SharedPreferences; ...@@ -6,6 +6,8 @@ import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation; import android.view.animation.Animation;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -21,6 +23,10 @@ public class SplashScreen extends AppCompatActivity { ...@@ -21,6 +23,10 @@ public class SplashScreen extends AppCompatActivity {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash); setContentView(R.layout.activity_splash);
img = findViewById(R.id.image_splash); img = findViewById(R.id.image_splash);
......
package com.yono.messeripos.adapter; package com.yono.messeripos.adapter;
import android.content.Context; import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
...@@ -13,6 +15,15 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -13,6 +15,15 @@ import androidx.recyclerview.widget.RecyclerView;
import com.yono.messeripos.MainActivity; import com.yono.messeripos.MainActivity;
import com.yono.messeripos.R; import com.yono.messeripos.R;
import com.yono.messeripos.databinding.ItemListBinding; import com.yono.messeripos.databinding.ItemListBinding;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import com.yono.messeripos.R;
import com.yono.messeripos.databinding.ItemListBinding;
import com.yono.messeripos.models.CartModels;
import com.yono.messeripos.models.MainViewModelsCart; import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.ProductCartModels; import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.models.ProductModels; import com.yono.messeripos.models.ProductModels;
...@@ -24,6 +35,7 @@ import java.util.ArrayList; ...@@ -24,6 +35,7 @@ import java.util.ArrayList;
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHolder> { public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHolder> {
private ArrayList<ProductModels> productModels = new ArrayList<>(); private ArrayList<ProductModels> productModels = new ArrayList<>();
Context context; Context context;
MainViewModelsCart mainViewModelsCart;
public interface CartListener { public interface CartListener {
void onUpdate(ProductCartModels product); void onUpdate(ProductCartModels product);
...@@ -41,6 +53,7 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -41,6 +53,7 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
public void setProduct(Context context, ArrayList<ProductModels> productModels){ public void setProduct(Context context, ArrayList<ProductModels> productModels){
this.productModels = productModels; this.productModels = productModels;
this.context = context; this.context = context;
mainViewModelsCart = ViewModelProviders.of((FragmentActivity) context).get(MainViewModelsCart.class);
notifyDataSetChanged(); notifyDataSetChanged();
} }
...@@ -91,11 +104,27 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -91,11 +104,27 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
binding.setPrice(rupiah.format(products.getPriceProduct())); binding.setPrice(rupiah.format(products.getPriceProduct()));
binding.setImage(products.getImageProduct()); binding.setImage(products.getImageProduct());
if (!MainActivity.status_update){ if (!MainActivity.status_update){
binding.btnDelete.setVisibility(View.GONE); binding.btnDelete.setVisibility(View.GONE);
binding.btnEdit.setVisibility(View.GONE); binding.btnEdit.setVisibility(View.GONE);
} }
binding.materialBtnAddCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, binding.titleProduct.getText() + " adding to cart", Toast.LENGTH_LONG).show();
mainViewModelsCart.insertCart(new ProductCartModels(
2,
1,
products.getIdProduct(),
products.getProductName(),
products.getPriceProduct(),
0
));
String js = new Gson().toJson(mainViewModelsCart.getCart());
Log.d( "onClick: ", ""+js);
}
});
} }
} }
} }
...@@ -32,8 +32,11 @@ public class ProductCartModels implements Parcelable { ...@@ -32,8 +32,11 @@ public class ProductCartModels implements Parcelable {
@SerializedName("grand_total") @SerializedName("grand_total")
private int grand_total_orders; private int grand_total_orders;
public ProductCartModels(int id_orders, long quantity_orders, public ProductCartModels(int id_orders,
int id_product_orders, String product_name_orders, long price_orders, long quantity_orders,
int id_product_orders,
String product_name_orders,
long price_orders,
int grand_total_orders) { int grand_total_orders) {
this.id_orders = id_orders; this.id_orders = id_orders;
this.quantity_orders = quantity_orders; this.quantity_orders = quantity_orders;
......
...@@ -5,6 +5,7 @@ import android.widget.ImageView; ...@@ -5,6 +5,7 @@ import android.widget.ImageView;
import androidx.databinding.BindingAdapter; import androidx.databinding.BindingAdapter;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import com.yono.messeripos.R; import com.yono.messeripos.R;
import com.yono.messeripos.api.ApiHelper; import com.yono.messeripos.api.ApiHelper;
...@@ -81,7 +82,10 @@ public class ProductModels<T> { ...@@ -81,7 +82,10 @@ public class ProductModels<T> {
if (ApiHelper.BASE_URL_IMAGE+url == null){ if (ApiHelper.BASE_URL_IMAGE+url == null){
view.setImageResource(R.drawable.ic_meser); view.setImageResource(R.drawable.ic_meser);
}else{ }else{
Glide.with(view).load(ApiHelper.BASE_URL_IMAGE+url).into(view); Glide.with(view)
.applyDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.skeleton).error(R.drawable.skeleton))
.load(ApiHelper.BASE_URL_IMAGE+url)
.into(view);
} }
} }
} }
...@@ -25,10 +25,14 @@ public class CartRepositories { ...@@ -25,10 +25,14 @@ public class CartRepositories {
} }
public void update(ProductCartModels productCartModels){ public void update(ProductCartModels productCartModels){
LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.insertProduct(productCartModels)); LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.updateProduct(productCartModels));
} }
public void delete(ProductCartModels productCartModels){ public void delete(ProductCartModels productCartModels){
LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.insertProduct(productCartModels)); LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.deleteProduct(productCartModels));
}
public LiveData<List<ProductCartModels>> getDataCart(){
return products;
} }
} }
...@@ -5,6 +5,8 @@ import android.widget.ImageView; ...@@ -5,6 +5,8 @@ import android.widget.ImageView;
import androidx.databinding.BindingAdapter; import androidx.databinding.BindingAdapter;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.yono.messeripos.R;
public class PaymentResponse { public class PaymentResponse {
...@@ -44,6 +46,7 @@ public class PaymentResponse { ...@@ -44,6 +46,7 @@ public class PaymentResponse {
@BindingAdapter("logo_bank") @BindingAdapter("logo_bank")
public static void loadImage(ImageView view, String url) { public static void loadImage(ImageView view, String url) {
Glide.with(view.getContext()) Glide.with(view.getContext())
.applyDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.skeleton).error(R.drawable.skeleton))
.load(url) .load(url)
.into(view); .into(view);
} }
......
...@@ -99,6 +99,7 @@ ...@@ -99,6 +99,7 @@
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etQty" android:id="@+id/etQty"
android:enabled="false"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="1" android:text="1"
...@@ -134,6 +135,8 @@ ...@@ -134,6 +135,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/title_checkout" android:text="@string/title_checkout"
android:padding="15dp"
android:textSize="16sp"
android:layout_margin="10dp" android:layout_margin="10dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
...@@ -22,9 +22,7 @@ ...@@ -22,9 +22,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
android:paddingTop="20dp" android:paddingTop="20dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingStart="15dp" android:paddingStart="15dp"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="RtlSymmetry"> tools:ignore="RtlSymmetry">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
......
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="pay" android:text="pay"
android:padding="15dp"
android:textSize="16sp"
android:layout_margin="10dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
......
...@@ -93,6 +93,7 @@ ...@@ -93,6 +93,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/materialBtnAddCart"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="35dp" android:layout_height="35dp"
android:layout_gravity="bottom" android:layout_gravity="bottom"
......
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
<item name="actionBarStyle">@style/ThemeActionBar</item> <item name="actionBarStyle">@style/ThemeActionBar</item>
</style> </style>
<style name="AppTheme.my.a" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="ThemeActionBar" parent="Widget.MaterialComponents.Light.ActionBar.Solid"> <style name="ThemeActionBar" parent="Widget.MaterialComponents.Light.ActionBar.Solid">
<item name="android:background"> @null </item> <item name="android:background"> @null </item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment