diff options
Diffstat (limited to 'main/src/cgeo/geocaching/AboutActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/AboutActivity.java | 72 |
1 files changed, 58 insertions, 14 deletions
diff --git a/main/src/cgeo/geocaching/AboutActivity.java b/main/src/cgeo/geocaching/AboutActivity.java index ceafc31..c29c6b1 100644 --- a/main/src/cgeo/geocaching/AboutActivity.java +++ b/main/src/cgeo/geocaching/AboutActivity.java @@ -3,13 +3,20 @@ package cgeo.geocaching; import butterknife.ButterKnife; import butterknife.InjectView; +import cgeo.calendar.CalendarAddon; +import cgeo.contacts.ContactsAddon; import cgeo.geocaching.activity.AbstractViewPagerActivity; +import cgeo.geocaching.compatibility.Compatibility; +import cgeo.geocaching.connector.ConnectorFactory; +import cgeo.geocaching.connector.capability.ILogin; import cgeo.geocaching.sensors.OrientationProvider; import cgeo.geocaching.sensors.RotationProvider; import cgeo.geocaching.sensors.Sensors; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.AbstractCachingPageViewCreator; import cgeo.geocaching.ui.AnchorAwareLinkMovementMethod; +import cgeo.geocaching.utils.ClipboardUtils; +import cgeo.geocaching.utils.ProcessUtils; import cgeo.geocaching.utils.Version; import org.apache.commons.io.IOUtils; @@ -25,13 +32,16 @@ import android.os.Build; import android.os.Build.VERSION; import android.os.Bundle; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.Button; import android.widget.ScrollView; import android.widget.TextView; import java.io.InputStream; import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.Scanner; public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> { @@ -71,6 +81,7 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> @InjectView(R.id.changelog_master) protected TextView changeLogMaster; @InjectView(R.id.changelog_release) protected TextView changeLogRelease; + @InjectView(R.id.changelog_github) protected TextView changeLogLink; @Override public ScrollView getDispatchedView(final ViewGroup parentView) { @@ -83,6 +94,13 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> } else { changeLogMaster.setMovementMethod(AnchorAwareLinkMovementMethod.getInstance()); } + changeLogLink.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(final View v) { + startUrl("https://github.com/cgeo/cgeo/releases"); + } + }); return view; } @@ -91,13 +109,23 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> class SystemViewCreator extends AbstractCachingPageViewCreator<ScrollView> { @InjectView(R.id.system) protected TextView system; + @InjectView(R.id.copy) protected Button copy; @Override public ScrollView getDispatchedView(final ViewGroup parentView) { final ScrollView view = (ScrollView) getLayoutInflater().inflate(R.layout.about_system_page, parentView, false); ButterKnife.inject(this, view); - system.setText(systemInformation(AboutActivity.this)); + final String systemInfo = systemInformation(AboutActivity.this); + system.setText(systemInfo); system.setMovementMethod(AnchorAwareLinkMovementMethod.getInstance()); + Compatibility.setTextIsSelectable(system, true); + copy.setOnClickListener(new OnClickListener() { + @Override + public void onClick(final View view) { + ClipboardUtils.copyToClipboard(systemInfo); + showShortToast(getString(R.string.clipboard_copy_ok)); + } + }); return view; } } @@ -125,7 +153,7 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> @Override public void onClick(final View v) { - market(); + ProcessUtils.openMarket(AboutActivity.this, getPackageName()); } }); return view; @@ -190,12 +218,6 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); } - final void market() { - final Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName())); - marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - startActivity(marketIntent); - } - @Override protected final cgeo.geocaching.activity.AbstractViewPagerActivity.PageViewCreator createViewCreator(final Page page) { switch (page) { @@ -260,17 +282,39 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> .append("\nAndroid version: ").append(VERSION.RELEASE) .append("\nAndroid build: ").append(Build.DISPLAY) .append("\nCgeo version: ").append(Version.getVersionName(context)) - .append("\nPlay services: ").append(presence(googlePlayServicesAvailable)); - if (googlePlayServicesAvailable) { - body.append("\nUse Play services: ").append(Settings.useGooglePlayServices() ? "yes" : "no"); - } - body + .append("\nGoogle Play services: ").append(googlePlayServicesAvailable ? (Settings.useGooglePlayServices() ? "enabled" : "disabled") : "unavailable") .append("\nLow power mode: ").append(Settings.useLowPowerMode() ? "active" : "inactive") .append("\nCompass capabilities: ").append(Sensors.getInstance().hasCompassCapabilities() ? "yes" : "no") .append("\nRotation sensor: ").append(presence(RotationProvider.hasRotationSensor(context))) .append("\nGeomagnetic rotation sensor: ").append(presence(RotationProvider.hasGeomagneticRotationSensor(context))) .append("\nOrientation sensor: ").append(presence(OrientationProvider.hasOrientationSensor(context))) - .append("\n--- End of system information ---\n"); + .append("\nHide own/found: ").append(Settings.isExcludeMyCaches()) + .append("\nMap strategy: ").append(Settings.getLiveMapStrategy().toString().toLowerCase(Locale.getDefault())); + for (final ILogin connector : ConnectorFactory.getActiveLiveConnectors()) { + body.append('\n').append(connector.getName()).append(": ").append(connector.isLoggedIn() ? "logged in" : "not logged in") + .append(" (").append(connector.getLoginStatusString()).append(')'); + if (connector.getName().equals("geocaching.com") && connector.isLoggedIn()) { + body.append(" / ").append(Settings.getGCMemberStatus()); + } + } + body.append("\nSystem language: ").append(Locale.getDefault()); + if (Settings.isUseEnglish()) { + body.append(" (cgeo forced to English)"); + } + final boolean calendarAddonAvailable = CalendarAddon.isAvailable(); + final boolean contactsAddonAvailable = ContactsAddon.isAvailable(); + body.append("\nInstalled cgeo plugins:"); + if (calendarAddonAvailable || contactsAddonAvailable) { + if (calendarAddonAvailable) { + body.append(" calendar"); + } + if (contactsAddonAvailable) { + body.append(" contacts"); + } + } else { + body.append(" none"); + } + body.append("\n--- End of system information ---\n"); return body.toString(); } |
