Skip to content

Commit

Permalink
chore/#86: Json encodeToUri, decodeFromUri 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
jinukeu committed Jan 14, 2024
1 parent 317b880 commit 79b5804
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 4 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -481,3 +481,5 @@ lint/tmp/
# Android Profiling
*.hprof

/report

2 changes: 2 additions & 0 deletions core/ui/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
plugins {
alias(libs.plugins.suwiki.android.library)
alias(libs.plugins.suwiki.android.library.compose)
alias(libs.plugins.kotlin.serialization)
}

android {
Expand All @@ -10,4 +11,5 @@ android {
dependencies {
implementation(projects.core.model)
implementation(libs.kotlinx.immutable)
implementation(libs.kotlinx.serialization.json)
}
13 changes: 13 additions & 0 deletions core/ui/src/main/java/com/suwiki/core/ui/extension/Json.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.suwiki.core.ui.extension

import android.net.Uri
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

inline fun <reified T> Json.encodeToUri(value: T): String {
return Uri.encode(encodeToString(value))
}

inline fun <reified T> Json.decodeFromUri(value: String): T {
return decodeFromString(Uri.decode(value))
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.suwiki.core.model.enums.ExamLevel
import com.suwiki.core.model.enums.ExamType
import com.suwiki.core.model.lectureevaluation.exam.MyExamEvaluation
import com.suwiki.core.model.user.User
import com.suwiki.core.ui.extension.decodeFromUri
import com.suwiki.domain.lectureevaluation.editor.usecase.exam.DeleteExamEvaluationUseCase
import com.suwiki.domain.lectureevaluation.editor.usecase.exam.UpdateExamEvaluationUseCase
import com.suwiki.domain.user.usecase.GetUserInfoUseCase
Expand Down Expand Up @@ -34,7 +35,7 @@ class MyExamEvaluationEditViewModel @Inject constructor(
container(MyExamEvaluationEditState())

private val myExamEvaluation = savedStateHandle.get<String>(MyEvaluationEditRoute.myExamEvaluation)!!
private val myExamEvaluationItem: MyExamEvaluation = Json.decodeFromString(myExamEvaluation)
private val myExamEvaluationItem: MyExamEvaluation = Json.decodeFromUri(myExamEvaluation)

suspend fun initData() = intent {
showLoadingScreen()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.suwiki.core.model.enums.HomeworkLevel
import com.suwiki.core.model.enums.TeamLevel
import com.suwiki.core.model.lectureevaluation.lecture.MyLectureEvaluation
import com.suwiki.core.model.user.User
import com.suwiki.core.ui.extension.decodeFromUri
import com.suwiki.domain.lectureevaluation.editor.usecase.lecture.DeleteLectureEvaluationUseCase
import com.suwiki.domain.lectureevaluation.editor.usecase.lecture.UpdateLectureEvaluationUseCase
import com.suwiki.domain.user.usecase.GetUserInfoUseCase
Expand Down Expand Up @@ -35,7 +36,7 @@ class MyLectureEvaluationEditViewModel @Inject constructor(
container(MyLectureEvaluationEditState())

private val myLectureEvaluation = savedStateHandle.get<String>(MyEvaluationEditRoute.myLectureEvaluation)!!
private val myLectureEvaluationItem: MyLectureEvaluation = Json.decodeFromString(myLectureEvaluation)
private val myLectureEvaluationItem: MyLectureEvaluation = Json.decodeFromUri(myLectureEvaluation)

suspend fun initData() = intent {
showLoadingScreen()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.suwiki.feature.lectureevaluation.my

import android.annotation.SuppressLint
import android.net.Uri
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
Expand Down Expand Up @@ -36,6 +37,7 @@ import com.suwiki.core.model.lectureevaluation.exam.MyExamEvaluation
import com.suwiki.core.model.lectureevaluation.lecture.MyLectureEvaluation
import com.suwiki.core.ui.extension.OnBottomReached
import com.suwiki.core.ui.extension.collectWithLifecycle
import com.suwiki.core.ui.extension.encodeToUri
import com.suwiki.feature.lectureevaluation.my.model.MyEvaluationTab
import com.suwiki.feature.lectureevaluation.my.model.MyExamEvaluationsSample
import com.suwiki.feature.lectureevaluation.my.model.MyLectureEvaluationsSample
Expand Down Expand Up @@ -183,7 +185,7 @@ fun MyEvaluationLazyColumn(
SuwikiReviewEditContainer(
semesterText = item.selectedSemester,
classNameText = item.lectureInfo.lectureName,
onClickEditButton = { onClickLectureEditButton(Json.encodeToString(item)) },
onClickEditButton = { onClickLectureEditButton(Json.encodeToUri(item)) },
)
}
is MyExamEvaluation -> {
Expand All @@ -192,7 +194,7 @@ fun MyEvaluationLazyColumn(
SuwikiReviewEditContainer(
semesterText = examSemester ?: stringResource(R.string.word_semester),
classNameText = examName ?: stringResource(R.string.word_lecture_name),
onClickEditButton = { onClickExamEditButton(Json.encodeToString(item)) },
onClickEditButton = { onClickExamEditButton(Json.encodeToUri(item)) },
)
}
}
Expand Down

0 comments on commit 79b5804

Please sign in to comment.