aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/activity
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2011-08-10 07:58:37 +0200
committerBananeweizen <bananeweizen@gmx.de>2011-08-10 07:58:37 +0200
commitcc9a678a367f34f693e9f2facabc79559ab72486 (patch)
treee07b955cfee33eed24ddfc7bb12e3b53c979cbfc /src/cgeo/geocaching/activity
parentc47ca7defa34a44ec1b5955d722e54c61c2ef506 (diff)
downloadcgeo-cc9a678a367f34f693e9f2facabc79559ab72486.zip
cgeo-cc9a678a367f34f693e9f2facabc79559ab72486.tar.gz
cgeo-cc9a678a367f34f693e9f2facabc79559ab72486.tar.bz2
* have common base classes for cgeo related activities to encapsulate
the related code * move several methods from base to the activities classes * remove all duplicated goHome(), goManual() methods * remove instance variable "activity", which is only a this-pointer (all triggered by issue #98) If you have trouble merging afterwards, I'm happy to help.
Diffstat (limited to 'src/cgeo/geocaching/activity')
-rw-r--r--src/cgeo/geocaching/activity/AbstractActivity.java37
-rw-r--r--src/cgeo/geocaching/activity/AbstractListActivity.java33
-rw-r--r--src/cgeo/geocaching/activity/ActivityMixin.java72
-rw-r--r--src/cgeo/geocaching/activity/IAbstractActivity.java14
4 files changed, 156 insertions, 0 deletions
diff --git a/src/cgeo/geocaching/activity/AbstractActivity.java b/src/cgeo/geocaching/activity/AbstractActivity.java
new file mode 100644
index 0000000..fa982b9
--- /dev/null
+++ b/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -0,0 +1,37 @@
+package cgeo.geocaching.activity;
+
+import android.app.Activity;
+import android.view.View;
+
+public abstract class AbstractActivity extends Activity implements IAbstractActivity {
+
+ private String helpTopic;
+
+ public AbstractActivity() {
+ this(null);
+ }
+
+ public AbstractActivity(final String helpTopic) {
+ this.helpTopic = helpTopic;
+ }
+
+ final public void goHome(final View view) {
+ ActivityMixin.goHome(this);
+ }
+
+ public void goManual(final View view) {
+ ActivityMixin.goManual(this, helpTopic);
+ }
+
+ final public void setTitle(final String title) {
+ ActivityMixin.setTitle(this, title);
+ }
+
+ final public void showProgress(final boolean show) {
+ ActivityMixin.showProgress(this, show);
+ }
+
+ final public void setTheme() {
+ ActivityMixin.setTheme(this);
+ }
+}
diff --git a/src/cgeo/geocaching/activity/AbstractListActivity.java b/src/cgeo/geocaching/activity/AbstractListActivity.java
new file mode 100644
index 0000000..2a5dd7f
--- /dev/null
+++ b/src/cgeo/geocaching/activity/AbstractListActivity.java
@@ -0,0 +1,33 @@
+package cgeo.geocaching.activity;
+
+import android.app.ListActivity;
+import android.view.View;
+
+public abstract class AbstractListActivity extends ListActivity implements IAbstractActivity {
+
+ private String helpTopic;
+
+ public AbstractListActivity() {
+ this(null);
+ }
+
+ public AbstractListActivity(final String helpTopic) {
+ this.helpTopic = helpTopic;
+ }
+
+ final public void goHome(View view) {
+ ActivityMixin.goHome(this);
+ }
+
+ public void goManual(View view) {
+ ActivityMixin.goManual(this, helpTopic);
+ }
+
+ final public void showProgress(final boolean show) {
+ ActivityMixin.showProgress(this, show);
+ }
+
+ final public void setTheme() {
+ ActivityMixin.setTheme(this);
+ }
+}
diff --git a/src/cgeo/geocaching/activity/ActivityMixin.java b/src/cgeo/geocaching/activity/ActivityMixin.java
new file mode 100644
index 0000000..0f622da
--- /dev/null
+++ b/src/cgeo/geocaching/activity/ActivityMixin.java
@@ -0,0 +1,72 @@
+package cgeo.geocaching.activity;
+
+import gnu.android.app.appmanualclient.AppManualReaderClient;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import cgeo.geocaching.R;
+import cgeo.geocaching.cgSettings;
+import cgeo.geocaching.cgeo;
+
+public final class ActivityMixin {
+ public final static void goHome(final Activity fromActivity) {
+ final Intent intent = new Intent(fromActivity, cgeo.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+
+ fromActivity.startActivity(intent);
+ fromActivity.finish();
+ }
+
+ public final static void goManual(final Context context, final String helpTopic) {
+ if (helpTopic == null || helpTopic.length() == 0) {
+ return;
+ }
+ try {
+ AppManualReaderClient.openManual(
+ "c-geo",
+ helpTopic,
+ context,
+ "http://cgeo.carnero.cc/manual/");
+ } catch (Exception e) {
+ // nothing
+ }
+ }
+
+ public final static void setTitle(final Activity activity, final String text) {
+ if (text == null) {
+ return;
+ }
+
+ final TextView title = (TextView) activity.findViewById(R.id.actionbar_title);
+ if (title != null) {
+ title.setText(text);
+ }
+ }
+
+ public final static void showProgress(final Activity activity, final boolean show) {
+ if (activity == null) {
+ return;
+ }
+
+ final ProgressBar progress = (ProgressBar) activity.findViewById(R.id.actionbar_progress);
+ if (show) {
+ progress.setVisibility(View.VISIBLE);
+ } else {
+ progress.setVisibility(View.GONE);
+ }
+ }
+
+ public static void setTheme(final Activity activity) {
+ cgSettings settings = new cgSettings(activity, activity.getSharedPreferences(cgSettings.preferences, 0));
+ if (settings.skin == 1) {
+ activity.setTheme(R.style.light);
+ } else {
+ activity.setTheme(R.style.dark);
+ }
+ }
+
+
+}
diff --git a/src/cgeo/geocaching/activity/IAbstractActivity.java b/src/cgeo/geocaching/activity/IAbstractActivity.java
new file mode 100644
index 0000000..e7cb7a8
--- /dev/null
+++ b/src/cgeo/geocaching/activity/IAbstractActivity.java
@@ -0,0 +1,14 @@
+package cgeo.geocaching.activity;
+
+import android.view.View;
+
+public interface IAbstractActivity {
+ public void goHome(View view);
+
+ public void goManual(View view);
+
+ public void showProgress(final boolean show);
+
+ public void setTheme();
+
+}