Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
f54d051
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
24a3e38
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
ce4a8ab
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
0d527ed
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
a2fb12c
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
e8f437d
[REFACTOR] Migrate to Multi-module settings
doyoonkim3312 May 14, 2025
047c2a4
[REFACTOR] Move resources to Feature Module
doyoonkim3312 May 28, 2025
f44d65f
[REFACTOR] Move resources to Feature Module
doyoonkim3312 May 28, 2025
fe15734
[REFACTOR] Configure build gradles on each module
doyoonkim3312 May 28, 2025
87e2423
[REFACTOR] Move existing files to corresponding module
doyoonkim3312 May 28, 2025
f2bbd20
[FEAT] Migrate to Dagger 2 for DI
doyoonkim3312 May 28, 2025
38eb9c1
[REFACT] Move files to corresponding module.
doyoonkim3312 May 28, 2025
f5bc0d6
[REFACT] Move resources to Feature module
doyoonkim3312 May 28, 2025
3a6bcd8
[CHORE] Add missing file to version control
doyoonkim3312 May 28, 2025
1f06429
[TEST] UnitTest
doyoonkim3312 May 28, 2025
9818d9e
Merge branch 'development' into temp-branch
doyoonkim3312 Jun 2, 2025
c62fd41
[TEMP] Temporary Branch for Multi-Module Migration
doyoonkim3312 Jun 2, 2025
65d5d68
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 3, 2025
fe53813
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 4, 2025
076a910
[CHORE] Version Information Update
doyoonkim3312 Jun 4, 2025
4d3d218
Merge branch 'development' into temp-branch
doyoonkim3312 Jun 4, 2025
09dae93
[REFACTOR] Migration to Multi-Module Structure
doyoonkim3312 Jun 4, 2025
494a9f5
[REFACTOR] Migration to Multi-Module Structure
doyoonkim3312 Jun 4, 2025
51aeb53
[REFACTOR] Migration to Multi-Module Structure
doyoonkim3312 Jun 5, 2025
21c867f
[REFACTOR] Migration to Multi-Module Structure
doyoonkim3312 Jun 5, 2025
daa73d9
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
5700aa8
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
dd44185
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
70bc3c4
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
00402a4
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
e1bccb3
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
7b75ed0
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
e8183fa
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
c0312ca
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
b3f61c2
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
4a50ea6
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
f89703e
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
319a433
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
c6658a2
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
f6d93b1
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
fbb8c15
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
f377db0
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
8c5a1e3
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
e4a0b4e
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
1d67010
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
3434e62
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
a6d41ac
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
65da920
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
9e82d81
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
ba3e925
[REFACTOR] Multi-Module Migration
doyoonkim3312 Jun 15, 2025
10e8371
[REFACTOR] Fix UI Issue
doyoonkim3312 Jun 16, 2025
20cd680
[FEAT] Image Processing for Push Notification
doyoonkim3312 Jun 17, 2025
1ae9696
[REFACTOR] Image on Push Notification
doyoonkim3312 Jun 17, 2025
e9f96d2
[REFACTOR] Image on Push Notification
doyoonkim3312 Jun 17, 2025
fc60a9d
[REFACTOR] Image on Push Notification
doyoonkim3312 Jun 17, 2025
343acc8
[REFACTOR] RoundedCorner Shaped BottomBar
doyoonkim3312 Jun 17, 2025
cde077e
[REFACTOR] Design/UI Issue Resolve
doyoonkim3312 Jun 17, 2025
e970900
[REFACTOR] Navigation logic modification
doyoonkim3312 Jun 17, 2025
f7d71d7
Merge branch 'release' into temp-branch
doyoonkim3312 Jun 18, 2025
88636fd
[CHORE] Clear Out Unnecessary Code Snippets
doyoonkim3312 Jun 18, 2025
25d9c7d
[CHORE] Remove Unnecessary UnitTest
doyoonkim3312 Jun 18, 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
51 changes: 24 additions & 27 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,23 @@ plugins {

// Dagger-Hilt for Dependency Injection
id("kotlin-kapt")
id("com.google.dagger.hilt.android")

// Keep this plugin in app module, since app module handles all related app information
// such as App ID , etc. for using firebase services.
alias(libs.plugins.google.gms.google.services)

alias(libs.plugins.kotlinSerialization)

// Required from Kotlin 2.0.0 (Every module using Compose)
alias(libs.plugins.compose.compiler)

// KSP Plugin for Room Database
// id("com.google.devtools.ksp")
}

