Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
Your Cashier
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ahmad Abi Mulya
Your Cashier
Commits
aad7db01
Commit
aad7db01
authored
Aug 26, 2020
by
Wahyu Wibowo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
edit visibility
parent
953044a3
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
389 additions
and
140 deletions
+389
-140
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+13
-61
LoginActivity.java
...com/example/yourcashiertest/activities/LoginActivity.java
+12
-14
MainActivity.java
.../com/example/yourcashiertest/activities/MainActivity.java
+56
-3
CartAdapter.java
...ava/com/example/yourcashiertest/adapters/CartAdapter.java
+14
-16
ProductAdapter.java
.../com/example/yourcashiertest/adapters/ProductAdapter.java
+6
-7
CartDao.java
...c/main/java/com/example/yourcashiertest/daos/CartDao.java
+22
-0
LocalDatabase.java
.../com/example/yourcashiertest/databases/LocalDatabase.java
+25
-0
Cart.java
.../main/java/com/example/yourcashiertest/entities/Cart.java
+73
-19
CartModel.java
...in/java/com/example/yourcashiertest/models/CartModel.java
+46
-0
CartRepository.java
.../example/yourcashiertest/repositories/CartRepository.java
+34
-0
CartVM.java
...n/java/com/example/yourcashiertest/viewmodels/CartVM.java
+19
-0
CartViewModel.java
...com/example/yourcashiertest/viewmodels/CartViewModel.java
+43
-1
activity_cart.xml
app/src/main/res/layout/activity_cart.xml
+22
-15
cart_item.xml
app/src/main/res/layout/cart_item.xml
+1
-1
item_list.xml
app/src/main/res/layout/item_list.xml
+3
-3
No files found.
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
activities
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.app.AlertDialog
;
import
android.content.DialogInterface
;
import
androidx.databinding.DataBindingUtil
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.CartAdapter
;
import
com.example.yourcashiertest.databinding.ActivityCartBinding
;
import
com.example.yourcashiertest.databinding.ItemListBinding
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
public
class
CartActivity
extends
AppCompatActivity
{
ImageView
btnBack
;
ActivityCartBinding
binding
;
TextView
tvName
,
tvTotalPrice
,
tvQty
,
tvPrice
,
tvItems
;
Button
btnAdd
,
btnMin
,
btnCheckout
;
int
count
=
1
;
int
pricePerQty
;
int
totalPrice
;
int
totalItems
;
CartAdapter
adapter
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_cart
);
btnCheckout
=
findViewById
(
R
.
id
.
btnCheckout
);
btnBack
=
findViewById
(
R
.
id
.
ivBtnBack
);
tvName
=
findViewById
(
R
.
id
.
burger_medi
);
tvQty
=
findViewById
(
R
.
id
.
tv_qty
);
btnAdd
=
findViewById
(
R
.
id
.
btn_add
);
btnMin
=
findViewById
(
R
.
id
.
btn_min
);
tvPrice
=
findViewById
(
R
.
id
.
some_id
);
tvTotalPrice
=
findViewById
(
R
.
id
.
tvTotalPrice
);
tvItems
=
findViewById
(
R
.
id
.
items
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_cart
);
// adapter = new CartAdapter();
// binding.rvCartList.setLayoutManager(new LinearLayoutManager(this));
// binding.rvCartList.setAdapter(adapter);
int
price
=
10000
;
tvName
.
setText
(
"Burger KING"
);
btnAdd
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
count
++;
pricePerQty
=
price
*
count
;
changeOnClick
(
count
,
pricePerQty
,
totalPrice
);
}
});
// CartViewModel cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
// cartViewModel.getCarts().observe(this, carts -> adapter.setCartList(carts));
//
// binding.setViewModelCart(cartViewModel);
btnMin
.
setOnClickListener
(
view
->
{
count
--;
if
(
count
==
0
){
}
pricePerQty
=
price
*
count
;
changeOnClick
(
count
,
pricePerQty
,
totalPrice
);
});
btnBack
.
setOnClickListener
(
view
->
startActivity
(
new
Intent
(
CartActivity
.
this
,
MainActivity
.
class
)));
btnCheckout
.
setOnClickListener
(
view
->
{
binding
.
ivBtnBack
.
setOnClickListener
(
view
->
startActivity
(
new
Intent
(
CartActivity
.
this
,
MainActivity
.
class
)));
binding
.
btnCheckout
.
setOnClickListener
(
view
->
{
startActivity
(
new
Intent
(
CartActivity
.
this
,
PaymentActivity
.
class
));
finish
();
});
...
...
@@ -93,10 +51,4 @@ public class CartActivity extends AppCompatActivity {
return
priceRupiah
;
}
private
void
changeOnClick
(
int
count
,
int
pricePerQty
,
int
totalPrice
){
tvQty
.
setText
(
String
.
valueOf
(
count
));
tvPrice
.
setText
(
changeToCurrency
(
pricePerQty
));
tvTotalPrice
.
setText
(
changeToCurrency
(
totalPrice
));
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/activities/LoginActivity.java
View file @
aad7db01
...
...
@@ -25,9 +25,7 @@ public class LoginActivity extends AppCompatActivity {
etUsername
=
findViewById
(
R
.
id
.
etUsername
);
btnLogin
=
findViewById
(
R
.
id
.
btnLogin
);
btnLogin
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
btnLogin
.
setOnClickListener
(
view
->
{
if
(
etUsername
.
getText
().
toString
().
length
()
==
0
||
etPassword
.
getText
().
toString
().
length
()
==
0
){
Toast
.
makeText
(
getApplicationContext
(),
"Please input Username and Password"
,
Toast
.
LENGTH_SHORT
).
show
();
...
...
@@ -38,7 +36,7 @@ public class LoginActivity extends AppCompatActivity {
}
else
{
startActivity
(
new
Intent
(
LoginActivity
.
this
,
MainActivity
.
class
)
.
putExtra
(
DATA_LOGIN
,
etUsername
.
getText
().
toString
()));
}
finish
();
}
});
...
...
app/src/main/java/com/example/yourcashiertest/activities/MainActivity.java
View file @
aad7db01
...
...
@@ -3,6 +3,7 @@ package com.example.yourcashiertest.activities;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.Manifest
;
...
...
@@ -11,19 +12,23 @@ import android.content.Intent;
import
android.os.Bundle
;
import
android.text.Editable
;
import
android.text.TextWatcher
;
import
android.view.Menu
;
import
android.widget.PopupMenu
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.adapters.ProductAdapter
;
import
com.example.yourcashiertest.databinding.ActivityMainBinding
;
import
com.example.yourcashiertest.databinding.ItemListBinding
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.models.CartModel
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
MainActivity
extends
AppCompatActivity
{
ActivityMainBinding
binding
;
ItemListBinding
bindingItem
;
public
static
final
String
DATA_PRODUCT
=
"DATA_PRODUCT"
;
...
...
@@ -32,6 +37,9 @@ public class MainActivity extends AppCompatActivity {
private
String
[]
permissions
=
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
};
public
static
boolean
visibility
=
false
;
CartViewModel
cartViewModel
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -40,6 +48,8 @@ public class MainActivity extends AppCompatActivity {
ProductAdapter
adapter
=
new
ProductAdapter
();
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_main
);
// cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
String
name
=
getIntent
().
getStringExtra
(
LoginActivity
.
DATA_LOGIN
);
binding
.
tvUser
.
setText
(
name
);
// settings menu
...
...
@@ -53,12 +63,25 @@ public class MainActivity extends AppCompatActivity {
startActivity
(
new
Intent
(
MainActivity
.
this
,
ProductActivity
.
class
));
break
;
case
R
.
id
.
item_two
:
adapter
.
setVisibility
(
true
);
if
(
visibility
){
visibility
=
false
;
}
else
{
visibility
=
true
;
}
finish
();
overridePendingTransition
(
0
,
0
);
startActivity
(
getIntent
());
overridePendingTransition
(
0
,
0
);
return
true
;
}
return
false
;
});
popupMenu
.
inflate
(
R
.
menu
.
settings_menu
);
if
(
visibility
){
popupMenu
.
getMenu
().
findItem
(
R
.
id
.
item_two
).
setTitle
(
"Gone"
);
}
else
{
popupMenu
.
getMenu
().
findItem
(
R
.
id
.
item_two
).
setTitle
(
"Update or delete"
);
}
popupMenu
.
show
();
});
...
...
@@ -77,6 +100,11 @@ public class MainActivity extends AppCompatActivity {
public
void
onDelete
(
Product
product
)
{
viewModel
.
deleteProduct
(
product
);
}
@Override
public
void
onAddToCart
(
Product
product
)
{
addToCart
(
product
);
}
});
binding
.
etSearch
.
addTextChangedListener
(
new
TextWatcher
()
{
...
...
@@ -98,6 +126,31 @@ public class MainActivity extends AppCompatActivity {
binding
.
setViewModel
(
viewModel
);
}
public
void
addToCart
(
Product
product
){
// Cart cart = new Cart(0,"", "", 0, 0);
// cart.setIdProduct(product.getId());
// cart.setImage(product.getPhoto());
// cart.setNameProduct(product.getName());
// cart.setPrice(product.getPrice());
// cart.setQty(1);
// cartViewModel.insertCart(cart);
List
<
CartModel
>
list
=
new
ArrayList
<>();
CartModel
cart
=
new
CartModel
();
cart
.
setIdProduct
(
product
.
getId
());
cart
.
setNameProduct
(
product
.
getName
());
cart
.
setImage
(
product
.
getPhoto
());
cart
.
setPrice
(
product
.
getPrice
());
cart
.
setQty
(
product
.
getQuantity
());
}
@Override
public
void
onBackPressed
()
{
super
.
onBackPressed
();
visibility
=
false
;
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
...
...
app/src/main/java/com/example/yourcashiertest/adapters/CartAdapter.java
View file @
aad7db01
...
...
@@ -10,26 +10,29 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databinding.CartItemBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.models.CartModel
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
CartAdapter
extends
RecyclerView
.
Adapter
<
CartAdapter
.
ViewHolder
>
{
private
List
<
Product
>
productList
=
new
ArrayList
<>();
private
List
<
Cart
>
carts
=
new
ArrayList
<>();
public
interface
Listener
{
public
interface
Cart
Listener
{
void
onIncrease
();
void
onDecrease
();
}
private
CartListener
listener
;
public
void
setCartListener
(
CartListener
listener
){
this
.
listener
=
listener
;
}
public
Listener
listener
;
public
CartAdapter
(
List
<
Product
>
productList
)
{
this
.
productList
=
productList
;
public
void
setCartList
(
List
<
Cart
>
carts
){
this
.
carts
=
carts
;
notifyDataSetChanged
();
}
...
...
@@ -48,12 +51,12 @@ public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
@Override
public
void
onBindViewHolder
(
@NonNull
CartAdapter
.
ViewHolder
holder
,
int
position
)
{
holder
.
bindData
(
productList
.
get
(
position
)
);
holder
.
bindData
(
carts
.
get
(
position
),
listener
);
}
@Override
public
int
getItemCount
()
{
return
productList
.
size
();
return
carts
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
...
...
@@ -66,13 +69,8 @@ public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
this
.
cartItemBinding
=
cartItemBinding
;
}
public
void
bindData
(
Product
product
)
{
cartItemBinding
.
setCartProduct
(
product
);
cartItemBinding
.
btnAdd
.
setOnClickListener
(
view
->
listener
.
onIncrease
());
cartItemBinding
.
btnMin
.
setOnClickListener
(
view
->
listener
.
onDecrease
());
public
void
bindData
(
Cart
cart
,
CartListener
listener
)
{
cartItemBinding
.
setCartProduct
(
cart
);
}
}
...
...
app/src/main/java/com/example/yourcashiertest/adapters/ProductAdapter.java
View file @
aad7db01
...
...
@@ -8,6 +8,7 @@ import androidx.databinding.DataBindingUtil;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.activities.MainActivity
;
import
com.example.yourcashiertest.databinding.ItemListBinding
;
import
com.example.yourcashiertest.entities.Product
;
...
...
@@ -19,12 +20,13 @@ import java.util.List;
public
class
ProductAdapter
extends
RecyclerView
.
Adapter
<
ProductAdapter
.
ViewHolder
>
{
private
List
<
Product
>
products
=
new
ArrayList
<>();
private
Boolean
visibility
;
public
interface
ProductListener
{
void
onUpdate
(
Product
product
);
void
onDelete
(
Product
product
);
void
onAddToCart
(
Product
product
);
}
private
ProductListener
listener
;
...
...
@@ -55,7 +57,6 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHold
@Override
public
void
onBindViewHolder
(
@NonNull
ProductAdapter
.
ViewHolder
holder
,
int
position
)
{
holder
.
bindData
(
products
.
get
(
position
),
listener
);
holder
.
binding
.
setVisibility
(
visibility
);
}
@Override
...
...
@@ -65,7 +66,6 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHold
public
static
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
ItemListBinding
binding
;
private
Boolean
visibility
;
public
ViewHolder
(
@NonNull
ItemListBinding
binding
)
{
super
(
binding
.
getRoot
());
...
...
@@ -75,6 +75,8 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHold
public
void
bindData
(
Product
product
,
ProductListener
listener
)
{
binding
.
setProduct
(
product
);
binding
.
setVisibility
(
MainActivity
.
visibility
);
DecimalFormat
rupiah
=
(
DecimalFormat
)
DecimalFormat
.
getCurrencyInstance
();
DecimalFormatSymbols
format
=
new
DecimalFormatSymbols
();
...
...
@@ -88,10 +90,7 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHold
binding
.
ivUpdate
.
setOnClickListener
(
view
->
listener
.
onUpdate
(
product
));
binding
.
ivDelete
.
setOnClickListener
(
view
->
listener
.
onDelete
(
product
));
binding
.
vAdd
.
setOnClickListener
(
view
->
listener
.
onAddToCart
(
product
));
}
}
public
void
setVisibility
(
Boolean
visibility
){
this
.
visibility
=
visibility
;
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/daos/CartDao.java
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
daos
;
import
androidx.lifecycle.LiveData
;
import
androidx.room.Dao
;
import
androidx.room.Delete
;
import
androidx.room.Insert
;
import
androidx.room.OnConflictStrategy
;
import
androidx.room.Query
;
import
androidx.room.Update
;
import
com.example.yourcashiertest.entities.Cart
;
import
java.util.List
;
@Dao
public
interface
CartDao
{
@Query
(
"SELECT * FROM Cart ORDER BY id DESC"
)
public
LiveData
<
List
<
Cart
>>
getCarts
();
@Insert
(
onConflict
=
OnConflictStrategy
.
IGNORE
)
public
void
insertCart
(
Cart
cart
);
@Update
public
void
updateCart
(
Cart
cart
);
@Delete
public
void
deleteCart
(
Cart
cart
);
}
app/src/main/java/com/example/yourcashiertest/databases/LocalDatabase.java
View file @
aad7db01
...
...
@@ -8,10 +8,13 @@ import androidx.room.DatabaseConfiguration;
import
androidx.room.InvalidationTracker
;
import
androidx.room.Room
;
import
androidx.room.RoomDatabase
;
import
androidx.room.migration.Migration
;
import
androidx.sqlite.db.SupportSQLiteDatabase
;
import
androidx.sqlite.db.SupportSQLiteOpenHelper
;
import
com.example.yourcashiertest.daos.CartDao
;
import
com.example.yourcashiertest.daos.ProductDao
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
java.util.concurrent.ExecutorService
;
...
...
@@ -21,6 +24,7 @@ import java.util.concurrent.Executors;
public
abstract
class
LocalDatabase
extends
RoomDatabase
{
public
abstract
ProductDao
productDao
();
// public abstract CartDao cartDao();
private
static
volatile
LocalDatabase
INSTANCE
;
private
static
final
int
NUMBER_OF_THREADS
=
4
;
...
...
@@ -28,6 +32,27 @@ public abstract class LocalDatabase extends RoomDatabase {
public
static
final
ExecutorService
databaseWriteExecutor
=
Executors
.
newFixedThreadPool
(
NUMBER_OF_THREADS
);
// public static final Migration MIGRATION_1_2 = new Migration(1,2) {
// @Override
// public void migrate(@NonNull SupportSQLiteDatabase database) {
// database.execSQL("CREATE TABLE IF NOT EXISTS Cart (id INTEGER, idProduct INTEGER,price INTEGER, qty INTEGER,nameProduct TEXT, image TEXT)");
// }
// };
//
// public static final Migration MIGRATION_1_3 = new Migration(1,3) {
// @Override
// public void migrate(@NonNull SupportSQLiteDatabase database) {
// database.execSQL("DROP TABLE Cart");
// }
// };
//
// public static final Migration MIGRATION_1_4 = new Migration(1,4) {
// @Override
// public void migrate(@NonNull SupportSQLiteDatabase database) {
// database.execSQL("CREATE TABLE IF NOT EXISTS Cart (id INTEGER, idProduct INTEGER,price INTEGER, qty INTEGER,nameProduct TEXT, image TEXT)");
// }
// };
public
static
LocalDatabase
getDatabase
(
Context
context
)
{
if
(
INSTANCE
==
null
)
{
synchronized
(
LocalDatabase
.
class
)
{
...
...
app/src/main/java/com/example/yourcashiertest/entities/Cart.java
View file @
aad7db01
...
...
@@ -3,26 +3,45 @@ package com.example.yourcashiertest.entities;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
androidx.annotation.NonNull
;
import
androidx.room.ColumnInfo
;
import
androidx.room.Entity
;
import
androidx.room.PrimaryKey
;
@Entity
(
tableName
=
"carts"
)
@Entity
public
class
Cart
implements
Parcelable
{
@PrimaryKey
(
autoGenerate
=
true
)
@NonNull
@ColumnInfo
(
name
=
"id"
)
private
long
id
;
Product
item
;
long
amount
;
@NonNull
@ColumnInfo
(
name
=
"idProduct"
)
long
idProduct
;
public
Cart
(
Product
item
,
long
amount
){
this
.
item
=
item
;
this
.
amount
=
amount
;
}
@NonNull
@ColumnInfo
(
name
=
"price"
)
long
price
;
@NonNull
@ColumnInfo
(
name
=
"qty"
)
long
qty
;
@NonNull
@ColumnInfo
(
name
=
"nameProduct"
)
String
nameProduct
;
@NonNull
@ColumnInfo
(
name
=
"image"
)
String
image
;
protected
Cart
(
Parcel
in
)
{
id
=
in
.
readLong
();
item
=
in
.
readParcelable
(
Product
.
class
.
getClassLoader
());
amount
=
in
.
readLong
();
idProduct
=
in
.
readLong
();
nameProduct
=
in
.
readString
();
image
=
in
.
readString
();
price
=
in
.
readLong
();
qty
=
in
.
readLong
();
}
public
static
final
Creator
<
Cart
>
CREATOR
=
new
Creator
<
Cart
>()
{
...
...
@@ -37,6 +56,14 @@ public class Cart implements Parcelable {
}
};
public
Cart
(
long
idProduct
,
String
nameProduct
,
String
image
,
long
price
,
long
qty
){
this
.
idProduct
=
idProduct
;
this
.
nameProduct
=
nameProduct
;
this
.
image
=
image
;
this
.
price
=
price
;
this
.
qty
=
qty
;
}
public
long
getId
()
{
return
id
;
}
...
...
@@ -45,20 +72,44 @@ public class Cart implements Parcelable {
this
.
id
=
id
;
}
public
Product
getItem
()
{
return
item
;
public
long
getIdProduct
()
{
return
idProduct
;
}
public
void
setIdProduct
(
long
idProduct
)
{
this
.
idProduct
=
idProduct
;
}
public
String
getNameProduct
()
{
return
nameProduct
;
}
public
void
setNameProduct
(
String
nameProduct
)
{
this
.
nameProduct
=
nameProduct
;
}
public
String
getImage
()
{
return
image
;
}
public
void
setImage
(
String
image
)
{
this
.
image
=
image
;
}
public
long
getPrice
()
{
return
price
;
}
public
void
set
Item
(
Product
item
)
{
this
.
item
=
item
;
public
void
set
Price
(
long
price
)
{
this
.
price
=
price
;
}
public
long
get
Amount
()
{
return
amount
;
public
long
get
Qty
()
{
return
qty
;
}
public
void
set
Amount
(
long
amount
)
{
this
.
amount
=
amount
;
public
void
set
Qty
(
long
qty
)
{
this
.
qty
=
qty
;
}
@Override
...
...
@@ -69,7 +120,10 @@ public class Cart implements Parcelable {
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeLong
(
id
);
dest
.
writeParcelable
(
item
,
flags
);
dest
.
writeLong
(
amount
);
dest
.
writeLong
(
idProduct
);
dest
.
writeString
(
nameProduct
);
dest
.
writeString
(
image
);
dest
.
writeLong
(
price
);
dest
.
writeLong
(
qty
);
}
}
app/src/main/java/com/example/yourcashiertest/models/CartModel.java
0 → 100644
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
models
;
public
class
CartModel
{
long
price
,
qty
,
idProduct
;
String
nameProduct
,
image
;
public
long
getPrice
()
{
return
price
;
}
public
void
setPrice
(
long
price
)
{
this
.
price
=
price
;
}
public
long
getQty
()
{
return
qty
;
}
public
void
setQty
(
long
qty
)
{
this
.
qty
=
qty
;
}
public
long
getIdProduct
()
{
return
idProduct
;
}
public
void
setIdProduct
(
long
idProduct
)
{
this
.
idProduct
=
idProduct
;
}
public
String
getNameProduct
()
{
return
nameProduct
;
}
public
void
setNameProduct
(
String
nameProduct
)
{
this
.
nameProduct
=
nameProduct
;
}
public
String
getImage
()
{
return
image
;
}
public
void
setImage
(
String
image
)
{
this
.
image
=
image
;
}
}
app/src/main/java/com/example/yourcashiertest/repositories/CartRepository.java
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
repositories
;
import
android.app.Application
;
import
androidx.lifecycle.LiveData
;
import
com.example.yourcashiertest.daos.CartDao
;
import
com.example.yourcashiertest.databases.LocalDatabase
;
import
com.example.yourcashiertest.entities.Cart
;
import
java.util.List
;
public
class
CartRepository
{
private
CartDao
cartDao
;
private
LiveData
<
List
<
Cart
>>
carts
;
public
CartRepository
(
Application
application
){
LocalDatabase
db
=
LocalDatabase
.
getDatabase
(
application
);
// cartDao = db.cartDao();
carts
=
cartDao
.
getCarts
();
}
public
void
insert
(
Cart
cart
){
LocalDatabase
.
databaseWriteExecutor
.
execute
(()
->
cartDao
.
insertCart
(
cart
));
}
public
void
update
(
Cart
cart
){
LocalDatabase
.
databaseWriteExecutor
.
execute
(()
->
cartDao
.
updateCart
(
cart
));
}
public
void
delete
(
Cart
cart
){
LocalDatabase
.
databaseWriteExecutor
.
execute
(()
->
cartDao
.
deleteCart
(
cart
));
}
public
LiveData
<
List
<
Cart
>>
getAllCart
(){
return
this
.
carts
;
}
}
app/src/main/java/com/example/yourcashiertest/viewmodels/CartVM.java
0 → 100644
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
viewmodels
;
import
androidx.lifecycle.MutableLiveData
;
import
androidx.lifecycle.ViewModel
;
import
com.example.yourcashiertest.models.CartModel
;
import
java.util.List
;
public
class
CartVM
extends
ViewModel
{
public
MutableLiveData
<
List
<
CartModel
>>
allCart
;
public
MutableLiveData
<
List
<
CartModel
>>
getAllCart
()
{
return
allCart
;
}
public
void
setAllCart
(
List
<
CartModel
>
cart
)
{
this
.
allCart
.
postValue
(
cart
);
}
}
app/src/main/java/com/example/yourcashiertest/viewmodels/CartViewModel.java
View file @
aad7db01
package
com
.
example
.
yourcashiertest
.
viewmodels
;
public
class
CartViewModel
{
import
android.app.Application
;
import
androidx.annotation.NonNull
;
import
androidx.lifecycle.AndroidViewModel
;
import
androidx.lifecycle.LiveData
;
import
androidx.lifecycle.MutableLiveData
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.repositories.CartRepository
;
import
java.util.List
;
public
class
CartViewModel
extends
AndroidViewModel
{
private
MutableLiveData
<
Cart
>
cart
=
new
MutableLiveData
<>();
private
CartRepository
repository
;
private
LiveData
<
List
<
Cart
>>
carts
;
public
CartViewModel
(
@NonNull
Application
application
)
{
super
(
application
);
repository
=
new
CartRepository
(
application
);
this
.
carts
=
repository
.
getAllCart
();
}
public
LiveData
<
List
<
Cart
>>
getCarts
(){
return
this
.
carts
;
}
public
void
insertCart
(
Cart
cart
){
repository
.
insert
(
cart
);
}
public
void
updateCart
(
Cart
cart
){
repository
.
update
(
cart
);
}
public
void
deleteCart
(
Cart
cart
){
repository
.
delete
(
cart
);
}
public
MutableLiveData
<
Cart
>
getCart
(){
return
this
.
cart
;
}
}
app/src/main/res/layout/activity_cart.xml
View file @
aad7db01
...
...
@@ -5,9 +5,14 @@
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
<variable
name=
"viewModelCart"
type=
"com.example.yourcashiertest.viewmodels.CartViewModel"
/>
<variable
name=
"totalPrice"
type=
"String"
/>
<variable
name=
"totalItems"
type=
"String"
/>
...
...
@@ -100,16 +105,18 @@
app:layout_constraintTop_toBottomOf=
"@+id/rvCartList"
app:layout_constraintVertical_bias=
"1.0"
tools:layout_editor_absoluteX=
"39dp"
/>
<include
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvCartList"
layout=
"@layout/cart_item"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/space_default"
app:layout_constraintStart_toStartOf=
"parent"
android:layout_height=
"0dp"
android:layout_marginVertical=
"15dp"
android:padding=
"@dimen/space_small"
app:layout_constraintBottom_toTopOf=
"@id/btnCheckout"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/view"
/>
tools:ignore=
"MissingConstraints"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
app/src/main/res/layout/cart_item.xml
View file @
aad7db01
...
...
@@ -6,7 +6,7 @@
<data>
<variable
name=
"cartProduct"
type=
"com.example.yourcashiertest.entities.
Produc
t"
/>
type=
"com.example.yourcashiertest.entities.
Car
t"
/>
<variable
name=
"qty"
type=
"String"
/>
...
...
app/src/main/res/layout/item_list.xml
View file @
aad7db01
...
...
@@ -15,7 +15,7 @@
<variable
name=
"visibility"
type=
"
B
oolean"
/>
type=
"
b
oolean"
/>
</data>
<com.google.android.material.card.MaterialCardView
...
...
@@ -50,7 +50,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/space_small"
android:visibility=
"
visible
"
android:visibility=
"
@{visibility ? View.VISIBLE : View.GONE}
"
android:src=
"@drawable/ic_update"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_product"
app:layout_constraintStart_toStartOf=
"@+id/iv_product"
...
...
@@ -63,7 +63,7 @@
android:layout_height=
"wrap_content"
android:layout_alignParentEnd=
"true"
android:padding=
"@dimen/space_small"
android:visibility=
"
visible
"
android:visibility=
"
@{visibility ? View.VISIBLE : View.GONE}
"
android:src=
"@drawable/ic_delete"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_product"
app:layout_constraintEnd_toEndOf=
"@+id/iv_product"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment