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
6e93504e
Commit
6e93504e
authored
Sep 03, 2020
by
fauzi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tambahkan redirect ke email
parent
39e1dd0a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
183 additions
and
98 deletions
+183
-98
LoginActivity.java
app/src/main/java/com/yono/messeripos/LoginActivity.java
+5
-0
LoginState.java
app/src/main/java/com/yono/messeripos/LoginState.java
+66
-86
Utils.java
app/src/main/java/com/yono/messeripos/utils/Utils.java
+68
-3
alert_dialog.xml
app/src/main/res/layout/alert_dialog.xml
+44
-9
No files found.
app/src/main/java/com/yono/messeripos/LoginActivity.java
View file @
6e93504e
package
com
.
yono
.
messeripos
;
package
com
.
yono
.
messeripos
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.content.SharedPreferences
;
...
@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity {
MaterialButton
btnSignin
;
MaterialButton
btnSignin
;
MaterialButton
btnSignup
,
btnSignIn
;
MaterialButton
btnSignup
,
btnSignIn
;
public
static
View
invalidUser
;
public
static
View
activateEmail
;
Utils
utils
;
private
String
TAG
=
"MainActivity"
;
private
String
TAG
=
"MainActivity"
;
...
...
app/src/main/java/com/yono/messeripos/LoginState.java
View file @
6e93504e
...
@@ -10,6 +10,7 @@ import android.content.Intent;
...
@@ -10,6 +10,7 @@ import android.content.Intent;
import
android.content.SharedPreferences
;
import
android.content.SharedPreferences
;
import
android.content.res.Resources
;
import
android.content.res.Resources
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.provider.Settings
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
...
@@ -111,6 +112,7 @@ public class LoginState extends BottomSheetDialogFragment {
...
@@ -111,6 +112,7 @@ public class LoginState extends BottomSheetDialogFragment {
}
}
private
void
loginAuth
(
View
v
)
{
private
void
loginAuth
(
View
v
)
{
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
username
.
setError
(
"This field can't empty"
);
username
.
setError
(
"This field can't empty"
);
...
@@ -121,107 +123,47 @@ public class LoginState extends BottomSheetDialogFragment {
...
@@ -121,107 +123,47 @@ public class LoginState extends BottomSheetDialogFragment {
}
else
if
(
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
}
else
if
(
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
password
.
setError
(
"This field can't empty"
);
password
.
setError
(
"This field can't empty"
);
}
else
{
}
else
{
/**
* Jika tombol sign in ditekan
setAllLayoutToFalse
();
*
* nonaktifkan semua form */
bar
.
setVisibility
(
View
.
VISIBLE
);
loginButton
.
setText
(
""
);
username
.
setEnabled
(
false
);
password
.
setEnabled
(
false
);
loginButton
.
setEnabled
(
false
);
closeBtn
.
setEnabled
(
false
);
// buat checking login
// buat checking login
mainViewModels
.
checkLogin
(
new
UsersModels
(
username
.
getText
().
toString
(),
mainViewModels
.
checkLogin
(
new
UsersModels
(
username
.
getText
().
toString
(),
password
.
getText
().
toString
()))
password
.
getText
().
toString
()))
.
observe
((
LifecycleOwner
)
context
,
usersModelsDataResponse
->
{
.
observe
((
LifecycleOwner
)
context
,
usersModelsDataResponse
->
{
if
(
usersModelsDataResponse
!=
null
)
{
if
(
usersModelsDataResponse
!=
null
)
{
/**
final
View
customLayout
=
getLayoutInflater
()
* Jika response atau data ada dan cocok
.
inflate
(
R
.
layout
.
alert_dialog
,
null
);
*/
switch
(
usersModelsDataResponse
.
getMessageData
().
toLowerCase
())
{
switch
(
usersModelsDataResponse
.
getMessageData
().
toLowerCase
())
{
case
"invalid username or password"
:
bar
.
setVisibility
(
View
.
GONE
);
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
sheetDialog
.
setCancelable
(
true
);
username
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
loginButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
errUserPass
();
case
"invalid username or password"
:
setAllLayoutToTrue
();
errUserPass
(
customLayout
);
break
;
break
;
case
"please activate your email first"
:
bar
.
setVisibility
(
View
.
GONE
);
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
sheetDialog
.
setCancelable
(
true
);
username
.
setEnabled
(
true
);
case
"please activate your email first"
:
password
.
setEnabled
(
true
);
setAllLayoutToTrue
();
loginButton
.
setEnabled
(
true
);
activateEmail
(
customLayout
);
closeBtn
.
setEnabled
(
true
);
activateEmail
();
default
:
break
;
}
}
if
(
usersModelsDataResponse
.
getStatusData
())
{
if
(
usersModelsDataResponse
.
getStatusData
())
{
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
editor
.
putBoolean
(
SplashScreen
.
SESSION
,
true
);
editor
.
putBoolean
(
SplashScreen
.
SESSION
,
true
);
sheetDialog
.
dismiss
();
sheetDialog
.
dismiss
();
if
(
editor
.
commit
()){
if
(
editor
.
commit
()){
startActivity
(
new
Intent
(
context
,
MainActivity
.
class
));
startActivity
(
new
Intent
(
context
,
MainActivity
.
class
));
getActivity
().
finish
();
}
}
// redirect ke home
setAllLayoutToTrue
();
// set progress bar jadi nonaktif
bar
.
setVisibility
(
View
.
GONE
);
// munculkan tulisan default di button sign in
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
// set form jadi enable
username
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
loginButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
}
}
// else {
// /**
// * Jika response atau data tidak cocok
// */
//
// bar.setVisibility(View.GONE);
// loginButton.setText(DEFAULT_LOGIN_NAME);
//
// sheetDialog.setCancelable(true);
//
// final View customLayout = getLayoutInflater()
// .inflate(R.layout.alert_dialog, null);
//
// // tampilkan alert dialog
// utils = new Utils(customLayout);
// utils.dialog(context, false, customLayout, "Wrong Username or Password",
// "The username or password is incorrect. Please try again!",
// "Try Again")
// .show();
// utils.setListener(Dialog::dismiss);
//
// username.setEnabled(true);
// password.setEnabled(true);
// loginButton.setEnabled(true);
// closeBtn.setEnabled(true);
//
// }
}
else
{
}
else
{
bar
.
setVisibility
(
View
.
VISIBLE
);
bar
.
setVisibility
(
View
.
VISIBLE
);
utils
.
snackBar
(
v
,
"Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください"
).
show
();
utils
.
snackBar
(
v
,
"Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください"
).
show
();
...
@@ -232,30 +174,68 @@ public class LoginState extends BottomSheetDialogFragment {
...
@@ -232,30 +174,68 @@ public class LoginState extends BottomSheetDialogFragment {
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
}
}
private
void
activateEmail
()
{
private
void
setAllLayoutToTrue
()
{
final
View
customLayout
=
getLayoutInflater
()
bar
.
setVisibility
(
View
.
GONE
);
.
inflate
(
R
.
layout
.
alert_dialog
,
null
);
loginButton
.
setText
(
DEFAULT_LOGIN_NAME
);
sheetDialog
.
setCancelable
(
true
);
username
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
loginButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
}
private
void
setAllLayoutToFalse
()
{
bar
.
setVisibility
(
View
.
VISIBLE
);
loginButton
.
setText
(
""
);
sheetDialog
.
setCancelable
(
false
);
username
.
setEnabled
(
false
);
password
.
setEnabled
(
false
);
loginButton
.
setEnabled
(
false
);
closeBtn
.
setEnabled
(
false
);
}
private
void
activateEmail
(
View
customLayout
)
{
// tampilkan alert dialog
utils
=
new
Utils
(
customLayout
);
utils
=
new
Utils
(
customLayout
);
utils
.
dialog
(
context
,
false
,
customLayout
,
"Please Verifiy Email"
,
utils
.
dialog
(
context
,
false
,
customLayout
,
"Please Verifiy Email"
,
"Please verify your email before login"
,
"Please verify your email before login"
,
"verify"
)
"
close"
,
"
verify"
)
.
show
();
.
show
();
utils
.
setListener
(
Dialog:
:
dismiss
);
utils
.
setListener
(
new
Utils
.
DialogListener
()
{
@Override
public
void
onClickDisimiss
(
AlertDialog
alertDialog
)
{
alertDialog
.
dismiss
();
}
@Override
public
void
onClickLink
(
AlertDialog
alertDialog
)
{
Intent
pm
=
getActivity
().
getPackageManager
().
getLaunchIntentForPackage
(
"com.google.android.gm"
);
if
(
pm
!=
null
)
{
startActivity
(
pm
);
getActivity
().
finish
();
}
}
});
}
}
private
void
errUserPass
()
{
private
void
errUserPass
(
View
customLayout
)
{
final
View
customLayout
=
getLayoutInflater
()
.
inflate
(
R
.
layout
.
alert_dialog
,
null
);
// tampilkan alert dialog
utils
=
new
Utils
(
customLayout
);
utils
=
new
Utils
(
customLayout
);
utils
.
dialog
(
context
,
false
,
customLayout
,
"Wrong Username or Password"
,
utils
.
dialog
(
context
,
false
,
customLayout
,
"Wrong Username or Password"
,
"The username or password is incorrect. Please try again!"
,
"The username or password is incorrect. Please try again!"
,
"Try Again"
)
"Try Again"
)
.
show
();
.
show
();
utils
.
setListener
(
Dialog:
:
dismiss
);
utils
.
setListener
(
new
Utils
.
DialogListener
()
{
@Override
public
void
onClickDisimiss
(
AlertDialog
alertDialog
)
{
alertDialog
.
dismiss
();
}
@Override
public
void
onClickLink
(
AlertDialog
alertDialog
)
{
}
});
}
}
}
}
app/src/main/java/com/yono/messeripos/utils/Utils.java
View file @
6e93504e
...
@@ -46,6 +46,7 @@ public class Utils {
...
@@ -46,6 +46,7 @@ public class Utils {
public
interface
DialogListener
{
public
interface
DialogListener
{
void
onClickDisimiss
(
AlertDialog
alertDialog
);
void
onClickDisimiss
(
AlertDialog
alertDialog
);
void
onClickLink
(
AlertDialog
alertDialog
);
}
}
private
DialogListener
listener
;
private
DialogListener
listener
;
...
@@ -274,12 +275,63 @@ public class Utils {
...
@@ -274,12 +275,63 @@ public class Utils {
return
dialog
;
return
dialog
;
}
}
public
AlertDialog
dialog
(
Context
context
,
Boolean
cancelable
,
View
view
,
@Nullable
String
titles
,
@Nullable
String
messages
,
@Nullable
String
buttons
)
{
public
AlertDialog
dialog
(
Context
context
,
Boolean
cancelable
,
View
view
,
@Nullable
String
titles
,
@Nullable
String
messages
,
@Nullable
String
dismiss
)
{
TextView
title
=
view
.
findViewById
(
R
.
id
.
alertTitles
);
TextView
message
=
view
.
findViewById
(
R
.
id
.
alertBody
);
TextView
button2
=
view
.
findViewById
(
R
.
id
.
tvTextBtn2
);
CardView
btnCard2
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick2
);
// set title and message
if
(
titles
!=
null
){
title
.
setText
(
titles
);
}
if
(
message
!=
null
){
message
.
setText
(
messages
);
}
if
(
button2
!=
null
){
btnCard2
.
setVisibility
(
View
.
VISIBLE
);
button2
.
setText
(
dismiss
);
}
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
)
.
setCancelable
(
cancelable
)
.
setView
(
view
);
AlertDialog
dialog
=
builder
.
create
();
dialog
.
getWindow
().
getAttributes
().
windowAnimations
=
R
.
style
.
DialogAnimation
;
btnCard2
.
setOnClickListener
(
view1
->
listener
.
onClickDisimiss
(
dialog
));
return
dialog
;
}
public
AlertDialog
dialog
(
Context
context
,
Boolean
cancelable
,
View
view
,
@Nullable
String
titles
,
@Nullable
String
messages
,
@Nullable
String
dismiss
,
@Nullable
String
link
)
{
/**
* Button1 untuk dismiss
* Button2 untuk link
*/
TextView
title
=
view
.
findViewById
(
R
.
id
.
alertTitles
);
TextView
title
=
view
.
findViewById
(
R
.
id
.
alertTitles
);
TextView
message
=
view
.
findViewById
(
R
.
id
.
alertBody
);
TextView
message
=
view
.
findViewById
(
R
.
id
.
alertBody
);
TextView
button
=
view
.
findViewById
(
R
.
id
.
tvTextBtn
);
TextView
button
=
view
.
findViewById
(
R
.
id
.
tvTextBtn
);
TextView
button2
=
view
.
findViewById
(
R
.
id
.
tvTextBtn2
);
CardView
btnCard
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick
);
CardView
btnCard
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick
);
CardView
btnCard2
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick2
);
// set title and message
// set title and message
if
(
titles
!=
null
){
if
(
titles
!=
null
){
...
@@ -291,7 +343,13 @@ public class Utils {
...
@@ -291,7 +343,13 @@ public class Utils {
}
}
if
(
button
!=
null
){
if
(
button
!=
null
){
button
.
setText
(
buttons
);
btnCard
.
setVisibility
(
View
.
VISIBLE
);
button
.
setText
(
link
);
}
if
(
button2
!=
null
)
{
btnCard2
.
setVisibility
(
View
.
VISIBLE
);
button2
.
setText
(
dismiss
);
}
}
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
)
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
)
...
@@ -300,7 +358,14 @@ public class Utils {
...
@@ -300,7 +358,14 @@ public class Utils {
AlertDialog
dialog
=
builder
.
create
();
AlertDialog
dialog
=
builder
.
create
();
dialog
.
getWindow
().
getAttributes
().
windowAnimations
=
R
.
style
.
DialogAnimation
;
dialog
.
getWindow
().
getAttributes
().
windowAnimations
=
R
.
style
.
DialogAnimation
;
btnCard
.
setOnClickListener
(
view1
->
listener
.
onClickDisimiss
(
dialog
));
btnCard
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
listener
.
onClickLink
(
dialog
);
}
});
btnCard2
.
setOnClickListener
(
view1
->
listener
.
onClickDisimiss
(
dialog
));
return
dialog
;
return
dialog
;
}
}
...
...
app/src/main/res/layout/alert_dialog.xml
View file @
6e93504e
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/
divider
"
app:layout_constraintBottom_toTopOf=
"@id/
cvAlertDialog
"
>
>
<LinearLayout
<LinearLayout
...
@@ -45,22 +45,27 @@
...
@@ -45,22 +45,27 @@
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
<View
<LinearLayout
android:id=
"@+id/divider"
android:layout_marginTop=
"10dp"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
1dp
"
android:layout_height=
"
wrap_content
"
style=
"@style/Divider.Horizont
al"
android:orientation=
"vertic
al"
app:layout_constraintTop_toBottomOf=
"@id/cvAlertDialog"
/
>
app:layout_constraintTop_toBottomOf=
"@id/cvAlertDialog"
>
<com.google.android.material.card.MaterialCardView
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvAlertOnClick"
android:id=
"@+id/cvAlertOnClick"
app:cardCornerRadius=
"0dp"
app:cardCornerRadius=
"0dp"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:clickable=
"true"
android:clickable=
"true"
android:focusable=
"true"
android:focusable=
"true"
>
app:layout_constraintTop_toBottomOf=
"@id/divider"
>
<View
android:id=
"@+id/divider"
android:layout_marginTop=
"10dp"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
style=
"@style/Divider.Horizontal"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvTextBtn"
android:id=
"@+id/tvTextBtn"
...
@@ -68,9 +73,39 @@
...
@@ -68,9 +73,39 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Coba Lagi"
android:text=
"Coba Lagi"
android:textSize=
"18sp"
android:textSize=
"18sp"
android:textColor=
"#3949AB"
android:textFontWeight=
"600"
android:paddingVertical=
"15dp"
android:gravity=
"center"
/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvAlertOnClick2"
app:cardCornerRadius=
"0dp"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:clickable=
"true"
android:visibility=
"gone"
android:focusable=
"true"
>
<View
android:id=
"@+id/divider2"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
style=
"@style/Divider.Horizontal"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvTextBtn2"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"Coba Lagi"
android:textSize=
"18sp"
android:textFontWeight=
"600"
android:paddingVertical=
"15dp"
android:paddingVertical=
"15dp"
android:gravity=
"center"
/>
android:gravity=
"center"
/>
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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