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
2a3fce92
Commit
2a3fce92
authored
Sep 04, 2020
by
fauzi
Browse files
Options
Browse Files
Download
Plain Diff
register
parents
64f8dc9a
65083371
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1174 additions
and
448 deletions
+1174
-448
Project.xml
.idea/codeStyles/Project.xml
+24
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+5
-3
CartActivity.java
app/src/main/java/com/yono/messeripos/CartActivity.java
+2
-2
FormProductActivity.java
...rc/main/java/com/yono/messeripos/FormProductActivity.java
+6
-0
MainActivity.java
app/src/main/java/com/yono/messeripos/MainActivity.java
+1
-11
MethodePayment.java
app/src/main/java/com/yono/messeripos/MethodePayment.java
+87
-0
PaymentActivity.java
app/src/main/java/com/yono/messeripos/PaymentActivity.java
+212
-213
RegisterState.java
app/src/main/java/com/yono/messeripos/RegisterState.java
+61
-23
ScannerNfc.java
app/src/main/java/com/yono/messeripos/ScannerNfc.java
+279
-0
TransactionDetail.java
app/src/main/java/com/yono/messeripos/TransactionDetail.java
+16
-0
PaymentAdapter.java
...main/java/com/yono/messeripos/adapter/PaymentAdapter.java
+0
-7
UsersService.java
...in/java/com/yono/messeripos/api/service/UsersService.java
+4
-0
ForgotPasswordModels.java
...java/com/yono/messeripos/models/ForgotPasswordModels.java
+35
-0
Utils.java
app/src/main/java/com/yono/messeripos/utils/Utils.java
+10
-0
ic_bank_transfer.xml
app/src/main/res/drawable/ic_bank_transfer.xml
+24
-0
ic_baseline_chevron_right_24.xml
app/src/main/res/drawable/ic_baseline_chevron_right_24.xml
+5
-0
ic_money.xml
app/src/main/res/drawable/ic_money.xml
+30
-0
ic_nfc.xml
app/src/main/res/drawable/ic_nfc.xml
+9
-0
nfcgif.gif
app/src/main/res/drawable/nfcgif.gif
+0
-0
activity_detail_transaction.xml
app/src/main/res/layout/activity_detail_transaction.xml
+81
-0
activity_forgot_password.xml
app/src/main/res/layout/activity_forgot_password.xml
+1
-1
activity_payment.xml
app/src/main/res/layout/activity_payment.xml
+1
-35
methode_payment.xml
app/src/main/res/layout/methode_payment.xml
+106
-8
nfc_scanner.xml
app/src/main/res/layout/nfc_scanner.xml
+12
-0
register_form.xml
app/src/main/res/layout/register_form.xml
+163
-145
No files found.
.idea/codeStyles/Project.xml
View file @
2a3fce92
<component
name=
"ProjectCodeStyleConfiguration"
>
<component
name=
"ProjectCodeStyleConfiguration"
>
<code_scheme
name=
"Project"
version=
"173"
>
<code_scheme
name=
"Project"
version=
"173"
>
<DBN-PSQL>
<case-options
enabled=
"true"
>
<option
name=
"KEYWORD_CASE"
value=
"lower"
/>
<option
name=
"FUNCTION_CASE"
value=
"lower"
/>
<option
name=
"PARAMETER_CASE"
value=
"lower"
/>
<option
name=
"DATATYPE_CASE"
value=
"lower"
/>
<option
name=
"OBJECT_CASE"
value=
"preserve"
/>
</case-options>
<formatting-settings
enabled=
"false"
/>
</DBN-PSQL>
<DBN-SQL>
<case-options
enabled=
"true"
>
<option
name=
"KEYWORD_CASE"
value=
"lower"
/>
<option
name=
"FUNCTION_CASE"
value=
"lower"
/>
<option
name=
"PARAMETER_CASE"
value=
"lower"
/>
<option
name=
"DATATYPE_CASE"
value=
"lower"
/>
<option
name=
"OBJECT_CASE"
value=
"preserve"
/>
</case-options>
<formatting-settings
enabled=
"false"
>
<option
name=
"STATEMENT_SPACING"
value=
"one_line"
/>
<option
name=
"CLAUSE_CHOP_DOWN"
value=
"chop_down_if_statement_long"
/>
<option
name=
"ITERATION_ELEMENTS_WRAPPING"
value=
"chop_down_if_not_single"
/>
</formatting-settings>
</DBN-SQL>
<DBN-PSQL>
<DBN-PSQL>
<case-options
enabled=
"true"
>
<case-options
enabled=
"true"
>
<option
name=
"KEYWORD_CASE"
value=
"lower"
/>
<option
name=
"KEYWORD_CASE"
value=
"lower"
/>
...
...
app/src/main/AndroidManifest.xml
View file @
2a3fce92
...
@@ -20,9 +20,11 @@
...
@@ -20,9 +20,11 @@
android:roundIcon=
"@mipmap/ic_launcher_new_icon"
android:roundIcon=
"@mipmap/ic_launcher_new_icon"
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme.appbar"
>
android:theme=
"@style/AppTheme.appbar"
>
<activity
<activity
android:name=
".MethodePayment"
/>
android:name=
".ForgotPasswordActivity"
<activity
android:name=
".ScannerNfc"
/>
android:windowSoftInputMode=
"adjustResize"
/>
<activity
android:name=
".TransactionDetail"
/>
<activity
android:name=
".ForgotPasswordActivity"
android:windowSoftInputMode=
"adjustResize"
></activity>
<activity
android:name=
".RegisterActivity"
/>
<activity
android:name=
".RegisterActivity"
/>
<activity
android:name=
".TransactionActivity"
/>
<activity
android:name=
".TransactionActivity"
/>
<activity
<activity
...
...
app/src/main/java/com/yono/messeripos/CartActivity.java
View file @
2a3fce92
...
@@ -216,10 +216,10 @@ public class CartActivity extends AppCompatActivity {
...
@@ -216,10 +216,10 @@ public class CartActivity extends AppCompatActivity {
Log
.
i
(
"FROM_CHECKOUT_INTENT"
,
"onClick: "
+
utils
.
convertGson
(
paymentsModelsIntent
));
Log
.
i
(
"FROM_CHECKOUT_INTENT"
,
"onClick: "
+
utils
.
convertGson
(
paymentsModelsIntent
));
if
(
paymentsModelsIntent
!=
null
){
if
(
paymentsModelsIntent
!=
null
){
Log
.
i
(
"TAGAAAAA"
,
"onClick: "
+
utils
.
convertGson
(
paymentsModelsIntent
));
Log
.
i
(
"TAGAAAAA"
,
"onClick: "
+
utils
.
convertGson
(
paymentsModelsIntent
));
startActivity
(
new
Intent
(
CartActivity
.
this
,
PaymentActivity
.
class
)
startActivity
(
new
Intent
(
CartActivity
.
this
,
MethodePayment
.
class
)
.
putExtra
(
CODE_SEND_CHECKOUT_HISTORY
,
paymentsModelsIntent
));
.
putExtra
(
CODE_SEND_CHECKOUT_HISTORY
,
paymentsModelsIntent
));
}
else
{
}
else
{
startActivity
(
new
Intent
(
CartActivity
.
this
,
PaymentActivity
.
class
));
startActivity
(
new
Intent
(
CartActivity
.
this
,
MethodePayment
.
class
));
finish
();
finish
();
}
}
}
}
...
...
app/src/main/java/com/yono/messeripos/FormProductActivity.java
View file @
2a3fce92
...
@@ -4,9 +4,11 @@ import android.Manifest;
...
@@ -4,9 +4,11 @@ import android.Manifest;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.app.AlertDialog
;
import
android.app.AlertDialog
;
import
android.app.ProgressDialog
;
import
android.app.ProgressDialog
;
import
android.content.Context
;
import
android.content.CursorLoader
;
import
android.content.CursorLoader
;
import
android.content.DialogInterface
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.database.Cursor
;
import
android.database.Cursor
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Build
;
...
@@ -78,6 +80,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -78,6 +80,7 @@ public class FormProductActivity extends AppCompatActivity {
ProductModels
productModelsIntent
;
ProductModels
productModelsIntent
;
List
<
Integer
>
categorySelect
=
new
ArrayList
<>();
List
<
Integer
>
categorySelect
=
new
ArrayList
<>();
FormCategory
formCategory
;
FormCategory
formCategory
;
SharedPreferences
sharedPreferences
;
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
@Override
@Override
...
@@ -92,6 +95,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -92,6 +95,7 @@ public class FormProductActivity extends AppCompatActivity {
progressDialog
=
new
ProgressDialog
(
FormProductActivity
.
this
);
progressDialog
=
new
ProgressDialog
(
FormProductActivity
.
this
);
progressDialog
.
setMessage
(
"Loading..."
);
progressDialog
.
setMessage
(
"Loading..."
);
progressDialog
.
show
();
progressDialog
.
show
();
sharedPreferences
=
getSharedPreferences
(
MainActivity
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
Window
w
=
getWindow
();
Window
w
=
getWindow
();
...
@@ -101,6 +105,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -101,6 +105,7 @@ public class FormProductActivity extends AppCompatActivity {
productModelsIntent
=
getIntent
().
getParcelableExtra
(
MainActivity
.
DATA_PRODUCT
);
productModelsIntent
=
getIntent
().
getParcelableExtra
(
MainActivity
.
DATA_PRODUCT
);
formCategory
=
new
FormCategory
();
formCategory
=
new
FormCategory
();
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
topAppBarForm
);
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
topAppBarForm
);
setSupportActionBar
(
toolbars
);
setSupportActionBar
(
toolbars
);
...
@@ -268,6 +273,7 @@ public class FormProductActivity extends AppCompatActivity {
...
@@ -268,6 +273,7 @@ public class FormProductActivity extends AppCompatActivity {
.
setPositiveButton
(
"Oke"
,
new
DialogInterface
.
OnClickListener
()
{
.
setPositiveButton
(
"Oke"
,
new
DialogInterface
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
MainActivity
.
status_update
=
false
;
startActivity
(
new
Intent
(
FormProductActivity
.
this
,
MainActivity
.
class
));
startActivity
(
new
Intent
(
FormProductActivity
.
this
,
MainActivity
.
class
));
finish
();
finish
();
}
}
...
...
app/src/main/java/com/yono/messeripos/MainActivity.java
View file @
2a3fce92
...
@@ -145,11 +145,6 @@ public class MainActivity extends AppCompatActivity {
...
@@ -145,11 +145,6 @@ public class MainActivity extends AppCompatActivity {
productAdapterListener
();
productAdapterListener
();
categoryAdapterListener
();
categoryAdapterListener
();
formCategoryListener
();
formCategoryListener
();
punyaAbiCoba
();
}
private
void
punyaAbiCoba
()
{
}
}
private
void
toolbarSetOnItemClicked
()
{
private
void
toolbarSetOnItemClicked
()
{
...
@@ -159,17 +154,12 @@ public class MainActivity extends AppCompatActivity {
...
@@ -159,17 +154,12 @@ public class MainActivity extends AppCompatActivity {
int
id
=
item
.
getItemId
();
int
id
=
item
.
getItemId
();
if
(
id
==
R
.
id
.
menu_cart
)
{
if
(
id
==
R
.
id
.
menu_cart
)
{
if
(
checkout
){
if
(
checkout
){
startActivity
(
new
Intent
(
getApplicationContext
(),
PaymentActivity
.
class
));
startActivity
(
new
Intent
(
getApplicationContext
(),
MethodePayment
.
class
));
}
else
{
}
else
{
startActivity
(
new
Intent
(
getApplicationContext
(),
CartActivity
.
class
));
startActivity
(
new
Intent
(
getApplicationContext
(),
CartActivity
.
class
));
}
}
}
else
if
(
id
==
R
.
id
.
update
){
}
else
if
(
id
==
R
.
id
.
update
){
status_update
=
true
;
status_update
=
true
;
// binding.topAppBar.setVisibility(View.GONE);
// binding.tvCategory.setVisibility(View.GONE);
// binding.rvCategory.setVisibility(View.GONE);
// binding.appBarUpdate.setVisibility(View.VISIBLE);
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
topAppBar
);
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
topAppBar
);
setSupportActionBar
(
toolbars
);
setSupportActionBar
(
toolbars
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
getSupportActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
...
...
app/src/main/java/com/yono/messeripos/MethodePayment.java
0 → 100644
View file @
2a3fce92
package
com
.
yono
.
messeripos
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.nfc.NfcAdapter
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.PersistableBundle
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.google.android.material.appbar.MaterialToolbar
;
import
com.google.android.material.card.MaterialCardView
;
import
com.yono.messeripos.models.PaymentsModels
;
public
class
MethodePayment
extends
AppCompatActivity
{
SharedPreferences
sharedPreferences
;
PaymentsModels
paymentsModelsIntent
,
paymentsModels
;
MaterialCardView
mcCash
,
mcBank
,
mcNfc
;
BottomSheets
bottomSheet
;
NfcAdapter
nfcAdapter
;
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
methode_payment
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
Window
w
=
getWindow
();
w
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
,
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
);
}
nfcAdapter
=
NfcAdapter
.
getDefaultAdapter
(
this
);
mcCash
=
findViewById
(
R
.
id
.
cvCash
);
mcBank
=
findViewById
(
R
.
id
.
cvBankTransfer
);
mcNfc
=
findViewById
(
R
.
id
.
cvNFC
);
sharedPreferences
=
getSharedPreferences
(
MainActivity
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
paymentsModelsIntent
=
getIntent
().
getParcelableExtra
(
CartActivity
.
CODE_SEND_CHECKOUT_HISTORY
);
paymentsModels
=
new
PaymentsModels
();
MaterialToolbar
toolbars
=
findViewById
(
R
.
id
.
appBarPaymentMethode
);
setSupportActionBar
(
toolbars
);
getSupportActionBar
().
setTitle
(
"Methode Payment"
);
if
(
nfcAdapter
==
null
){
mcNfc
.
setEnabled
(
false
);
}
else
{
mcNfc
.
setEnabled
(
true
);
}
mcCash
.
setOnClickListener
(
view
->
cash
());
mcBank
.
setOnClickListener
(
view
->
bank
());
mcNfc
.
setOnClickListener
(
view
->
nfc
());
}
private
void
nfc
()
{
startActivity
(
new
Intent
(
MethodePayment
.
this
,
ScannerNfc
.
class
));
}
private
void
bank
()
{
startActivity
(
new
Intent
(
MethodePayment
.
this
,
PaymentActivity
.
class
));
}
private
void
cash
()
{
if
(
paymentsModelsIntent
==
null
){
bottomSheet
=
new
BottomSheets
(
paymentsModels
,
0
);
bottomSheet
.
setCancelable
(
true
);
bottomSheet
.
show
(
getSupportFragmentManager
(),
"ModalBottomSheet"
);
}
else
{
bottomSheet
=
new
BottomSheets
(
paymentsModelsIntent
,
1
);
bottomSheet
.
setCancelable
(
true
);
bottomSheet
.
show
(
getSupportFragmentManager
(),
"ModalBottomSheet"
);
}
}
}
app/src/main/java/com/yono/messeripos/PaymentActivity.java
View file @
2a3fce92
This diff is collapsed.
Click to expand it.
app/src/main/java/com/yono/messeripos/RegisterState.java
View file @
2a3fce92
...
@@ -14,6 +14,7 @@ import android.text.TextWatcher;
...
@@ -14,6 +14,7 @@ import android.text.TextWatcher;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.ProgressBar
;
import
android.widget.RelativeLayout
;
import
android.widget.RelativeLayout
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -44,6 +45,7 @@ import retrofit2.Response;
...
@@ -44,6 +45,7 @@ import retrofit2.Response;
public
class
RegisterState
extends
BottomSheetDialogFragment
{
public
class
RegisterState
extends
BottomSheetDialogFragment
{
private
static
final
String
TAG
=
"RegisterState"
;
private
static
final
String
TAG
=
"RegisterState"
;
private
static
String
DEFAULT_REGISTER
=
"CREATE ACCOUNT"
;
BottomSheetBehavior
sheetBehavior2
;
BottomSheetBehavior
sheetBehavior2
;
BottomSheetDialog
sheetDialog2
;
BottomSheetDialog
sheetDialog2
;
RelativeLayout
registerLayout
;
RelativeLayout
registerLayout
;
...
@@ -53,10 +55,9 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -53,10 +55,9 @@ public class RegisterState extends BottomSheetDialogFragment {
Context
context
;
Context
context
;
MainViewModels
mainViewModels
;
MainViewModels
mainViewModels
;
SharedPreferences
sharedPreferences
;
SharedPreferences
sharedPreferences
;
ProgressBar
pbReg
;
Utils
utils
;
Utils
utils
;
String
busername
,
bemail
,
bpassword
,
brepassword
;
public
RegisterState
(
Context
context
,
MainViewModels
mainViewModels
)
{
public
RegisterState
(
Context
context
,
MainViewModels
mainViewModels
)
{
this
.
context
=
context
;
this
.
context
=
context
;
this
.
mainViewModels
=
mainViewModels
;
this
.
mainViewModels
=
mainViewModels
;
...
@@ -79,6 +80,7 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -79,6 +80,7 @@ public class RegisterState extends BottomSheetDialogFragment {
repassword
=
view
.
findViewById
(
R
.
id
.
ETRePasswordReg
);
repassword
=
view
.
findViewById
(
R
.
id
.
ETRePasswordReg
);
registerButton
=
view
.
findViewById
(
R
.
id
.
MBRegister
);
registerButton
=
view
.
findViewById
(
R
.
id
.
MBRegister
);
closeBtn
=
view
.
findViewById
(
R
.
id
.
ivclose
);
closeBtn
=
view
.
findViewById
(
R
.
id
.
ivclose
);
pbReg
=
view
.
findViewById
(
R
.
id
.
progressReg
);
// create session
// create session
sharedPreferences
=
context
.
getSharedPreferences
(
SplashScreen
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
sharedPreferences
=
context
.
getSharedPreferences
(
SplashScreen
.
MY_SHARED_PREFERENCES
,
Context
.
MODE_PRIVATE
);
...
@@ -87,6 +89,7 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -87,6 +89,7 @@ public class RegisterState extends BottomSheetDialogFragment {
utils
=
new
Utils
();
utils
=
new
Utils
();
sheetDialog2
.
setContentView
(
view
);
sheetDialog2
.
setContentView
(
view
);
pbReg
.
setVisibility
(
View
.
GONE
);
sheetBehavior2
=
BottomSheetBehavior
.
from
((
View
)
(
view
.
getParent
()));
sheetBehavior2
=
BottomSheetBehavior
.
from
((
View
)
(
view
.
getParent
()));
...
@@ -108,20 +111,20 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -108,20 +111,20 @@ public class RegisterState extends BottomSheetDialogFragment {
@Override
@Override
public
void
onTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
public
void
onTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
email
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
repassword
.
getText
().
toString
())){
TextUtils
.
isEmpty
(
email
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
repassword
.
getText
().
toString
()))
{
username
.
setError
(
"This field can't empty"
);
username
.
setError
(
"This field can't empty"
);
email
.
setError
(
"This field can't empty"
);
email
.
setError
(
"This field can't empty"
);
password
.
setError
(
"This field can't empty"
);
password
.
setError
(
"This field can't empty"
);
repassword
.
setError
(
"This field can't empty"
);
repassword
.
setError
(
"This field can't empty"
);
}
else
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
()))
{
}
else
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
()))
{
username
.
setError
(
"This field can't empty"
);
username
.
setError
(
"This field can't empty"
);
}
else
if
(
TextUtils
.
isEmpty
(
email
.
getText
().
toString
()))
{
}
else
if
(
TextUtils
.
isEmpty
(
email
.
getText
().
toString
()))
{
email
.
setError
(
"This field can't empty"
);
email
.
setError
(
"This field can't empty"
);
}
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
if
(
TextUtils
.
isEmpty
(
repassword
.
getText
().
toString
()))
{
}
else
if
(
TextUtils
.
isEmpty
(
repassword
.
getText
().
toString
()))
{
repassword
.
setError
(
"This field can't empty"
);
repassword
.
setError
(
"This field can't empty"
);
}
else
if
(!
utils
.
isValidEmail
(
charSequence
.
toString
()))
{
}
else
if
(!
utils
.
isValidEmail
(
charSequence
.
toString
()))
{
email
.
setError
(
"Please enter the correct email format"
);
email
.
setError
(
"Please enter the correct email format"
);
}
}
...
@@ -142,7 +145,14 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -142,7 +145,14 @@ public class RegisterState extends BottomSheetDialogFragment {
@Override
@Override
public
void
onTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
public
void
onTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
if
(!
utils
.
isValidPassword
(
charSequence
.
toString
())){
if
(
TextUtils
.
isEmpty
(
username
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
email
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
password
.
getText
().
toString
())
&&
TextUtils
.
isEmpty
(
repassword
.
getText
().
toString
()))
{
username
.
setError
(
"This field can't empty"
);
email
.
setError
(
"This field can't empty"
);
password
.
setError
(
"This field can't empty"
);
repassword
.
setError
(
"This field can't empty"
);
}
else
if
(!
utils
.
isValidPassword
(
charSequence
.
toString
()))
{
password
.
setError
(
"Password Must Be 8 Character"
);
password
.
setError
(
"Password Must Be 8 Character"
);
}
}
}
}
...
@@ -159,27 +169,25 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -159,27 +169,25 @@ public class RegisterState extends BottomSheetDialogFragment {
public
void
onClick
(
View
view
)
{
public
void
onClick
(
View
view
)
{
mainViewModels
.
postRegis
(
mainViewModels
.
postRegis
(
new
UsersModels
(
username
.
getText
().
toString
(),
new
UsersModels
(
username
.
getText
().
toString
(),
email
.
getText
().
toString
(),
password
.
getText
().
toString
(),
email
.
getText
().
toString
(),
password
.
getText
().
toString
(),
repassword
.
getText
().
toString
())).
observe
(
lifecycleOwner
,
new
Observer
<
DataResponse
<
UsersModels
>>()
{
repassword
.
getText
().
toString
())).
observe
(
lifecycleOwner
,
new
Observer
<
DataResponse
<
UsersModels
>>()
{
@Override
@Override
public
void
onChanged
(
DataResponse
<
UsersModels
>
usersModelsDataResponse
)
{
public
void
onChanged
(
DataResponse
<
UsersModels
>
usersModelsDataResponse
)
{
/**
/**
*
TAMABHAKN RESPONSE DLUH
AGAR ADA PROGRESS DIALOGNYA
*
RESPONSE
AGAR ADA PROGRESS DIALOGNYA
* KETIKA RESPONNYA SUCCESS MAKA PROGRESS DIalog diSMISS
* KETIKA RESPONNYA SUCCESS MAKA PROGRESS DIalog diSMISS
* DAN ALERT ACTIVATE MUNCUL
* DAN ALERT ACTIVATE MUNCUL
* */
* */
setAllLayoutToFalse
();
if
(
usersModelsDataResponse
!=
null
)
{
final
View
customLayout
=
getLayoutInflater
()
.
inflate
(
R
.
layout
.
alert_dialog
,
null
);
activateEmail
(
customLayout
);
setAllLayoutToTrue
();
}
}
}
});
});
/**
* Jika tombol sign up ditekan
*
*
* kembali ke halaman login utama dengan Snackbar Cek Email
*
* Pakai bahasa inggris ya untuk responnya
*
* */
registerButton
.
setEnabled
(
false
);
}
}
});
});
...
@@ -193,7 +201,36 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -193,7 +201,36 @@ public class RegisterState extends BottomSheetDialogFragment {
return
sheetDialog2
;
return
sheetDialog2
;
}
}
<<<<<<<
HEAD
private
void
activateEmail
()
{
private
void
activateEmail
()
{
=======
private
void
setAllLayoutToTrue
()
{
pbReg
.
setVisibility
(
View
.
GONE
);
registerButton
.
setText
(
DEFAULT_REGISTER
);
sheetDialog2
.
setCancelable
(
true
);
username
.
setEnabled
(
true
);
email
.
setEnabled
(
true
);
password
.
setEnabled
(
true
);
repassword
.
setEnabled
(
true
);
registerButton
.
setEnabled
(
true
);
closeBtn
.
setEnabled
(
true
);
}
private
void
setAllLayoutToFalse
()
{
pbReg
.
setVisibility
(
View
.
VISIBLE
);
registerButton
.
setText
(
""
);
sheetDialog2
.
setCancelable
(
false
);
username
.
setEnabled
(
false
);
password
.
setEnabled
(
false
);
registerButton
.
setEnabled
(
false
);
closeBtn
.
setEnabled
(
false
);
}
private
void
activateEmail
(
View
customLayout
)
{
>>>>>>>
dev
utils
=
new
Utils
();
utils
=
new
Utils
();
utils
.
dialog
(
context
,
false
,
"Please Verifiy Email"
,
utils
.
dialog
(
context
,
false
,
"Please Verifiy Email"
,
...
@@ -203,7 +240,10 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -203,7 +240,10 @@ public class RegisterState extends BottomSheetDialogFragment {
utils
.
setListener
(
new
Utils
.
DialogListener
()
{
utils
.
setListener
(
new
Utils
.
DialogListener
()
{
@Override
@Override
public
void
onClickDisimiss
(
AlertDialog
alertDialog
)
{
public
void
onClickDisimiss
(
AlertDialog
alertDialog
)
{
alertDialog
.
dismiss
();
alertDialog
.
dismiss
();
sheetDialog2
.
dismiss
();
}
}
@Override
@Override
...
@@ -216,6 +256,4 @@ public class RegisterState extends BottomSheetDialogFragment {
...
@@ -216,6 +256,4 @@ public class RegisterState extends BottomSheetDialogFragment {
}
}
});
});
}
}
}
}
app/src/main/java/com/yono/messeripos/ScannerNfc.java
0 → 100644
View file @
2a3fce92
package
com
.
yono
.
messeripos
;
import
android.app.PendingIntent
;
import
android.app.ProgressDialog
;
import
android.content.Intent
;
import
android.nfc.NdefMessage
;
import
android.nfc.NdefRecord
;
import
android.nfc.NfcAdapter
;
import
android.nfc.Tag
;
import
android.nfc.tech.MifareClassic
;
import
android.nfc.tech.MifareUltralight
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.os.Parcelable
;
import
android.os.PersistableBundle
;
import
android.provider.Settings
;
import
android.util.Log
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.widget.ProgressBar
;
import
android.widget.Toast
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.yono.messeripos.R
;
import
com.yono.messeripos.nfc.parser.NdefMessageParser
;
import
com.yono.messeripos.nfc.record.ParsedNdefRecord
;
import
com.yono.messeripos.utils.Utils
;
import
java.util.List
;
public
class
ScannerNfc
extends
AppCompatActivity
{
PendingIntent
pendingIntent
;
NfcAdapter
nfcAdapter
;
Utils
utils
=
new
Utils
();
ProgressDialog
progressDialog
;
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
nfc_scanner
);
nfcAdapter
=
NfcAdapter
.
getDefaultAdapter
(
this
);
progressDialog
=
new
ProgressDialog
(
ScannerNfc
.
this
);
progressDialog
.
setMessage
(
"Loading..."
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
Window
w
=
getWindow
();
w
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
,
WindowManager
.
LayoutParams
.
FLAG_LAYOUT_NO_LIMITS
);
}
pendingIntent
=
PendingIntent
.
getActivity
(
this
,
0
,
new
Intent
(
this
,
this
.
getClass
())
.
addFlags
(
Intent
.
FLAG_ACTIVITY_SINGLE_TOP
),
0
);
}
@Override
protected
void
onResume
()
{
super
.
onResume
();
if
(
nfcAdapter
!=
null
)
{
if
(!
nfcAdapter
.
isEnabled
())
showWirelessSettings
();
nfcAdapter
.
enableForegroundDispatch
(
this
,
pendingIntent
,
null
,
null
);
}
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
setIntent
(
intent
);
resolveIntent
(
intent
);
}
private
void
resolveIntent
(
Intent
intent
)
{
progressDialog
.
show
();
String
action
=
intent
.
getAction
();
Log
.
i
(
"StringAction"
,
"resolveIntent: "
+
action
);
if
(
NfcAdapter
.
ACTION_TAG_DISCOVERED
.
equals
(
action
)
||
NfcAdapter
.
ACTION_TECH_DISCOVERED
.
equals
(
action
)
||
NfcAdapter
.
ACTION_NDEF_DISCOVERED
.
equals
(
action
))
{
Parcelable
[]
rawMsgs
=
intent
.
getParcelableArrayExtra
(
NfcAdapter
.
EXTRA_NDEF_MESSAGES
);
NdefMessage
[]
msgs
;
Log
.
i
(
"StringAction"
,
"resolveIntent: "
+
rawMsgs
);
if
(
rawMsgs
!=
null
)
{
msgs
=
new
NdefMessage
[
rawMsgs
.
length
];
for
(
int
i
=
0
;
i
<
rawMsgs
.
length
;
i
++)
{
Log
.
i
(
"rawMsg"
,
"resolveIntent: "
+
rawMsgs
[
i
]);
msgs
[
i
]
=
(
NdefMessage
)
rawMsgs
[
i
];
}
}
else
{
byte
[]
empty
=
new
byte
[
0
];
byte
[]
id
=
intent
.
getByteArrayExtra
(
NfcAdapter
.
EXTRA_ID
);
Tag
tag
=
(
Tag
)
intent
.
getParcelableExtra
(
NfcAdapter
.
EXTRA_TAG
);
Log
.
i
(
"TAG"
,
"resolveIntent: "
+
tag
);
byte
[]
payload
=
dumpTagData
(
tag
).
getBytes
();
NdefRecord
record
=
new
NdefRecord
(
NdefRecord
.
TNF_UNKNOWN
,
empty
,
id
,
payload
);
NdefMessage
msg
=
new
NdefMessage
(
new
NdefRecord
[]
{
record
});
msgs
=
new
NdefMessage
[]
{
msg
};
Log
.
i
(
"DUMPTAG"
,
"resolveIntent: "
+
toDec
(
tag
.
getId
()));
/**
* DISINI UNTUK SAVE KE DATABASE*/
progressDialog
.
dismiss
();
}
Log
.
i
(
"StringAction"
,
"resolveIntent: "
+
msgs
);
displayMsgs
(
msgs
);
}
}
private
void
displayMsgs
(
NdefMessage
[]
msgs
)
{
if
(
msgs
==
null
||
msgs
.
length
==
0
)
return
;
StringBuilder
builder
=
new
StringBuilder
();
List
<
ParsedNdefRecord
>
records
=
NdefMessageParser
.
parse
(
msgs
[
0
]);
final
int
size
=
records
.
size
();
Log
.
i
(
"StringAction"
,
"resolveIntent: "
+
size
);
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
ParsedNdefRecord
record
=
records
.
get
(
i
);
String
str
=
record
.
str
();
Log
.
i
(
"DIDALAM"
,
"resolveIntent: "
+
str
);
builder
.
append
(
str
).
append
(
"\n"
);
}
// Log.i("StringAction", "resolveIntent: "+builder.toString());
// text.setText(builder.toString());
utils
.
toastMessage
(
ScannerNfc
.
this
,
builder
.
toString
());
// new Handler(Looper.getMainLooper()).postDelayed(()->{
// progressDialog.dismiss();
// }, 1500);
}
private
void
showWirelessSettings
()
{
Toast
.
makeText
(
this
,
"You need to enable NFC"
,
Toast
.
LENGTH_SHORT
).
show
();
Intent
intent
=
new
Intent
(
Settings
.
ACTION_WIRELESS_SETTINGS
);
startActivity
(
intent
);
}
private
String
dumpTagData
(
Tag
tag
)
{
StringBuilder
sb
=
new
StringBuilder
();
byte
[]
id
=
tag
.
getId
();
Log
.
i
(
"ID"
,
"resolveIntent: "
+
id
);
sb
.
append
(
"ID (hex): "
).
append
(
toHex
(
id
)).
append
(
'\n'
);
sb
.
append
(
"ID (reversed hex): "
).
append
(
toReversedHex
(
id
)).
append
(
'\n'
);
sb
.
append
(
"ID (dec): "
).
append
(
toDec
(
id
)).
append
(
'\n'
);
sb
.
append
(
"ID (reversed dec): "
).
append
(
toReversedDec
(
id
)).
append
(
'\n'
);
String
prefix
=
"android.nfc.tech."
;
sb
.
append
(
"Technologies: "
);
for
(
String
tech
:
tag
.
getTechList
())
{
sb
.
append
(
tech
.
substring
(
prefix
.
length
()));
sb
.
append
(
", "
);
}
sb
.
delete
(
sb
.
length
()
-
2
,
sb
.
length
());
for
(
String
tech
:
tag
.
getTechList
())
{
if
(
tech
.
equals
(
MifareClassic
.
class
.
getName
()))
{
sb
.
append
(
'\n'
);
String
type
=
"Unknown"
;
try
{
MifareClassic
mifareTag
=
MifareClassic
.
get
(
tag
);
switch
(
mifareTag
.
getType
())
{
case
MifareClassic
.
TYPE_CLASSIC
:
type
=
"Classic"
;
break
;
case
MifareClassic
.
TYPE_PLUS
:
type
=
"Plus"
;
break
;
case
MifareClassic
.
TYPE_PRO
:
type
=
"Pro"
;
break
;
}
sb
.
append
(
"Mifare Classic type: "
);
sb
.
append
(
type
);
sb
.
append
(
'\n'
);
sb
.
append
(
"Mifare size: "
);
sb
.
append
(
mifareTag
.
getSize
()
+
" bytes"
);
sb
.
append
(
'\n'
);
sb
.
append
(
"Mifare sectors: "
);
sb
.
append
(
mifareTag
.
getSectorCount
());
sb
.
append
(
'\n'
);
sb
.
append
(
"Mifare blocks: "
);
sb
.
append
(
mifareTag
.
getBlockCount
());
}
catch
(
Exception
e
)
{
sb
.
append
(
"Mifare classic error: "
+
e
.
getMessage
());
}
}
if
(
tech
.
equals
(
MifareUltralight
.
class
.
getName
()))
{
sb
.
append
(
'\n'
);
MifareUltralight
mifareUlTag
=
MifareUltralight
.
get
(
tag
);
String
type
=
"Unknown"
;
switch
(
mifareUlTag
.
getType
())
{
case
MifareUltralight
.
TYPE_ULTRALIGHT
:
type
=
"Ultralight"
;
break
;
case
MifareUltralight
.
TYPE_ULTRALIGHT_C
:
type
=
"Ultralight C"
;
break
;
}
sb
.
append
(
"Mifare Ultralight type: "
);
sb
.
append
(
type
);
}
}
return
sb
.
toString
();
}
private
String
toHex
(
byte
[]
bytes
)
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
bytes
.
length
-
1
;
i
>=
0
;
--
i
)
{
int
b
=
bytes
[
i
]
&
0xff
;
if
(
b
<
0x10
)
sb
.
append
(
'0'
);
sb
.
append
(
Integer
.
toHexString
(
b
));
if
(
i
>
0
)
{
sb
.
append
(
" "
);
}
}
return
sb
.
toString
();
}
private
String
toReversedHex
(
byte
[]
bytes
)
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
bytes
.
length
;
++
i
)
{
if
(
i
>
0
)
{
sb
.
append
(
" "
);
}
int
b
=
bytes
[
i
]
&
0xff
;
if
(
b
<
0x10
)
sb
.
append
(
'0'
);
sb
.
append
(
Integer
.
toHexString
(
b
));
}
return
sb
.
toString
();
}
private
long
toDec
(
byte
[]
bytes
)
{
long
result
=
0
;
long
factor
=
1
;
for
(
int
i
=
0
;
i
<
bytes
.
length
;
++
i
)
{
long
value
=
bytes
[
i
]
&
0xff
l
;
result
+=
value
*
factor
;
factor
*=
256
l
;
}
return
result
;
}
private
long
toReversedDec
(
byte
[]
bytes
)
{
long
result
=
0
;
long
factor
=
1
;
for
(
int
i
=
bytes
.
length
-
1
;
i
>=
0
;
--
i
)
{
long
value
=
bytes
[
i
]
&
0xff
l
;
result
+=
value
*
factor
;
factor
*=
256
l
;
}
return
result
;
}
}
app/src/main/java/com/yono/messeripos/TransactionDetail.java
0 → 100644
View file @
2a3fce92
package
com
.
yono
.
messeripos
;
import
android.os.Bundle
;
import
android.os.PersistableBundle
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatActivity
;
public
class
TransactionDetail
extends
AppCompatActivity
{
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_detail_transaction
);
}
}
app/src/main/java/com/yono/messeripos/adapter/PaymentAdapter.java
View file @
2a3fce92
...
@@ -107,13 +107,6 @@ public class PaymentAdapter extends RecyclerView.Adapter<PaymentAdapter.ViewHold
...
@@ -107,13 +107,6 @@ public class PaymentAdapter extends RecyclerView.Adapter<PaymentAdapter.ViewHold
public
void
binData
(
PaymentResponse
paymentResponse
){
public
void
binData
(
PaymentResponse
paymentResponse
){
binding
.
setPayment
(
paymentResponse
);
binding
.
setPayment
(
paymentResponse
);
binding
.
setLogo
(
paymentResponse
.
getUrl
());
binding
.
setLogo
(
paymentResponse
.
getUrl
());
if
(
nfcAdapter
==
null
){
if
(
paymentResponse
.
getBank
()
==
"nfc"
){
binding
.
cvPayment
.
setVisibility
(
View
.
GONE
);
}
else
{
binding
.
cvPayment
.
setVisibility
(
View
.
VISIBLE
);
}
}
binding
.
cvPayment
.
setOnClickListener
(
view
->{
binding
.
cvPayment
.
setOnClickListener
(
view
->{
getPosition
=
getAdapterPosition
();
getPosition
=
getAdapterPosition
();
...
...
app/src/main/java/com/yono/messeripos/api/service/UsersService.java
View file @
2a3fce92
package
com
.
yono
.
messeripos
.
api
.
service
;
package
com
.
yono
.
messeripos
.
api
.
service
;
import
com.yono.messeripos.api.ApiHelper
;
import
com.yono.messeripos.api.ApiHelper
;
import
com.yono.messeripos.models.ForgotPasswordModels
;
import
com.yono.messeripos.models.UsersModels
;
import
com.yono.messeripos.models.UsersModels
;
import
com.yono.messeripos.response.DataResponse
;
import
com.yono.messeripos.response.DataResponse
;
...
@@ -14,4 +15,7 @@ public interface UsersService {
...
@@ -14,4 +15,7 @@ public interface UsersService {
@POST
(
ApiHelper
.
VERSI_API_1
+
"register"
)
@POST
(
ApiHelper
.
VERSI_API_1
+
"register"
)
Call
<
DataResponse
<
UsersModels
>>
postRegister
(
@Body
UsersModels
usersModels
);
Call
<
DataResponse
<
UsersModels
>>
postRegister
(
@Body
UsersModels
usersModels
);
@POST
(
ApiHelper
.
VERSI_API_1
+
"forgot-password"
)
Call
<
DataResponse
>
postForgotPassword
(
@Body
ForgotPasswordModels
forgotPasswordModels
);
}
}
app/src/main/java/com/yono/messeripos/models/ForgotPasswordModels.java
0 → 100644
View file @
2a3fce92
package
com
.
yono
.
messeripos
.
models
;
import
com.google.gson.annotations.SerializedName
;
public
class
ForgotPasswordModels
{
@SerializedName
(
"email"
)
private
String
email
;
@SerializedName
(
"message"
)
private
String
message
;
public
ForgotPasswordModels
()
{
}
public
ForgotPasswordModels
(
String
email
,
String
message
)
{
this
.
email
=
email
;
this
.
message
=
message
;
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
}
app/src/main/java/com/yono/messeripos/utils/Utils.java
View file @
2a3fce92
...
@@ -35,6 +35,7 @@ import java.time.ZoneId;
...
@@ -35,6 +35,7 @@ import java.time.ZoneId;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.Random
;
import
java.util.TimeZone
;
import
java.util.TimeZone
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
...
@@ -394,4 +395,13 @@ public class Utils {
...
@@ -394,4 +395,13 @@ public class Utils {
public
int
getWindowWidth
()
{
public
int
getWindowWidth
()
{
return
Resources
.
getSystem
().
getDisplayMetrics
().
widthPixels
;
return
Resources
.
getSystem
().
getDisplayMetrics
().
widthPixels
;
}
}
public
String
getRandomNumberString
()
{
// It will generate 6 digit random Number.
// from 0 to 999999
Random
rnd
=
new
Random
();
int
number
=
rnd
.
nextInt
(
999999
);
// this will convert any number sequence into 6 character.
return
String
.
format
(
"%06d"
,
number
);
}
}
}
app/src/main/res/drawable/ic_bank_transfer.xml
0 → 100644
View file @
2a3fce92
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"512dp"
android:height=
"512dp"
android:viewportWidth=
"512"
android:viewportHeight=
"512"
>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M32,454a10,10 0,0 0,0 20L224,474a10,10 0,0 0,0 -20h-6L218,361h6a10,10 0,0 0,10 -10L234,336a10,10 0,0 0,-4.453 -8.32l-96,-64a10,10 0,0 0,-11.094 0l-96,64A10,10 0,0 0,22 336v15a10,10 0,0 0,10 10h6v93ZM90,362h76v92L90,454ZM186,454L186,362h12v92ZM128,284.019 L213.472,341L42.528,341ZM58,362L70,362v92L58,454Z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M240,486H16a10,10 0,0 0,0 20H240a10,10 0,0 0,0 -20Z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M288,200a10,10 0,0 0,0 20L480,220a10,10 0,0 0,0 -20h-6L474,107h6a10,10 0,0 0,10 -10L490,82a10,10 0,0 0,-4.453 -8.32l-96,-64a10,10 0,0 0,-11.094 0l-96,64A10,10 0,0 0,278 82L278,97a10,10 0,0 0,10 10h6v93ZM346,108h76v92L346,200ZM442,200L442,108h12v92ZM384,30.019 L469.473,87L298.527,87ZM314,108h12v92L314,200Z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M496,232H272a10,10 0,0 0,0 20H496a10,10 0,0 0,0 -20Z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M429.129,289.2a10,10 0,0 0,-12.136 7.26A165.381,165.381 0,0 1,298.061 416.607l12.247,-22.894a10,10 0,0 0,-17.635 -9.434L270.031,426.6a10,10 0,0 0,4.285 13.631l42.8,21.76a10,10 0,1 0,9.065 -17.828l-18.6,-9.457A185.863,185.863 0,0 0,436.39 301.339,10 10,0 0,0 429.129,289.2Z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M82.872,222.8a9.984,9.984 0,0 0,12.135 -7.26A165.383,165.383 0,0 1,213.939 95.393l-12.247,22.894a10,10 0,1 0,17.635 9.434L241.969,85.4a10,10 0,0 0,-4.285 -13.631l-42.8,-21.76a10,10 0,1 0,-9.065 17.828l18.6,9.457A185.86,185.86 0,0 0,75.611 210.661,10 10,0 0,0 82.872,222.8Z"
/>
</vector>
app/src/main/res/drawable/ic_baseline_chevron_right_24.xml
0 → 100644
View file @
2a3fce92
<vector
android:height=
"24dp"
android:tint=
"#808AC2"
android:viewportHeight=
"24"
android:viewportWidth=
"24"
android:width=
"24dp"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<path
android:fillColor=
"@android:color/white"
android:pathData=
"M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"
/>
</vector>
app/src/main/res/drawable/ic_money.xml
0 → 100644
View file @
2a3fce92
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"478.856dp"
android:height=
"478.856dp"
android:viewportWidth=
"478.856"
android:viewportHeight=
"478.856"
>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M406.872,160.017c-0.005,0 -0.011,0 -0.016,0h-400c-3.782,-0.004 -6.852,3.058 -6.856,6.84c0,0.005 0,0.011 0,0.016v192c-0.004,3.782 3.058,6.852 6.84,6.856c0.005,0 0.011,0 0.016,0h272c3.786,0 6.856,-3.07 6.856,-6.856c0,-3.786 -3.07,-6.856 -6.856,-6.856H13.712V173.729H400v17.144c-0.004,3.782 3.058,6.852 6.84,6.856c0.005,0 0.011,0 0.016,0c3.782,0.004 6.852,-3.058 6.856,-6.84c0,-0.005 0,-0.011 0,-0.016v-24C413.716,163.091 410.654,160.022 406.872,160.017z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M360.36,128.185l-320,-72c-1.776,-0.397 -3.637,-0.075 -5.176,0.896c-1.537,0.979 -2.624,2.526 -3.024,4.304l-16,72c-0.822,3.698 1.51,7.362 5.208,8.184c3.698,0.822 7.362,-1.51 8.184,-5.208l14.504,-65.288l313.296,70.488c0.496,0.115 1.003,0.172 1.512,0.168c3.786,-0.007 6.85,-3.082 6.844,-6.868C365.702,131.66 363.482,128.89 360.36,128.185z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M321.504,88.513l-192,-80c-3.337,-1.391 -7.182,0.038 -8.8,3.272l-16,32c-1.807,3.342 -0.563,7.517 2.78,9.324c3.342,1.807 7.517,0.563 9.324,-2.78c0.071,-0.131 0.138,-0.265 0.2,-0.401v0.016l13.128,-26.272l186.072,77.528c3.504,1.462 7.53,-0.192 8.992,-3.696C326.662,94.002 325.008,89.976 321.504,88.513z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M326.352,192.017h-63.496c-3.786,0 -6.856,3.07 -6.856,6.856c0,3.786 3.07,6.856 6.856,6.856h63.496c3.786,0 6.856,-3.07 6.856,-6.856S330.138,192.017 326.352,192.017z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M198.856,192.473c-38.881,0 -70.4,31.519 -70.4,70.4c0.04,38.864 31.536,70.36 70.4,70.4c38.881,0 70.4,-31.519 70.4,-70.4S237.737,192.473 198.856,192.473zM198.856,320.473c-31.812,0 -57.6,-25.788 -57.6,-57.6c0.035,-31.797 25.803,-57.565 57.6,-57.6c31.812,0 57.6,25.788 57.6,57.6C256.456,294.685 230.668,320.473 198.856,320.473z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M390.856,214.873c-42.4,0 -88,10.016 -88,32v192c0,21.984 45.6,32 88,32c42.4,0 88,-10.016 88,-32v-192C478.856,224.889 433.256,214.873 390.856,214.873zM462.856,438.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.576 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V438.753zM462.856,406.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.576 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V406.753zM462.856,374.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.576 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V374.753zM462.856,342.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.576 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V342.753zM462.856,310.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.536 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V310.753zM462.856,278.753c-1.208,4.44 -25.2,16.12 -72,16.12s-70.792,-11.68 -72,-16v-12.576c17.024,8.536 45.144,12.576 72,12.576c26.856,0 54.984,-4.04 72,-12.584V278.753zM390.856,262.873c-46.728,0 -70.712,-11.648 -72,-15.856v-0.048c1.288,-4.456 25.272,-16.096 72,-16.096c46.4,0 70.4,11.472 72,16C461.256,251.401 437.256,262.873 390.856,262.873z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M134.856,320.009H74.384l-28.672,-31.36v-52l31.664,-30.92h57.48c3.786,0 6.856,-3.07 6.856,-6.856c0,-3.786 -3.07,-6.856 -6.856,-6.856H74.592c-1.792,-0.004 -3.515,0.694 -4.8,1.944l-35.736,34.856c-1.335,1.56 -2.067,3.547 -2.064,5.6v56.896c0,1.711 0.639,3.36 1.792,4.624l32.504,35.552c1.299,1.422 3.137,2.233 5.064,2.232h63.504c3.786,0 6.856,-3.07 6.856,-6.856C141.712,323.079 138.643,320.009 134.856,320.009z"
/>
<path
android:fillColor=
"#FF000000"
android:pathData=
"M202.856,254.873h-8c-2.488,0 -4,-1.392 -4,-2c0,-0.608 1.512,-2 4,-2h20c4.418,0 8,-3.582 8,-8s-3.582,-8 -8,-8h-8c0,-4.418 -3.582,-8 -8,-8s-8,3.582 -8,8v0.36c-8.873,1.253 -15.595,8.648 -16,17.6c0.573,10.489 9.507,18.548 20,18.04h8c2.488,0 4,1.392 4,2c0,0.608 -1.512,2 -4,2h-20c-4.418,0 -8,3.582 -8,8s3.582,8 8,8h8c0,4.418 3.582,8 8,8s8,-3.582 8,-8v-0.36c8.873,-1.253 15.595,-8.648 16,-17.6C222.283,262.424 213.349,254.365 202.856,254.873z"
/>
</vector>
app/src/main/res/drawable/ic_nfc.xml
0 → 100644
View file @
2a3fce92
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"511dp"
android:height=
"511dp"
android:viewportWidth=
"511"
android:viewportHeight=
"511.99945"
>
<path
android:fillColor=
"#FF000000"
android:pathData=
"m485.988,347.5c-1.133,0 -2.285,-0.094 -3.438,-0.297 -10.887,-1.887 -18.176,-12.238 -16.289,-23.121 3.883,-22.406 5.973,-45.313 6.211,-68.082 -0.832,-80.363 -24.266,-158.191 -67.766,-225.098 -6.023,-9.258 -3.395,-21.648 5.863,-27.668 9.262,-6.02 21.648,-3.395 27.672,5.867 47.688,73.344 73.355,158.652 74.23,246.699v0.398c-0.25,24.988 -2.535,50.125 -6.801,74.719 -1.688,9.727 -10.137,16.582 -19.684,16.582zM438.242,502.898c15.469,-23.789 28.785,-49.168 39.586,-75.43 4.203,-10.215 -0.676,-21.902 -10.891,-26.102 -10.215,-4.203 -21.902,0.672 -26.102,10.887 -9.855,23.969 -22.012,47.129 -36.129,68.84 -6.023,9.262 -3.395,21.648 5.863,27.672 3.367,2.188 7.145,3.234 10.883,3.234 6.543,0 12.957,-3.207 16.789,-9.102zM341.07,450.773c38.602,-57.613 59.492,-124.875 60.41,-194.512 0.004,-0.176 0.004,-0.352 0,-0.527 -0.918,-69.637 -21.809,-136.898 -60.41,-194.508 -6.148,-9.176 -18.574,-11.633 -27.746,-5.484 -9.18,6.148 -11.633,18.57 -5.484,27.746 34.23,51.09 52.777,110.734 53.641,172.512 -0.863,61.773 -19.41,121.418 -53.641,172.508 -6.148,9.176 -3.691,21.598 5.484,27.746 3.418,2.293 7.285,3.387 11.113,3.387 6.445,0 12.773,-3.109 16.633,-8.867zM252.996,367.305c10.465,-3 18.984,-10.895 22.789,-21.109 11.02,-29.59 16.305,-60.066 15.707,-90.59 -0.957,-48.707 -16.504,-96.012 -44.957,-136.797 -6.32,-9.055 -18.789,-11.277 -27.848,-4.957 -9.059,6.32 -11.277,18.789 -4.957,27.848 23.91,34.27 36.969,73.93 37.77,114.691 0.453,23.035 -3.137,46.105 -10.672,68.691l-183.457,-141.055c-7.988,-6.145 -18.48,-7.941 -28.066,-4.816 -9.566,3.125 -16.961,10.75 -19.781,20.406 -4.117,14.082 -9.023,36.512 -9.023,63.379 0,47.34 27.066,89.641 28.215,91.418 6,9.254 18.344,11.883 27.609,5.91 9.27,-5.977 11.938,-18.348 5.98,-27.629 -0.215,-0.34 -21.805,-34.398 -21.805,-69.699 0,-14.758 1.793,-27.879 3.988,-38.418l178.109,136.941c6.117,4.699 13.379,7.145 20.82,7.145 3.188,0 6.406,-0.445 9.578,-1.359zM252.996,367.305"
/>
</vector>
app/src/main/res/drawable/nfcgif.gif
0 → 100644
View file @
2a3fce92
528 KB
app/src/main/res/layout/activity_detail_transaction.xml
View file @
2a3fce92
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
layout=
"@layout/app_bar"
/>
layout=
"@layout/app_bar"
/>
<com.google.android.material.card.MaterialCardView
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/methodePayment"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/appbarDetail"
app:layout_constraintTop_toBottomOf=
"@id/appbarDetail"
...
@@ -49,4 +50,84 @@
...
@@ -49,4 +50,84 @@
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/detailTransaksi"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/methodePayment"
app:cardElevation=
"2dp"
android:layout_marginTop=
"5dp"
android:layout_marginBottom=
"5dp"
android:padding=
"10dp"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_margin=
"10dp"
>
<TextView
android:id=
"@+id/titleDetail"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:text=
"Transaction Detail"
android:textColor=
"@android:color/black"
android:textSize=
"18sp"
/>
<ListView
android:id=
"@+id/lvDetail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/titleDetail"
android:layout_marginTop=
"10dp"
/>
<TextView
android:id=
"@+id/txtAdminFee"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/lvDetail"
app:layout_constraintStart_toStartOf=
"parent"
android:text=
"Admin Fee"
android:textSize=
"12sp"
android:layout_marginTop=
"10dp"
/>
<TextView
android:id=
"@+id/adminFee"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/lvDetail"
app:layout_constraintEnd_toEndOf=
"parent"
android:text=
"Admin Fee"
android:textSize=
"12sp"
android:layout_marginTop=
"10dp"
tools:ignore=
"DuplicateIds"
/>
<TextView
android:id=
"@+id/txtgrandTotal"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/txtAdminFee"
app:layout_constraintStart_toStartOf=
"parent"
android:text=
"Gross Amount"
android:textSize=
"18sp"
android:layout_marginTop=
"10dp"
/>
<TextView
android:id=
"@+id/txtgrandTotal"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@id/adminFee"
app:layout_constraintEnd_toEndOf=
"parent"
android:text=
"Admin Fee"
android:textSize=
"18sp"
android:layout_marginTop=
"10dp"
tools:ignore=
"DuplicateIds"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_forgot_password.xml
View file @
2a3fce92
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
android:layout_width=
"@dimen/logo_w_h"
android:layout_width=
"@dimen/logo_w_h"
android:layout_height=
"@dimen/logo_w_h"
android:layout_height=
"@dimen/logo_w_h"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:src=
"@
mipmap/ic_launcher
"
/>
android:src=
"@
drawable/ic_messer_primary
"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
...
app/src/main/res/layout/activity_payment.xml
View file @
2a3fce92
...
@@ -14,17 +14,10 @@
...
@@ -14,17 +14,10 @@
android:id=
"@+id/appbar"
android:id=
"@+id/appbar"
layout=
"@layout/app_bar"
/>
layout=
"@layout/app_bar"
/>
<include
android:layout_below=
"@id/appbar"
layout=
"@layout/activity_invoice"
android:id=
"@+id/cvInvoice"
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
/>
<ScrollView
<ScrollView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/
cvInvoice
"
android:layout_below=
"@id/
appbar
"
android:layout_above=
"@id/btnPay"
android:layout_above=
"@id/btnPay"
android:overScrollMode=
"never"
android:overScrollMode=
"never"
android:scrollingCache=
"false"
android:scrollingCache=
"false"
...
@@ -38,32 +31,6 @@
...
@@ -38,32 +31,6 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
android:layout_height=
"wrap_content"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvItem"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"0dp"
android:nestedScrollingEnabled=
"false"
android:layout_marginTop=
"20dp"
tools:layout_editor_absoluteX=
"10dp"
/>
<com.google.android.material.textview.MaterialTextView
android:id=
"@+id/tvLabel"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"Payment"
android:textSize=
"24sp"
android:textFontWeight=
"600"
android:textStyle=
"bold"
android:textColor=
"#202020"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"0dp"
android:layout_marginStart=
"10dp"
android:layout_below=
"@id/rvItem"
/>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvPayment"
android:id=
"@+id/rvPayment"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -71,7 +38,6 @@
...
@@ -71,7 +38,6 @@
android:layout_margin=
"10dp"
android:layout_margin=
"10dp"
android:nestedScrollingEnabled=
"false"
android:nestedScrollingEnabled=
"false"
tools:layout_editor_absoluteX=
"10dp"
tools:layout_editor_absoluteX=
"10dp"
android:layout_below=
"@id/tvLabel"
tools:listitem=
"@layout/payment_list"
/>
tools:listitem=
"@layout/payment_list"
/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
</ScrollView>
...
...
app/src/main/res/layout/methode_payment.xml
View file @
2a3fce92
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
android:id=
"@+id/appBarPaymentMethode"
/>
android:id=
"@+id/appBarPaymentMethode"
/>
<com.google.android.material.card.MaterialCardView
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cv
Payment
"
android:id=
"@+id/cv
Cash
"
android:clickable=
"true"
android:clickable=
"true"
android:focusable=
"true"
android:focusable=
"true"
android:checkable=
"true"
android:checkable=
"true"
...
@@ -27,19 +27,117 @@
...
@@ -27,19 +27,117 @@
<ImageView
<ImageView
android:id=
"@+id/ivLogo"
android:id=
"@+id/ivLogo"
android:layout_width=
"
12
0dp"
android:layout_width=
"
8
0dp"
android:layout_height=
"0dp"
android:layout_height=
"
2
0dp"
android:src=
"@drawable/ic_
bni_logo
"
android:src=
"@drawable/ic_
money
"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
app:layout_constraintBottom_toBottomOf=
"parent"
/>
<RadioButton
<TextView
android:id=
"@+id/rbPayment"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:buttonTint=
"@color/colorPrimary"
app:layout_constraintStart_toEndOf=
"@id/ivLogo"
android:enabled=
"false"
android:text=
"Cash"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/ivRight"
android:layout_width=
"10dp"
android:layout_height=
"20dp"
android:src=
"@drawable/ic_baseline_chevron_right_24"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvBankTransfer"
android:clickable=
"true"
android:focusable=
"true"
android:checkable=
"true"
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@id/cvCash"
app:strokeWidth=
"1dp"
app:strokeColor=
"@color/color_stroke"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"15dp"
>
<ImageView
android:id=
"@+id/ivLogoBankTransfer"
android:layout_width=
"80dp"
android:layout_height=
"20dp"
android:src=
"@drawable/ic_bank_transfer"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintStart_toEndOf=
"@id/ivLogoBankTransfer"
android:text=
"Bank Transfer"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/ivRightBankTransfer"
android:layout_width=
"10dp"
android:layout_height=
"20dp"
android:src=
"@drawable/ic_baseline_chevron_right_24"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/cvNFC"
android:clickable=
"true"
android:focusable=
"true"
android:checkable=
"true"
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@id/cvBankTransfer"
app:strokeWidth=
"1dp"
app:strokeColor=
"@color/color_stroke"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"15dp"
>
<ImageView
android:id=
"@+id/ivLogoNFC"
android:layout_width=
"80dp"
android:layout_height=
"20dp"
android:src=
"@drawable/ic_nfc"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintStart_toEndOf=
"@id/ivLogoNFC"
android:text=
"Via NFC"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/ivRightNFC"
android:layout_width=
"10dp"
android:layout_height=
"20dp"
android:src=
"@drawable/ic_baseline_chevron_right_24"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
app:layout_constraintBottom_toBottomOf=
"parent"
/>
...
...
app/src/main/res/layout/nfc_scanner.xml
0 → 100644
View file @
2a3fce92
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:src=
"@drawable/nfcgif"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/register_form.xml
View file @
2a3fce92
This diff is collapsed.
Click to expand it.
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