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

[AN/USER] feat: 홈 화면 인기 축제 목록 구현 및 Presentation 모듈 분리(#656) #664

Merged
merged 29 commits into from
Jan 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
72d7c8b
chore: 모듈명 변경 presentation-legacy, data-legacy
SeongHoonC Jan 18, 2024
0113956
chore: 새로운 presentation 모듈 생성
SeongHoonC Jan 18, 2024
9de5b02
feat: 바텀 네비게이션 디자인 구현
SeongHoonC Jan 18, 2024
2f37733
feat: 시스템 상태 바, 네비게이션 바, 디폴드 배경 색상 하얀색으로 통일
SeongHoonC Jan 18, 2024
8d8bab7
feat: 바텀 프레그먼드 변경 로직 구현
SeongHoonC Jan 18, 2024
4cc12c2
feat: gradle ktlint 추가
SeongHoonC Jan 18, 2024
41fe294
feat: bindingAdapter 작성
SeongHoonC Jan 19, 2024
2ee1d10
feat: textStyle 및 textColor 추가
SeongHoonC Jan 19, 2024
555ecf9
feat: 인기 축제 uiState 정의
SeongHoonC Jan 19, 2024
6fadd72
feat: 인기 축제 foreground ListAdapter 정의
SeongHoonC Jan 19, 2024
4216fac
feat: 인기 축제 background ListAdapter 정의
SeongHoonC Jan 19, 2024
4e0736f
feat: 커스텀 viewpager festival adapter 정의
SeongHoonC Jan 19, 2024
0cce5ca
feat: 축제 목록 화면 Fragment 정의
SeongHoonC Jan 19, 2024
3c672fa
feat: 홈 화면 프레그먼트간 이동 액티비티 정의
SeongHoonC Jan 19, 2024
3f603c6
feat: uiState 이름 변경
SeongHoonC Jan 19, 2024
eb8ab9d
feat: FestivalList viewModel 생성 및 상태 정의
SeongHoonC Jan 19, 2024
eefd91f
feat: 축제 목록 앱바 정의
SeongHoonC Jan 20, 2024
2c9e681
feat: 홈화면 세로 고정
SeongHoonC Jan 20, 2024
a1cc7de
refactor: ktlint check
SeongHoonC Jan 20, 2024
71ef3c4
refactor: dimens 제거 및 off screen limit 3으로 변경
SeongHoonC Jan 20, 2024
7883011
refactor: dimens 파일 제거
SeongHoonC Jan 20, 2024
6af1e92
fix: dp to px 변환으로 원한는대로 비율 조정
SeongHoonC Jan 20, 2024
8e790fb
chore: 사용하지 않는 테스트 제거
SeongHoonC Jan 20, 2024
859bd37
refactor: data 위치 변경
SeongHoonC Jan 20, 2024
004003f
chore: 모듈 이름 순서 정리
SeongHoonC Jan 20, 2024
3b17938
refactor: 이름 카멜 케이스로 변경
SeongHoonC Jan 20, 2024
de1a6db
feat: 이미지 사이즈가 디바이스 가로 길이에 따라 변경되도록 대응
SeongHoonC Jan 21, 2024
61cfede
feat: 가로 마진을 24dp 의 절반 12 만큼 제한
SeongHoonC Jan 21, 2024
0ac0251
feat: 가로 마진 제거
SeongHoonC Jan 21, 2024
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
3 changes: 2 additions & 1 deletion android/festago/.idea/gradle.xml

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

2 changes: 1 addition & 1 deletion android/festago/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ kapt {
}

dependencies {
implementation(project(":data"))
implementation(project(":data-legacy"))
implementation(project(":presentation"))

// hilt
Expand Down
4 changes: 2 additions & 2 deletions android/festago/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_festago_logo"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_festago_logo_round"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Festago"
android:usesCleartextTraffic="true"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
package com.festago.festago

import android.app.Application
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import com.festago.festago.presentation.R
import com.festago.festago.presentation.fcm.FcmMessageType
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class FestagoApplication : Application() {

override fun onCreate() {
super.onCreate()
initNotificationChannel()
// initNotificationChannel()
}

private fun initNotificationChannel() {
val channel = NotificationChannel(
FcmMessageType.ENTRY_ALERT.channelId,
getString(R.string.entry_alert_channel_name),
NotificationManager.IMPORTANCE_DEFAULT,
)
val notificationManager =
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)
}
// private fun initNotificationChannel() {
// val channel = NotificationChannel(
// FcmMessageType.ENTRY_ALERT.channelId,
// getString(R.string.entry_alert_channel_name),
// NotificationManager.IMPORTANCE_DEFAULT,
// )
// val notificationManager =
// getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// notificationManager.createNotificationChannel(channel)
// }
}
4 changes: 4 additions & 0 deletions android/festago/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ plugins {

id("org.jetbrains.kotlin.plugin.serialization") version "1.8.10" apply false
}

allprojects {
apply(plugin = "org.jlleitschuh.gradle.ktlint")
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ class ReservationTicketRetrofitServiceTest {
remainAmount = 212,
),

),
),
),
ReservationStageResponse(
id = 2,
Expand Down
1 change: 1 addition & 0 deletions android/festago/presentation-legacy/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
134 changes: 134 additions & 0 deletions android/festago/presentation-legacy/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
id("kotlin-parcelize")
id("kotlin-kapt")
id("org.jlleitschuh.gradle.ktlint")
id("com.google.dagger.hilt.android")
}

