From 7bfa8841b65707d629b425b306ec4cc3acfc156c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 27 Apr 2015 21:20:22 -0700 Subject: altosdroid: Add USB support for TeleDongle/TeleBT This lets AltosDroid use a USB-connected receiver as well as Bluetooth devices. Signed-off-by: Keith Packard --- altosdroid/res/values/CustomTheme.xml | 7 +++++++ altosdroid/res/xml/device_filter.xml | 6 ++++++ 2 files changed, 13 insertions(+) create mode 100644 altosdroid/res/values/CustomTheme.xml create mode 100644 altosdroid/res/xml/device_filter.xml (limited to 'altosdroid/res') diff --git a/altosdroid/res/values/CustomTheme.xml b/altosdroid/res/values/CustomTheme.xml new file mode 100644 index 00000000..4daed1f8 --- /dev/null +++ b/altosdroid/res/values/CustomTheme.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/altosdroid/res/xml/device_filter.xml b/altosdroid/res/xml/device_filter.xml new file mode 100644 index 00000000..84b09c06 --- /dev/null +++ b/altosdroid/res/xml/device_filter.xml @@ -0,0 +1,6 @@ + + + + + + -- cgit v1.2.3 From 1cc1900e13d79e0451587439c23bbb062d86cee3 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 27 Apr 2015 22:29:45 -0700 Subject: altosdroid: Fix tab label height problems With a newer android API versions, we can set the indicator to a View instead of just a string. This lets us wrap the desired string in a TextView and show just that for the indicator, making it exactly the right size. Signed-off-by: Keith Packard --- altosdroid/res/layout/tab_layout.xml | 16 +++++++++ .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 41 ++++++++-------------- 2 files changed, 31 insertions(+), 26 deletions(-) create mode 100644 altosdroid/res/layout/tab_layout.xml (limited to 'altosdroid/res') diff --git a/altosdroid/res/layout/tab_layout.xml b/altosdroid/res/layout/tab_layout.xml new file mode 100644 index 00000000..2c21c648 --- /dev/null +++ b/altosdroid/res/layout/tab_layout.xml @@ -0,0 +1,16 @@ + + + + diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 27ebf206..b4fc3bc3 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -37,6 +37,7 @@ import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; +import android.content.res.Resources; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.util.DisplayMetrics; @@ -46,6 +47,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.view.View; +import android.view.LayoutInflater; import android.widget.TabHost; import android.widget.TextView; import android.widget.RelativeLayout; @@ -407,6 +409,14 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener { return String.format(format, value); } + private View create_tab_view(String label) { + LayoutInflater inflater = (LayoutInflater) this.getLayoutInflater(); + View tab_view = inflater.inflate(R.layout.tab_layout, null); + TextView text_view = (TextView) tab_view.findViewById (R.id.tabLabel); + text_view.setText(label); + return tab_view; + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -428,32 +438,11 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener { mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); - mTabsAdapter.addTab(mTabHost.newTabSpec("pad").setIndicator("Pad"), TabPad.class, null); - mTabsAdapter.addTab(mTabHost.newTabSpec("ascent").setIndicator("Ascent"), TabAscent.class, null); - mTabsAdapter.addTab(mTabHost.newTabSpec("descent").setIndicator("Descent"), TabDescent.class, null); - mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator("Landed"), TabLanded.class, null); - mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator("Map"), TabMap.class, null); - - - // Scale the size of the Tab bar for different screen densities - // This probably won't be needed when we start supporting ICS+ tabs. - DisplayMetrics metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); - int density = metrics.densityDpi; - - if (density==DisplayMetrics.DENSITY_XHIGH) - tabHeight = 65; - else if (density==DisplayMetrics.DENSITY_HIGH) - tabHeight = 45; - else if (density==DisplayMetrics.DENSITY_MEDIUM) - tabHeight = 35; - else if (density==DisplayMetrics.DENSITY_LOW) - tabHeight = 25; - else - tabHeight = 65; - - for (int i = 0; i < 5; i++) - mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = tabHeight; + mTabsAdapter.addTab(mTabHost.newTabSpec("pad").setIndicator(create_tab_view("Pad")), TabPad.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("ascent").setIndicator(create_tab_view("Ascent")), TabAscent.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("descent").setIndicator(create_tab_view("Descent")), TabDescent.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator(create_tab_view("Landed")), TabLanded.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator(create_tab_view("Map")), TabMap.class, null); // Set up the custom title mTitle = (TextView) findViewById(R.id.title_left_text); -- cgit v1.2.3 From 85013045ca505096064aaf45c312b158d0263d2a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 28 May 2015 01:05:18 -0700 Subject: altosdroid: Add map types and map preloading UIs This adds an ugly dialog to select which maps to preload, and also adds the ability to display other map types. Signed-off-by: Keith Packard --- altosdroid/AndroidManifest.xml | 10 + .../ic_maps_indicator_current_position.png | Bin 0 -> 2079 bytes .../ic_maps_indicator_current_position.png | Bin 0 -> 1205 bytes altosdroid/res/layout/device_list.xml | 16 +- altosdroid/res/layout/map_preload.xml | 129 +++++++++ altosdroid/res/layout/map_type.xml | 47 +++ altosdroid/res/menu/option_menu.xml | 28 +- altosdroid/res/values/strings.xml | 20 ++ .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 24 ++ .../org/altusmetrum/AltosDroid/AltosDroidTab.java | 3 + .../altusmetrum/AltosDroid/MapTypeActivity.java | 84 ++++++ .../altusmetrum/AltosDroid/PreloadMapActivity.java | 322 +++++++++++++++++++++ .../src/org/altusmetrum/AltosDroid/TabMap.java | 13 + .../org/altusmetrum/AltosDroid/TabMapOffline.java | 11 +- .../altusmetrum/AltosDroid/TelemetryService.java | 1 - 15 files changed, 688 insertions(+), 20 deletions(-) create mode 100644 altosdroid/res/drawable-hdpi/ic_maps_indicator_current_position.png create mode 100644 altosdroid/res/drawable-mdpi/ic_maps_indicator_current_position.png create mode 100644 altosdroid/res/layout/map_preload.xml create mode 100644 altosdroid/res/layout/map_type.xml create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java (limited to 'altosdroid/res') diff --git a/altosdroid/AndroidManifest.xml b/altosdroid/AndroidManifest.xml index 71c6fb12..592373d4 100644 --- a/altosdroid/AndroidManifest.xml +++ b/altosdroid/AndroidManifest.xml @@ -72,6 +72,16 @@ android:theme="@android:style/Theme.Dialog" android:configChanges="orientation|keyboardHidden" /> + + + + + - diff --git a/altosdroid/res/layout/map_preload.xml b/altosdroid/res/layout/map_preload.xml new file mode 100644 index 00000000..1d1fca32 --- /dev/null +++ b/altosdroid/res/layout/map_preload.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + +