altosdroid: use 'show' to set new tab contents in onResume
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosDroidTab.java
index 8e625da6563b8268242d9166a6019cc23e47fac3..cc1acd6798ab339c4a226b9984daa8fc639812f4 100644 (file)
@@ -17,7 +17,7 @@
 
 package org.altusmetrum.AltosDroid;
 
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_7.*;
 import android.location.Location;
 import android.app.Activity;
 import android.graphics.Color;
@@ -26,7 +26,6 @@ import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.app.FragmentManager;
 import android.location.Location;
-import android.util.Log;
 import android.widget.TextView;
 
 public abstract class AltosDroidTab extends Fragment implements AltosUnitsListener {
@@ -38,6 +37,9 @@ public abstract class AltosDroidTab extends Fragment implements AltosUnitsListen
 
        public abstract String tab_name();
 
+       public void set_map_type(int map_type) {
+       }
+
        public void units_changed(boolean imperial_units) {
                if (!isHidden() && last_state != null)
                        show(last_state, last_from_receiver, last_receiver);
@@ -60,24 +62,27 @@ public abstract class AltosDroidTab extends Fragment implements AltosUnitsListen
                        AltosGreatCircle        from_receiver = last_from_receiver;
                        Location                receiver = last_receiver;
 
-                       show(state, from_receiver, receiver);
                        ft.show(this);
+                       show(state, from_receiver, receiver);
                } else
                        ft.hide(this);
-               ft.commit();
+               ft.commitAllowingStateLoss();
+       }
+
+       @Override
+       public void onResume() {
+               super.onResume();
+               AltosDebug.debug("onResume tab %s\n", tab_name());
+               set_visible(true);
        }
 
        public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver, boolean is_current) {
                last_state = state;
                last_from_receiver = from_receiver;
                last_receiver = receiver;
-               if (is_current) {
-                       if (AltosDroid.D) Log.d(AltosDroid.TAG, String.format("%s: visible, performing update", tab_name()));
-
+               if (is_current)
                        show(state, from_receiver, receiver);
-               } else {
-                       if (AltosDroid.D) Log.d(AltosDroid.TAG, String.format("%s: not visible, skipping update", tab_name()));
+               else
                        return;
-               }
        }
 }