Browse Source

done

master
jefry 2 years ago
parent
commit
02e4c2b9ab
17 changed files with 170 additions and 78 deletions
  1. +1
    -1
      android/app/src/main/AndroidManifest.xml
  2. +1
    -1
      ios/Flutter/AppFrameworkInfo.plist
  3. +1
    -1
      ios/Podfile
  4. +86
    -12
      ios/Runner.xcodeproj/project.pbxproj
  5. +1
    -1
      ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  6. +1
    -1
      ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  7. +3
    -0
      ios/Runner.xcworkspace/contents.xcworkspacedata
  8. +2
    -0
      ios/Runner/Info.plist
  9. +12
    -8
      lib/asset_details.dart
  10. +1
    -1
      lib/asset_logs.dart
  11. +20
    -20
      lib/home.dart
  12. +1
    -1
      lib/stocking.dart
  13. +24
    -8
      lib/util/dbHandler.dart
  14. +2
    -2
      lib/util/download_Upload_Handler.dart
  15. +1
    -1
      lib/util/utils.dart
  16. +12
    -19
      pubspec.lock
  17. +1
    -1
      pubspec.yaml

+ 1
- 1
android/app/src/main/AndroidManifest.xml View File

@@ -9,7 +9,7 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<application
android:name="${applicationName}"
android:label="assetstock"


+ 1
- 1
ios/Flutter/AppFrameworkInfo.plist View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>8.0</string>
<string>11.0</string>
</dict>
</plist>

+ 1
- 1
ios/Podfile View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
# platform :ios, '11.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'


+ 86
- 12
ios/Runner.xcodeproj/project.pbxproj View File

@@ -3,13 +3,14 @@
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objectVersion = 50;
objects = {

/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
7F97140DDC9766C8BCC9DB1F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB5A9940CDB629A1BBA2BC51 /* Pods_Runner.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -31,10 +32,12 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
1ADB1407455DE034E10C911C /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
88873868416AD783785E81C7 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -42,6 +45,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B25627757AF10282201C5B03 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
FB5A9940CDB629A1BBA2BC51 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
@@ -49,6 +54,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
7F97140DDC9766C8BCC9DB1F /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -72,6 +78,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
E778508E83C915897E28B2CA /* Pods */,
BF2BAC820406AD7785E66AA3 /* Frameworks */,
);
sourceTree = "<group>";
};
@@ -106,6 +114,25 @@
name = "Supporting Files";
sourceTree = "<group>";
};
BF2BAC820406AD7785E66AA3 /* Frameworks */ = {
isa = PBXGroup;
children = (
FB5A9940CDB629A1BBA2BC51 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
E778508E83C915897E28B2CA /* Pods */ = {
isa = PBXGroup;
children = (
B25627757AF10282201C5B03 /* Pods-Runner.debug.xcconfig */,
88873868416AD783785E81C7 /* Pods-Runner.release.xcconfig */,
1ADB1407455DE034E10C911C /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
@@ -113,12 +140,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
161D032BEF51F13F0F798179 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
B9FAECD78F48C1C5410BD713 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -135,7 +164,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -177,6 +206,28 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
161D032BEF51F13F0F798179 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -205,6 +256,23 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
B9FAECD78F48C1C5410BD713 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
@@ -241,7 +309,6 @@
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -281,7 +348,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -303,7 +370,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -318,7 +388,6 @@
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -364,7 +433,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -374,7 +443,6 @@
};
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -414,7 +482,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -437,7 +505,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -464,7 +535,10 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -503,4 +577,4 @@
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
}

+ 1
- 1
ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata View File

@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

+ 1
- 1
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"


+ 3
- 0
ios/Runner.xcworkspace/contents.xcworkspacedata View File

@@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

+ 2
- 0
ios/Runner/Info.plist View File

@@ -41,5 +41,7 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
</dict>
</plist>

+ 12
- 8
lib/asset_details.dart View File

@@ -529,7 +529,7 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix
children: <Widget>[
Expanded(
flex: 5,
child: FlatButton(
child: TextButton(
onPressed: ()async{
if(barCode.text!=''&&prefixCode.text!='')await findAsset(prefixCode.text+barCode.text,silent: true);
else _asset.tag_number = null;
@@ -546,13 +546,13 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix
title: Text('Append New Asset'),
content: Text('${(widget.no==null)?'Insert':'Update'} brand new asset?'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,true);
},
child: Text('Save'),
),
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,false);
},
@@ -591,19 +591,23 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix
util.showToast('ERROR', 'Please complete the asset data');
}
},
color: Colors.green,
style: TextButton.styleFrom(
backgroundColor: Colors.green,
),
child: Container(alignment: Alignment.center,height: 50,
child: Text('Save')),
child: Text('Save',style: TextStyle(color: Colors.white),)),
),
),
Expanded(
flex: 5,
child: FlatButton(
child: TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.red,
),
onPressed: (){
Navigator.pop(context);
},
color: Colors.red,
child: Container(alignment: Alignment.center,height:50,child: Text('Cancel')),
child: Container(alignment: Alignment.center,height:50,child: Text('Cancel',style: TextStyle(color: Colors.white))),
),
),
],


