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
c9f33120
Commit
c9f33120
authored
Sep 03, 2020
by
Ahmad Abi Mulya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
buat template alert dialog
parent
f7507423
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
279 additions
and
11 deletions
+279
-11
InetChecker.java
...a/com/example/yourcashiertest/activities/InetChecker.java
+11
-4
LoginActivity.java
...com/example/yourcashiertest/activities/LoginActivity.java
+36
-4
RegisterActivity.java
.../example/yourcashiertest/activities/RegisterActivity.java
+7
-3
ViewUtil.java
...main/java/com/example/yourcashiertest/utils/ViewUtil.java
+102
-0
alert_dialog.xml
app/src/main/res/layout/alert_dialog.xml
+111
-0
styles.xml
app/src/main/res/values/styles.xml
+12
-0
No files found.
app/src/main/java/com/example/yourcashiertest/activities/InetChecker.java
View file @
c9f33120
package
com
.
example
.
yourcashiertest
.
activities
;
package
com
.
example
.
yourcashiertest
.
activities
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.net.ConnectivityManager
;
import
android.net.ConnectivityManager
;
import
android.net.NetworkInfo
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
public
class
InetChecker
{
public
class
InetChecker
{
public
boolean
isNetworkConnected
(
Context
context
)
{
public
boolean
isNetworkConnected
(
Context
context
)
{
ConnectivityManager
cm
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
ConnectivityManager
cm
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
return
cm
.
getActiveNetworkInfo
()
!=
null
&&
cm
.
getActiveNetworkInfo
().
isConnected
();
return
cm
.
getActiveNetworkInfo
()
!=
null
&&
cm
.
getActiveNetworkInfo
().
isConnected
();
// try {
// InetAddress address = InetAddress.getByName("www.google.com");
// return !TextUtils.isEmpty(address.toString());
// } catch (Exception e) {
// e.printStackTrace();
// return false;
// }
}
}
}
}
app/src/main/java/com/example/yourcashiertest/activities/LoginActivity.java
View file @
c9f33120
...
@@ -4,10 +4,14 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -4,10 +4,14 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.Toast
;
import
android.widget.Toast
;
...
@@ -18,11 +22,14 @@ import com.example.yourcashiertest.models.Data;
...
@@ -18,11 +22,14 @@ import com.example.yourcashiertest.models.Data;
import
com.example.yourcashiertest.models.Login
;
import
com.example.yourcashiertest.models.Login
;
import
com.example.yourcashiertest.models.ResponseLogin
;
import
com.example.yourcashiertest.models.ResponseLogin
;
import
com.example.yourcashiertest.services.UserService
;
import
com.example.yourcashiertest.services.UserService
;
import
com.example.yourcashiertest.utils.ViewUtil
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
java.io.IOException
;
import
java.io.IOException
;
import
javax.security.auth.login.LoginException
;
import
retrofit2.Call
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
import
retrofit2.Response
;
...
@@ -32,7 +39,7 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -32,7 +39,7 @@ public class LoginActivity extends AppCompatActivity {
private
PrefManager
prefManager
;
private
PrefManager
prefManager
;
UserViewModel
viewModel
;
UserViewModel
viewModel
;
InetChecker
network
=
new
InetChecker
();
InetChecker
network
=
new
InetChecker
();
ViewUtil
utils
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
...
@@ -50,8 +57,8 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -50,8 +57,8 @@ public class LoginActivity extends AppCompatActivity {
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
{
}
else
{
Log
.
d
(
"network"
,
""
+
network
.
isNetworkConnected
(
getApplicationContext
()));
Log
.
d
(
"network"
,
""
+
network
.
isNetworkConnected
(
getApplicationContext
()));
if
(!
network
.
isNetworkConnected
(
getApplicationContext
()))
{
if
(!
network
.
isNetworkConnected
(
getApplicationContext
()))
{
Toast
.
makeText
(
getApplicationContext
(),
"Please connect your device to Internet
!
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
getApplicationContext
(),
"Please connect your device to Internet"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
{
}
else
{
binding
.
setLoading
(
true
);
binding
.
setLoading
(
true
);
launchMain
();
launchMain
();
...
@@ -93,7 +100,10 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -93,7 +100,10 @@ public class LoginActivity extends AppCompatActivity {
errorJson
=
response
.
errorBody
().
string
();
errorJson
=
response
.
errorBody
().
string
();
Log
.
d
(
"response"
,
""
+
errorJson
);
Log
.
d
(
"response"
,
""
+
errorJson
);
ResponseLogin
responseLogin
=
new
Gson
().
fromJson
(
errorJson
,
ResponseLogin
.
class
);
ResponseLogin
responseLogin
=
new
Gson
().
fromJson
(
errorJson
,
ResponseLogin
.
class
);
Toast
.
makeText
(
getApplicationContext
(),
responseLogin
.
getMessages
(),
Toast
.
LENGTH_LONG
).
show
();
final
View
customLayout
=
getLayoutInflater
()
.
inflate
(
R
.
layout
.
alert_dialog
,
null
);
loginFailed
(
customLayout
,
responseLogin
.
getMessages
());
// Toast.makeText(getApplicationContext(), responseLogin.getMessages(), Toast.LENGTH_LONG).show();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -104,6 +114,8 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -104,6 +114,8 @@ public class LoginActivity extends AppCompatActivity {
@Override
@Override
public
void
onFailure
(
Call
<
ResponseLogin
>
call
,
Throwable
t
)
{
public
void
onFailure
(
Call
<
ResponseLogin
>
call
,
Throwable
t
)
{
t
.
printStackTrace
();
t
.
printStackTrace
();
binding
.
setLoading
(
false
);
Toast
.
makeText
(
getApplicationContext
(),
"Connection Time Out"
,
Toast
.
LENGTH_LONG
).
show
();
}
}
});
});
}
}
...
@@ -113,4 +125,24 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -113,4 +125,24 @@ public class LoginActivity extends AppCompatActivity {
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
();
}
}
public
void
loginFailed
(
View
customLayout
,
String
message
){
utils
=
new
ViewUtil
(
customLayout
);
utils
.
dialog
(
LoginActivity
.
this
,
false
,
customLayout
,
"ERROR"
,
message
,
"Close"
)
.
show
();
utils
.
setListener
(
new
ViewUtil
.
DialogListener
()
{
@Override
public
void
onClickDisimiss
(
AlertDialog
alertDialog
)
{
alertDialog
.
dismiss
();
}
@Override
public
void
onClickLink
(
AlertDialog
alertDialog
)
{
}
});
}
}
}
\ No newline at end of file
app/src/main/java/com/example/yourcashiertest/activities/RegisterActivity.java
View file @
c9f33120
...
@@ -4,6 +4,8 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -4,6 +4,8 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.databinding.DataBindingUtil
;
import
androidx.databinding.DataBindingUtil
;
import
androidx.lifecycle.ViewModelProvider
;
import
androidx.lifecycle.ViewModelProvider
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.view.View
;
...
@@ -14,6 +16,7 @@ import android.widget.Toast;
...
@@ -14,6 +16,7 @@ import android.widget.Toast;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.R
;
import
com.example.yourcashiertest.databinding.ActivityRegisterBinding
;
import
com.example.yourcashiertest.databinding.ActivityRegisterBinding
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.models.User
;
import
com.example.yourcashiertest.utils.ViewUtil
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
import
com.example.yourcashiertest.viewmodels.UserViewModel
;
public
class
RegisterActivity
extends
AppCompatActivity
{
public
class
RegisterActivity
extends
AppCompatActivity
{
...
@@ -23,7 +26,7 @@ public class RegisterActivity extends AppCompatActivity {
...
@@ -23,7 +26,7 @@ public class RegisterActivity extends AppCompatActivity {
ActivityRegisterBinding
binding
;
ActivityRegisterBinding
binding
;
User
user
;
User
user
;
UserViewModel
viewModel
;
UserViewModel
viewModel
;
ViewUtil
utils
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
...
@@ -46,8 +49,9 @@ public class RegisterActivity extends AppCompatActivity {
...
@@ -46,8 +49,9 @@ public class RegisterActivity extends AppCompatActivity {
user
.
setPassword
(
binding
.
etPassword
.
getText
().
toString
());
user
.
setPassword
(
binding
.
etPassword
.
getText
().
toString
());
user
.
setPhoneNumber
(
binding
.
etPhoneNumber
.
getText
().
toString
());
user
.
setPhoneNumber
(
binding
.
etPhoneNumber
.
getText
().
toString
());
viewModel
.
registrasi
(
user
);
viewModel
.
registrasi
(
user
);
startActivity
(
new
Intent
(
getApplicationContext
(),
LoginActivity
.
class
));
finish
();
// startActivity(new Intent(getApplicationContext(), LoginActivity.class));
// finish();
}
}
});
});
}
}
...
...
app/src/main/java/com/example/yourcashiertest/utils/ViewUtil.java
View file @
c9f33120
package
com
.
example
.
yourcashiertest
.
utils
;
package
com
.
example
.
yourcashiertest
.
utils
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.TextView
;
import
androidx.annotation.Nullable
;
import
androidx.cardview.widget.CardView
;
import
com.example.yourcashiertest.R
;
import
com.google.android.material.snackbar.Snackbar
;
import
com.google.android.material.snackbar.Snackbar
;
public
class
ViewUtil
{
public
class
ViewUtil
{
public
ViewUtil
(){};
public
ViewUtil
(
View
v
){};
public
static
void
showMessage
(
View
view
,
String
message
)
{
public
static
void
showMessage
(
View
view
,
String
message
)
{
Snackbar
.
make
(
view
,
message
,
Snackbar
.
LENGTH_LONG
).
show
();
Snackbar
.
make
(
view
,
message
,
Snackbar
.
LENGTH_LONG
).
show
();
}
}
public
interface
DialogListener
{
void
onClickDisimiss
(
AlertDialog
alertDialog
);
void
onClickLink
(
AlertDialog
alertDialog
);
}
private
DialogListener
listener
;
public
void
setListener
(
DialogListener
listener
)
{
this
.
listener
=
listener
;
}
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
message
=
view
.
findViewById
(
R
.
id
.
alertBody
);
TextView
button
=
view
.
findViewById
(
R
.
id
.
tvTextBtn
);
TextView
button2
=
view
.
findViewById
(
R
.
id
.
tvTextBtn2
);
CardView
btnCard
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick
);
CardView
btnCard2
=
view
.
findViewById
(
R
.
id
.
cvAlertOnClick2
);
// set title and message
title
.
setText
(
titles
);
message
.
setText
(
messages
);
btnCard
.
setVisibility
(
View
.
VISIBLE
);
button
.
setText
(
link
);
btnCard2
.
setVisibility
(
View
.
VISIBLE
);
button2
.
setText
(
dismiss
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
)
.
setCancelable
(
cancelable
)
.
setView
(
view
);
AlertDialog
dialog
=
builder
.
create
();
btnCard
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
listener
.
onClickLink
(
dialog
);
}
});
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
)
{
/**
* Button1 untuk dismiss
* Button2 untuk link
*/
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
title
.
setText
(
titles
);
message
.
setText
(
messages
);
btnCard2
.
setVisibility
(
View
.
VISIBLE
);
button2
.
setText
(
dismiss
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
)
.
setCancelable
(
cancelable
)
.
setView
(
view
);
AlertDialog
dialog
=
builder
.
create
();
btnCard2
.
setOnClickListener
(
view1
->
listener
.
onClickDisimiss
(
dialog
));
return
dialog
;
}
}
}
app/src/main/res/layout/alert_dialog.xml
0 → 100644
View file @
c9f33120
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvAlertDialog"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:cardElevation=
"0dp"
app:cardBackgroundColor=
"@android:color/transparent"
android:layout_marginVertical=
"10dp"
android:layout_marginHorizontal=
"20dp"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/cvAlertDialog"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/alertTitles"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@android:string/dialog_alert_title"
android:textSize=
"18sp"
android:textStyle=
"bold"
android:layout_marginBottom=
"10dp"
android:layout_gravity=
"center"
/>
<TextView
android:id=
"@+id/alertBody"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Your username or password wrong"
android:textSize=
"18sp"
android:gravity=
"center"
android:layout_gravity=
"center"
/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
app:layout_constraintTop_toBottomOf=
"@id/cvAlertDialog"
>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvAlertOnClick"
app:cardCornerRadius=
"0dp"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:clickable=
"true"
android:focusable=
"true"
>
<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
android:id=
"@+id/tvTextBtn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"Coba Lagi"
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:gravity=
"center"
/>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/values/styles.xml
View file @
c9f33120
...
@@ -125,5 +125,17 @@
...
@@ -125,5 +125,17 @@
<style
name=
"AppTheme.RoundedCornerMaterialButton"
parent=
"Widget.AppCompat.Button.Colored"
>
<style
name=
"AppTheme.RoundedCornerMaterialButton"
parent=
"Widget.AppCompat.Button.Colored"
>
<item
name=
"android:background"
>
@drawable/rounded_shape
</item>
<item
name=
"android:background"
>
@drawable/rounded_shape
</item>
</style>
</style>
<style
name=
"Divider"
>
<item
name=
"android:background"
>
#36333333
</item>
//you can give your color here. that will change all divider color in your app.
</style>
<style
name=
"Divider.Horizontal"
parent=
"Divider"
>
<item
name=
"android:layout_width"
>
match_parent
</item>
<item
name=
"android:layout_height"
>
1dp
</item>
// You can change thickness here.
</style>
<style
name=
"Divider.Vertical"
parent=
"Divider"
>
<item
name=
"android:layout_width"
>
1dp
</item>
<item
name=
"android:layout_height"
>
match_parent
</item>
</style>
</resources>
</resources>
\ 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