Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
I
Implementation Partner Connect
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
Gandha Ryanto
Implementation Partner Connect
Commits
ff37e1b7
Commit
ff37e1b7
authored
Sep 25, 2020
by
gandharyanto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PROGRESS] Implementation
parent
9f0e02d7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
183 additions
and
33 deletions
+183
-33
build.gradle
app/build.gradle
+4
-4
MainActivity.java
...ava/id/mdd/implementationpartnerconnect/MainActivity.java
+173
-26
MyApp.java
.../main/java/id/mdd/implementationpartnerconnect/MyApp.java
+6
-3
No files found.
app/build.gradle
View file @
ff37e1b7
...
@@ -51,13 +51,13 @@ dependencies {
...
@@ -51,13 +51,13 @@ dependencies {
implementation
'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation
'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation
'io.reactivex.rxjava2:rxjava:2.2.10'
implementation
'io.reactivex.rxjava2:rxjava:2.2.10'
implementation
'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation
'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation
(
group:
'com.mdd.payment'
,
name:
'mybanklibrary-release'
,
version:
'3.
3.4
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'mybanklibrary-release'
,
version:
'3.
5.8
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'nativecripto-release'
,
version:
'2.0.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'nativecripto-release'
,
version:
'2.0.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'organicdrv-release'
,
version:
'2.1.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'organicdrv-release'
,
version:
'2.1.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'isodeplibrary-release'
,
version:
'2.1.1'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'isodeplibrary-release'
,
version:
'2.1.1'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'z91library-release'
,
version:
'2.1.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'z91library-release'
,
version:
'2.1.0'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'aar-deviceid-release'
,
version:
'2.0.
2
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.payment'
,
name:
'aar-deviceid-release'
,
version:
'2.0.
4
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.service'
,
name:
'partner-connect'
,
version:
'2.2.
2
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.service'
,
name:
'partner-connect'
,
version:
'2.2.
5
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.topup
.unik'
,
name:
'update-balance'
,
version:
'2.2.6
'
,
ext:
'aar'
)
implementation
(
group:
'com.mdd.topup
'
,
name:
'update-balance'
,
version:
'2.3.5
'
,
ext:
'aar'
)
}
}
\ No newline at end of file
app/src/main/java/id/mdd/implementationpartnerconnect/MainActivity.java
View file @
ff37e1b7
package
id
.
mdd
.
implementationpartnerconnect
;
package
id
.
mdd
.
implementationpartnerconnect
;
import
android.Manifest
;
import
android.Manifest
;
import
android.content.AsyncQueryHandler
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.pm.PackageManager
;
import
android.content.pm.PackageManager
;
import
android.nfc.NfcAdapter
;
import
android.nfc.NfcAdapter
;
import
android.nfc.NfcManager
;
import
android.nfc.NfcManager
;
import
android.nfc.Tag
;
import
android.os.Build
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.CountDownTimer
;
import
android.os.Message
;
import
android.util.Log
;
import
android.util.Log
;
import
android.widget.Toast
;
import
android.widget.Toast
;
...
@@ -19,20 +23,53 @@ import com.mdd.topupUnik.ubal.MainCardProcessor;
...
@@ -19,20 +23,53 @@ import com.mdd.topupUnik.ubal.MainCardProcessor;
import
com.mdd.topupUnik.ubal.SuccessUpdateBalance
;
import
com.mdd.topupUnik.ubal.SuccessUpdateBalance
;
import
com.mdd.topupUnik.ubal.UpdateBalanceView
;
import
com.mdd.topupUnik.ubal.UpdateBalanceView
;
import
com.mdd.topupUnik.ubal.lib.CardInfo
;
import
com.mdd.topupUnik.ubal.lib.CardInfo
;
import
com.mdd.topupUnik.ubal.lib.CardInfoCommand
;
import
com.mdd.topupUnik.ubal.lib.CommandResult
;
import
com.mdd.topupUnik.ubal.lib.FindCardResponse
;
import
com.medicom.organicdrv.OrganicDriver
;
import
id.emhusnan.mdd.service.MDDCommand
;
import
id.emhusnan.mdd.service.MDDCommand
;
import
id.emhusnan.mdd.service.MDDService
;
import
id.emhusnan.mdd.service.MDDUpdateBalanceView
;
import
id.emhusnan.mdd.service.MDDUpdateBalanceView
;
import
id.emhusnan.mdd.service.UpdateBalanceUiMessageFactory
;
import
id.emhusnan.mdd.service.UpdateBalanceUiThreadHandler
;
public
class
MainActivity
extends
AppCompatActivity
implements
MDDUpdateBalanceView
{
import
static
com
.
mdd
.
topupUnik
.
ubal
.
CardValidationError
.
ERROR_CARD_NOT_SUPPORTED
;
import
static
com
.
mdd
.
topupUnik
.
ubal
.
CardValidationError
.
ERROR_DIFFERENT_ISSUER_CARD
;
import
static
com
.
medicom
.
organicdrv
.
utilsLib
.
ByteArrayToHexString
;
import
static
id
.
emhusnan
.
mdd
.
service
.
MDDCommand
.
COMMAND_GET_BALANCE
;
import
static
id
.
emhusnan
.
mdd
.
service
.
MDDCommand
.
COMMAND_UPDATE_BALANCE
;
public
class
MainActivity
extends
AppCompatActivity
implements
MDDUpdateBalanceView
,
NfcAdapter
.
ReaderCallback
{
private
String
TAG
=
"MDDService"
;
private
String
TAG
=
"MDDService"
;
private
int
COMMAND
=
MDDCommand
.
COMMAND_GET_BALANCE
;
private
int
COMMAND
=
COMMAND_GET_BALANCE
;
private
InitReader
reader
;
private
InitReader
reader
;
private
MainCardProcessor
cardProcessor
;
private
MainCardProcessor
cardProcessor
;
private
boolean
isProcessingTag
;
private
UpdateBalanceUiThreadHandler
updateBalanceUiThreadHandler
;
protected
int
getCommand
()
{
protected
int
getCommand
()
{
return
COMMAND
;
return
COMMAND
;
}
}
CountDownTimer
timer
=
new
CountDownTimer
(
7000
,
1000
)
{
@Override
public
void
onTick
(
long
millisUntilFinished
)
{
Log
.
d
(
TAG
,
"## ticker timed out remaining: "
+
millisUntilFinished
/
1000
+
"s"
);
}
@Override
public
void
onFinish
()
{
if
(
isProcessingTag
)
{
Message
msg
=
UpdateBalanceUiMessageFactory
.
updateBalanceErrorMsg
(
"Timed out"
);
sendToUI
(
msg
);
}
}
};
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
// Here, thisActivity is the current activity
// Here, thisActivity is the current activity
...
@@ -61,36 +98,18 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
...
@@ -61,36 +98,18 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
}
}
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
setContentView
(
R
.
layout
.
activity_main
);
updateBalanceUiThreadHandler
=
new
UpdateBalanceUiThreadHandler
(
getMDDView
());
reader
=
((
MyApp
)
getApplication
()).
getReader
();
setCommand
(
COMMAND_GET_BALANCE
);
cardProcessor
=
new
MainCardProcessor
(
this
,
reader
,
new
UpdateBalanceView
()
{
enableReaderMode
();
@Override
public
void
onUpdateBalanceSuccess
(
SuccessUpdateBalance
successUpdateBalance
)
{
runOnUiThread
(()
->
onUpdateBalaceSuccess
(
successUpdateBalance
));
}
@Override
public
void
onUpdateBalanceError
(
String
reason
)
{
runOnUiThread
(()
->
onUpdateBalanceError
(
reason
));
}
@Override
public
void
onCardDetected
(
CardInfo
cardInfo
)
{
runOnUiThread
(()
->
onBalanceInfoAvailable
(
cardInfo
));
}
@Override
public
void
onErrorNfcCardMsg
(
int
errorCode
)
{
runOnUiThread
(()
->
onUpdateBalanceError
(
""
));
}
});
}
}
@Override
@Override
protected
void
onResume
()
{
protected
void
onResume
()
{
super
.
onResume
();
super
.
onResume
();
setCommand
(
MDDCommand
.
COMMAND_GET_BALANCE
);
// FindCardResponse findCardResponse = cardProcessor.findCardUid();
// Log.e("findCardResponse", findCardResponse.getUid() + " " + findCardResponse.getCardType());
NfcManager
manager
=
(
NfcManager
)
getSystemService
(
Context
.
NFC_SERVICE
);
NfcManager
manager
=
(
NfcManager
)
getSystemService
(
Context
.
NFC_SERVICE
);
NfcAdapter
adapter
=
manager
.
getDefaultAdapter
();
NfcAdapter
adapter
=
manager
.
getDefaultAdapter
();
...
@@ -125,7 +144,7 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
...
@@ -125,7 +144,7 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
public
void
onBalanceInfoAvailable
(
CardInfo
cardInfo
)
{
public
void
onBalanceInfoAvailable
(
CardInfo
cardInfo
)
{
Log
.
d
(
TAG
,
"onBalanceInfoAvailable: "
+
cardInfo
.
getBalance
());
Log
.
d
(
TAG
,
"onBalanceInfoAvailable: "
+
cardInfo
.
getBalance
());
Toast
.
makeText
(
this
,
"Balance "
+
cardInfo
.
getBalance
(),
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"Balance "
+
cardInfo
.
getBalance
(),
Toast
.
LENGTH_SHORT
).
show
();
COMMAND
=
MDDCommand
.
COMMAND_UPDATE_BALANCE
;
COMMAND
=
COMMAND_UPDATE_BALANCE
;
}
}
@Override
@Override
...
@@ -142,6 +161,134 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
...
@@ -142,6 +161,134 @@ public class MainActivity extends AppCompatActivity implements MDDUpdateBalanceV
@Override
@Override
public
void
onBeginOperation
()
{
public
void
onBeginOperation
()
{
Log
.
d
(
TAG
,
"onBeginOperation: "
);
Log
.
d
(
TAG
,
"onBeginOperation: "
);
}
@Override
public
void
onTagDiscovered
(
Tag
tag
)
{
reader
=
MDDService
.
getInstance
().
getInitReader
();
cardProcessor
=
new
MainCardProcessor
(
this
,
reader
,
new
UpdateBalanceView
()
{
@Override
public
void
onUpdateBalanceSuccess
(
SuccessUpdateBalance
successUpdateBalance
)
{
runOnUiThread
(()
->
onUpdateBalaceSuccess
(
successUpdateBalance
));
}
@Override
public
void
onUpdateBalanceError
(
String
reason
)
{
runOnUiThread
(()
->
onUpdateBalanceError
(
reason
));
}
@Override
public
void
onCardDetected
(
CardInfo
cardInfo
)
{
runOnUiThread
(()
->
onBalanceInfoAvailable
(
cardInfo
));
}
@Override
public
void
onErrorNfcCardMsg
(
int
errorCode
)
{
runOnUiThread
(()
->
onUpdateBalanceError
(
""
));
}
});
if
(
reader
==
null
){
Toast
.
makeText
(
this
,
"please activate library"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
{
String
cardUid
=
ByteArrayToHexString
(
tag
.
getId
());
cardProcessor
.
lockIsoDepCard
(
tag
);
boolean
hasCardUid
=
!
cardUid
.
isEmpty
();
if
(
hasCardUid
)
{
Log
.
d
(
TAG
,
"---> UID : "
+
cardUid
);
setProcessingTag
();
// IsoDep iso = IsoDep.get(tag);
// try {
// iso.connect();
// } catch (IOException e) {
// e.printStackTrace();
// }
// iso.setTimeout(10000);
Log
.
d
(
TAG
,
"---> Send to UI Card Found"
);
// final Message msg = UpdateBalanceUiMessageFactory.nfcCardFoundMsg();
// sendToUI(msg);
CardInfoCommand
command
=
new
CardInfoCommand
(
reader
.
myReader
);
FindCardResponse
findCardResponse
=
new
FindCardResponse
();
findCardResponse
.
setUid
(
cardUid
);
findCardResponse
.
setCardType
(
OrganicDriver
.
CARDTYPE_JAVA
);
final
CommandResult
<
CardInfo
>
execute
=
command
.
execute
(
findCardResponse
);
CardInfo
detectedCardInfo
=
execute
.
getResult
();
if
(
execute
.
isSuccess
())
{
switch
(
getCommand
())
{
case
COMMAND_GET_BALANCE:
Log
.
d
(
TAG
,
"getBalance"
);
cardProcessor
.
getBalance
(
detectedCardInfo
);
break
;
case
COMMAND_UPDATE_BALANCE:
Log
.
d
(
TAG
,
"updateBalance"
);
cardProcessor
.
updateBalance
(
detectedCardInfo
,
1
);
break
;
}
}
else
{
if
(
execute
.
getMessage
().
equals
(
"27266"
))
{
//27266 int of 6A82: Bank not activatated
sendToUI
(
UpdateBalanceUiMessageFactory
.
errorNfcCardMsg
(
ERROR_DIFFERENT_ISSUER_CARD
));
}
else
{
sendToUI
(
UpdateBalanceUiMessageFactory
.
errorNfcCardMsg
(
ERROR_CARD_NOT_SUPPORTED
));
}
setNotProcessingTag
();
cardProcessor
.
unlockIsoDepCard
();
}
}
else
{
sendToUI
(
UpdateBalanceUiMessageFactory
.
errorNfcCardMsg
(
ERROR_CARD_NOT_SUPPORTED
));
setNotProcessingTag
();
cardProcessor
.
unlockIsoDepCard
();
}
}
}
protected
void
setNotProcessingTag
()
{
isProcessingTag
=
false
;
Log
.
d
(
TAG
,
"--> Mark tag processing finish"
);
timer
.
cancel
();
Log
.
d
(
TAG
,
"--> Cancel time out timer"
);
}
protected
void
setProcessingTag
()
{
isProcessingTag
=
true
;
Log
.
d
(
TAG
,
"--> Mark tag on process"
);
timer
.
start
();
Log
.
d
(
TAG
,
"--> Start countdown timer for timed out"
);
}
private
void
sendToUI
(
Message
msg
)
{
updateBalanceUiThreadHandler
.
handleMessage
(
msg
);
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
disableReaderMode
();
}
private
void
enableReaderMode
()
{
int
READER_FLAGS
=
NfcAdapter
.
FLAG_READER_NFC_A
|
NfcAdapter
.
FLAG_READER_SKIP_NDEF_CHECK
;
NfcAdapter
nfc
=
NfcAdapter
.
getDefaultAdapter
(
this
);
if
(
nfc
!=
null
&&
nfc
.
isEnabled
())
nfc
.
enableReaderMode
(
this
,
this
,
READER_FLAGS
,
null
);
}
private
void
disableReaderMode
()
{
if
(!
isDestroyed
())
{
NfcAdapter
nfc
=
NfcAdapter
.
getDefaultAdapter
(
this
);
if
(
nfc
!=
null
&&
nfc
.
isEnabled
())
nfc
.
disableReaderMode
(
this
);
}
}
}
}
}
\ No newline at end of file
app/src/main/java/id/mdd/implementationpartnerconnect/MyApp.java
View file @
ff37e1b7
...
@@ -18,9 +18,9 @@ import id.emhusnan.mdd.service.ConfigService;
...
@@ -18,9 +18,9 @@ import id.emhusnan.mdd.service.ConfigService;
import
id.emhusnan.mdd.service.MDDService
;
import
id.emhusnan.mdd.service.MDDService
;
public
class
MyApp
extends
Application
{
public
class
MyApp
extends
Application
{
String
GIVE_MID
=
"
1bdaf34aef1656dcb2abe461255d8f57
"
;
// please ask us for credential
String
GIVE_MID
=
"
ba7db816e59612f8ce1630a095ef01c5
"
;
// please ask us for credential
String
GIVE_TID
=
"0820517774"
;
// please ask us for credential
String
GIVE_TID
=
"0820517774"
;
// please ask us for credential
String
GIVEN_TOKEN
=
"5
f20a841498c683632da73317362e3cb
"
;
// please ask us for credential
String
GIVEN_TOKEN
=
"5
b423ef49cb029340d7231cace0de201
"
;
// please ask us for credential
private
final
String
accessToken
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJhdXRoLXNlcnZpY2U6MS4wLjAiLCJzdWIiOnsibmFtZSI6IlRlc3RQcm9kMyIsInVzZXJuYW1lIjoiVGVzdFByb2QzIiwiYXV0aF9sZXZlbCI6Ik1FUkNIQU5UIiwibWlkIjoiMWZiNTdmMTY2YTQ4MGU5N2JmN2EzZGNiZjkzMTkyOTMifSwiaWF0IjoxNTk3NzM3NzIxLCJleHAiOjE1OTc4MjQxMjEsIm5iZiI6MTU5NzczNzcyM30.CXM-5mCv91Yo17c9zHXQKPGR5gqAeu-LADta-_qnABYxzmnE4Dx0q7NQ9IYr6cYO6cXp40UW4s632fzVYmPCXH8f0RtSwLPqTT7_lWHK--fHCP-LZOmfgwUBxdNocYY9xAi-NyWqCmTnkjWx91lqh9S9Fcue6nO_KrBqngUpBPhpS0hPwgmkqHXX6yAdVs931NbfNM3cYW9PpGIw8K-OxoPDHByD61uAFxT9FCrTbca7vV3HFQnZEKpwxxdECu7DCQAsGTl7JqfbH2j5swe_t97rSDAGyE1HRzGX-SMqPULkC-XravF2m_HucosacYQuSdRaxAWfEIQvtQhAcRXwTA"
;
private
final
String
accessToken
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJhdXRoLXNlcnZpY2U6MS4wLjAiLCJzdWIiOnsibmFtZSI6IlRlc3RQcm9kMyIsInVzZXJuYW1lIjoiVGVzdFByb2QzIiwiYXV0aF9sZXZlbCI6Ik1FUkNIQU5UIiwibWlkIjoiMWZiNTdmMTY2YTQ4MGU5N2JmN2EzZGNiZjkzMTkyOTMifSwiaWF0IjoxNTk3NzM3NzIxLCJleHAiOjE1OTc4MjQxMjEsIm5iZiI6MTU5NzczNzcyM30.CXM-5mCv91Yo17c9zHXQKPGR5gqAeu-LADta-_qnABYxzmnE4Dx0q7NQ9IYr6cYO6cXp40UW4s632fzVYmPCXH8f0RtSwLPqTT7_lWHK--fHCP-LZOmfgwUBxdNocYY9xAi-NyWqCmTnkjWx91lqh9S9Fcue6nO_KrBqngUpBPhpS0hPwgmkqHXX6yAdVs931NbfNM3cYW9PpGIw8K-OxoPDHByD61uAFxT9FCrTbca7vV3HFQnZEKpwxxdECu7DCQAsGTl7JqfbH2j5swe_t97rSDAGyE1HRzGX-SMqPULkC-XravF2m_HucosacYQuSdRaxAWfEIQvtQhAcRXwTA"
;
private
InitReader
reader
;
private
InitReader
reader
;
...
@@ -58,7 +58,10 @@ public class MyApp extends Application {
...
@@ -58,7 +58,10 @@ public class MyApp extends Application {
MDDService
initialize
=
MDDService
.
with
(
this
,
configService
);
MDDService
initialize
=
MDDService
.
with
(
this
,
configService
);
if
(
initialize
.
isValid
())
{
if
(
initialize
.
isValid
())
{
reader
=
initialize
.
getInitReader
();
reader
=
initialize
.
getInitReader
();
Log
.
e
(
"MyApp"
,
"Aktivasi library sukses"
);
if
(
reader
!=
null
)
Log
.
e
(
"MyApp"
,
"Aktivasi library sukses"
);
else
Log
.
e
(
"MyApp"
,
"Library belum aktif reader null"
);
// Toast.makeText(this, "Aktivasi library sukses", Toast.LENGTH_SHORT).show();
// Toast.makeText(this, "Aktivasi library sukses", Toast.LENGTH_SHORT).show();
}
else
{
}
else
{
Log
.
e
(
"MyApp"
,
"Library belum aktif"
);
Log
.
e
(
"MyApp"
,
"Library belum aktif"
);
...
...
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