Skip to content

Commit

Permalink
Merge branch 'develop' into feature/video-upload-api
Browse files Browse the repository at this point in the history
  • Loading branch information
lsakee authored Oct 26, 2024
2 parents b5132b1 + 00b03ec commit 2efa0a9
Show file tree
Hide file tree
Showing 77 changed files with 1,255 additions and 460 deletions.
2 changes: 2 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,15 @@ dependencies {
implementation(projects.data.video)
implementation(projects.data.user)
implementation(projects.data.keyword)
implementation(projects.data.exhibition)
implementation(projects.local.auth)
implementation(projects.local.user)
implementation(projects.local.video)
implementation(projects.remote.auth)
implementation(projects.remote.user)
implementation(projects.remote.video)
implementation(projects.remote.keyword)
implementation(projects.remote.exhibition)
implementation(projects.feature.navigator)
implementation(libs.kakao.login)
implementation(libs.hilt.androidx.common)
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<application
android:name=".RecordyApplication"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ fun RecordyDialog(
text = negativeButtonLabel,
shape = RoundedCornerShape(8.dp),
enabled = true,
backgroundColor = RecordyTheme.colors.gray06,
textColor = RecordyTheme.colors.gray01,
backgroundColor = RecordyTheme.colors.gray07,
textColor = RecordyTheme.colors.gray03,
textStyle = RecordyTheme.typography.button2,
onClick = { onDismissRequest() },
modifier = Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ fun RecordyVideoText(
onNicknameClick: () -> Unit = {},
onBookmarkClick: () -> Unit = {},
onDeleteClick: () -> Unit = {},
onMoreClick: () -> Unit = {},
) {
var boxSize by remember { mutableStateOf(IntSize.Zero) }
var expanded by remember { mutableStateOf(false) }
Expand Down Expand Up @@ -128,6 +129,14 @@ fun RecordyVideoText(
style = RecordyTheme.typography.body2M,
color = RecordyTheme.colors.gray01,
)
Spacer(modifier = Modifier.height(8.dp))
Icon(
modifier = Modifier
.customClickable { onMoreClick() },
painter = painterResource(id = R.drawable.ic_seemore),
contentDescription = "see more",
tint = RecordyTheme.colors.gray01,
)
Spacer(modifier = Modifier.height(if (isMyVideo) 16.dp else 20.dp))
if (isMyVideo) {
Icon(
Expand Down
15 changes: 15 additions & 0 deletions core/designsystem/src/main/res/drawable/ic_seemore.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M12,20m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:fillColor="#ffffff"/>
<path
android:pathData="M20,20m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:fillColor="#ffffff"/>
<path
android:pathData="M28,20m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:fillColor="#ffffff"/>
</vector>
30 changes: 30 additions & 0 deletions core/designsystem/src/main/res/drawable/ic_viskit_logo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="76dp"
android:height="23dp"
android:viewportWidth="76"
android:viewportHeight="23">
<path
android:pathData="M31.219,10.831L37.033,8.712L35.843,4.858L24.645,8.903V14.509C24.645,14.509 31.46,14.272 34.441,15.943C34.862,16.181 34.854,16.823 34.422,17.039C33.265,17.621 30.596,18.473 24.875,18.473V22.591C24.875,22.591 39.111,22.973 39.111,16.617C39.111,16.617 40.003,12.332 31.216,10.834L31.219,10.831Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M11.07,5.942C11.776,12.355 11.138,14.983 10.654,16.542C10.517,16.976 10.025,17.155 9.796,16.765C7.682,13.147 6.766,5.245 6.766,5.245L0.432,7.428L0,11.719L2.207,10.956C2.398,10.889 2.603,11.002 2.661,11.204L3.448,13.917C6.295,24.586 10.889,22.903 10.889,22.903C17.885,22.044 15.908,4.43 15.908,4.43L11.07,5.945V5.942Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M18.073,22.594H22.624V7.252L18.073,8.631V22.594Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M20.348,0C18.844,0 17.627,1.29 17.627,2.877C17.627,4.464 18.847,5.754 20.348,5.754C21.85,5.754 23.069,4.464 23.069,2.877C23.069,1.29 21.853,0 20.348,0Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M55.702,22.594H60.253V7.252L55.702,8.631V22.594Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M47.113,13.373L47.674,13.171L53.898,10.944L52.708,7.09L44.189,10.137V0.893H40.137V22.594H44.189V18.101L51.538,22.701L55.443,20.049L46.995,14.414C46.604,14.154 46.675,13.532 47.113,13.376V13.373Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M57.978,0C56.474,0 55.257,1.29 55.257,2.877C55.257,4.464 56.477,5.754 57.978,5.754C59.479,5.754 60.699,4.464 60.699,2.877C60.699,1.29 59.479,0 57.978,0Z"
android:fillColor="#EEDA24"/>
<path
android:pathData="M73.451,15.889C69.119,15.889 66.754,18.144 66.754,18.144V12.971L71.799,11.106L70.609,7.252L66.754,8.709V4.441H62.701V22.591H66.754C70.508,19.584 75.042,19.566 75.042,19.566L73.451,15.889Z"
android:fillColor="#EEDA24"/>
</vector>
17 changes: 10 additions & 7 deletions core/model/src/main/java/com/record/model/VideoData.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package com.record.model

data class VideoData(
val id: String,
val videoUri: String,
val previewUri: String,
val location: String,
val userName: String,
val content: String,
val bookmarkCount: Int,
val bookmarkId: Long,
val id: Long,
val isBookmark: Boolean,
val bookmarkCount: Int,
val content: String,
val videoUrl: String,
val previewUrl: String,
val location: String,
val uploaderId: Long,
val nickname: String,
val isMine: Boolean,
)
1 change: 1 addition & 0 deletions data/exhibition/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
13 changes: 13 additions & 0 deletions data/exhibition/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
plugins {
alias(libs.plugins.recordy.data)
alias(libs.plugins.kotlin.serialization)
}

android {
namespace = "com.record.exhibition"
}

dependencies {
implementation(projects.domain.exhibition)
implementation(projects.domain.video)
}
4 changes: 4 additions & 0 deletions data/exhibition/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.example.exhibition.di

import com.example.exhibition.repository.ExhibitionRepositoryImpl
import com.example.exhibition.repository.SearchRepositoryImpl
import com.record.exhibition.repository.ExhibitionRepository
import com.record.exhibition.repository.SearchRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class RepositoryModule {
@Binds
@Singleton
abstract fun bindsExhibitionRepository(exhibitionRepositoryImpl: ExhibitionRepositoryImpl): ExhibitionRepository

@Binds
@Singleton
abstract fun bindsSearchRepository(searchRepositoryImpl: SearchRepositoryImpl): SearchRepository
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.exhibition.model.remote.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestPatchExhibitionDto(
@SerialName("endDate")
val endDate: String,
@SerialName("id")
val id: Int,
@SerialName("isFree")
val isFree: Boolean,
@SerialName("name")
val name: String,
@SerialName("startDate")
val startDate: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.exhibition.model.remote.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestPostExhibitionDto(
@SerialName("endDate")
val endDate: String,
@SerialName("isFree")
val isFree: Boolean,
@SerialName("name")
val name: String,
@SerialName("placeId")
val placeId: Int,
@SerialName("startDate")
val startDate: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.exhibition.model.remote.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestPostPlaceDto(
@SerialName("address")
val address: String,
@SerialName("id")
val id: String,
@SerialName("latitude")
val latitude: Int,
@SerialName("longitude")
val longitude: Int,
@SerialName("name")
val name: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.exhibition.model.remote.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class Location(
@SerialName("id")
val id: Int,
@SerialName("latitude")
val latitude: Double,
@SerialName("longitude")
val longitude: Double,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.example.exhibition.model.remote.response

import com.record.exhibition.model.ResultType
import com.record.exhibition.model.SearchResult
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetExhibitionSearchDto(
@SerialName("id")
val id: Long,
@SerialName("type")
val type: String,
@SerialName("address")
val address: String,
@SerialName("name")
val name: String,
)

fun ResponseGetExhibitionSearchDto.toDomain() = SearchResult(
id = this.id,
type = when (this.type) {
"PLACE" -> ResultType.PLACE
"EXHIBITION" -> ResultType.EXHIBITION
else -> ResultType.UNKNOWN
},
address = this.address,
name = this.name,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.example.exhibition.model.remote.response

import com.record.exhibition.model.Exhibition
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetExhibitionsDto(
@SerialName("id")
val id: Int,
@SerialName("isFree")
val isFree: Boolean,
@SerialName("name")
val name: String,
@SerialName("startDate")
val startDate: String,
@SerialName("endDate")
val endDate: String,
)

fun ResponseGetExhibitionsDto.toDomain() = Exhibition(
id = this.id,
isFree = this.isFree,
name = this.name,
startDate = this.startDate,
endDate = this.endDate,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.exhibition.model.remote.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetPagingPlaceDto(
@SerialName("content")
val content: List<ResponseGetPlaceDto>,
@SerialName("hasNext")
val hasNext: Boolean,
@SerialName("pageNumber")
val pageNumber: Int,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.exhibition.model.remote.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetPlaceDto(
@SerialName("address")
val address: String?,
@SerialName("exhibitionSize")
val exhibitionSize: Int,
@SerialName("id")
val id: Int,
@SerialName("location")
val location: Location,
@SerialName("name")
val name: String,
@SerialName("platformId")
val platformId: String?,
@SerialName("recordSize")
val recordSize: Int,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.exhibition.model.remote.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetReviewsDto(
@SerialName("authorName")
val authorName: String,
@SerialName("content")
val content: String,
@SerialName("createdAt")
val createdAt: String,
@SerialName("id")
val id: Int,
@SerialName("rating")
val rating: Int,
)
Loading

0 comments on commit 2efa0a9

Please sign in to comment.