diff --git a/app/src/main/java/ink/trmnl/android/ui/aboutapp/AppInfoScreen.kt b/app/src/main/java/ink/trmnl/android/ui/aboutapp/AppInfoScreen.kt index f0fcb87..46df0a1 100644 --- a/app/src/main/java/ink/trmnl/android/ui/aboutapp/AppInfoScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/aboutapp/AppInfoScreen.kt @@ -14,8 +14,6 @@ import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -48,6 +46,7 @@ import ink.trmnl.android.data.AppConfig.TRMNL_SITE_URL import ink.trmnl.android.di.AppScope import ink.trmnl.android.ui.aboutapp.AppInfoScreen.Event import ink.trmnl.android.ui.aboutapp.AppInfoScreen.State +import ink.trmnl.android.ui.icons.Icons import ink.trmnl.android.ui.theme.TrmnlDisplayAppTheme import ink.trmnl.android.ui.theme.TrmnlOrange import kotlinx.parcelize.Parcelize diff --git a/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt b/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt index 3516e4a..9708d33 100644 --- a/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt @@ -15,8 +15,6 @@ import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Card import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api @@ -52,6 +50,7 @@ import ink.trmnl.android.data.AppConfig.TRMNL_API_SERVER_BASE_URL import ink.trmnl.android.data.TrmnlDisplayRepository import ink.trmnl.android.di.AppScope import ink.trmnl.android.model.SupportedDeviceModel +import ink.trmnl.android.ui.icons.Icons import ink.trmnl.android.ui.theme.TrmnlDisplayAppTheme import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize diff --git a/app/src/main/java/ink/trmnl/android/ui/display/OverlayDisplaySettingsView.kt b/app/src/main/java/ink/trmnl/android/ui/display/OverlayDisplaySettingsView.kt index 1303588..4d39b2d 100644 --- a/app/src/main/java/ink/trmnl/android/ui/display/OverlayDisplaySettingsView.kt +++ b/app/src/main/java/ink/trmnl/android/ui/display/OverlayDisplaySettingsView.kt @@ -8,11 +8,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowForward -import androidx.compose.material.icons.automirrored.filled.List -import androidx.compose.material.icons.filled.Refresh -import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExtendedFloatingActionButton @@ -33,6 +28,7 @@ import androidx.window.core.layout.WindowSizeClass import androidx.window.core.layout.WindowSizeClass.Companion.WIDTH_DP_EXPANDED_LOWER_BOUND import androidx.window.core.layout.WindowSizeClass.Companion.WIDTH_DP_MEDIUM_LOWER_BOUND import ink.trmnl.android.R +import ink.trmnl.android.ui.icons.Icons /** * Displays a set of configuration and control actions for the TRMNL display. diff --git a/app/src/main/java/ink/trmnl/android/ui/icons/Icons.kt b/app/src/main/java/ink/trmnl/android/ui/icons/Icons.kt new file mode 100644 index 0000000..aed0224 --- /dev/null +++ b/app/src/main/java/ink/trmnl/android/ui/icons/Icons.kt @@ -0,0 +1,62 @@ +package ink.trmnl.android.ui.icons + +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.vectorResource +import ink.trmnl.android.R + +/** + * Local Material Symbols icons. + * Replaces deprecated androidx.compose.material.icons package. + * + * Icons downloaded from https://fonts.google.com/icons (Material Symbols) + * and converted to Android Vector Drawables. + */ +object Icons { + object Default { + val CheckCircle: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_check_circle_24dp) + + val Clear: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_clear_24dp) + + val DateRange: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_date_range_24dp) + + val PlayArrow: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_play_arrow_24dp) + + val Refresh: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_refresh_24dp) + + val Settings: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_settings_24dp) + + val Share: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_share_24dp) + + val Warning: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_warning_24dp) + } + + object Outlined { + val Info: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_info_outlined_24dp) + + val Warning: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_warning_outlined_24dp) + } + + object AutoMirrored { + object Filled { + val ArrowBack: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_arrow_back_24dp) + + val ArrowForward: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_arrow_forward_24dp) + + val List: ImageVector + @Composable get() = ImageVector.vectorResource(R.drawable.ic_list_24dp) + } + } +} diff --git a/app/src/main/java/ink/trmnl/android/ui/refreshlog/DisplayRefreshLogScreen.kt b/app/src/main/java/ink/trmnl/android/ui/refreshlog/DisplayRefreshLogScreen.kt index 798140a..58ee516 100644 --- a/app/src/main/java/ink/trmnl/android/ui/refreshlog/DisplayRefreshLogScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/refreshlog/DisplayRefreshLogScreen.kt @@ -15,11 +15,6 @@ import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material.icons.filled.CheckCircle -import androidx.compose.material.icons.filled.Clear -import androidx.compose.material.icons.filled.Share import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults @@ -72,6 +67,7 @@ import ink.trmnl.android.data.log.TrmnlRefreshLog import ink.trmnl.android.data.log.TrmnlRefreshLogManager import ink.trmnl.android.di.AppScope import ink.trmnl.android.model.TrmnlDeviceType +import ink.trmnl.android.ui.icons.Icons import ink.trmnl.android.ui.theme.TrmnlDisplayAppTheme import ink.trmnl.android.util.getTimeElapsedString import ink.trmnl.android.work.RefreshWorkType diff --git a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt index a9d5b72..3347f25 100644 --- a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt @@ -25,11 +25,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material.icons.filled.Clear -import androidx.compose.material.icons.filled.DateRange -import androidx.compose.material.icons.outlined.Warning import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card @@ -96,6 +91,7 @@ import ink.trmnl.android.model.TrmnlDeviceConfig import ink.trmnl.android.model.TrmnlDeviceType import ink.trmnl.android.ui.aboutapp.AppInfoScreen import ink.trmnl.android.ui.display.TrmnlMirrorDisplayScreen +import ink.trmnl.android.ui.icons.Icons import ink.trmnl.android.ui.settings.AppSettingsScreen.ValidationResult import ink.trmnl.android.ui.settings.AppSettingsScreen.ValidationResult.Failure import ink.trmnl.android.ui.settings.AppSettingsScreen.ValidationResult.InvalidServerUrl diff --git a/app/src/main/java/ink/trmnl/android/ui/settings/DeviceTypeInfoTexts.kt b/app/src/main/java/ink/trmnl/android/ui/settings/DeviceTypeInfoTexts.kt index 4f48eed..f0f2ec1 100644 --- a/app/src/main/java/ink/trmnl/android/ui/settings/DeviceTypeInfoTexts.kt +++ b/app/src/main/java/ink/trmnl/android/ui/settings/DeviceTypeInfoTexts.kt @@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Info import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -25,6 +23,7 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import ink.trmnl.android.model.TrmnlDeviceType +import ink.trmnl.android.ui.icons.Icons import ink.trmnl.android.ui.theme.TrmnlDisplayAppTheme /** diff --git a/app/src/main/java/ink/trmnl/android/util/WorkInfoExtensions.kt b/app/src/main/java/ink/trmnl/android/util/WorkInfoExtensions.kt index c872b60..695fdf4 100644 --- a/app/src/main/java/ink/trmnl/android/util/WorkInfoExtensions.kt +++ b/app/src/main/java/ink/trmnl/android/util/WorkInfoExtensions.kt @@ -1,16 +1,11 @@ package ink.trmnl.android.util -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.CheckCircle -import androidx.compose.material.icons.filled.Clear -import androidx.compose.material.icons.filled.PlayArrow -import androidx.compose.material.icons.filled.Refresh -import androidx.compose.material.icons.filled.Warning import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.work.WorkInfo +import ink.trmnl.android.ui.icons.Icons import java.time.Instant import java.time.ZoneId import java.time.format.DateTimeFormatter @@ -49,6 +44,7 @@ fun WorkInfo.State?.toColor(): Color = null -> MaterialTheme.colorScheme.onSurface } +@Composable fun WorkInfo.State?.toIcon(): ImageVector = when (this) { WorkInfo.State.ENQUEUED -> Icons.Default.Refresh diff --git a/app/src/main/res/drawable/ic_arrow_back_24dp.xml b/app/src/main/res/drawable/ic_arrow_back_24dp.xml new file mode 100644 index 0000000..4a75ff1 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_back_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_arrow_forward_24dp.xml b/app/src/main/res/drawable/ic_arrow_forward_24dp.xml new file mode 100644 index 0000000..804376a --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_forward_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_check_circle_24dp.xml b/app/src/main/res/drawable/ic_check_circle_24dp.xml new file mode 100644 index 0000000..abbf8f6 --- /dev/null +++ b/app/src/main/res/drawable/ic_check_circle_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_clear_24dp.xml b/app/src/main/res/drawable/ic_clear_24dp.xml new file mode 100644 index 0000000..eebf748 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_date_range_24dp.xml b/app/src/main/res/drawable/ic_date_range_24dp.xml new file mode 100644 index 0000000..cbce3e5 --- /dev/null +++ b/app/src/main/res/drawable/ic_date_range_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_info_outlined_24dp.xml b/app/src/main/res/drawable/ic_info_outlined_24dp.xml new file mode 100644 index 0000000..2b170ce --- /dev/null +++ b/app/src/main/res/drawable/ic_info_outlined_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_list_24dp.xml b/app/src/main/res/drawable/ic_list_24dp.xml new file mode 100644 index 0000000..8caf56c --- /dev/null +++ b/app/src/main/res/drawable/ic_list_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_play_arrow_24dp.xml b/app/src/main/res/drawable/ic_play_arrow_24dp.xml new file mode 100644 index 0000000..e3ee9b1 --- /dev/null +++ b/app/src/main/res/drawable/ic_play_arrow_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_refresh_24dp.xml b/app/src/main/res/drawable/ic_refresh_24dp.xml new file mode 100644 index 0000000..4d4bc50 --- /dev/null +++ b/app/src/main/res/drawable/ic_refresh_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_24dp.xml b/app/src/main/res/drawable/ic_settings_24dp.xml new file mode 100644 index 0000000..e6ddd38 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_share_24dp.xml b/app/src/main/res/drawable/ic_share_24dp.xml new file mode 100644 index 0000000..e3f7358 --- /dev/null +++ b/app/src/main/res/drawable/ic_share_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_warning_24dp.xml b/app/src/main/res/drawable/ic_warning_24dp.xml new file mode 100644 index 0000000..4a39769 --- /dev/null +++ b/app/src/main/res/drawable/ic_warning_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_warning_outlined_24dp.xml b/app/src/main/res/drawable/ic_warning_outlined_24dp.xml new file mode 100644 index 0000000..4a39769 --- /dev/null +++ b/app/src/main/res/drawable/ic_warning_outlined_24dp.xml @@ -0,0 +1,9 @@ + + +