X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroidTab.java;h=b3824aa3252f6ec81bea730a01be1152e3bc8761;hp=6ebb47f74e3b1ff9f3218f5655c5e1d43d6e2237;hb=85013045ca505096064aaf45c312b158d0263d2a;hpb=ff332e640b27c6be37dabef58ebac350ac2347b2 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java index 6ebb47f7..b3824aa3 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java @@ -17,9 +17,65 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altoslib_7.*; import android.location.Location; +import android.app.Activity; +import android.graphics.Color; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v4.app.FragmentManager; +import android.location.Location; +import android.widget.TextView; + +public abstract class AltosDroidTab extends Fragment implements AltosUnitsListener { + AltosState last_state; + AltosGreatCircle last_from_receiver; + Location last_receiver; + + public abstract void show(AltosState state, AltosGreatCircle from_receiver, Location receiver); + + 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); + } + + public void set_value(TextView text_view, + AltosUnits units, + int width, + double value) { + if (value == AltosLib.MISSING) + text_view.setText(""); + else + text_view.setText(units.show(width, value)); + } + + public void set_visible(boolean visible) { + FragmentTransaction ft = AltosDroid.fm.beginTransaction(); + if (visible) { + AltosState state = last_state; + AltosGreatCircle from_receiver = last_from_receiver; + Location receiver = last_receiver; + + show(state, from_receiver, receiver); + ft.show(this); + } else + ft.hide(this); + ft.commitAllowingStateLoss(); + } -public interface AltosDroidTab { - public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver); + 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) + show(state, from_receiver, receiver); + else + return; + } }