diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000..a1f8417 Binary files /dev/null and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/MainScreen.kt b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/MainScreen.kt index 0025cfb..c30fbc6 100644 --- a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/MainScreen.kt +++ b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/MainScreen.kt @@ -11,7 +11,6 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add -import androidx.compose.material.icons.filled.Edit import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.OutlinedTextField @@ -21,12 +20,15 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import xyz.pixelatedw.recipe.MainActivity +import xyz.pixelatedw.recipe.R import xyz.pixelatedw.recipe.data.RecipeWithTags import xyz.pixelatedw.recipe.data.RecipesView @@ -102,7 +104,7 @@ fun MainScreen(ctx: MainActivity, padding: PaddingValues, view: RecipesView) { onClick = { openTagFilterDialog.value = true }, ) { Icon( - imageVector = Icons.Default.Edit, + imageVector = ImageVector.vectorResource(R.drawable.filter_24), contentDescription = "Toggle tags filtering menu" ) } diff --git a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipeInfo.kt b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipeInfo.kt index 75225c4..fbfa5d0 100644 --- a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipeInfo.kt +++ b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipeInfo.kt @@ -1,6 +1,5 @@ package xyz.pixelatedw.recipe.ui.components -import android.util.DisplayMetrics import android.view.WindowManager import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement @@ -13,7 +12,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid import androidx.compose.foundation.rememberScrollState @@ -27,7 +25,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap @@ -50,6 +47,7 @@ fun RecipeInfo( ) { val keepScreen = view.keepScreenOn.collectAsState() val openDeletionDialog = remember { mutableStateOf(false) } + val picsCounts = remember { active.recipe.pics.size }; Column( modifier = Modifier @@ -69,24 +67,25 @@ fun RecipeInfo( ) } - LazyHorizontalGrid( - rows = GridCells.Fixed(1), - modifier = Modifier - .fillMaxWidth() - .wrapContentHeight() - .height(256.dp) - .padding(bottom = 16.dp), - contentPadding = PaddingValues(horizontal = 16.dp) - ) { - items(active.recipe.pics.size) { idx -> - val pic = active.recipe.showImage(ctx, idx) - if (pic != null) { - Image( - bitmap = pic.asImageBitmap(), - contentDescription = "Recipe image", - contentScale = ContentScale.Crop, - modifier = Modifier.size(256.dp), - ) + if (picsCounts > 0) { + LazyHorizontalGrid( + rows = GridCells.Fixed(1), + modifier = Modifier + .fillMaxWidth() + .height(256.dp) + .padding(bottom = 16.dp), + contentPadding = PaddingValues(horizontal = 64.dp) + ) { + items(picsCounts) { idx -> + val pic = active.recipe.showImage(ctx, idx) + if (pic != null) { + Image( + bitmap = pic.asImageBitmap(), + contentDescription = "Recipe image", + contentScale = ContentScale.Crop, + modifier = Modifier.size(256.dp), + ) + } } } } diff --git a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipePreview.kt b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipePreview.kt index 3128392..cf58ef6 100644 --- a/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipePreview.kt +++ b/app/src/main/java/xyz/pixelatedw/recipe/ui/components/RecipePreview.kt @@ -13,12 +13,17 @@ import androidx.compose.foundation.layout.size import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.imageResource +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em +import xyz.pixelatedw.recipe.R import xyz.pixelatedw.recipe.data.Recipe import xyz.pixelatedw.recipe.data.RecipeWithTags @@ -36,6 +41,14 @@ fun RecipePreview(entry: RecipeWithTags, previewUri: Bitmap?, onClick: () -> Uni modifier = Modifier.size(256.dp).padding(top = 16.dp, bottom = 8.dp), ) } + else { + Image( + bitmap = ImageBitmap.imageResource(R.drawable.missing_image), + contentDescription = "Missing recipe image", + contentScale = ContentScale.Crop, + modifier = Modifier.size(256.dp).padding(top = 16.dp, bottom = 8.dp), + ) + } } Row(horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth().padding(bottom = 8.dp)) { Text( diff --git a/app/src/main/res/drawable-hdpi/missing_image.png b/app/src/main/res/drawable-hdpi/missing_image.png new file mode 100644 index 0000000..4ac728f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/missing_image.png differ diff --git a/app/src/main/res/drawable-mdpi/missing_image.png b/app/src/main/res/drawable-mdpi/missing_image.png new file mode 100644 index 0000000..9b9b827 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/missing_image.png differ diff --git a/app/src/main/res/drawable-xhdpi/missing_image.png b/app/src/main/res/drawable-xhdpi/missing_image.png new file mode 100644 index 0000000..a5bc9a3 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/missing_image.png differ diff --git a/app/src/main/res/drawable-xxhdpi/missing_image.png b/app/src/main/res/drawable-xxhdpi/missing_image.png new file mode 100644 index 0000000..4ac2bb1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/missing_image.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/missing_image.png b/app/src/main/res/drawable-xxxhdpi/missing_image.png new file mode 100644 index 0000000..76a1a9f Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/missing_image.png differ diff --git a/app/src/main/res/drawable/filter_24.xml b/app/src/main/res/drawable/filter_24.xml new file mode 100644 index 0000000..22ac741 --- /dev/null +++ b/app/src/main/res/drawable/filter_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index 7706ab9..ec67abf 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -1,30 +1,14 @@ - - - - - - - - + android:viewportWidth="960" + android:viewportHeight="960"> + + android:pathData="M360,560h80v-200h-80v200ZM200,500q-46,-23 -73,-66.5T100,339q0,-75 51.5,-127T278,160q12,0 24.5,2t24.5,5q25,-41 65,-64t88,-23q48,0 88,23t65,64q12,-3 24,-5t25,-2q75,0 126.5,52T860,339q0,51 -27,94.5T760,500v220L200,720v-220ZM520,560h80v-200h-80v200ZM280,640h400v-189l44,-22q26,-13 41,-36.5t15,-52.5q0,-42 -28.5,-71T682,240q-11,0 -20,2t-19,5l-47,13 -31,-52q-14,-23 -36.5,-35.5T480,160q-26,0 -48.5,12.5T395,208l-31,52 -48,-13q-10,-2 -19.5,-4.5T277,240q-41,0 -69,29t-28,71q0,29 15,52.5t41,36.5l44,22v189ZM200,720h80v80h400v-80h80v160L200,880v-160ZM480,640Z" + android:fillColor="#e3e3e3"/> + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index b3e26b4..7353dbd 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,6 +1,5 @@ - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index b3e26b4..7353dbd 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,6 +1,5 @@ - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp index c209e78..dd2dd38 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp index b2dfe3d..b6aba1f 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp index 4f0f1d6..19beff7 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 62b611d..60a7ac0 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp index 948a307..6274a2e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index 1b9a695..705ff4a 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp index 28d4b77..e1a9979 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index 9287f50..67c6c30 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index aa7d642..67d13b1 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index 9126ae3..ba7ecc7 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..beab31f --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #000000 + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index d46e82c..6437db1 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,5 +1,7 @@ -