Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
meser
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
Muhammad Suryono
meser
Commits
d72aaebb
Commit
d72aaebb
authored
Aug 24, 2020
by
Muhammad Suryono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Product
parent
9859df03
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
156 additions
and
72 deletions
+156
-72
LoginActivity.java
app/src/main/java/com/yono/messeripos/LoginActivity.java
+9
-0
MainActivity.java
app/src/main/java/com/yono/messeripos/MainActivity.java
+3
-2
SplashScreen.java
app/src/main/java/com/yono/messeripos/SplashScreen.java
+15
-3
ProductAdapter.java
...main/java/com/yono/messeripos/adapter/ProductAdapter.java
+14
-4
ApiHelper.java
app/src/main/java/com/yono/messeripos/api/ApiHelper.java
+1
-0
ProductModels.java
...c/main/java/com/yono/messeripos/models/ProductModels.java
+27
-0
ic_baseline_delete_24.xml
app/src/main/res/drawable/ic_baseline_delete_24.xml
+1
-1
ic_baseline_edit_24.xml
app/src/main/res/drawable/ic_baseline_edit_24.xml
+5
-0
item_list.xml
app/src/main/res/layout/item_list.xml
+81
-62
No files found.
app/src/main/java/com/yono/messeripos/LoginActivity.java
View file @
d72aaebb
...
...
@@ -4,7 +4,9 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProviders
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.util.Log
;
...
...
@@ -22,6 +24,8 @@ public class LoginActivity extends AppCompatActivity {
TextInputEditText
username
,
password
;
MaterialButton
btnLogin
;
MainViewModels
mainViewModels
;
SharedPreferences
sharedPreferences
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
...
...
@@ -32,6 +36,7 @@ public class LoginActivity extends AppCompatActivity {
btnLogin
=
findViewById
(
R
.
id
.
btnLogin
);
mainViewModels
=
ViewModelProviders
.
of
(
this
).
get
(
MainViewModels
.
class
);
sharedPreferences
=
getSharedPreferences
(
SplashScreen
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
btnLogin
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
...
...
@@ -52,7 +57,11 @@ public class LoginActivity extends AppCompatActivity {
Log
.
d
(
"Status"
,
usersModelsDataResponse
.
getMessageData
());
if
(!
usersModelsDataResponse
.
getMessageData
().
equals
(
"Login Failed"
)){
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
editor
.
putBoolean
(
SplashScreen
.
SESSION
,
true
);
editor
.
commit
();
startActivity
(
new
Intent
(
LoginActivity
.
this
,
MainActivity
.
class
));
finish
();
}
// ADD ELSE UNTUK LOGIN GAGAL
...
...
app/src/main/java/com/yono/messeripos/MainActivity.java
View file @
d72aaebb
...
...
@@ -19,6 +19,7 @@ import androidx.lifecycle.ViewModelProvider;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProviders
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
com.google.android.material.appbar.MaterialToolbar
;
...
...
@@ -110,8 +111,8 @@ public class MainActivity extends AppCompatActivity {
productModelsArrayList
.
addAll
(
productModels
);
productAdapter
.
setProduct
(
MainActivity
.
this
,
productModelsArrayList
);
binding
.
rv
Category
.
setLayoutManager
(
new
LinearLayoutManager
(
MainActivity
.
this
,
LinearLayoutManager
.
HORIZONTAL
,
false
));
binding
.
rv
Category
.
setAdapter
(
category
Adapter
);
binding
.
rv
Product
.
setLayoutManager
(
new
GridLayoutManager
(
MainActivity
.
this
,
2
));
binding
.
rv
Product
.
setAdapter
(
product
Adapter
);
}
...
...
app/src/main/java/com/yono/messeripos/SplashScreen.java
View file @
d72aaebb
package
com
.
yono
.
messeripos
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Looper
;
...
...
@@ -12,6 +14,10 @@ import androidx.appcompat.app.AppCompatActivity;
public
class
SplashScreen
extends
AppCompatActivity
{
ImageView
img
;
SharedPreferences
sharedPreferences
;
public
static
final
String
MY_SHARED_PREFERENCES
=
"my_shared_preferences"
;
public
static
final
String
SESSION
=
"session"
;
public
static
Boolean
session
;
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -20,12 +26,18 @@ public class SplashScreen extends AppCompatActivity {
// Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in);
// img.startAnimation(animation);
sharedPreferences
=
getSharedPreferences
(
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
session
=
sharedPreferences
.
getBoolean
(
SESSION
,
false
);
new
Handler
(
Looper
.
getMainLooper
()).
postDelayed
(()->{
if
(
session
){
startActivity
(
new
Intent
(
SplashScreen
.
this
,
MainActivity
.
class
));
finish
();
}
else
{
startActivity
(
new
Intent
(
SplashScreen
.
this
,
LoginActivity
.
class
));
finish
();
}
},
3000
);
}
}
app/src/main/java/com/yono/messeripos/adapter/ProductAdapter.java
View file @
d72aaebb
...
...
@@ -2,7 +2,6 @@ package com.yono.messeripos.adapter;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
...
...
@@ -10,13 +9,12 @@ import androidx.databinding.DataBindingUtil;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.yono.messeripos.R
;
import
com.yono.messeripos.databinding.ItemCategoryBinding
;
import
com.yono.messeripos.databinding.ItemListBinding
;
import
com.yono.messeripos.models.CategoryModels
;
import
com.yono.messeripos.models.ProductModels
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
ProductAdapter
extends
RecyclerView
.
Adapter
<
ProductAdapter
.
MyViewHolder
>
{
private
ArrayList
<
ProductModels
>
productModels
;
...
...
@@ -63,6 +61,18 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
public
void
bindData
(
ProductModels
products
)
{
binding
.
setProducts
(
products
);
DecimalFormat
rupiah
=
(
DecimalFormat
)
DecimalFormat
.
getCurrencyInstance
();
DecimalFormatSymbols
format
=
new
DecimalFormatSymbols
();
format
.
setCurrencySymbol
(
"Rp. "
);
format
.
setMonetaryDecimalSeparator
(
','
);
format
.
setGroupingSeparator
(
'.'
);
rupiah
.
setDecimalFormatSymbols
(
format
);
binding
.
setPrice
(
rupiah
.
format
(
products
.
getPriceProduct
()));
binding
.
setImage
(
products
.
getImageProduct
());
}
}
}
app/src/main/java/com/yono/messeripos/api/ApiHelper.java
View file @
d72aaebb
...
...
@@ -6,6 +6,7 @@ import retrofit2.converter.gson.GsonConverterFactory;
public
class
ApiHelper
{
public
static
final
String
BASE_URL
=
"https://rest-api-meser.herokuapp.com/"
;
public
static
final
String
VERSI_API_1
=
"api/v1/"
;
public
static
final
String
BASE_URL_IMAGE
=
"https://storage.googleapis.com/rest-api-meser.appspot.com/images/"
;
public
static
Retrofit
request
(
String
baseUrl
){
Retrofit
retrofit
=
new
Retrofit
.
Builder
()
...
...
app/src/main/java/com/yono/messeripos/models/ProductModels.java
View file @
d72aaebb
package
com
.
yono
.
messeripos
.
models
;
import
android.widget.ImageView
;
import
androidx.databinding.BindingAdapter
;
import
com.bumptech.glide.Glide
;
import
com.google.gson.annotations.SerializedName
;
import
com.yono.messeripos.R
;
import
com.yono.messeripos.api.ApiHelper
;
public
class
ProductModels
<
T
>
{
@SerializedName
(
"id"
)
...
...
@@ -15,6 +22,9 @@ public class ProductModels<T> {
@SerializedName
(
"stock"
)
private
int
stockProduct
;
@SerializedName
(
"image"
)
private
String
imageProduct
;
@SerializedName
(
"category"
)
private
T
categoryProduct
;
...
...
@@ -57,4 +67,21 @@ public class ProductModels<T> {
public
void
setCategoryProduct
(
T
categoryProduct
)
{
this
.
categoryProduct
=
categoryProduct
;
}
public
String
getImageProduct
()
{
return
imageProduct
;
}
public
void
setImageProduct
(
String
imageProduct
)
{
this
.
imageProduct
=
imageProduct
;
}
@BindingAdapter
(
"url"
)
public
static
void
setImage
(
ImageView
view
,
String
url
){
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
);
}
}
}
app/src/main/res/drawable/ic_baseline_delete_24.xml
View file @
d72aaebb
<vector
android:height=
"24dp"
android:tint=
"#F
F4A50
"
<vector
android:height=
"24dp"
android:tint=
"#F
C151B
"
android:viewportHeight=
"24"
android:viewportWidth=
"24"
android:width=
"24dp"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<path
android:fillColor=
"@android:color/white"
android:pathData=
"M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"
/>
...
...
app/src/main/res/drawable/ic_baseline_edit_24.xml
0 → 100644
View file @
d72aaebb
<vector
android:height=
"24dp"
android:tint=
"#34C25B"
android:viewportHeight=
"24"
android:viewportWidth=
"24"
android:width=
"24dp"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<path
android:fillColor=
"@android:color/white"
android:pathData=
"M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"
/>
</vector>
app/src/main/res/layout/item_list.xml
View file @
d72aaebb
...
...
@@ -7,79 +7,98 @@
<variable
name=
"products"
type=
"com.yono.messeripos.models.ProductModels"
/>
<variable
name=
"price"
type=
"String"
/>
<variable
name=
"image"
type=
"String"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"300dp"
android:layout_marginEnd=
"10dp"
android:layout_marginBottom=
"10dp"
>
<com.google.android.material.card.MaterialCardView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/cardview_default_radius"
android:padding=
"@dimen/cardview_default_elevation"
app:cardCornerRadius=
"@dimen/cardview_default_radius"
>
android:layout_height=
"match_parent"
app:cardElevation=
"0dp"
app:strokeWidth=
"1dp"
app:strokeColor=
"#3CB3B3B3"
app:cardCornerRadius=
"10dp"
>
<Relative
Layout
<androidx.constraintlayout.widget.Constraint
Layout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_cont
ent"
>
android:layout_height=
"match_par
ent"
>
<ImageView
android:id=
"@+id/ivMeser
"
android:id=
"@+id/image_product
"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:adjustViewBounds=
"true"
tools:src=
"@tools:sample/avatars"
/>
android:layout_height=
"200dp"
android:src=
"@mipmap/ic_launcher_round"
app:layout_constraintTop_toTopOf=
"parent"
app:url=
"@{image}"
android:scaleType=
"fitXY"
/>
<ImageView
android:id=
"@+id/btnDelete"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:src=
"@drawable/ic_baseline_delete_24"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvQuantity"
<ImageView
android:id=
"@+id/btnEdit"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/btnDelete"
android:src=
"@drawable/ic_baseline_edit_24"
/>
<TextView
android:id=
"@+id/title_product"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_above=
"@id/tvProduct"
android:layout_alignParentEnd=
"true"
android:background=
"#fff"
android:fontFamily=
"monospace"
android:padding=
"@dimen/material_emphasis_medium"
android:textColor=
"@android:color/white"
android:textSize=
"12sp"
app:layout_constraintTop_toBottomOf=
"@id/image_product"
app:layout_constraintStart_toStartOf=
"parent"
tools:text=
"@tools:sample/full_names"
android:textColor=
"@android:color/black"
android:layout_marginStart=
"10dp"
android:layout_marginTop=
"5dp"
android:textSize=
"18sp"
android:lines=
"1"
android:textStyle=
"bold"
tools:text=
"10"
/>
android:text=
"@{products.productName}"
android:maxLength=
"25"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvProduct"
android:layout_width=
"match_parent"
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/ivMeser"
android:fontFamily=
"@font/roboto"
android:gravity=
"center"
android:padding=
"@dimen/material_emphasis_high_type"
android:textAllCaps=
"true"
android:textColor=
"@color/ic_launcher_background"
android:textSize=
"12sp"
android:textStyle=
"bold"
tools:text=
"@tools:sample/full_names"
/>
app:layout_constraintTop_toBottomOf=
"@id/title_product"
app:layout_constraintStart_toStartOf=
"parent"
tools:text=
"@tools:sample/full_names"
android:textColor=
"@android:color/black"
android:layout_marginStart=
"10dp"
android:layout_marginTop=
"5dp"
android:textSize=
"18sp"
android:lines=
"1"
android:text=
"@{price}"
android:maxLength=
"25"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvPrice"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/tvProduct"
android:fontFamily=
"@font/roboto"
android:gravity=
"end"
android:paddingStart=
"@dimen/material_emphasis_medium"
android:paddingEnd=
"@dimen/material_emphasis_disabled"
android:textColor=
"@color/colorPrimary"
android:textSize=
"12sp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvDescription"
<com.google.android.material.button.MaterialButton
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/tvPrice"
android:fontFamily=
"@font/roboto"
android:padding=
"@dimen/material_emphasis_high_type"
android:textColor=
"@android:color/darker_gray"
android:textSize=
"12sp"
tools:text=
"@tools:sample/lorem"
/>
</RelativeLayout>
android:layout_height=
"35dp"
android:layout_gravity=
"bottom"
android:layout_marginStart=
"10dp"
android:layout_marginEnd=
"10dp"
android:text=
"Add To Cart"
/>
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView
>
</androidx.constraintlayout.widget.ConstraintLayout
>
</layout>
\ No newline at end of file
</layout>
\ No newline at end of file
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