Skip to content

Commit

Permalink
Migrate from groovy to kts #182
Browse files Browse the repository at this point in the history
Signed-off-by: Sanju S <spikeysanju98@gmail.com>
  • Loading branch information
Spikeysanju committed Nov 4, 2021
1 parent 48c0881 commit ec22e51
Show file tree
Hide file tree
Showing 11 changed files with 245 additions and 177 deletions.
17 changes: 17 additions & 0 deletions .idea/deploymentTargetDropDown.xml

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

135 changes: 0 additions & 135 deletions app/build.gradle

This file was deleted.

140 changes: 140 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
/*
*
* *
* * * MIT License
* * *
* * * Copyright (c) 2020 Spikey Sanju
* * *
* * * Permission is hereby granted, free of charge, to any person obtaining a copy
* * * of this software and associated documentation files (the "Software"), to deal
* * * in the Software without restriction, including without limitation the rights
* * * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* * * copies of the Software, and to permit persons to whom the Software is
* * * furnished to do so, subject to the following conditions:
* * *
* * * The above copyright notice and this permission notice shall be included in all
* * * copies or substantial portions of the Software.
* * *
* * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* * * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* * * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* * * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* * * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* * * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* * * SOFTWARE.
* *
*
*
*/

plugins {
id("com.android.application")
id("kotlin-android")
id("kotlin-kapt")
id("androidx.navigation.safeargs.kotlin")
id("dagger.hilt.android.plugin")
}

android {
compileSdk = 31
buildToolsVersion = "30.0.3"

defaultConfig {
applicationId = "thecodemonks.org.nottzapp"
minSdk = 21
targetSdk = 31
versionCode = 1
versionName = "1.4.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

lint {
checkReleaseBuilds = false
abortOnError = true
}

buildFeatures {
viewBinding = true
}

buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
}
}

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

kotlinOptions {
jvmTarget = "11"
}
}

dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.5.31")
implementation("androidx.core:core-ktx:1.7.0")
implementation("androidx.appcompat:appcompat:1.3.1")
implementation("com.google.android.material:material:1.4.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.1")
implementation("androidx.legacy:legacy-support-v4:1.0.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")

// Architectural Components
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1")

// Room
implementation("androidx.room:room-runtime:2.3.0")
kapt("androidx.room:room-compiler:2.3.0")
kapt("org.xerial:sqlite-jdbc:3.36.0.3")

// Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:2.3.0")

// Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2-native-mt")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.5.2-native-mt")

// Coroutine Lifecycle Scopes
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.3.1")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.3.1")

// activity & fragment ktx
implementation("androidx.fragment:fragment-ktx:1.3.6")
implementation("androidx.activity:activity-ktx:1.4.0-rc01")
implementation("androidx.appcompat:appcompat:1.4.0-beta01")

// Navigation Components
implementation("androidx.navigation:navigation-fragment-ktx:2.3.5")
implementation("androidx.navigation:navigation-ui-ktx:2.3.5")

// material design
implementation("com.google.android.material:material:1.4.0")
implementation("androidx.recyclerview:recyclerview:1.2.1")

// Preference DataStore
implementation("androidx.datastore:datastore-preferences:1.0.0")

// Lottie Animation Library
implementation("com.airbnb.android:lottie:4.2.0")

// Hilt
implementation("com.google.dagger:hilt-android:2.39.1")
kapt("com.google.dagger:hilt-android-compiler:2.39.1")
kapt("androidx.hilt:hilt-compiler:1.0.0")
}
4 changes: 2 additions & 2 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand All @@ -18,4 +18,4 @@

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#-renamesourcefileattribute SourceFile
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,20 @@ import androidx.navigation.ui.setupActionBarWithNavController
import dagger.hilt.android.AndroidEntryPoint
import thecodemonks.org.nottzapp.R
import thecodemonks.org.nottzapp.databinding.ActivityMainBinding
import thecodemonks.org.nottzapp.db.NotesDatabase
import thecodemonks.org.nottzapp.repo.NotesRepo
import thecodemonks.org.nottzapp.ui.notes.NotesViewModel
import thecodemonks.org.nottzapp.utils.factory.viewModelFactory
import javax.inject.Inject

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private lateinit var navHostFragment: NavHostFragment
private lateinit var appBarConfiguration: AppBarConfiguration
private val newsRepository by lazy { NotesRepo(NotesDatabase(this)) }

@Inject
lateinit var repo: NotesRepo
private val viewModel: NotesViewModel by viewModels {
viewModelFactory { NotesViewModel(this.application, newsRepository) }
viewModelFactory { NotesViewModel(this.application, repo) }
}

override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
21 changes: 0 additions & 21 deletions app/src/main/java/thecodemonks/org/nottzapp/db/NotesDatabase.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@

package thecodemonks.org.nottzapp.db

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import thecodemonks.org.nottzapp.model.Notes

Expand All @@ -43,23 +41,4 @@ import thecodemonks.org.nottzapp.model.Notes

abstract class NotesDatabase : RoomDatabase() {
abstract fun getNotesDao(): NotesDao

companion object {
@Volatile
private var instance: NotesDatabase? = null
private val LOCK = Any()

// Check for DB instance if not null then get or insert or else create new DB Instance
operator fun invoke(context: Context) = instance ?: synchronized(LOCK) {

instance ?: createDatabase(context).also { instance = it }
}

// create db instance
private fun createDatabase(context: Context) = Room.databaseBuilder(
context.applicationContext,
NotesDatabase::class.java,
"notes_db.db"
).build()
}
}
Loading

0 comments on commit ec22e51

Please sign in to comment.