Skip to content

Commit

Permalink
[FIX/#3] serialization 적용 및 제약 재설정
Browse files Browse the repository at this point in the history
  • Loading branch information
b1urrrr committed Apr 21, 2023
1 parent 5d5e7e4 commit d66d66e
Show file tree
Hide file tree
Showing 9 changed files with 46 additions and 31 deletions.
15 changes: 8 additions & 7 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ plugins {
id 'kotlin-parcelize'
id 'dagger.hilt.android.plugin'
id 'org.jlleitschuh.gradle.ktlint' version '10.3.0'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.7.10'
}

android {
Expand Down Expand Up @@ -52,8 +53,8 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"

// ktx
implementation "androidx.activity:activity-ktx:1.7.0"
implementation "androidx.fragment:fragment-ktx:1.5.6"
implementation "androidx.activity:activity-ktx:1.7.1"
implementation "androidx.fragment:fragment-ktx:1.5.7"

// recyclerview
implementation "androidx.recyclerview:recyclerview:1.3.0"
Expand All @@ -69,18 +70,18 @@ dependencies {

// coil
implementation "io.coil-kt:coil:2.2.2"

// json
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"

// serialization
implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0"

// timber
implementation "com.jakewharton.timber:timber:5.0.1"

// shared preference
implementation "androidx.security:security-crypto-ktx:1.1.0-alpha05"
implementation "androidx.security:security-crypto-ktx:1.1.0-alpha06"

implementation "androidx.core:core-ktx:1.9.0"
implementation "androidx.core:core-ktx:1.10.0"
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "com.google.android.material:material:1.8.0"
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
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 @@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:name=".GoSoptApplication"
android:allowBackup="true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,16 @@ data class MockRepoDto(
val keysUrl: String,
@SerialName("labels_url")
val labelsUrl: String,
val language: String,
val language: String?,
@SerialName("languages_url")
val languagesUrl: String,
val license: Any,
val license: String?,
@SerialName("merges_url")
val mergesUrl: String,
@SerialName("milestones_url")
val milestonesUrl: String,
@SerialName("mirror_url")
val mirrorUrl: Any,
val mirrorUrl: String?,
val name: String,
@SerialName("node_id")
val nodeId: String,
Expand All @@ -109,7 +109,7 @@ data class MockRepoDto(
@SerialName("open_issues_count")
val openIssuesCount: Int,
val owner: Owner,
@SerialName("`private`")
@SerialName("private")
val isPrivate: Boolean,
@SerialName("pulls_url")
val pullsUrl: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package org.android.go.sopt.data.source

import com.google.gson.Gson
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import org.android.go.sopt.data.entity.MockRepoDto
import org.android.go.sopt.util.AssetLoader
import javax.inject.Inject

class RepoDataSource @Inject constructor(
private val assetLoader: AssetLoader,
) {
private val gson = Gson()

fun getRepoList(): Array<MockRepoDto> {
return assetLoader.getJsonString("fake_repo_list.json")?.let { jsonString ->
gson.fromJson(jsonString, Array<MockRepoDto>::class.java)
Json.decodeFromString<Array<MockRepoDto>>(jsonString)
} ?: emptyArray()
}
}
2 changes: 1 addition & 1 deletion app/src/main/java/org/android/go/sopt/domain/model/Repo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package org.android.go.sopt.domain.model

data class Repo(
val id: Int,
val image: String?, // TODO: 이미지 url null로 받아지는 오류 해결ㅠㅠ
val image: String?,
val name: String,
val owner: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ import android.widget.ImageView
import androidx.databinding.BindingAdapter
import coil.load
import coil.transform.RoundedCornersTransformation
import org.android.go.sopt.R

object BindingAdapter {
@JvmStatic
@BindingAdapter("setCircleImage")
fun ImageView.setCircleImage(img: String?) {
load(img) {
// TODO : placeholder & load error 이미지 추가
placeholder(R.drawable.img_main_profile)
transformations(RoundedCornersTransformation(50f))
}
}
Expand Down
34 changes: 23 additions & 11 deletions app/src/main/res/layout/item_home_repo.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<data>

Expand All @@ -13,8 +14,8 @@
android:id="@+id/layout_repo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:layout_marginVertical="4dp">
android:layout_marginHorizontal="14dp"
android:layout_marginVertical="6dp">

<ImageView
android:id="@+id/iv_repo_profile"
Expand All @@ -28,30 +29,41 @@

<TextView
android:id="@+id/tv_repo_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@{data.name}"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@id/flow_repo_description"
app:layout_constraintStart_toStartOf="@id/flow_repo_description"
tools:text="@string/dummy_text" />

<TextView
android:id="@+id/tv_repo_author"
android:layout_width="wrap_content"
android:id="@+id/tv_repo_owner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@{data.owner}"
android:textColor="@color/black" />
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="@id/flow_repo_description"
app:layout_constraintStart_toStartOf="@id/flow_repo_description"
tools:text="@string/dummy_text" />

<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/flow_repo_description"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:orientation="vertical"
app:constraint_referenced_ids="tv_repo_name,tv_repo_author"
app:flow_horizontalAlign="end"
app:constraint_referenced_ids="tv_repo_name,tv_repo_owner"
app:flow_verticalGap="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_repo_profile"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
</androidx.constraintlayout.widget.ConstraintLayout>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>

<color name="coral_500">#FFFF8265</color>
<color name="coral_600">#FFFE6C4A</color>
</resources>
4 changes: 2 additions & 2 deletions app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<!-- Base application theme. -->
<style name="Theme.GOSOPTAndroid" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorPrimary">@color/coral_500</item>
<item name="colorPrimaryVariant">@color/coral_600</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
Expand Down

0 comments on commit d66d66e

Please sign in to comment.