add about info

This commit is contained in:
izzy2lost
2026-02-14 00:25:40 -05:00
parent 3529e5c342
commit 46b45f9d93
3 changed files with 79 additions and 12 deletions
@@ -6,6 +6,7 @@ import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.ProgressBar
@@ -18,6 +19,7 @@ import androidx.documentfile.provider.DocumentFile
import coil.load
import com.google.android.material.button.MaterialButton
import com.google.android.material.button.MaterialButtonToggleGroup
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.materialswitch.MaterialSwitch
import java.net.URLEncoder
import java.util.ArrayDeque
@@ -57,6 +59,7 @@ class GameLibraryActivity : AppCompatActivity() {
private lateinit var gamesListContainer: LinearLayout
private lateinit var gamesGridContainer: LinearLayout
private lateinit var btnChangeFolder: MaterialButton
private lateinit var btnAbout: ImageButton
private lateinit var viewModeToggle: MaterialButtonToggleGroup
private lateinit var switchBoxArtLookup: MaterialSwitch
@@ -89,6 +92,7 @@ class GameLibraryActivity : AppCompatActivity() {
gamesListContainer = findViewById(R.id.library_games_container)
gamesGridContainer = findViewById(R.id.library_games_grid_container)
btnChangeFolder = findViewById(R.id.btn_change_games_folder)
btnAbout = findViewById(R.id.btn_library_about)
viewModeToggle = findViewById(R.id.library_view_mode_toggle)
switchBoxArtLookup = findViewById(R.id.switch_box_art_lookup)
@@ -103,6 +107,9 @@ class GameLibraryActivity : AppCompatActivity() {
btnChangeFolder.setOnClickListener {
pickGamesFolder.launch(gamesFolderUri)
}
btnAbout.setOnClickListener {
showAboutDialog()
}
viewModeToggle.addOnButtonCheckedListener { _, checkedId, isChecked ->
if (!isChecked) {
return@addOnButtonCheckedListener
@@ -619,5 +626,42 @@ class GameLibraryActivity : AppCompatActivity() {
private fun dp(value: Int): Int {
return (value * resources.displayMetrics.density).toInt()
}
private fun showAboutDialog() {
val labels = arrayOf(
getString(R.string.library_about_link_source),
getString(R.string.library_about_link_privacy),
getString(R.string.library_about_link_fork),
getString(R.string.library_about_link_license),
getString(R.string.library_about_link_disclaimer)
)
val urls = arrayOf(
getString(R.string.library_about_url_source),
getString(R.string.library_about_url_privacy),
getString(R.string.library_about_url_fork),
getString(R.string.library_about_url_license),
getString(R.string.library_about_url_disclaimer)
)
MaterialAlertDialogBuilder(this)
.setTitle(R.string.library_about_title)
.setMessage(R.string.library_about_message)
.setItems(labels) { _, which ->
openExternalLink(urls[which])
}
.setNegativeButton(android.R.string.cancel, null)
.show()
}
private fun openExternalLink(url: String) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply {
addCategory(Intent.CATEGORY_BROWSABLE)
}
try {
startActivity(intent)
} catch (_: Exception) {
Toast.makeText(this, getString(R.string.library_about_open_failed), Toast.LENGTH_SHORT).show()
}
}
}
@@ -39,19 +39,29 @@
android:orientation="vertical"
android:padding="24dp">
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/library_title"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium" />
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/library_subtitle"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:textColor="@color/xemu_text_muted" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/library_title"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium" />
<ImageButton
android:id="@+id/btn_library_about"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/library_about_button_desc"
android:padding="6dp"
android:src="@android:drawable/ic_dialog_info"
android:tint="@color/xemu_green" />
</LinearLayout>
<TextView
android:id="@+id/library_folder_text"
+14 -1
View File
@@ -28,7 +28,6 @@
<string name="setup_disc_value">Games Folder: %1$s</string>
<string name="library_title">Game Library</string>
<string name="library_subtitle">Pick a game to launch in xemu.</string>
<string name="library_change_folder">Change Folder</string>
<string name="library_view_list">List</string>
<string name="library_view_cover_grid">Cover Grid</string>
@@ -40,4 +39,18 @@
<string name="library_game_size">Size: %1$s</string>
<string name="library_game_path">Path: %1$s</string>
<string name="library_open_game">Open</string>
<string name="library_about_button_desc">About X1 BOX</string>
<string name="library_about_title">About X1 BOX</string>
<string name="library_about_message">X1 BOX is a community project based on xemu. Select a link below:</string>
<string name="library_about_open_failed">Unable to open link.</string>
<string name="library_about_link_source">Source Code (X1 BOX)</string>
<string name="library_about_link_privacy">Privacy Policy</string>
<string name="library_about_link_fork">Forked From (xemu)</string>
<string name="library_about_link_license">License (LICENSE)</string>
<string name="library_about_link_disclaimer">License Disclaimer (COPYING)</string>
<string name="library_about_url_source" translatable="false">https://github.com/izzy2lost/xemu</string>
<string name="library_about_url_privacy" translatable="false">https://www.izzy2lost.com/x1box-privacy</string>
<string name="library_about_url_fork" translatable="false">https://github.com/xemu-project/xemu</string>
<string name="library_about_url_license" translatable="false">https://github.com/izzy2lost/xemu/blob/master/LICENSE</string>
<string name="library_about_url_disclaimer" translatable="false">https://github.com/izzy2lost/xemu/blob/master/COPYING</string>
</resources>