Skip to content

Commit

Permalink
NewsScreen: Drop using figma for news items
Browse files Browse the repository at this point in the history
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
  • Loading branch information
theimpulson committed Mar 24, 2024
1 parent f7706d9 commit 0378b3c
Show file tree
Hide file tree
Showing 12 changed files with 137 additions and 509 deletions.
1 change: 0 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ plugins {
id("com.google.devtools.ksp")
id("org.jlleitschuh.gradle.ktlint")
id("com.google.dagger.hilt.android")
id("com.google.relay")
}

android {
Expand Down
119 changes: 119 additions & 0 deletions app/src/main/java/io/aayush/relabs/ui/components/NewsItem.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package io.aayush.relabs.ui.components

import android.os.Build
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredHeight
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.ImageLoader
import coil.compose.SubcomposeAsyncImage
import coil.decode.GifDecoder
import coil.decode.ImageDecoderDecoder
import coil.request.ImageRequest
import io.aayush.relabs.R
import io.aayush.relabs.ui.extensions.shimmer

@Composable
fun NewsItem(
modifier: Modifier = Modifier,
thumbnail: String = "",
headline: String = "",
description: String = "",
author: String = "",
date: String = "",
onClicked: () -> Unit = {},
loading: Boolean = false,
) {
Column(
modifier = modifier
.clip(RoundedCornerShape(20.dp))
.background(
color = if (isSystemInDarkTheme()) {
MaterialTheme.colorScheme.onSecondary
} else {
MaterialTheme.colorScheme.secondary
}
)
.padding(12.dp)
.clickable { onClicked() },
verticalArrangement = Arrangement.spacedBy(10.dp, Alignment.CenterVertically),
horizontalAlignment = Alignment.Start
) {
SubcomposeAsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data(thumbnail)
.placeholder(R.drawable.ic_landscape)
.crossfade(true)
.build(),
imageLoader = ImageLoader.Builder(LocalContext.current)
.components {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
add(ImageDecoderDecoder.Factory())
} else {
add(GifDecoder.Factory())
}
}.build(),
contentDescription = "",
contentScale = ContentScale.Crop,
modifier = Modifier
.fillMaxWidth()
.requiredHeight(158.0.dp)
.clip(RoundedCornerShape(20.dp))
.shimmer(loading)
)
Text(
text = headline,
fontSize = 22.sp,
color = Color.White,
fontWeight = FontWeight.Bold,
modifier = Modifier
.fillMaxWidth()
.shimmer(loading)
)
if (description.isNotBlank()) {
Text(
text = description,
color = Color.White,
fontSize = 15.sp,
modifier = Modifier
.fillMaxWidth()
.shimmer(loading)
)
}
Column {
Text(
text = author,
color = Color.White,
fontSize = 13.sp,
modifier = Modifier
.fillMaxWidth()
.shimmer(loading)
)
Text(
text = date,
color = Color.White,
fontSize = 12.sp,
modifier = Modifier
.fillMaxWidth()
.shimmer(loading)
)
}
}
}
35 changes: 9 additions & 26 deletions app/src/main/java/io/aayush/relabs/ui/screens/news/NewsScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@ package io.aayush.relabs.ui.screens.news
import android.net.Uri
import android.util.Log
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.ScrollableTabRow
import androidx.compose.material3.Tab
Expand All @@ -21,6 +20,7 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
Expand All @@ -30,14 +30,10 @@ import androidx.core.text.HtmlCompat
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavHostController
import coil.compose.rememberAsyncImagePainter
import coil.request.ImageRequest
import coil.size.Scale
import com.prof18.rssparser.model.RssItem
import io.aayush.relabs.R
import io.aayush.relabs.newsitem.NewsItem
import io.aayush.relabs.ui.components.MainTopAppBar
import io.aayush.relabs.ui.extensions.shimmer
import io.aayush.relabs.ui.components.NewsItem
import io.aayush.relabs.ui.navigation.Screen
import kotlinx.coroutines.launch
import java.util.UUID
Expand Down Expand Up @@ -101,18 +97,16 @@ fun NewsScreen(navHostController: NavHostController, viewModel: NewsViewModel =
if (loading) {
LazyColumn {
items(20) {
// TODO: Drop figma & relay
NewsItem(
modifier = Modifier
.padding(vertical = 10.dp, horizontal = 10.dp)
.shimmer(true)
)
NewsItem(modifier = Modifier.padding(10.dp), loading = true)
}
}
return@HorizontalPager
}

LazyColumn {
LazyColumn(
modifier = Modifier.padding(10.dp),
verticalArrangement = Arrangement.spacedBy(10.dp, Alignment.CenterVertically),
) {
items(
items = when (it) {
0 -> google9to5Feed
Expand All @@ -123,18 +117,7 @@ fun NewsScreen(navHostController: NavHostController, viewModel: NewsViewModel =
key = { a -> a.guid ?: UUID.randomUUID() }
) { article ->
NewsItem(
modifier = Modifier.padding(vertical = 10.dp, horizontal = 10.dp),
backgroundColor = if (isSystemInDarkTheme()) {
MaterialTheme.colorScheme.onSecondary
} else {
MaterialTheme.colorScheme.secondary
},
thumbnail = rememberAsyncImagePainter(
model = ImageRequest.Builder(LocalContext.current)
.data(article.image)
.scale(Scale.FIT)
.build()
),
thumbnail = article.image ?: "",
headline = article.title ?: "",
description = HtmlCompat.fromHtml(
article.description?.replace(Regex("(<(/)img>)|(<img.+?>)"), "")
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_landscape.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M40,720L280,400L460,640L760,640L560,374L460,506L410,440L560,240L920,720L40,720ZM561,640L561,640L561,640L561,640L561,640ZM200,640L360,640L280,533L200,640ZM200,640L280,640L360,640L200,640Z"/>
</vector>
157 changes: 0 additions & 157 deletions app/src/main/ui-package-resources/style-mappings/m3_design_kit.json

This file was deleted.

1 change: 0 additions & 1 deletion app/src/main/ui-packages/news_item/FONTS.txt

This file was deleted.

1 change: 0 additions & 1 deletion app/src/main/ui-packages/news_item/VERSION.txt

This file was deleted.

4 changes: 0 additions & 4 deletions app/src/main/ui-packages/news_item/config.json

This file was deleted.

0 comments on commit 0378b3c

Please sign in to comment.