summaryrefslogtreecommitdiff
path: root/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java
diff options
context:
space:
mode:
Diffstat (limited to 'aboutit/src/main/java/com/snilius/aboutit/AboutIt.java')
-rw-r--r--aboutit/src/main/java/com/snilius/aboutit/AboutIt.java257
1 files changed, 0 insertions, 257 deletions
diff --git a/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java b/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java
deleted file mode 100644
index 1a2195f..0000000
--- a/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java
+++ /dev/null
@@ -1,257 +0,0 @@
-package com.snilius.aboutit;
-
-import android.app.Activity;
-import android.support.annotation.IdRes;
-import android.support.annotation.StringRes;
-import android.text.util.Linkify;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * <h1>AboutIt</h1>
- * A About-page creator
- *
- * <pre>
- * {@code
- * new AboutIt(this).app(R.string.app_name)
- * .buildInfo(BuildConfig.DEBUG, BuildConfig.VERSION_CODE, BuildConfig.VERSION_NAME)
- * .copyright("Example Business")
- * .libLicense("AboutIt", "Victor Häggqvist", L.AP2, "https://github.com/victorhaggqvist/aboutit")
- * .toTextView(R.id.about_text);
- * }
- * </pre>
- *
- * @author Victor Häggqvist
- * @since 12/29/14
- * @version 1.0
- */
-public class AboutIt {
-
- private String copyright = null;
- private int year = 0;
- private int endYear = 0;
- private List<Lib> libs = new ArrayList<>();
- private Activity activity;
- private String appName = null;
- private boolean debug;
- private int versionCode;
- private String versionName;
- private String releaseName = null;
- private String description = null;
-
- /**
- * Create a page generator
- * @param activity The about page activity
- */
- public AboutIt(Activity activity) {
-
- this.activity = activity;
- }
-
- /**
- * Generate text and put in @ref{about_text}
- * @param about_text Resource it of destination TextView
- */
- @SuppressWarnings("StringConcatenationInsideStringBufferAppend")
- public void toTextView(@IdRes int about_text) {
- TextView out = (TextView) activity.findViewById(about_text);
- out.setAutoLinkMask(Linkify.WEB_URLS);
-
- endYear = endYear();
-
- StringBuilder sb = new StringBuilder();
- if (appName != null)
- sb.append(appName+" v"+getVersionString()+"\n");
-
- if (copyright != null) {
- sb.append("Copyright (c) ");
- if (year != 0)
- sb.append(year + (endYear != 0 ? " - " + endYear : "") + " ");
- sb.append(copyright + "\n\n");
- }
-
- if (description != null)
- sb.append(description+"\n\n");
-
- // Sort library list alphabetically by name
- Collections.sort(libs, new Comparator<Lib>() {
- @Override
- public int compare(Lib lhs, Lib rhs) {
- return lhs.name.compareTo(rhs.name);
- }
- });
-
- for(Lib l:libs){
- sb.append(l.byLine() + "\n");
- }
-
- out.setText(sb.toString());
- }
-
- /**
- * Get a baked version string.
- * Version string is build from build info and release name
- * It will look something like '1.42 (42-debug)'
- * @return baked version string
- */
- public String getVersionString() {
- releaseName = "-"+(releaseName != null?releaseName:(debug?"debug":""));
- return versionName+" ("+versionCode+releaseName+")";
- }
-
- /**
- * Determine what end year to show
- * @return year to show
- */
- private int endYear() {
- if (endYear != 0) {
- return endYear;
- } else {
- Calendar now = Calendar.getInstance();
- int yearNow = now.get(Calendar.YEAR);
- if (year == yearNow)
- return 0;
- else
- return yearNow;
- }
- }
-
- /**
- * Get String by id
- * @param stringId String id
- * @return String
- */
- private String s(@StringRes int stringId) {
- return activity.getString(stringId);
- }
-
- /**
- * Copyright name
- * @param copyright Name
- */
- public AboutIt copyright(String copyright){
- this.copyright = copyright;
- return this;
- }
-
- /**
- * Start copyright year.
- * If there is no start year no year will be displayed at all.
- * @param year Year
- */
- public AboutIt year(int year) {
- this.year = year;
- return this;
- }
-
- /**
- * Add a library to the list
- * @param name Name of Library
- * @param author Author of library
- * @param license Library license, defined by L
- * @param url Url to or otherwise reference to library
- * @see L
- */
- public AboutIt libLicense(String name, String author, L license, String url) {
- libs.add(new Lib(name, author, license, url));
- return this;
- }
-
- /**
- * Add a library to the list
- * @param library A library build with LibBuilder
- */
- public AboutIt libLicense(Lib library) {
- libs.add(library);
- return this;
- }
-
- /**
- * App name to display
- * @param stringResource A string resource id
- */
- public AboutIt app(@StringRes int stringResource) {
- this.appName = s(stringResource);
- return this;
- }
-
- /**
- * App name to display
- * @see #app(int)
- */
- public AboutIt app(String appName) {
- this.appName = appName;
- return this;
- }
-
- /**
- * Set a custom release name. Override the default name eg. beta
- * @param releaseName The release name
- */
- public AboutIt release(String releaseName){
- this.releaseName = releaseName;
- return this;
- }
-
- /**
- * App build info. To be used in conjunction with the BuildConfig class
- * {@code .buildInfo(BuildConfig.DEBUG, BuildConfig.VERSION_CODE, BuildConfig.VERSION_NAME)}
- *
- * @param debug If is debug build
- * @param versionCode Version code
- * @param versionName Version name
- */
- public AboutIt buildInfo(boolean debug, int versionCode, String versionName) {
- this.debug = debug;
- this.versionCode = versionCode;
- this.versionName = versionName;
- return this;
- }
-
- /**
- * A longer description
- * @param stringResource A string resource id
- */
- public AboutIt description(@StringRes int stringResource) {
- description = s(stringResource);
- return this;
- }
-
- /**
- * A longer description
- * @param description The description
- * @see #description(int)
- */
- public AboutIt description(String description) {
- this.description = description;
- return this;
- }
-
- /**
- * Holder for libraries
- */
- static class Lib {
-
- final String name;
- final String author;
- final LicenseBase license;
- final String url;
-
- public Lib(String name, String author, LicenseBase license, String url) {
-
- this.name = name;
- this.author = author;
- this.license = license;
- this.url = url;
- }
-
- String byLine() {
- return name + " by " + author + " under " + license.display() + ", " + url;
- }
- }
-}