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
92075dc6
Commit
92075dc6
authored
Aug 28, 2020
by
Ahmad Abi Mulya
Browse files
Options
Browse Files
Download
Plain Diff
Update Login & Register
parents
1d179431
2a6a2dab
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
477 additions
and
235 deletions
+477
-235
build.gradle
app/build.gradle
+5
-0
LoginActivity.java
...com/example/yourcashiertest/activities/LoginActivity.java
+33
-6
RegisterActivity.java
.../example/yourcashiertest/activities/RegisterActivity.java
+35
-1
CartAdapter.java
...ava/com/example/yourcashiertest/adapters/CartAdapter.java
+0
-3
ApiClient.java
...n/java/com/example/yourcashiertest/clients/ApiClient.java
+21
-0
CartModel.java
...in/java/com/example/yourcashiertest/models/CartModel.java
+0
-46
ResponseUser.java
...java/com/example/yourcashiertest/models/ResponseUser.java
+40
-0
User.java
...rc/main/java/com/example/yourcashiertest/models/User.java
+89
-0
UserService.java
...ava/com/example/yourcashiertest/services/UserService.java
+23
-0
CartVM.java
...n/java/com/example/yourcashiertest/viewmodels/CartVM.java
+0
-19
UserViewModel.java
...com/example/yourcashiertest/viewmodels/UserViewModel.java
+59
-0
activity_register.xml
app/src/main/res/layout/activity_register.xml
+172
-160
No files found.
app/build.gradle
View file @
92075dc6
...
@@ -52,6 +52,11 @@ dependencies {
...
@@ -52,6 +52,11 @@ dependencies {
implementation
"com.github.bumptech.glide:glide:$glide_version"
implementation
"com.github.bumptech.glide:glide:$glide_version"
annotationProcessor
"com.github.bumptech.glide:compiler:$glide_version"
annotationProcessor
"com.github.bumptech.glide:compiler:$glide_version"
// service
implementation
'com.squareup.retrofit2:retrofit:2.9.0'
implementation
'com.squareup.retrofit2:converter-gson:2.9.0'
implementation
'com.google.code.gson:gson:2.8.6'
testImplementation
'junit:junit:4.13'
testImplementation
'junit:junit:4.13'
androidTestImplementation
'androidx.test.ext:junit:1.1.1'
androidTestImplementation
'androidx.test.ext:junit:1.1.1'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
...
...
app/src/main/java/com/example/yourcashiertest/activities/LoginActivity.java
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
activities
;
package
com
.
example
.
yourcashiertest
.
activities
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
...
@@ -9,15 +11,21 @@ import android.view.View;
...
@@ -9,15 +11,21 @@ import android.view.View;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.google.android.material.button.MaterialButton
;
import
com.google.android.material.button.MaterialButton
;
import
com.google.android.material.textfield.TextInputEditText
;
import
com.google.android.material.textfield.TextInputEditText
;
import
java.util.List
;
public
class
LoginActivity
extends
AppCompatActivity
{
public
class
LoginActivity
extends
AppCompatActivity
{
TextInputEditText
etUsername
,
etPassword
;
TextInputEditText
etUsername
,
etPassword
;
MaterialButton
btnLogin
;
MaterialButton
btnLogin
;
public
static
final
String
DATA_LOGIN
=
"DATA_LOGIN"
;
public
static
final
String
DATA_LOGIN
=
"DATA_LOGIN"
;
private
PrefManager
prefManager
;
private
PrefManager
prefManager
;
UserViewModel
viewModel
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
...
@@ -28,7 +36,7 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -28,7 +36,7 @@ public class LoginActivity extends AppCompatActivity {
Log
.
d
(
"login1"
,
""
+
prefManager
.
isFirstLogin
());
Log
.
d
(
"login1"
,
""
+
prefManager
.
isFirstLogin
());
if
(!
prefManager
.
isFirstLogin
())
{
if
(!
prefManager
.
isFirstLogin
())
{
Log
.
d
(
"login2"
,
""
+
prefManager
.
isFirstLogin
());
Log
.
d
(
"login2"
,
""
+
prefManager
.
isFirstLogin
());
launchMai
n
();
checkSessio
n
();
finish
();
finish
();
}
}
Log
.
d
(
"login3"
,
""
+
prefManager
.
isFirstLogin
());
Log
.
d
(
"login3"
,
""
+
prefManager
.
isFirstLogin
());
...
@@ -36,15 +44,13 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -36,15 +44,13 @@ public class LoginActivity extends AppCompatActivity {
etUsername
=
findViewById
(
R
.
id
.
etUsername
);
etUsername
=
findViewById
(
R
.
id
.
etUsername
);
btnLogin
=
findViewById
(
R
.
id
.
btnLogin
);
btnLogin
=
findViewById
(
R
.
id
.
btnLogin
);
btnLogin
.
setOnClickListener
(
view
->
{
viewModel
=
new
ViewModelProvider
(
this
,
new
ViewModelProvider
.
NewInstanceFactory
()).
get
(
UserViewModel
.
class
);
btnLogin
.
setOnClickListener
(
view
->
{
if
(
etUsername
.
getText
().
toString
().
length
()
==
0
||
etPassword
.
getText
().
toString
().
length
()
==
0
){
if
(
etUsername
.
getText
().
toString
().
length
()
==
0
||
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
(!
etPassword
.
getText
().
toString
().
matches
(
"[A-Za-z0-9]+"
)){
etPassword
.
setError
(
"Passwords can only contain Alphanumeric"
);
}
else
if
(
etPassword
.
getText
().
toString
().
length
()
<
8
)
{
etPassword
.
setError
(
"Password length cannot be less than 8 characters"
);
}
else
{
}
else
{
viewModel
.
setListUser
();
launchMain
();
launchMain
();
}
}
});
});
...
@@ -58,6 +64,27 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -58,6 +64,27 @@ public class LoginActivity extends AppCompatActivity {
startActivity
(
new
Intent
(
LoginActivity
.
this
,
RegisterActivity
.
class
));
startActivity
(
new
Intent
(
LoginActivity
.
this
,
RegisterActivity
.
class
));
}
}
public
void
launchMain
()
{
public
void
launchMain
()
{
viewModel
.
getListUser
().
observe
(
this
,
users
->
{
for
(
int
i
=
0
;
i
<
users
.
size
();
i
++){
if
(
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())
&&
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
prefManager
.
setFirstLogin
(
false
);
startActivity
(
new
Intent
(
LoginActivity
.
this
,
MainActivity
.
class
).
putExtra
(
DATA_LOGIN
,
users
.
get
(
i
).
getFullName
()).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TASK
).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
));
finish
();
return
;
}
else
if
(!
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())){
etUsername
.
setError
(
"Email Not Found!"
);
}
else
if
(!
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
etPassword
.
setError
(
"Password Wrong!"
);
}
}
});
// prefManager.setFirstLogin(false);
// startActivity(new Intent(LoginActivity.this, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
// finish();
}
public
void
checkSession
(){
prefManager
.
setFirstLogin
(
false
);
prefManager
.
setFirstLogin
(
false
);
startActivity
(
new
Intent
(
LoginActivity
.
this
,
MainActivity
.
class
).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TASK
).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
));
startActivity
(
new
Intent
(
LoginActivity
.
this
,
MainActivity
.
class
).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TASK
).
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
));
finish
();
finish
();
...
...
app/src/main/java/com/example/yourcashiertest/activities/RegisterActivity.java
View file @
92075dc6
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.ViewModelProvider
;
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.webkit.WebView
;
import
android.webkit.WebView
;
import
android.widget.ProgressBar
;
import
android.widget.ProgressBar
;
import
android.widget.Toast
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databinding.ActivityRegisterBinding
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
public
class
RegisterActivity
extends
AppCompatActivity
{
public
class
RegisterActivity
extends
AppCompatActivity
{
WebView
wbCompany
;
WebView
wbCompany
;
ProgressBar
pbLoading
;
ProgressBar
pbLoading
;
private
static
final
String
urLCompany
=
"http://multidaya.id/"
;
private
static
final
String
urLCompany
=
"http://multidaya.id/"
;
ActivityRegisterBinding
binding
;
User
user
;
UserViewModel
viewModel
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_register
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_register
);
user
=
new
User
();
viewModel
=
new
ViewModelProvider
(
this
,
new
ViewModelProvider
.
NewInstanceFactory
()).
get
(
UserViewModel
.
class
);
binding
.
btnRegister
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
binding
.
etUsername
.
getText
().
toString
().
length
()
==
0
||
binding
.
etPassword
.
getText
().
toString
().
length
()
==
0
||
binding
.
etEmail
.
getText
().
toString
().
length
()
==
0
||
binding
.
etPhoneNumber
.
getText
().
toString
().
length
()
==
0
){
Toast
.
makeText
(
getApplicationContext
(),
"Please input All Required Data"
,
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
{
user
.
setEmail
(
binding
.
etEmail
.
getText
().
toString
());
user
.
setFullName
(
binding
.
etUsername
.
getText
().
toString
());
user
.
setPassword
(
binding
.
etPassword
.
getText
().
toString
());
user
.
setPhoneNumber
(
binding
.
etPhoneNumber
.
getText
().
toString
());
viewModel
.
registrasi
(
user
);
Toast
.
makeText
(
getApplicationContext
(),
"Register berhasil"
,
Toast
.
LENGTH_LONG
).
show
();
startActivity
(
new
Intent
(
getApplicationContext
(),
LoginActivity
.
class
));
}
}
});
}
}
public
void
tvSignInHere
(
View
view
)
{
public
void
tvSignInHere
(
View
view
)
{
...
...
app/src/main/java/com/example/yourcashiertest/adapters/CartAdapter.java
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
adapters
;
package
com
.
example
.
yourcashiertest
.
adapters
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -11,8 +10,6 @@ import androidx.recyclerview.widget.RecyclerView;
...
@@ -11,8 +10,6 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databinding.CartItemBinding
;
import
com.example.yourcashiertest.databinding.CartItemBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.models.CartModel
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
import
java.text.DecimalFormatSymbols
;
...
...
app/src/main/java/com/example/yourcashiertest/clients/ApiClient.java
0 → 100644
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
clients
;
import
com.google.gson.GsonBuilder
;
import
retrofit2.Retrofit
;
import
retrofit2.converter.gson.GsonConverterFactory
;
public
class
ApiClient
{
public
static
<
T
>
T
client
(
Class
<
T
>
service
,
String
url
)
{
Retrofit
retrofit
=
new
Retrofit
.
Builder
()
.
baseUrl
(
url
)
.
addConverterFactory
(
GsonConverterFactory
.
create
(
new
GsonBuilder
().
setLenient
().
create
()
)
)
.
build
();
return
retrofit
.
create
(
service
);
}
}
app/src/main/java/com/example/yourcashiertest/models/CartModel.java
deleted
100644 → 0
View file @
1d179431
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/models/ResponseUser.java
0 → 100644
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
models
;
import
java.util.List
;
import
com.google.gson.annotations.SerializedName
;
public
class
ResponseUser
{
@SerializedName
(
"data"
)
private
List
<
User
>
user
;
@SerializedName
(
"message"
)
private
String
message
;
@SerializedName
(
"status"
)
private
boolean
status
;
public
void
setData
(
List
<
User
>
data
){
this
.
user
=
data
;
}
public
List
<
User
>
getData
(){
return
user
;
}
public
void
setMessage
(
String
message
){
this
.
message
=
message
;
}
public
String
getMessage
(){
return
message
;
}
public
void
setStatus
(
boolean
status
){
this
.
status
=
status
;
}
public
boolean
isStatus
(){
return
status
;
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/models/User.java
0 → 100644
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
models
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
com.google.gson.annotations.SerializedName
;
public
class
User
implements
Parcelable
{
@SerializedName
(
"password"
)
private
String
password
;
@SerializedName
(
"full_name"
)
private
String
fullName
;
@SerializedName
(
"phone_number"
)
private
String
phoneNumber
;
@SerializedName
(
"email"
)
private
String
email
;
public
User
(
Parcel
in
)
{
password
=
in
.
readString
();
fullName
=
in
.
readString
();
phoneNumber
=
in
.
readString
();
email
=
in
.
readString
();
}
public
static
final
Creator
<
User
>
CREATOR
=
new
Creator
<
User
>()
{
@Override
public
User
createFromParcel
(
Parcel
in
)
{
return
new
User
(
in
);
}
@Override
public
User
[]
newArray
(
int
size
)
{
return
new
User
[
size
];
}
};
public
User
()
{
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
void
setFullName
(
String
fullName
)
{
this
.
fullName
=
fullName
;
}
public
void
setPhoneNumber
(
String
phoneNumber
)
{
this
.
phoneNumber
=
phoneNumber
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getPassword
(){
return
password
;
}
public
String
getFullName
(){
return
fullName
;
}
public
String
getPhoneNumber
(){
return
phoneNumber
;
}
public
String
getEmail
(){
return
email
;
}
@Override
public
int
describeContents
()
{
return
0
;
}
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeString
(
password
);
dest
.
writeString
(
fullName
);
dest
.
writeString
(
phoneNumber
);
dest
.
writeString
(
email
);
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/services/UserService.java
0 → 100644
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
services
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.User
;
import
java.util.List
;
import
retrofit2.Call
;
import
retrofit2.http.Body
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
public
interface
UserService
{
@GET
(
"v1/customer"
)
Call
<
ResponseUser
>
getAllUser
();
@Headers
(
"Content-Type: application/json"
)
@POST
(
"v1/customer"
)
Call
<
User
>
registerUser
(
@Body
User
user
);
}
app/src/main/java/com/example/yourcashiertest/viewmodels/CartVM.java
deleted
100644 → 0
View file @
1d179431
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/UserViewModel.java
0 → 100644
View file @
92075dc6
package
com
.
example
.
yourcashiertest
.
viewmodels
;
import
android.util.Log
;
import
androidx.lifecycle.MutableLiveData
;
import
androidx.lifecycle.ViewModel
;
import
com.example.yourcashiertest.clients.ApiClient
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.services.UserService
;
import
java.util.List
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
public
class
UserViewModel
extends
ViewModel
{
MutableLiveData
<
List
<
User
>>
listUser
=
new
MutableLiveData
<>();
public
final
String
BASE_URL
=
"https://your-cashier.herokuapp.com/api/"
;
public
MutableLiveData
<
List
<
User
>>
getListUser
(){
return
this
.
listUser
;
}
public
void
registrasi
(
User
user
){
ApiClient
.
client
(
UserService
.
class
,
BASE_URL
).
registerUser
(
user
)
.
enqueue
(
new
Callback
<
User
>()
{
@Override
public
void
onResponse
(
Call
<
User
>
call
,
Response
<
User
>
response
)
{
}
@Override
public
void
onFailure
(
Call
<
User
>
call
,
Throwable
t
)
{
}
});
}
public
void
setListUser
(){
ApiClient
.
client
(
UserService
.
class
,
BASE_URL
).
getAllUser
().
enqueue
(
new
Callback
<
ResponseUser
>()
{
@Override
public
void
onResponse
(
Call
<
ResponseUser
>
call
,
Response
<
ResponseUser
>
response
)
{
listUser
.
setValue
(
response
.
body
().
getData
());
Log
.
d
(
"user"
,
String
.
valueOf
(
response
.
body
().
getData
()));
}
@Override
public
void
onFailure
(
Call
<
ResponseUser
>
call
,
Throwable
t
)
{
}
});
}
}
app/src/main/res/layout/activity_register.xml
View file @
92075dc6
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
androidx.constraintlayout.widget.ConstraintL
ayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
l
ayout
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"
>
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
<data>
tools:context=
".activities.RegisterActivity"
>
<com.google.android.material.textview.MaterialTextView
</data>
android:id=
"@+id/tvRegister"
android:layout_width=
"wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_height=
"wrap_content"
android:textSize=
"25dp"
android:layout_marginTop=
"50dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"REGISTER ACCOUNT"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilUsername"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@+id/tvRegister"
tools:context=
".activities.RegisterActivity"
>
android:layout_marginTop=
"40dp"
android:layout_marginStart=
"@dimen/space_default"
<com.google.android.material.textview.MaterialTextView
android:layout_marginEnd=
"@dimen/space_default"
android:id=
"@+id/tvRegister"
android:layout_marginBottom=
"@dimen/space_default"
>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<com.google.android.material.textfield.TextInputEditText
android:textSize=
"25dp"
android:id=
"@+id/etUsername"
android:layout_marginTop=
"50dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"REGISTER ACCOUNT"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilUsername"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Complete Name"
app:layout_constraintTop_toBottomOf=
"@+id/tvRegister"
android:inputType=
"textCapWords"
android:layout_marginTop=
"40dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilEmail"
<com.google.android.material.textfield.TextInputEditText
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:id=
"@+id/etUsername"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@+id/tilUsername"
android:hint=
"Complete Name"
android:layout_marginTop=
"20dp"
android:inputType=
"textCapWords"
android:layout_marginStart=
"@dimen/space_default"
android:imeOptions=
"actionNext"
android:layout_marginEnd=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginBottom=
"@dimen/space_default"
>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/etEmail"
android:id=
"@+id/tilEmail"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Email"
app:layout_constraintTop_toBottomOf=
"@+id/tilUsername"
android:inputType=
"textEmailAddress"
android:layout_marginTop=
"20dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilPhoneNumber"
<com.google.android.material.textfield.TextInputEditText
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:id=
"@+id/etEmail"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@+id/tilEmail"
android:hint=
"Email"
android:layout_marginTop=
"20dp"
android:inputType=
"textEmailAddress"
android:layout_marginStart=
"@dimen/space_default"
android:imeOptions=
"actionNext"
android:layout_marginEnd=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginBottom=
"@dimen/space_default"
>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/etPhoneNumber"
android:id=
"@+id/tilPhoneNumber"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Phone Number"
app:layout_constraintTop_toBottomOf=
"@+id/tilEmail"
android:inputType=
"phone"
android:layout_marginTop=
"20dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilPassword"
<com.google.android.material.textfield.TextInputEditText
app:passwordToggleEnabled=
"true"
android:id=
"@+id/etPhoneNumber"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Phone Number"
app:layout_constraintTop_toBottomOf=
"@+id/tilPhoneNumber"
android:inputType=
"phone"
android:layout_marginTop=
"20dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputLayout
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/tilPassword"
android:id=
"@+id/etPassword"
app:passwordToggleEnabled=
"true"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Password"
app:layout_constraintTop_toBottomOf=
"@+id/tilPhoneNumber"
android:inputType=
"textPassword"
android:layout_marginTop=
"20dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/tvDescSk"
android:id=
"@+id/etPassword"
android:layout_width=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"10dp"
android:hint=
"Password"
android:layout_marginTop=
"15dp"
android:inputType=
"textPassword"
android:text=
"By registering you have agreed to the"
android:imeOptions=
"actionNext"
app:layout_constraintEnd_toEndOf=
"parent"
android:textSize=
"@dimen/text_default"
/>
app:layout_constraintStart_toStartOf=
"parent"
</com.google.android.material.textfield.TextInputLayout>
app:layout_constraintTop_toBottomOf=
"@id/tilPassword"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvDescSk"
android:id=
"@+id/tvSK"
android:layout_width=
"wrap_content"
android:onClick=
"tvSK"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_marginStart=
"10dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"15dp"
android:layout_marginStart=
"75dp"
android:text=
"By registering you have agreed to the"
android:layout_marginTop=
"10dp"
app:layout_constraintEnd_toEndOf=
"parent"
android:text=
"Terms and Conditions"
app:layout_constraintStart_toStartOf=
"parent"
android:textColor=
"@color/blue"
app:layout_constraintTop_toBottomOf=
"@id/tilPassword"
/>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tvDescSk"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvSK"
android:id=
"@+id/tvYourCashier"
android:onClick=
"tvSK"
android:onClick=
"tvSignInHere"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"75dp"
android:layout_marginStart=
"2dp"
android:layout_marginTop=
"10dp"
android:layout_marginTop=
"10dp"
android:text=
"Terms and Conditions"
android:text=
"Your Cashier"
android:textColor=
"@color/blue"
app:layout_constraintStart_toEndOf=
"@id/tvSK"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tvDescSk"
/>
app:layout_constraintTop_toBottomOf=
"@id/tvDescSk"
/>
<com.google.android.material.button.MaterialButton
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/btnRegister"
android:id=
"@+id/tvYourCashier"
android:layout_width=
"match_parent"
android:onClick=
"tvSignInHere"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_marginTop=
"15dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginStart=
"2dp"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginTop=
"10dp"
android:backgroundTint=
"@color/colorPrimary"
android:text=
"Your Cashier"
android:padding=
"@dimen/space_default"
app:layout_constraintStart_toEndOf=
"@id/tvSK"
android:text=
"Register My Account"
app:layout_constraintTop_toBottomOf=
"@id/tvDescSk"
/>
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintEnd_toEndOf=
"parent"
<com.google.android.material.button.MaterialButton
app:layout_constraintTop_toBottomOf=
"@+id/tvSK"
/>
android:id=
"@+id/btnRegister"
android:layout_width=
"match_parent"
<com.google.android.material.textview.MaterialTextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tvDontHaveAnAccount"
android:layout_marginTop=
"15dp"
android:layout_width=
"wrap_content"
android:layout_marginStart=
"@dimen/space_default"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginStart=
"75dp"
android:backgroundTint=
"@color/colorPrimary"
android:layout_marginTop=
"15dp"
android:padding=
"@dimen/space_default"
android:text=
"@string/dont_have_an_account"
android:text=
"Register My Account"
app:layout_constraintEnd_toStartOf=
"@id/tvSignInHere"
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/btnRegister"
/>
app:layout_constraintTop_toBottomOf=
"@+id/tvSK"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvSignInHere"
android:id=
"@+id/tvDontHaveAnAccount"
android:onClick=
"tvSignInHere"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"75dp"
android:layout_marginStart=
"2dp"
android:layout_marginTop=
"15dp"
android:layout_marginTop=
"15dp"
android:text=
"@string/dont_have_an_account"
android:text=
"@string/sign_in_here"
app:layout_constraintEnd_toStartOf=
"@id/tvSignInHere"
android:textColor=
"@color/blue"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/tvDontHaveAnAccount"
app:layout_constraintTop_toBottomOf=
"@id/btnRegister"
/>
app:layout_constraintTop_toBottomOf=
"@id/btnRegister"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textview.MaterialTextView
\ No newline at end of file
android:id=
"@+id/tvSignInHere"
android:onClick=
"tvSignInHere"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"2dp"
android:layout_marginTop=
"15dp"
android:text=
"@string/sign_in_here"
android:textColor=
"@color/blue"
app:layout_constraintStart_toEndOf=
"@id/tvDontHaveAnAccount"
app:layout_constraintTop_toBottomOf=
"@id/btnRegister"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</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