Refactor open source licenses

This commit is contained in:
MM20 2021-09-26 16:35:27 +02:00
parent 26f287efbf
commit 96bec0abd0
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
15 changed files with 245 additions and 376 deletions

View File

@ -13,6 +13,8 @@ import com.afollestad.materialdialogs.MaterialDialog
import de.mm20.launcher2.R
import de.mm20.launcher2.crashreporter.CrashReporter
import de.mm20.launcher2.helper.DebugInformationDumper
import de.mm20.launcher2.licenses.AppLicense
import de.mm20.launcher2.licenses.OpenSourceLicenses
class PreferencesAboutFragment : PreferenceFragmentCompat() {
@ -64,11 +66,10 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
}
val licenses = findPreference<Preference>("category_licenses") as PreferenceCategory
for (l in LICENSES) {
val license = resources.obtainTypedArray(l)
for (l in OpenSourceLicenses.sortedBy { it.name.lowercase() }) {
val preference = Preference(activity, null, 0, R.style.Preference_Material)
preference.title = license.getString(0)
preference.summary = license.getString(1)
preference.title = l.name
preference.summary = l.description
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
parentFragmentManager.beginTransaction()
.setCustomAnimations(
@ -78,12 +79,11 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
R.anim.preference_fragment_child_exit
)
.replace(android.R.id.content,
PreferencesLicenseFragment().apply { library = l })
PreferencesLicenseFragment(l))
.addToBackStack(null)
.commit()
true
}
license.recycle()
licenses.addPreference(preference)
}
findPreference<Preference>("crash_reporter")?.setOnPreferenceClickListener {
@ -132,7 +132,7 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
R.anim.preference_fragment_child_exit
)
.replace(android.R.id.content,
PreferencesLicenseFragment().apply { library = R.array.license_mm20launcher2 })
PreferencesLicenseFragment(AppLicense.get(requireContext())))
.addToBackStack(null)
.commit()
true
@ -143,34 +143,4 @@ class PreferencesAboutFragment : PreferenceFragmentCompat() {
super.onResume()
(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
)
}
}

View File

@ -14,27 +14,18 @@ import androidx.browser.customtabs.CustomTabsIntent
import androidx.fragment.app.Fragment
import com.bumptech.glide.Glide
import de.mm20.launcher2.R
import de.mm20.launcher2.licenses.OpenSourceLibrary
class PreferencesLicenseFragment : Fragment() {
var library: Int = 0
class PreferencesLicenseFragment(
val library: OpenSourceLibrary
) : Fragment() {
@SuppressLint("ResourceType")
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_license, null, false)
val license = resources.obtainTypedArray(library)
(activity as AppCompatActivity).supportActionBar?.title = license.getString(0)
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)
(activity as AppCompatActivity).supportActionBar?.title = library.name
val url = library.url
val website = view.findViewById<TextView>(R.id.website)
website.setOnClickListener {
val intent = CustomTabsIntent.Builder()
@ -47,14 +38,13 @@ class PreferencesLicenseFragment : Fragment() {
intent.launchUrl(activity as AppCompatActivity, Uri.parse(url))
}
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 licenseText = view.findViewById<TextView>(R.id.licenseText)
val licenseCopyright = view.findViewById<TextView>(R.id.licenseCopyright)
licenseTitle.text = license.getString(3)
licenseCopyright.text = license.getString(4)
licenseText.text = resources.openRawResource(license.getResourceId(5, 0)).reader().readText()
license.recycle()
licenseTitle.text = getString(library.licenseName)
licenseCopyright.text = library.copyrightNote
licenseText.text = resources.openRawResource(library.licenseText).reader().readText()
return view
}
}

View File

@ -8,12 +8,6 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="100dp"
android:scaleType="centerInside" />
<TextView
android:id="@+id/description"
android:layout_width="match_parent"

View File

@ -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>

View File

@ -47,5 +47,6 @@ dependencies {
implementation(libs.bundles.materialdialogs)
implementation(project(":ktx"))
implementation(project(":i18n"))
}

View 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"
)
}
}

View File

@ -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
)

View File

@ -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/"
),
)

View 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>