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
b258f7c1
Commit
b258f7c1
authored
Sep 01, 2020
by
iman Fauzi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remake login
parent
a8b7a62d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
298 additions
and
279 deletions
+298
-279
BottomSheets.java
app/src/main/java/com/yono/messeripos/BottomSheets.java
+0
-3
LoginActivity.java
app/src/main/java/com/yono/messeripos/LoginActivity.java
+12
-165
LoginState.java
app/src/main/java/com/yono/messeripos/LoginState.java
+152
-0
dashboard_login.xml
app/src/main/res/layout/dashboard_login.xml
+14
-10
login_form.xml
app/src/main/res/layout/login_form.xml
+118
-99
styles.xml
app/src/main/res/values/styles.xml
+2
-2
No files found.
app/src/main/java/com/yono/messeripos/BottomSheets.java
View file @
b258f7c1
...
@@ -16,9 +16,7 @@ import android.widget.EditText;
...
@@ -16,9 +16,7 @@ import android.widget.EditText;
import
android.widget.RelativeLayout
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.DialogFragment
;
import
com.google.android.material.bottomsheet.BottomSheetBehavior
;
import
com.google.android.material.bottomsheet.BottomSheetBehavior
;
import
com.google.android.material.bottomsheet.BottomSheetDialogFragment
;
import
com.google.android.material.bottomsheet.BottomSheetDialogFragment
;
...
@@ -37,7 +35,6 @@ import retrofit2.Response;
...
@@ -37,7 +35,6 @@ import retrofit2.Response;
import
static
com
.
yono
.
messeripos
.
MainActivity
.
CHECKOUT
;
import
static
com
.
yono
.
messeripos
.
MainActivity
.
CHECKOUT
;
import
static
com
.
yono
.
messeripos
.
MainActivity
.
ORDER_ID
;
import
static
com
.
yono
.
messeripos
.
MainActivity
.
ORDER_ID
;
import
static
com
.
yono
.
messeripos
.
MainActivity
.
orderId
;
public
class
BottomSheets
extends
BottomSheetDialogFragment
{
public
class
BottomSheets
extends
BottomSheetDialogFragment
{
...
...
app/src/main/java/com/yono/messeripos/LoginActivity.java
View file @
b258f7c1
...
@@ -11,6 +11,7 @@ import android.util.Log;
...
@@ -11,6 +11,7 @@ import android.util.Log;
import
android.view.View
;
import
android.view.View
;
import
android.view.Window
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.view.WindowManager
;
import
android.widget.ImageButton
;
import
android.widget.ProgressBar
;
import
android.widget.ProgressBar
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -36,11 +37,13 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -36,11 +37,13 @@ public class LoginActivity extends AppCompatActivity {
ProgressBar
progressBar
;
ProgressBar
progressBar
;
SharedPreferences
sharedPreferences
;
SharedPreferences
sharedPreferences
;
Utils
utils
=
new
Utils
();
Utils
utils
=
new
Utils
();
LoginState
loginState
;
MaterialButton
btnSignin
;
MaterialButton
btnSignin
;
ConstraintLayout
loginSheetLayout
;
ConstraintLayout
loginSheetLayout
;
BottomSheetBehavior
sheetBehavior
;
BottomSheetBehavior
sheetBehavior
;
int
height
,
width
;
int
height
,
width
;
ImageButton
closeBtn
;
private
String
TAG
=
"MainActivity"
;
private
String
TAG
=
"MainActivity"
;
...
@@ -54,178 +57,22 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -54,178 +57,22 @@ public class LoginActivity extends AppCompatActivity {
w
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
,
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
);
w
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
,
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
);
}
}
mainViewModels
=
ViewModelProviders
.
of
(
this
).
get
(
MainViewModels
.
class
);
// bindUI
// bindUI
btnSignin
=
findViewById
(
R
.
id
.
signInButtonDashboardLogin
);
btnSignin
=
findViewById
(
R
.
id
.
signInButtonDashboardLogin
);
loginSheetLayout
=
findViewById
(
R
.
id
.
ConstraintLoginLayout
);
// get window height
DisplayMetrics
displayMetrics
=
new
DisplayMetrics
();
getWindowManager
().
getDefaultDisplay
().
getMetrics
(
displayMetrics
);
height
=
displayMetrics
.
heightPixels
;
width
=
displayMetrics
.
widthPixels
;
int
maxHeight
=
height
-
((
height
*
4
)
/
100
);
loginSheetLayout
.
setMaxHeight
(
maxHeight
);
// get bottom sheets
// session login
sheetBehavior
=
BottomSheetBehavior
.
from
(
loginSheetLayout
);
sharedPreferences
=
getSharedPreferences
(
SplashScreen
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
sheetBehavior
.
setDraggable
(
false
);
// button login on click
// button on click
btnSignin
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
btnSignin
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
View
view
)
{
public
void
onClick
(
View
v
)
{
if
(
sheetBehavior
.
getState
()
!=
BottomSheetBehavior
.
STATE_EXPANDED
)
{
loginState
=
new
LoginState
(
LoginActivity
.
this
,
mainViewModels
);
sheetBehavior
.
setState
(
BottomSheetBehavior
.
STATE_EXPANDED
);
loginState
.
setCancelable
(
false
);
}
else
{
loginState
.
show
(
getSupportFragmentManager
(),
loginState
.
getTag
());
sheetBehavior
.
setState
(
BottomSheetBehavior
.
STATE_COLLAPSED
);
}
}
}
});
});
/*
* LOGIN LOGIKA DIBAWAH INI
* */
//<<<<<<< HEAD
// public void onClick(View v) {
// Snackbar snackbar = Snackbar.make(v, "Oppss! Wrong Username Or Password!", Snackbar.LENGTH_LONG);
//
// if (TextUtils.isEmpty(username.getText().toString()) &&
// TextUtils.isEmpty(password.getText().toString())){
// username.setError("This field can't empty");
// password.setError("This field can't empty");
// }else if (TextUtils.isEmpty(username.getText().toString())){
// username.setError("This field can't empty");
// }else if (TextUtils.isEmpty(password.getText().toString())){
// password.setError("This field can't empty");
// }else{
// progressBar.setVisibility(View.VISIBLE);
// username.setEnabled(false);
// password.setEnabled(false);
// btnLogin.setEnabled(false);
//
// mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
// password.getText().toString())).observe(LoginActivity.this, new Observer<DataResponse<UsersModels>>() {
// @Override
// public void onChanged(DataResponse<UsersModels> usersModelsDataResponse) {
// Log.d("Status", usersModelsDataResponse.getMessageData());
//
// if (usersModelsDataResponse != null){
// if (usersModelsDataResponse.getStatusData()){
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(SplashScreen.SESSION, true);
// editor.commit();
//
// startActivity(new Intent(LoginActivity.this, MainActivity.class));
//
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }else {
// utils.snackBar(v,"Oppss! Wrong Username Or Password!").show();
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }
// }else{
// utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
// }
//
// }
// });
//=======
// set Callback
sheetBehavior
.
setBottomSheetCallback
(
new
BottomSheetBehavior
.
BottomSheetCallback
()
{
@Override
public
void
onStateChanged
(
@NonNull
View
bottomSheet
,
int
newState
)
{
switch
(
newState
)
{
case
BottomSheetBehavior
.
STATE_HIDDEN
:
case
BottomSheetBehavior
.
STATE_DRAGGING
:
case
BottomSheetBehavior
.
STATE_SETTLING
:
break
;
case
BottomSheetBehavior
.
STATE_EXPANDED
:
{
Log
.
d
(
TAG
,
"onStateChanged: expanded"
);
}
break
;
case
BottomSheetBehavior
.
STATE_COLLAPSED
:
{
Log
.
d
(
TAG
,
"onStateChanged: collapsed"
);
}
break
;
}
}
@Override
public
void
onSlide
(
@NonNull
View
bottomSheet
,
float
slideOffset
)
{
}
});
//
// setContentView(R.layout.activity_login_m);
// username = findViewById(R.id.tiUsername);
// password = findViewById(R.id.tiPassword);
// btnLogin = findViewById(R.id.btnLogin);
// progressBar = findViewById(R.id.progressBar);
// progressBar.setVisibility(View.GONE);
// mainViewModels = ViewModelProviders.of(this).get(MainViewModels.class);
//
// sharedPreferences = getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
//
// btnLogin.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Snackbar snackbar = Snackbar.make(v, "Oppss! Wrong Username Or Password!", Snackbar.LENGTH_LONG);
//
// if (TextUtils.isEmpty(username.getText().toString()) &&
// TextUtils.isEmpty(password.getText().toString())){
// username.setError("This field can't empty");
// password.setError("This field can't empty");
// }else if (TextUtils.isEmpty(username.getText().toString())){
// username.setError("This field can't empty");
// }else if (TextUtils.isEmpty(password.getText().toString())){
// password.setError("This field can't empty");
// }else{
// progressBar.setVisibility(View.VISIBLE);
// username.setEnabled(false);
// password.setEnabled(false);
// btnLogin.setEnabled(false);
//
// mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
// password.getText().toString())).observe(LoginActivity.this, new Observer<DataResponse<UsersModels>>() {
// @Override
// public void onChanged(DataResponse<UsersModels> usersModelsDataResponse) {
// Log.d("Status", usersModelsDataResponse.getMessageData());
//
// if (usersModelsDataResponse.getStatusData()){
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(SplashScreen.SESSION, true);
// editor.commit();
//
// startActivity(new Intent(LoginActivity.this, MainActivity.class));
//
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }else {
// snackbar.show();
// progressBar.setVisibility(View.GONE);
// username.setEnabled(true);
// password.setEnabled(true);
// btnLogin.setEnabled(true);
// }
//
// }
// });
// }
// }
// });
}
}
}
}
\ No newline at end of file
app/src/main/java/com/yono/messeripos/LoginState.java
0 → 100644
View file @
b258f7c1
package
com
.
yono
.
messeripos
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.content.res.Resources
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.view.KeyEvent
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.RelativeLayout
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.lifecycle.LifecycleOwner
;
import
androidx.lifecycle.Observer
;
import
com.bumptech.glide.load.engine.Resource
;
import
com.google.android.material.bottomsheet.BottomSheetBehavior
;
import
com.google.android.material.bottomsheet.BottomSheetDialog
;
import
com.google.android.material.bottomsheet.BottomSheetDialogFragment
;
import
com.google.android.material.button.MaterialButton
;
import
com.google.android.material.snackbar.Snackbar
;
import
com.google.android.material.textfield.TextInputEditText
;
import
com.yono.messeripos.models.MainViewModels
;
import
com.yono.messeripos.models.UsersModels
;
import
com.yono.messeripos.response.DataResponse
;
import
com.yono.messeripos.utils.Utils
;
public
class
LoginState
extends
BottomSheetDialogFragment
{
private
static
final
String
TAG
=
"LoginState"
;
BottomSheetBehavior
sheetBehavior
;
BottomSheetDialog
sheetDialog
;
RelativeLayout
loginLayout
;
TextInputEditText
username
,
password
;
MaterialButton
loginButton
;
ImageView
closeBtn
;
Context
context
;
MainViewModels
mainViewModels
;
SharedPreferences
sharedPreferences
;
Utils
utils
;
public
LoginState
(
Context
context
,
MainViewModels
mainViewModels
)
{
this
.
context
=
context
;
this
.
mainViewModels
=
mainViewModels
;
}
@NonNull
@Override
public
Dialog
onCreateDialog
(
@Nullable
Bundle
savedInstanceState
)
{
sheetDialog
=
(
BottomSheetDialog
)
super
.
onCreateDialog
(
savedInstanceState
);
// inflating layout
View
view
=
View
.
inflate
(
getContext
(),
R
.
layout
.
login_form
,
null
);
// bindUI
loginLayout
=
view
.
findViewById
(
R
.
id
.
LoginLayout
);
username
=
view
.
findViewById
(
R
.
id
.
ETUsernameLogin
);
password
=
view
.
findViewById
(
R
.
id
.
ETPasswordLogin
);
loginButton
=
view
.
findViewById
(
R
.
id
.
SignInButtonInLogin
);
closeBtn
=
view
.
findViewById
(
R
.
id
.
closeBtnLogin
);
// create session
sharedPreferences
=
context
.
getSharedPreferences
(
SplashScreen
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
// utils
utils
=
new
Utils
();
sheetDialog
.
setContentView
(
view
);
sheetBehavior
=
BottomSheetBehavior
.
from
((
View
)
(
view
.
getParent
()));
// get Window size
int
getHeight
=
Resources
.
getSystem
().
getDisplayMetrics
().
heightPixels
;
int
setHeight
=
getHeight
-
(
getHeight
*
10
)
/
100
;
// set max height
sheetBehavior
.
setPeekHeight
(
setHeight
);
loginLayout
.
setMinimumHeight
(
setHeight
);
Log
.
d
(
TAG
,
"onCreateDialog: "
+
sheetBehavior
.
getState
());
loginButton
.
setOnClickListener
(
view1
->
{
if
(
sheetBehavior
.
getState
()
!=
BottomSheetBehavior
.
STATE_EXPANDED
)
loginAuth
(
view1
);
});
// close btn is clicked
closeBtn
.
setOnClickListener
(
view12
->
{
Log
.
d
(
TAG
,
"onCreateDialog: "
+
sheetBehavior
.
getState
());
sheetDialog
.
dismiss
();
});
return
sheetDialog
;
}
private
void
loginAuth
(
View
v
)
{
Snackbar
snackbar
=
Snackbar
.
make
(
v
,
"Oppss! Wrong Username Or Password!"
,
Snackbar
.
LENGTH_LONG
);
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
username
.
setError
(
"This field can't empty"
);
password
.
setError
(
"This field can't empty"
);
}
else
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())){
username
.
setError
(
"This field can't empty"
);
}
else
if
(
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())){
password
.
setError
(
"This field can't empty"
);
}
else
{
username
.
setEnabled
(
false
);
password
.
setEnabled
(
false
);
loginButton
.
setEnabled
(
false
);
closeBtn
.
setEnabled
(
false
);
mainViewModels
.
checkLogin
(
new
UsersModels
(
username
.
getText
().
toString
(),
password
.
getText
().
toString
())).
observe
((
LifecycleOwner
)
context
,
new
Observer
<
DataResponse
<
UsersModels
>>()
{
@Override
public
void
onChanged
(
DataResponse
<
UsersModels
>
usersModelsDataResponse
)
{
Log
.
d
(
"Status"
,
usersModelsDataResponse
.
getMessageData
());
if
(
usersModelsDataResponse
!=
null
)
{
if
(
usersModelsDataResponse
.
getStatusData
())
{
// SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.putBoolean(SplashScreen.SESSION, true);
// editor.commit();
startActivity
(
new
Intent
(
context
,
MainActivity
.
class
));
username
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
loginButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
}
else
{
utils
.
snackBar
(
v
,
"Oppss! Wrong Username Or Password!"
).
show
();
username
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
loginButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
}
}
else
{
utils
.
snackBar
(
v
,
"Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください"
).
show
();
}
}
});
}
}
}
app/src/main/res/layout/dashboard_login.xml
View file @
b258f7c1
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width=
"match_parent"
<!--<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"-->
android:layout_height=
"match_parent"
<!-- android:layout_height="match_parent"-->
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:background=
"@drawable/gradient"
<!-- android:background="@drawable/gradient"-->
<!-- xmlns:android="http://schemas.android.com/apk/res/android"-->
<!-- tools:context=".LoginActivity">-->
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:android=
"http://schemas.android.com/apk/res/android"
tools:context=
".LoginActivity"
>
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<RelativeLayout
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@drawable/gradient"
android:paddingHorizontal=
"20dp"
android:paddingHorizontal=
"20dp"
android:paddingVertical=
"25dp"
>
android:paddingVertical=
"25dp"
>
...
@@ -62,8 +68,6 @@
...
@@ -62,8 +68,6 @@
android:textColor=
"@color/colorPrimary"
/>
android:textColor=
"@color/colorPrimary"
/>
</RelativeLayout>
</RelativeLayout>
</layout>
<include
<!--</androidx.coordinatorlayout.widget.CoordinatorLayout>-->
layout=
"@layout/login_form"
/>
\ No newline at end of file
</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
app/src/main/res/layout/login_form.xml
View file @
b258f7c1
This diff is collapsed.
Click to expand it.
app/src/main/res/values/styles.xml
View file @
b258f7c1
...
@@ -76,8 +76,8 @@
...
@@ -76,8 +76,8 @@
</style>
</style>
<style
name=
"ShapeAppearanceOverlay.Rounded.top"
parent=
""
>
<style
name=
"ShapeAppearanceOverlay.Rounded.top"
parent=
""
>
<item
name=
"cornerSizeTopLeft"
>
1
0dp
</item>
<item
name=
"cornerSizeTopLeft"
>
3
0dp
</item>
<item
name=
"cornerSizeTopRight"
>
1
0dp
</item>
<item
name=
"cornerSizeTopRight"
>
3
0dp
</item>
<item
name=
"cornerFamily"
>
rounded
</item>
<item
name=
"cornerFamily"
>
rounded
</item>
</style>
</style>
...
...
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