aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/AboutActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/AboutActivity.java')
-rw-r--r--main/src/cgeo/geocaching/AboutActivity.java72
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();
}