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
962be717
Commit
962be717
authored
Aug 25, 2020
by
Wahyu Wibowo
Browse files
Options
Browse Files
Download
Plain Diff
mergin with trio
parents
083bfeb8
b566cd2d
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
364 additions
and
183 deletions
+364
-183
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+76
-1
CartAdapter.java
...ava/com/example/yourcashiertest/adapters/CartAdapter.java
+79
-0
activity_cart.xml
app/src/main/res/layout/activity_cart.xml
+94
-81
cart_item.xml
app/src/main/res/layout/cart_item.xml
+114
-100
styles.xml
app/src/main/res/values/styles.xml
+1
-1
No files found.
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
962be717
...
@@ -2,17 +2,33 @@ package com.example.yourcashiertest.activities;
...
@@ -2,17 +2,33 @@ package com.example.yourcashiertest.activities;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.app.AlertDialog
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.Button
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
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
{
public
class
CartActivity
extends
AppCompatActivity
{
ImageView
btnBack
;
ImageView
btnBack
;
Button
btnCheckout
;
ActivityCartBinding
binding
;
TextView
tvName
,
tvTotalPrice
,
tvQty
,
tvPrice
,
tvItems
;
Button
btnAdd
,
btnMin
,
btnCheckout
;
int
count
=
1
;
int
pricePerQty
;
int
totalPrice
;
int
totalItems
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
...
@@ -20,6 +36,44 @@ public class CartActivity extends AppCompatActivity {
...
@@ -20,6 +36,44 @@ public class CartActivity extends AppCompatActivity {
setContentView
(
R
.
layout
.
activity_cart
);
setContentView
(
R
.
layout
.
activity_cart
);
btnCheckout
=
findViewById
(
R
.
id
.
btnCheckout
);
btnCheckout
=
findViewById
(
R
.
id
.
btnCheckout
);
btnBack
=
findViewById
(
R
.
id
.
ivBtnBack
);
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
);
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
);
}
});
btnMin
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
count
--;
if
(
count
==
0
){
}
pricePerQty
=
price
*
count
;
changeOnClick
(
count
,
pricePerQty
,
totalPrice
);
}
});
btnBack
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
btnBack
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
View
view
)
{
public
void
onClick
(
View
view
)
{
...
@@ -34,4 +88,25 @@ public class CartActivity extends AppCompatActivity {
...
@@ -34,4 +88,25 @@ public class CartActivity extends AppCompatActivity {
}
}
});
});
}
}
private
String
changeToCurrency
(
int
totalPrice
){
DecimalFormat
decimalFormat
=
(
DecimalFormat
)
DecimalFormat
.
getCurrencyInstance
();
DecimalFormatSymbols
formatSymbols
=
new
DecimalFormatSymbols
();
formatSymbols
.
setCurrencySymbol
(
"Rp. "
);
formatSymbols
.
setMonetaryDecimalSeparator
(
','
);
formatSymbols
.
setGroupingSeparator
(
'.'
);
String
priceRupiah
=
decimalFormat
.
format
(
totalPrice
);
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/adapters/CartAdapter.java
0 → 100644
View file @
962be717
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.CartItemBinding
;
import
com.example.yourcashiertest.entities.Product
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
CartAdapter
extends
RecyclerView
.
Adapter
<
CartAdapter
.
ViewHolder
>
{
private
List
<
Product
>
productList
=
new
ArrayList
<>();
public
interface
Listener
{
void
onIncrease
();
void
onDecrease
();
}
public
Listener
listener
;
public
CartAdapter
(
List
<
Product
>
productList
)
{
this
.
productList
=
productList
;
notifyDataSetChanged
();
}
@NonNull
@Override
public
CartAdapter
.
ViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
return
new
CartAdapter
.
ViewHolder
(
DataBindingUtil
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
R
.
layout
.
cart_item
,
parent
,
false
)
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
CartAdapter
.
ViewHolder
holder
,
int
position
)
{
holder
.
bindData
(
productList
.
get
(
position
));
}
@Override
public
int
getItemCount
()
{
return
productList
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
CartItemBinding
cartItemBinding
;
private
int
price
=
10000
;
public
ViewHolder
(
@NonNull
CartItemBinding
cartItemBinding
)
{
super
(
cartItemBinding
.
getRoot
());
this
.
cartItemBinding
=
cartItemBinding
;
}
public
void
bindData
(
Product
product
)
{
cartItemBinding
.
setCartProduct
(
product
);
cartItemBinding
.
btnAdd
.
setOnClickListener
(
view
->
listener
.
onIncrease
());
cartItemBinding
.
btnMin
.
setOnClickListener
(
view
->
listener
.
onDecrease
());
}
}
}
app/src/main/res/layout/activity_cart.xml
View file @
962be717
<?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>
<variable
name=
"totalPrice"
type=
"String"
/>
<variable
name=
"totalItems"
type=
"String"
/>
</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=
"10dp"
android:padding=
"10dp"
...
@@ -34,35 +46,35 @@
...
@@ -34,35 +46,35 @@
<TextView
<TextView
android:id=
"@+id/items"
android:id=
"@+id/items"
android:layout_width=
"68
dp"
android:layout_width=
"60
dp"
android:layout_height=
"21dp"
android:layout_height=
"21dp"
android:layout_marginStart=
"32
dp"
android:layout_marginStart=
"50
dp"
android:gravity=
"top"
android:gravity=
"top"
android:text=
"@string/items"
android:text=
""
android:textAppearance=
"@style/items"
app:layout_constraintBottom_toBottomOf=
"@+id/cart"
app:layout_constraintBottom_toBottomOf=
"@+id/cart"
app:layout_constraintStart_toEndOf=
"@+id/cart"
app:layout_constraintStart_toEndOf=
"@+id/cart"
app:layout_constraintEnd_toStartOf=
"@+id/amount"
app:layout_constraintTop_toTopOf=
"@+id/cart"
app:layout_constraintTop_toTopOf=
"@+id/cart"
app:layout_constraintVertical_bias=
"0.466"
/>
app:layout_constraintVertical_bias=
"0.466"
/>
<View
<View
android:id=
"@+id/amount"
android:id=
"@+id/amount"
android:layout_width=
"112
dp"
android:layout_width=
"100
dp"
android:layout_height=
"59
dp"
android:layout_height=
"35
dp"
android:background=
"@drawable/rectangle_1"
android:background=
"@drawable/rectangle_1"
app:layout_constraintBottom_toBottomOf=
"@+id/items"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.666"
android:layout_marginTop=
"65dp"
android:layout_marginEnd=
"40dp"
app:layout_constraintStart_toEndOf=
"@+id/items"
app:layout_constraintStart_toEndOf=
"@+id/items"
app:layout_constraintTop_toTopOf=
"@+id/items
"
/>
app:layout_constraintTop_toTopOf=
"parent
"
/>
<TextView
<TextView
android:id=
"@+id/some_id
"
android:id=
"@+id/tvTotalPrice
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"20dp"
android:layout_height=
"20dp"
android:gravity=
"top"
android:gravity=
"top"
android:textColor=
"#fff"
android:textColor=
"#fff"
android:text=
"@string/some_id
"
android:text=
"
"
android:textAppearance=
"@style/some_id"
android:textAppearance=
"@style/some_id"
app:layout_constraintBottom_toBottomOf=
"@+id/amount"
app:layout_constraintBottom_toBottomOf=
"@+id/amount"
app:layout_constraintEnd_toEndOf=
"@+id/amount"
app:layout_constraintEnd_toEndOf=
"@+id/amount"
...
@@ -79,25 +91,26 @@
...
@@ -79,25 +91,26 @@
app:layout_constraintVertical_bias=
"0.089"
app:layout_constraintVertical_bias=
"0.089"
tools:layout_editor_absoluteX=
"9dp"
/>
tools:layout_editor_absoluteX=
"9dp"
/>
<include
android:id=
"@+id/include"
layout=
"@layout/cart_item"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/view"
app:layout_constraintVertical_bias=
"0.071"
/>
<Button
<Button
android:id=
"@+id/btnCheckout"
android:id=
"@+id/btnCheckout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/checkout"
android:text=
"@string/checkout"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/
include
"
app:layout_constraintTop_toBottomOf=
"@+id/
rvCartList
"
app:layout_constraintVertical_bias=
"1.0"
app:layout_constraintVertical_bias=
"1.0"
tools:layout_editor_absoluteX=
"39dp"
/>
tools:layout_editor_absoluteX=
"39dp"
/>
<include
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"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/view"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</layout>
\ No newline at end of file
app/src/main/res/layout/cart_item.xml
View file @
962be717
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
com.google.android.material.card.MaterialCardView
<
layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
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>
<variable
name=
"cartProduct"
type=
"com.example.yourcashiertest.entities.Product"
/>
<variable
name=
"qty"
type=
"String"
/>
</data>
<com.google.android.material.card.MaterialCardView
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_height=
"match_parent"
>
...
@@ -48,7 +58,8 @@
...
@@ -48,7 +58,8 @@
android:layout_alignParentLeft=
"true"
android:layout_alignParentLeft=
"true"
android:layout_alignParentTop=
"true"
android:layout_alignParentTop=
"true"
android:gravity=
"top"
android:gravity=
"top"
android:text=
"@string/some_id"
android:text=
""
tools:text=
"$6000"
android:textAppearance=
"@style/some_id"
android:textAppearance=
"@style/some_id"
app:layout_constraintBottom_toBottomOf=
"@+id/imageView"
app:layout_constraintBottom_toBottomOf=
"@+id/imageView"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
...
@@ -67,6 +78,7 @@
...
@@ -67,6 +78,7 @@
app:layout_constraintBottom_toBottomOf=
"@+id/some_id"
app:layout_constraintBottom_toBottomOf=
"@+id/some_id"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"1.0"
app:layout_constraintHorizontal_bias=
"1.0"
android:layout_marginEnd=
"@dimen/space_default"
app:layout_constraintStart_toEndOf=
"@+id/some_id"
app:layout_constraintStart_toEndOf=
"@+id/some_id"
app:layout_constraintTop_toTopOf=
"@+id/some_id"
app:layout_constraintTop_toTopOf=
"@+id/some_id"
app:layout_constraintVertical_bias=
"1.0"
/>
app:layout_constraintVertical_bias=
"1.0"
/>
...
@@ -97,7 +109,8 @@
...
@@ -97,7 +109,8 @@
android:id=
"@+id/tv_qty"
android:id=
"@+id/tv_qty"
android:layout_width=
"10dp"
android:layout_width=
"10dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"2"
android:text=
"@{qty}"
tools:text=
"4"
app:layout_constraintBottom_toBottomOf=
"@+id/v_add"
app:layout_constraintBottom_toBottomOf=
"@+id/v_add"
app:layout_constraintEnd_toStartOf=
"@+id/btn_add"
app:layout_constraintEnd_toStartOf=
"@+id/btn_add"
app:layout_constraintStart_toEndOf=
"@+id/btn_min"
app:layout_constraintStart_toEndOf=
"@+id/btn_min"
...
@@ -114,4 +127,5 @@
...
@@ -114,4 +127,5 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
</layout>
\ No newline at end of file
app/src/main/res/values/styles.xml
View file @
962be717
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
<style
name=
"some_id"
>
<style
name=
"some_id"
>
<item
name=
"android:textSize"
>
<item
name=
"android:textSize"
>
1
6
sp
1
3
sp
</item>
</item>
<item
name=
"android:textColor"
>
<item
name=
"android:textColor"
>
...
...
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