Commit 64e20e3e authored by Trio Saputra's avatar Trio Saputra
parents bfcf7a7a 17865116
<component name="ProjectDictionaryState">
<dictionary name="ABI">
<words>
<w>transaksi</w>
</words>
</dictionary>
</component>
\ No newline at end of file
<component name="ProjectDictionaryState">
<dictionary name="ASUS">
<words>
<w>transaksi</w>
</words>
</dictionary>
</component>
\ No newline at end of file
...@@ -15,8 +15,10 @@ import com.example.yourcashiertest.adapters.CartAdapter; ...@@ -15,8 +15,10 @@ import com.example.yourcashiertest.adapters.CartAdapter;
import com.example.yourcashiertest.databinding.ActivityCartBinding; import com.example.yourcashiertest.databinding.ActivityCartBinding;
import com.example.yourcashiertest.entities.Cart; import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product; import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert; import com.example.yourcashiertest.utils.Convert;
import com.example.yourcashiertest.viewmodels.CartViewModel; import com.example.yourcashiertest.viewmodels.CartViewModel;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
public class CartActivity extends AppCompatActivity { public class CartActivity extends AppCompatActivity {
...@@ -25,6 +27,7 @@ public class CartActivity extends AppCompatActivity { ...@@ -25,6 +27,7 @@ public class CartActivity extends AppCompatActivity {
private static int SUM = 0; private static int SUM = 0;
public static String PRICE = "price"; public static String PRICE = "price";
Product product; Product product;
TransaksiViewModel transaksiViewModel;
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
@Override @Override
...@@ -38,6 +41,8 @@ public class CartActivity extends AppCompatActivity { ...@@ -38,6 +41,8 @@ public class CartActivity extends AppCompatActivity {
product = new Product(); product = new Product();
transaksiViewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
CartViewModel cartViewModel = new ViewModelProvider(this).get(CartViewModel.class); CartViewModel cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
cartViewModel.getCarts().observe(this, carts -> adapter.setCartList(carts)); cartViewModel.getCarts().observe(this, carts -> adapter.setCartList(carts));
...@@ -79,6 +84,19 @@ public class CartActivity extends AppCompatActivity { ...@@ -79,6 +84,19 @@ public class CartActivity extends AppCompatActivity {
startActivity(new Intent(CartActivity.this, PaymentActivity.class).putExtra(PRICE, SUM)); startActivity(new Intent(CartActivity.this, PaymentActivity.class).putExtra(PRICE, SUM));
finish(); finish();
}); });
binding.saveOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveTransaction(SUM);
}
});
}
private void saveTransaction(int amount) {
Transaksi transaksi = new Transaksi(0, "");
transaksi.setAmount(amount);
transaksi.setStatus("Pending");
transaksiViewModel.insertTransaksi(transaksi);
} }
@Override @Override
......
...@@ -25,7 +25,6 @@ import retrofit2.Response; ...@@ -25,7 +25,6 @@ import retrofit2.Response;
public class LoginActivity extends AppCompatActivity { public class LoginActivity extends AppCompatActivity {
ActivityLoginBinding binding; ActivityLoginBinding binding;
private PrefManager prefManager; private PrefManager prefManager;
UserViewModel viewModel; UserViewModel viewModel;
@Override @Override
...@@ -43,10 +42,6 @@ public class LoginActivity extends AppCompatActivity { ...@@ -43,10 +42,6 @@ public class LoginActivity extends AppCompatActivity {
binding.btnLogin.setOnClickListener(view -> { binding.btnLogin.setOnClickListener(view -> {
if(binding.etUsername.getText().toString().length() == 0 || binding.etPassword.getText().toString().length() == 0){ if(binding.etUsername.getText().toString().length() == 0 || binding.etPassword.getText().toString().length() == 0){
Toast.makeText(getApplicationContext(), "Please input Username and Password", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), "Please input Username and Password", Toast.LENGTH_SHORT).show();
}else if(!binding.etPassword.getText().toString().matches("[A-Za-z0-9]+")){
binding.etPassword.setError("Passwords can only contain Alphanumeric");
}else if(binding.etPassword.getText().toString().length() < 8) {
binding.etPassword.setError("Password length cannot be less than 8 characters");
}else{ }else{
binding.setLoading(true); binding.setLoading(true);
viewModel.setListUser(); viewModel.setListUser();
...@@ -72,10 +67,11 @@ public class LoginActivity extends AppCompatActivity { ...@@ -72,10 +67,11 @@ public class LoginActivity extends AppCompatActivity {
ApiClient.client(UserService.class, UserViewModel.BASE_URL).loginUser(login).enqueue(new Callback<ResponseLogin>() { ApiClient.client(UserService.class, UserViewModel.BASE_URL).loginUser(login).enqueue(new Callback<ResponseLogin>() {
@Override @Override
public void onResponse(Call<ResponseLogin> call, Response<ResponseLogin> response) { public void onResponse(Call<ResponseLogin> call, Response<ResponseLogin> response) {
if (response.code() >= 200 & response.code() <= 299){ if (response.body()!= null){
Log.d("body", String.valueOf(response.body().getData().getFullName())); Log.d("body", String.valueOf(response.body().getData().getFullName()));
prefManager.setFirstLogin(false); prefManager.setFirstLogin(false);
binding.setLoading(false); binding.setLoading(false);
Toast.makeText(getApplicationContext(), response.body().getMessages(), Toast.LENGTH_LONG).show();
startActivity(new Intent(LoginActivity.this, MainActivity.class) startActivity(new Intent(LoginActivity.this, MainActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
prefManager.setDataUser(response.body().getData().getFullName()); prefManager.setDataUser(response.body().getData().getFullName());
...@@ -84,7 +80,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -84,7 +80,7 @@ public class LoginActivity extends AppCompatActivity {
Toast.makeText(getApplicationContext(), "Please verify your account!", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Please verify your account!", Toast.LENGTH_LONG).show();
binding.setLoading(false); binding.setLoading(false);
}else{ }else{
Toast.makeText(getApplicationContext(), "Email or password wrong", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), response.body().getMessages(), Toast.LENGTH_LONG).show();
binding.setLoading(false); binding.setLoading(false);
} }
} }
......
package com.example.yourcashiertest.activities; package com.example.yourcashiertest.activities;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.os.Bundle; import android.os.Bundle;
import com.example.yourcashiertest.R; import com.example.yourcashiertest.R;
import com.example.yourcashiertest.adapters.OrderAdapter;
import com.example.yourcashiertest.databinding.ActivityOrderBinding;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
import java.util.List;
public class OrderActivity extends AppCompatActivity { public class OrderActivity extends AppCompatActivity {
ActivityOrderBinding binding;
OrderAdapter adapter;
TransaksiViewModel viewModel;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order); binding = DataBindingUtil.setContentView(this, R.layout.activity_order);
viewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
binding.rvListOrder.setLayoutManager(new LinearLayoutManager(this));
binding.rvListOrder.setAdapter(adapter);
viewModel.getList().observe(this, transaksi -> adapter.setTransaksiList(transaksi));
// adapter.setListener(new OrderAdapter.TransaksiListener() {
// @Override
// public void onCancel(Transaksi transaksi) {
//
// }
//
// @Override
// public void onContinue(Transaksi transaksi) {
//
// }
// });
} }
} }
\ No newline at end of file
...@@ -19,11 +19,13 @@ import com.example.yourcashiertest.databases.DBHelper; ...@@ -19,11 +19,13 @@ import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityPaymentBinding; import com.example.yourcashiertest.databinding.ActivityPaymentBinding;
import com.example.yourcashiertest.entities.Cart; import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product; import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.models.ResponsePayment; import com.example.yourcashiertest.models.ResponsePayment;
import com.example.yourcashiertest.utils.Convert; import com.example.yourcashiertest.utils.Convert;
import com.example.yourcashiertest.utils.ViewUtil; import com.example.yourcashiertest.utils.ViewUtil;
import com.example.yourcashiertest.viewmodels.CartViewModel; import com.example.yourcashiertest.viewmodels.CartViewModel;
import com.example.yourcashiertest.viewmodels.ProductViewModel; import com.example.yourcashiertest.viewmodels.ProductViewModel;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -37,6 +39,7 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -37,6 +39,7 @@ public class PaymentActivity extends AppCompatActivity {
public int amount; public int amount;
CartViewModel cartViewModel; CartViewModel cartViewModel;
ProductViewModel viewModel; ProductViewModel viewModel;
TransaksiViewModel payViewModel;
public static final String PAY_WITH = "pay_with"; public static final String PAY_WITH = "pay_with";
private ArrayList<ResponsePayment> responsePayments = new ArrayList<>(); private ArrayList<ResponsePayment> responsePayments = new ArrayList<>();
...@@ -47,6 +50,7 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -47,6 +50,7 @@ public class PaymentActivity extends AppCompatActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_payment); binding = DataBindingUtil.setContentView(this, R.layout.activity_payment);
payViewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
cartViewModel = new ViewModelProvider(this).get(CartViewModel.class); cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
viewModel = new ViewModelProvider(this).get(ProductViewModel.class); viewModel = new ViewModelProvider(this).get(ProductViewModel.class);
amount = getIntent().getIntExtra(CartActivity.PRICE, 0); amount = getIntent().getIntExtra(CartActivity.PRICE, 0);
...@@ -86,6 +90,14 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -86,6 +90,14 @@ public class PaymentActivity extends AppCompatActivity {
List<Product> products = DBHelper.getAllProduct(getApplicationContext()); List<Product> products = DBHelper.getAllProduct(getApplicationContext());
List<Cart> carts = DBHelper.getAllCart(getApplicationContext()); List<Cart> carts = DBHelper.getAllCart(getApplicationContext());
// just checking data
List<Transaksi> list = DBHelper.getAllTransaksi(getApplicationContext());
for (int i = 0; i < list.size(); i++){
Log.d("transaction", String.valueOf(list.get(i).getOrderId()));
}
createTransaksi(amount);
for (int c = 0; c < carts.size(); c++){ for (int c = 0; c < carts.size(); c++){
for (int p = 0; p < products.size(); p++){ for (int p = 0; p < products.size(); p++){
if (carts.get(c).getIdProduct() == products.get(p).getId()){ if (carts.get(c).getIdProduct() == products.get(p).getId()){
...@@ -99,6 +111,13 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -99,6 +111,13 @@ public class PaymentActivity extends AppCompatActivity {
} }
} }
private void createTransaksi(int amount) {
Transaksi transaksi = new Transaksi(0, "");
transaksi.setAmount(amount);
transaksi.setStatus("Success");
payViewModel.insertTransaksi(transaksi);
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
......
...@@ -40,7 +40,7 @@ public class RegisterActivity extends AppCompatActivity { ...@@ -40,7 +40,7 @@ public class RegisterActivity extends AppCompatActivity {
binding.etPassword.setError("Passwords can only contain Alphanumeric"); binding.etPassword.setError("Passwords can only contain Alphanumeric");
}else if(binding.etPassword.getText().toString().length() < 8) { }else if(binding.etPassword.getText().toString().length() < 8) {
binding.etPassword.setError("Password length cannot be less than 8 characters"); binding.etPassword.setError("Password length cannot be less than 8 characters");
}else if(binding.etPassword.getText().toString() != binding.etConfirmPassword.getText().toString()){ }else if(!binding.etPassword.getText().toString().equals(binding.etConfirmPassword.getText().toString())){
binding.etConfirmPassword.setError("Password doesn't match!"); binding.etConfirmPassword.setError("Password doesn't match!");
}else { }else {
user.setEmail(binding.etEmail.getText().toString()); user.setEmail(binding.etEmail.getText().toString());
...@@ -51,6 +51,7 @@ public class RegisterActivity extends AppCompatActivity { ...@@ -51,6 +51,7 @@ public class RegisterActivity extends AppCompatActivity {
Toast.makeText(getApplicationContext(), viewModel.getMessages(), Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), viewModel.getMessages(), Toast.LENGTH_LONG).show();
startActivity(new Intent(getApplicationContext(), LoginActivity.class)); startActivity(new Intent(getApplicationContext(), LoginActivity.class));
finish();
} }
}); });
} }
......
package com.example.yourcashiertest.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.databinding.ItemOrderBinding;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert;
import java.util.ArrayList;
import java.util.List;
public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder> {
private List<Transaksi> transaksiList = new ArrayList<>();
public interface TransaksiListener{
void onCancel(Transaksi transaksi);
void onContinue(Transaksi transaksi);
}
private TransaksiListener listener;
public void setListener(TransaksiListener listener) {
this.listener = listener;
}
public void setTransaksiList(List<Transaksi> transaksiList) {
this.transaksiList = transaksiList;
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new OrderAdapter.ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
R.layout.item_order,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.bindData(transaksiList.get(position), listener);
}
@Override
public int getItemCount() {
if (transaksiList.size() != 0){
return transaksiList.size();
}else return 0;
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ItemOrderBinding binding;
public ViewHolder(@NonNull ItemOrderBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
public void bindData(Transaksi transaksi, TransaksiListener listener){
binding.setTransaction(transaksi);
binding.setAmount(Convert.changeToCurrency(transaksi.getAmount()));
binding.btnCancel.setOnClickListener(view -> listener.onCancel(transaksi));
binding.btnContinue.setOnClickListener(view -> listener.onContinue(transaksi));
}
}
}
package com.example.yourcashiertest.daos; package com.example.yourcashiertest.daos;
import androidx.lifecycle.LiveData;
import androidx.room.Dao; import androidx.room.Dao;
import androidx.room.Delete; import androidx.room.Delete;
import androidx.room.Insert; import androidx.room.Insert;
...@@ -13,15 +14,19 @@ import java.util.List; ...@@ -13,15 +14,19 @@ import java.util.List;
@Dao @Dao
public interface TransaksiDao { public interface TransaksiDao {
@Query("SELECT * FROM Transaksi") @Query("SELECT * FROM Transaksi")
public List<Transaksi> getAll(); List<Transaksi> getTransaksi();
@Query("SELECT * FROM Transaksi ORDER BY orderId DESC")
LiveData<List<Transaksi>> getAll();
@Insert(onConflict = OnConflictStrategy.IGNORE) @Insert(onConflict = OnConflictStrategy.IGNORE)
public void insertTransaksi(Transaksi transaksi); void insertTransaksi(Transaksi transaksi);
@Update @Update
public void updateTransaksi(Transaksi transaksi); void updateTransaksi(Transaksi transaksi);
@Delete @Delete
public void deleteTransaksi(Transaksi transaksi); void deleteTransaksi(Transaksi transaksi);
} }
...@@ -2,8 +2,12 @@ package com.example.yourcashiertest.databases; ...@@ -2,8 +2,12 @@ package com.example.yourcashiertest.databases;
import android.content.Context; import android.content.Context;
import androidx.lifecycle.LiveData;
import com.example.yourcashiertest.entities.Cart; import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product; import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert;
import java.util.List; import java.util.List;
...@@ -21,4 +25,11 @@ public class DBHelper { ...@@ -21,4 +25,11 @@ public class DBHelper {
list = db.cartDao().getAllCarts(); list = db.cartDao().getAllCarts();
return list; return list;
} }
public static List<Transaksi> getAllTransaksi(Context context){
List<Transaksi> list;
LocalDatabase db = LocalDatabase.getDatabase(context);
list = db.transaksiDao().getTransaksi();
return list;
}
} }
...@@ -17,11 +17,12 @@ import com.example.yourcashiertest.daos.ProductDao; ...@@ -17,11 +17,12 @@ import com.example.yourcashiertest.daos.ProductDao;
import com.example.yourcashiertest.daos.TransaksiDao; import com.example.yourcashiertest.daos.TransaksiDao;
import com.example.yourcashiertest.entities.Cart; import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product; import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@Database(entities = {Product.class, Cart.class}, version = 4, exportSchema = false) @Database(entities = {Product.class, Cart.class, Transaksi.class}, version = 5, exportSchema = false)
public abstract class LocalDatabase extends RoomDatabase { public abstract class LocalDatabase extends RoomDatabase {
public abstract ProductDao productDao(); public abstract ProductDao productDao();
...@@ -42,13 +43,6 @@ public abstract class LocalDatabase extends RoomDatabase { ...@@ -42,13 +43,6 @@ public abstract class LocalDatabase extends RoomDatabase {
} }
}; };
public static final Migration MIGRATION_4_5 = new Migration(4, 5) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE IF NOT EXISTS Transaksi (orderId INTEGER NOT NULL, " +
"amount INTEGER NOT NULL, status TEXT NOT NULL, PRIMARY KEY(orderId))");
}
};
public static final Migration MIGRATION_2_3 = new Migration(2,3) { public static final Migration MIGRATION_2_3 = new Migration(2,3) {
@Override @Override
...@@ -64,6 +58,13 @@ public abstract class LocalDatabase extends RoomDatabase { ...@@ -64,6 +58,13 @@ public abstract class LocalDatabase extends RoomDatabase {
} }
}; };
public static final Migration MIGRATION_4_5 = new Migration(4, 5) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE IF NOT EXISTS Transaksi (orderId INTEGER NOT NULL, " +
"amount INTEGER NOT NULL, status TEXT NOT NULL, PRIMARY KEY(orderId))");
}
};
public static LocalDatabase getDatabase(Context context) { public static LocalDatabase getDatabase(Context context) {
if (INSTANCE == null) { if (INSTANCE == null) {
synchronized (LocalDatabase.class) { synchronized (LocalDatabase.class) {
......
...@@ -5,9 +5,8 @@ import android.os.Parcelable; ...@@ -5,9 +5,8 @@ import android.os.Parcelable;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.databinding.BindingAdapter; import androidx.databinding.BindingAdapter;
import androidx.room.ColumnInfo;
import androidx.room.Entity; import androidx.room.Entity;
import androidx.room.PrimaryKey; import androidx.room.PrimaryKey;
......
...@@ -29,6 +29,11 @@ public class Transaksi implements Parcelable { ...@@ -29,6 +29,11 @@ public class Transaksi implements Parcelable {
status = in.readString(); status = in.readString();
} }
public Transaksi(long amount, String status){
this.amount = amount;
this.status = status;
}
public static final Creator<Transaksi> CREATOR = new Creator<Transaksi>() { public static final Creator<Transaksi> CREATOR = new Creator<Transaksi>() {
@Override @Override
public Transaksi createFromParcel(Parcel in) { public Transaksi createFromParcel(Parcel in) {
......
...@@ -3,6 +3,8 @@ package com.example.yourcashiertest.repositories; ...@@ -3,6 +3,8 @@ package com.example.yourcashiertest.repositories;
import android.app.Application; import android.app.Application;
import androidx.lifecycle.LiveData;
import com.example.yourcashiertest.daos.TransaksiDao; import com.example.yourcashiertest.daos.TransaksiDao;
import com.example.yourcashiertest.databases.LocalDatabase; import com.example.yourcashiertest.databases.LocalDatabase;
import com.example.yourcashiertest.entities.Transaksi; import com.example.yourcashiertest.entities.Transaksi;
...@@ -11,7 +13,7 @@ import java.util.List; ...@@ -11,7 +13,7 @@ import java.util.List;
public class TransaksiRepository { public class TransaksiRepository {
private TransaksiDao dao; private TransaksiDao dao;
private List<Transaksi> allTransaksi; private LiveData<List<Transaksi>> allTransaksi;
public TransaksiRepository(Application application){ public TransaksiRepository(Application application){
LocalDatabase db = LocalDatabase.getDatabase(application); LocalDatabase db = LocalDatabase.getDatabase(application);
...@@ -19,7 +21,19 @@ public class TransaksiRepository { ...@@ -19,7 +21,19 @@ public class TransaksiRepository {
allTransaksi = dao.getAll(); allTransaksi = dao.getAll();
} }
public List<Transaksi> getAllTransaksi(){ public LiveData<List<Transaksi>> getAllTransaksi(){
return this.allTransaksi; return this.allTransaksi;
} }
public void insert(Transaksi transaksi){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.insertTransaksi(transaksi));
}
public void update(Transaksi transaksi){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.updateTransaksi(transaksi));
}
public void delete(Transaksi transaksi){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.deleteTransaksi(transaksi));
}
} }
...@@ -19,5 +19,22 @@ public class TransaksiViewModel extends AndroidViewModel { ...@@ -19,5 +19,22 @@ public class TransaksiViewModel extends AndroidViewModel {
public TransaksiViewModel(@NonNull Application application) { public TransaksiViewModel(@NonNull Application application) {
super(application); super(application);
repository = new TransaksiRepository(application); repository = new TransaksiRepository(application);
list = repository.getAllTransaksi();
}
public LiveData<List<Transaksi>> getList() {
return list;
}
public void insertTransaksi(Transaksi transaksi){
repository.insert(transaksi);
}
public void updateTransaksi(Transaksi transaksi){
repository.update(transaksi);
}
public void deleteTransaksi(Transaksi transaksi){
repository.delete(transaksi);
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="8dp" android:padding="8dp"
tools:context=".activities.OrderActivity"> tools:context=".activities.OrderActivity">
<TextView <TextView
android:id="@+id/tvListOrder" android:id="@+id/tvListOrder"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -19,6 +26,7 @@ ...@@ -19,6 +26,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.105" /> app:layout_constraintVertical_bias="0.105" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnPending" android:id="@+id/btnPending"
android:layout_width="160dp" android:layout_width="160dp"
...@@ -55,4 +63,5 @@ ...@@ -55,4 +63,5 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnPending" app:layout_constraintTop_toBottomOf="@id/btnPending"
tools:listitem="@layout/item_order" /> tools:listitem="@layout/item_order" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file </layout>
\ No newline at end of file
...@@ -5,15 +5,11 @@ ...@@ -5,15 +5,11 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<variable <variable
name="cartProduct" name="transaction"
type="com.example.yourcashiertest.entities.Cart" /> type="com.example.yourcashiertest.entities.Transaksi" />
<variable <variable
name="qty" name="amount"
type="String" />
<variable
name="price"
type="String" /> type="String" />
</data> </data>
...@@ -47,6 +43,7 @@ ...@@ -47,6 +43,7 @@
android:id="@+id/tvOrderId" android:id="@+id/tvOrderId"
android:layout_width="250dp" android:layout_width="250dp"
android:layout_height="41dp" android:layout_height="41dp"
android:text="@{transaction.orderId + ``}"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
...@@ -54,8 +51,7 @@ ...@@ -54,8 +51,7 @@
android:textAppearance="@style/some_id" android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@id/tvOrderNumber" app:layout_constraintStart_toEndOf="@id/tvOrderNumber"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="169dp" tools:layout_editor_absoluteX="169dp" />
tools:text="@{price}" />
<TextView <TextView
android:id="@+id/tvTotal" android:id="@+id/tvTotal"
...@@ -74,6 +70,7 @@ ...@@ -74,6 +70,7 @@
android:id="@+id/tvAmount" android:id="@+id/tvAmount"
android:layout_width="250dp" android:layout_width="250dp"
android:layout_height="41dp" android:layout_height="41dp"
android:text="@{amount}"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
...@@ -81,8 +78,7 @@ ...@@ -81,8 +78,7 @@
android:textAppearance="@style/some_id" android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@id/tvTotal" app:layout_constraintStart_toEndOf="@id/tvTotal"
app:layout_constraintTop_toBottomOf="@id/tvOrderId" app:layout_constraintTop_toBottomOf="@id/tvOrderId"
tools:layout_editor_absoluteX="169dp" tools:layout_editor_absoluteX="169dp"/>
tools:text="@{price}"/>
<TextView <TextView
android:id="@+id/tvStatus" android:id="@+id/tvStatus"
...@@ -91,11 +87,10 @@ ...@@ -91,11 +87,10 @@
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:gravity="center" android:gravity="center"
android:text="@{}" android:text="@{transaction.status}"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTotal" app:layout_constraintTop_toBottomOf="@+id/tvTotal" />
tools:text="Success" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnContinue" android:id="@+id/btnContinue"
......
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