Here is another version with guard clauses:
private void setupListener(final ImageView image, final String platform,
final String urlLink) {
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!platform.equalsIgnoreCase(PLATFORM_ANDROID)) {
startInBroswer();
return;
}
final String packageName = extractPackageName(urlLink);
if (packageName == null) {
startInBroswer();
return;
}
try {
final Intent market = new Intent(Intent.ACTION_VIEW);
market.setData(Uri.parse("market://details?id=" + packageName));
activity.startActivity(market);
} catch (final Exception e) {
// TODO: log the exception
startInBroswer();
}
}
private void startInBroswer() {
final Intent browser = new Intent(Intent.ACTION_VIEW,
Uri.parse(urlLink));
activity.startActivity(browser);
}
});
}
Two things to notice:
I've removed the
urlLink
parameter of thestartInBroswer
method.It is a bad idea to use
printStackTrace()
in Android exceptions bad idea to useprintStackTrace()
in Android exceptions.
Here is another version with guard clauses:
private void setupListener(final ImageView image, final String platform,
final String urlLink) {
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!platform.equalsIgnoreCase(PLATFORM_ANDROID)) {
startInBroswer();
return;
}
final String packageName = extractPackageName(urlLink);
if (packageName == null) {
startInBroswer();
return;
}
try {
final Intent market = new Intent(Intent.ACTION_VIEW);
market.setData(Uri.parse("market://details?id=" + packageName));
activity.startActivity(market);
} catch (final Exception e) {
// TODO: log the exception
startInBroswer();
}
}
private void startInBroswer() {
final Intent browser = new Intent(Intent.ACTION_VIEW,
Uri.parse(urlLink));
activity.startActivity(browser);
}
});
}
Two things to notice:
I've removed the
urlLink
parameter of thestartInBroswer
method.It is a bad idea to use
printStackTrace()
in Android exceptions.
Here is another version with guard clauses:
private void setupListener(final ImageView image, final String platform,
final String urlLink) {
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!platform.equalsIgnoreCase(PLATFORM_ANDROID)) {
startInBroswer();
return;
}
final String packageName = extractPackageName(urlLink);
if (packageName == null) {
startInBroswer();
return;
}
try {
final Intent market = new Intent(Intent.ACTION_VIEW);
market.setData(Uri.parse("market://details?id=" + packageName));
activity.startActivity(market);
} catch (final Exception e) {
// TODO: log the exception
startInBroswer();
}
}
private void startInBroswer() {
final Intent browser = new Intent(Intent.ACTION_VIEW,
Uri.parse(urlLink));
activity.startActivity(browser);
}
});
}
Two things to notice:
I've removed the
urlLink
parameter of thestartInBroswer
method.It is a bad idea to use
printStackTrace()
in Android exceptions.
Here is another version with guard clauses:
private void setupListener(final ImageView image, final String platform,
final String urlLink) {
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!platform.equalsIgnoreCase(PLATFORM_ANDROID)) {
startInBroswer();
return;
}
final String packageName = extractPackageName(urlLink);
if (packageName == null) {
startInBroswer();
return;
}
try {
final Intent market = new Intent(Intent.ACTION_VIEW);
market.setData(Uri.parse("market://details?id=" + packageName));
activity.startActivity(market);
} catch (final Exception e) {
// TODO: log the exception
startInBroswer();
}
}
private void startInBroswer() {
final Intent browser = new Intent(Intent.ACTION_VIEW,
Uri.parse(urlLink));
activity.startActivity(browser);
}
});
}
Two things to notice:
I've removed the
urlLink
parameter of thestartInBroswer
method.It is a bad idea to use
printStackTrace()
in Android exceptions.