Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

151 feature print #169

Merged
merged 2 commits into from
Aug 2, 2023
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 0 additions & 39 deletions .github/workflows/opencommit.yml

This file was deleted.

300 changes: 115 additions & 185 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import com.niyaj.samples.apps.popos.PoposBuildType

@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.hilt)
id("popos.android.application")
id("popos.android.application.flavors")
id("popos.android.application.jacoco")
id("popos.android.hilt")
id("jacoco")
alias(libs.plugins.appsweep)
alias(libs.plugins.androidx.baselineprofile)
alias(libs.plugins.ksp)
id(libs.plugins.kotlin.kapt.get().pluginId)
}

android {
Expand All @@ -19,226 +21,154 @@ android {
targetSdk = libs.versions.targetSdk.get().toInt()
versionCode = libs.versions.versionCode.get().toInt()
versionName = libs.versions.versionName.get()
testInstrumentationRunner = "com.niyaj.popos.HiltTestRunner"
testInstrumentationRunner = "com.niyaj.testing.PoposTestRunner"
manifestPlaceholders.putAll(mapOf("sentryEnvironment" to "production"))
vectorDrawables {
useSupportLibrary = true
}

ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}
}



buildTypes {
release {
val debug by getting {
applicationIdSuffix = PoposBuildType.DEBUG.applicationIdSuffix
}
val release by getting {
isMinifyEnabled = true
applicationIdSuffix = PoposBuildType.RELEASE.applicationIdSuffix
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")

// To publish on the Play store a private signing key is required, but to allow anyone
// who clones the code to sign and run the release variant, use the debug signing key.
// TODO: Abstract the signing configuration to a separate file to avoid hardcoding this.
signingConfig = signingConfigs.getByName("debug")
}
val benchmark by creating {
// Enable all the optimizations from release build through initWith(release).
initWith(release)
matchingFallbacks.add("release")
// Debug key signing is available to everyone.
signingConfig = signingConfigs.getByName("debug")
// Only use benchmark proguard rules
proguardFiles("benchmark-rules.pro")
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
applicationIdSuffix = PoposBuildType.BENCHMARK.applicationIdSuffix
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

kotlinOptions {
jvmTarget = "17"
jvmTarget = "11"
}

buildFeatures {
compose = true
buildConfig = true
}

composeOptions {
kotlinCompilerExtensionVersion = "1.4.4"
kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get()
}

packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "META-INF/LICENSE.md"
excludes += "META-INF/LICENSE-notice.md"
excludes += "DebugProbesKt.bin"
excludes.add("/META-INF/{AL2.0,LGPL2.1}")
excludes.add("META-INF/LICENSE.md")
excludes.add("META-INF/LICENSE-notice.md")
excludes.add("DebugProbesKt.bin")
}
}

sourceSets {
getByName("main") {
java.srcDir("src/main/kotlin")
}
getByName("test") {
java.srcDir("src/test/kotlin")
}
getByName("androidTest") {
java.srcDir("src/androidTest/kotlin")
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}

hilt {
enableAggregatingTask = true
appsweep {
apiKey = "gs_appsweep_9LOhFix_p6bow4wYcoXwSfLLe6U7ZPDT5HDoGHxw"
}
}

dependencies {
implementation(libs.core.ktx)

// implementation(platform(libs.compose.bom))
implementation(libs.ui)
implementation(libs.ui.graphics)
// implementation(libs.material)
implementation(libs.material3)
implementation(libs.material.icons)
implementation(libs.ui.tooling.preview)
implementation(libs.material3.window.size)
implementation(libs.activity.compose)

//Startup & Splash screen
implementation(libs.startup)
implementation(libs.splashscreen)

implementation(libs.runtime.livedata)

// ViewModel
implementation(libs.viewmodel.ktx)
implementation(libs.viewmodel.compose)
implementation(libs.runtime.compose)
implementation(libs.runtime.ktx)
// Saved state module for ViewModel
implementation(libs.viewmodel.savedstate)
// Annotation processor
implementation(libs.common.java8)

// Compose dependencies
implementation(libs.navigation.compose)

// Kotlin + coroutines
implementation(libs.work.runtime.ktx)
androidTestImplementation(libs.work.testing)

//Accompanist
// implementation(libs.flowlayout)
implementation(libs.systemuicontroller)
implementation(libs.permissions)
// implementation(libs.swiperefresh)
// implementation(libs.placeholder.material)
// implementation(libs.pager)
// implementation(libs.pager.indicators)

// Coroutines
implementation(libs.coroutines.core)
implementation(libs.coroutines.android)

// For testing
testImplementation(libs.coroutines.test)
androidTestImplementation(libs.coroutines.test)

//Hilt Work
implementation(libs.hilt.work)
kapt(libs.hilt.compiler)

implementation(libs.hilt.navigation.compose)
kapt(libs.hilt.android)

// Dagger & Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.dagger.compiler)

// For testing
androidTestImplementation(libs.hilt.android.testing)
kaptAndroidTest(libs.hilt.dagger.compiler)

testImplementation(libs.hilt.android.testing)
kaptTest(libs.hilt.dagger.compiler)

// Timber
implementation(libs.timber)

//RevealSwipe
implementation(libs.revealswipe)

//Pos.printer
implementation(libs.pos.printer)

//Realm
// implementation(libs.realm.library.base)

// Room
implementation(libs.room.runtime)
ksp(libs.room.complier)

// To use Kotlin annotation processing tool (kapt)
ksp(libs.room.complier)

// optional - Kotlin Extensions and Coroutines support for Room
implementation(libs.room.ktx)

// optional - Test helpers
testImplementation(libs.room.testing)

// optional - Paging 3 Integration
implementation(libs.room.paging)

// Paging
implementation(libs.paging.runtime)
// optional - Jetpack Compose integration
implementation(libs.paging.compose)

// debugImplementation because LeakCanary should only run in debug builds.
debugImplementation(libs.leakcanary)
implementation(project(":feature:account"))
implementation(project(":feature:addonitem"))
implementation(project(":feature:address"))
implementation(project(":feature:cart"))
implementation(project(":feature:cart_selected"))
implementation(project(":feature:cartorder"))
implementation(project(":feature:category"))
implementation(project(":feature:charges"))
implementation(project(":feature:customer"))
implementation(project(":feature:employee"))
implementation(project(":feature:employee_payment"))
implementation(project(":feature:employee_absent"))
implementation(project(":feature:expenses"))
implementation(project(":feature:home"))
implementation(project(":feature:order"))
implementation(project(":feature:print_order"))
implementation(project(":feature:product"))
implementation(project(":feature:profile"))
implementation(project(":feature:settings"))
implementation(project(":feature:printer_info"))


implementation(project(":core:common"))
implementation(project(":core:ui"))
implementation(project(":core:designsystem"))
implementation(project(":core:data"))
implementation(project(":core:model"))

androidTestImplementation(project(":core:testing"))
androidTestImplementation(libs.androidx.navigation.testing)
androidTestImplementation(libs.accompanist.testharness)
androidTestImplementation(kotlin("test"))
debugImplementation(libs.androidx.compose.ui.testManifest)
// debugImplementation(project(":ui-test-hilt-manifest"))

implementation(libs.accompanist.systemuicontroller)
implementation(libs.accompanist.permissions)

implementation(libs.androidx.activity.compose)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.core.startup)
implementation(libs.androidx.compose.runtime)
implementation(libs.androidx.lifecycle.runtimeCompose)
implementation(libs.androidx.compose.material3.windowSizeClass)
implementation(libs.androidx.lifecycle.livedata.ktx)
implementation(libs.androidx.compose.runtime.tracing)
implementation(libs.androidx.hilt.navigation.compose)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.window.manager)
implementation(libs.androidx.profileinstaller)
implementation(libs.kotlinx.coroutines.guava)

//RaamCosta Library
implementation(libs.raamcosta.core)
implementation(libs.raamcosta.animation.core)
ksp(libs.raamcosta.ksp)

//Moshi
ksp(libs.moshi.kotlin.codegen)
implementation(libs.moshi)

//ProfileInstaller
implementation(libs.profileinstaller)

// Local unit tests
testImplementation(libs.junit)
androidTestImplementation(libs.junit)

androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.espresso.core)
testImplementation(libs.androidx.test.core)
androidTestImplementation(libs.androidx.test.core.ktx)
androidTestImplementation(libs.androidx.test.runner)

testImplementation(libs.androidx.arch.core.testing)
androidTestImplementation(libs.androidx.arch.core.testing)

androidTestImplementation(libs.ui.test.junit)
debugImplementation(libs.ui.tooling)
debugImplementation(libs.ui.test.manifest)

// Truth
testImplementation(libs.truth)
androidTestImplementation(libs.truth)
// Timber
implementation(libs.timber)

//Mockk
androidTestImplementation(libs.mockk.android)
testImplementation(libs.mockk)
//Google Play Play Integrity API
implementation(libs.play.integrity)

//ACRA Logger
implementation(libs.acra.mail)
implementation(libs.acra.toast)
// Google Play In-App Updates API
implementation(libs.play.app.update)
implementation(libs.play.app.update.ktx)

//Sentry
implementation(libs.sentry.android)
implementation(libs.sentry.compose.android)
// zxing QR code library
implementation(libs.zxing.core)

// Vanpara DatePicker
implementation(libs.dialog.datetime)
implementation(libs.navigation.bar)
// Play GMS Scanner library
implementation(libs.play.gms.scanner)

//Baseline Profile
// "baselineProfile"(project(mapOf("path" to ":benchmark")))
// Play Service Base
implementation(libs.play.service)
}

kapt {
Expand Down
Loading