Commit 6497aa0a authored by iman Fauzi's avatar iman Fauzi

fix input data daos

parent e23f08f8
...@@ -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);
}
}
...@@ -6,6 +6,7 @@ import androidx.lifecycle.ViewModelProviders; ...@@ -6,6 +6,7 @@ import androidx.lifecycle.ViewModelProviders;
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.os.Build;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
...@@ -15,6 +16,7 @@ import android.view.View; ...@@ -15,6 +16,7 @@ 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 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.snackbar.Snackbar;
...@@ -54,6 +56,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -54,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())){
...@@ -86,12 +89,11 @@ public class LoginActivity extends AppCompatActivity { ...@@ -86,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();
} }
} }
......
...@@ -9,6 +9,7 @@ import android.view.MenuItem; ...@@ -9,6 +9,7 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
...@@ -23,6 +24,7 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -23,6 +24,7 @@ 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.adapter.ProductAdapter;
import com.yono.messeripos.databinding.ActivityMainBinding; import com.yono.messeripos.databinding.ActivityMainBinding;
import com.yono.messeripos.models.MainViewModels; import com.yono.messeripos.models.MainViewModels;
...@@ -44,6 +46,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -44,6 +46,7 @@ public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding; ActivityMainBinding binding;
CategoryAdapter categoryAdapter; CategoryAdapter categoryAdapter;
ProductAdapter productAdapter; ProductAdapter productAdapter;
MaterialButton addToCart;
@Override @Override
...@@ -63,9 +66,6 @@ public class MainActivity extends AppCompatActivity { ...@@ -63,9 +66,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);
w.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
w.setStatusBarColor(ContextCompat.getColor(MainActivity.this, R.color.colorWhite));
} }
toolbar = findViewById(R.id.topAppBar); toolbar = findViewById(R.id.topAppBar);
...@@ -75,6 +75,8 @@ public class MainActivity extends AppCompatActivity { ...@@ -75,6 +75,8 @@ public class MainActivity extends AppCompatActivity {
int id = item.getItemId(); int id = item.getItemId();
if (id == R.id.menu_cart) { if (id == R.id.menu_cart) {
startActivity(new Intent(getApplicationContext(), CartActivity.class)); startActivity(new Intent(getApplicationContext(), CartActivity.class));
}else if (id == R.id.create) {
startActivity(new Intent(getApplicationContext(), FormProductActivity.class));
} }
return true; return true;
} }
...@@ -120,9 +122,5 @@ public class MainActivity extends AppCompatActivity { ...@@ -120,9 +122,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.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;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import com.yono.messeripos.R; import com.yono.messeripos.R;
import com.yono.messeripos.databinding.ItemListBinding; 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; import com.yono.messeripos.models.ProductModels;
import java.text.DecimalFormat; import java.text.DecimalFormat;
...@@ -19,11 +29,13 @@ import java.util.ArrayList; ...@@ -19,11 +29,13 @@ import java.util.ArrayList;
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHolder> { public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHolder> {
private ArrayList<ProductModels> productModels; private ArrayList<ProductModels> productModels;
Context context; Context context;
MainViewModelsCart mainViewModelsCart;
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();
} }
...@@ -73,6 +85,24 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -73,6 +85,24 @@ 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());
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,10 +32,12 @@ public class ProductCartModels implements Parcelable { ...@@ -32,10 +32,12 @@ public class ProductCartModels implements Parcelable {
@SerializedName("grand_total") @SerializedName("grand_total")
private int grand_total_orders; private int grand_total_orders;
public ProductCartModels(long id, 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 = id;
this.id_orders = id_orders; this.id_orders = id_orders;
this.quantity_orders = quantity_orders; this.quantity_orders = quantity_orders;
this.id_product_orders = id_product_orders; this.id_product_orders = id_product_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"
......
...@@ -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
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/btnDelete" app:layout_constraintStart_toStartOf="parent"
android:src="@drawable/ic_baseline_edit_24"/> android:src="@drawable/ic_baseline_edit_24"/>
<TextView <TextView
...@@ -91,6 +91,7 @@ ...@@ -91,6 +91,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