Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
9fa05bd
refactor files
nethical6 Jul 31, 2025
6d392c2
init viewmodels
nethical6 Jul 31, 2025
fddb2dc
applist viewmodel
nethical6 Jul 31, 2025
8ba466d
viewmodel Launcher dialogs:
nethical6 Aug 1, 2025
817c37d
viewmodel to onboard
nethical6 Aug 1, 2025
08020ed
add viewmodel to authsteps
nethical6 Aug 1, 2025
e09c24d
init refactor
nethical6 Aug 1, 2025
4f61c0b
quik fixes
nethical6 Aug 2, 2025
a4f7a0f
changes
nethical6 Aug 3, 2025
0b7eaa5
fix streaks
nethical6 Aug 4, 2025
954a424
fix homescreen:
nethical6 Aug 4, 2025
efc2c8b
fix home screen list
nethical6 Aug 5, 2025
f8ad37d
add viewmodel to view all quests
nethical6 Aug 5, 2025
e3ea66d
add viewmodel to templates
nethical6 Aug 5, 2025
d944dff
add viewmodel to setup
nethical6 Aug 6, 2025
7515c8e
minor fixes
nethical6 Aug 6, 2025
c0a521f
add viewmodel viewdeepfocus:
nethical6 Aug 7, 2025
c3c943b
add ai snap viewModel
nethical6 Aug 7, 2025
45397d1
fix aisnap
nethical6 Aug 8, 2025
e3a9771
rename to app
nethical6 Aug 8, 2025
51e2976
minor fixes
nethical6 Aug 8, 2025
e3b7d43
minor fixes
nethical6 Aug 8, 2025
a2f4a41
fix streaks
nethical6 Aug 8, 2025
2a2b8c8
add view model stats
nethical6 Aug 9, 2025
4100e49
fix inventory execute item bug
nethical6 Aug 9, 2025
bc19b55
fix heatmap
nethical6 Aug 9, 2025
d6ba68c
fix edit quest
nethical6 Aug 9, 2025
4d92a28
fix logout
nethical6 Aug 9, 2025
89b9a91
quick cleanups:
nethical6 Aug 9, 2025
db96bce
minor fix
nethical6 Aug 9, 2025
68ab929
fix sync not working
nethical6 Aug 10, 2025
febc730
fix quest skipper
nethical6 Aug 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions ai/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
62 changes: 62 additions & 0 deletions ai/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
}

android {
namespace = "nethical.questphone.ai"
compileSdk = 36

defaultConfig {
minSdk = 26

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}

splits {
abi {
isEnable = true
reset()
include("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
isUniversalApk = true
}
}

sourceSets["main"].jniLibs.srcDirs("src/main/jniLibs")

externalNativeBuild {
cmake {
path = file("src/main/cpp/CMakeLists.txt")
}
}

ndkVersion = "29.0.13599879 rc2"
}

dependencies {

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}
File renamed without changes.
21 changes: 21 additions & 0 deletions ai/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package nethical.questphone.ai

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("nethical.questphone.ai.test", appContext.packageName)
}
}
4 changes: 4 additions & 0 deletions ai/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

</manifest>
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
sentencepiece::SentencePieceProcessor sp;

extern "C" JNIEXPORT jint JNICALL
Java_neth_iecal_questphone_utils_ai_SentencePieceProcessor_load(JNIEnv *env, jobject, jstring modelPath) {
Java_nethical_questphone_ai_SentencePieceProcessor_load(JNIEnv *env, jobject, jstring modelPath) {
const char *path = env->GetStringUTFChars(modelPath, nullptr);
auto status = sp.Load(path);
env->ReleaseStringUTFChars(modelPath, path);
return status.ok() ? 0 : -1;
}

extern "C" JNIEXPORT jintArray JNICALL
Java_neth_iecal_questphone_utils_ai_SentencePieceProcessor_encodeAsIds(JNIEnv *env, jobject, jstring input) {
Java_nethical_questphone_ai_SentencePieceProcessor_encodeAsIds(JNIEnv *env, jobject, jstring input) {
const char *text = env->GetStringUTFChars(input, nullptr);
std::vector<int> ids;
sp.Encode(text, &ids);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package neth.iecal.questphone.utils.ai
package nethical.questphone.ai

import android.content.Context
import android.graphics.Bitmap
Expand Down
Empty file.
17 changes: 17 additions & 0 deletions ai/src/test/java/nethical/questphone/ai/ExampleUnitTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package nethical.questphone.ai

import org.junit.Test

import org.junit.Assert.*

/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
40 changes: 11 additions & 29 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@

import java.io.FileInputStream
import java.util.Properties

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)

kotlin("plugin.serialization") version "2.0.20"
id("com.google.devtools.ksp")
id("com.google.dagger.hilt.android")

id("com.google.devtools.ksp") version "2.1.21-2.0.1"
}

val localProperties = Properties()
val localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localProperties.load(FileInputStream(localPropertiesFile))
}

