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

fix conflict with cart

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