diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 465253c090f..32520942d5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -144,10 +144,6 @@ android:name=".settings.NotificationSettingsActivity" android:label="@string/notification_preferences_title" android:theme="@style/AppTheme.ActionBar" /> - + - - - - - - + android:name=".settings.LicenseActivity"/> + + diff --git a/app/src/main/java/org/wikipedia/compose/components/HtmlText.kt b/app/src/main/java/org/wikipedia/compose/components/HtmlText.kt new file mode 100644 index 00000000000..03fb6e9ca26 --- /dev/null +++ b/app/src/main/java/org/wikipedia/compose/components/HtmlText.kt @@ -0,0 +1,39 @@ +package org.wikipedia.compose.components + +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.fromHtml +import androidx.compose.ui.unit.em +import androidx.compose.ui.unit.sp +import org.wikipedia.compose.theme.WikipediaTheme + +@Composable +fun HtmlText( + html: String, + linkStyle: TextLinkStyles = TextLinkStyles( + style = SpanStyle( + color = WikipediaTheme.colors.progressiveColor, + fontSize = 14.sp + ) + ), + normalStyle: TextStyle = TextStyle( + color = WikipediaTheme.colors.secondaryColor, + fontSize = 14.sp + ), + modifier: Modifier = Modifier +) { + Text( + modifier = modifier, + text = AnnotatedString.fromHtml( + htmlString = html, + linkStyles = linkStyle + ), + style = normalStyle, + lineHeight = 1.6.em + ) +} diff --git a/app/src/main/java/org/wikipedia/compose/components/LicenseLinkText.kt b/app/src/main/java/org/wikipedia/compose/components/LicenseLinkText.kt new file mode 100644 index 00000000000..a01fa3c7dec --- /dev/null +++ b/app/src/main/java/org/wikipedia/compose/components/LicenseLinkText.kt @@ -0,0 +1,63 @@ +package org.wikipedia.compose.components + +import android.content.Intent +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.text.LinkAnnotation +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.withLink +import androidx.compose.ui.unit.em +import org.wikipedia.compose.theme.WikipediaTheme +import org.wikipedia.settings.LicenseActivity + +data class LinkTextData( + val text: String, + val url: String? = null, + val asset: String? = null, +) + +@Composable +fun LicenseLinkText( + links: List, + textStyle: TextStyle = WikipediaTheme.typography.small, + modifier: Modifier = Modifier +) { + val context = LocalContext.current + val uriHandler = LocalUriHandler.current + val annotatedString = buildAnnotatedString { + links.forEach { linkTextData -> + withLink( + link = LinkAnnotation.Url( + url = linkTextData.url ?: "", + styles = TextLinkStyles( + style = SpanStyle(color = WikipediaTheme.colors.progressiveColor) + ), + linkInteractionListener = { + if (linkTextData.asset != null) { + val intent = Intent(context, LicenseActivity::class.java) + intent.putExtra(LicenseActivity.ASSET, linkTextData.asset) + context.startActivity(intent) + } else { + uriHandler.openUri(linkTextData.url ?: "") + } + } + ) + ) { + append(linkTextData.text) + } + } + } + + Text( + text = annotatedString, + modifier = modifier, + style = textStyle, + lineHeight = 1.6.em + ) +} diff --git a/app/src/main/java/org/wikipedia/compose/components/WikiSnackbar.kt b/app/src/main/java/org/wikipedia/compose/components/WikiSnackbar.kt index a59f9ac613a..db7770a5ae3 100644 --- a/app/src/main/java/org/wikipedia/compose/components/WikiSnackbar.kt +++ b/app/src/main/java/org/wikipedia/compose/components/WikiSnackbar.kt @@ -34,13 +34,15 @@ fun Snackbar( } } }, - modifier = modifier.padding(16.dp) + modifier = modifier + .padding(horizontal = 16.dp, vertical = 8.dp), + containerColor = WikipediaTheme.colors.borderColor ) { Text( text = message, style = WikipediaTheme.typography.h3.copy( color = WikipediaTheme.colors.primaryColor, - letterSpacing = 0.sp + letterSpacing = 0.sp, ), maxLines = 10, overflow = TextOverflow.Ellipsis, diff --git a/app/src/main/java/org/wikipedia/compose/components/WikiTopAppBar.kt b/app/src/main/java/org/wikipedia/compose/components/WikiTopAppBar.kt index 4e47d3f8942..c837d13450c 100644 --- a/app/src/main/java/org/wikipedia/compose/components/WikiTopAppBar.kt +++ b/app/src/main/java/org/wikipedia/compose/components/WikiTopAppBar.kt @@ -11,10 +11,12 @@ import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import org.wikipedia.R import org.wikipedia.compose.theme.WikipediaTheme @OptIn(ExperimentalMaterial3Api::class) @@ -41,7 +43,8 @@ fun WikiTopAppBar( IconButton(onClick = onNavigationClick) { Icon( imageVector = navigationIcon, - contentDescription = null + tint = WikipediaTheme.colors.primaryColor, + contentDescription = stringResource(R.string.back_button_content_description) ) } }, diff --git a/app/src/main/java/org/wikipedia/compose/theme/WikipediaTheme.kt b/app/src/main/java/org/wikipedia/compose/theme/WikipediaTheme.kt index 5f700e87bd2..5e9fc3e7f47 100644 --- a/app/src/main/java/org/wikipedia/compose/theme/WikipediaTheme.kt +++ b/app/src/main/java/org/wikipedia/compose/theme/WikipediaTheme.kt @@ -1,24 +1,25 @@ package org.wikipedia.compose.theme -import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider - -enum class WikipediaThemeType { - SYSTEM, LIGHT, DARK, BLACK, SEPIA -} +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import org.wikipedia.WikipediaApp +import org.wikipedia.theme.Theme @Composable fun BaseTheme( - wikipediaThemeType: WikipediaThemeType = WikipediaThemeType.SYSTEM, + currentTheme: Theme = WikipediaApp.instance.currentTheme, content: @Composable () -> Unit ) { - val wikipediaColorSystem = when (wikipediaThemeType) { - WikipediaThemeType.LIGHT -> LightColors - WikipediaThemeType.DARK -> DarkColors - WikipediaThemeType.BLACK -> BlackColors - WikipediaThemeType.SEPIA -> SepiaColors - WikipediaThemeType.SYSTEM -> if (isSystemInDarkTheme()) DarkColors else LightColors + val appTheme by remember { mutableStateOf(currentTheme) } + + val wikipediaColorSystem = when (appTheme) { + Theme.LIGHT -> LightColors + Theme.DARK -> DarkColors + Theme.BLACK -> BlackColors + Theme.SEPIA -> SepiaColors } CompositionLocalProvider( diff --git a/app/src/main/java/org/wikipedia/compose/theme/WikipediaTypography.kt b/app/src/main/java/org/wikipedia/compose/theme/WikipediaTypography.kt index 9eb32d4a6a5..3b74454d517 100644 --- a/app/src/main/java/org/wikipedia/compose/theme/WikipediaTypography.kt +++ b/app/src/main/java/org/wikipedia/compose/theme/WikipediaTypography.kt @@ -41,7 +41,7 @@ val Typography = WikipediaTypography( ), h3 = TextStyle( fontFamily = FontFamily.SansSerif, - fontWeight = FontWeight.Bold, + fontWeight = FontWeight.Medium, fontSize = 16.sp, lineHeight = 24.sp ), diff --git a/app/src/main/java/org/wikipedia/settings/AboutActivity.kt b/app/src/main/java/org/wikipedia/settings/AboutActivity.kt index f2334efdb3f..0ca6e74758e 100644 --- a/app/src/main/java/org/wikipedia/settings/AboutActivity.kt +++ b/app/src/main/java/org/wikipedia/settings/AboutActivity.kt @@ -1,54 +1,416 @@ package org.wikipedia.settings -import android.app.Activity +import android.content.Context import android.os.Bundle -import android.view.View -import android.widget.TextView -import androidx.core.text.method.LinkMovementMethodCompat -import androidx.core.view.descendants +import androidx.activity.compose.setContent +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +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.material3.Scaffold +import androidx.compose.material3.SnackbarDuration +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch import org.wikipedia.BuildConfig import org.wikipedia.R import org.wikipedia.activity.BaseActivity -import org.wikipedia.databinding.ActivityAboutBinding -import org.wikipedia.richtext.setHtml -import org.wikipedia.util.FeedbackUtil +import org.wikipedia.compose.components.HtmlText +import org.wikipedia.compose.components.LicenseLinkText +import org.wikipedia.compose.components.LinkTextData +import org.wikipedia.compose.components.Snackbar +import org.wikipedia.compose.components.WikiTopAppBar +import org.wikipedia.compose.theme.BaseTheme +import org.wikipedia.compose.theme.WikipediaTheme class AboutActivity : BaseActivity() { + private val credits = listOf( + LinkTextData( + text = "Balloon ", + url = "https://github.com/skydoves/Balloon/blob/main/LICENSE/" + ), + LinkTextData( + text = "(license), ", + asset = "licenses/Balloon" + ), + LinkTextData( + text = "Commons Lang ", + url = "https://www.apache.org/licenses/" + ), + LinkTextData( + text = "(license), ", + asset = "licenses/CommonsLang3" + ), + LinkTextData( + text = "jsoup ", + url = "https://github.com/jhy/jsoup" + ), + LinkTextData( + text = "(license), ", + asset = "licenses/jsoup" + ), + LinkTextData( + text = "OkHttp ", + url = "https://square.github.io/okhttp/" + ), + LinkTextData( + text = "(license), ", + asset = "licenses/OkHttp" + ), + LinkTextData( + text = "Retrofit ", + url = "https://square.github.io/retrofit/" + ), + LinkTextData( + text = "(license)", + asset = "licenses/Retrofit" + ) + ) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BaseTheme { + AboutWikipediaScreen( + modifier = Modifier + .fillMaxSize(), + versionName = BuildConfig.VERSION_NAME, + credits = credits, + onBackButtonClick = { + onBackPressed() + } + ) + } + } + } - private lateinit var binding: ActivityAboutBinding + companion object { + const val SECRET_CLICK_LIMIT = 7 + } +} - public override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivityAboutBinding.inflate(layoutInflater) - setContentView(binding.root) - binding.aboutContributors.setHtml(getString(R.string.about_contributors)) - binding.aboutTranslators.setHtml(getString(R.string.about_translators_translatewiki)) - binding.aboutWmf.setHtml(getString(R.string.about_wmf)) - binding.aboutAppLicense.setHtml(getString(R.string.about_app_license)) - binding.activityAboutLibraries.setHtml(getString(R.string.libraries_list)) - binding.aboutVersionText.text = BuildConfig.VERSION_NAME - binding.aboutLogoImage.setOnClickListener(AboutLogoClickListener()) - binding.aboutContainer.descendants.filterIsInstance().forEach { - it.movementMethod = LinkMovementMethodCompat.getInstance() +@Composable +fun AboutWikipediaScreen( + modifier: Modifier = Modifier, + versionName: String, + credits: List, + onBackButtonClick: () -> Unit +) { + val snackbarHostState = remember { SnackbarHostState() } + val scope = rememberCoroutineScope() + val context = LocalContext.current + + Scaffold( + modifier = modifier, + snackbarHost = { + SnackbarHost( + hostState = snackbarHostState, + snackbar = { + Snackbar( + message = it.visuals.message + ) + } + ) + }, + topBar = { + WikiTopAppBar( + title = stringResource(R.string.about_activity_title), + onNavigationClick = onBackButtonClick + ) + }, + containerColor = WikipediaTheme.colors.paperColor, + content = { paddingValues -> + AboutScreenContent( + modifier = Modifier + .padding(paddingValues), + versionName = versionName, + credits = credits, + snackbarHostState = snackbarHostState, + scope = scope, + context = context + ) } + ) +} + +@Composable +fun AboutScreenContent( + modifier: Modifier = Modifier, + versionName: String, + credits: List, + snackbarHostState: SnackbarHostState, + scope: CoroutineScope, + context: Context +) { + Column( + modifier = modifier + .verticalScroll(rememberScrollState()), + horizontalAlignment = Alignment.CenterHorizontally + ) { + AboutWikipediaHeader( + modifier = Modifier + .fillMaxWidth() + .padding(top = 30.dp, bottom = 16.dp), + versionName = versionName, + snackbarHostState = snackbarHostState, + scope = scope, + context = context + ) + AboutScreenBody( + modifier = Modifier + .fillMaxSize() + .padding(top = 20.dp) + .padding(horizontal = 16.dp), + credits = credits + ) + AboutScreenFooter( + modifier = Modifier + .padding(top = 24.dp, bottom = 16.dp) + ) } +} - private class AboutLogoClickListener : View.OnClickListener { - private var secretClickCount = 0 - override fun onClick(v: View) { - ++secretClickCount - if (secretClickCount == SECRET_CLICK_LIMIT) { - if (Prefs.isShowDeveloperSettingsEnabled) { - FeedbackUtil.showMessage(v.context as Activity, R.string.show_developer_settings_already_enabled) - } else { - Prefs.isShowDeveloperSettingsEnabled = true - FeedbackUtil.showMessage(v.context as Activity, R.string.show_developer_settings_enabled) +@Composable +fun AboutWikipediaHeader( + modifier: Modifier = Modifier, + versionName: String, + snackbarHostState: SnackbarHostState, + scope: CoroutineScope, + context: Context +) { + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally + ) { + AboutWikipediaImage( + onSecretCountClick = { isEnabled -> + scope.launch { + when (isEnabled) { + true -> { + snackbarHostState.showSnackbar( + message = context.getString(R.string.show_developer_settings_already_enabled), + duration = SnackbarDuration.Short + ) + } + + false -> { + snackbarHostState.showSnackbar( + message = context.getString(R.string.show_developer_settings_enabled), + duration = SnackbarDuration.Short + ) + } + } } } - } + ) + Text( + modifier = Modifier + .padding(vertical = 16.dp), + text = versionName, + fontSize = 14.sp, + color = WikipediaTheme.colors.primaryColor + ) + } +} - companion object { - private const val SECRET_CLICK_LIMIT = 7 - } +@Composable +fun AboutWikipediaImage( + modifier: Modifier = Modifier, + onSecretCountClick: (isEnabled: Boolean) -> Unit, +) { + var secretClickCount by remember { mutableIntStateOf(0) } + + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Image( + modifier = Modifier + .size(88.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = { + secretClickCount++ + if (secretClickCount == AboutActivity.SECRET_CLICK_LIMIT) { + if (Prefs.isShowDeveloperSettingsEnabled) { + onSecretCountClick(true) + } else { + Prefs.isShowDeveloperSettingsEnabled = true + onSecretCountClick(false) + } + } + }, + ), + painter = painterResource(R.drawable.w_nav_mark), + contentDescription = stringResource(R.string.about_screen_logo_accessibility_text), + ) + Image( + modifier = Modifier + .padding(top = 4.dp) + .size( + height = 22.dp, + width = 114.dp + ), + painter = painterResource(R.drawable.wp_wordmark), + colorFilter = ColorFilter.tint(color = WikipediaTheme.colors.primaryColor), + contentDescription = null, + ) + } +} + +@Composable +fun AboutScreenBody( + modifier: Modifier = Modifier, + credits: List +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(32.dp) + ) { + LinkTextWithHeader( + header = stringResource(R.string.about_contributors_heading), + html = stringResource(R.string.about_contributors) + ) + + LinkTextWithHeader( + header = stringResource(R.string.about_translators_heading), + html = stringResource(R.string.about_translators_translatewiki) + ) + + LicenseTextWithHeader( + header = stringResource(R.string.about_libraries_heading), + credits = credits, + textStyle = TextStyle( + fontSize = 14.sp + ) + ) + + LinkTextWithHeader( + header = stringResource(R.string.about_app_license_heading), + html = stringResource(R.string.about_app_license) + ) + } +} + +@Composable +fun AboutScreenFooter( + modifier: Modifier = Modifier +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Image( + modifier = Modifier + .size(24.dp), + painter = painterResource(R.drawable.ic_wmf_logo), + contentDescription = null, + colorFilter = ColorFilter.tint(color = WikipediaTheme.colors.placeholderColor) + ) + HtmlText( + html = stringResource(R.string.about_wmf), + normalStyle = TextStyle( + color = WikipediaTheme.colors.secondaryColor, + fontSize = 12.sp + ), + linkStyle = TextLinkStyles( + style = SpanStyle( + color = WikipediaTheme.colors.progressiveColor, + fontSize = 12.sp, + ) + ) + ) + } +} + +@Composable +fun LinkTextWithHeader( + modifier: Modifier = Modifier, + header: String, + html: String, + linkStyles: TextLinkStyles = TextLinkStyles( + style = SpanStyle( + color = WikipediaTheme.colors.progressiveColor + ) + ) +) { + Column( + verticalArrangement = Arrangement.spacedBy(8.dp), + modifier = modifier + ) { + Text( + text = header, + fontSize = 16.sp, + color = WikipediaTheme.colors.primaryColor + ) + HtmlText( + html = html, + linkStyle = linkStyles + ) + } +} + +@Composable +fun LicenseTextWithHeader( + modifier: Modifier = Modifier, + header: String, + credits: List, + textStyle: TextStyle +) { + Column( + verticalArrangement = Arrangement.spacedBy(8.dp), + modifier = modifier + ) { + Text( + text = header, + fontSize = 16.sp, + color = WikipediaTheme.colors.primaryColor + ) + LicenseLinkText( + links = credits, + textStyle = textStyle + ) + } +} + +@Preview +@Composable +private fun AboutScreenPreview() { + BaseTheme { + AboutWikipediaScreen( + modifier = Modifier + .fillMaxSize(), + versionName = "version name", + credits = listOf(), + onBackButtonClick = {} + ) } } diff --git a/app/src/main/java/org/wikipedia/settings/LicenseActivity.kt b/app/src/main/java/org/wikipedia/settings/LicenseActivity.kt index 59f51029478..797d017ba2a 100644 --- a/app/src/main/java/org/wikipedia/settings/LicenseActivity.kt +++ b/app/src/main/java/org/wikipedia/settings/LicenseActivity.kt @@ -1,35 +1,83 @@ package org.wikipedia.settings import android.os.Bundle +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.fromHtml +import androidx.compose.ui.unit.dp import org.wikipedia.R import org.wikipedia.activity.BaseActivity -import org.wikipedia.databinding.ActivityLicenseBinding +import org.wikipedia.compose.components.WikiTopAppBar +import org.wikipedia.compose.theme.BaseTheme +import org.wikipedia.compose.theme.WikipediaTheme import org.wikipedia.util.FileUtil.readFile -import org.wikipedia.util.ResourceUtil.getThemedColor -import org.wikipedia.util.StringUtil -import java.io.IOException class LicenseActivity : BaseActivity() { - private lateinit var binding: ActivityLicenseBinding - public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityLicenseBinding.inflate(layoutInflater) - setContentView(binding.root) - setNavigationBarColor(getThemedColor(this, android.R.attr.windowBackground)) + val asset = intent.getStringExtra(ASSET) ?: "" + val text = readFile(assets.open(asset)) + val licenseText = text.replace("\n\n", "

") + val strings = asset.split("/") + val title = getString(R.string.license_title, strings[strings.size - 1].trim()) - val libraryNameStart = 24 - val path = (intent.data ?: return).path ?: return - if (path.length > libraryNameStart) { - // Example string: "/android_asset/licenses/Otto" - title = getString(R.string.license_title, path.substring(libraryNameStart)) - try { - val assetPathStart = 15 - val text = readFile(assets.open(path.substring(assetPathStart))) - binding.licenseText.text = StringUtil.fromHtml(text.replace("\n\n", "

")) - } catch (e: IOException) { - e.printStackTrace() + setContent { + BaseTheme { + LicenseScreen( + modifier = Modifier + .fillMaxSize(), + title = title, + licenseText = licenseText, + onBackButtonClick = { + onBackPressed() + } + ) } } } + + @Composable + fun LicenseScreen( + modifier: Modifier = Modifier, + title: String, + licenseText: String?, + onBackButtonClick: () -> Unit + ) { + Scaffold( + topBar = { + WikiTopAppBar( + title = title, + onNavigationClick = onBackButtonClick + ) + }, + containerColor = WikipediaTheme.colors.paperColor + ) { innerPadding -> + Column( + modifier = modifier + .verticalScroll(state = rememberScrollState()) + .padding(innerPadding) + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + Text( + text = AnnotatedString.fromHtml( + htmlString = licenseText ?: "" + ), + color = WikipediaTheme.colors.primaryColor.copy(alpha = 0.6f) + ) + } + } + } + + companion object { + const val ASSET = "asset" + } } diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml deleted file mode 100644 index 5dcc0e407ca..00000000000 --- a/app/src/main/res/layout/activity_about.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_license.xml b/app/src/main/res/layout/activity_license.xml deleted file mode 100644 index d50f1cce3f5..00000000000 --- a/app/src/main/res/layout/activity_license.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - \ No newline at end of file