android {
namespace = "com.festago.festago.presentation"
compileSdk = 34

defaultConfig {
minSdk = 28

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getSecretKey("kakao_native_app_key"))
resValue("string", "kakao_redirection_scheme", getSecretKey("kakao_redirection_scheme"))
}

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

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}

dataBinding {
enable = true
}
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().all {
kotlinOptions {
jvmTarget = "17"
}
}

dependencies {
implementation(project(":common"))
implementation(project(":domain"))

// android
implementation("androidx.core:core-ktx:1.10.1")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.9.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")

// hilt
implementation("com.google.dagger:hilt-android:2.44")
kapt("com.google.dagger:hilt-android-compiler:2.44")
// hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" }
implementation("com.google.dagger:hilt-android-testing:2.44")

// recyclerview
implementation("androidx.recyclerview:recyclerview:1.3.1-rc01")

// lifecycle
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")

// glide
implementation("com.github.bumptech.glide:glide:4.15.1")

// retrofit
implementation("com.squareup.retrofit2:retrofit:2.9.0")

// junit4
testImplementation("junit:junit:4.13.2")
testImplementation("androidx.test.ext:junit:1.1.5")
testImplementation("androidx.test:runner:1.5.2")

// assertJ
testImplementation("org.assertj:assertj-core:3.22.0")

// android-test
testImplementation("androidx.arch.core:core-testing:2.2.0")

// mock
testImplementation("io.mockk:mockk-android:1.13.5")

// espresso
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation("androidx.test.ext:junit:1.1.5")

// coroutine
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4")

// viewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
implementation("androidx.activity:activity-ktx:1.7.2")
implementation("androidx.fragment:fragment-ktx:1.6.0")

// zxing
implementation("com.journeyapps:zxing-android-embedded:4.3.0")

// firebase
implementation("com.google.firebase:firebase-messaging-ktx:23.4.0")

// swiperefreshlayout
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")

// kakao login
implementation("com.kakao.sdk:v2-user:2.12.0")

// turbine
testImplementation("app.cash.turbine:turbine:1.0.0")

// inApp Update
implementation("com.google.android.play:app-update-ktx:2.1.0")

// splash
implementation("androidx.core:core-splashscreen:1.1.0-alpha02")
}

fun getSecretKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
21 changes: 21 additions & 0 deletions android/festago/presentation-legacy/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
64 changes: 64 additions & 0 deletions android/festago/presentation-legacy/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application>
<activity
android:name=".ui.splash.SplashActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.selectschool.SelectSchoolActivity"
android:exported="false" />
<activity
android:name=".ui.studentverification.StudentVerificationActivity"
android:exported="false" />
<activity
android:name=".ui.signin.SignInActivity"
android:exported="false" />
<activity
android:name=".ui.reservationcomplete.ReservationCompleteActivity"
android:exported="false" />
<activity
android:name=".ui.home.HomeActivity"
android:exported="false" />
<activity
android:name=".ui.ticketreserve.TicketReserveActivity"
android:exported="false" />
<activity
android:name=".ui.ticketentry.TicketEntryActivity"
android:exported="false" />
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true"
android:launchMode="singleTask">
<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:host="oauth"
android:scheme="@string/kakao_redirection_scheme" />
</intent-filter>
</activity>
<activity
android:name=".ui.tickethistory.TicketHistoryActivity"
android:exported="false" />

<service
android:name=".fcm.TicketEntryService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>

</manifest>
Loading