diff --git a/App.js b/App.js
index 622fc21..54a6a8c 100644
--- a/App.js
+++ b/App.js
@@ -1,72 +1,100 @@
-import { Pressable, StyleSheet, Text, View } from 'react-native'
-import React, { useState } from 'react'
+import {
+ Pressable,
+ ScrollView,
+ StyleSheet,
+ Text,
+ View,
+ NativeModules,
+} from 'react-native';
+import React, { useEffect, useState } from 'react'
import {
EventFrequency,
checkForPermission,
queryUsageStats,
showUsageAccessSettings,
+ queryEventsStats,
+ queryAndAggregateUsageStats,
+ queryEvents,
+ getAppDataUsage
} from '@brighthustle/react-native-usage-stats-manager';
+import moment from 'moment'
+
const App = () => {
const [dataApps, setDataApp] = useState();
- const startDateString = '2024-03-17T06:00:00';
- const endDateString = '2024-03-18T06:00:00';
+ const startDateString = '2024-05-15T11:59:00';
+ const endDateString = '2024-05-16T12:00:00';
const startMilliseconds = new Date(startDateString).getTime();
const endMilliseconds = new Date(endDateString).getTime();
- const functionLog = async () => {
- const result = await queryUsageStats(
- EventFrequency.INTERVAL_DAILY,
- startMilliseconds,
- endMilliseconds
- )
+ const [startTimeHuman, setStartTimeHuman] = useState('');
+ const [endTimeHuman, setEndTimeHuman] = useState('');
+
+ const functionLog = async () => {
+ const result = await queryEvents(
+ // EventFrequency.INTERVAL_DAILY,
+ startMilliseconds,
+ endMilliseconds
+ )
- console.log(JSON.stringify(result, null, ' '))
- setDataApp(JSON.stringify(result, null, ' '))
- }
+ const startConvert = new Date(startMilliseconds);
+ const endConvert = new Date(endMilliseconds);
+
+ setStartTimeHuman(moment(startConvert).format('DD-MM-yyyy hh:mm:ss'))
+ setEndTimeHuman(moment(endConvert).format('DD-MM-yyyy hh:mm:ss'))
+ setDataApp(JSON.stringify(result, null, ' '))
+ console.info('ARRAY APP USAGE')
+ console.log(JSON.stringify(result, null, ' '))
+ }
return (
+ style={{
+ margin: 20,
+ }}>
{
- checkForPermission().then((res) => {
+ checkForPermission().then(res => {
if (!res) {
showUsageAccessSettings('');
} else {
- functionLog()
+ functionLog();
}
});
- }}
- >
+ }}>
+ borderRadius: 5,
+ }}>
Fetch Data Log Apps
+ }}>
+ Fetch Data Log Apps
+
+
+ Start: {startTimeHuman}
+ End: {endTimeHuman}
+
-
- {dataApps}
-
+
+
+ {dataApps}
+
+
- )
+ );
}
export default App;
\ No newline at end of file
diff --git a/README.md b/README.md
index f0cb2a1..af39bfc 100644
--- a/README.md
+++ b/README.md
@@ -1,44 +1,52 @@
-# App Usage Tracker v1.0-beta
-Log Aplikasi masih baru di Android, untuk iOS masih on ReSearch
+# App Usage Tracker v1.1-beta
+Log Aplikasi masih baru di Android, untuk iOS masih on ReSearch.
+
+## What's new?
+- Modify: Get data by range data (start and end date) usage app (activity)
+- Fix: View dan list with scroll
## Log Data Usage Activity
Berikut contoh data yang sudah berhasil diambil dari usage penggunaan activity pada Ponsel Android
```.sh
+ INFO ARRAY APP USAGE
LOG {
- "com.google.android.gms": {
- "appName": "Layanan Google Play",
- "packageName": "com.google.android.gms",
- "lastTimeUsed": 1715759957978,
- "firstTimeStamp": 1715678603628,
+ "0": {
"isSystem": false,
- "totalTimeInForeground": 21,
- "lastTimeStamp": 1715765003627
+ "count": 13,
+ "eventType": 0,
+ "usageTime": 6540838,
+ "eventTime": 1715766609656,
+ "packageName": "ginlemon.flowerfree",
+ "humanReadableUsageTime": "1h 49m 0s",
+ "name": "ginlemon.flowerfree"
},
- "com.burockgames.timeclocker": {
- "appName": "com.burockgames.timeclocker",
- "packageName": "com.burockgames.timeclocker",
- "lastTimeUsed": 1715761629904,
- "firstTimeStamp": 1715678603628,
+ "1": {
"isSystem": false,
- "totalTimeInForeground": 104,
- "lastTimeStamp": 1715765003627
+ "count": 3,
+ "eventType": 0,
+ "usageTime": 911078,
+ "eventTime": 1715766595356,
+ "packageName": "com.rnappusage",
+ "humanReadableUsageTime": "15m 11s",
+ "name": "RNAppUsage"
},
- "com.android.deskclock": {
- "appName": "Jam",
- "packageName": "com.android.deskclock",
- "lastTimeUsed": 1715630340415,
- "firstTimeStamp": 1715592200825,
+ "2": {
"isSystem": false,
- "totalTimeInForeground": 179,
- "lastTimeStamp": 1715678600824
+ "count": 5,
+ "eventType": 0,
+ "usageTime": 632758,
+ "eventTime": 1715765845264,
+ "packageName": "com.facebook.katana",
+ "humanReadableUsageTime": "10m 32s",
+ "name": "Facebook"
},
-. . . .
// And more data
```
Dan berikut tampilannya
-
+
+
Copyright © 2024 Asep Septiadi. All right reserved. Powered by `react-native-usage-stats-manager`
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 411723d..3da84b7 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -944,6 +944,10 @@ PODS:
- React-Mapbuffer (0.73.6):
- glog
- React-debug
+ - react-native-usage-stats-manager (0.1.5):
+ - glog
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core
- React-nativeconfig (0.73.6)
- React-NativeModulesApple (0.73.6):
- glog
@@ -1167,6 +1171,7 @@ DEPENDENCIES:
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
+ - "react-native-usage-stats-manager (from `../node_modules/@brighthustle/react-native-usage-stats-manager`)"
- React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
@@ -1261,6 +1266,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/logger"
React-Mapbuffer:
:path: "../node_modules/react-native/ReactCommon"
+ react-native-usage-stats-manager:
+ :path: "../node_modules/@brighthustle/react-native-usage-stats-manager"
React-nativeconfig:
:path: "../node_modules/react-native/ReactCommon"
React-NativeModulesApple:
@@ -1344,6 +1351,7 @@ SPEC CHECKSUMS:
React-jsinspector: 85583ef014ce53d731a98c66a0e24496f7a83066
React-logger: 3eb80a977f0d9669468ef641a5e1fabbc50a09ec
React-Mapbuffer: 84ea43c6c6232049135b1550b8c60b2faac19fab
+ react-native-usage-stats-manager: 3571268b9473458a9f15d4a2af8661f8c544b0cc
React-nativeconfig: b4d4e9901d4cabb57be63053fd2aa6086eb3c85f
React-NativeModulesApple: cd26e56d56350e123da0c1e3e4c76cb58a05e1ee
React-perflogger: 5f49905de275bac07ac7ea7f575a70611fa988f2
diff --git a/package.json b/package.json
index 1b0bb74..0f45261 100644
--- a/package.json
+++ b/package.json
@@ -11,8 +11,10 @@
},
"dependencies": {
"@brighthustle/react-native-usage-stats-manager": "^0.1.5",
+ "moment": "^2.30.1",
"react": "18.2.0",
- "react-native": "0.73.6"
+ "react-native": "0.73.6",
+ "react-native-app-usage-monitor": "^1.0.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",