diff --git a/app/build.gradle b/app/build.gradle
index 08f4861a..a826b600 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -132,4 +132,5 @@ dependencies {
compile 'org.solovyev.android.views:linear-layout-manager:0.5@aar'
//noinspection GradleDynamicVersion
compile 'com.anjlab.android.iab.v3:library:1.0.+'
+ compile('de.psdev.licensesdialog:licensesdialog:1.8.0')
}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ChangelogDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ChangelogDialog.java
index 37416654..449756f5 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/ChangelogDialog.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/ChangelogDialog.java
@@ -76,8 +76,8 @@ public class ChangelogDialog extends LeakDetectDialogFragment {
in.close();
// Inject color values for WebView body background and links
- final String backgroundColor = ThemeSingleton.get().darkTheme ? "444444" : "fff";
- final String contentColor = ThemeSingleton.get().darkTheme ? "fff" : "000";
+ final String backgroundColor = ThemeSingleton.get().darkTheme ? "424242" : "ffffff";
+ final String contentColor = ThemeSingleton.get().darkTheme ? "ffffff" : "000000";
webView.loadData(buf.toString()
.replace("{style-placeholder}",
String.format("body { background-color: #%s; color: #%s; }", backgroundColor, contentColor))
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AboutActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AboutActivity.java
index 5fb4f6ea..555bec17 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AboutActivity.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AboutActivity.java
@@ -15,6 +15,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.afollestad.materialdialogs.internal.ThemeSingleton;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.dialogs.ChangelogDialog;
import com.kabouzeid.gramophone.dialogs.DonationDialog;
@@ -24,6 +25,7 @@ import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.Bind;
import butterknife.ButterKnife;
+import de.psdev.licensesdialog.LicensesDialog;
/**
* @author Karim Abou Zeid (kabouzeid)
@@ -57,6 +59,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
TextView appVersion;
@Bind(R.id.changelog)
LinearLayout changelog;
+ @Bind(R.id.licenses)
+ LinearLayout licenses;
@Bind(R.id.add_to_google_plus_circles)
LinearLayout addToGooglePlusCircles;
@Bind(R.id.follow_on_twitter)
@@ -92,6 +96,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
ImageView iconInfo;
@Bind(R.id.icon_changelog)
ImageView iconChangelog;
+ @Bind(R.id.icon_licenses)
+ ImageView iconLicenses;
@Bind(R.id.icon_bug_report)
ImageView iconBugReport;
@Bind(R.id.icon_google_plus_community)
@@ -147,6 +153,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
private void setUpOnClickListeners() {
changelog.setOnClickListener(this);
+ licenses.setOnClickListener(this);
addToGooglePlusCircles.setOnClickListener(this);
followOnTwitter.setOnClickListener(this);
forkOnGitHub.setOnClickListener(this);
@@ -165,18 +172,20 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
}
private void setUpIconTint() {
- iconInfo.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconChangelog.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconBugReport.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconGooglePlusCommunity.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconFlag.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconRate.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconDonate.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconAuthor.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconGooglePlus.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconTwitter.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconGithub.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
- iconWebsite.setColorFilter(ColorUtil.resolveColor(this, android.R.attr.textColorSecondary));
+ int iconColor = ColorUtil.resolveColor(this, R.attr.icon_color);
+ iconInfo.setColorFilter(iconColor);
+ iconChangelog.setColorFilter(iconColor);
+ iconLicenses.setColorFilter(iconColor);
+ iconBugReport.setColorFilter(iconColor);
+ iconGooglePlusCommunity.setColorFilter(iconColor);
+ iconFlag.setColorFilter(iconColor);
+ iconRate.setColorFilter(iconColor);
+ iconDonate.setColorFilter(iconColor);
+ iconAuthor.setColorFilter(iconColor);
+ iconGooglePlus.setColorFilter(iconColor);
+ iconTwitter.setColorFilter(iconColor);
+ iconGithub.setColorFilter(iconColor);
+ iconWebsite.setColorFilter(iconColor);
}
@Override
@@ -201,6 +210,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
public void onClick(View v) {
if (v == changelog) {
ChangelogDialog.create().show(getSupportFragmentManager(), "CHANGELOG_DIALOG");
+ } else if (v == licenses) {
+ showLicenseDialog();
} else if (v == addToGooglePlusCircles) {
openUrl(GOOGLE_PLUS);
} else if (v == followOnTwitter) {
@@ -241,6 +252,20 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
startActivity(i);
}
+ private void showLicenseDialog() {
+ new LicensesDialog.Builder(this)
+ .setNotices(R.raw.notices)
+ .setTitle(R.string.licenses)
+ .setNoticesCssStyle(getString(R.string.license_dialog_style)
+ .replace("{bg-color}", ThemeSingleton.get().darkTheme ? "424242" : "ffffff")
+ .replace("{text-color}", ThemeSingleton.get().darkTheme ? "ffffff" : "000000")
+ .replace("{license-bg-color}", ThemeSingleton.get().darkTheme ? "535353" : "eeeeee")
+ )
+ .setIncludeOwnLicense(true)
+ .build()
+ .showAppCompat();
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean darkContent = ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary());
diff --git a/app/src/main/res/drawable-hdpi/ic_description_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_description_white_24dp.png
new file mode 100644
index 00000000..7eeb86ef
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_description_white_24dp.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_description_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_description_white_24dp.png
new file mode 100644
index 00000000..51a8ac3c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_description_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_description_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_description_white_24dp.png
new file mode 100644
index 00000000..f9c580c0
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_description_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_description_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_description_white_24dp.png
new file mode 100644
index 00000000..0e802589
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_description_white_24dp.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_description_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_description_white_24dp.png
new file mode 100644
index 00000000..8c44818f
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_description_white_24dp.png differ
diff --git a/app/src/main/res/layout/card_about_app.xml b/app/src/main/res/layout/card_about_app.xml
index 146db894..f224d9cf 100644
--- a/app/src/main/res/layout/card_about_app.xml
+++ b/app/src/main/res/layout/card_about_app.xml
@@ -113,6 +113,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/raw/notices.xml b/app/src/main/res/raw/notices.xml
new file mode 100644
index 00000000..696ac003
--- /dev/null
+++ b/app/src/main/res/raw/notices.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+ Advanced RecyclerView
+ https://github.com/h6ah4i/android-advancedrecyclerview
+ Copyright (C) 2015 Haruki Hasegawa
+ Apache Software License 2.0
+
+
+ Material Contextual Action Bar
+ https://github.com/afollestad/material-cab
+ Copyright 2016 Aidan Follestad
+ Apache Software License 2.0
+
+
+ LeakCanary
+ https://github.com/square/leakcanary
+ Copyright 2015 Square, Inc.
+ Apache Software License 2.0
+
+
+ Android Support Libraries
+ http://developer.android.com/tools/support-library/index.html
+ Copyright (C) 2015 The Android Open Source Project
+ Apache Software License 2.0
+
+
+ Android-ObservableScrollView
+ https://github.com/ksoichiro/Android-ObservableScrollView
+ Copyright 2014 Soichiro Kashima
+ Apache Software License 2.0
+
+
+ Android Sliding Up Panel
+ https://github.com/umano/AndroidSlidingUpPanel
+
+ Apache Software License 2.0
+
+
+ Retrofit
+ https://github.com/square/retrofit
+ Copyright 2013 Square, Inc.
+ Apache Software License 2.0
+
+
+ OkHttp
+ https://github.com/square/okhttp
+
+ Apache Software License 2.0
+
+
+ Universal Image Loader
+ https://github.com/nostra13/Android-Universal-Image-Loader
+ Copyright 2011-2015 Sergey Tarasevich
+ Apache Software License 2.0
+
+
+ Butter Knife
+ https://github.com/JakeWharton/butterknife
+ Copyright 2013 Jake Wharton
+ Apache Software License 2.0
+
+
+ Linear Layout Manager
+ https://github.com/serso/android-linear-layout-manager
+ Copyright 2014 serso aka se.solovyev
+ Apache Software License 2.0
+
+
+ Android In-App Billing v3 Library
+ https://github.com/anjlab/android-inapp-billing-v3
+ Copyright 2014 AnjLab
+ Apache Software License 2.0
+
+
+ Material Dialogs
+ https://github.com/afollestad/material-dialogs
+ Copyright (c) 2015 Aidan Michael Follestad
+ MIT License
+
+
+ SeekArc
+ https://github.com/Triggertrap/SeekArc
+ Copyright (c) 2013 Triggertrap Ltd
+ Author Neil Davies
+
+ MIT License
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 37c52cbe..827b0f55 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -22,4 +22,18 @@
- donation_5
- donation_6
+
+
+ body {
+ background-color: #{bg-color};
+ color: #{text-color};
+ font-family: sans-serif;
+ overflow-wrap: break-word;
+ }
+ pre {
+ background-color: #{license-bg-color};
+ padding: 1em;
+ white-space: pre-wrap;
+ }
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 90a0050d..f3f3c91a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -179,6 +179,7 @@
Colored footers
Special thanks to
Changelog
+ Licenses
Permission to access external storage denied.
back
Support development