Revamp LicenseDialog + Update Licenses + Stop Bintray Usage

* Update licenses for dependent projects
* Add copyright notices (as provided)
* Revamp styling for `LicenseDialog` 
* Fix invisible `PreferenceDialog` buttons in Settings
* Consolidating color variables into `colorPrimary`, `backgroundColor` and `backgroundColorVariant`
* Use `com.google.android.flexbox:flexbox:3.0.0` (Google Maven) rather than `com.google.android:flexbox:2.0.1` (Bintray)
This commit is contained in:
PixelyIon 2021-10-14 19:48:24 +05:30
parent bbf28d1942
commit 1d57bab08f
16 changed files with 320 additions and 142 deletions

View File

@ -100,7 +100,7 @@ dependencies {
implementation 'androidx.fragment:fragment-ktx:1.3.6'
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
implementation 'com.google.android:flexbox:2.0.1'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
/* Kotlin */
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

View File

@ -120,10 +120,8 @@ extern "C" JNIEXPORT void Java_emu_skyline_EmulationActivity_executeApplication(
InputWeak.reset();
logger->InfoNoPrefix("Emulation has ended");
auto end{std::chrono::steady_clock::now()};
logger->InfoNoPrefix("Done in: {} ms", (std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()));
logger->Write(skyline::Logger::LogLevel::Info, fmt::format("Emulation has ended in {}ms", std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()));
close(romFd);
}

View File

@ -119,7 +119,7 @@ class MainActivity : AppCompatActivity() {
setupAppList()
binding.swipeRefreshLayout.apply {
setProgressBackgroundColorSchemeColor(obtainStyledAttributes(intArrayOf(R.attr.colorPrimary)).use { it.getColor(0, Color.BLACK) })
setProgressBackgroundColorSchemeColor(getColor(R.color.backgroundColorVariant))
setColorSchemeColors(obtainStyledAttributes(intArrayOf(R.attr.colorAccent)).use { it.getColor(0, Color.BLACK) })
post { setDistanceToTriggerSync(binding.swipeRefreshLayout.height / 3) }
setOnRefreshListener { loadRoms(false) }
@ -150,6 +150,7 @@ class MainActivity : AppCompatActivity() {
post { startTitleAnimation() }
}
}
window.decorView.findViewById<View>(android.R.id.content).viewTreeObserver.addOnTouchModeChangeListener { isInTouchMode ->
refreshIconVisible = !isInTouchMode
}

View File

@ -8,13 +8,13 @@ package emu.skyline.preference
import android.graphics.Rect
import android.os.Bundle
import android.view.*
import androidx.fragment.app.DialogFragment
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import emu.skyline.databinding.LicenseDialogBinding
/**
* This dialog is used to display the contents of a license for a particular project
* Dialog for displaying the contents of a license for a particular library
*/
class LicenseDialog : DialogFragment() {
class LicenseDialog : BottomSheetDialogFragment() {
private lateinit var binding : LicenseDialogBinding
/**
@ -35,8 +35,12 @@ class LicenseDialog : DialogFragment() {
override fun onViewCreated(view : View, savedInstanceState : Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.licenseUrl.text = requireArguments().getString("libraryUrl")
binding.licenseContent.text = getString(requireArguments().getInt("libraryLicense"))
binding.libraryTitle.text = requireArguments().getString(LicensePreference.LIBRARY_TITLE_ARG)
binding.libraryUrl.text = requireArguments().getString(LicensePreference.LIBRARY_URL_ARG)
binding.libraryCopyright.text = requireArguments().getString(LicensePreference.LIBRARY_COPYRIGHT_ARG)
if (binding.libraryCopyright.text.isEmpty())
binding.libraryCopyright.visibility = View.GONE
binding.licenseContent.text = getString(requireArguments().getInt(LicensePreference.LIBRARY_LICENSE_ARG))
dialog?.setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BUTTON_B && event.action == KeyEvent.ACTION_UP) {

View File

@ -23,12 +23,19 @@ class LicensePreference @JvmOverloads constructor(context : Context?, attrs : At
private val fragmentManager = (context as AppCompatActivity).supportFragmentManager
companion object {
private const val LIBRARY_URL_ARG = "libraryUrl"
private const val LIBRARY_LICENSE_ARG = "libraryLicense"
const val LIBRARY_TITLE_ARG = "libraryTitle"
const val LIBRARY_URL_ARG = "libraryUrl"
const val LIBRARY_COPYRIGHT_ARG = "libraryCopyright"
const val LIBRARY_LICENSE_ARG = "libraryLicense"
private val DIALOG_TAG = LicensePreference::class.java.simpleName
}
/**
* The copyright notice of the library
*/
private var libraryCopyright : String? = null
/**
* The URL of the library
*/
@ -43,7 +50,7 @@ class LicensePreference @JvmOverloads constructor(context : Context?, attrs : At
for (i in 0 until attrs!!.attributeCount) {
when (attrs.getAttributeName(i)) {
LIBRARY_URL_ARG -> libraryUrl = attrs.getAttributeValue(i)
LIBRARY_COPYRIGHT_ARG -> libraryCopyright = attrs.getAttributeValue(i)
LIBRARY_LICENSE_ARG -> libraryLicense = attrs.getAttributeValue(i).substring(1).toInt()
}
}
@ -56,7 +63,9 @@ class LicensePreference @JvmOverloads constructor(context : Context?, attrs : At
fragmentManager.findFragmentByTag(DIALOG_TAG) ?: run {
LicenseDialog().apply {
arguments = Bundle().apply {
putString(LIBRARY_TITLE_ARG, title.toString())
putString(LIBRARY_URL_ARG, libraryUrl)
putString(LIBRARY_COPYRIGHT_ARG, libraryCopyright)
putInt(LIBRARY_LICENSE_ARG, libraryLicense)
}
}.show(fragmentManager, DIALOG_TAG)

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -7,24 +8,47 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="2.5dp"
android:paddingTop="10dp">
<TextView
android:id="@+id/license_url"
android:id="@+id/library_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textSize="25sp"
tools:text="Skyline" />
<TextView
android:id="@+id/library_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:textSize="15sp" />
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textSize="15sp"
tools:text="https://github.com/skyline-emu/skyline" />
<TextView
android:id="@+id/library_copyright"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline4"
android:textSize="17sp"
tools:text="Copyright © 2019-2021 Skyline Team and Contributors (https://github.com/skyline-emu/)" />
<TextView
android:id="@+id/license_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:autoLink="web"
android:paddingTop="10dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1" />
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
tools:text="@string/mpl2_license" />
</LinearLayout>
</ScrollView>

View File

@ -4,12 +4,13 @@
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
app:elevation="0dp"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:elevation="16dp"
app:layout_scrollFlags="scroll" />
</com.google.android.material.appbar.AppBarLayout>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#FF424242</color>
<color name="colorPrimaryVariant">#FF121212</color>
<color name="backgroundColor">#FF121212</color>
<color name="backgroundColorVariant">#323232</color>
</resources>

View File

@ -20,4 +20,12 @@
<!-- Whether the preference should request a game list refresh or not. Defaults to false. -->
<attr format="boolean" name="refreshRequired"/>
</declare-styleable>
<declare-styleable name="LicensePreference">
<!-- An optional copyright notice for the library -->
<attr format="string" name="libraryCopyright"/>
<!-- A reference to a string resource containing the license of the library -->
<attr format="reference" name="libraryLicense"/>
<!-- A URL to the library -->
<attr format="string" name="libraryUrl"/>
</declare-styleable>
</resources>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">@color/cardview_light_background</color>
<color name="colorPrimaryVariant">@android:color/white</color>
<color name="colorOnPrimary">#FFFF0000</color>
<color name="colorPrimary">#FFFF0000</color>
<color name="backgroundColor">@android:color/white</color>
<color name="backgroundColorVariant">#F8F8F8</color>
</resources>

View File

@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="fmtlib_license">
Copyright © 2012 - present, Victor Zverovich\n
<string name="mit_license" translatable="false">
MIT License\n
\n
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@ -19,6 +19,26 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</string>
<string name="libfmt_mit_license" translatable="false">
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:\n
\n
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.\n
\n
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n
\n
--- Optional exception to the license ---\n
@ -28,7 +48,72 @@ of this Software are embedded into a machine-executable object form of such
source code, you may redistribute such embedded portions in such object form
without including the above copyright and permission notices.
</string>
<string name="apache2_license" tools:ignore="TypographyOther">
<string name="boost_software_license" translatable="false">
Boost Software License - Version 1.0 - August 17th, 2003\n
\n
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:\n
\n
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.\n
\n
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
</string>
<string name="bsd_2_clause_license" translatable="false">
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:\n
\n
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.\n
\n
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.\n
\n
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</string>
<string name="bsd_3_clause_license" translatable="false">
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n
- Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors, may be used to endorse or promote products derived from this software without specific prior written permission.\n
\n
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \`\`AS IS\'\' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</string>
<string name="opus_bsd_3_clause_license" translatable="false">
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n
- Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors, may be used to endorse or promote products derived from this software without specific prior written permission.\n
\n
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \`\`AS IS\'\' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</string>
<string name="apache2_license" tools:ignore="TypographyOther" translatable="false">
Apache License\n
Version 2.0, January 2004\n
http://www.apache.org/licenses/\n
@ -231,27 +316,7 @@ without including the above copyright and permission notices.
See the License for the specific language governing permissions and
limitations under the License.
</string>
<string name="zlib_license">
This software is provided \'as-is\', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.\n
\n
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:\n
\n
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.\n
\n
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.\n
\n
3. This notice may not be removed or altered from any source
distribution.
</string>
<string name="mpl2_license" tools:ignore="TypographyOther">
<string name="mpl2_license" tools:ignore="TypographyOther" translatable="false">
Mozilla Public License Version 2.0\n
==================================\n
\n
@ -626,7 +691,7 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice\n
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.
</string>
<string name="sil_open_font_license">
<string name="sil_open_font_license" translatable="false">
-----------------------------------------------------------\n
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n
-----------------------------------------------------------\n

View File

@ -129,31 +129,30 @@
<string name="misc_buttons">Miscellaneous Buttons</string>
<!-- Licenses -->
<string name="licenses">Licenses</string>
<string name="skyline_license_description">The license of Skyline (MPL 2.0)</string>
<string name="fmtlib">{fmt}</string>
<string name="fmtlib_description">We use libfmt for formatting strings (Custom License)</string>
<string name="oboe">oboe</string>
<string name="oboe_description">We use oboe for audio output during emulation (Apache License 2.0)</string>
<string name="vkhpp">Vulkan-Hpp</string>
<string name="vkhpp_description">We use Vulkan-Hpp for using Vulkan with a C++ API (Apache License 2.0)</string>
<string name="txml2">TinyXML2</string>
<string name="txml2_description">We use TinyXML2 for parsing the preference XML to retrieve settings from C++ (zLib License)</string>
<string name="jssim">java-string-similarity</string>
<string name="jssim_description">We use java-string-similarity to power our search functionality (Apache License 2.0)</string>
<string name="andx">AndroidX</string>
<string name="andx_description">We use AndroidX to have a consistent user-experience across Android versions (Apache License 2.0)</string>
<string name="amat">Android Material Components</string>
<string name="amat_description">We use Android Material Components to have a consistent material design UI (Apache License 2.0)</string>
<string name="ktstd">Kotlin Standard Library</string>
<string name="ktstd_description">We use Kotlin Standard Library for accessing convenience functions in Kotlin (Apache License 2.0)</string>
<string name="mtico">Material Design Icons</string>
<string name="mtico_description">We use Material Design Icons to have consistent iconography throughout the application (Apache License 2.0)</string>
<string name="open_sans">Open Sans</string>
<string name="open_sans_description">We use Open Sans as our FOSS shared font replacement for Latin, Korean and Chinese (Apache License 2.0)</string>
<string name="roboto">Roboto</string>
<string name="roboto_description">We use Roboto as our FOSS shared font replacement for Nintendo\'s extended character set (Apache License 2.0)</string>
<string name="source_sans_pro">Source Sans Pro</string>
<string name="source_sans_pro_description">We use Source Sans Pro as our FOSS shared font replacement for Extended Chinese (SIL Open Font License 1.1)</string>
<string name="skyline_license_description">Skyline is licensed under Mozilla Public License 2.0</string>
<string name="ryujinx_description">Ryujinx has been used for reference throughout the project due to their highly accurate implementations\n\n<b>Note: Skyline is not based on Ryujinx</b></string>
<string name="vkhpp_description">Vulkan-Hpp provides a C++ API for Vulkan</string>
<string name="vkma_description">Vulkan Memory Allocator provides a high-quality GPU memory allocator with UMA support</string>
<string name="khvkval_description">Khronos\'s Vulkan Validation Layer provides error-checking for Vulkan API calls in debug builds</string>
<string name="oboe_description">Oboe is used for high-performance audio output</string>
<string name="perfetto_description">Perfetto is used to profile and debug with detailed tracing</string>
<string name="fmtlib_description">{fmt} provides a modern C++ string formatting API</string>
<string name="boost_description">Boost provides high-quality implementations of containers and other convenience functions in C++</string>
<string name="frozen_description">Frozen provides compile-time immutable hash maps with a perfect hash function for faster lookups</string>
<string name="pugixml_description">pugixml is used to parse the preference XML to retrieve settings from C++</string>
<string name="opus_description">Opus Audio Codec provides a high-quality Opus decoder used to decode Opus-encoded audio provided by the guest</string>
<string name="mbedtls_description">Mbed TLS is used to decrypt AES-encrypted NCAs</string>
<string name="lz4_description">LZ4 is used to extract LZ4-compressed ELF sections from an NSO</string>
<string name="tzcode_description">tzcode provides a C API to access tzdb for time zone data</string>
<string name="jssim_description">Java String Similarity powers our search functionality</string>
<string name="andx_description">AndroidX provides a consistent user-experience across Android versions</string>
<string name="amat_description">Android Material Components provides a consistent Material Design UI</string>
<string name="ktstd_description">Kotlin Standard Library provides convenience functions in Kotlin</string>
<string name="dagger_description">Dagger provides a framework for compile-time dependency injection</string>
<string name="mtico_description">Material Design Icons provides consistent iconography throughout the application</string>
<string name="open_sans_description">Open Sans is used as our FOSS shared font replacement for Latin, Korean and Chinese</string>
<string name="roboto_description">Roboto is used as our FOSS shared font replacement for Nintendo\'s extended character set</string>
<string name="source_sans_pro_description">Source Sans Pro is used as our FOSS shared font replacement for Nintendo\'s extended Chinese character set</string>
<!-- Misc -->
<!--suppress AndroidLintUnusedResources -->
<string name="expand_button_title" tools:override="true">Expand</string>

View File

@ -7,7 +7,7 @@
</style>
<style name="ChipChoice.Material">
<item name="colorPrimary">@color/colorOnPrimary</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorOnPrimary">@color/colorPrimary</item>
</style>

View File

@ -3,23 +3,19 @@
<style name="BaseAppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryVariant">@color/colorPrimaryVariant</item>
<item name="colorOnPrimary">@color/colorOnPrimary</item>
<item name="colorSecondary">@color/colorOnPrimary</item>
<item name="colorOnPrimary">@color/colorPrimary</item>
<item name="colorSecondary">@color/colorPrimary</item>
<item name="colorOnSecondary">@color/colorPrimary</item>
<item name="android:statusBarColor">@color/colorPrimaryVariant</item>
<item name="android:navigationBarColor">@color/colorPrimaryVariant</item>
<item name="android:statusBarColor">@color/backgroundColor</item>
<item name="android:navigationBarColor">@color/backgroundColor</item>
<item name="android:colorBackground">@color/backgroundColor</item>
<item name="chipChoiceStyle">@style/ChipChoice</item>
</style>
<style name="AppTheme" parent="BaseAppTheme">
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:alertDialogTheme">@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog</item>
</style>
<style name="ToolbarTheme" parent="AppTheme">
<item name="colorPrimary">@color/colorPrimary</item>
</style>
</resources>

View File

@ -77,8 +77,8 @@
android:entries="@array/system_languages"
android:entryValues="@array/system_languages_val"
app:key="system_language"
app:title="@string/system_language"
app:refreshRequired="true"
app:title="@string/system_language"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory
@ -120,71 +120,145 @@
<PreferenceCategory
android:key="category_licenses"
android:title="@string/licenses"
app:initialExpandedChildrenCount="3">
app:initialExpandedChildrenCount="5">
<emu.skyline.preference.LicensePreference
libraryLicense="@string/mpl2_license"
libraryUrl="https://github.com/skyline-emu/skyline"
app:libraryCopyright="Copyright © 2019-2021 Skyline Team and Contributors (https://github.com/skyline-emu/)"
app:libraryLicense="@string/mpl2_license"
app:libraryUrl="https://github.com/skyline-emu/skyline"
app:summary="@string/skyline_license_description"
app:title="@string/app_name" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/fmtlib_license"
libraryUrl="https://github.com/fmtlib/fmt"
app:summary="@string/fmtlib_description"
app:title="@string/fmtlib" />
app:libraryCopyright="Copyright (c) Ryujinx Team and Contributors"
app:libraryLicense="@string/mit_license"
app:libraryUrl="https://github.com/Ryujinx/Ryujinx"
app:summary="@string/ryujinx_description"
app:title="Ryujinx" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://github.com/google/oboe"
app:summary="@string/oboe_description"
app:title="@string/oboe" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://github.com/KhronosGroup/Vulkan-Hpp"
app:libraryCopyright="Copyright 2015-2020 The Khronos Group Inc."
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/KhronosGroup/Vulkan-Hpp"
app:summary="@string/vkhpp_description"
app:title="@string/vkhpp" />
app:title="Vulkan-Hpp" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/zlib_license"
libraryUrl="https://github.com/leethomason/tinyxml2"
app:summary="@string/txml2_description"
app:title="@string/txml2" />
app:libraryCopyright="Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved."
app:libraryLicense="@string/mit_license"
app:libraryUrl="https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator"
app:summary="@string/vkma_description"
app:title="Vulkan Memory Allocator" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://github.com/tdebatty/java-string-similarity"
app:libraryCopyright="Copyright (c) 2015-2019 The Khronos Group Inc.\nCopyright (c) 2015-2019 Valve Corporation\nCopyright (c) 2015-2019 LunarG, Inc."
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/KhronosGroup/Vulkan-ValidationLayers"
app:summary="@string/khvkval_description"
app:title="Khronos Vulkan Validation Layer" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright 2021 The Android Open Source Project"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/google/oboe"
app:summary="@string/oboe_description"
app:title="Oboe" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright (c) 2017, The Android Open Source Project"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/google/perfetto"
app:summary="@string/perfetto_description"
app:title="Perfetto" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright © 2012 - present, Victor Zverovich"
app:libraryLicense="@string/libfmt_mit_license"
app:libraryUrl="https://github.com/fmtlib/fmt"
app:summary="@string/fmtlib_description"
app:title="{fmt}" />
<emu.skyline.preference.LicensePreference
app:libraryLicense="@string/boost_software_license"
app:libraryUrl="https://www.boost.org"
app:summary="@string/boost_description"
app:title="Boost" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright 2016 QuarksLab"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/serge-sans-paille/frozen"
app:summary="@string/frozen_description"
app:title="Frozen" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright (c) 2006-2019 Arseny Kapoulkine"
app:libraryLicense="@string/mit_license"
app:libraryUrl="https://github.com/zeux/pugixml"
app:summary="@string/pugixml_description"
app:title="pugixml" />
<emu.skyline.preference.LicensePreference
app:libraryLicense="@string/opus_bsd_3_clause_license"
app:libraryUrl="https://github.com/xiph/opus"
app:summary="@string/opus_description"
app:title="Opus Audio Codec" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright The Mbed TLS Contributors"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/ARMmbed/mbedtls"
app:summary="@string/mbedtls_description"
app:title="Mbed TLS" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright (c) 2011-2020, Yann Collet\nAll rights reserved."
app:libraryLicense="@string/bsd_2_clause_license"
app:libraryUrl="https://github.com/lz4/lz4"
app:summary="@string/lz4_description"
app:title="LZ4 Library" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright 1985, 1987, 1988 The Regents of the University of California.\nAll rights reserved."
app:libraryLicense="@string/bsd_3_clause_license"
app:libraryUrl="https://github.com/skyline-emu/tz"
app:summary="@string/tzcode_description"
app:title="tzcode" />
<emu.skyline.preference.LicensePreference
app:libraryCopyright="Copyright 2016 Thibault Debatty"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/tdebatty/java-string-similarity"
app:summary="@string/jssim_description"
app:title="@string/jssim" />
app:title="Java String Similarity" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://developer.android.com/jetpack/androidx"
app:libraryCopyright="Copyright (C) 2021 The Android Open Source Project"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://developer.android.com/jetpack/androidx"
app:summary="@string/andx_description"
app:title="@string/andx" />
app:title="AndroidX" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://github.com/material-components/material-components-android"
app:libraryCopyright="Copyright (C) 2021 The Android Open Source Project"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/material-components/material-components-android"
app:summary="@string/amat_description"
app:title="@string/amat" />
app:title="Android Material Components" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://kotlinlang.org/api/latest/jvm/stdlib"
app:libraryCopyright="Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://kotlinlang.org/api/latest/jvm/stdlib"
app:summary="@string/ktstd_description"
app:title="@string/ktstd" />
app:title="Kotlin Standard Library" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://material.io/resources/icons"
app:libraryCopyright="Copyright 2012-2021 The Dagger Authors"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://github.com/google/dagger"
app:summary="@string/dagger_description"
app:title="Dagger" />
<emu.skyline.preference.LicensePreference
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://material.io/resources/icons"
app:summary="@string/mtico_description"
app:title="@string/mtico" />
app:title="Material Design Icons" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://fonts.google.com/specimen/Open+Sans"
app:libraryCopyright="Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://fonts.google.com/specimen/Open+Sans"
app:summary="@string/open_sans_description"
app:title="@string/open_sans" />
app:title="Open Sans" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/apache2_license"
libraryUrl="https://fonts.google.com/specimen/Roboto"
app:libraryLicense="@string/apache2_license"
app:libraryUrl="https://fonts.google.com/specimen/Roboto"
app:summary="@string/roboto_description"
app:title="@string/roboto" />
app:title="Roboto" />
<emu.skyline.preference.LicensePreference
libraryLicense="@string/sil_open_font_license"
libraryUrl="https://fonts.google.com/specimen/Source+Sans+Pro"
app:libraryLicense="@string/sil_open_font_license"
app:libraryUrl="https://fonts.google.com/specimen/Source+Sans+Pro"
app:summary="@string/source_sans_pro_description"
app:title="@string/source_sans_pro" />
app:title="Source Sans Pro" />
</PreferenceCategory>
</androidx.preference.PreferenceScreen>

View File

@ -26,7 +26,6 @@ allprojects {
repositories {
google()
mavenCentral()
maven { url "https://google.bintray.com/flexbox-layout" }
}
}