+ 1
- 1
lib/asset_logs.dart View File

@@ -53,7 +53,7 @@ class _AssetLogsState extends State<AssetLogs> {
title: Text('Pick nonAuditAsset'),
content: Text("Select Asset ${idxAsset.tag_number}"),
actions: [
FlatButton(
TextButton(
onPressed: (){
Navigator.pop(context,true);
},


+ 20
- 20
lib/home.dart View File

@@ -48,18 +48,18 @@ class _HomeState extends State<Home> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
// await loadMenu();
final androidVersion = await DeviceInfoPlugin().androidInfo;
if ((androidVersion.version.sdkInt ?? 0) >= 30) {
await util.permissionCheck(this.context,pHandler.Permission.manageExternalStorage,()async{print("storage permit granted!");},customMessage: " untuk menyimpan data backup");
} else {
// final androidVersion = await DeviceInfoPlugin().androidInfo;
// if ((androidVersion.version.sdkInt ?? 0) >= 30) {
// await util.permissionCheck(this.context,pHandler.Permission.manageExternalStorage,()async{print("storage permit granted!");},customMessage: " untuk menyimpan data backup");
// } else {
await util.permissionCheck(this.context,pHandler.Permission.storage,()async{print("storage permit granted!");},customMessage: " untuk menyimpan data backup");
}
// }
});
}

clearData(context)async{
String errMsg;
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File db = File(path);
if(db.existsSync()){
@@ -72,7 +72,7 @@ class _HomeState extends State<Home> {
title: Text('Clear Data ?'),
content: Text('Proceed to clear any remaining units data on this device?'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
onPressed: ()async{
util.showLoading(context);
@@ -112,7 +112,7 @@ class _HomeState extends State<Home> {
util.showToast(errMsg==null?"SUCCESS":"ERROR",errMsg??'Data Cleared');
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){Navigator.pop(context,false);},
)
@@ -131,7 +131,7 @@ class _HomeState extends State<Home> {
padding: const EdgeInsets.only(bottom:45.0),
child: FloatingActionButton(
onPressed: ()async{
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File db = File(path);
if(db.existsSync()){
@@ -214,7 +214,7 @@ class _HomeState extends State<Home> {
},
),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('OK'),
onPressed: (){
prefs.setString(keyClass.hostAddress,(hostAddress.text=='')?'https://asset.thamringroup.web.id':hostAddress.text);
@@ -246,7 +246,7 @@ class _HomeState extends State<Home> {
],
));
if(isBackup??false){
var result = await DBHelper.database.backupDb(context);
var result = await DBHelper.database.backupDb(context:context);
util.showToast(result["STATUS"]==1?'NORMAL':'ERROR', result['MSG']);
}
}
@@ -281,7 +281,7 @@ class _HomeState extends State<Home> {
if(isRestore??false){
var response;
bool isclear;
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File db = File(path);
if(db.existsSync()){
@@ -375,13 +375,13 @@ class _HomeState extends State<Home> {
})),
),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,true);
},
child: Text('Next'),
),
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,false);
},
@@ -418,13 +418,13 @@ class _HomeState extends State<Home> {
})),
),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,true);
},
child: Text('Get'),
),
FlatButton(
TextButton(
onPressed: ()async{
Navigator.pop(context,false);
},
@@ -512,7 +512,7 @@ class _HomeState extends State<Home> {
child: InkWell(
onTap: ()async{
await Future.delayed(Duration(milliseconds: 300));
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File db = File(path);
if(db.existsSync()) Navigator.pushNamed(context, '/stocking');
@@ -544,7 +544,7 @@ class _HomeState extends State<Home> {
InkWell(
onTap: ()async{
final file = File(
"${(await getExternalStorageDirectory()).path}/assets.db");
"${(await getApplicationDocumentsDirectory()).path}/assets.db");
if(file.existsSync()){
TextEditingController sendingUser = new TextEditingController();
sendingUser.text = prefs.getString(keyClass.user)??'';
@@ -557,7 +557,7 @@ class _HomeState extends State<Home> {
controller: sendingUser,
),
actions: [
FlatButton(
TextButton(
child: Text('Send'),
onPressed: ()async{
if(sendingUser.text!='') Navigator.pop(context,true);
@@ -631,7 +631,7 @@ class _HomeState extends State<Home> {
),
InkWell(
onTap: ()async{
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File db = File(path);
if(db.existsSync()) await clearData(context);


+ 1
- 1
lib/stocking.dart View File

@@ -392,7 +392,7 @@ class _StockingState extends State<Stocking> with TickerProviderStateMixin {
title: Text('Delete Asset?'),
content: Text("Delete this asset (${insertAsset[index].tag_number})?"),
actions: [
FlatButton(
TextButton(
child: Text('Delete'),
onPressed: ()async{
var res = await DBHelper.database.deleteInsertAsset(insertAsset[index].no);


+ 24
- 8
lib/util/dbHandler.dart View File

@@ -25,7 +25,7 @@ class DBHelper{
return _db;
}

backupDb(context) async{
backupDb({context}) async{
var result = {"STATUS":0,"MSG":"Backup gagal!"};
var stock_id = prefs.getString(keyClass.dbName)??'';
if(stock_id != ''){
@@ -39,9 +39,9 @@ class DBHelper{
await prefs.remove(keyClass.backup_stock_id);
if(stock_id !='' && stock_id != null ) await prefs.setString(keyClass.backup_stock_id,stock_id);
//backupDatabase
print(["aaaaaa",dbPath]);
String backupPath = join(dbPath.substring(0,dbPath.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
print("bbbbbb");
// String backupPath = join(dbPath.substring(0,dbPath.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String backupPath = join(documentsDirectory.path, "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
File backupFile = new File(backupPath);
File dbFile = File(dbPath);
if(dbFile.existsSync()){
@@ -71,8 +71,9 @@ class DBHelper{
var result = {"STATUS":0,"MSG":"File Backup tidak ditemukan!"};
if(prefs.getString(keyClass.backup_stock_id)!=null){
await util.permissionCheck(context,pHandler.Permission.storage,()async{
Directory documentsDirectory = await getExternalStorageDirectory();
String backupPath = join(documentsDirectory.path.substring(0,documentsDirectory.path.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
Directory documentsDirectory = await getApplicationDocumentsDirectory();
// String backupPath = join(documentsDirectory.path.substring(0,documentsDirectory.path.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
String backupPath = join(documentsDirectory.path, "${prefs.getString(keyClass.backup_stock_id)}_assets.db");
File backupdbFile = File(backupPath);
if(backupdbFile.existsSync()){
File dbFile = new File(join(documentsDirectory.path, "assets.db"));
@@ -88,7 +89,7 @@ class DBHelper{
}

initDb() async {
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
var theDb = await openDatabase(path, version: 1,onCreate: _onCreate);
return theDb;
@@ -102,17 +103,27 @@ class DBHelper{
}

void _onCreate(Database db, int version) async {
Directory documentsDirectory = await getExternalStorageDirectory();
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "assets.db");
File file = File(path);
print('Database created, ${file.lengthSync()}');
}

autoBackup(database)async{
var checkCount = await database.query(tableName.insert,where: "${columnName.blob} is not null");
return checkCount.isNotEmpty&& checkCount.length%5==0;
}

insertAsset(Asset newAsset) async{
try{
final database = await db;
await database.rawInsert("Insert into ${tableName.insert} (${columnName.tag_number},${columnName.blob},${columnName.keterangan}) VALUES(?,?,?)", [newAsset.tag_number,newAsset.blob,newAsset.keterangan]);
await database.rawQuery("UPDATE ${tableName.ref} SET ${columnName.flag} = 'TRUE' WHERE ${columnName.tag_number} = '${newAsset.tag_number}'");

if(await autoBackup(database)){
backupDb();
}

return true;
}
catch(e){
@@ -125,6 +136,11 @@ class DBHelper{
try{
final database = await db;
await database.rawUpdate("Update ${tableName.insert} SET ${columnName.blob} = ?, ${columnName.tag_number} = ?, ${columnName.keterangan} = ? WHERE ${columnName.no} = ?", [newAsset.blob,newAsset.tag_number,newAsset.keterangan,newAsset.no]);

if(await autoBackup(database)){
backupDb();
}

return true;
}
catch(e){


+ 2
- 2
lib/util/download_Upload_Handler.dart View File

@@ -49,7 +49,7 @@ class file_Trans_Handler {
_progress.add(0.0);
print('Finish Download');
final file = File(
"${(await getExternalStorageDirectory()).path}/$fileName");
"${(await getApplicationDocumentsDirectory()).path}/$fileName");
await file.writeAsBytes(_bytes);
_path = file.path;
})
@@ -72,7 +72,7 @@ class file_Trans_Handler {
List<int> _bytes = [];
_finish = false;
final file = File(
"${(await getExternalStorageDirectory()).path}/$fileName");
"${(await getApplicationDocumentsDirectory()).path}/$fileName");
_total = file.lengthSync();
print(_total/1024);
try{


+ 1
- 1
lib/util/utils.dart View File

@@ -13,7 +13,7 @@ class Util{

permissionCheck(context,pHandler.Permission permissionType,ifGranted,{customMessage=''})async{
pHandler.PermissionStatus permission = await permissionType.status;
if(permission!= pHandler.PermissionStatus.granted){
if(permission!= pHandler.PermissionStatus.granted && context != null){
if(permission== pHandler.PermissionStatus.denied || permission== pHandler.PermissionStatus.restricted){
showToast('NORMAL', '${permissionType.toString().substring(permissionType.toString().lastIndexOf('.')+1)} permission is needed$customMessage. Please grant the permission!');
await Future.delayed(Duration(seconds: 3));


+ 12
- 19
pubspec.lock View File

@@ -21,7 +21,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.2"
version: "2.9.0"
barcode_scan2:
dependency: "direct main"
description:
@@ -42,21 +42,14 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
version: "1.2.1"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1"
collection:
dependency: transitive
description:
@@ -133,7 +126,7 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
version: "1.3.1"
ffi:
dependency: transitive
description:
@@ -267,14 +260,14 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.11"
version: "0.12.12"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.4"
version: "0.1.5"
matrix_gesture_detector:
dependency: "direct main"
description:
@@ -288,14 +281,14 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
version: "1.8.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.1"
version: "1.8.2"
path_provider:
dependency: "direct main"
description:
@@ -489,7 +482,7 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.2"
version: "1.9.0"
sqflite:
dependency: "direct main"
description:
@@ -524,7 +517,7 @@ packages:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1"
synchronized:
dependency: transitive
description:
@@ -538,14 +531,14 @@ packages:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.9"
version: "0.4.12"
typed_data:
dependency: transitive
description:


+ 1
- 1
pubspec.yaml View File

@@ -13,7 +13,7 @@ description: Application to check assets
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.4+6
version: 1.0.5+7

environment:
sdk: ">=2.7.0 <3.0.0"


Loading…
Cancel
Save