diff --git a/dialer/android/.gitignore b/dialer/android/.gitignore
index e409267..e6d71b3 100644
--- a/dialer/android/.gitignore
+++ b/dialer/android/.gitignore
@@ -4,6 +4,7 @@ gradle-wrapper.jar
/gradlew
/gradlew.bat
/local.properties
+/gradle.properties
GeneratedPluginRegistrant.java
gradle.properties
diff --git a/dialer/android/app/src/main/AndroidManifest.xml b/dialer/android/app/src/main/AndroidManifest.xml
index cb4976e..138e514 100644
--- a/dialer/android/app/src/main/AndroidManifest.xml
+++ b/dialer/android/app/src/main/AndroidManifest.xml
@@ -5,6 +5,10 @@
+
+
+
+
- // Delegate method calls to KeystoreHelper
- KeystoreHelper(call, result).handleMethodCall()
+
+ // Set up the keystore channel.
+ MethodChannel(flutterEngine.dartExecutor.binaryMessenger, KEYSTORE_CHANNEL)
+ .setMethodCallHandler { call, result ->
+ // Delegate method calls to KeystoreHelper.
+ KeystoreHelper(call, result).handleMethodCall()
+ }
+
+ // Set up the call log channel.
+ MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CALLLOG_CHANNEL)
+ .setMethodCallHandler { call, result ->
+ if (call.method == "getCallLogs") {
+ val callLogs = getCallLogs()
+ result.success(callLogs)
+ } else {
+ result.notImplemented()
+ }
+ }
+ }
+
+ /**
+ * Queries the Android call log and returns a list of maps.
+ * Each map contains keys: "number", "type", "date", and "duration".
+ */
+ private fun getCallLogs(): List