Refactor open source licenses
This commit is contained in:
parent
26f287efbf
commit
96bec0abd0
@ -13,6 +13,8 @@ import com.afollestad.materialdialogs.MaterialDialog
|
|||||||
import de.mm20.launcher2.R
|
import de.mm20.launcher2.R
|
||||||
import de.mm20.launcher2.crashreporter.CrashReporter
|
import de.mm20.launcher2.crashreporter.CrashReporter
|
||||||
import de.mm20.launcher2.helper.DebugInformationDumper
|
import de.mm20.launcher2.helper.DebugInformationDumper
|
||||||
|
import de.mm20.launcher2.licenses.AppLicense
|
||||||
|
import de.mm20.launcher2.licenses.OpenSourceLicenses
|
||||||
|
|
||||||
|
|
||||||
class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
||||||
@ -64,11 +66,10 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val licenses = findPreference<Preference>("category_licenses") as PreferenceCategory
|
val licenses = findPreference<Preference>("category_licenses") as PreferenceCategory
|
||||||
for (l in LICENSES) {
|
for (l in OpenSourceLicenses.sortedBy { it.name.lowercase() }) {
|
||||||
val license = resources.obtainTypedArray(l)
|
|
||||||
val preference = Preference(activity, null, 0, R.style.Preference_Material)
|
val preference = Preference(activity, null, 0, R.style.Preference_Material)
|
||||||
preference.title = license.getString(0)
|
preference.title = l.name
|
||||||
preference.summary = license.getString(1)
|
preference.summary = l.description
|
||||||
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
||||||
parentFragmentManager.beginTransaction()
|
parentFragmentManager.beginTransaction()
|
||||||
.setCustomAnimations(
|
.setCustomAnimations(
|
||||||
@ -78,12 +79,11 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
|||||||
R.anim.preference_fragment_child_exit
|
R.anim.preference_fragment_child_exit
|
||||||
)
|
)
|
||||||
.replace(android.R.id.content,
|
.replace(android.R.id.content,
|
||||||
PreferencesLicenseFragment().apply { library = l })
|
PreferencesLicenseFragment(l))
|
||||||
.addToBackStack(null)
|
.addToBackStack(null)
|
||||||
.commit()
|
.commit()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
license.recycle()
|
|
||||||
licenses.addPreference(preference)
|
licenses.addPreference(preference)
|
||||||
}
|
}
|
||||||
findPreference<Preference>("crash_reporter")?.setOnPreferenceClickListener {
|
findPreference<Preference>("crash_reporter")?.setOnPreferenceClickListener {
|
||||||
@ -132,7 +132,7 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
|||||||
R.anim.preference_fragment_child_exit
|
R.anim.preference_fragment_child_exit
|
||||||
)
|
)
|
||||||
.replace(android.R.id.content,
|
.replace(android.R.id.content,
|
||||||
PreferencesLicenseFragment().apply { library = R.array.license_mm20launcher2 })
|
PreferencesLicenseFragment(AppLicense.get(requireContext())))
|
||||||
.addToBackStack(null)
|
.addToBackStack(null)
|
||||||
.commit()
|
.commit()
|
||||||
true
|
true
|
||||||
@ -143,34 +143,4 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
|
|||||||
super.onResume()
|
super.onResume()
|
||||||
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_about)
|
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_about)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
|
||||||
|
|
||||||
private val LICENSES = intArrayOf(
|
|
||||||
R.array.license_accompanist,
|
|
||||||
R.array.license_android_jetpack,
|
|
||||||
R.array.license_suncalc,
|
|
||||||
R.array.license_crashreporter,
|
|
||||||
R.array.license_draglinearlayout,
|
|
||||||
R.array.license_glide,
|
|
||||||
R.array.license_glide_transformations,
|
|
||||||
R.array.license_google_apiclient,
|
|
||||||
R.array.license_google_auth,
|
|
||||||
R.array.license_groupie,
|
|
||||||
R.array.license_gson,
|
|
||||||
R.array.license_jsoup,
|
|
||||||
R.array.license_kotlin_stdlib,
|
|
||||||
R.array.license_lottie,
|
|
||||||
R.array.license_mdicons,
|
|
||||||
R.array.license_material_components,
|
|
||||||
R.array.license_materialdialogs,
|
|
||||||
R.array.license_msal,
|
|
||||||
R.array.license_msgraph,
|
|
||||||
R.array.license_mxparser,
|
|
||||||
R.array.license_okhttp,
|
|
||||||
R.array.license_retrofit,
|
|
||||||
R.array.license_textdrawable,
|
|
||||||
R.array.license_viewpropertyobjectanimator
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,27 +14,18 @@ import androidx.browser.customtabs.CustomTabsIntent
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import de.mm20.launcher2.R
|
import de.mm20.launcher2.R
|
||||||
|
import de.mm20.launcher2.licenses.OpenSourceLibrary
|
||||||
|
|
||||||
class PreferencesLicenseFragment : Fragment() {
|
class PreferencesLicenseFragment(
|
||||||
var library: Int = 0
|
val library: OpenSourceLibrary
|
||||||
|
) : Fragment() {
|
||||||
|
|
||||||
@SuppressLint("ResourceType")
|
@SuppressLint("ResourceType")
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?): View? {
|
savedInstanceState: Bundle?): View? {
|
||||||
val view = inflater.inflate(R.layout.fragment_license, null, false)
|
val view = inflater.inflate(R.layout.fragment_license, null, false)
|
||||||
val license = resources.obtainTypedArray(library)
|
(activity as AppCompatActivity).supportActionBar?.title = library.name
|
||||||
(activity as AppCompatActivity).supportActionBar?.title = license.getString(0)
|
val url = library.url
|
||||||
val icon = view.findViewById<ImageView>(R.id.icon)
|
|
||||||
val iconUri = license.getString(2)
|
|
||||||
if (iconUri == null) icon.visibility = View.GONE
|
|
||||||
else {
|
|
||||||
Glide
|
|
||||||
.with(icon)
|
|
||||||
.load(iconUri)
|
|
||||||
.into(icon)
|
|
||||||
icon.visibility = View.VISIBLE
|
|
||||||
}
|
|
||||||
val url = license.getString(6)
|
|
||||||
val website = view.findViewById<TextView>(R.id.website)
|
val website = view.findViewById<TextView>(R.id.website)
|
||||||
website.setOnClickListener {
|
website.setOnClickListener {
|
||||||
val intent = CustomTabsIntent.Builder()
|
val intent = CustomTabsIntent.Builder()
|
||||||
@ -47,14 +38,13 @@ class PreferencesLicenseFragment : Fragment() {
|
|||||||
intent.launchUrl(activity as AppCompatActivity, Uri.parse(url))
|
intent.launchUrl(activity as AppCompatActivity, Uri.parse(url))
|
||||||
}
|
}
|
||||||
val description = view.findViewById<TextView>(R.id.description)
|
val description = view.findViewById<TextView>(R.id.description)
|
||||||
description.text = license.getString(1)
|
description.text = library.description
|
||||||
val licenseTitle = view.findViewById<TextView>(R.id.licenseTitle)
|
val licenseTitle = view.findViewById<TextView>(R.id.licenseTitle)
|
||||||
val licenseText = view.findViewById<TextView>(R.id.licenseText)
|
val licenseText = view.findViewById<TextView>(R.id.licenseText)
|
||||||
val licenseCopyright = view.findViewById<TextView>(R.id.licenseCopyright)
|
val licenseCopyright = view.findViewById<TextView>(R.id.licenseCopyright)
|
||||||
licenseTitle.text = license.getString(3)
|
licenseTitle.text = getString(library.licenseName)
|
||||||
licenseCopyright.text = license.getString(4)
|
licenseCopyright.text = library.copyrightNote
|
||||||
licenseText.text = resources.openRawResource(license.getResourceId(5, 0)).reader().readText()
|
licenseText.text = resources.openRawResource(library.licenseText).reader().readText()
|
||||||
license.recycle()
|
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,12 +8,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/icon"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="100dp"
|
|
||||||
android:scaleType="centerInside" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/description"
|
android:id="@+id/description"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@ -1,313 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
(1) Name of library
|
|
||||||
(2) Short description
|
|
||||||
(3) Image / Icon URL
|
|
||||||
(4) License name
|
|
||||||
(5) Copyright note
|
|
||||||
(6) License text (as raw resource)
|
|
||||||
(7) Link to library web page / repository
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<array name="license_mm20launcher2">
|
|
||||||
<item>@string/app_name</item>
|
|
||||||
<item>@string/preference_about_license</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/gpl3_name</item>
|
|
||||||
<item>Copyright (c) 2021 MM20</item>
|
|
||||||
<item>@raw/license_gpl_3</item>
|
|
||||||
<item>https://github.com/MM2-0/Kvaesitso</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_kotlin_stdlib">
|
|
||||||
<item>Kotlin Standard Library</item>
|
|
||||||
<item>Kotlin Standard Library</item>
|
|
||||||
<item>
|
|
||||||
https://kotlinlang.org/assets/images/apple-touch-icon-144x144.png
|
|
||||||
</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://kotlinlang.org/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_android_jetpack">
|
|
||||||
<item>Android Jetpack</item>
|
|
||||||
<item>A collection of Android software components to make it easier to develop great Android
|
|
||||||
apps.
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
https://2.bp.blogspot.com/-2ZMkSo7CnUs/WvMvSK0u9RI/AAAAAAAAFZA/zJOCZ8LUM8ol3hcHYHwVyOpc3iiYaxquACLcBGAs/s1600/Jetpack_logo.png
|
|
||||||
</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://developer.android.com/topic/libraries/support-library/index.html</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_accompanist">
|
|
||||||
<item>Accompanist</item>
|
|
||||||
<item>Accompanist is a group of libraries that aim to supplement Jetpack Compose with
|
|
||||||
features that are commonly required by developers but not yet available.
|
|
||||||
</item>
|
|
||||||
<item>https://raw.githubusercontent.com/google/accompanist/main/docs/header.png</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright 2020 The Android Open Source Project</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://google.github.io/accompanist/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_material_components">
|
|
||||||
<item>Material Components for Android</item>
|
|
||||||
<item>
|
|
||||||
Material Components for Android (MDC-Android) help developers execute Material Design.
|
|
||||||
</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://material.io/develop/android/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_lottie">
|
|
||||||
<item>Lottie</item>
|
|
||||||
<item>Lottie is a library for Android, iOS, Web, and Windows that parses Adobe After Effects
|
|
||||||
animations exported as json with Bodymovin and renders them natively on mobile and on
|
|
||||||
the web.
|
|
||||||
</item>
|
|
||||||
<item>https://airbnb.io/lottie/images/logo.webp</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://airbnb.io/lottie/#/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_okhttp">
|
|
||||||
<item>OkHttp</item>
|
|
||||||
<item><![CDATA[An HTTP & HTTP/2 client for Android and Java applications]]></item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright 2019 Square, Inc.</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://square.github.io/okhttp/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_retrofit">
|
|
||||||
<item>Retrofit</item>
|
|
||||||
<item>A type-safe HTTP client for Android and Java</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright 2013 Square, Inc.</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://square.github.io/retrofit/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_gson">
|
|
||||||
<item>Gson</item>
|
|
||||||
<item>Gson is a Java library that can be used to convert Java Objects into their JSON representation.</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright 2008 Google Inc.</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/google/gson</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_suncalc">
|
|
||||||
<item>commons-suncalc</item>
|
|
||||||
<item>A Java library for calculation of sun and moon positions and phases.</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/shred/commons-suncalc</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_jsoup">
|
|
||||||
<item>Jsoup</item>
|
|
||||||
<item>A Java library for working with real-world HTML</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item><![CDATA[Copyright (c) 2009-2021 Jonathan Hedley <https://jsoup.org/>]]></item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://jsoup.org/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_textdrawable">
|
|
||||||
<item>TextDrawable</item>
|
|
||||||
<item>A light-weight library providing images with letter/text like the Gmail app</item>
|
|
||||||
<item>https://github.com/amulyakhare/TextDrawable/raw/master/screens/screen6.png</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item>Copyright (c) 2014 Amulya Khare</item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://github.com/amulyakhare/TextDrawable</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_glide">
|
|
||||||
<item>Glide</item>
|
|
||||||
<item>A fast and efficient open source media management and image loading framework for
|
|
||||||
Android
|
|
||||||
</item>
|
|
||||||
<item>https://raw.githubusercontent.com/bumptech/glide/master/static/glide_logo.png</item>
|
|
||||||
<item>@string/glide_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_glide</item>
|
|
||||||
<item>https://bumptech.github.io/glide/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_glide_transformations">
|
|
||||||
<item>Glide Transformations</item>
|
|
||||||
<item>An Android transformation library providing a variety of image transformations for
|
|
||||||
Glide
|
|
||||||
</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright (C) 2020 Wasabeef</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/wasabeef/glide-transformations</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_materialdialogs">
|
|
||||||
<item>Material Dialogs</item>
|
|
||||||
<item>Easy to use material design dialogs</item>
|
|
||||||
<item>
|
|
||||||
https://raw.githubusercontent.com/afollestad/material-dialogs/master/art/showcase20.jpg
|
|
||||||
</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/afollestad/material-dialogs</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_groupie">
|
|
||||||
<item>Groupie</item>
|
|
||||||
<item>Groupie is a simple, flexible library for complex RecyclerView layouts.</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://github.com/lisawray/groupie</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_draglinearlayout">
|
|
||||||
<item>DragLinearLayout</item>
|
|
||||||
<item>An Android LinearLayout that supports draggable and swappable child Views</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item>Copyright (c) 2014 Justas Medeisis</item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://github.com/justasm/DragLinearLayout</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_viewpropertyobjectanimator">
|
|
||||||
<item>ViewPropertyValueAnimator</item>
|
|
||||||
<item>Wrapper of the ObjectAnimator that can be used similarly to ViewPropertyAnimator.
|
|
||||||
</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>Copyright 2015 Bartosz Lipiński</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/blipinsk/ViewPropertyObjectAnimator</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_nextcloud_sso">
|
|
||||||
<item>Nextcloud SingleSignOn</item>
|
|
||||||
<item>This library allows you to use accounts as well as the network stack provided by the
|
|
||||||
nextcloud files app.
|
|
||||||
</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/gpl3_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_gpl_3</item>
|
|
||||||
<item>https://github.com/nextcloud/Android-SingleSignOn</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_mxparser">
|
|
||||||
<item>mXparser</item>
|
|
||||||
<item>A super easy, rich, fast and highly flexible math expression parser library</item>
|
|
||||||
<item>http://mathparser.org/wp-content/uploads/2017/07/mxparser-logo.png</item>
|
|
||||||
<item>@string/bsd_2clause_name</item>
|
|
||||||
<item>Copyright 2010 - 2020 Mariusz Gromada. All rights reserved.</item>
|
|
||||||
<item>@raw/license_bsd_2clause</item>
|
|
||||||
<item>https://mathparser.org/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_google_auth">
|
|
||||||
<item>Google Auth Library</item>
|
|
||||||
<item>Open source authentication client library for Java.</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/bsd_3clause_name</item>
|
|
||||||
<item>
|
|
||||||
Copyright 2014, Google Inc. All rights reserved.</item>
|
|
||||||
<item>@raw/license_bsd_3clause</item>
|
|
||||||
<item>https://github.com/googleapis/google-auth-library-java</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_google_apiclient">
|
|
||||||
<item>Google APIs Client Library for Android</item>
|
|
||||||
<item>The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/googleapis/google-api-java-client</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_msgraph">
|
|
||||||
<item>Microsoft Graph Android SDK</item>
|
|
||||||
<item>Deprecated API client for Microsoft Graph APIs</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item>Copyright (c) 2015 Microsoft Corporation</item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://github.com/microsoftgraph/msgraph-sdk-android</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_msal">
|
|
||||||
<item>Microsoft Authentication Library (MSAL) for Android</item>
|
|
||||||
<item>The MSAL library for Android gives your app the ability to use the Microsoft Cloud by
|
|
||||||
supporting Microsoft Azure Active Directory and Microsoft accounts in a converged
|
|
||||||
experience using industry standard OAuth2 and OpenID Connect. The library also supports
|
|
||||||
Azure AD B2C.
|
|
||||||
</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@string/mit_license_name</item>
|
|
||||||
<item>Copyright (c) Microsoft Corporation</item>
|
|
||||||
<item>@raw/license_mit</item>
|
|
||||||
<item>https://github.com/AzureAD/microsoft-authentication-library-for-android</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_crashreporter">
|
|
||||||
<item>CrashReporter</item>
|
|
||||||
<item>CrashReporter is a handy tool to capture app crashes and save them in a file.</item>
|
|
||||||
<item>
|
|
||||||
https://github.com/balsikandar/CrashReporter/raw/master/assets/crash_reporter_banner.png
|
|
||||||
</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>"
|
|
||||||
Copyright (C) 2016 Bal Sikandar
|
|
||||||
Copyright (C) 2011 Android Open Source Project
|
|
||||||
"
|
|
||||||
</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://github.com/MindorksOpenSource/CrashReporter</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<array name="license_mdicons">
|
|
||||||
<item>Material Design Icons</item>
|
|
||||||
<item>Beautifully crafted, delightful, and easy to use in your web, Android, and iOS
|
|
||||||
projects
|
|
||||||
</item>
|
|
||||||
<item>https://material.io/tools/icons/static/ic_icons_192px_light.svg</item>
|
|
||||||
<item>@string/apache_license_name</item>
|
|
||||||
<item>@null</item>
|
|
||||||
<item>@raw/license_apache_2</item>
|
|
||||||
<item>https://material.io/icons/</item>
|
|
||||||
</array>
|
|
||||||
|
|
||||||
<string name="mit_license_name" translatable="false">MIT license</string>
|
|
||||||
<string name="bsd_2clause_name" translatable="false">Simplified BSD license</string>
|
|
||||||
<string name="bsd_3clause_name" translatable="false">Modified BSD license</string>
|
|
||||||
<string name="apache_license_name" translatable="false">Apache license 2.0</string>
|
|
||||||
<string name="glide_license_name" translatable="false">Glide license</string>
|
|
||||||
<string name="gpl3_name" translatable="false">GNU General Public License Version 3</string>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@ -47,5 +47,6 @@ dependencies {
|
|||||||
implementation(libs.bundles.materialdialogs)
|
implementation(libs.bundles.materialdialogs)
|
||||||
|
|
||||||
implementation(project(":ktx"))
|
implementation(project(":ktx"))
|
||||||
|
implementation(project(":i18n"))
|
||||||
|
|
||||||
}
|
}
|
||||||
17
base/src/main/java/de/mm20/launcher2/licenses/AppLicense.kt
Normal file
17
base/src/main/java/de/mm20/launcher2/licenses/AppLicense.kt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package de.mm20.launcher2.licenses
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import de.mm20.launcher2.base.R
|
||||||
|
|
||||||
|
object AppLicense {
|
||||||
|
fun get(context: Context): OpenSourceLibrary {
|
||||||
|
return OpenSourceLibrary(
|
||||||
|
name = context.getString(R.string.app_name),
|
||||||
|
description = context.getString(R.string.preference_about_license_summary),
|
||||||
|
copyrightNote = "Copyright (C) 2021 MM2-0",
|
||||||
|
licenseName = R.string.gpl3_name,
|
||||||
|
licenseText = R.raw.license_gpl_3,
|
||||||
|
url = "https://github.com/Kvaesitso"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package de.mm20.launcher2.licenses
|
||||||
|
|
||||||
|
import androidx.annotation.RawRes
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
|
||||||
|
data class OpenSourceLibrary(
|
||||||
|
val name: String,
|
||||||
|
val description: String? = null,
|
||||||
|
@StringRes val licenseName: Int,
|
||||||
|
val copyrightNote: String? = null,
|
||||||
|
@RawRes val licenseText: Int,
|
||||||
|
val url: String
|
||||||
|
)
|
||||||
@ -0,0 +1,188 @@
|
|||||||
|
package de.mm20.launcher2.licenses
|
||||||
|
|
||||||
|
import de.mm20.launcher2.base.R
|
||||||
|
|
||||||
|
val OpenSourceLicenses = arrayOf(
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Kotlin Standard Library",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://kotlinlang.org/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Android Jetpack",
|
||||||
|
description = "A collection of Android software components to make it easier to develop great Android apps.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://developer.android.com/jetpack"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Accompanist",
|
||||||
|
description = "Accompanist is a group of libraries that aim to supplement Jetpack Compose with features that are commonly required by developers but not yet available.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright 2020 The Android Open Source Project",
|
||||||
|
url = "https://developer.android.com/jetpack"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Material Components for Android",
|
||||||
|
description = "Material Components for Android (MDC-Android) help developers execute Material Design.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://material.io/develop/android/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Lottie",
|
||||||
|
description = "Lottie is a library for Android, iOS, Web, and Windows that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile and on the web.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://airbnb.io/lottie/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "OkHttp",
|
||||||
|
description = "An HTTP & HTTP/2 client for Android and Java applications",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright 2019 Square, Inc.",
|
||||||
|
url = "https://square.github.io/okhttp/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Retrofit",
|
||||||
|
description = "A type-safe HTTP client for Android and Java",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright 2013 Square, Inc.",
|
||||||
|
url = "https://square.github.io/retrofit/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Gson",
|
||||||
|
description = "Gson is a Java library that can be used to convert Java Objects into their JSON representation.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright 2008 Google Inc.",
|
||||||
|
url = "https://github.com/google/gson/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "commons-suncalc",
|
||||||
|
description = "A Java library for calculation of sun and moon positions and phases.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://github.com/shred/commons-suncalc"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Jsoup",
|
||||||
|
description = "A Java library for working with real-world HTML",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
copyrightNote = "Copyright (c) 2009-2021 Jonathan Hedley <https://jsoup.org/>",
|
||||||
|
url = "https://jsoup.org/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "TextDrawable",
|
||||||
|
description = "A light-weight library providing images with letter/text like the Gmail app",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
copyrightNote = "Copyright (c) 2014 Amulya Khare",
|
||||||
|
url = "https://github.com/amulyakhare/TextDrawable"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Glide",
|
||||||
|
description = "A fast and efficient open source media management and image loading framework for Android",
|
||||||
|
licenseName = R.string.glide_license_name,
|
||||||
|
licenseText = R.raw.license_glide,
|
||||||
|
url = "https://bumptech.github.io/glide/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Glide Transformations",
|
||||||
|
description = "An Android transformation library providing a variety of image transformations for Glide",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright (C) 2020 Wasabeef",
|
||||||
|
url = "https://github.com/wasabeef/glide-transformations"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Material Dialogs",
|
||||||
|
description = "Easy to use material design dialogs",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright (C) 2020 Wasabeef",
|
||||||
|
url = "https://github.com/afollestad/material-dialogs"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Groupie",
|
||||||
|
description = "Easy to use material design dialogs",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
url = "https://github.com/lisawray/groupie"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "DragLinearLayout",
|
||||||
|
description = "An Android LinearLayout that supports draggable and swappable child Views",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
copyrightNote = "Copyright (c) 2014 Justas Medeisis",
|
||||||
|
url = "https://github.com/justasm/DragLinearLayout"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "ViewPropertyValueAnimator",
|
||||||
|
description = "Wrapper of the ObjectAnimator that can be used similarly to ViewPropertyAnimator.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright 2015 Bartosz Lipiński",
|
||||||
|
url = "https://github.com/blipinsk/ViewPropertyObjectAnimator"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "mXparser",
|
||||||
|
description = "A super easy, rich, fast and highly flexible math expression parser library",
|
||||||
|
licenseName = R.string.bsd_2clause_name,
|
||||||
|
licenseText = R.raw.license_bsd_2clause,
|
||||||
|
copyrightNote = "Copyright 2010 - 2020 Mariusz Gromada. All rights reserved.",
|
||||||
|
url = "https://mathparser.org/"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Google Auth Library",
|
||||||
|
description = "Open source authentication client library for Java.",
|
||||||
|
licenseName = R.string.bsd_3clause_name,
|
||||||
|
licenseText = R.raw.license_bsd_3clause,
|
||||||
|
copyrightNote = "Copyright 2014, Google Inc. All rights reserved.",
|
||||||
|
url = "https://github.com/googleapis/google-auth-library-java"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Google APIs Client Library for Android",
|
||||||
|
description = "The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://github.com/googleapis/google-api-java-client"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Microsoft Graph Android SDK",
|
||||||
|
description = "Deprecated API client for Microsoft Graph APIs",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
copyrightNote = "Copyright (c) 2015 Microsoft Corporation",
|
||||||
|
url = "https://github.com/microsoftgraph/msgraph-sdk-android"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Microsoft Authentication Library (MSAL) for Android",
|
||||||
|
description = "The MSAL library for Android gives your app the ability to use the Microsoft Cloud by supporting Microsoft Azure Active Directory and Microsoft accounts in a converged experience using industry standard OAuth2 and OpenID Connect. The library also supports Azure AD B2C.",
|
||||||
|
licenseName = R.string.mit_license_name,
|
||||||
|
licenseText = R.raw.license_mit,
|
||||||
|
copyrightNote = "Copyright (c) Microsoft Corporation",
|
||||||
|
url = "https://github.com/AzureAD/microsoft-authentication-library-for-android"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "CrashReporter",
|
||||||
|
description = "CrashReporter is a handy tool to capture app crashes and save them in a file.",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
copyrightNote = "Copyright (C) 2016 Bal Sikandar\nCopyright (C) 2011 Android Open Source Project",
|
||||||
|
url = "https://github.com/MindorksOpenSource/CrashReporter"
|
||||||
|
),
|
||||||
|
OpenSourceLibrary(
|
||||||
|
name = "Material Design Icons",
|
||||||
|
description = "Beautifully crafted, delightful, and easy to use in your web, Android, and iOS projects",
|
||||||
|
licenseName = R.string.apache_license_name,
|
||||||
|
licenseText = R.raw.license_apache_2,
|
||||||
|
url = "https://material.io/icons/"
|
||||||
|
),
|
||||||
|
)
|
||||||
9
base/src/main/res/values/licenses.xml
Normal file
9
base/src/main/res/values/licenses.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="mit_license_name" translatable="false">MIT license</string>
|
||||||
|
<string name="bsd_2clause_name" translatable="false">Simplified BSD license</string>
|
||||||
|
<string name="bsd_3clause_name" translatable="false">Modified BSD license</string>
|
||||||
|
<string name="apache_license_name" translatable="false">Apache license 2.0</string>
|
||||||
|
<string name="glide_license_name" translatable="false">Glide license</string>
|
||||||
|
<string name="gpl3_name" translatable="false">GNU General Public License Version 3</string>
|
||||||
|
</resources>
|
||||||
Loading…
x
Reference in New Issue
Block a user