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

Extract a helper method to DRY things up a little

This commit is contained in:
Michael Mee 2017-04-13 13:55:34 -07:00
parent 7626468b58
commit bf033943ce

View file

@ -68,171 +68,172 @@ public class AboutActivity extends MaterialAboutActivity {
@NonNull @NonNull
private MaterialAboutCard.Builder buildSupportCard(final AboutConfig config) { private MaterialAboutCard.Builder buildSupportCard(final AboutConfig config) {
MaterialAboutCard.Builder supportCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder card = new MaterialAboutCard.Builder();
if (!TextUtils.isEmpty(config.guideHtmlPath)) { if (!TextUtils.isEmpty(config.guideHtmlPath)) {
supportCardBuilder.addItem(new MaterialAboutActionItem.Builder() card.addItem(itemHelper(R.string.egab_guide, R.drawable.ic_help_green,
.text(R.string.egab_guide) new MaterialAboutItemOnClickListener() {
.icon(R.drawable.ic_help_green)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
openHTMLPage(config.guideHtmlPath);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_guide));
}
})
.build());
}
supportCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_contact_support)
.icon(R.drawable.ic_email_black)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick(boolean b) { public void onClick(boolean b) {
EmailUtil.contactUs(AboutActivity.this); openHTMLPage(config.guideHtmlPath);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_contact_log_event)); logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_guide));
} }
}).build()); })
return supportCardBuilder; );
}
card.addItem(itemHelper(R.string.egab_contact_support, R.drawable.ic_email_black,
new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
EmailUtil.contactUs(AboutActivity.this);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_contact_log_event));
}
}));
return card;
} }
@NonNull @NonNull
private MaterialAboutCard.Builder buildShareCard(final AboutConfig config) { private MaterialAboutCard.Builder buildShareCard(final AboutConfig config) {
MaterialAboutCard.Builder shareCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder card = new MaterialAboutCard.Builder();
shareCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_leave_review) card.addItem(itemHelper(R.string.egab_leave_review, R.drawable.ic_review,
.icon(R.drawable.ic_review) new MaterialAboutItemOnClickListener() {
.setOnClickListener(new MaterialAboutItemOnClickListener() { @Override
@Override public void onClick(boolean b) {
public void onClick(boolean b) { openApp(config.buildType, config.packageName);
openApp(config.buildType, config.packageName); logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_review_log_event));
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_review_log_event)); }
} }));
})
.build()); card.addItem(itemHelper(R.string.egab_share, R.drawable.ic_share_black,
shareCardBuilder.addItem(new MaterialAboutActionItem.Builder() new MaterialAboutItemOnClickListener() {
.text(R.string.egab_share) @Override
.icon(R.drawable.ic_share_black) public void onClick(boolean b) {
.setOnClickListener(new MaterialAboutItemOnClickListener() { ShareUtil.share(AboutActivity.this);
@Override logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_share_log_event));
public void onClick(boolean b) { }
ShareUtil.share(AboutActivity.this); }));
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_share_log_event));
} return card;
})
.build());
return shareCardBuilder;
} }
@NonNull @NonNull
private MaterialAboutCard.Builder buildAboutCard(final AboutConfig config) { private MaterialAboutCard.Builder buildAboutCard(final AboutConfig config) {
MaterialAboutCard.Builder aboutCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder card = new MaterialAboutCard.Builder();
aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_try_other_apps) card.addItem(itemHelper(R.string.egab_try_other_apps, R.drawable.ic_try_other_apps,
.icon(R.drawable.ic_try_other_apps) new MaterialAboutItemOnClickListener() {
.setOnClickListener(new MaterialAboutItemOnClickListener() { @Override
@Override public void onClick(boolean b) {
public void onClick(boolean b) { openPublisher(config.buildType, config.appPublisher, config.packageName);
openPublisher(config.buildType, config.appPublisher, config.packageName); logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_try_other_app_log_event));
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_try_other_app_log_event)); }
}));
card.addItem(new MaterialAboutActionItem.Builder()
.text(config.aboutLabelTitle)
.icon(R.drawable.ic_about_black)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
if (config.dialog == null) {
openHTMLPage(config.companyHtmlPath);
} else {
config.dialog.open(AboutActivity.this, config.companyHtmlPath, config.aboutLabelTitle);
} }
}) logUIEventName(config.analytics, config.logUiEventName, config.aboutLabelTitle);
.build()); }
aboutCardBuilder.addItem(new MaterialAboutActionItem.Builder() })
.text(config.aboutLabelTitle) .build());
.icon(R.drawable.ic_about_black)
.setOnClickListener(new MaterialAboutItemOnClickListener() { return card;
@Override
public void onClick(boolean b) {
if (config.dialog == null) {
openHTMLPage(config.companyHtmlPath);
} else {
config.dialog.open(AboutActivity.this, config.companyHtmlPath, config.aboutLabelTitle);
}
logUIEventName(config.analytics, config.logUiEventName, config.aboutLabelTitle);
}
})
.build());
return aboutCardBuilder;
} }
@NonNull @NonNull
private MaterialAboutCard.Builder buildSocialNetworksCard(final AboutConfig config) { private MaterialAboutCard.Builder buildSocialNetworksCard(final AboutConfig config) {
MaterialAboutCard.Builder socialNetworksCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder card = new MaterialAboutCard.Builder();
socialNetworksCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_facebook_label)
.subText(config.facebookUserName)
.icon(R.drawable.ic_facebook_24)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
getOpenFacebookIntent(AboutActivity.this, config.facebookUserName);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_facebook_log_event));
}
})
.build());
socialNetworksCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_twitter_label)
.subText(config.twitterUserName)
.icon(R.drawable.ic_twitter_24dp)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
startTwitter(AboutActivity.this, config.twitterUserName);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_twitter_log_event));
}
})
.build());
socialNetworksCardBuilder.addItem(new MaterialAboutActionItem.Builder() card.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_web_label) .text(R.string.egab_facebook_label)
.subText(config.webHomePage.replace("https://", "").replace("http://", "").replace("/", "")) .subText(config.facebookUserName)
.icon(R.drawable.ic_web_black_24dp) .icon(R.drawable.ic_facebook_24)
.setOnClickListener(new MaterialAboutItemOnClickListener() { .setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override @Override
public void onClick(boolean b) { public void onClick(boolean b) {
openHTMLPage(config.webHomePage); getOpenFacebookIntent(AboutActivity.this, config.facebookUserName);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_website_log_event)); logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_facebook_log_event));
} }
}) })
.build()); .build());
return socialNetworksCardBuilder; card.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_twitter_label)
.subText(config.twitterUserName)
.icon(R.drawable.ic_twitter_24dp)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
startTwitter(AboutActivity.this, config.twitterUserName);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_twitter_log_event));
}
})
.build());
card.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_web_label)
.subText(config.webHomePage.replace("https://", "").replace("http://", "").replace("/", ""))
.icon(R.drawable.ic_web_black_24dp)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
openHTMLPage(config.webHomePage);
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_website_log_event));
}
})
.build());
return card;
} }
@NonNull @NonNull
private MaterialAboutCard.Builder buildPrivacyCard(final AboutConfig config) { private MaterialAboutCard.Builder buildPrivacyCard(final AboutConfig config) {
MaterialAboutCard.Builder privacyCardBuilder = new MaterialAboutCard.Builder(); MaterialAboutCard.Builder card = new MaterialAboutCard.Builder();
privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder()
.text(R.string.egab_privacy_policy)
.icon(R.drawable.ic_privacy)
.setOnClickListener(new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
if (config.dialog == null) {
openHTMLPage(config.privacyHtmlPath);
} else {
config.dialog.open(AboutActivity.this, config.privacyHtmlPath, getString(R.string.egab_privacy_policy));
}
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_privacy_log_event)); card.addItem(itemHelper(R.string.egab_privacy_policy, R.drawable.ic_privacy,
new MaterialAboutItemOnClickListener() {
@Override
public void onClick(boolean b) {
if (config.dialog == null) {
openHTMLPage(config.privacyHtmlPath);
} else {
config.dialog.open(AboutActivity.this, config.privacyHtmlPath, getString(R.string.egab_privacy_policy));
} }
})
.build()); logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_privacy_log_event));
privacyCardBuilder.addItem(new MaterialAboutActionItem.Builder() }
.text(R.string.egab_acknowledgements) })
.icon(R.drawable.ic_acknowledgements) );
.setOnClickListener(new MaterialAboutItemOnClickListener() { card.addItem(itemHelper(R.string.egab_acknowledgements, R.drawable.ic_acknowledgements,
@Override new MaterialAboutItemOnClickListener() {
public void onClick(boolean b) { @Override
if (config.dialog == null) { public void onClick(boolean b) {
openHTMLPage(config.acknowledgmentHtmlPath); if (config.dialog == null) {
} else { openHTMLPage(config.acknowledgmentHtmlPath);
config.dialog.open(AboutActivity.this, config.acknowledgmentHtmlPath, getString(R.string.egab_acknowledgements)); } else {
} config.dialog.open(AboutActivity.this, config.acknowledgmentHtmlPath, getString(R.string.egab_acknowledgements));
logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_acknowledgements_log_event));
} }
}) logUIEventName(config.analytics, config.logUiEventName, getString(R.string.egab_acknowledgements_log_event));
.build()); }
return privacyCardBuilder; })
);
return card;
}
private MaterialAboutActionItem itemHelper(int name, int icon, MaterialAboutItemOnClickListener listener) {
return new MaterialAboutActionItem.Builder()
.text(name)
.icon(icon)
.setOnClickListener(listener)
.build();
} }
@ -270,7 +271,6 @@ public class AboutActivity extends MaterialAboutActivity {
Toast.makeText(context, R.string.egab_can_not_open, Toast.LENGTH_SHORT).show(); Toast.makeText(context, R.string.egab_can_not_open, Toast.LENGTH_SHORT).show();
} }
} }
} }
public void openApp(AboutConfig.BuildType buildType, String packageName) { public void openApp(AboutConfig.BuildType buildType, String packageName) {