From 04cae942eae5e44638de1117eaee5666afdc8603 Mon Sep 17 00:00:00 2001 From: Abandoned Cart Date: Sun, 21 Aug 2022 07:40:32 -0400 Subject: [PATCH] Follow typical per-file detail formatting Format the details in the expected format of individual files (instead of a complete game) and move the code to match the updated placement. --- app/src/main/cpp/loader_jni.cpp | 2 +- app/src/main/cpp/skyline/vfs/nacp.cpp | 10 +++---- app/src/main/cpp/skyline/vfs/nacp.h | 4 +-- app/src/main/java/emu/skyline/AppDialog.kt | 2 +- .../java/emu/skyline/adapter/AppViewItem.kt | 18 ++++++------ .../main/java/emu/skyline/data/DataItem.kt | 10 +++---- .../main/java/emu/skyline/loader/RomFile.kt | 28 +++++++++---------- app/src/main/res/layout/app_dialog.xml | 28 +++++++++---------- app/src/main/res/layout/app_item_grid.xml | 8 +++--- .../main/res/layout/app_item_grid_compact.xml | 12 ++++---- app/src/main/res/layout/app_item_linear.xml | 15 +++++----- 11 files changed, 69 insertions(+), 68 deletions(-) diff --git a/app/src/main/cpp/loader_jni.cpp b/app/src/main/cpp/loader_jni.cpp index d05e02a3..5ea1a598 100644 --- a/app/src/main/cpp/loader_jni.cpp +++ b/app/src/main/cpp/loader_jni.cpp @@ -61,8 +61,8 @@ extern "C" JNIEXPORT jint JNICALL Java_emu_skyline_loader_RomFile_populate(JNIEn language = loader->nacp->GetFirstSupportedTitleLanguage(); env->SetObjectField(thiz, applicationNameField, env->NewStringUTF(loader->nacp->GetApplicationName(language).c_str())); - env->SetObjectField(thiz, applicationAuthorField, env->NewStringUTF(loader->nacp->GetApplicationPublisher(language).c_str())); env->SetObjectField(thiz, applicationVersionField, env->NewStringUTF(loader->nacp->GetApplicationVersion().c_str())); + env->SetObjectField(thiz, applicationAuthorField, env->NewStringUTF(loader->nacp->GetApplicationPublisher(language).c_str())); auto icon{loader->GetIcon(language)}; jbyteArray iconByteArray{env->NewByteArray(static_cast(icon.size()))}; diff --git a/app/src/main/cpp/skyline/vfs/nacp.cpp b/app/src/main/cpp/skyline/vfs/nacp.cpp index e430b972..97f797a1 100644 --- a/app/src/main/cpp/skyline/vfs/nacp.cpp +++ b/app/src/main/cpp/skyline/vfs/nacp.cpp @@ -29,13 +29,13 @@ namespace skyline::vfs { return std::string(applicationName.as_string(true)); } - std::string NACP::GetApplicationPublisher(language::ApplicationLanguage language) { - auto applicationPublisher{span(nacpContents.titleEntries.at(static_cast(language)).applicationPublisher)}; - return std::string(applicationPublisher.as_string(true)); - } - std::string NACP::GetApplicationVersion() { auto applicationPublisher{span(nacpContents.displayVersion)}; return std::string(applicationPublisher.as_string(true)); } + + std::string NACP::GetApplicationPublisher(language::ApplicationLanguage language) { + auto applicationPublisher{span(nacpContents.titleEntries.at(static_cast(language)).applicationPublisher)}; + return std::string(applicationPublisher.as_string(true)); + } } diff --git a/app/src/main/cpp/skyline/vfs/nacp.h b/app/src/main/cpp/skyline/vfs/nacp.h index 3d2d2ef4..7688342e 100644 --- a/app/src/main/cpp/skyline/vfs/nacp.h +++ b/app/src/main/cpp/skyline/vfs/nacp.h @@ -47,8 +47,8 @@ namespace skyline::vfs { std::string GetApplicationName(language::ApplicationLanguage language); - std::string GetApplicationPublisher(language::ApplicationLanguage language); - std::string GetApplicationVersion(); + + std::string GetApplicationPublisher(language::ApplicationLanguage language); }; } diff --git a/app/src/main/java/emu/skyline/AppDialog.kt b/app/src/main/java/emu/skyline/AppDialog.kt index d6086b94..3c7e0306 100644 --- a/app/src/main/java/emu/skyline/AppDialog.kt +++ b/app/src/main/java/emu/skyline/AppDialog.kt @@ -76,8 +76,8 @@ class AppDialog : BottomSheetDialogFragment() { binding.gameIcon.setImageBitmap(item.icon ?: missingIcon) binding.gameTitle.text = item.title - binding.gameSubtitle.text = item.subTitle ?: item.loaderResultString(requireContext()) binding.gameVersion.text = item.version ?: item.loaderResultString(requireContext()) + binding.gameSubtitle.text = item.subTitle ?: item.loaderResultString(requireContext()) binding.gamePlay.isEnabled = item.loaderResult == LoaderResult.Success binding.gamePlay.setOnClickListener { diff --git a/app/src/main/java/emu/skyline/adapter/AppViewItem.kt b/app/src/main/java/emu/skyline/adapter/AppViewItem.kt index 8ce9ac24..2a99db32 100644 --- a/app/src/main/java/emu/skyline/adapter/AppViewItem.kt +++ b/app/src/main/java/emu/skyline/adapter/AppViewItem.kt @@ -44,10 +44,10 @@ interface LayoutBinding : ViewBinding { val textTitle : TextView - val textSubtitle : TextView - val textVersion : TextView + val textSubtitle : TextView + val icon : ImageView } @@ -56,10 +56,10 @@ class ListBinding(parent : ViewGroup) : LayoutBinding { override val textTitle = binding.textTitle - override val textSubtitle = binding.textSubtitle - override val textVersion = binding.textVersion + override val textSubtitle = binding.textSubtitle + override val icon = binding.icon } @@ -68,10 +68,10 @@ class GridBinding(parent : ViewGroup) : LayoutBinding { override val textTitle = binding.textTitle - override val textSubtitle = binding.textSubtitle - override val textVersion = binding.textVersion + override val textSubtitle = binding.textSubtitle + override val icon = binding.icon } @@ -80,10 +80,10 @@ class GridCompatBinding(parent : ViewGroup) : LayoutBinding>, position : Int) { val binding = holder.binding binding.textTitle.text = item.title - binding.textSubtitle.text = item.subTitle ?: item.loaderResultString(binding.root.context) binding.textVersion.text = item.version ?: item.loaderResultString(binding.root.context) + binding.textSubtitle.text = item.subTitle ?: item.loaderResultString(binding.root.context) binding.icon.setImageBitmap(item.icon ?: missingIcon) diff --git a/app/src/main/java/emu/skyline/data/DataItem.kt b/app/src/main/java/emu/skyline/data/DataItem.kt index 22ee6c01..bfa9cf01 100644 --- a/app/src/main/java/emu/skyline/data/DataItem.kt +++ b/app/src/main/java/emu/skyline/data/DataItem.kt @@ -29,6 +29,11 @@ data class AppItem(private val meta : AppEntry) : DataItem() { */ val title get() = meta.name + /** + * The application version + */ + val version get() = meta.version + /** * The string used as the sub-title, we currently use the author */ @@ -39,11 +44,6 @@ data class AppItem(private val meta : AppEntry) : DataItem() { */ val uri get() = meta.uri - /** - * The application version - */ - val version get() = meta.version - val loaderResult get() = meta.loaderResult fun loaderResultString(context : Context) = context.getString(when (meta.loaderResult) { diff --git a/app/src/main/java/emu/skyline/loader/RomFile.kt b/app/src/main/java/emu/skyline/loader/RomFile.kt index cbc5de95..0de2469a 100644 --- a/app/src/main/java/emu/skyline/loader/RomFile.kt +++ b/app/src/main/java/emu/skyline/loader/RomFile.kt @@ -65,9 +65,9 @@ enum class LoaderResult(val value : Int) { */ data class AppEntry( var name : String, + var version : String?, var author : String?, var icon : Bitmap?, - var version : String?, var format : RomFormat, var uri : Uri, var loaderResult : LoaderResult @@ -82,12 +82,12 @@ data class AppEntry( output.writeUTF(name) output.writeObject(format) output.writeUTF(uri.toString()) - output.writeBoolean(author != null) - if (author != null) - output.writeUTF(author) output.writeBoolean(version != null) if (version != null) output.writeUTF(version) + output.writeBoolean(author != null) + if (author != null) + output.writeUTF(author) output.writeInt(loaderResult.value) output.writeBoolean(icon != null) icon?.let { @@ -103,10 +103,10 @@ data class AppEntry( name = input.readUTF() format = input.readObject() as RomFormat uri = Uri.parse(input.readUTF()) - if (input.readBoolean()) - author = input.readUTF() if (input.readBoolean()) version = input.readUTF() + if (input.readBoolean()) + author = input.readUTF() loaderResult = LoaderResult.get(input.readInt()) if (input.readBoolean()) icon = BitmapFactory.decodeStream(input) @@ -129,6 +129,11 @@ internal class RomFile(context : Context, format : RomFormat, uri : Uri, systemL */ private var applicationName : String? = null + /** + * @note This field is filled in by native code + */ + private var applicationVersion : String? = null + /** * @note This field is filled in by native code */ @@ -139,11 +144,6 @@ internal class RomFile(context : Context, format : RomFormat, uri : Uri, systemL */ private var rawIcon : ByteArray? = null - /** - * @note This field is filled in by native code - */ - private var applicationVersion : String? = null - val appEntry : AppEntry var result = LoaderResult.Success @@ -157,10 +157,10 @@ internal class RomFile(context : Context, format : RomFormat, uri : Uri, systemL } appEntry = applicationName?.let { name -> - applicationAuthor?.let { author -> - applicationVersion?.let { version -> + applicationVersion?.let { version -> + applicationAuthor?.let { author -> rawIcon?.let { icon -> - AppEntry(name, author, BitmapFactory.decodeByteArray(icon, 0, icon.size), version, format, uri, result) + AppEntry(name, version, author, BitmapFactory.decodeByteArray(icon, 0, icon.size), format, uri, result) } } } diff --git a/app/src/main/res/layout/app_dialog.xml b/app/src/main/res/layout/app_dialog.xml index 69dcedda..e98225f3 100644 --- a/app/src/main/res/layout/app_dialog.xml +++ b/app/src/main/res/layout/app_dialog.xml @@ -34,17 +34,6 @@ app:layout_constraintTop_toTopOf="parent" tools:text="The Legend of Zelda: Breath of the Wild" /> - - + + + tools:text="Version" /> + tools:text="Subtitle" /> diff --git a/app/src/main/res/layout/app_item_grid_compact.xml b/app/src/main/res/layout/app_item_grid_compact.xml index fe5e4180..7dd5d39c 100644 --- a/app/src/main/res/layout/app_item_grid_compact.xml +++ b/app/src/main/res/layout/app_item_grid_compact.xml @@ -40,13 +40,13 @@ android:textColor="@android:color/white" android:textStyle="bold" app:layout_constrainedWidth="true" - app:layout_constraintBottom_toTopOf="@id/text_subtitle" + app:layout_constraintBottom_toTopOf="@id/text_version" app:layout_constraintEnd_toEndOf="@id/icon" app:layout_constraintStart_toStartOf="@id/icon" tools:text="Title" /> + tools:text="Version" /> + tools:text="Subtitle" /> diff --git a/app/src/main/res/layout/app_item_linear.xml b/app/src/main/res/layout/app_item_linear.xml index 5b007448..5501a41c 100644 --- a/app/src/main/res/layout/app_item_linear.xml +++ b/app/src/main/res/layout/app_item_linear.xml @@ -29,7 +29,7 @@ android:singleLine="true" android:textAppearance="?android:attr/textAppearanceListItem" app:layout_constrainedWidth="true" - app:layout_constraintBottom_toTopOf="@+id/text_subtitle" + app:layout_constraintBottom_toTopOf="@id/text_version" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0" app:layout_constraintStart_toEndOf="@id/icon" @@ -37,21 +37,22 @@ tools:text="Title" /> + app:layout_constraintTop_toBottomOf="@id/text_title" + tools:text="Version" /> + app:layout_constraintTop_toBottomOf="@id/text_version" + tools:text="SubTitle" />