diff --git a/.gitignore b/.gitignore
index 979e132..7f1f4b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@ out
android/.gradle
android/app/.externalNativeBuild
android/app/build
+android/app/src/main/assets
android/build
.ccls-cache
.dir-locals.el
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 4499d16..521982f 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -39,7 +39,6 @@ android {
if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) {
sourceSets.main {
jniLibs.srcDir 'libs'
- assets.srcDir '../../fonts'
}
aaptOptions {
// Disable asset compression for fonts.
diff --git a/android/app/jni/CMakeLists.txt b/android/app/jni/CMakeLists.txt
index 4803f45..8e84ae4 100644
--- a/android/app/jni/CMakeLists.txt
+++ b/android/app/jni/CMakeLists.txt
@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.13)
project(GAME)
+set(PROJECT_ROOT_DIR ../../..)
include(FetchContent)
FetchContent_Declare(
@@ -46,4 +47,18 @@ if(NOT sdl_mixer_POPULATED)
endif()
# The main CMakeLists.txt of xsystem35
-add_subdirectory(../../.. xsystem35)
+add_subdirectory(${PROJECT_ROOT_DIR} xsystem35)
+
+# Copy asset files
+set(ASSETS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src/main/assets)
+file(MAKE_DIRECTORY ${ASSETS_DIR}/licenses)
+file(COPY_FILE ${PROJECT_ROOT_DIR}/fonts/MTLc3m.ttf ${ASSETS_DIR}/MTLc3m.ttf)
+file(COPY_FILE ${PROJECT_ROOT_DIR}/fonts/mincho.otf ${ASSETS_DIR}/mincho.otf)
+file(COPY_FILE ${PROJECT_ROOT_DIR}/COPYING ${ASSETS_DIR}/licenses/xsystem35)
+file(COPY_FILE ${PROJECT_ROOT_DIR}/fonts/MTLc3m.ttf.license ${ASSETS_DIR}/licenses/MTLc3m)
+file(COPY_FILE ${PROJECT_ROOT_DIR}/fonts/mincho.otf.license ${ASSETS_DIR}/licenses/mincho)
+file(COPY_FILE ${sdl_SOURCE_DIR}/LICENSE.txt ${ASSETS_DIR}/licenses/SDL)
+file(COPY_FILE ${sdl_ttf_SOURCE_DIR}/LICENSE.txt ${ASSETS_DIR}/licenses/SDL_ttf)
+file(COPY_FILE ${sdl_ttf_SOURCE_DIR}/external/freetype/docs/GPLv2.TXT ${ASSETS_DIR}/licenses/freetype)
+file(COPY_FILE ${sdl_ttf_SOURCE_DIR}/external/harfbuzz/COPYING ${ASSETS_DIR}/licenses/harfbuzz)
+file(COPY_FILE ${sdl_mixer_SOURCE_DIR}/LICENSE.txt ${ASSETS_DIR}/licenses/SDL_mixer)
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index d13334b..50209af 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -94,6 +94,17 @@
-->
+
+
+
+
+
+
diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt
index cf8ac49..3547c2e 100644
--- a/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt
+++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt
@@ -106,6 +106,11 @@ class LauncherActivity : Activity(), LauncherObserver {
SAVEDATA_IMPORT_REQUEST)
true
}
+ R.id.licenses -> {
+ val intent = Intent(this, LicensesMenuActivity::class.java)
+ startActivity(intent)
+ true
+ }
else -> super.onOptionsItemSelected(item)
}
}
diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesActivity.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesActivity.kt
new file mode 100644
index 0000000..1a2556a
--- /dev/null
+++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesActivity.kt
@@ -0,0 +1,23 @@
+package io.github.kichikuou.xsystem35
+
+import android.app.Activity
+import android.os.Bundle
+import android.widget.TextView
+import java.io.BufferedReader
+
+class LicensesActivity : Activity() {
+ companion object {
+ const val EXTRA_DISPLAY_NAME = "DISPLAY_NAME"
+ const val EXTRA_FILE_NAME = "FILE_NAME"
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_licenses)
+
+ actionBar?.title = intent.getStringExtra(EXTRA_DISPLAY_NAME)
+ val path = "licenses/" + intent.getStringExtra(EXTRA_FILE_NAME)
+ val text = assets.open(path).bufferedReader().use(BufferedReader::readText)
+ findViewById(R.id.license_text).text = text
+ }
+}
\ No newline at end of file
diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesMenuActivity.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesMenuActivity.kt
new file mode 100644
index 0000000..d5c7ded
--- /dev/null
+++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/LicensesMenuActivity.kt
@@ -0,0 +1,38 @@
+package io.github.kichikuou.xsystem35
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import android.widget.ListView
+import android.widget.SimpleAdapter
+
+class LicensesMenuActivity : Activity() {
+ class Entry(val displayName: String, val fileName: String, val url: String)
+ private val entries: ArrayList = arrayListOf(
+ Entry("xsystem35-sdl2", "xsystem35", "https://github.com/kichikuou/xsystem35-sdl2"),
+ Entry("SDL", "SDL", "https://www.libsdl.org/"),
+ Entry("SDL_mixer", "SDL_mixer", "https://github.com/libsdl-org/SDL_mixer"),
+ Entry("SDL_ttf", "SDL_ttf", "https://github.com/libsdl-org/SDL_ttf"),
+ Entry("FreeType", "freetype", "https://freetype.org/"),
+ Entry("HarfBuzz", "harfbuzz", "https://harfbuzz.github.io/"),
+ Entry("MotoyaLCedar W3 mono", "MTLc3m", "https://github.com/aosp-mirror/platform_frameworks_base/tree/lollipop-release/data/fonts"),
+ Entry("Source Han Serif", "mincho", "https://github.com/adobe-fonts/source-han-serif/"),
+ )
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_licenses_menu)
+
+ val items = entries.map { mapOf("name" to it.displayName, "url" to it.url)}
+ val listView = findViewById(R.id.list)
+ listView.adapter = SimpleAdapter(this, items, android.R.layout.simple_list_item_2,
+ arrayOf("name", "url"), intArrayOf(android.R.id.text1, android.R.id.text2))
+ listView.setOnItemClickListener { _, _, pos, _ ->
+ val intent = Intent(this, LicensesActivity::class.java).apply {
+ putExtra(LicensesActivity.EXTRA_DISPLAY_NAME, entries[pos].displayName)
+ putExtra(LicensesActivity.EXTRA_FILE_NAME, entries[pos].fileName)
+ }
+ startActivity(intent)
+ }
+ }
+}
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/activity_licenses.xml b/android/app/src/main/res/layout/activity_licenses.xml
new file mode 100644
index 0000000..a4200f7
--- /dev/null
+++ b/android/app/src/main/res/layout/activity_licenses.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/activity_licenses_menu.xml b/android/app/src/main/res/layout/activity_licenses_menu.xml
new file mode 100644
index 0000000..df3ab57
--- /dev/null
+++ b/android/app/src/main/res/layout/activity_licenses_menu.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/menu/launcher_menu.xml b/android/app/src/main/res/menu/launcher_menu.xml
index d77b28b..194085b 100644
--- a/android/app/src/main/res/menu/launcher_menu.xml
+++ b/android/app/src/main/res/menu/launcher_menu.xml
@@ -6,4 +6,7 @@
+
\ No newline at end of file
diff --git a/android/app/src/main/res/values-ja/strings.xml b/android/app/src/main/res/values-ja/strings.xml
index 1c597b8..ae22c52 100644
--- a/android/app/src/main/res/values-ja/strings.xml
+++ b/android/app/src/main/res/values-ja/strings.xml
@@ -3,6 +3,7 @@
xsystem35
セーブデータをエクスポート
セーブデータをインポート
+ オープンソースライセンス
キャンセル
System 3.x のファイル (*.ald) が見つかりません。
ファイルを選択
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 1e2c095..9113823 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -2,6 +2,7 @@
xsystem35
Export Save Files
Import Save Files
+ Open source licenses
Cancel
Cannot find System 3.x game files (*.ald).
Choose a file