Licenser

Additional

Language
Kotlin
Version
2.0.0 (May 25, 2020)
Created
Feb 11, 2018
Updated
Jul 10, 2020
Owner
Marcos Calvo García (marcoscgdev)
Contributors
Marcos Calvo García (marcoscgdev)
Aubtin Samai (Aubtin)
2
Activity
Badge
Generate
Download
Source code

Announcement

Licenser

An android library to display the licenses of your application libraries in a easy way.

Now with custom licenses support.


Now add the dependency to your app build.gradle file:

implementation 'com.github.marcoscgdev:Licenser:2.0.0'

Step: 2 - creating a dialog

You have to use an AppCompatActivity

LicenserDialog(this)
        .setTitle("Licenses")
        .setCustomNoticeTitle("Notices for files:")
        .setBackgroundColor(Color.RED) // Optional
        .setLibrary(Library("Android Support Libraries",
                "https://developer.android.com/topic/libraries/support-library/index.html",
                License.APACHE2)) // APACHE deprecated, see wiki
        .setLibrary(Library("Example Library",
                "https://github.com/marcoscgdev",
                License.APACHE2)) // APACHE deprecated, see wiki
        .setLibrary(Library("Licenser",
                "https://github.com/marcoscgdev/Licenser",
                License.MIT))
        .setPositiveButton(android.R.string.ok, object:DialogInterface.OnClickListener() {
            fun onClick(dialogInterface:DialogInterface, i:Int) {
                // TODO: 11/02/2018
            }
        })
        .show()

You can also set a custom dialog theme:

LicenserDialog(this, R.style.DialogStyle)
        ...

Library structure:

val lib1 = Library(var title: String, var url: String?, var license: License)

NEW: License structure:

// Use a license code like APACHE2 or MIT
val lic1 = License(val code: String, var htmlContent: String)

LICENSE TYPES (At this moment):

 - License.APACHE1 // Apache v1
 - License.APACHE1_1 // Apache v1.1
 - License.APACHE2 // Apache v2
 - License.BSD3 // BSD v3
 - License.BSD4 // BSD v4
 - License.BSL // BSL
 - License.CREATIVE_COMMONS // Creative commons
 - License.FREEBSD // FreeBSD
 - License.GNU2 // GNU v2
 - License.GNU3 // GNU v3
 - License.ISC // ISC
 - License.LGPL2_1 // GNU Lesser v2.1
 - License.LGPL3 // GNU Lesser v3
 - License.MIT // MIT
 - License.MPL1 // MPL v1
 - License.MPL1_1 // MPL v1.1
 - License.MPL2 // MPL v2
 - License.NTP // NTP
 - License.OFL1_1 // SIL Open Font License v1.1

Please, if you need a license that is not yet in this list, try to create a custom license.

val lic1 = License("CUSTOM_LICENSE_CODE", customLicenseHtmlContent)

val lib1 = Library("Library name", "https://github.com/marcoscgdev", lic1)

If you don't want a dialog, you can use the Licenser class:

var licenser = Licenser()
        .setCustomNoticeTitle("Notices for files:")
        .setLibrary(Library("Android Support Libraries",
                "https://developer.android.com/topic/libraries/support-library/index.html",
                License.APACHE))
        .setLibrary(Library("Example Library",
                "https://github.com/marcoscgdev",
                License.APACHE))
        .setLibrary(Library("Licenser",
                "https://github.com/marcoscgdev/Licenser",
                License.MIT))

And show it in a webview:

webView.loadData(licenser.htmlContent, "text/html; charset=UTF-8", null)

Extra functions

You can access this functions with both classes

var licenses = licenser.getHTMLContent() // HTML content
var apacheLibraries = licenser.getApacheLibraries()
var mitLibraries = licenser.getMitLibraries()
var gnuLibraries = licenser.getGnuLibraries()

See the


sample project to clarify any queries you may have.