1
0
Fork 0
mirror of https://github.com/ethauvin/android-about-box.git synced 2025-04-25 02:37:11 -07:00

Merge pull request #20 from eggheadgames/feature/theme_support

Add Material Action Bar Theme support
This commit is contained in:
mikemee 2017-04-13 12:43:05 -07:00 committed by GitHub
commit 2f4cba730a
4 changed files with 53 additions and 27 deletions

View file

@ -100,6 +100,32 @@ Open AboutBox screen
AboutActivity.launch(activity); AboutActivity.launch(activity);
``` ```
## Theme
Add to your AndroidManifest.xml file
```
<activity
android:name="com.eggheadgames.aboutbox.activity.AboutActivity"
android:theme="@style/AppTheme.MaterialAboutActivity"/>
```
Ensure that `AppTheme.MaterialAboutActivity` theme extends either of these themes, and apply primary & accent colours:
```
Theme.Mal.Light.DarkActionBar
Theme.Mal.Light.LightActionBar
Theme.Mal.Dark.LightActionBar
Theme.Mal.Dark.DarkActionBar
```
```
<style name="AppTheme.MaterialAboutActivity" parent="Theme.Mal.Light.DarkActionBar" >
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
```
## Screenshot ## Screenshot
<img src="extras/example.png?raw=true"> <img src="extras/example.png?raw=true">

View file