android {
Expand All @@ -30,9 +23,6 @@ android {
versionName = "1.6"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

buildConfigField("String", "SUPABASE_URL", "\"${localProperties["SUPABASE_URL"]}\"")
buildConfigField("String", "SUPABASE_API_KEY", "\"${localProperties["SUPABASE_API_KEY"]}\"")
buildConfigField("String", "API_URL", "\"${localProperties["API_URL"]}\"")
}

flavorDimensions += "distribution"
Expand All @@ -50,14 +40,6 @@ android {
}

}
splits {
abi {
isEnable = true
reset()
include("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
isUniversalApk = true
}
}
buildTypes {
release {
isMinifyEnabled = false
Expand All @@ -77,16 +59,8 @@ android {
buildFeatures {
compose = true
buildConfig = true
}
sourceSets["main"].jniLibs.srcDirs("src/main/jniLibs")

externalNativeBuild {
cmake {
path = file("src/main/cpp/CMakeLists.txt")
}
}

ndkVersion = "29.0.13599879 rc2"
}

dependencies {
Expand All @@ -107,7 +81,7 @@ dependencies {
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)

implementation(libs.androidx.lifecycle.viewmodel.compose)

implementation (libs.kotlinx.serialization.json)

Expand Down Expand Up @@ -140,7 +114,15 @@ dependencies {
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)

implementation(libs.hilt.android)
implementation(libs.androidx.hilt.navigation.compose)
ksp(libs.hilt.android.compiler)

ksp(libs.androidx.room.compiler)
implementation (libs.androidx.ui.text.google.fonts)

implementation(project(":data"))
implementation(project(":core"))
implementation(project(":backend"))
implementation(project(":ai"))
}
32 changes: 16 additions & 16 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,26 +104,18 @@

<category android:name="android.intent.category.HEALTH_PERMISSIONS" />
</intent-filter>
</activity-alias> <!-- <service -->
<!-- android:name=".services.AccessibilityService" -->
<!-- android:exported="true" -->
<!-- android:label="App Blocker" -->
<!-- android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> -->
<!-- <intent-filter> -->
<!-- <action android:name="android.accessibilityservice.AccessibilityService" /> -->
<!-- </intent-filter> -->
<!-- <meta-data -->
<!-- android:name="android.accessibilityservice" -->
<!-- android:resource="@xml/app_blocker_service_config" /> -->
<!-- </service> -->
</activity-alias>



<service
android:name=".services.AppBlockerService"
android:name="neth.iecal.questphone.core.services.AppBlockerService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="dataSync" />

<service
android:name=".services.LockScreenService"
android:name="neth.iecal.questphone.core.services.LockScreenService"
android:exported="false"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
Expand All @@ -136,12 +128,12 @@
</service>

<receiver
android:name=".utils.reminder.ReminderBroadcastReceiver"
android:name=".core.utils.reminder.ReminderBroadcastReceiver"
android:enabled="true"
android:exported="false" />

<receiver
android:name=".utils.reminder.BootReceiver"
android:name=".core.utils.reminder.BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
Expand All @@ -150,6 +142,14 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver android:name=".core.utils.receiver.NewDayReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.DATE_CHANGED" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
</intent-filter>
</receiver>
</application>

</manifest>
Loading
Loading