diff --git a/app/build.gradle.kts b/app/build.gradle.kts
new file mode 100644
index 0000000..29803b2
--- /dev/null
+++ b/app/build.gradle.kts
@@ -0,0 +1,51 @@
+plugins {
+ id("com.android.application")
+ id("org.jetbrains.kotlin.android")
+}
+
+android {
+ namespace = "com.aquib.aiagent"
+ compileSdk = 35
+
+ defaultConfig {
+ applicationId = "com.aquib.aiagent"
+ minSdk = 31
+ targetSdk = 35
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+ kotlinOptions {
+ jvmTarget = "17"
+ }
+ buildFeatures {
+ viewBinding = true
+ }
+}
+
+dependencies {
+ implementation("androidx.core:core-ktx:1.13.1")
+ implementation("androidx.appcompat:appcompat:1.7.0")
+ implementation("androidx.activity:activity-ktx:1.9.2")
+ implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.4")
+ implementation("com.google.android.material:material:1.12.0")
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1")
+ implementation("com.google.ai.client.generativeai:generativeai:0.9.0")
+ implementation("androidx.security:security-crypto:1.1.0-alpha06")
+}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..a2814a6
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1 @@
+# Project specific rules
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..c463a62
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/aquib/aiagent/AiAgentApp.kt b/app/src/main/java/com/aquib/aiagent/AiAgentApp.kt
new file mode 100644
index 0000000..6296b07
--- /dev/null
+++ b/app/src/main/java/com/aquib/aiagent/AiAgentApp.kt
@@ -0,0 +1,11 @@
+package com.aquib.aiagent
+
+import android.app.Application
+import com.aquib.aiagent.util.NotificationHelper
+
+class AiAgentApp : Application() {
+ override fun onCreate() {
+ super.onCreate()
+ NotificationHelper.createChannel(this)
+ }
+}
diff --git a/app/src/main/java/com/aquib/aiagent/MainActivity.kt b/app/src/main/java/com/aquib/aiagent/MainActivity.kt
new file mode 100644
index 0000000..d6582a9
--- /dev/null
+++ b/app/src/main/java/com/aquib/aiagent/MainActivity.kt
@@ -0,0 +1,126 @@
+package com.aquib.aiagent
+
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.net.Uri
+import android.os.Build
+import android.os.Bundle
+import android.os.PowerManager
+import android.provider.Settings
+import android.widget.Button
+import android.widget.EditText
+import android.widget.TextView
+import android.widget.Toast
+import androidx.activity.ComponentActivity
+import androidx.core.content.ContextCompat
+import androidx.lifecycle.lifecycleScope
+import com.aquib.aiagent.ai.GeminiApiClient
+import com.aquib.aiagent.overlay.AgentOverlayService
+import com.aquib.aiagent.telemetry.Telemetry
+import com.aquib.aiagent.util.SecurePrefs
+import kotlinx.coroutines.launch
+
+class MainActivity : ComponentActivity() {
+ private lateinit var securePrefs: SecurePrefs
+ private lateinit var api: GeminiApiClient
+ private lateinit var telemetry: Telemetry
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+
+ securePrefs = SecurePrefs(this)
+ api = GeminiApiClient(this)
+ telemetry = Telemetry(this)
+
+ val tvChecklist = findViewById(R.id.tvChecklist)
+ val tvStats = findViewById(R.id.tvStats)
+ val etApiKey = findViewById(R.id.etApiKey)
+ val btnSave = findViewById