All Downloads are FREE. Search and download functionalities are using the official Maven repository.

haerzig.core.activities.PrivacyActivity.kt Maven / Gradle / Ivy

package haerzig.core.activities

import android.content.res.Configuration
import android.os.Bundle
import android.text.method.LinkMovementMethod
import android.widget.TextView
import androidx.activity.ComponentActivity
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.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.text.HtmlCompat
import haerzig.core.EXTRA_PRIVACY_STRING
import haerzig.core.R
import haerzig.core.themes.AppTheme
import haerzig.core.views.TopAppBar

class PrivacyActivity : ComponentActivity() {

    @Preview(
        uiMode = Configuration.UI_MODE_NIGHT_YES,
        name = "DefaultPreviewDark"
    )
    @Preview(
        uiMode = Configuration.UI_MODE_NIGHT_NO,
        name = "DefaultPreviewLight"
    )
    @Composable
    fun Preview() {
        AppTheme {
            Surface {
                ContentView()
            }
        }
    }

    private var privacyString = ""

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        privacyString = savedInstanceState?.getString(EXTRA_PRIVACY_STRING) ?: ""


        setContent {
            AppTheme {
                Surface {
                    ContentView()
                }
            }
        }
    }

    @Composable
    fun ContentView() {
        val privacyString = """
             
             $privacyString
             """.trimIndent()
        Scaffold(
            topBar = { TopAppBar(title = stringResource(R.string.privacy_notes_title), onGoBack = { finish() }) }
        ) {
            Column(
                modifier = Modifier
                    .fillMaxSize()
                    .padding(start = 10.dp, bottom = it.calculateBottomPadding(), top = it.calculateTopPadding())
            ) {
                AndroidView(factory = { context ->
                    TextView(context).apply {
                        text = HtmlCompat.fromHtml(privacyString, HtmlCompat.FROM_HTML_MODE_LEGACY)
                        movementMethod = LinkMovementMethod.getInstance()
                    }
                })
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy