diff --git a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/AboutFragment.kt b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/AboutFragment.kt index ae69337ec1e..fa9c48cd276 100644 --- a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/AboutFragment.kt +++ b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/AboutFragment.kt @@ -6,10 +6,19 @@ import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Bundle +import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager @@ -19,7 +28,10 @@ import com.google.android.material.textview.MaterialTextView import net.thunderbird.core.common.provider.AppNameProvider import net.thunderbird.core.logging.legacy.Log import org.koin.android.ext.android.inject +import app.k9mail.core.ui.legacy.designsystem.R as DesignSystemR +import app.k9mail.core.ui.legacy.theme2.common.R as Theme2CommonR +@Suppress("TooManyFunctions") class AboutFragment : Fragment() { private val appNameProvider: AppNameProvider by inject() @@ -30,6 +42,20 @@ class AboutFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + setAppLogo(view) + + setVersionImage(view) + + setAuthorsImage(view) + + setSourceCodeImage(view) + + setLicenceImage(view) + + setLinkImage(view) + + setForumImage(view) + val titleTextView = view.findViewById(R.id.about_title) titleTextView.text = getString(R.string.about_title, appNameProvider.appName) @@ -74,6 +100,86 @@ class AboutFragment : Fragment() { } } + private fun setForumImage(view: View) { + val forumImage = view.findViewById(R.id.forum_image) + forumImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_forum), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setLinkImage(view: View) { + val linkImage = view.findViewById(R.id.link_image) + linkImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_link), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setLicenceImage(view: View) { + val licenceImage = view.findViewById(R.id.licence_image) + licenceImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_description), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setSourceCodeImage(view: View) { + val sourceCodeImage = view.findViewById(R.id.source_code_image) + sourceCodeImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_code), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setAuthorsImage(view: View) { + val authorsImage = view.findViewById(R.id.authors_image) + authorsImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_group), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setVersionImage(view: View) { + val versionImage = view.findViewById(R.id.version_image) + versionImage.setContent { + Image( + painter = painterResource(id = DesignSystemR.drawable.ic_info), + modifier = Modifier.size(size = 32.dp), + contentDescription = null, + ) + } + } + + private fun setAppLogo(view: View) { + val appLogo = view.findViewById(R.id.app_logo) + appLogo.setContent { + val context = LocalContext.current + val typedValue = remember { TypedValue() } + context.theme.resolveAttribute(Theme2CommonR.attr.appLogo, typedValue, true) + Image( + painter = painterResource(id = typedValue.resourceId), + modifier = Modifier.size(size = 128.dp), + contentDescription = null, + ) + } + } + private fun displayChangeLog() { findNavController().navigate(R.id.action_aboutScreen_to_changelogScreen) } diff --git a/legacy/ui/legacy/src/main/res/layout/fragment_about.xml b/legacy/ui/legacy/src/main/res/layout/fragment_about.xml index 7ccd4c259bc..ee4da0d9749 100644 --- a/legacy/ui/legacy/src/main/res/layout/fragment_about.xml +++ b/legacy/ui/legacy/src/main/res/layout/fragment_about.xml @@ -14,7 +14,8 @@ android:orientation="vertical" > - - - - - - -