X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FTabMap.java;h=d239d988ad488f36bebb9909e0c06d43aed6bc96;hb=a61217f0a6d0ef48b6471f632c4600255867e831;hp=9c39e105d68781018ce4d29a0eede3c1a443a556;hpb=a959c1926048d1b96a06aa291131afd7c8e771c7;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 9c39e105..d239d988 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,7 +21,7 @@ package org.altusmetrum.AltosDroid; import java.util.*; import java.io.*; -import org.altusmetrum.altoslib_7.*; +import org.altusmetrum.altoslib_12.*; import android.app.Activity; import android.graphics.*; @@ -32,11 +33,12 @@ import android.widget.*; import android.location.Location; import android.content.*; -public class TabMap extends AltosDroidTab { +public class TabMap extends AltosDroidTab implements AltosDroidMapSourceListener { AltosLatLon here; private TextView mDistanceView; + private TextView mBearingLabel; private TextView mBearingView; private TextView mTargetLatitudeView; private TextView mTargetLongitudeView; @@ -57,30 +59,24 @@ public class TabMap extends AltosDroidTab { super.onCreate(savedInstanceState); } - private void make_offline_map() { - } - - private void make_online_map() { - map_online = new AltosMapOnline(view.getContext()); - map_online.onCreateView(altos_droid.map_type); - } - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.tab_map, container, false); int map_source = AltosDroidPreferences.map_source(); mDistanceView = (TextView)view.findViewById(R.id.distance_value); + mBearingLabel = (TextView)view.findViewById(R.id.bearing_label); mBearingView = (TextView)view.findViewById(R.id.bearing_value); mTargetLatitudeView = (TextView)view.findViewById(R.id.target_lat_value); mTargetLongitudeView = (TextView)view.findViewById(R.id.target_lon_value); mReceiverLatitudeView = (TextView)view.findViewById(R.id.receiver_lat_value); mReceiverLongitudeView = (TextView)view.findViewById(R.id.receiver_lon_value); map_offline = (AltosMapOffline)view.findViewById(R.id.map_offline); - map_offline.onCreateView(altos_droid.map_type); + map_offline.onCreateView(altos_droid); map_online = new AltosMapOnline(view.getContext()); - map_online.onCreateView(altos_droid.map_type); - set_map_source(AltosDroidPreferences.map_source()); + map_online.onCreateView(altos_droid); + map_source_changed(AltosDroidPreferences.map_source()); + AltosDroidPreferences.register_map_source_listener(this); return view; } @@ -94,9 +90,12 @@ public class TabMap extends AltosDroidTab { @Override public void onDestroyView() { super.onDestroyView(); + map_offline.onDestroyView(); + map_online.onDestroyView(); + AltosDroidPreferences.unregister_map_source_listener(this); } - public String tab_name() { return "map"; } + public String tab_name() { return AltosDroid.tab_map_name; } private void center(double lat, double lon, double accuracy) { if (map_offline != null) @@ -107,8 +106,19 @@ public class TabMap extends AltosDroidTab { public void show(TelemetryState telem_state, AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (from_receiver != null) { - mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + String direction = AltosDroid.direction(from_receiver, receiver); + if (direction != null) { + mBearingLabel.setText("Direction"); + mBearingView.setText(direction); + } else { + mBearingLabel.setText("Bearing"); + mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + } set_value(mDistanceView, AltosConvert.distance, 6, from_receiver.distance); + } else { + mBearingLabel.setText("Bearing"); + mBearingView.setText(""); + set_value(mDistanceView, AltosConvert.distance, 6, AltosLib.MISSING); } if (state != null) { @@ -139,16 +149,7 @@ public class TabMap extends AltosDroidTab { } } - @Override - public void set_map_type(int map_type) { - if (map_offline != null) - map_offline.set_map_type(map_type); - if (map_online != null) - map_online.set_map_type(map_type); - } - - @Override - public void set_map_source(int map_source) { + public void map_source_changed(int map_source) { this.map_source = map_source; if (map_source == AltosDroidPreferences.MAP_SOURCE_OFFLINE) { if (map_online != null)