@ -28,7 +28,7 @@ android {
} }
dependencies { dependencies {
compile 'com.github.daniel-stoneuk:material-about-library:1.5.0' compile 'com.github.daniel-stoneuk:material-about-library:1.8.2'
compile('io.branch.sdk.android:library:2.5.7') { compile('io.branch.sdk.android:library:2.5.7') {
exclude module: 'answers.shim' exclude module: 'answers.shim'
} }

View file

@ -1,10 +1,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eggheadgames.aboutbox"> package="com.eggheadgames.aboutbox">
<application> <application>
<activity <activity
android:name="com.eggheadgames.aboutbox.activity.AboutActivity" android:name="com.eggheadgames.aboutbox.activity.AboutActivity"
android:theme="@style/AppTheme.MaterialAboutActivity" /> android:theme="@style/AppTheme.MaterialAboutActivity"/>
</application> </application>

View file

@ -8,10 +8,11 @@ import android.net.Uri;
import android.widget.Toast; import android.widget.Toast;
import com.danielstone.materialaboutlibrary.MaterialAboutActivity; import com.danielstone.materialaboutlibrary.MaterialAboutActivity;
import com.danielstone.materialaboutlibrary.model.MaterialAboutActionItem; import com.danielstone.materialaboutlibrary.items.MaterialAboutActionItem;
import com.danielstone.materialaboutlibrary.items.MaterialAboutItemOnClickListener;
import com.danielstone.materialaboutlibrary.items.MaterialAboutTitleItem;
import com.danielstone.materialaboutlibrary.model.MaterialAboutCard; import com.danielstone.materialaboutlibrary.model.MaterialAboutCard;
import com.danielstone.materialaboutlibrary.model.MaterialAboutList; import com.danielstone.materialaboutlibrary.model.MaterialAboutList;
import com.danielstone.materialaboutlibrary.model.MaterialAboutTitleItem;
import com.eggheadgames.aboutbox.AboutConfig; import com.eggheadgames.aboutbox.AboutConfig;
import com.eggheadgames.aboutbox.R; import com.eggheadgames.aboutbox.R;
import com.eggheadgames.aboutbox.share.EmailUtil; import com.eggheadgames.aboutbox.share.EmailUtil;
@ -46,25 +47,24 @@ public class AboutActivity extends MaterialAboutActivity {
supportCardBuilder.addItem(new MaterialAboutActionItem.Builder() supportCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_contact_support) .text(R.string.egab_contact_support)
.icon(R.drawable.ic_email_black) .icon(R.drawable.ic_email_black)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
EmailUtil.contactUs(AboutActivity.this); EmailUtil.contactUs(AboutActivity.this);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_contact_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_contact_log_event));
} }
} }
}) }).build());
.build());
MaterialAboutCard.Builder shareCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder shareCardBuilder = new MaterialAboutCard.Builder();
shareCardBuilder.addItem(new MaterialAboutActionItem.Builder() shareCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_leave_review) .text(R.string.egab_leave_review)
.icon(R.drawable.ic_review) .icon(R.drawable.ic_review)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
openApp(config.buildType, config.packageName); openApp(config.buildType, config.packageName);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_review_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_review_log_event));
@ -75,9 +75,9 @@ public class AboutActivity extends MaterialAboutActivity {
shareCardBuilder.addItem(new MaterialAboutActionItem.Builder() shareCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_share) .text(R.string.egab_share)
.icon(R.drawable.ic_share_black) .icon(R.drawable.ic_share_black)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
ShareUtil.share(AboutActivity.this); ShareUtil.share(AboutActivity.this);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_share_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_share_log_event));
@ -91,9 +91,9 @@ public class AboutActivity extends MaterialAboutActivity {
aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder() aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_try_other_apps) .text(R.string.egab_try_other_apps)
.icon(R.drawable.ic_try_other_apps) .icon(R.drawable.ic_try_other_apps)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
openPublisher(config.buildType, config.appPublisher, config.packageName); openPublisher(config.buildType, config.appPublisher, config.packageName);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_try_other_app_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_try_other_app_log_event));
@ -104,9 +104,9 @@ public class AboutActivity extends MaterialAboutActivity {
aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder() aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(config.aboutLabelTitle) .text(config.aboutLabelTitle)
.icon(R.drawable.ic_about_black) .icon(R.drawable.ic_about_black)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
if (config.dialog == null) { if (config.dialog == null) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.companyHtmlPath))); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.companyHtmlPath)));
} else { } else {
@ -126,9 +126,9 @@ public class AboutActivity extends MaterialAboutActivity {
.text(R.string.egab_facebook_label) .text(R.string.egab_facebook_label)
.subText(config.facebookUserName) .subText(config.facebookUserName)
.icon(R.drawable.ic_facebook_24) .icon(R.drawable.ic_facebook_24)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
getOpenFacebookIntent(AboutActivity.this, config.facebookUserName); getOpenFacebookIntent(AboutActivity.this, config.facebookUserName);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_facebook_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_facebook_log_event));
@ -140,9 +140,9 @@ public class AboutActivity extends MaterialAboutActivity {
.text(R.string.egab_twitter_label) .text(R.string.egab_twitter_label)
.subText(config.twitterUserName) .subText(config.twitterUserName)
.icon(R.drawable.ic_twitter_24dp) .icon(R.drawable.ic_twitter_24dp)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
startTwitter(AboutActivity.this, config.twitterUserName); startTwitter(AboutActivity.this, config.twitterUserName);
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_twitter_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_twitter_log_event));
@ -155,9 +155,9 @@ public class AboutActivity extends MaterialAboutActivity {
.text(R.string.egab_web_label) .text(R.string.egab_web_label)
.subText(config.webHomePage.replace("https://", "").replace("http://", "").replace("/", "")) .subText(config.webHomePage.replace("https://", "").replace("http://", "").replace("/", ""))
.icon(R.drawable.ic_web_black_24dp) .icon(R.drawable.ic_web_black_24dp)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.webHomePage))); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.webHomePage)));
if (config.analytics != null) { if (config.analytics != null) {
config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_website_log_event)); config.analytics.logUiEvent(config.logUiEventName, getString(R.string.egab_website_log_event));
@ -170,9 +170,9 @@ public class AboutActivity extends MaterialAboutActivity {
privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder() privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_privacy_policy) .text(R.string.egab_privacy_policy)
.icon(R.drawable.ic_privacy) .icon(R.drawable.ic_privacy)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
if (config.dialog == null) { if (config.dialog == null) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.privacyHtmlPath))); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.privacyHtmlPath)));
} else { } else {
@ -188,9 +188,9 @@ public class AboutActivity extends MaterialAboutActivity {
privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder() privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_acknowledgements) .text(R.string.egab_acknowledgements)
.icon(R.drawable.ic_acknowledgements) .icon(R.drawable.ic_acknowledgements)
.setOnClickListener(new MaterialAboutActionItem.OnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick() { public void onClick(boolean b) {
if (config.dialog == null) { if (config.dialog == null) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.acknowledgmentHtmlPath))); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(config.acknowledgmentHtmlPath)));
} else { } else {