Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{kt,kts}]
indent_size = 4
indent_style = space
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_name_count_to_use_star_import = 2147483647
ij_kotlin_name_count_to_use_star_import_for_members = 2147483647
ij_kotlin_packages_to_use_import_on_demand = unset
ktlint_code_style = android_studio
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_standard_function-expression-body = disabled
ktlint_standard_function-signature = disabled
ktlint_standard_trailing-comma-on-call-site = disabled
max_line_length = 100
10 changes: 3 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
/releases/
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
/.idea/deploymentTargetDropDown.xml
/.idea/*
!/.idea/vcs.xml
.DS_Store
/build
/captures
Expand All @@ -16,3 +11,4 @@
keystore.properties
*.keystore
local.properties
/lib/build
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/compiler.xml

This file was deleted.

10 changes: 0 additions & 10 deletions .idea/deploymentTargetSelector.xml

This file was deleted.

23 changes: 0 additions & 23 deletions .idea/gradle.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/kotlinc.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/misc.xml

This file was deleted.

6 changes: 5 additions & 1 deletion .idea/vcs.xml

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

95 changes: 84 additions & 11 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
import dev.detekt.gradle.Detekt
import java.io.FileInputStream
import java.util.Properties

plugins {
id("com.android.application")
alias(libs.plugins.android.application)
alias(libs.plugins.detekt)
alias(libs.plugins.hilt)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.ksp)
}

java {
Expand All @@ -11,6 +16,24 @@ java {
}
}

detekt {
basePath.set(rootDir)
buildUponDefaultConfig = true
config.setFrom(rootProject.file("config/detekt/detekt.yml"))
ignoredBuildTypes = listOf("release")
parallel = true
source.setFrom(files("../src"))
}

tasks.withType<Detekt>().configureEach {
setSource(files("../src"))
include("**/*.kt")
include("**/*.kts")
exclude("**/build/**")
exclude("**/com/android/messaging/datamodel/**")
exclude("**/com/android/messaging/debug/**")
}

android {
compileSdk = 36
buildToolsVersion = "36.1.0"
Expand Down Expand Up @@ -39,6 +62,7 @@ android {
buildFeatures {
buildConfig = true
resValues = true
compose = true
}

sourceSets.getByName("main") {
Expand Down Expand Up @@ -72,8 +96,12 @@ android {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),
"../proguard.flags", "../proguard-release.flags")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"../proguard.flags",
"../proguard-release.flags"
)

if (useKeystoreProperties) {
signingConfig = signingConfigs.getByName("release")
}
Expand All @@ -91,16 +119,61 @@ android {
}

dependencies {
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.preference:preference:1.2.1")
implementation("androidx.palette:palette:1.0.0")
implementation("androidx.recyclerview:recyclerview:1.4.0")
implementation("com.github.bumptech.glide:glide:5.0.4")
implementation("com.google.guava:guava:33.4.8-android")
implementation("com.googlecode.libphonenumber:libphonenumber:8.13.52")
implementation("com.google.code.findbugs:jsr305:3.0.2")
implementation(libs.androidx.appcompat)
implementation(libs.androidx.palette)
implementation(libs.androidx.preference)
implementation(libs.androidx.recyclerview)

implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.compose.foundation)
implementation(libs.androidx.compose.foundation.layout)
implementation(libs.androidx.compose.material.icons.extended)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.tooling.preview)

implementation(libs.androidx.lifecycle.livedata.ktx)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.lifecycle.viewmodel.ktx)

implementation(libs.coil.compose)
implementation(libs.glide)

implementation(libs.hilt.android)
ksp(libs.hilt.compiler)

implementation(libs.guava)
implementation(libs.jsr305)

implementation(libs.kotlinx.coroutines.android)

implementation(libs.libphonenumber)

implementation(project(":lib:platform_frameworks_opt_chips"))
implementation(project(":lib:platform_frameworks_opt_photoviewer"))
implementation(project(":lib:platform_frameworks_opt_vcard"))

debugImplementation(libs.androidx.compose.ui.test.manifest)
debugImplementation(libs.androidx.compose.ui.tooling)

testImplementation(libs.junit4)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.mockk)
testImplementation(libs.mockk.agent)
testImplementation(libs.mockk.android)
testImplementation(libs.robolectric)
testImplementation(libs.turbine)

androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)

androidTestImplementation(libs.hilt.android.testing)
kspAndroidTest(libs.hilt.compiler)

androidTestImplementation(libs.mockk)
androidTestImplementation(libs.mockk.agent)
androidTestImplementation(libs.mockk.android)
androidTestImplementation(libs.turbine)
}
41 changes: 38 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,45 @@
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.the
import org.jlleitschuh.gradle.ktlint.KtlintExtension

plugins {
id("com.android.application") version "9.0.0" apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.hilt) apply false
alias(libs.plugins.kotlin.compose) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.ktlint)
}

buildscript {
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
classpath("com.google.devtools.ksp:symbol-processing-gradle-plugin:2.3.5")
classpath(libs.hilt.gradle.plugin)
classpath(libs.kotlin.gradle.plugin)
classpath(libs.ksp.gradle.plugin)
}
}

val ktlintCliVersion: String = the<VersionCatalogsExtension>()
.named("libs")
.findVersion("ktlint")
.get()
.requiredVersion

configure<KtlintExtension> {
version.set(ktlintCliVersion)

filter {
exclude("**/build/**")
}
}

subprojects {
apply(plugin = "org.jlleitschuh.gradle.ktlint")

configure<KtlintExtension> {
version.set(ktlintCliVersion)

filter {
exclude("**/build/**")
}
}
}
23 changes: 23 additions & 0 deletions config/detekt/detekt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
config:
validation: true
warningsAsErrors: true

complexity:
LongParameterList:
ignoreDefaultParameters: true
TooManyFunctions:
ignoreAnnotatedFunctions:
- Preview

naming:
FunctionNaming:
ignoreAnnotated:
- Composable

style:
MagicNumber:
ignoreCompanionObjectPropertyDeclaration: true
ignorePropertyDeclaration: true
UnusedPrivateFunction:
ignoreAnnotated:
- Preview
Loading