android {
namespace = "com.doyoonkim.knutice"
compileSdk = 34
compileSdk = 35

val properties = Properties().apply {
load(FileInputStream("${rootDir}/local.properties"))
Expand All @@ -29,8 +34,8 @@ android {
applicationId = "com.doyoonkim.knutice"
minSdk = 31
targetSdk = 34
versionCode = 16
versionName = "1.4.1"
versionCode = 17
versionName = "1.4.2"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down Expand Up @@ -77,6 +82,14 @@ android {
}

dependencies {
implementation(projects.core.model)
implementation(projects.core.domain)
implementation(projects.core.data)
implementation(projects.core.network)
implementation(projects.core.notification)
implementation(projects.feature.main)
implementation(projects.feature.bookmark)
implementation(projects.common)

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
Expand All @@ -100,39 +113,23 @@ dependencies {
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)

// Dagger
implementation(libs.dagger)
implementation(libs.dagger.android)
implementation(libs.dagger.android.support)
kapt(libs.dagger.compiler)
kapt(libs.dagger.android.processor)

implementation(libs.kotlin.serialization)

// Coroutine for Android
implementation(libs.kotlinx.coroutines.android)
// Navigation for Compose
implementation(libs.androidx.navigation.compose)
// Coil
implementation(libs.coil.compose)

// Dagger Hilt for Dependency Injection
implementation(libs.hilt.android)
implementation(libs.androidx.hilt.navigation.compose) // With Compose Navigation
kapt(libs.hilt.android.compiler)

// Retrofit 2
implementation(libs.retrofit)
implementation(libs.converter.gson)

// Jsoup HTML Parser Library
implementation(libs.jsoup)

// DataStore
implementation (libs.androidx.datastore.preferences)

// Room Database
implementation(libs.androidx.room.runtime)
kapt(libs.androidx.room.compiler)
// Room Database - Kotlin Extensions and Coroutine Support
implementation(libs.androidx.room.ktx)

// Translation
implementation(libs.translate)

}

// Allow references to generated code
Expand Down
18 changes: 14 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,33 @@
android:value="@string/default_notification_channel_id"/>

<activity
android:name="com.doyoonkim.knutice.presentation.MainActivity"
android:name="com.doyoonkim.knutice.MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.KNUTICE">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<!-- Intent filter for handling Deeplink -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:scheme="knutice"
android:host="service" />
</intent-filter>
</activity>
<service android:name="com.doyoonkim.knutice.fcm.PushNotificationHandler"
<service android:name="com.doyoonkim.notification.fcm.PushNotificationService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<receiver android:name=".alarm.AlarmReceiver" />
<receiver android:name="com.doyoonkim.notification.local.AlarmReceiver" />
</application>

</manifest>
53 changes: 53 additions & 0 deletions app/src/main/java/com/doyoonkim/knutice/AppNavHost.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.doyoonkim.knutice

import android.net.Uri
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import com.doyoonkim.bookmark.bookmarkServiceGraph
import com.doyoonkim.common.navigation.NavRoutes
import com.doyoonkim.main.mainServiceNavGraph

@Composable
fun AppNavHost(
modifier: Modifier = Modifier,
contentPadding: PaddingValues,
navController: NavHostController,
viewModelFactory: ViewModelProvider.Factory
) {
NavHost(
modifier = modifier.padding(
PaddingValues(
top = contentPadding.calculateTopPadding(),
// bottom = contentPadding.calculateBottomPadding()
)
),
navController = navController,
startDestination = NavRoutes.Home.route
) {
mainServiceNavGraph(
navController = navController,
viewModelFactory = viewModelFactory,
contentPadding = contentPadding,
onNoticeDetailRequested = { target ->
navController.navigate("noticeDetail/${target.nttId}/${Uri.encode(target.contentUrl)}/${target.isFabVisible}")
},
onBookmarkServiceRequested = {
navController.navigate("bookmark/${it.noticeId}/${it.noticeTitle}/${it.noticeInfo}")
}
)

bookmarkServiceGraph(
navController = navController,
viewModelFactory = viewModelFactory,
contentPadding = contentPadding,
onNoticeDetailRequested = { target ->
navController.navigate("noticeDetail/${target.nttId}/${Uri.encode(target.contentUrl)}/${target.isFabVisible}")
}
)
}
}
Loading
Loading