package com.example.shiftalarm import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.example.shiftalarm.databinding.ActivityManualBinding class ManualActivity : AppCompatActivity() { private lateinit var binding: ActivityManualBinding override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge() super.onCreate(savedInstanceState) binding = ActivityManualBinding.inflate(layoutInflater) setContentView(binding.root) ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } setupManual() binding.btnCloseManual.setOnClickListener { finish() } } private fun setupManual() { try { val versionName = try { packageManager.getPackageInfo(packageName, 0).versionName } catch (e: Exception) { "0.7.1" } binding.manualVersionText.text = "교대링(Shiftring) v$versionName" val rawContent = assets.open("MANUAL.md").bufferedReader().use { it.readText() } // Premium Styling logic val styledContent = rawContent .replace(Regex("^# (.*)", RegexOption.MULTILINE), "
$1
") .replace(Regex("^## (.*)", RegexOption.MULTILINE), "

$1
") .replace(Regex("^### (.*)", RegexOption.MULTILINE), "

$1
") .replace(Regex("^- (.*)", RegexOption.MULTILINE), " • $1") .replace("\n", "
") if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { binding.manualContent.text = android.text.Html.fromHtml(styledContent, android.text.Html.FROM_HTML_MODE_LEGACY) } else { @Suppress("DEPRECATION") binding.manualContent.text = android.text.Html.fromHtml(styledContent) } } catch (e: Exception) { binding.manualContent.text = "설명서를 불러오지 못했습니다." } } }