Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
flutter_mdd_simulator
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
open_share
flutter_mdd_simulator
Commits
5867701e
Commit
5867701e
authored
Oct 09, 2023
by
Gandha Ryanto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update to lib null safety
parent
58351685
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
180 additions
and
100 deletions
+180
-100
build.gradle
android/app/build.gradle
+5
-2
AndroidManifest.xml
android/app/src/debug/AndroidManifest.xml
+1
-2
AndroidManifest.xml
android/app/src/main/AndroidManifest.xml
+3
-2
network_security_config.xml
android/app/src/main/res/xml/network_security_config.xml
+6
-0
AndroidManifest.xml
android/app/src/profile/AndroidManifest.xml
+1
-2
build.gradle
android/build.gradle
+21
-3
gradle-wrapper.properties
android/gradle/wrapper/gradle-wrapper.properties
+1
-1
main.dart
lib/main.dart
+121
-68
TapCard.dart
lib/screen/TapCard.dart
+3
-11
pubspec.yaml
pubspec.yaml
+18
-9
No files found.
android/app/build.gradle
View file @
5867701e
...
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
...
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply
from:
"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply
from:
"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android
{
android
{
compileSdkVersion
3
0
compileSdkVersion
3
3
sourceSets
{
sourceSets
{
main
.
java
.
srcDirs
+=
'src/main/kotlin'
main
.
java
.
srcDirs
+=
'src/main/kotlin'
...
@@ -36,7 +36,7 @@ android {
...
@@ -36,7 +36,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId
"com.mdd.flutter_mdd_simulator"
applicationId
"com.mdd.flutter_mdd_simulator"
minSdkVersion
22
minSdkVersion
22
targetSdkVersion
3
0
targetSdkVersion
3
3
versionCode
flutterVersionCode
.
toInteger
()
versionCode
flutterVersionCode
.
toInteger
()
versionName
flutterVersionName
versionName
flutterVersionName
}
}
...
@@ -48,6 +48,8 @@ android {
...
@@ -48,6 +48,8 @@ android {
signingConfig
signingConfigs
.
debug
signingConfig
signingConfigs
.
debug
}
}
}
}
namespace
'com.mdd.flutter_mdd_simulator'
}
}
flutter
{
flutter
{
...
@@ -56,4 +58,5 @@ flutter {
...
@@ -56,4 +58,5 @@ flutter {
dependencies
{
dependencies
{
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation
"androidx.core:core-ktx:1.6.10"
}
}
android/app/src/debug/AndroidManifest.xml
View file @
5867701e
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
package=
"com.mdd.flutter_mdd_simulator"
>
<!-- Flutter needs it to communicate with the running application
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
to allow setting breakpoints, to provide hot reload, etc.
-->
-->
...
...
android/app/src/main/AndroidManifest.xml
View file @
5867701e
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
package=
"com.mdd.flutter_mdd_simulator"
>
<application
<application
android:icon=
"@mipmap/ic_launcher"
android:icon=
"@mipmap/ic_launcher"
android:label=
"flutter_mdd_simulator"
android:label=
"flutter_mdd_simulator"
android:networkSecurityConfig=
"@xml/network_security_config"
android:preserveLegacyExternalStorage=
"true"
android:preserveLegacyExternalStorage=
"true"
android:requestLegacyExternalStorage=
"true"
>
android:requestLegacyExternalStorage=
"true"
>
<activity
<activity
android:name=
".MainActivity"
android:name=
".MainActivity"
android:configChanges=
"orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:configChanges=
"orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:exported=
"true"
android:hardwareAccelerated=
"true"
android:hardwareAccelerated=
"true"
android:launchMode=
"singleTop"
android:launchMode=
"singleTop"
android:theme=
"@style/LaunchTheme"
android:theme=
"@style/LaunchTheme"
...
...
android/app/src/main/res/xml/network_security_config.xml
0 → 100644
View file @
5867701e
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config
cleartextTrafficPermitted=
"true"
>
<domain
includeSubdomains=
"true"
>
apidev.mdd.co.id
</domain>
</domain-config>
</network-security-config>
\ No newline at end of file
android/app/src/profile/AndroidManifest.xml
View file @
5867701e
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
package=
"com.mdd.flutter_mdd_simulator"
>
<!-- Flutter needs it to communicate with the running application
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
to allow setting breakpoints, to provide hot reload, etc.
-->
-->
...
...
android/build.gradle
View file @
5867701e
buildscript
{
buildscript
{
ext
.
kotlin_version
=
'1.
3.5
0'
ext
.
kotlin_version
=
'1.
8.
0'
repositories
{
repositories
{
google
()
google
()
jcenter
()
jcenter
()
mavenCentral
()
maven
{
url
"https://mobile-repo.mdd.co.id:8081/artifactory/android-library/"
allowInsecureProtocol
(
true
)
credentials
{
username
=
"admin"
password
=
"Mddcoid*123#"
}
}
}
}
dependencies
{
dependencies
{
classpath
'com.android.tools.build:gradle:
4.1.0
'
classpath
'com.android.tools.build:gradle:
7.4.2
'
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
}
}
...
@@ -15,6 +24,15 @@ allprojects {
...
@@ -15,6 +24,15 @@ allprojects {
repositories
{
repositories
{
google
()
google
()
jcenter
()
jcenter
()
mavenCentral
()
maven
{
url
"https://mobile-repo.mdd.co.id:8081/artifactory/android-library/"
allowInsecureProtocol
(
true
)
credentials
{
username
=
"admin"
password
=
"Mddcoid*123#"
}
}
}
}
}
}
...
@@ -26,6 +44,6 @@ subprojects {
...
@@ -26,6 +44,6 @@ subprojects {
project
.
evaluationDependsOn
(
':app'
)
project
.
evaluationDependsOn
(
':app'
)
}
}
task
clean
(
type:
Delete
)
{
task
s
.
register
(
"clean"
,
Delete
)
{
delete
rootProject
.
buildDir
delete
rootProject
.
buildDir
}
}
android/gradle/wrapper/gradle-wrapper.properties
View file @
5867701e
...
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
...
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionPath
=
wrapper/dists
zipStoreBase
=
GRADLE_USER_HOME
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
zipStorePath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-
6.7
-all.zip
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-
7.6.1
-all.zip
lib/main.dart
View file @
5867701e
import
'dart:convert'
;
import
'dart:io'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/painting.dart'
;
import
'package:flutter_mdd_simulator/screen/TapCard.dart'
;
import
'package:flutter_mdd_simulator/screen/TapCard.dart'
;
import
'package:prepaid_lib_flutter/unik_lib_flutter.dart'
;
import
'package:intl/intl.dart'
;
import
'package:intl/intl.dart'
;
import
'package:prepaid_lib_flutter_null_safety/unik_lib_flutter.dart'
;
void
main
(
)
{
void
main
(
)
{
WidgetsFlutterBinding
.
ensureInitialized
();
WidgetsFlutterBinding
.
ensureInitialized
();
...
@@ -21,7 +23,7 @@ class MyApp extends StatelessWidget {
...
@@ -21,7 +23,7 @@ class MyApp extends StatelessWidget {
}
}
class
NfcScan
extends
StatefulWidget
{
class
NfcScan
extends
StatefulWidget
{
NfcScan
({
Key
key
})
:
super
(
key:
key
);
NfcScan
({
Key
?
key
})
:
super
(
key:
key
);
@override
@override
_MyAppState
createState
()
=>
_MyAppState
();
_MyAppState
createState
()
=>
_MyAppState
();
...
@@ -31,10 +33,11 @@ class _MyAppState extends State<NfcScan> {
...
@@ -31,10 +33,11 @@ class _MyAppState extends State<NfcScan> {
String
_balance
=
"0"
,
_cardNumber
=
"000000000000000"
,
_status
=
"Unknown"
;
String
_balance
=
"0"
,
_cardNumber
=
"000000000000000"
,
_status
=
"Unknown"
;
String
_bgCard
=
"images/mandiri_bg.png"
;
String
_bgCard
=
"images/mandiri_bg.png"
;
bool
_isLoading
=
false
;
bool
_isLoading
=
false
;
String
paidAmount
;
String
?
paidAmount
;
String
_identifier
=
'Unknown'
;
String
_identifier
=
'Unknown'
;
String
_bankName
;
String
?
_bankName
;
bool
isSuccessInit
;
bool
?
isSuccessInit
;
List
<
dynamic
>?
listHistory
;
@override
@override
void
initState
()
{
void
initState
()
{
...
@@ -44,16 +47,19 @@ class _MyAppState extends State<NfcScan> {
...
@@ -44,16 +47,19 @@ class _MyAppState extends State<NfcScan> {
void
initLibrary
()
async
{
void
initLibrary
()
async
{
isSuccessInit
=
await
UnikLibFlutter
.
initUnikLib
(
isSuccessInit
=
await
UnikLibFlutter
.
initUnikLib
(
"4
9df5f81d59fae23ec6f542372fc9497
"
/*"1234567abc"*/
,
1
);
"4
dd9063acfc04848b801288f23c6eeff
"
/*"1234567abc"*/
,
1
);
print
(
"isSuccessInit
$isSuccessInit
"
);
print
(
"isSuccessInit
$isSuccessInit
"
);
}
}
void
getCardInfo
()
async
{
void
getCardInfo
()
async
{
_setStateDefault
();
/// optional you can use List<String> varName = List<String>.filled(1, "");
/// optional you can use List<String> varName = List<String>.filled(1, "");
List
<
String
>
cardUid
=
List
(
1
);
List
<
String
>
cardUid
=
[
''
];
List
<
String
>
cardNumber
=
List
(
1
);
List
<
String
>
cardNumber
=
[
''
];
List
<
String
>
balance
=
List
(
1
);
List
<
String
>
balance
=
[
''
];
List
<
String
>
bankName
=
List
(
1
);
List
<
String
>
bankName
=
[
''
];
List
<
String
>
history
=
[
''
];
bool
isSuccess
=
await
UnikLibFlutter
.
getCardInfo
(
bool
isSuccess
=
await
UnikLibFlutter
.
getCardInfo
(
cardUid
,
cardNumber
,
balance
,
bankName
,
cardUid
,
cardNumber
,
balance
,
bankName
,
...
@@ -64,59 +70,99 @@ class _MyAppState extends State<NfcScan> {
...
@@ -64,59 +70,99 @@ class _MyAppState extends State<NfcScan> {
print
(
print
(
"isSuccess
$isSuccess
, cardNumber
${cardNumber[0]}
, balance
${balance[0]}
, bankName
${bankName[0]}
"
);
"isSuccess
$isSuccess
, cardNumber
${cardNumber[0]}
, balance
${balance[0]}
, bankName
${bankName[0]}
"
);
_setStateCard
(
isSuccess
,
cardNumber
[
0
],
balance
[
0
],
bankName
[
0
]);
bool
jsonHistory
=
await
UnikLibFlutter
.
getHistory
(
history
);
print
(
"jsonHistory
${history[0]}
"
);
this
.
setState
(()
{
listHistory
=
jsonDecode
(
history
[
0
]);
});
UnikLibFlutter
.
stopReader
(
messageSuccess:
"Cek saldo berhasil"
);
_setStateCard
(
true
,
cardNumber
[
0
],
balance
[
0
],
bankName
[
0
]);
// bool historyStatus = await UnikLibFlutter.getHistory(history);
//
// print("History Transaction ${jsonEncode(historyStatus)}");
}
}
void
updateBalance
()
async
{
void
updateBalance
()
async
{
List
<
String
>
status
=
[
null
];
_setStateDefault
();
List
<
String
>
cardNumber
=
[
null
];
List
<
String
>
status
=
[
''
];
List
<
String
>
balance
=
[
null
];
List
<
String
>
cardNumber
=
[
''
];
List
<
String
>
bankName
=
[
null
];
List
<
String
>
balance
=
[
''
];
List
<
String
>
beforeBalance
=
[
null
];
List
<
String
>
bankName
=
[
''
];
if
(
isSuccessInit
)
{
List
<
String
>
beforeBalance
=
[
''
];
bool
isSuccess
=
await
UnikLibFlutter
.
updateBalance
(
// if (isSuccessInit) {
status
,
bool
isSuccess
=
await
UnikLibFlutter
.
updateBalance
(
status
,
cardNumber
,
cardNumber
,
balance
,
bankName
,
beforeBalance
,
"085735442829"
,
"developer@mdd.co.id"
,
balance
,
callbackState:
(
String
stateOperation
)
=>
bankName
,
(
stateOperation
==
UnikLibFlutter
.
WAITING_STATUS
)
beforeBalance
,
?
UnikLibFlutter
.
setIosMessage
(
"085735442829"
,
"Mohon tunggu, jangan lepaskan kartu"
)
"developer@mdd.co.id"
,
:
print
(
"state operation DONE"
),
callbackState:
(
String
stateOperation
)
=>
callbackTimeout:
(
bool
isTimeout
)
=>
print
(
"timeout
$isTimeout
"
),
(
stateOperation
==
UnikLibFlutter
.
WAITING_STATUS
)
errorNfc:
(
bool
value
)
=>
print
(
"error nfc
$value
"
));
?
print
(
"state operation WAITING"
)
print
(
"isSuccess
$isSuccess
"
);
:
print
(
"state operation DONE"
),
print
(
"status update
${status[0]}
"
);
callbackTimeout:
(
bool
isTimeout
)
=>
print
(
"timeout
$isTimeout
"
),
errorNfc:
(
bool
value
)
=>
print
(
"error nfc
$value
"
));
print
(
"cardNumber
${cardNumber[0]}
"
);
print
(
"isSuccess
$isSuccess
"
);
print
(
"status update
${status[0]}
"
);
this
.
setState
(()
{
this
.
setState
(()
{
_status
=
status
[
0
];
_status
=
status
[
0
];
});
});
_setStateCard
(
isSuccess
,
cardNumber
[
0
],
balance
[
0
],
bankName
[
0
]);
if
(
isSuccess
)
{
UnikLibFlutter
.
stopReader
(
messageSuccess:
"Update balance berhasil"
);
_setStateCard
(
true
,
cardNumber
[
0
],
balance
[
0
],
bankName
[
0
]);
}
else
{
print
(
"Terjadi kesalahan"
);
UnikLibFlutter
.
stopReader
(
messageError:
"Update balance gagal"
);
_setStateCard
(
false
,
cardNumber
[
0
],
balance
[
0
],
bankName
[
0
]);
// Navigator.of(context).pop();
}
}
// }
}
}
void
_setStateCard
(
void
_setStateCard
(
bool
isSuccess
,
String
cardNumber
,
String
balance
,
String
bankName
)
{
bool
isSuccess
,
String
cardNumber
,
String
balance
,
String
bankName
)
{
if
(
isSuccess
)
{
this
.
setState
(()
{
this
.
setState
(()
{
_cardNumber
=
cardNumber
;
_cardNumber
=
cardNumber
??
"0000000000000000"
;
_balance
=
balance
;
_balance
=
balance
??
"0"
;
_bgCard
=
_bgCard
=
(
bankName
==
"BNI"
)
?
"images/bni_bg.png"
:
"images/mandiri_bg.png"
;
(
bankName
==
"BNI"
)
?
"images/bni_bg.png"
:
"images/mandiri_bg.png"
;
_bankName
=
bankName
;
_bankName
=
bankName
;
});
});
if
(
Platform
.
isAndroid
)
Navigator
.
pop
(
context
);
}
else
{
}
print
(
"Something went wrong"
);
this
.
setState
(()
{
void
_setStateDefault
()
{
_bgCard
=
this
.
setState
(()
{
(
bankName
==
"BNI"
)
?
"images/bni_bg.png"
:
"images/mandiri_bg.png"
;
_cardNumber
=
"0000000000000000"
;
_bankName
=
bankName
;
_balance
=
"0"
;
});
_bgCard
=
"images/mandiri_bg.png"
;
}
listHistory
=
null
;
Navigator
.
pop
(
context
);
_status
=
"Unknown"
;
});
}
Widget
listViewBuilder
(
List
<
dynamic
>
list
)
{
return
Container
(
height:
300
,
child:
ListView
.
builder
(
itemBuilder:
(
context
,
index
)
{
return
Column
(
children:
[
Text
(
"amount :
${list[index]["amount"]}
"
),
Text
(
"date :
${list[index]["date"]}
"
),
Text
(
"type :
${list[index]["type"]}
"
),
SizedBox
(
height:
10
,
)
],
);
},
itemCount:
list
.
length
,
),
);
}
}
@override
@override
...
@@ -200,8 +246,7 @@ class _MyAppState extends State<NfcScan> {
...
@@ -200,8 +246,7 @@ class _MyAppState extends State<NfcScan> {
(
match
)
=>
"
${match.group(0)}
"
),
(
match
)
=>
"
${match.group(0)}
"
),
style:
TextStyle
(
style:
TextStyle
(
color:
Colors
.
white
,
color:
Colors
.
white
,
fontSize:
18
)
??
fontSize:
18
)),
"0000000000000000"
),
SizedBox
(
SizedBox
(
height:
17
,
height:
17
,
),
),
...
@@ -215,7 +260,7 @@ class _MyAppState extends State<NfcScan> {
...
@@ -215,7 +260,7 @@ class _MyAppState extends State<NfcScan> {
Text
(
Text
(
NumberFormat
.
simpleCurrency
(
NumberFormat
.
simpleCurrency
(
locale:
'id_ID'
)
locale:
'id_ID'
)
.
format
(
int
.
parse
(
_balance
)
??
"0"
),
.
format
(
int
.
parse
(
_balance
)),
style:
TextStyle
(
color:
Colors
.
white
)),
style:
TextStyle
(
color:
Colors
.
white
)),
],
],
))
))
...
@@ -233,7 +278,8 @@ class _MyAppState extends State<NfcScan> {
...
@@ -233,7 +278,8 @@ class _MyAppState extends State<NfcScan> {
icon:
Icon
(
Icons
.
update_rounded
),
icon:
Icon
(
Icons
.
update_rounded
),
onPressed:
()
{
onPressed:
()
{
updateBalance
();
updateBalance
();
_showBottomSheet
(
TapCard
(),
0.50
);
if
(
Platform
.
isAndroid
)
_showBottomSheet
(
TapCard
(),
0.50
);
},
},
)),
)),
SizedBox
(
SizedBox
(
...
@@ -243,24 +289,31 @@ class _MyAppState extends State<NfcScan> {
...
@@ -243,24 +289,31 @@ class _MyAppState extends State<NfcScan> {
alignment:
Alignment
.
center
,
alignment:
Alignment
.
center
,
child:
_isLoading
child:
_isLoading
?
CircularProgressIndicator
()
?
CircularProgressIndicator
()
:
Text
(
_status
??
"Unknown"
),
:
Text
(
_status
),
),
SizedBox
(
height:
10
,
),
(
listHistory
!=
null
)
?
listViewBuilder
(
listHistory
!)
:
SizedBox
(
width:
1
,
)
)
],
],
),
),
)),
)),
floatingActionButton:
FloatingActionButton
(
floatingActionButton:
FloatingActionButton
(
onPressed:
()
{
onPressed:
()
async
{
if
(
isSuccessInit
)
{
//
if (isSuccessInit) {
getCardInfo
();
getCardInfo
();
_showBottomSheet
(
TapCard
(),
0.50
);
if
(
Platform
.
isAndroid
)
_showBottomSheet
(
TapCard
(),
0.50
);
}
else
{
//
} else {
print
(
"Init Failed"
);
//
print("Init Failed");
}
//
}
},
},
child:
const
Icon
(
Icons
.
cached
),
child:
const
Icon
(
Icons
.
cached
),
backgroundColor:
Colors
.
blue
,
backgroundColor:
Colors
.
blue
,
),
),
);
);
}
}
}
}
lib/screen/TapCard.dart
View file @
5867701e
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_gif
image/flutter_gifimage
.dart'
;
import
'package:flutter_gif
/flutter_gif
.dart'
;
class
TapCard
extends
StatefulWidget
{
class
TapCard
extends
StatefulWidget
{
@override
@override
_TapCardState
createState
()
=>
_TapCardState
();
_TapCardState
createState
()
=>
_TapCardState
();
}
}
class
_TapCardState
extends
State
<
TapCard
>
with
TickerProviderStateMixin
{
class
_TapCardState
extends
State
<
TapCard
>{
GifController
controller
;
@override
@override
void
initState
()
{
void
initState
()
{
controller
=
GifController
(
vsync:
this
);
WidgetsBinding
.
instance
.
addPostFrameCallback
((
_
)
{
controller
.
repeat
(
min:
0
,
max:
10
,
period:
Duration
(
seconds:
3
));
});
super
.
initState
();
super
.
initState
();
}
}
@override
@override
dispose
()
{
dispose
()
{
controller
.
dispose
();
super
.
dispose
();
super
.
dispose
();
}
}
...
@@ -31,8 +24,7 @@ class _TapCardState extends State<TapCard> with TickerProviderStateMixin {
...
@@ -31,8 +24,7 @@ class _TapCardState extends State<TapCard> with TickerProviderStateMixin {
return
Container
(
return
Container
(
padding:
EdgeInsets
.
all
(
30
),
padding:
EdgeInsets
.
all
(
30
),
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
children:
[
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
children:
[
GifImage
(
Image
(
controller:
controller
,
image:
AssetImage
(
"images/gif_tap_card.gif"
),
image:
AssetImage
(
"images/gif_tap_card.gif"
),
width:
280
,
width:
280
,
),
),
...
...
pubspec.yaml
View file @
5867701e
...
@@ -18,7 +18,9 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
...
@@ -18,7 +18,9 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version
:
1.0.0+1
version
:
1.0.0+1
environment
:
environment
:
sdk
:
"
>=2.7.0
<3.0.0"
sdk
:
"
>=2.12.0
<3.0.0"
flutter
:
"
>=1.20.0"
dependencies
:
dependencies
:
flutter
:
flutter
:
...
@@ -27,15 +29,22 @@ dependencies:
...
@@ -27,15 +29,22 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons
:
^1.0.2
cupertino_icons
:
^1.0.6
flutter_nfc_kit
:
^2.2.1
intl
:
^0.18.1
flutter_gifimage
:
^1.0.1
intl
:
^0.16.1
prepaid_lib_flutter_null_safety
:
prepaid_lib_flutter
:
hosted
:
hosted
:
name
:
prepaid_lib_flutter
name
:
prepaid_lib_flutter_null_safety
url
:
http://202.158.132.228:4000
url
:
https://pub.dev
version
:
0.0.6
version
:
^0.0.25-nullsafety
flutter_encrypt_lib
:
hosted
:
name
:
flutter_encrypt_lib
url
:
https://pub-dev.multidaya.id
version
:
0.0.10
flutter_gif
:
^0.0.4
dev_dependencies
:
dev_dependencies
:
flutter_test
:
flutter_test
:
...
...
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