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
89f38df1
Commit
89f38df1
authored
Aug 28, 2020
by
Ahmad Abi Mulya
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.mdd.co.id:44195/abimulya/your-cashier
parents
42301447
52f9d029
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
381 additions
and
215 deletions
+381
-215
CartActivity.java
.../com/example/yourcashiertest/activities/CartActivity.java
+7
-0
ForgetPassword.java
...om/example/yourcashiertest/activities/ForgetPassword.java
+43
-1
LoginActivity.java
...com/example/yourcashiertest/activities/LoginActivity.java
+18
-26
Password.java
...ain/java/com/example/yourcashiertest/models/Password.java
+25
-0
User.java
...rc/main/java/com/example/yourcashiertest/models/User.java
+14
-0
UserService.java
...ava/com/example/yourcashiertest/services/UserService.java
+7
-0
UserViewModel.java
...com/example/yourcashiertest/viewmodels/UserViewModel.java
+22
-0
activity_forget_password.xml
app/src/main/res/layout/activity_forget_password.xml
+121
-92
activity_login.xml
app/src/main/res/layout/activity_login.xml
+124
-96
No files found.
app/src/main/java/com/example/yourcashiertest/activities/CartActivity.java
View file @
89f38df1
...
@@ -2,6 +2,7 @@ package com.example.yourcashiertest.activities;
...
@@ -2,6 +2,7 @@ package com.example.yourcashiertest.activities;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
@@ -13,8 +14,12 @@ import com.example.yourcashiertest.R;
...
@@ -13,8 +14,12 @@ import com.example.yourcashiertest.R;
import
com.example.yourcashiertest.adapters.CartAdapter
;
import
com.example.yourcashiertest.adapters.CartAdapter
;
import
com.example.yourcashiertest.databinding.ActivityCartBinding
;
import
com.example.yourcashiertest.databinding.ActivityCartBinding
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Cart
;
import
com.example.yourcashiertest.entities.Product
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.utils.Convert
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.CartViewModel
;
import
com.example.yourcashiertest.viewmodels.ProductViewModel
;
import
java.util.List
;
public
class
CartActivity
extends
AppCompatActivity
{
public
class
CartActivity
extends
AppCompatActivity
{
...
@@ -33,6 +38,8 @@ public class CartActivity extends AppCompatActivity {
...
@@ -33,6 +38,8 @@ public class CartActivity extends AppCompatActivity {
binding
.
rvCartList
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
binding
.
rvCartList
.
setLayoutManager
(
new
LinearLayoutManager
(
this
));
binding
.
rvCartList
.
setAdapter
(
adapter
);
binding
.
rvCartList
.
setAdapter
(
adapter
);
ProductViewModel
viewModel
=
new
ViewModelProvider
(
this
).
get
(
ProductViewModel
.
class
);
CartViewModel
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
CartViewModel
cartViewModel
=
new
ViewModelProvider
(
this
).
get
(
CartViewModel
.
class
);
cartViewModel
.
getCarts
().
observe
(
this
,
carts
->
adapter
.
setCartList
(
carts
));
cartViewModel
.
getCarts
().
observe
(
this
,
carts
->
adapter
.
setCartList
(
carts
));
...
...
app/src/main/java/com/example/yourcashiertest/activities/ForgetPassword.java
View file @
89f38df1
package
com
.
example
.
yourcashiertest
.
activities
;
package
com
.
example
.
yourcashiertest
.
activities
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.Observer
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.Toast
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databinding.ActivityForgetPasswordBinding
;
import
com.example.yourcashiertest.models.Password
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.utils.ViewUtil
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
java.util.List
;
public
class
ForgetPassword
extends
AppCompatActivity
{
public
class
ForgetPassword
extends
AppCompatActivity
{
ActivityForgetPasswordBinding
binding
;
UserViewModel
userViewModel
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_forget_password
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_forget_password
);
userViewModel
=
new
ViewModelProvider
(
this
,
new
ViewModelProvider
.
NewInstanceFactory
()).
get
(
UserViewModel
.
class
);
userViewModel
.
setListUser
();
binding
.
btnResetPw
.
setOnClickListener
(
v
->
{
resetPassword
();
binding
.
setLoading
(
true
);
});
}
public
void
resetPassword
()
{
userViewModel
.
getListUser
().
observe
(
this
,
users
->
{
for
(
int
i
=
0
;
i
<
users
.
size
();
i
++){
if
(
binding
.
etEmail
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())){
Password
password
=
new
Password
();
password
.
setNewPassword
(
binding
.
etNewPw
.
getText
().
toString
());
userViewModel
.
resetPassword
(
users
.
get
(
i
).
getId
()
,
password
);
binding
.
setLoading
(
false
);
startActivity
(
new
Intent
(
ForgetPassword
.
this
,
LoginActivity
.
class
));
return
;
}
}
binding
.
setLoading
(
false
);
Toast
.
makeText
(
ForgetPassword
.
this
,
"User tidak ditemukan"
,
Toast
.
LENGTH_LONG
).
show
();
});
}
}
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/activities/LoginActivity.java
View file @
89f38df1
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.
databinding.DataBindingUtil
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.content.Intent
;
import
android.content.Intent
;
...
@@ -11,16 +11,11 @@ import android.view.View;
...
@@ -11,16 +11,11 @@ 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.
databinding.ActivityLoginBinding
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.google.android.material.button.MaterialButton
;
import
com.google.android.material.textfield.TextInputEditText
;
import
java.util.List
;
public
class
LoginActivity
extends
AppCompatActivity
{
public
class
LoginActivity
extends
AppCompatActivity
{
TextInputEditText
etUsername
,
etPassword
;
ActivityLoginBinding
binding
;
MaterialButton
btnLogin
;
public
static
final
String
DATA_LOGIN
=
"DATA_LOGIN"
;
public
static
final
String
DATA_LOGIN
=
"DATA_LOGIN"
;
private
PrefManager
prefManager
;
private
PrefManager
prefManager
;
...
@@ -29,9 +24,7 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -29,9 +24,7 @@ public class LoginActivity extends AppCompatActivity {
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_login
);
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_login
);
// sharedPreferences = getSharedPreferences(my_shared, Context.MODE_PRIVATE);
// syarat = sharedPreferences.getBoolean(SESS_SYARAT, false);
prefManager
=
new
PrefManager
(
this
);
prefManager
=
new
PrefManager
(
this
);
Log
.
d
(
"login1"
,
""
+
prefManager
.
isFirstLogin
());
Log
.
d
(
"login1"
,
""
+
prefManager
.
isFirstLogin
());
if
(!
prefManager
.
isFirstLogin
())
{
if
(!
prefManager
.
isFirstLogin
())
{
...
@@ -39,17 +32,18 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -39,17 +32,18 @@ public class LoginActivity extends AppCompatActivity {
checkSession
();
checkSession
();
finish
();
finish
();
}
}
Log
.
d
(
"login3"
,
""
+
prefManager
.
isFirstLogin
());
etPassword
=
findViewById
(
R
.
id
.
etPassword
);
etUsername
=
findViewById
(
R
.
id
.
etUsername
);
btnLogin
=
findViewById
(
R
.
id
.
btnLogin
);
viewModel
=
new
ViewModelProvider
(
this
,
new
ViewModelProvider
.
NewInstanceFactory
()).
get
(
UserViewModel
.
class
);
viewModel
=
new
ViewModelProvider
(
this
,
new
ViewModelProvider
.
NewInstanceFactory
()).
get
(
UserViewModel
.
class
);
btnLogin
.
setOnClickListener
(
view
->
{
b
inding
.
b
tnLogin
.
setOnClickListener
(
view
->
{
if
(
etUsername
.
getText
().
toString
().
length
()
==
0
||
etPassword
.
getText
().
toString
().
length
()
==
0
){
if
(
binding
.
etUsername
.
getText
().
toString
().
length
()
==
0
||
binding
.
etPassword
.
getText
().
toString
().
length
()
==
0
){
Toast
.
makeText
(
getApplicationContext
(),
"Please input Username and Password"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
getApplicationContext
(),
"Please input Username and Password"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(!
binding
.
etPassword
.
getText
().
toString
().
matches
(
"[A-Za-z0-9]+"
)){
binding
.
etPassword
.
setError
(
"Passwords can only contain Alphanumeric"
);
}
else
if
(
binding
.
etPassword
.
getText
().
toString
().
length
()
<
8
)
{
binding
.
etPassword
.
setError
(
"Password length cannot be less than 8 characters"
);
}
else
{
}
else
{
binding
.
setLoading
(
true
);
viewModel
.
setListUser
();
viewModel
.
setListUser
();
launchMain
();
launchMain
();
}
}
...
@@ -66,23 +60,21 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -66,23 +60,21 @@ public class LoginActivity extends AppCompatActivity {
public
void
launchMain
()
{
public
void
launchMain
()
{
viewModel
.
getListUser
().
observe
(
this
,
users
->
{
viewModel
.
getListUser
().
observe
(
this
,
users
->
{
for
(
int
i
=
0
;
i
<
users
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
users
.
size
();
i
++){
if
(
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())
if
(
binding
.
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())
&&
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
&&
binding
.
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
prefManager
.
setFirstLogin
(
false
);
prefManager
.
setFirstLogin
(
false
);
binding
.
setLoading
(
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
));
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
();
finish
();
return
;
return
;
}
else
if
(!
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())){
}
else
if
(!
binding
.
etUsername
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getEmail
())){
etUsername
.
setError
(
"Email Not Found!"
);
binding
.
etUsername
.
setError
(
"Email Not Found!"
);
}
else
if
(!
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
}
else
if
(!
binding
.
etPassword
.
getText
().
toString
().
equals
(
users
.
get
(
i
).
getPassword
())){
etPassword
.
setError
(
"Password Wrong!"
);
binding
.
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
(){
public
void
checkSession
(){
prefManager
.
setFirstLogin
(
false
);
prefManager
.
setFirstLogin
(
false
);
...
...
app/src/main/java/com/example/yourcashiertest/models/Password.java
0 → 100644
View file @
89f38df1
package
com
.
example
.
yourcashiertest
.
models
;
import
com.google.gson.annotations.SerializedName
;
public
class
Password
{
@SerializedName
(
"new_password"
)
private
String
newPassword
;
public
void
setNewPassword
(
String
newPassword
)
{
this
.
newPassword
=
newPassword
;
}
public
String
getNewPassword
(){
return
newPassword
;
}
@Override
public
String
toString
(){
return
"{"
+
" \"new_password\" = '\""
+
newPassword
+
'\"'
+
"}"
;
}
}
app/src/main/java/com/example/yourcashiertest/models/User.java
View file @
89f38df1
...
@@ -7,6 +7,9 @@ import com.google.gson.annotations.SerializedName;
...
@@ -7,6 +7,9 @@ import com.google.gson.annotations.SerializedName;
public
class
User
implements
Parcelable
{
public
class
User
implements
Parcelable
{
@SerializedName
(
"id"
)
private
int
id
;
@SerializedName
(
"password"
)
@SerializedName
(
"password"
)
private
String
password
;
private
String
password
;
...
@@ -20,6 +23,7 @@ public class User implements Parcelable {
...
@@ -20,6 +23,7 @@ public class User implements Parcelable {
private
String
email
;
private
String
email
;
public
User
(
Parcel
in
)
{
public
User
(
Parcel
in
)
{
id
=
in
.
readInt
();
password
=
in
.
readString
();
password
=
in
.
readString
();
fullName
=
in
.
readString
();
fullName
=
in
.
readString
();
phoneNumber
=
in
.
readString
();
phoneNumber
=
in
.
readString
();
...
@@ -42,6 +46,14 @@ public class User implements Parcelable {
...
@@ -42,6 +46,14 @@ public class User implements Parcelable {
}
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
void
setPassword
(
String
password
)
{
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
this
.
password
=
password
;
}
}
...
@@ -81,9 +93,11 @@ public class User implements Parcelable {
...
@@ -81,9 +93,11 @@ public class User implements Parcelable {
@Override
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeInt
(
id
);
dest
.
writeString
(
password
);
dest
.
writeString
(
password
);
dest
.
writeString
(
fullName
);
dest
.
writeString
(
fullName
);
dest
.
writeString
(
phoneNumber
);
dest
.
writeString
(
phoneNumber
);
dest
.
writeString
(
email
);
dest
.
writeString
(
email
);
}
}
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/services/UserService.java
View file @
89f38df1
package
com
.
example
.
yourcashiertest
.
services
;
package
com
.
example
.
yourcashiertest
.
services
;
import
com.example.yourcashiertest.models.Password
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.models.User
;
...
@@ -10,6 +11,8 @@ import retrofit2.http.Body;
...
@@ -10,6 +11,8 @@ import retrofit2.http.Body;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
import
retrofit2.http.POST
;
import
retrofit2.http.PUT
;
import
retrofit2.http.Path
;
public
interface
UserService
{
public
interface
UserService
{
...
@@ -20,4 +23,8 @@ public interface UserService {
...
@@ -20,4 +23,8 @@ public interface UserService {
@POST
(
"v1/customer"
)
@POST
(
"v1/customer"
)
Call
<
User
>
registerUser
(
@Body
User
user
);
Call
<
User
>
registerUser
(
@Body
User
user
);
@Headers
(
"Content-Type: application/json"
)
@PUT
(
"v1/change_password/{id}"
)
Call
<
Password
>
editPassword
(
@Path
(
"id"
)
int
id
,
@Body
Password
password
);
}
}
app/src/main/java/com/example/yourcashiertest/viewmodels/UserViewModel.java
View file @
89f38df1
...
@@ -6,9 +6,11 @@ import androidx.lifecycle.MutableLiveData;
...
@@ -6,9 +6,11 @@ import androidx.lifecycle.MutableLiveData;
import
androidx.lifecycle.ViewModel
;
import
androidx.lifecycle.ViewModel
;
import
com.example.yourcashiertest.clients.ApiClient
;
import
com.example.yourcashiertest.clients.ApiClient
;
import
com.example.yourcashiertest.models.Password
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.ResponseUser
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.services.UserService
;
import
com.example.yourcashiertest.services.UserService
;
import
com.google.gson.Gson
;
import
java.util.List
;
import
java.util.List
;
...
@@ -56,4 +58,24 @@ public class UserViewModel extends ViewModel {
...
@@ -56,4 +58,24 @@ public class UserViewModel extends ViewModel {
});
});
}
}
public
void
resetPassword
(
int
id
,
Password
password
){
ApiClient
.
client
(
UserService
.
class
,
BASE_URL
)
.
editPassword
(
id
,
password
).
enqueue
(
new
Callback
<
Password
>()
{
@Override
public
void
onResponse
(
Call
<
Password
>
call
,
Response
<
Password
>
response
)
{
Log
.
d
(
"response"
,
response
.
message
());
}
@Override
public
void
onFailure
(
Call
<
Password
>
call
,
Throwable
t
)
{
}
});
}
public
String
toStringPassword
(
String
password
){
return
"{ new_password:"
+
password
+
"}"
;
}
}
}
app/src/main/res/layout/activity_forget_password.xml
View file @
89f38df1
<?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"
android:paddingHorizontal=
"10dp"
tools:context=
".activities.ForgetPassword"
>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvResetPassword"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"25dp"
android:layout_marginStart=
"10dp"
android:layout_marginTop=
"50dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"RESET PASSWORD"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilEmail"
app:boxBackgroundColor=
"@color/white"
android:textColorHint=
"@color/grey"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/tvResetPassword"
android:layout_marginTop=
"20dp"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputEditText
<data>
android:id=
"@+id/etEmail"
android:layout_width=
"match_parent"
<import
type=
"android.view.View"
/>
android:layout_height=
"wrap_content"
<variable
android:hint=
"Email"
name=
"loading"
android:inputType=
"textEmailAddress"
type=
"boolean"
/>
android:imeOptions=
"actionNext"
android:textSize=
"@dimen/text_default"
/>
</data>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/tilCrPw"
app:passwordToggleEnabled=
"true"
app:boxBackgroundColor=
"@color/white"
android:textColorHint=
"@color/grey"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
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/tilEmail"
android:paddingHorizontal=
"10dp"
android:layout_marginTop=
"20dp"
tools:context=
".activities.ForgetPassword"
>
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/etCrPw"
android:id=
"@+id/tvResetPassword"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"25dp"
android:layout_marginStart=
"10dp"
android:layout_marginTop=
"50dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"RESET PASSWORD"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilEmail"
app:boxBackgroundColor=
"@color/white"
android:textColorHint=
"@color/grey"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"Current Password"
app:layout_constraintTop_toBottomOf=
"@id/tvResetPassword"
android:imeOptions=
"actionNext"
android:layout_marginTop=
"20dp"
android:inputType=
"text"
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/tilNewPw"
app:passwordToggleEnabled=
"true"
app:boxBackgroundColor=
"@color/white"
android:textColorHint=
"@color/grey"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/tilCrPw"
android:layout_marginTop=
"20dp"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/etNewPw"
android:id=
"@+id/etEmail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:hint=
"Email"
android:inputType=
"textEmailAddress"
android:imeOptions=
"actionNext"
android:textSize=
"@dimen/text_default"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/tilCrPw"
app:passwordToggleEnabled=
"true"
app:boxBackgroundColor=
"@color/white"
android:textColorHint=
"@color/grey"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
a
ndroid:hint=
"New Password
"
a
pp:layout_constraintTop_toBottomOf=
"@id/tilEmail
"
android:
inputType=
"text
"
android:
layout_marginTop=
"20dp
"
android:
imeOptions=
"actionNex
t"
android:
layout_marginStart=
"@dimen/space_defaul
t"
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.button.MaterialButton
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/btnResetPw"
android:id=
"@+id/etCrPw"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:hint=
"Current Password"
android:layout_marginEnd=
"4dp"
android:imeOptions=
"actionNext"
android:backgroundTint=
"@color/colorPrimary"
android:inputType=
"text"
android:padding=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:text=
"RESET PASSWORD"
</com.google.android.material.textfield.TextInputLayout>
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintBottom_toBottomOf=
"parent"
<com.google.android.material.textfield.TextInputLayout
app:layout_constraintEnd_toEndOf=
"parent"
android:id=
"@+id/tilNewPw"
app:layout_constraintTop_toBottomOf=
"@+id/tilNewPw"
app:passwordToggleEnabled=
"true"
app:layout_constraintVertical_bias=
"0.008"
/>
app:boxBackgroundColor=
"@color/white"
</androidx.constraintlayout.widget.ConstraintLayout>
android:textColorHint=
"@color/grey"
\ No newline at end of file
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/tilCrPw"
android:layout_marginTop=
"20dp"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/etNewPw"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:hint=
"New Password"
android:inputType=
"text"
android:imeOptions=
"actionNext"
android:textSize=
"@dimen/text_default"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id=
"@+id/btnResetPw"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:layout_marginEnd=
"4dp"
android:backgroundTint=
"@color/colorPrimary"
android:padding=
"@dimen/space_default"
android:visibility=
"@{loading ? View.GONE : View.VISIBLE}"
android:text=
"RESET PASSWORD"
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tilNewPw"
app:layout_constraintVertical_bias=
"0.008"
/>
<ProgressBar
android:id=
"@+id/pgLoading"
android:layout_width=
"35dp"
android:layout_height=
"wrap_content"
android:visibility=
"@{loading ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"@+id/btnResetPw"
app:layout_constraintHorizontal_bias=
"0.519"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tilNewPw"
app:layout_constraintVertical_bias=
"0.069"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/activity_login.xml
View file @
89f38df1
<?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:padding=
"10dp"
android:layout_height=
"match_parent"
tools:context=
".activities.LoginActivity"
>
<com.google.android.material.textview.MaterialTextView
<data>
android:id=
"@+id/tvLogin"
<import
type=
"android.view.View"
/>
android:layout_width=
"wrap_content"
<variable
android:layout_height=
"wrap_content"
name=
"loading"
android:textSize=
"25dp"
type=
"boolean"
/>
android:layout_marginTop=
"80dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"LOGIN"
/>
<
com.google.android.material.textfield.TextInputLayout
<
/data>
android:id=
"@+id/tilUsername"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"10dp"
app:layout_constraintTop_toBottomOf=
"@+id/tvLogin"
android:layout_height=
"match_parent"
android:layout_marginTop=
"60dp"
tools:context=
".activities.LoginActivity"
>
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginEnd=
"@dimen/space_default"
<com.google.android.material.textview.MaterialTextView
android:layout_marginBottom=
"@dimen/space_default"
>
android:id=
"@+id/tvLogin"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"25dp"
android:layout_marginTop=
"80dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:textStyle=
"bold"
android:text=
"LOGIN"
/>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/etUsername"
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=
"Masukkan Email"
app:layout_constraintTop_toBottomOf=
"@+id/tvLogin"
android:inputType=
"textEmailAddress"
android:layout_marginTop=
"60dp"
android:imeOptions=
"actionNext"
android:layout_marginStart=
"@dimen/space_default"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/etUsername"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:hint=
"Masukkan Email"
android:inputType=
"textEmailAddress"
android:imeOptions=
"actionNext"
android:textSize=
"@dimen/text_default"
/>
<com.google.android.material.textfield.TextInputLayout
</com.google.android.material.textfield.TextInputLayout>
android:id=
"@+id/tilPassword"
style=
"@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:passwordToggleEnabled=
"true"
app:layout_constraintTop_toBottomOf=
"@+id/tilUsername"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginTop=
"20dp"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/etPassword"
android:id=
"@+id/tilPassword"
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=
"Masukkan Password"
app:passwordToggleEnabled=
"true"
android:inputType=
"textPassword"
app:layout_constraintTop_toBottomOf=
"@+id/tilUsername"
android:textSize=
"@dimen/text_default"
/>
android:layout_marginStart=
"@dimen/space_default"
</com.google.android.material.textfield.TextInputLayout>
android:layout_marginTop=
"20dp"
android:layout_marginEnd=
"@dimen/space_default"
android:layout_marginBottom=
"@dimen/space_default"
>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textfield.TextInputEditText
android:onClick=
"tvForgetPassword"
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=
"Masukkan Password"
android:layout_marginTop=
"24dp"
android:inputType=
"textPassword"
android:text=
"@string/lupa_password"
android:textSize=
"@dimen/text_default"
/>
android:textColor=
"@color/colorPrimary"
</com.google.android.material.textfield.TextInputLayout>
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tilPassword"
/>
<com.google.android.material.button.MaterialButton
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/btnLogin"
android:id=
"@+id/materialTextView"
android:layout_width=
"match_parent"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"60dp"
android:layout_marginStart=
"10dp"
android:layout_marginStart=
"@dimen/space_default"
android:layout_marginTop=
"24dp"
android:layout_marginEnd=
"@dimen/space_default"
android:onClick=
"tvForgetPassword"
android:backgroundTint=
"@color/colorPrimary"
android:text=
"@string/lupa_password"
android:padding=
"@dimen/space_default"
android:textColor=
"@color/colorPrimary"
android:text=
"Login"
android:textStyle=
"bold"
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tilPassword"
/>
app:layout_constraintTop_toBottomOf=
"@+id/tilPassword"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.button.MaterialButton
android:id=
"@+id/tvDontHaveAnAccount"
android:id=
"@+id/btnLogin"
android:layout_width=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"60dp"
android:layout_marginTop=
"60dp"
android:layout_marginTop=
"15dp"
android:layout_marginStart=
"@dimen/space_default"
android:text=
"@string/dont_have_an_account"
android:layout_marginEnd=
"@dimen/space_default"
app:layout_constraintEnd_toStartOf=
"@id/tvSignUpHere"
android:backgroundTint=
"@color/colorPrimary"
app:layout_constraintStart_toStartOf=
"parent"
android:padding=
"@dimen/space_default"
app:layout_constraintTop_toBottomOf=
"@id/btnLogin"
/>
android:visibility=
"@{loading ? View.GONE : View.VISIBLE}"
android:text=
"Login"
app:cornerRadius=
"@dimen/space_default"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tilPassword"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvDontHaveAnAccount"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"40dp"
android:text=
"@string/dont_have_an_account"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/tvSignUpHere"
app:layout_constraintHorizontal_bias=
"1.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/materialTextView"
app:layout_constraintVertical_bias=
"0.293"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvSignUpHere"
android:id=
"@+id/tvSignUpHere"
android:onClick=
"tvSignUpHere"
android:layout_width=
"0dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:onClick=
"tvSignUpHere"
android:layout_marginStart=
"2dp"
android:text=
"@string/sign_up_here"
android:layout_marginTop=
"15dp"
android:textColor=
"@color/blue"
android:text=
"@string/sign_up_here"
android:layout_marginEnd=
"15dp"
android:textColor=
"@color/blue"
app:layout_constraintBottom_toBottomOf=
"@+id/tvDontHaveAnAccount"
app:layout_constraintStart_toEndOf=
"@id/tvDontHaveAnAccount"
app:layout_constraintStart_toEndOf=
"@+id/tvDontHaveAnAccount"
app:layout_constraintTop_toBottomOf=
"@id/btnLogin"
/>
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/tvDontHaveAnAccount"
app:layout_constraintVertical_bias=
"0.0"
/>
<ProgressBar
android:id=
"@+id/pgLoading"
android:layout_width=
"35dp"
android:layout_height=
"wrap_content"
android:visibility=
"@{loading ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/materialTextView"
app:layout_constraintVertical_bias=
"0.057"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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