aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java4
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java4
-rw-r--r--main/src/cgeo/geocaching/CompassActivity.java6
-rw-r--r--main/src/cgeo/geocaching/EditWaypointActivity.java5
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java7
-rw-r--r--main/src/cgeo/geocaching/NavigateAnyPointActivity.java4
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java13
-rw-r--r--main/src/cgeo/geocaching/sensors/GeoDirHandler.java3
8 files changed, 22 insertions, 24 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java
index 39adae9..5978835 100644
--- a/main/src/cgeo/geocaching/AbstractPopupActivity.java
+++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java
@@ -161,7 +161,6 @@ public abstract class AbstractPopupActivity extends AbstractActivity implements
@Override
public void onPause() {
- geoUpdate.stop();
super.onPause();
}
@@ -183,9 +182,8 @@ public abstract class AbstractPopupActivity extends AbstractActivity implements
@Override
public void onResume() {
- super.onResume();
+ super.onResume(geoUpdate.start());
init();
- geoUpdate.start();
}
@Override
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 5d529ee..dd095f5 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -312,13 +312,12 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void onResume() {
- super.onResume();
+ super.onResume(locationUpdater.start());
if (refreshOnResume) {
notifyDataSetChanged();
refreshOnResume = false;
}
- locationUpdater.start();
}
@Override
@@ -339,7 +338,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void onPause() {
- locationUpdater.stop();
super.onPause();
}
diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java
index a51e477..b7dcd7e 100644
--- a/main/src/cgeo/geocaching/CompassActivity.java
+++ b/main/src/cgeo/geocaching/CompassActivity.java
@@ -118,15 +118,11 @@ public class CompassActivity extends AbstractActivity {
@Override
public void onResume() {
- super.onResume();
-
- // sensor and geolocation manager
- geoDirHandler.start();
+ super.onResume(geoDirHandler.start());
}
@Override
public void onPause() {
- geoDirHandler.stop();
super.onPause();
}
diff --git a/main/src/cgeo/geocaching/EditWaypointActivity.java b/main/src/cgeo/geocaching/EditWaypointActivity.java
index 98884b8..ae17077 100644
--- a/main/src/cgeo/geocaching/EditWaypointActivity.java
+++ b/main/src/cgeo/geocaching/EditWaypointActivity.java
@@ -202,14 +202,11 @@ public class EditWaypointActivity extends AbstractActivity {
@Override
public void onResume() {
- super.onResume();
-
- geoDirHandler.start();
+ super.onResume(geoDirHandler.start());
}
@Override
public void onPause() {
- geoDirHandler.stop();
super.onPause();
}
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index bfe0217..b83bef2 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -52,6 +52,7 @@ import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import rx.subscriptions.Subscriptions;
import java.util.ArrayList;
import java.util.Arrays;
@@ -214,9 +215,7 @@ public class MainActivity extends AbstractActivity {
@Override
public void onResume() {
- super.onResume();
- locationUpdater.start();
- satellitesHandler.start();
+ super.onResume(Subscriptions.from(locationUpdater.start(), satellitesHandler.start()));
updateUserInfoHandler.sendEmptyMessage(-1);
startBackgroundLogin();
init();
@@ -257,8 +256,6 @@ public class MainActivity extends AbstractActivity {
@Override
public void onPause() {
initialized = false;
- locationUpdater.stop();
- satellitesHandler.stop();
super.onPause();
}
diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
index 72cbc64..92a08fe 100644
--- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
+++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
@@ -234,14 +234,12 @@ public class NavigateAnyPointActivity extends AbstractActivity {
@Override
public void onResume() {
- super.onResume();
- geoDirHandler.start();
+ super.onResume(geoDirHandler.start());
init();
}
@Override
public void onPause() {
- geoDirHandler.stop();
super.onPause();
}
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 7127de4..43fbcf2 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -21,6 +21,8 @@ import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
+import rx.Subscription;
+import rx.subscriptions.Subscriptions;
import java.util.Locale;
@@ -29,6 +31,7 @@ public abstract class AbstractActivity extends FragmentActivity implements IAbst
protected CgeoApplication app = null;
protected Resources res = null;
private boolean keepScreenOn = false;
+ private Subscription resumeSubscription = Subscriptions.empty();
protected AbstractActivity() {
this(false);
@@ -71,6 +74,16 @@ public abstract class AbstractActivity extends FragmentActivity implements IAbst
initializeCommonFields();
}
+ public void onResume(final Subscription resumeSubscription) {
+ super.onResume();
+ this.resumeSubscription = resumeSubscription;
+ }
+
+ @Override
+ public void onPause() {
+ resumeSubscription.unsubscribe();
+ }
+
protected static void disableSuggestions(final EditText edit) {
Compatibility.disableSuggestions(edit);
}
diff --git a/main/src/cgeo/geocaching/sensors/GeoDirHandler.java b/main/src/cgeo/geocaching/sensors/GeoDirHandler.java
index 523fb1f..917b9ff 100644
--- a/main/src/cgeo/geocaching/sensors/GeoDirHandler.java
+++ b/main/src/cgeo/geocaching/sensors/GeoDirHandler.java
@@ -42,13 +42,14 @@ public abstract class GeoDirHandler {
* Register the current GeoDirHandler for GeoData and direction information (if the
* preferences allow it).
*/
- public void start() {
+ public Subscription start() {
subscription = app.geoDirObservable().subscribe(new Action1<ImmutablePair<IGeoData, Float>>() {
@Override
public void call(final ImmutablePair<IGeoData, Float> geoDir) {
handleGeoDir(geoDir);
}
}, AndroidSchedulers.mainThread());
+ return subscription;
}
/**