master -
License Fragment Library for Android
This library for easy create fragment for display open-source licenses.
And library depend on fragment from android.app.Fragment
and android.support.v4.app.Fragment
(Support Library v4) and use RecyclerView Library v7 on RecyclerViewLicenseFragment
class.
- 1 line create Fragment for display open-source licenses
- Support
<fragment>
tag - Auto generate license chain. (Ex - If you add Otto library. It will automatic add OkHttp library.)
- 3 Simple UI (
ScrollViewLicenseFragment
,ListViewLicenseFragment
andRecyclerViewLicenseFragment
) - Add other licenses
- Customize UI
- Apache License 2.0
- BSD 3-Clause
- BSD 2-Clause
- GPL-3.0
- MIT license
- Eclipse Public License 1.0
Reference - http://opensource.org/licenses
- master branch for
android.app.Fragment
- support-v4 branch for
android.support.v4.app.Fragment
To use this library in your android project, just simply add the following dependency into your build.gradle.
- Gradle
For android.app.Fragment
dependencies {
compile 'com.artit-k:license-fragment:1.3.0'
}
or for android.support.v4.app.Fragment
dependencies {
compile 'com.artit-k:license-fragment-support-v4:1.3.0'
}
- Maven
For android.app.Fragment
<dependency>
<groupId>com.artit-k</groupId>
<artifactId>license-fragment</artifactId>
<version>1.3.0</version>
</dependency>
or for android.support.v4.app.Fragment
<dependency>
<groupId>com.artit-k</groupId>
<artifactId>license-fragment-support-v4</artifactId>
<version>1.3.0</version>
</dependency>
Example data.
ArrayList<Integer> licenseIds = new ArrayList<>();
licenseIds.add(LicenseID.GSON); // Add License ID from LicenseID class
licenseIds.add(LicenseID.RETROFIT); // Add License ID from LicenseID class
- Create License Fragment.
// Ex1 - Call newInstance() using ArrayList<Integer>
Fragment fragment = ScrollViewLicenseFragment.newInstance(licenseIds);
// Ex2 - Call newInstance() using array of int
Fragment fragment = ListViewLicenseFragment.newInstance(new int[] { LicenseID.PICASSO });
// Ex3 - Call newInstance() using without parameter
Fragment fragment = RecyclerViewLicenseFragment.newInstance();
- Define
whatever
namespace on root view in your layout.
<YOUR_ROOT_VIEW
...
xmlns:whatever="http://schemas.android.com/apk/res-auto"
...>
- Add
fragment
tag with attibutewhatever:lfLicenseID
.
Replace {PACKAGE_NAME}
with...
com.artitk.licensefragment
for android.app.Fragment
com.artitk.licensefragment.support.v4
for android.support.v4.app.Fragment
<!-- Ex1 - fragment tag with attribute whatever:lfLicenseID -->
<fragment
android:id="@+id/sv_license_fragment"
android:name="{PACKAGE_NAME}.ScrollViewLicenseFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
whatever:lfLicenseID="GSON|RETROFIT" />
<!-- Ex2 - fragment tag with attribute whatever:lfLicenseID -->
<fragment
android:id="@+id/lv_license_fragment"
android:name="{PACKAGE_NAME}.ListViewLicenseFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
whatever:lfLicenseID="PICASSO"
tools:layout="@layout/layout_item_license" />
<!-- Ex3 - fragment tag without attribute whatever:lfLicenseID -->
<fragment
android:id="@+id/rv_license_fragment"
android:name="{PACKAGE_NAME}.RecyclerViewLicenseFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/layout_item_license" />
- Optional - Turn on/off License Chain by attibute
whatever:lfLicenseChain
.
whatever:lfLicenseChain="false" <!-- Disable license chain (Default : Enable) -->
- Optional - Customize UI by attibutes
whatever:lfTitleBackgroundColor
,whatever:lfTitleTextColor
,whatever:lfLicenseBackgroundColor
andwhatever:lfLicenseTextColor
.
whatever:lfTitleBackgroundColor="@color/title_bg_color"
whatever:lfTitleTextColor="@color/title_text_color"
whatever:lfLicenseBackgroundColor="@color/license_bg_color"
whatever:lfLicenseTextColor="@color/license_text_color"
- Turn on/off License Chain feature.
fragment.withLicenseChain(false); // Disable license chain (Default : Enable)
- Add More Licenses and Custom licenses.
ArrayList<License> customLicenses = new ArrayList<>();
customLicenses.add(new License(this, "Test Library 1", LicenseType.MIT_LICENSE, "2000-2001", "Test Owner 1"));
customLicenses.add(new License(this, "Test Library 2", LicenseType.GPL_30, "2002", "Test Owner 2"));
fragment.addLicense(new int[] { LicenseID.PICASSO }) // Add More Licenses by array of int
fragment.addLicense(licenseIds) // Add More Licenses by ArrayList<Integer>
fragment.addCustomLicense(customLicenses); // Add Custom Licenses by ArrayList<License>
- Add License with Your own license template.
// Add License Template in /res/raw
ArrayList<License> customLicenses = new ArrayList<>();
licenses.add(new License(this, "Custom License 1", R.raw.wtfpl, "2004", "Test Owner 3"));
licenses.add(new License(this, "Custom License 2", R.raw.x11, "2005", "Test Owner 4"));
- License template variable (all are Optional)
`%1$s` Year
`%2$s` Owner Name
`%3$s` Project/Library Name
- Customize UI.
CustomUI customUI = new CustomUI() // Create Customize UI from CustomUI class
.setTitleBackgroundColor(Color.parseColor("#7fff7f"))
.setTitleTextColor(getResources().getColor(android.R.color.holo_green_dark))
.setLicenseBackgroundColor(Color.rgb(127, 223, 127))
.setLicenseTextColor(Color.DKGRAY);
fragment.setCustomUI(customUI); // Set Customize UI
Copyright 2015 Artit Kiuwilai
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For contributor, check TODO
list.