diff --git a/ChangeLog.md b/ChangeLog.md
index bea11579cd..ce22b9d984 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -8,6 +8,10 @@ Our convention for release control is the following (for a release like DPvA.B.C
All the changes are logged below (preferable with the pull request numbers in parenteses):
# Releases
+## Droidplanner v2.2.2
+* Implemented the Android Navigation Drawer (#653)
+* Renamed the HUD to Attitude Indicator (#651)
+
## Droidplanner v2.2.1
* Fix errors in Land, Takeoff and RTH mission items (#655)
* German Translation and Language Selector in settings (#650)
diff --git a/DroidPlanner/AndroidManifest.xml b/DroidPlanner/AndroidManifest.xml
index eb7771f296..966bc26544 100644
--- a/DroidPlanner/AndroidManifest.xml
+++ b/DroidPlanner/AndroidManifest.xml
@@ -1,7 +1,7 @@
@@ -115,24 +116,19 @@
+ android:parentActivityName=".activities.SettingsActivity" >
+ android:value=".activities.SettingsActivity" />
-
-
-
-
+ android:launchMode="singleTop"
+ android:label="@string/settings"/>
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_circles.png b/DroidPlanner/res/drawable-hdpi/ic_action_circles.png
new file mode 100644
index 0000000000..de8a9b261c
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_circles.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_database.png b/DroidPlanner/res/drawable-hdpi/ic_action_database.png
new file mode 100644
index 0000000000..5ff85bd062
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_database.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_gear.png b/DroidPlanner/res/drawable-hdpi/ic_action_gear.png
new file mode 100644
index 0000000000..23471f4780
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_gear.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_help.png b/DroidPlanner/res/drawable-hdpi/ic_action_help.png
new file mode 100644
index 0000000000..4d04d99291
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_help.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_less.png b/DroidPlanner/res/drawable-hdpi/ic_action_less.png
new file mode 100644
index 0000000000..af5e6cbc9d
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_less.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_less_blue.png b/DroidPlanner/res/drawable-hdpi/ic_action_less_blue.png
new file mode 100644
index 0000000000..9f2fa08706
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_less_blue.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_location.png b/DroidPlanner/res/drawable-hdpi/ic_action_location.png
new file mode 100644
index 0000000000..8638d71381
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_location.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_more.png b/DroidPlanner/res/drawable-hdpi/ic_action_more.png
new file mode 100644
index 0000000000..e9dc3392aa
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_more.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_more_blue.png b/DroidPlanner/res/drawable-hdpi/ic_action_more_blue.png
new file mode 100644
index 0000000000..64800bedd6
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_more_blue.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_paste.png b/DroidPlanner/res/drawable-hdpi/ic_action_paste.png
new file mode 100644
index 0000000000..07edc1f4fe
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_paste.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_plane.png b/DroidPlanner/res/drawable-hdpi/ic_action_plane.png
new file mode 100644
index 0000000000..592cf22762
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_plane.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_action_settings.png b/DroidPlanner/res/drawable-hdpi/ic_action_settings.png
new file mode 100644
index 0000000000..3fc0f1782b
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_action_settings.png differ
diff --git a/DroidPlanner/res/drawable-hdpi/ic_drawer.png b/DroidPlanner/res/drawable-hdpi/ic_drawer.png
new file mode 100644
index 0000000000..ff7b1def9a
Binary files /dev/null and b/DroidPlanner/res/drawable-hdpi/ic_drawer.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_circles.png b/DroidPlanner/res/drawable-mdpi/ic_action_circles.png
new file mode 100644
index 0000000000..26527935a4
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_circles.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_database.png b/DroidPlanner/res/drawable-mdpi/ic_action_database.png
new file mode 100644
index 0000000000..f4889e311b
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_database.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_gear.png b/DroidPlanner/res/drawable-mdpi/ic_action_gear.png
new file mode 100644
index 0000000000..46cad26417
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_gear.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_help.png b/DroidPlanner/res/drawable-mdpi/ic_action_help.png
new file mode 100644
index 0000000000..a243e61ab3
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_help.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_less.png b/DroidPlanner/res/drawable-mdpi/ic_action_less.png
new file mode 100644
index 0000000000..0a6f86d64c
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_less.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_less_blue.png b/DroidPlanner/res/drawable-mdpi/ic_action_less_blue.png
new file mode 100644
index 0000000000..791d2e4ccd
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_less_blue.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_location.png b/DroidPlanner/res/drawable-mdpi/ic_action_location.png
new file mode 100644
index 0000000000..c952237109
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_location.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_more.png b/DroidPlanner/res/drawable-mdpi/ic_action_more.png
new file mode 100644
index 0000000000..de372f0d86
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_more.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_more_blue.png b/DroidPlanner/res/drawable-mdpi/ic_action_more_blue.png
new file mode 100644
index 0000000000..1f06dc990b
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_more_blue.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_paste.png b/DroidPlanner/res/drawable-mdpi/ic_action_paste.png
new file mode 100644
index 0000000000..9a3782b4ce
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_paste.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_plane.png b/DroidPlanner/res/drawable-mdpi/ic_action_plane.png
new file mode 100644
index 0000000000..a375349956
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_plane.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_action_settings.png b/DroidPlanner/res/drawable-mdpi/ic_action_settings.png
new file mode 100644
index 0000000000..69ca4dac2f
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_action_settings.png differ
diff --git a/DroidPlanner/res/drawable-mdpi/ic_drawer.png b/DroidPlanner/res/drawable-mdpi/ic_drawer.png
new file mode 100644
index 0000000000..fb681ba263
Binary files /dev/null and b/DroidPlanner/res/drawable-mdpi/ic_drawer.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_circles.png b/DroidPlanner/res/drawable-xhdpi/ic_action_circles.png
new file mode 100644
index 0000000000..7206a3ae39
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_circles.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_database.png b/DroidPlanner/res/drawable-xhdpi/ic_action_database.png
new file mode 100644
index 0000000000..2bb0e5af02
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_database.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_gear.png b/DroidPlanner/res/drawable-xhdpi/ic_action_gear.png
new file mode 100644
index 0000000000..3be1a7821c
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_gear.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_help.png b/DroidPlanner/res/drawable-xhdpi/ic_action_help.png
new file mode 100644
index 0000000000..1b8ed7e62c
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_help.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_less.png b/DroidPlanner/res/drawable-xhdpi/ic_action_less.png
new file mode 100644
index 0000000000..0d256c910f
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_less.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_less_blue.png b/DroidPlanner/res/drawable-xhdpi/ic_action_less_blue.png
new file mode 100644
index 0000000000..e9a0d6b08f
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_less_blue.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_location.png b/DroidPlanner/res/drawable-xhdpi/ic_action_location.png
new file mode 100644
index 0000000000..f81e925a08
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_location.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_more.png b/DroidPlanner/res/drawable-xhdpi/ic_action_more.png
new file mode 100644
index 0000000000..ebda37fbbd
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_more.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_more_blue.png b/DroidPlanner/res/drawable-xhdpi/ic_action_more_blue.png
new file mode 100644
index 0000000000..013491e2ca
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_more_blue.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_paste.png b/DroidPlanner/res/drawable-xhdpi/ic_action_paste.png
new file mode 100644
index 0000000000..486940ed61
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_paste.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_plane.png b/DroidPlanner/res/drawable-xhdpi/ic_action_plane.png
new file mode 100644
index 0000000000..86ce608322
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_plane.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_action_settings.png b/DroidPlanner/res/drawable-xhdpi/ic_action_settings.png
new file mode 100644
index 0000000000..e03e14b32a
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_action_settings.png differ
diff --git a/DroidPlanner/res/drawable-xhdpi/ic_drawer.png b/DroidPlanner/res/drawable-xhdpi/ic_drawer.png
new file mode 100644
index 0000000000..b9bc3d70f1
Binary files /dev/null and b/DroidPlanner/res/drawable-xhdpi/ic_drawer.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_circles.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_circles.png
new file mode 100644
index 0000000000..e044311dbc
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_circles.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_database.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_database.png
new file mode 100644
index 0000000000..e6a3e54972
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_database.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_gear.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_gear.png
new file mode 100644
index 0000000000..e00cd92c12
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_gear.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_help.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_help.png
new file mode 100644
index 0000000000..6a27671dbd
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_help.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_less.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_less.png
new file mode 100644
index 0000000000..7af2de4e2a
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_less.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_less_blue.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_less_blue.png
new file mode 100644
index 0000000000..8da1546d86
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_less_blue.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_location.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_location.png
new file mode 100644
index 0000000000..1096807e88
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_location.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_more.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_more.png
new file mode 100644
index 0000000000..e54637e47e
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_more.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_more_blue.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_more_blue.png
new file mode 100644
index 0000000000..0306bc9f55
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_more_blue.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_paste.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_paste.png
new file mode 100644
index 0000000000..e194cb4197
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_paste.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_plane.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_plane.png
new file mode 100644
index 0000000000..cc89533b50
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_plane.png differ
diff --git a/DroidPlanner/res/drawable-xxhdpi/ic_action_settings.png b/DroidPlanner/res/drawable-xxhdpi/ic_action_settings.png
new file mode 100644
index 0000000000..c79cd2160e
Binary files /dev/null and b/DroidPlanner/res/drawable-xxhdpi/ic_action_settings.png differ
diff --git a/DroidPlanner/res/drawable/expandable_listview_icon_collapsed.xml b/DroidPlanner/res/drawable/expandable_listview_icon_collapsed.xml
new file mode 100644
index 0000000000..ef7dec32bb
--- /dev/null
+++ b/DroidPlanner/res/drawable/expandable_listview_icon_collapsed.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DroidPlanner/res/drawable/expandable_listview_icon_expanded.xml b/DroidPlanner/res/drawable/expandable_listview_icon_expanded.xml
new file mode 100644
index 0000000000..c73803dda5
--- /dev/null
+++ b/DroidPlanner/res/drawable/expandable_listview_icon_expanded.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DroidPlanner/res/layout/activity_drawer_navigation_ui.xml b/DroidPlanner/res/layout/activity_drawer_navigation_ui.xml
new file mode 100644
index 0000000000..11356aa8ae
--- /dev/null
+++ b/DroidPlanner/res/layout/activity_drawer_navigation_ui.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DroidPlanner/res/layout/adapter_nav_drawer_child.xml b/DroidPlanner/res/layout/adapter_nav_drawer_child.xml
new file mode 100644
index 0000000000..e845d026aa
--- /dev/null
+++ b/DroidPlanner/res/layout/adapter_nav_drawer_child.xml
@@ -0,0 +1,15 @@
+
+
diff --git a/DroidPlanner/res/layout/adapter_nav_drawer_group.xml b/DroidPlanner/res/layout/adapter_nav_drawer_group.xml
new file mode 100644
index 0000000000..7600f43156
--- /dev/null
+++ b/DroidPlanner/res/layout/adapter_nav_drawer_group.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DroidPlanner/res/layout/fragment_hud.xml b/DroidPlanner/res/layout/fragment_attitude_indicator.xml
similarity index 88%
rename from DroidPlanner/res/layout/fragment_hud.xml
rename to DroidPlanner/res/layout/fragment_attitude_indicator.xml
index 9ac2ab54c7..65d8cd9219 100644
--- a/DroidPlanner/res/layout/fragment_hud.xml
+++ b/DroidPlanner/res/layout/fragment_attitude_indicator.xml
@@ -4,7 +4,7 @@
android:layout_height="match_parent"
android:orientation="vertical" >
-
diff --git a/DroidPlanner/res/layout/fragment_telemetry.xml b/DroidPlanner/res/layout/fragment_telemetry.xml
index dfb1cfab5b..84354b19b8 100644
--- a/DroidPlanner/res/layout/fragment_telemetry.xml
+++ b/DroidPlanner/res/layout/fragment_telemetry.xml
@@ -78,8 +78,8 @@
android:text="@string/default_angle_value"
android:textSize="16sp"/>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DroidPlanner/res/menu/menu_super_activiy.xml b/DroidPlanner/res/menu/menu_super_activiy.xml
index 32e2d1e76f..f3e6c62dc4 100644
--- a/DroidPlanner/res/menu/menu_super_activiy.xml
+++ b/DroidPlanner/res/menu/menu_super_activiy.xml
@@ -27,17 +27,4 @@
android:showAsAction="never"
android:title="@string/menu_disconnect"/>
-
-
-
diff --git a/DroidPlanner/res/values/strings.xml b/DroidPlanner/res/values/strings.xml
index f6ff7b3eb1..75366e1261 100644
--- a/DroidPlanner/res/values/strings.xml
+++ b/DroidPlanner/res/values/strings.xml
@@ -8,6 +8,8 @@
Settings
Help
Drone Setup
+ App Settings
+ Flight Data
Editor
Send Mission
Load Mission
@@ -324,6 +326,11 @@
Take
Loiter
Follow
+ Telemetry
+ Flight modes
+ Info Bar
+ Open navigation drawer
+ Close navigation drawer
Select device to connect
@@ -334,6 +341,9 @@
Scan for devices
Scanning for devices
+
+ Expandable listview icon
+
Manual adjustment of roll and pitch tuning. Rate_P is the primary value to adjust.
Altitude
@@ -343,7 +353,4 @@
Mode 1: Throttle on RIGHT stick
Mode 2: Throttle on LEFT stick
- Telemetry
- Flight modes
- Info Bar
diff --git a/DroidPlanner/res/xml/preferences.xml b/DroidPlanner/res/xml/preferences.xml
index bca851ed98..951f8936f0 100644
--- a/DroidPlanner/res/xml/preferences.xml
+++ b/DroidPlanner/res/xml/preferences.xml
@@ -1,278 +1,283 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
+ android:key="pref_mavlink"
+ android:title="@string/pref_mavlink">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+ android:key="pref_max_flight_path_size"
+ android:summary="@string/pref_max_flight_path_size_summary"
+ android:title="@string/pref_max_flight_path_size"/>
+ android:key="pref_guided_mode_on_long_press"
+ android:summary="@string/pref_guided_mode_on_long_press_summary"
+ android:title="@string/pref_guided_mode_on_long_press"/>
-
-
-
-
-
-
-
-
-
-
-
+ android:defaultValue="false"
+ android:key="pref_follow_me_mode_enabled"
+ android:summary="@string/pref_follow_me_mode_enabled_summary"
+ android:title="@string/pref_follow_me_mode_enabled"/>
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:key="pref_connection"
+ android:title="@string/pref_connection">
-
+ android:key="pref_usb"
+ android:title="@string/pref_usb">
-
-
-
-
-
+ android:defaultValue="57600"
+ android:entries="@array/TelemetryBaudTypes"
+ android:entryValues="@array/TelemetryBaudTypes"
+ android:key="pref_baud_type"
+ android:summary="@string/pref_baud_type_summary"
+ android:title="@string/pref_baud_type"/>
-
+ android:key="pref_server"
+ android:title="@string/pref_server">
+
+
-
-
-
-
+ android:key="pref_server_udp"
+ android:title="@string/pref_server_udp">
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
[] sConfigurationFragments = new Class[]{
- //TuningFragment.class,
+ public static final Class extends Fragment>[] sConfigurationFragments = new Class[]{
+ TuningFragment.class,
SetupRadioFragment.class,
- //SetupSensorFragment.class,
+ SetupSensorFragment.class,
ChecklistFragment.class,
ParamsFragment.class
};
@@ -43,21 +48,32 @@ public class ConfigurationActivity extends SuperUI {
/**
* Holds the title resources for the configuration screens.
*/
- private static final int[] sConfigurationFragmentTitlesRes = {
- //R.string.screen_tuning,
+ public static final int[] sConfigurationFragmentTitlesRes = {
+ R.string.screen_tuning,
R.string.screen_rc,
- //R.string.screen_cal,
+ R.string.screen_cal,
R.string.screen_checklist,
R.string.screen_parameters
};
+ public static final int[] sConfigurationFragmentIconRes = {
+ android.R.drawable.ic_menu_preferences,
+ R.drawable.ic_status_rssi,
+ R.drawable.ic_action_circles,
+ R.drawable.ic_action_paste,
+ R.drawable.ic_action_database
+ };
+
+ private ViewPager mViewPager;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_configuration);
//Check that the arrays are the same length.
- if(sConfigurationFragments.length != sConfigurationFragmentTitlesRes.length){
+ if(sConfigurationFragments.length != sConfigurationFragmentTitlesRes.length ||
+ sConfigurationFragmentTitlesRes.length != sConfigurationFragmentIconRes.length){
throw new IllegalStateException("The fragment and title resource arrays must match in" +
" length.");
}
@@ -67,19 +83,19 @@ public void onCreate(Bundle savedInstanceState) {
final ConfigurationPagerAdapter pagerAdapter = new ConfigurationPagerAdapter(
context, getSupportFragmentManager());
- final ViewPager viewPager = (ViewPager) findViewById(R.id.configuration_pager);
- viewPager.setAdapter(pagerAdapter);
+ mViewPager = (ViewPager) findViewById(R.id.configuration_pager);
+ mViewPager.setAdapter(pagerAdapter);
/*
Figure out if we're running on a tablet like device, or a phone.
- The phone layout doesn't the tab strip, so the tabIndicator will be null.
+ The phone layout doesn't have the tab strip, so the tabIndicator will be null.
*/
final TabPageIndicator tabIndicator = (TabPageIndicator) findViewById(R.id
.configuration_tab_strip);
final boolean isPhone = tabIndicator == null;
if (!isPhone) {
- tabIndicator.setViewPager(viewPager);
+ tabIndicator.setViewPager(mViewPager);
}
final ActionBar actionBar = getActionBar();
@@ -95,12 +111,12 @@ public void onCreate(Bundle savedInstanceState) {
R.layout.spinner_configuration_screen_item), new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
- viewPager.setCurrentItem(itemPosition, true);
+ mViewPager.setCurrentItem(itemPosition, true);
return true;
}
});
- viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
+ mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int i) {
@@ -109,8 +125,21 @@ public void onPageSelected(int i) {
});
}
}
+
+ handleIntent(getIntent());
}
+ @Override
+ public void onNewIntent(Intent intent){
+ super.onNewIntent(intent);
+ handleIntent(intent);
+ }
+
+ private void handleIntent(Intent intent){
+ int configScreenIndex = intent.getIntExtra(EXTRA_CONFIG_SCREEN_INDEX, 0);
+ mViewPager.setCurrentItem(configScreenIndex);
+ }
+
@Override
public void onDroneEvent(DroneEventsType event, Drone drone) {
super.onDroneEvent(event, drone);
@@ -126,11 +155,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
- @Override
- public CharSequence[][] getHelpItems() {
- return new CharSequence[][] { {}, {} };
- }
-
/**
* This is the fragment pager adapter to handle the tabs of the
* Configuration activity.
diff --git a/DroidPlanner/src/org/droidplanner/activities/DrawerNavigationUI.java b/DroidPlanner/src/org/droidplanner/activities/DrawerNavigationUI.java
new file mode 100644
index 0000000000..76a485eadb
--- /dev/null
+++ b/DroidPlanner/src/org/droidplanner/activities/DrawerNavigationUI.java
@@ -0,0 +1,124 @@
+package org.droidplanner.activities;
+
+import org.droidplanner.R;
+import org.droidplanner.activities.helpers.SuperUI;
+import org.droidplanner.activities.interfaces.HelpProvider;
+import org.droidplanner.widgets.adapterViews.NavigationDrawerAdapter;
+
+import android.app.ActionBar;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.support.v4.app.ActionBarDrawerToggle;
+import android.support.v4.widget.DrawerLayout;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ExpandableListView;
+
+/**
+ * This abstract activity provides its children access to a navigation drawer interface.
+ */
+public abstract class DrawerNavigationUI extends SuperUI implements HelpProvider {
+
+ /**
+ * Activates the navigation drawer when the home button is clicked.
+ */
+ private ActionBarDrawerToggle mDrawerToggle;
+
+ /**
+ * Navigation drawer used to access the different sections of the app.
+ */
+ private DrawerLayout mDrawerLayout;
+
+ /**
+ * Expandable listview used as layout for the app sections.
+ */
+ private ExpandableListView mNavHubView;
+
+ /**
+ * Adapter used to populate the expandable list view.
+ */
+ private NavigationDrawerAdapter mNavDrawerAdapter;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ //Retrieve the drawer layout container.
+ mDrawerLayout = (DrawerLayout) getLayoutInflater()
+ .inflate(R.layout.activity_drawer_navigation_ui, null);
+
+ mNavHubView = (ExpandableListView) mDrawerLayout.findViewById(R.id.nav_drawer_container);
+
+ mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer,
+ R.string.drawer_open, R.string.drawer_close);
+
+ mDrawerLayout.setDrawerListener(mDrawerToggle);
+
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setHomeButtonEnabled(true);
+ }
+
+ //Set the adapter for the list view
+ mNavDrawerAdapter = new NavigationDrawerAdapter(this);
+ mNavDrawerAdapter.attachExpandableListView();
+ }
+
+ /**
+ * Intercepts the call to 'setContentView', and wrap the passed layout within a DrawerLayout
+ * object.
+ * This way, the children of this class don't have to do anything to benefit from the
+ * navigation drawer.
+ *
+ * @param layoutResID layout resource for the activity view
+ */
+ @Override
+ public void setContentView(int layoutResID) {
+ final View contentView = getLayoutInflater().inflate(layoutResID, mDrawerLayout, false);
+ mDrawerLayout.addView(contentView, 0);
+ setContentView(mDrawerLayout);
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+
+ if (mDrawerToggle != null)
+ mDrawerToggle.onConfigurationChanged(newConfig);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Pass the event to ActionBarDrawerToggle, if it returns
+ // true, then it has handled the app icon touch event
+ if (mDrawerToggle.onOptionsItemSelected(item))
+ return true;
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onPostCreate(Bundle savedInstanceState) {
+ super.onPostCreate(savedInstanceState);
+
+ if (mDrawerToggle != null) {
+ //Sync the toggle state after onRestoreInstanceState has occurred.
+ mDrawerToggle.syncState();
+ }
+ }
+
+ @Override
+ public void onResume(){
+ super.onResume();
+ mNavDrawerAdapter.refreshHubView();
+ }
+
+ public DrawerLayout getDrawerLayout(){
+ return mDrawerLayout;
+ }
+
+ public ExpandableListView getNavHubView(){
+ return mNavHubView;
+ }
+}
diff --git a/DroidPlanner/src/org/droidplanner/activities/EditorActivity.java b/DroidPlanner/src/org/droidplanner/activities/EditorActivity.java
index dd898abf8a..2e59b61521 100644
--- a/DroidPlanner/src/org/droidplanner/activities/EditorActivity.java
+++ b/DroidPlanner/src/org/droidplanner/activities/EditorActivity.java
@@ -2,6 +2,7 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.activities.helpers.OnEditorInteraction;
import org.droidplanner.activities.helpers.SuperUI;
import org.droidplanner.drone.Drone;
@@ -14,8 +15,8 @@
import org.droidplanner.fragments.EditorToolsFragment.EditorTools;
import org.droidplanner.fragments.EditorToolsFragment.OnEditorToolSelected;
import org.droidplanner.fragments.helpers.GestureMapFragment;
-import org.droidplanner.fragments.helpers.MapProjection;
import org.droidplanner.fragments.helpers.GestureMapFragment.OnPathFinishedListener;
+import org.droidplanner.fragments.helpers.MapProjection;
import org.droidplanner.fragments.mission.MissionDetailFragment;
import org.droidplanner.fragments.mission.MissionDetailFragment.OnWayPointTypeChangeListener;
@@ -32,7 +33,6 @@
import android.widget.ListView;
import android.widget.TextView;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.LatLng;
public class EditorActivity extends SuperUI implements OnPathFinishedListener,
@@ -350,8 +350,4 @@ public void onListVisibilityChanged() {
updateMapPadding();
}
- @Override
- public CharSequence[][] getHelpItems() {
- return new CharSequence[][] { {}, {} };
- }
}
diff --git a/DroidPlanner/src/org/droidplanner/activities/FlightActivity.java b/DroidPlanner/src/org/droidplanner/activities/FlightActivity.java
index 9cccffb0a2..1d7051a3ee 100644
--- a/DroidPlanner/src/org/droidplanner/activities/FlightActivity.java
+++ b/DroidPlanner/src/org/droidplanner/activities/FlightActivity.java
@@ -1,7 +1,6 @@
package org.droidplanner.activities;
import org.droidplanner.R;
-import org.droidplanner.activities.helpers.SuperUI;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
@@ -11,22 +10,9 @@
import org.droidplanner.fragments.FlightMapFragment;
import org.droidplanner.fragments.RCFragment;
import org.droidplanner.fragments.TelemetryFragment;
-import org.droidplanner.fragments.helpers.DroneMap;
import org.droidplanner.fragments.helpers.FlightSlidingDrawerContent;
import org.droidplanner.fragments.helpers.OnMapInteractionListener;
import org.droidplanner.fragments.mode.FlightModePanel;
-import org.droidplanner.fragments.mode.ModeAcroFragment;
-import org.droidplanner.fragments.mode.ModeAltholdFragment;
-import org.droidplanner.fragments.mode.ModeAutoFragment;
-import org.droidplanner.fragments.mode.ModeCircleFragment;
-import org.droidplanner.fragments.mode.ModeDisconnectedFragment;
-import org.droidplanner.fragments.mode.ModeDriftFragment;
-import org.droidplanner.fragments.mode.ModeGuidedFragment;
-import org.droidplanner.fragments.mode.ModeLandFragment;
-import org.droidplanner.fragments.mode.ModeLoiterFragment;
-import org.droidplanner.fragments.mode.ModePositionFragment;
-import org.droidplanner.fragments.mode.ModeRTLFragment;
-import org.droidplanner.fragments.mode.ModeStabilizeFragment;
import org.droidplanner.polygon.PolygonPoint;
import android.app.Dialog;
@@ -43,7 +29,7 @@
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.model.LatLng;
-public class FlightActivity extends SuperUI implements
+public class FlightActivity extends DrawerNavigationUI implements
OnMapInteractionListener, FlightActionsFragment.OnMissionControlInteraction, OnDroneListener{
private static final int GOOGLE_PLAY_SERVICES_REQUEST_CODE = 101;
diff --git a/DroidPlanner/src/org/droidplanner/activities/SettingsActivity.java b/DroidPlanner/src/org/droidplanner/activities/SettingsActivity.java
index 6b422a4b4a..bdb0ef0d5f 100644
--- a/DroidPlanner/src/org/droidplanner/activities/SettingsActivity.java
+++ b/DroidPlanner/src/org/droidplanner/activities/SettingsActivity.java
@@ -1,17 +1,16 @@
package org.droidplanner.activities;
-import org.droidplanner.activities.helpers.SuperUI;
+import org.droidplanner.R;
import org.droidplanner.fragments.SettingsFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
-import org.droidplanner.R;
/**
* This activity holds the SettingsFragment.
*/
-public class SettingsActivity extends SuperUI {
+public class SettingsActivity extends DrawerNavigationUI {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/DroidPlanner/src/org/droidplanner/activities/helpers/HelpActivity.java b/DroidPlanner/src/org/droidplanner/activities/helpers/HelpActivity.java
deleted file mode 100644
index 25e85e3a30..0000000000
--- a/DroidPlanner/src/org/droidplanner/activities/helpers/HelpActivity.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.droidplanner.activities.helpers;
-
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.content.Intent;
-import android.net.Uri;
-import android.support.v4.app.FragmentActivity;
-import android.view.MenuItem;
-import org.droidplanner.R;
-
-public abstract class HelpActivity extends FragmentActivity implements OnClickListener {
-
- public HelpActivity() {
- super();
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch(item.getItemId()){
- case R.id.menu_help:
- showHelpDialog();
- return true;
-
- default:
- return false;
- }
- }
-
- private void showHelpDialog() {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.help);
- builder.setItems(getHelpItems()[0], this);
- builder.create().show();
- }
-
- /**
- * Get help items to be populated
- *
- * @return A matrix with pars of help guides names, with the associated
- * video url
- */
- public abstract CharSequence[][] getHelpItems();
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getHelpItems()[1][which].toString())));
- }
-
-}
diff --git a/DroidPlanner/src/org/droidplanner/activities/helpers/SuperActivity.java b/DroidPlanner/src/org/droidplanner/activities/helpers/SuperActivity.java
index a53802968b..cbd8587dfa 100644
--- a/DroidPlanner/src/org/droidplanner/activities/helpers/SuperActivity.java
+++ b/DroidPlanner/src/org/droidplanner/activities/helpers/SuperActivity.java
@@ -2,33 +2,26 @@
import org.droidplanner.DroidPlannerApp;
import org.droidplanner.R;
-import org.droidplanner.activities.ConfigurationActivity;
-import org.droidplanner.activities.SettingsActivity;
import org.droidplanner.dialogs.AltitudeDialog;
import org.droidplanner.dialogs.AltitudeDialog.OnAltitudeChangedListener;
import org.droidplanner.drone.Drone;
import org.droidplanner.fragments.helpers.BTDeviceListFragment;
import org.droidplanner.fragments.helpers.OfflineMapFragment;
import org.droidplanner.helpers.units.Altitude;
+import org.droidplanner.utils.Constants;
+import org.droidplanner.utils.Utils;
-import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.v4.app.FragmentActivity;
import android.view.MenuItem;
-import org.droidplanner.utils.Constants;
-import org.droidplanner.utils.Utils;
-public abstract class SuperActivity extends HelpActivity implements
- OnAltitudeChangedListener {
+public abstract class SuperActivity extends FragmentActivity implements OnAltitudeChangedListener {
public DroidPlannerApp app;
public Drone drone;
- public SuperActivity() {
- super();
- }
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -44,22 +37,18 @@ public void onCreate(Bundle savedInstanceState) {
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
- case R.id.menu_drone_setup:
- startActivity(new Intent(this, ConfigurationActivity.class));
- return true;
- case R.id.menu_settings:
- startActivity(new Intent(this, SettingsActivity.class));
- return true;
case R.id.menu_connect:
toggleDroneConnection();
return true;
+
case R.id.menu_map_type_hybrid:
case R.id.menu_map_type_normal:
case R.id.menu_map_type_terrain:
case R.id.menu_map_type_satellite:
setMapTypeFromItemId(item.getItemId());
return true;
- default:
+
+ default:
return super.onMenuItemSelected(featureId, item);
}
}
diff --git a/DroidPlanner/src/org/droidplanner/activities/helpers/SuperUI.java b/DroidPlanner/src/org/droidplanner/activities/helpers/SuperUI.java
index 5f25ea278a..1d7c5d27dd 100644
--- a/DroidPlanner/src/org/droidplanner/activities/helpers/SuperUI.java
+++ b/DroidPlanner/src/org/droidplanner/activities/helpers/SuperUI.java
@@ -1,19 +1,19 @@
package org.droidplanner.activities.helpers;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
import org.droidplanner.R;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
import org.droidplanner.gcs.GCSHeartbeat;
+import org.droidplanner.utils.Utils;
import org.droidplanner.widgets.actionProviders.InfoBarActionProvider;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
public abstract class SuperUI extends SuperActivity implements OnDroneListener {
private ScreenOrientation screenOrientation = new ScreenOrientation(this);
- private UiLanguage uiLanguage = new UiLanguage(this);
private InfoBarActionProvider infoBar;
private GCSHeartbeat gcsHeartbeat;
@@ -21,7 +21,7 @@ public abstract class SuperUI extends SuperActivity implements OnDroneListener {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
screenOrientation.unlock();
- uiLanguage.updateUiLanguage();
+ Utils.updateUILanguage(getApplicationContext());
gcsHeartbeat = new GCSHeartbeat(drone,1);
}
diff --git a/DroidPlanner/src/org/droidplanner/activities/helpers/UiLanguage.java b/DroidPlanner/src/org/droidplanner/activities/helpers/UiLanguage.java
deleted file mode 100644
index 03640f9356..0000000000
--- a/DroidPlanner/src/org/droidplanner/activities/helpers/UiLanguage.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.droidplanner.activities.helpers;
-
-import android.app.Activity;
-import android.content.res.Configuration;
-import android.preference.PreferenceManager;
-
-import java.util.Locale;
-
-public class UiLanguage {
- private Activity activity;
-
- public UiLanguage(Activity activity) {
- this.activity = activity;
- }
-
- public void updateUiLanguage() {
- if (isUiLanguageEnglish()) {
- Configuration config = new Configuration();
- config.locale = Locale.ENGLISH;
- activity.getResources().updateConfiguration(config,
- activity.getResources().getDisplayMetrics());
- }
- }
-
- private boolean isUiLanguageEnglish() {
- return PreferenceManager.getDefaultSharedPreferences(
- activity.getApplicationContext()).getBoolean("pref_ui_language_english", false);
- }
-}
diff --git a/DroidPlanner/src/org/droidplanner/activities/interfaces/HelpProvider.java b/DroidPlanner/src/org/droidplanner/activities/interfaces/HelpProvider.java
new file mode 100644
index 0000000000..723a0a5ee8
--- /dev/null
+++ b/DroidPlanner/src/org/droidplanner/activities/interfaces/HelpProvider.java
@@ -0,0 +1,15 @@
+package org.droidplanner.activities.interfaces;
+
+/**
+ * Implementation of this interface provides user help.
+ */
+public interface HelpProvider {
+
+ /**
+ * Get help items to be populated
+ *
+ * @return A matrix with pars of help guides names, with the associated
+ * video url
+ */
+ public abstract CharSequence[][] getHelpItems();
+}
diff --git a/DroidPlanner/src/org/droidplanner/adapters/ParamsAdapter.java b/DroidPlanner/src/org/droidplanner/adapters/ParamsAdapter.java
index 85d963829d..c379af9adb 100644
--- a/DroidPlanner/src/org/droidplanner/adapters/ParamsAdapter.java
+++ b/DroidPlanner/src/org/droidplanner/adapters/ParamsAdapter.java
@@ -1,5 +1,18 @@
package org.droidplanner.adapters;
+import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.droidplanner.R;
+import org.droidplanner.drone.Drone;
+import org.droidplanner.file.IO.ParameterMetadataMapReader;
+import org.droidplanner.file.IO.VehicleProfile;
+import org.droidplanner.parameters.Parameter;
+import org.droidplanner.parameters.ParameterMetadata;
+
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
@@ -12,25 +25,6 @@
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.TextView;
-import org.droidplanner.R;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.droidplanner.DroidPlannerApp;
-import org.droidplanner.drone.Drone;
-import org.droidplanner.file.DirectoryPath;
-import org.droidplanner.file.IO.ParameterMetadataMapReader;
-import org.droidplanner.file.IO.VehicleProfile;
-import org.droidplanner.parameters.Parameter;
-import org.droidplanner.parameters.ParameterMetadata;
/**
* Date: 2013-12-08
diff --git a/DroidPlanner/src/org/droidplanner/checklist/CheckListAdapter.java b/DroidPlanner/src/org/droidplanner/checklist/CheckListAdapter.java
index e162cbaa3d..857cc1d46b 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/CheckListAdapter.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/CheckListAdapter.java
@@ -4,10 +4,12 @@
import java.util.HashMap;
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.checklist.listadapter.ListXmlAdapter;
import org.droidplanner.checklist.row.ListRow;
import org.droidplanner.checklist.row.ListRow_CheckBox;
import org.droidplanner.checklist.row.ListRow_Interface;
+import org.droidplanner.checklist.row.ListRow_Interface.OnRowItemChangeListener;
import org.droidplanner.checklist.row.ListRow_Level;
import org.droidplanner.checklist.row.ListRow_Note;
import org.droidplanner.checklist.row.ListRow_Radio;
@@ -16,9 +18,7 @@
import org.droidplanner.checklist.row.ListRow_Toggle;
import org.droidplanner.checklist.row.ListRow_Type;
import org.droidplanner.checklist.row.ListRow_Value;
-import org.droidplanner.checklist.row.ListRow_Interface.OnRowItemChangeListener;
-import org.droidplanner.R;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/CheckListXmlParser.java b/DroidPlanner/src/org/droidplanner/checklist/CheckListXmlParser.java
index 99d93301ee..449de6d55b 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/CheckListXmlParser.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/CheckListXmlParser.java
@@ -8,7 +8,6 @@
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-
import android.content.Context;
public class CheckListXmlParser extends ListXmlParser {
diff --git a/DroidPlanner/src/org/droidplanner/checklist/listadapter/ListXmlAdapter.java b/DroidPlanner/src/org/droidplanner/checklist/listadapter/ListXmlAdapter.java
index 19fff10d85..7b27f3100c 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/listadapter/ListXmlAdapter.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/listadapter/ListXmlAdapter.java
@@ -3,9 +3,8 @@
import java.util.HashMap;
import java.util.List;
-import org.droidplanner.checklist.row.ListRow_Interface;
-
import org.droidplanner.R;
+import org.droidplanner.checklist.row.ListRow_Interface;
import android.graphics.Typeface;
import android.view.LayoutInflater;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/BaseViewHolder.java b/DroidPlanner/src/org/droidplanner/checklist/row/BaseViewHolder.java
index a8b895f2e4..c1074f03cd 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/BaseViewHolder.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/BaseViewHolder.java
@@ -1,8 +1,7 @@
package org.droidplanner.checklist.row;
-import org.droidplanner.checklist.CheckListItem;
-
import org.droidplanner.R;
+import org.droidplanner.checklist.CheckListItem;
import android.view.ViewGroup;
import android.widget.CheckBox;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_CheckBox.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_CheckBox.java
index eb0ad1b6cf..b9f0c6d829 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_CheckBox.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_CheckBox.java
@@ -1,8 +1,8 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Level.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Level.java
index 3658548f30..306a899121 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Level.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Level.java
@@ -1,8 +1,8 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Note.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Note.java
index ea477d9403..8a2006238a 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Note.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Note.java
@@ -1,8 +1,7 @@
package org.droidplanner.checklist.row;
-import org.droidplanner.checklist.CheckListItem;
-
import org.droidplanner.R;
+import org.droidplanner.checklist.CheckListItem;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Radio.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Radio.java
index 1db45267a8..daf049feb0 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Radio.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Radio.java
@@ -2,9 +2,9 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Select.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Select.java
index 01d0100efd..9ee49ffd47 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Select.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Select.java
@@ -1,8 +1,8 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Switch.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Switch.java
index 49b09cdbfb..7d4390b315 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Switch.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Switch.java
@@ -1,8 +1,8 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Toggle.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Toggle.java
index 96583147ba..c672c54cfe 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Toggle.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Toggle.java
@@ -1,14 +1,14 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
-import android.widget.ToggleButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.ToggleButton;
public class ListRow_Toggle extends ListRow implements OnCheckedChangeListener {
diff --git a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Value.java b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Value.java
index 4ed9c6a59e..c6bd9db000 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Value.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/row/ListRow_Value.java
@@ -1,8 +1,8 @@
package org.droidplanner.checklist.row;
+import org.droidplanner.R;
import org.droidplanner.checklist.CheckListItem;
-import org.droidplanner.R;
import android.text.InputType;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/DroidPlanner/src/org/droidplanner/checklist/xml/ListXmlParser.java b/DroidPlanner/src/org/droidplanner/checklist/xml/ListXmlParser.java
index e834d65830..d107bba8fa 100644
--- a/DroidPlanner/src/org/droidplanner/checklist/xml/ListXmlParser.java
+++ b/DroidPlanner/src/org/droidplanner/checklist/xml/ListXmlParser.java
@@ -6,6 +6,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
diff --git a/DroidPlanner/src/org/droidplanner/connection/BluetoothConnection.java b/DroidPlanner/src/org/droidplanner/connection/BluetoothConnection.java
index 2398b1ce50..83fa40fc38 100644
--- a/DroidPlanner/src/org/droidplanner/connection/BluetoothConnection.java
+++ b/DroidPlanner/src/org/droidplanner/connection/BluetoothConnection.java
@@ -1,5 +1,14 @@
package org.droidplanner.connection;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.UnknownHostException;
+import java.util.Set;
+import java.util.UUID;
+
+import org.droidplanner.utils.Constants;
+
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -9,14 +18,6 @@
import android.os.ParcelUuid;
import android.preference.PreferenceManager;
import android.util.Log;
-import org.droidplanner.utils.Constants;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.UnknownHostException;
-import java.util.Set;
-import java.util.UUID;
public class BluetoothConnection extends MAVLinkConnection {
private static final String BLUE = "BLUETOOTH";
diff --git a/DroidPlanner/src/org/droidplanner/connection/UsbConnection.java b/DroidPlanner/src/org/droidplanner/connection/UsbConnection.java
index 9e601e1000..7d6c256803 100644
--- a/DroidPlanner/src/org/droidplanner/connection/UsbConnection.java
+++ b/DroidPlanner/src/org/droidplanner/connection/UsbConnection.java
@@ -3,19 +3,19 @@
import java.io.IOException;
import java.net.UnknownHostException;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.usb.UsbManager;
+import android.util.Log;
+
+import com.hoho.android.usbserial.driver.UsbSerialDriver;
+import com.hoho.android.usbserial.driver.UsbSerialProber;
//This version is modified by Helibot to use the "USB Serial for Android Library"
//See https://code.google.com/p/usb-serial-for-android/
// It should allow support of FDTI and other Serial to USB converters.
// It should allow APM v2.0 and 2.5 to connect via USB cable straight to APM.
// Be sure to set the Telementry speed in the setting menu to
// 115200 when connecting directly with USB cable.
-import com.hoho.android.usbserial.driver.UsbSerialDriver;
-import com.hoho.android.usbserial.driver.UsbSerialProber;
-import android.hardware.usb.UsbManager;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.util.Log;
public class UsbConnection extends MAVLinkConnection {
private static int baud_rate = 57600;
diff --git a/DroidPlanner/src/org/droidplanner/dialogs/AltitudeDialog.java b/DroidPlanner/src/org/droidplanner/dialogs/AltitudeDialog.java
index 24d6d5989a..4b9ccd2683 100644
--- a/DroidPlanner/src/org/droidplanner/dialogs/AltitudeDialog.java
+++ b/DroidPlanner/src/org/droidplanner/dialogs/AltitudeDialog.java
@@ -1,5 +1,6 @@
package org.droidplanner.dialogs;
+import org.droidplanner.R;
import org.droidplanner.helpers.units.Altitude;
import android.app.AlertDialog;
@@ -10,7 +11,6 @@
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.NumberPicker;
-import org.droidplanner.R;
public class AltitudeDialog implements DialogInterface.OnClickListener {
private NumberPicker thousandPicker;
diff --git a/DroidPlanner/src/org/droidplanner/dialogs/openfile/OpenFileDialog.java b/DroidPlanner/src/org/droidplanner/dialogs/openfile/OpenFileDialog.java
index 8be7032980..2f88004f24 100644
--- a/DroidPlanner/src/org/droidplanner/dialogs/openfile/OpenFileDialog.java
+++ b/DroidPlanner/src/org/droidplanner/dialogs/openfile/OpenFileDialog.java
@@ -1,13 +1,13 @@
package org.droidplanner.dialogs.openfile;
+import org.droidplanner.R;
+
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.widget.Toast;
-import org.droidplanner.R;
-
public abstract class OpenFileDialog implements OnClickListener {
public interface FileReader {
diff --git a/DroidPlanner/src/org/droidplanner/dialogs/parameters/DialogParameterInfo.java b/DroidPlanner/src/org/droidplanner/dialogs/parameters/DialogParameterInfo.java
index 71e7455ee4..91b4c43ca7 100644
--- a/DroidPlanner/src/org/droidplanner/dialogs/parameters/DialogParameterInfo.java
+++ b/DroidPlanner/src/org/droidplanner/dialogs/parameters/DialogParameterInfo.java
@@ -1,24 +1,26 @@
package org.droidplanner.dialogs.parameters;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.*;
-
-import org.droidplanner.R;
-
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.droidplanner.R;
import org.droidplanner.adapters.ParamsAdapterItem;
import org.droidplanner.parameters.Parameter;
import org.droidplanner.parameters.ParameterMetadata;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.TextView;
+
public class DialogParameterInfo {
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Battery.java b/DroidPlanner/src/org/droidplanner/drone/variables/Battery.java
index 13a62fe96c..525f7d4fc3 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Battery.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Battery.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
public class Battery extends DroneVariable {
private double battVolt = -1;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Calibration.java b/DroidPlanner/src/org/droidplanner/drone/variables/Calibration.java
index 0656db2e49..98989dd864 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Calibration.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Calibration.java
@@ -2,8 +2,8 @@
import org.droidplanner.MAVLink.MavLinkCalibration;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import com.MAVLink.Messages.MAVLinkMessage;
import com.MAVLink.Messages.ardupilotmega.msg_statustext;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/GPS.java b/DroidPlanner/src/org/droidplanner/drone/variables/GPS.java
index b1dde56460..e1e3028fe0 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/GPS.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/GPS.java
@@ -1,10 +1,9 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
-import com.google.android.gms.internal.fi;
import com.google.android.gms.maps.model.LatLng;
public class GPS extends DroneVariable {
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/HeartBeat.java b/DroidPlanner/src/org/droidplanner/drone/variables/HeartBeat.java
index 1967ffe133..bae3377742 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/HeartBeat.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/HeartBeat.java
@@ -5,10 +5,10 @@
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
import org.droidplanner.drone.DroneVariable;
-import com.MAVLink.Messages.ardupilotmega.msg_heartbeat;
-
import android.os.Handler;
+import com.MAVLink.Messages.ardupilotmega.msg_heartbeat;
+
public class HeartBeat extends DroneVariable implements OnDroneListener {
private static long HEARTBEAT_NORMAL_TIMEOUT = 5000;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Home.java b/DroidPlanner/src/org/droidplanner/drone/variables/Home.java
index 91a28981a1..903c7c3910 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Home.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Home.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import org.droidplanner.fragments.markers.HomeMarker;
import org.droidplanner.fragments.markers.MarkerManager.MarkerSource;
import org.droidplanner.helpers.geoTools.GeoTools;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Navigation.java b/DroidPlanner/src/org/droidplanner/drone/variables/Navigation.java
index 37a20d0eb2..0e67dcb0d6 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Navigation.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Navigation.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
public class Navigation extends DroneVariable {
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Orientation.java b/DroidPlanner/src/org/droidplanner/drone/variables/Orientation.java
index 752b0f8754..e7b956a75c 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Orientation.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Orientation.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
public class Orientation extends DroneVariable {
private double roll = 0;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Parameters.java b/DroidPlanner/src/org/droidplanner/drone/variables/Parameters.java
index 04739b35a9..b697207dd2 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Parameters.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Parameters.java
@@ -6,8 +6,8 @@
import org.droidplanner.MAVLink.MavLinkParameters;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import org.droidplanner.parameters.Parameter;
import com.MAVLink.Messages.MAVLinkMessage;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Profile.java b/DroidPlanner/src/org/droidplanner/drone/variables/Profile.java
index ddd97d1d0a..0ac2795bd1 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Profile.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Profile.java
@@ -8,6 +8,7 @@
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.view.View;
+
import com.MAVLink.Messages.enums.MAV_TYPE;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/RC.java b/DroidPlanner/src/org/droidplanner/drone/variables/RC.java
index 3a45c220b6..9c9cec591b 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/RC.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/RC.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import com.MAVLink.Messages.ardupilotmega.msg_rc_channels_raw;
import com.MAVLink.Messages.ardupilotmega.msg_servo_output_raw;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Radio.java b/DroidPlanner/src/org/droidplanner/drone/variables/Radio.java
index 9449b25955..e711a70137 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Radio.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Radio.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import org.droidplanner.helpers.math.MathUtil;
public class Radio extends DroneVariable {
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/State.java b/DroidPlanner/src/org/droidplanner/drone/variables/State.java
index 083f780fb0..b2a068f3f1 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/State.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/State.java
@@ -2,8 +2,8 @@
import org.droidplanner.MAVLink.MavLinkModes;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import android.os.SystemClock;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/Type.java b/DroidPlanner/src/org/droidplanner/drone/variables/Type.java
index e3ae9c9e3c..c34278e83e 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/Type.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/Type.java
@@ -1,8 +1,8 @@
package org.droidplanner.drone.variables;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
+import org.droidplanner.drone.DroneVariable;
import com.MAVLink.Messages.enums.MAV_TYPE;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/WaypointMananger.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/WaypointMananger.java
index 11f101eb2b..38824e8368 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/WaypointMananger.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/WaypointMananger.java
@@ -5,8 +5,8 @@
import org.droidplanner.MAVLink.MavLinkWaypoint;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneVariable;
import org.droidplanner.drone.DroneInterfaces.OnWaypointManagerListener;
+import org.droidplanner.drone.DroneVariable;
import android.util.Log;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/CircumscribedGrid.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/CircumscribedGrid.java
index 546089cf5c..69df71340e 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/CircumscribedGrid.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/CircumscribedGrid.java
@@ -3,12 +3,12 @@
import java.util.ArrayList;
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.helpers.geoTools.GeoTools;
import org.droidplanner.helpers.geoTools.LineLatLng;
import org.droidplanner.polygon.PolyBounds;
import android.content.Context;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.LatLng;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/GridBuilder.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/GridBuilder.java
index cb88566f81..09db06ae9c 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/GridBuilder.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/survey/grid/GridBuilder.java
@@ -6,12 +6,10 @@
import org.droidplanner.helpers.geoTools.LineLatLng;
import org.droidplanner.polygon.Polygon;
-
+import android.content.Context;
import com.google.android.gms.maps.model.LatLng;
-import android.content.Context;
-
public class GridBuilder {
private Polygon poly;
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Loiter.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Loiter.java
index 0e7f615ca7..5a96907dd1 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Loiter.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Loiter.java
@@ -2,6 +2,7 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.Mission;
import org.droidplanner.drone.variables.mission.MissionItem;
import org.droidplanner.fragments.markers.MarkerManager.MarkerSource;
@@ -9,7 +10,6 @@
import org.droidplanner.helpers.units.Altitude;
import com.MAVLink.Messages.ardupilotmega.msg_mission_item;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.LatLng;
public abstract class Loiter extends SpatialCoordItem implements MarkerSource {
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/RegionOfInterest.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/RegionOfInterest.java
index ff1dde2dac..4990d5dc8e 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/RegionOfInterest.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/RegionOfInterest.java
@@ -2,13 +2,13 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.MissionItem;
import org.droidplanner.fragments.markers.MarkerManager.MarkerSource;
import org.droidplanner.fragments.mission.MissionDetailFragment;
import org.droidplanner.fragments.mission.MissionRegionOfInterestFragment;
import com.MAVLink.Messages.ardupilotmega.msg_mission_item;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.LatLng;
public class RegionOfInterest extends SpatialCoordItem implements MarkerSource{
diff --git a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Waypoint.java b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Waypoint.java
index 72db8a1195..cce48d5bcc 100644
--- a/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Waypoint.java
+++ b/DroidPlanner/src/org/droidplanner/drone/variables/mission/waypoints/Waypoint.java
@@ -3,6 +3,7 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.Mission;
import org.droidplanner.drone.variables.mission.MissionItem;
import org.droidplanner.fragments.mission.MissionDetailFragment;
@@ -11,7 +12,6 @@
import com.MAVLink.Messages.ardupilotmega.msg_mission_item;
import com.MAVLink.Messages.enums.MAV_CMD;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.LatLng;
public class Waypoint extends SpatialCoordItem {
diff --git a/DroidPlanner/src/org/droidplanner/file/AssetUtil.java b/DroidPlanner/src/org/droidplanner/file/AssetUtil.java
index 6dc4986c93..6d379a4dc6 100644
--- a/DroidPlanner/src/org/droidplanner/file/AssetUtil.java
+++ b/DroidPlanner/src/org/droidplanner/file/AssetUtil.java
@@ -1,10 +1,10 @@
package org.droidplanner.file;
-import android.content.res.AssetManager;
-
import java.io.IOException;
+import android.content.res.AssetManager;
+
public class AssetUtil {
public static boolean exists(AssetManager assetManager, String directory, String fileName) throws IOException {
diff --git a/DroidPlanner/src/org/droidplanner/file/IO/MissionReader.java b/DroidPlanner/src/org/droidplanner/file/IO/MissionReader.java
index 92e0b8faa4..10467a5c39 100644
--- a/DroidPlanner/src/org/droidplanner/file/IO/MissionReader.java
+++ b/DroidPlanner/src/org/droidplanner/file/IO/MissionReader.java
@@ -14,8 +14,6 @@
import org.droidplanner.file.FileList;
import org.droidplanner.file.FileManager;
-import com.MAVLink.Messages.ApmCommands;
-
public class MissionReader implements FileReader {
private Home home;
private List waypoints;
diff --git a/DroidPlanner/src/org/droidplanner/file/IO/ParameterMetadataMapReader.java b/DroidPlanner/src/org/droidplanner/file/IO/ParameterMetadataMapReader.java
index 45c57fbc5a..ad5adf3225 100644
--- a/DroidPlanner/src/org/droidplanner/file/IO/ParameterMetadataMapReader.java
+++ b/DroidPlanner/src/org/droidplanner/file/IO/ParameterMetadataMapReader.java
@@ -1,15 +1,18 @@
package org.droidplanner.file.IO;
-import android.content.Context;
-import android.util.Xml;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
import org.droidplanner.file.DirectoryPath;
import org.droidplanner.parameters.ParameterMetadata;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.*;
-import java.util.Map;
+import android.content.Context;
+import android.util.Xml;
/**
diff --git a/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfile.java b/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfile.java
index 4bfd2577fc..cbe680c2d3 100644
--- a/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfile.java
+++ b/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfile.java
@@ -1,8 +1,5 @@
package org.droidplanner.file.IO;
-import android.view.View;
-import android.widget.TextView;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -10,6 +7,9 @@
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
+import android.view.View;
+import android.widget.TextView;
+
public class VehicleProfile {
private String parameterMetadataType;
diff --git a/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfileReader.java b/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfileReader.java
index 1a6bd12abd..c0eaee2a20 100644
--- a/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfileReader.java
+++ b/DroidPlanner/src/org/droidplanner/file/IO/VehicleProfileReader.java
@@ -1,21 +1,21 @@
package org.droidplanner.file.IO;
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.util.Xml;
-import android.view.View;
-import org.droidplanner.R;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import org.droidplanner.R;
import org.droidplanner.file.AssetUtil;
import org.droidplanner.file.DirectoryPath;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Field;
+import android.content.Context;
+import android.content.res.AssetManager;
+import android.util.Xml;
+import android.view.View;
public class VehicleProfileReader {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/ChecklistFragment.java b/DroidPlanner/src/org/droidplanner/fragments/ChecklistFragment.java
index 6b5959aab5..a06e5bbf24 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/ChecklistFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/ChecklistFragment.java
@@ -4,14 +4,13 @@
import java.util.HashMap;
import java.util.List;
-import android.support.v4.app.Fragment;
-
+import org.droidplanner.R;
import org.droidplanner.activities.helpers.SuperActivity;
import org.droidplanner.checklist.CheckListAdapter;
+import org.droidplanner.checklist.CheckListAdapter.OnCheckListItemUpdateListener;
import org.droidplanner.checklist.CheckListItem;
import org.droidplanner.checklist.CheckListSysLink;
import org.droidplanner.checklist.CheckListXmlParser;
-import org.droidplanner.checklist.CheckListAdapter.OnCheckListItemUpdateListener;
import org.droidplanner.checklist.xml.ListXmlParser.OnXmlParserError;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
@@ -21,13 +20,12 @@
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ExpandableListView;
-import org.droidplanner.R;
-
public class ChecklistFragment extends Fragment implements OnXmlParserError,
OnCheckListItemUpdateListener, OnDroneListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/EditorListFragment.java b/DroidPlanner/src/org/droidplanner/fragments/EditorListFragment.java
index ffb7d21c9b..9d69005310 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/EditorListFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/EditorListFragment.java
@@ -1,6 +1,5 @@
package org.droidplanner.fragments;
-import android.support.v4.app.Fragment;
import it.sephiroth.android.library.widget.AdapterView;
import it.sephiroth.android.library.widget.AdapterView.OnItemClickListener;
import it.sephiroth.android.library.widget.AdapterView.OnItemLongClickListener;
@@ -10,6 +9,7 @@
import java.util.List;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.activities.helpers.OnEditorInteraction;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
@@ -20,6 +20,7 @@
import android.app.Activity;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
@@ -28,8 +29,6 @@
import android.widget.ImageButton;
import android.widget.ListView;
-import org.droidplanner.R;
-
public class EditorListFragment extends Fragment implements OnItemLongClickListener, OnItemClickListener, OnDroneListener, OnClickListener{
private HListView list;
private Mission mission;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/EditorToolsFragment.java b/DroidPlanner/src/org/droidplanner/fragments/EditorToolsFragment.java
index bcc85ef82b..77facdc44e 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/EditorToolsFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/EditorToolsFragment.java
@@ -1,5 +1,8 @@
package org.droidplanner.fragments;
+import org.droidplanner.R;
+import org.droidplanner.widgets.button.RadioButtonCenter;
+
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -7,11 +10,7 @@
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.widget.RadioButton;
-
import android.widget.RadioGroup;
-import org.droidplanner.R;
-import org.droidplanner.widgets.button.RadioButtonCenter;
public class EditorToolsFragment extends Fragment implements OnClickListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/FlightActionsFragment.java b/DroidPlanner/src/org/droidplanner/fragments/FlightActionsFragment.java
index a20ab5f526..6941364037 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/FlightActionsFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/FlightActionsFragment.java
@@ -1,6 +1,7 @@
package org.droidplanner.fragments;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.drone.Drone;
import android.app.Activity;
@@ -13,7 +14,6 @@
import android.widget.Button;
import com.MAVLink.Messages.ApmModes;
-import org.droidplanner.R;
public class FlightActionsFragment extends Fragment implements OnClickListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/ParamsFragment.java b/DroidPlanner/src/org/droidplanner/fragments/ParamsFragment.java
index 25d2e928e2..351856dac5 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/ParamsFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/ParamsFragment.java
@@ -6,6 +6,7 @@
import java.util.List;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.adapters.ParamsAdapter;
import org.droidplanner.adapters.ParamsAdapterItem;
import org.droidplanner.dialogs.openfile.OpenFileDialog;
@@ -31,8 +32,6 @@
import android.widget.EditText;
import android.widget.Toast;
-import org.droidplanner.R;
-
public class ParamsFragment extends ListFragment implements DroneInterfaces
.OnParameterManagerListener, OnDroneListener{
diff --git a/DroidPlanner/src/org/droidplanner/fragments/RCFragment.java b/DroidPlanner/src/org/droidplanner/fragments/RCFragment.java
index e10ea99c5b..53ef78a4cd 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/RCFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/RCFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments;
+import org.droidplanner.R;
import org.droidplanner.widgets.joystick.JoystickMovedListener;
import org.droidplanner.widgets.joystick.JoystickView;
@@ -14,8 +15,6 @@
import android.view.ViewGroup;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class RCFragment extends Fragment {
private JoystickView joystickL, joystickR;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/SettingsFragment.java b/DroidPlanner/src/org/droidplanner/fragments/SettingsFragment.java
index e4092bd0bb..b4d9b0ceee 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/SettingsFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/SettingsFragment.java
@@ -1,19 +1,24 @@
package org.droidplanner.fragments;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
+import org.droidplanner.activities.ConfigurationActivity;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.file.DirectoryPath;
+import org.droidplanner.utils.Constants;
+import android.content.Context;
+import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.preference.EditTextPreference;
+import android.preference.Preference;
+import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
-import org.droidplanner.R;
-
public class SettingsFragment extends PreferenceFragment implements
OnSharedPreferenceChangeListener {
@@ -21,8 +26,40 @@ public class SettingsFragment extends PreferenceFragment implements
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
- SharedPreferences sharedPref = PreferenceManager
- .getDefaultSharedPreferences(getActivity());
+
+ final Context context = getActivity().getApplicationContext();
+ final SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences
+ (context);
+
+ //Populate the drone settings category
+ final PreferenceCategory dronePrefs = (PreferenceCategory) findPreference
+ (Constants.PREF_DRONE_SETTINGS);
+ if(dronePrefs != null){
+ dronePrefs.removeAll();
+
+ final int configSectionsCount = ConfigurationActivity.sConfigurationFragments.length;
+ for(int i = 0; i < configSectionsCount; i++){
+ final int index = i;
+ Preference configPref = new Preference(context);
+ configPref.setLayoutResource(R.layout.preference_config_screen);
+ configPref.setTitle(ConfigurationActivity.sConfigurationFragmentTitlesRes[i]);
+ configPref.setIcon(ConfigurationActivity.sConfigurationFragmentIconRes[i]);
+ configPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ //Launch the configuration activity to show the current config screen
+ final Intent configIntent = new Intent(context,
+ ConfigurationActivity.class).putExtra(ConfigurationActivity
+ .EXTRA_CONFIG_SCREEN_INDEX, index);
+
+ startActivity(configIntent);
+ return true;
+ }
+ });
+
+ dronePrefs.addPreference(configPref);
+ }
+ }
findPreference("pref_connection_type").setSummary(
sharedPref.getString("pref_connection_type", ""));
diff --git a/DroidPlanner/src/org/droidplanner/fragments/SetupRadioFragment.java b/DroidPlanner/src/org/droidplanner/fragments/SetupRadioFragment.java
index 56ab72ca0e..ffcccba616 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/SetupRadioFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/SetupRadioFragment.java
@@ -10,7 +10,6 @@
import org.droidplanner.fragments.calibration.sf.FragmentSetupSF;
import org.droidplanner.fragments.helpers.SuperSetupFragment;
-import android.app.Activity;
import android.os.Bundle;
/**
diff --git a/DroidPlanner/src/org/droidplanner/fragments/TelemetryFragment.java b/DroidPlanner/src/org/droidplanner/fragments/TelemetryFragment.java
index 4aaa4d2f18..940dd0ce19 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/TelemetryFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/TelemetryFragment.java
@@ -1,10 +1,11 @@
package org.droidplanner.fragments;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
-import org.droidplanner.widgets.HUD.HUD;
+import org.droidplanner.widgets.AttitudeIndicator;
import android.content.SharedPreferences;
import android.os.Bundle;
@@ -15,11 +16,9 @@
import android.view.ViewGroup;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class TelemetryFragment extends Fragment implements OnDroneListener{
- private HUD hud;
+ private AttitudeIndicator attitudeIndicator;
private Drone drone;
private TextView roll;
private TextView yaw;
@@ -36,7 +35,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_telemetry, container,
false);
- hud = (HUD) view.findViewById(R.id.hudView);
+ attitudeIndicator = (AttitudeIndicator) view.findViewById(R.id.aiView);
roll = (TextView) view.findViewById(R.id.rollValueText);
yaw = (TextView) view.findViewById(R.id.yawValueText);
@@ -95,7 +94,7 @@ public void onOrientationUpdate(Drone drone) {
y = 360+y;
}
- hud.setAttitude(r, p, y);
+ attitudeIndicator.setAttitude(r, p, y);
roll.setText(String.format("%3.0f\u00B0", r));
pitch.setText(String.format("%3.0f\u00B0", p));
diff --git a/DroidPlanner/src/org/droidplanner/fragments/TuningFragment.java b/DroidPlanner/src/org/droidplanner/fragments/TuningFragment.java
index 9d0f6ff6ed..a892763b90 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/TuningFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/TuningFragment.java
@@ -1,6 +1,7 @@
package org.droidplanner.fragments;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.MAVLink.MavLinkStreamRates;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
@@ -17,8 +18,6 @@
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
/**
* This fragment is used to tune the roll and pitch of the drone.
*/
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupNext.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupNext.java
index 0f5cfd7985..a75dc006ec 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupNext.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupNext.java
@@ -1,18 +1,16 @@
package org.droidplanner.fragments.calibration;
+import org.droidplanner.R;
import org.droidplanner.fragments.SetupRadioFragment;
-import org.droidplanner.fragments.calibration.SetupSidePanel;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class FragmentSetupNext extends SetupSidePanel {
private int titleId=0,descId=0;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupProgress.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupProgress.java
index 3a7a5ae4f0..4f1d8a514b 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupProgress.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupProgress.java
@@ -1,8 +1,8 @@
package org.droidplanner.fragments.calibration;
+import org.droidplanner.R;
import org.droidplanner.fragments.helpers.SuperSetupFragment;
-import org.droidplanner.R;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSend.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSend.java
index 6df2b18d77..18461bd6b8 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSend.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSend.java
@@ -1,18 +1,16 @@
package org.droidplanner.fragments.calibration;
+import org.droidplanner.R;
import org.droidplanner.fragments.SetupRadioFragment;
-import org.droidplanner.fragments.calibration.SetupSidePanel;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class FragmentSetupSend extends SetupSidePanel {
private int titleId=0,descId=0;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupStart.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupStart.java
index 72ea1bd32a..2c90be0a70 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupStart.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupStart.java
@@ -1,18 +1,16 @@
package org.droidplanner.fragments.calibration;
+import org.droidplanner.R;
import org.droidplanner.fragments.SetupRadioFragment;
-import org.droidplanner.fragments.calibration.SetupSidePanel;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class FragmentSetupStart extends SetupSidePanel {
private TextView textTitle;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSummary.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSummary.java
index 278c1faf0e..0c434e15d0 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSummary.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/FragmentSetupSummary.java
@@ -1,9 +1,8 @@
package org.droidplanner.fragments.calibration;
+import org.droidplanner.R;
import org.droidplanner.fragments.SetupRadioFragment;
-import org.droidplanner.fragments.calibration.SetupSidePanel;
-import org.droidplanner.R;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/SetupMainPanel.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/SetupMainPanel.java
index 53567b67e8..bfb4a8d939 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/SetupMainPanel.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/SetupMainPanel.java
@@ -1,6 +1,7 @@
package org.droidplanner.fragments.calibration;
import org.droidplanner.activities.ConfigurationActivity;
+
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/flightmodes/FragmentSetupFM.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/flightmodes/FragmentSetupFM.java
index 4c017703bf..2d5e8c4d6b 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/flightmodes/FragmentSetupFM.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/flightmodes/FragmentSetupFM.java
@@ -1,6 +1,6 @@
package org.droidplanner.fragments.calibration.flightmodes;
-import android.widget.TableRow;
+import org.droidplanner.R;
import org.droidplanner.calibration.CalParameters;
import org.droidplanner.calibration.FM_CalParameters;
import org.droidplanner.drone.Drone;
@@ -8,13 +8,13 @@
import org.droidplanner.fragments.calibration.FragmentSetupSend;
import org.droidplanner.fragments.calibration.SetupSidePanel;
import org.droidplanner.fragments.helpers.SuperSetupMainPanel;
-import org.droidplanner.R;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.Spinner;
+import android.widget.TableRow;
import android.widget.TextView;
public class FragmentSetupFM extends SuperSetupMainPanel {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMU.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMU.java
index 087cd3f8b4..35ca2bff34 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMU.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMU.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.calibration.imu;
+import org.droidplanner.R;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
@@ -13,7 +14,6 @@
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
-import org.droidplanner.R;
public class FragmentSetupIMU extends SetupMainPanel implements OnDroneListener{
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMUCalibrate.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMUCalibrate.java
index 99c99ed5bd..48b8162819 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMUCalibrate.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/imu/FragmentSetupIMUCalibrate.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.calibration.imu;
+import org.droidplanner.R;
import org.droidplanner.fragments.SetupSensorFragment;
import org.droidplanner.fragments.calibration.SetupSidePanel;
@@ -10,7 +11,6 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
-import org.droidplanner.R;
public class FragmentSetupIMUCalibrate extends SetupSidePanel {
private Button btnStep;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/mag/FragmentSetupMAG.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/mag/FragmentSetupMAG.java
index 8306447fb0..643a295c64 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/mag/FragmentSetupMAG.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/mag/FragmentSetupMAG.java
@@ -1,9 +1,9 @@
package org.droidplanner.fragments.calibration.mag;
+import org.droidplanner.R;
import org.droidplanner.fragments.calibration.SetupMainPanel;
import org.droidplanner.fragments.calibration.SetupSidePanel;
-import org.droidplanner.R;
import android.view.View;
public class FragmentSetupMAG extends SetupMainPanel {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/calibration/rc/FragmentSetupRC.java b/DroidPlanner/src/org/droidplanner/fragments/calibration/rc/FragmentSetupRC.java
index 747a31219a..fc7bad7d63 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/calibration/rc/FragmentSetupRC.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/calibration/rc/FragmentSetupRC.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.calibration.rc;
+import org.droidplanner.R;
import org.droidplanner.calibration.CalParameters;
import org.droidplanner.calibration.RC_CalParameters;
import org.droidplanner.drone.Drone;
@@ -14,8 +15,6 @@
import org.droidplanner.widgets.FillBar.FillBar;
import org.droidplanner.widgets.RcStick.RcStick;
-import org.droidplanner.R;
-
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/BTDeviceListFragment.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/BTDeviceListFragment.java
index 9d37f8cb37..0faf053bbc 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/BTDeviceListFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/BTDeviceListFragment.java
@@ -1,5 +1,11 @@
package org.droidplanner.fragments.helpers;
+import java.util.Set;
+
+import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
+import org.droidplanner.utils.Constants;
+
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -20,11 +26,6 @@
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
-import org.droidplanner.DroidPlannerApp;
-import org.droidplanner.R;
-import org.droidplanner.utils.Constants;
-
-import java.util.Set;
/**
* This is used to show the user a list of bluetooth devices to connect to.
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/FlightSlidingDrawerContent.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/FlightSlidingDrawerContent.java
index 2b9ac001e2..6b85862508 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/FlightSlidingDrawerContent.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/FlightSlidingDrawerContent.java
@@ -1,5 +1,9 @@
package org.droidplanner.fragments.helpers;
+import org.droidplanner.R;
+import org.droidplanner.fragments.TelemetryFragment;
+import org.droidplanner.fragments.mode.FlightModePanel;
+
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -9,10 +13,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-import org.droidplanner.fragments.TelemetryFragment;
-import org.droidplanner.fragments.mode.FlightModePanel;
-import org.droidplanner.widgets.viewPager.TabPageIndicator;
/**
* @author Fredia Huya-Kouadio
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/GestureMapFragment.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/GestureMapFragment.java
index 888ac41f69..5a22e65659 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/GestureMapFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/GestureMapFragment.java
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.helpers.geoTools.Simplify;
import android.gesture.GestureOverlayView;
@@ -15,8 +16,6 @@
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class GestureMapFragment extends Fragment implements OnGestureListener {
private static final int TOLERANCE = 15;
private static final int STROKE_WIDTH = 3;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/GuidePointListener.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/GuidePointListener.java
index c63207f2e3..29b90cc3e6 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/GuidePointListener.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/GuidePointListener.java
@@ -1,8 +1,5 @@
package org.droidplanner.fragments.helpers;
-import org.droidplanner.drone.variables.GuidedPoint;
-
-import com.google.android.gms.maps.model.LatLng;
/**
* Created with IntelliJ IDEA.
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/HelpDialogFragment.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/HelpDialogFragment.java
new file mode 100644
index 0000000000..f0f7efe05c
--- /dev/null
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/HelpDialogFragment.java
@@ -0,0 +1,54 @@
+package org.droidplanner.fragments.helpers;
+
+import org.droidplanner.R;
+import org.droidplanner.activities.interfaces.HelpProvider;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+
+/**
+ * Used to show the help options to the user.
+ */
+public class HelpDialogFragment extends DialogFragment{
+
+ /**
+ * Provide access to user help.
+ */
+ private HelpProvider mHelpProvider;
+
+ @Override
+ public void onAttach(Activity activity){
+ super.onAttach(activity);
+ if(!(activity instanceof HelpProvider)){
+ throw new IllegalStateException("Parent activity must implement " + HelpProvider
+ .class.getName());
+ }
+
+ mHelpProvider = (HelpProvider) activity;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState){
+ final Activity activity = (Activity) mHelpProvider;
+ return new AlertDialog.Builder(activity)
+ .setTitle(R.string.help)
+ .setItems(mHelpProvider.getHelpItems()[0], new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ activity.startActivity(new Intent(Intent.ACTION_VIEW,
+ Uri.parse(mHelpProvider.getHelpItems()[1][which].toString())));
+ }
+ })
+ .create();
+ }
+
+ public static HelpDialogFragment newInstance(){
+ return new HelpDialogFragment();
+ }
+}
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/OfflineMapFragment.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/OfflineMapFragment.java
index 3b7ddc42d6..bdfd7bbdea 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/OfflineMapFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/OfflineMapFragment.java
@@ -1,5 +1,9 @@
package org.droidplanner.fragments.helpers;
+import java.util.List;
+
+import org.droidplanner.helpers.LocalMapTileProvider;
+
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
@@ -7,6 +11,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
@@ -17,10 +22,6 @@
import com.google.android.gms.maps.model.TileOverlay;
import com.google.android.gms.maps.model.TileOverlayOptions;
-import java.util.List;
-
-import org.droidplanner.helpers.LocalMapTileProvider;
-
public class OfflineMapFragment extends SupportMapFragment {
public static final String PREF_MAP_TYPE = "pref_map_type";
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupFragment.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupFragment.java
index 56faaf90ea..8587cf38da 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupFragment.java
@@ -1,12 +1,14 @@
package org.droidplanner.fragments.helpers;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.activities.ConfigurationActivity;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
import org.droidplanner.fragments.calibration.SetupMainPanel;
import org.droidplanner.fragments.calibration.SetupSidePanel;
+
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -19,9 +21,6 @@
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
-import android.widget.TextView;
-
-import org.droidplanner.R;
/**
* This fragment is used to calibrate the drone's compass, and accelerometer.
diff --git a/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupMainPanel.java b/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupMainPanel.java
index 93b863cc26..71a2fb17f1 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupMainPanel.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/helpers/SuperSetupMainPanel.java
@@ -8,7 +8,6 @@
import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
import org.droidplanner.fragments.SetupRadioFragment;
import org.droidplanner.fragments.calibration.FragmentSetupProgress;
-import org.droidplanner.fragments.calibration.FragmentSetupSend;
import org.droidplanner.fragments.calibration.SetupMainPanel;
import org.droidplanner.fragments.calibration.SetupSidePanel;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/markers/GcpMarker.java b/DroidPlanner/src/org/droidplanner/fragments/markers/GcpMarker.java
index 45c91e97e2..9de2da1c51 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/markers/GcpMarker.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/markers/GcpMarker.java
@@ -1,8 +1,8 @@
package org.droidplanner.fragments.markers;
+import org.droidplanner.R;
import org.droidplanner.gcp.Gcp;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.Marker;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/markers/GuidedMarker.java b/DroidPlanner/src/org/droidplanner/fragments/markers/GuidedMarker.java
index e97a1e329b..dd50be03e9 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/markers/GuidedMarker.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/markers/GuidedMarker.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.markers;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.GuidedPoint;
import org.droidplanner.fragments.markers.helpers.MarkerWithText;
import org.droidplanner.helpers.units.Altitude;
import android.content.Context;
-import org.droidplanner.R;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.Marker;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/markers/HomeMarker.java b/DroidPlanner/src/org/droidplanner/fragments/markers/HomeMarker.java
index 4860205f77..c26f72eb22 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/markers/HomeMarker.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/markers/HomeMarker.java
@@ -1,8 +1,8 @@
package org.droidplanner.fragments.markers;
+import org.droidplanner.R.drawable;
import org.droidplanner.drone.variables.Home;
-import org.droidplanner.R.drawable;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/markers/helpers/MarkerWithText.java b/DroidPlanner/src/org/droidplanner/fragments/markers/helpers/MarkerWithText.java
index cfc7a3b2b2..539c642174 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/markers/helpers/MarkerWithText.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/markers/helpers/MarkerWithText.java
@@ -1,11 +1,16 @@
package org.droidplanner.fragments.markers.helpers;
+import org.droidplanner.R;
+
import android.content.Context;
import android.content.res.Resources;
-import android.graphics.*;
-import android.graphics.Paint.Align;
-
-import org.droidplanner.R;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.LightingColorFilter;
+import android.graphics.Paint;
+import android.graphics.Rect;
public class MarkerWithText {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionDetailFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionDetailFragment.java
index 039e6e61e9..533797c3a7 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionDetailFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionDetailFragment.java
@@ -1,6 +1,7 @@
package org.droidplanner.fragments.mission;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.activities.EditorActivity;
import org.droidplanner.drone.variables.mission.Mission;
import org.droidplanner.drone.variables.mission.MissionItem;
@@ -16,10 +17,8 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
-import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
-
-import org.droidplanner.R;
+import android.widget.TextView;
public abstract class MissionDetailFragment extends DialogFragment implements
OnItemSelectedListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLandFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLandFragment.java
index fe69eb1e49..0d283fff93 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLandFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLandFragment.java
@@ -1,12 +1,11 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Land;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText.OnTextSeekBarChangedListener;
import android.view.View;
-import org.droidplanner.R;
-
public class MissionLandFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterFragment.java
index bcf95b3031..4fcc7a643e 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Loiter;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText.OnTextSeekBarChangedListener;
@@ -7,8 +8,6 @@
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
-import org.droidplanner.R;
-
public class MissionLoiterFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener, OnCheckedChangeListener{
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterNFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterNFragment.java
index d5e621d254..59bc7e881c 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterNFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterNFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Loiter;
import org.droidplanner.drone.variables.mission.waypoints.LoiterTurns;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
@@ -10,8 +11,6 @@
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
-import org.droidplanner.R;
-
public class MissionLoiterNFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener, OnCheckedChangeListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterTFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterTFragment.java
index 30197bbe3b..f98a22e59f 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterTFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionLoiterTFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Loiter;
import org.droidplanner.drone.variables.mission.waypoints.LoiterTime;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
@@ -9,8 +10,6 @@
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
-import org.droidplanner.R;
-
public class MissionLoiterTFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener, OnCheckedChangeListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRTLFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRTLFragment.java
index 42f5b19c34..bc7ce3c8b7 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRTLFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRTLFragment.java
@@ -1,11 +1,10 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText.OnTextSeekBarChangedListener;
import android.view.View;
-import org.droidplanner.R;
-
public class MissionRTLFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener {
//private SeekBarWithText altitudeSeekBar;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRegionOfInterestFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRegionOfInterestFragment.java
index 1bd16043d6..26ecb82c08 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRegionOfInterestFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionRegionOfInterestFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.RegionOfInterest;
import org.droidplanner.helpers.units.Altitude;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
@@ -7,8 +8,6 @@
import android.view.View;
-import org.droidplanner.R;
-
public class MissionRegionOfInterestFragment extends MissionDetailFragment
implements OnTextSeekBarChangedListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionTakeoffFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionTakeoffFragment.java
index ea37941163..0893b260c9 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionTakeoffFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionTakeoffFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Takeoff;
import org.droidplanner.helpers.units.Altitude;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
@@ -7,8 +8,6 @@
import android.view.View;
-import org.droidplanner.R;
-
public class MissionTakeoffFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener {
private SeekBarWithText altitudeSeekBar;
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionWaypointFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionWaypointFragment.java
index 85f5a90473..7e22424ac7 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mission/MissionWaypointFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mission/MissionWaypointFragment.java
@@ -1,5 +1,6 @@
package org.droidplanner.fragments.mission;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.Waypoint;
import org.droidplanner.helpers.units.Altitude;
import org.droidplanner.widgets.SeekBarWithText.SeekBarWithText;
@@ -9,8 +10,6 @@
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
-import org.droidplanner.R;
-
public class MissionWaypointFragment extends MissionDetailFragment implements
OnTextSeekBarChangedListener, OnCheckedChangeListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/FlightModePanel.java b/DroidPlanner/src/org/droidplanner/fragments/mode/FlightModePanel.java
index 50b5523010..a5159bb58e 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/FlightModePanel.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/FlightModePanel.java
@@ -1,21 +1,20 @@
package org.droidplanner.fragments.mode;
+import org.droidplanner.R;
+import org.droidplanner.activities.helpers.SuperActivity;
+import org.droidplanner.drone.Drone;
+import org.droidplanner.drone.DroneInterfaces;
+import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
+
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AdapterView;
import com.MAVLink.Messages.ApmModes;
-import org.droidplanner.R;
-import org.droidplanner.activities.helpers.SuperActivity;
-import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneInterfaces;
-import org.droidplanner.drone.DroneInterfaces.OnDroneListener;
-
/**
* Implements the flight/apm mode panel description.
*/
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAcroFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAcroFragment.java
index 71710e3141..7bb7f8996a 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAcroFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAcroFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeAcroFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAltholdFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAltholdFragment.java
index 676714491c..2f2ba79773 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAltholdFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAltholdFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeAltholdFragment extends Fragment{
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAutoFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAutoFragment.java
index 8d8007e78e..61f661797b 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAutoFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeAutoFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
+import org.droidplanner.R;
+
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeAutoFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeCircleFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeCircleFragment.java
index 8e1fb41272..e0a54d4d78 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeCircleFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeCircleFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeCircleFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDisconnectedFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDisconnectedFragment.java
index a04efba6f4..884b0b0a0e 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDisconnectedFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDisconnectedFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeDisconnectedFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDriftFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDriftFragment.java
index 1de81a738a..7d59a6a674 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDriftFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeDriftFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeDriftFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeGuidedFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeGuidedFragment.java
index fdf332c036..79a9082bdf 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeGuidedFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeGuidedFragment.java
@@ -1,10 +1,11 @@
package org.droidplanner.fragments.mode;
import org.droidplanner.DroidPlannerApp;
+import org.droidplanner.R;
import org.droidplanner.drone.Drone;
-import android.support.v4.app.Fragment;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -12,8 +13,6 @@
import android.widget.Button;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class ModeGuidedFragment extends Fragment implements
OnClickListener {
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLandFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLandFragment.java
index 60efc954bd..667c689f41 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLandFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLandFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeLandFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLoiterFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLoiterFragment.java
index 5aa716dfa4..bdc6c1c3c0 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLoiterFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeLoiterFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeLoiterFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeOFLoiterFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeOFLoiterFragment.java
index c0655e396d..cdb8701e92 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeOFLoiterFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeOFLoiterFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
+import org.droidplanner.R;
+
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeOFLoiterFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModePositionFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModePositionFragment.java
index 05302c161a..e2744e81a0 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModePositionFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModePositionFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModePositionFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeRTLFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeRTLFragment.java
index bbef097909..f653c895bb 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeRTLFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeRTLFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
+import org.droidplanner.R;
+
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeRTLFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeSportFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeSportFragment.java
index bd18a5ad71..a7890e3a3d 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeSportFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeSportFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
+import org.droidplanner.R;
+
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeSportFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeStabilizeFragment.java b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeStabilizeFragment.java
index 5fc6f49f37..99016eb617 100644
--- a/DroidPlanner/src/org/droidplanner/fragments/mode/ModeStabilizeFragment.java
+++ b/DroidPlanner/src/org/droidplanner/fragments/mode/ModeStabilizeFragment.java
@@ -1,13 +1,13 @@
package org.droidplanner.fragments.mode;
-import android.support.v4.app.Fragment;
+import org.droidplanner.R;
+
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import org.droidplanner.R;
-
public class ModeStabilizeFragment extends Fragment {
@Override
diff --git a/DroidPlanner/src/org/droidplanner/helpers/LocalMapTileProvider.java b/DroidPlanner/src/org/droidplanner/helpers/LocalMapTileProvider.java
index e4af1207bd..6f7705d016 100644
--- a/DroidPlanner/src/org/droidplanner/helpers/LocalMapTileProvider.java
+++ b/DroidPlanner/src/org/droidplanner/helpers/LocalMapTileProvider.java
@@ -9,8 +9,6 @@
import org.droidplanner.file.DirectoryPath;
import org.droidplanner.file.FileStream;
-import android.util.Log;
-
import com.google.android.gms.maps.model.Tile;
import com.google.android.gms.maps.model.TileProvider;
diff --git a/DroidPlanner/src/org/droidplanner/helpers/RecordMe.java b/DroidPlanner/src/org/droidplanner/helpers/RecordMe.java
index 5e39c6899e..63e42332d4 100644
--- a/DroidPlanner/src/org/droidplanner/helpers/RecordMe.java
+++ b/DroidPlanner/src/org/droidplanner/helpers/RecordMe.java
@@ -1,7 +1,6 @@
package org.droidplanner.helpers;
import org.droidplanner.drone.Drone;
-import org.droidplanner.drone.DroneInterfaces.DroneEventsType;
import android.content.Context;
import android.location.Location;
diff --git a/DroidPlanner/src/org/droidplanner/parameters/ParameterMetadata.java b/DroidPlanner/src/org/droidplanner/parameters/ParameterMetadata.java
index 275d5050d8..f40f1ee043 100644
--- a/DroidPlanner/src/org/droidplanner/parameters/ParameterMetadata.java
+++ b/DroidPlanner/src/org/droidplanner/parameters/ParameterMetadata.java
@@ -3,7 +3,6 @@
import java.io.Serializable;
import java.text.DecimalFormat;
import java.text.ParseException;
-import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
diff --git a/DroidPlanner/src/org/droidplanner/polygon/Polygon.java b/DroidPlanner/src/org/droidplanner/polygon/Polygon.java
index da52495db0..2456607a83 100644
--- a/DroidPlanner/src/org/droidplanner/polygon/Polygon.java
+++ b/DroidPlanner/src/org/droidplanner/polygon/Polygon.java
@@ -3,13 +3,14 @@
import java.util.ArrayList;
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.fragments.helpers.MapPath.PathSource;
import org.droidplanner.helpers.geoTools.GeoTools;
import org.droidplanner.helpers.geoTools.LineLatLng;
import org.droidplanner.helpers.units.Area;
import android.content.Context;
-import org.droidplanner.R;
+
import com.google.android.gms.maps.model.LatLng;
public class Polygon implements PathSource {
diff --git a/DroidPlanner/src/org/droidplanner/polygon/PolygonPoint.java b/DroidPlanner/src/org/droidplanner/polygon/PolygonPoint.java
index 427f1a131a..90233e0172 100644
--- a/DroidPlanner/src/org/droidplanner/polygon/PolygonPoint.java
+++ b/DroidPlanner/src/org/droidplanner/polygon/PolygonPoint.java
@@ -1,7 +1,7 @@
package org.droidplanner.polygon;
-import org.droidplanner.fragments.markers.PolygonMarker;
import org.droidplanner.fragments.markers.MarkerManager.MarkerSource;
+import org.droidplanner.fragments.markers.PolygonMarker;
import android.content.Context;
diff --git a/DroidPlanner/src/org/droidplanner/service/MAVLinkService.java b/DroidPlanner/src/org/droidplanner/service/MAVLinkService.java
index 568b034682..b2f690ed74 100644
--- a/DroidPlanner/src/org/droidplanner/service/MAVLinkService.java
+++ b/DroidPlanner/src/org/droidplanner/service/MAVLinkService.java
@@ -1,12 +1,11 @@
package org.droidplanner.service;
+import org.droidplanner.R;
import org.droidplanner.activities.FlightActivity;
-import org.droidplanner.connection.BluetoothConnection;
import org.droidplanner.connection.MAVLinkConnection;
-import org.droidplanner.connection.TcpConnection;
-import org.droidplanner.connection.UdpConnection;
-import org.droidplanner.connection.UsbConnection;
import org.droidplanner.connection.MAVLinkConnection.MavLinkConnectionListener;
+import org.droidplanner.utils.Constants;
+import org.droidplanner.utils.Utils;
import android.annotation.SuppressLint;
import android.app.NotificationManager;
@@ -26,11 +25,9 @@
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.Toast;
+
import com.MAVLink.Messages.MAVLinkMessage;
import com.MAVLink.Messages.MAVLinkPacket;
-import org.droidplanner.R;
-import org.droidplanner.utils.Constants;
-import org.droidplanner.utils.Utils;
/**
* http://developer.android.com/guide/components/bound-services.html#Messenger
diff --git a/DroidPlanner/src/org/droidplanner/utils/Constants.java b/DroidPlanner/src/org/droidplanner/utils/Constants.java
index 1f97cb35d6..97aa0eb055 100644
--- a/DroidPlanner/src/org/droidplanner/utils/Constants.java
+++ b/DroidPlanner/src/org/droidplanner/utils/Constants.java
@@ -1,6 +1,6 @@
package org.droidplanner.utils;
-import static org.droidplanner.utils.Utils.ConnectionType;
+import org.droidplanner.utils.Utils.ConnectionType;
/**
* Contains application related constants.
@@ -43,6 +43,21 @@ public class Constants {
*/
public static final String PREF_UI_SCREEN = "pref_ui";
+ /**
+ * Sets whether or not the default language for the ui should be english.
+ */
+ public static final String PREF_UI_LANGUAGE = "pref_ui_language_english";
+
+ /**
+ * By default, the system language should be used for the ui.
+ */
+ public static final boolean DEFAULT_PREF_UI_LANGUAGE = false;
+
+ /**
+ * Preference key for the drone settings' category.
+ */
+ public static final String PREF_DRONE_SETTINGS = "pref_drone_settings";
+
/**
* Private constructor to prevent instantiation of this class.
*/
diff --git a/DroidPlanner/src/org/droidplanner/utils/Utils.java b/DroidPlanner/src/org/droidplanner/utils/Utils.java
index 7df4dce244..d48e46c9dd 100644
--- a/DroidPlanner/src/org/droidplanner/utils/Utils.java
+++ b/DroidPlanner/src/org/droidplanner/utils/Utils.java
@@ -1,12 +1,18 @@
package org.droidplanner.utils;
-import android.content.Context;
+import java.util.Locale;
+
import org.droidplanner.connection.BluetoothConnection;
import org.droidplanner.connection.MAVLinkConnection;
import org.droidplanner.connection.TcpConnection;
import org.droidplanner.connection.UdpConnection;
import org.droidplanner.connection.UsbConnection;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.preference.PreferenceManager;
+
/**
* Contains application related functions.
*
@@ -55,4 +61,22 @@ public MAVLinkConnection getConnection(Context context) {
*/
public abstract MAVLinkConnection getConnection(Context context);
}
+
+ /**
+ * Used to update the user interface language.
+ * @param context Application context
+ */
+ public static void updateUILanguage(Context context){
+ final boolean isUiLanguageEnglish = PreferenceManager.getDefaultSharedPreferences
+ (context).getBoolean(Constants.PREF_UI_LANGUAGE,
+ Constants.DEFAULT_PREF_UI_LANGUAGE);
+
+ if(isUiLanguageEnglish){
+ Configuration config = new Configuration();
+ config.locale = Locale.ENGLISH;
+
+ final Resources res = context.getResources();
+ res.updateConfiguration(config, res.getDisplayMetrics());
+ }
+ }
}
diff --git a/DroidPlanner/src/org/droidplanner/widgets/HUD/HUD.java b/DroidPlanner/src/org/droidplanner/widgets/AttitudeIndicator.java
similarity index 97%
rename from DroidPlanner/src/org/droidplanner/widgets/HUD/HUD.java
rename to DroidPlanner/src/org/droidplanner/widgets/AttitudeIndicator.java
index 439c60289c..1a3a621cd9 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/HUD/HUD.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/AttitudeIndicator.java
@@ -1,4 +1,4 @@
-package org.droidplanner.widgets.HUD;
+package org.droidplanner.widgets;
import android.content.Context;
import android.graphics.Canvas;
@@ -13,7 +13,7 @@
import android.util.AttributeSet;
import android.view.View;
-public class HUD extends View {
+public class AttitudeIndicator extends View {
private static final float INTERNAL_RADIUS = 0.85f;
private static final float YAW_ARROW_SIZE = 1.2f;
@@ -45,7 +45,7 @@ public class HUD extends View {
private float yaw, roll, pitch;
private Paint tickPaint;
- public HUD(Context context, AttributeSet attrs) {
+ public AttitudeIndicator(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
setAttitude(-30, 20, 0);
diff --git a/DroidPlanner/src/org/droidplanner/widgets/NumberFieldEdit/NumberFieldEdit.java b/DroidPlanner/src/org/droidplanner/widgets/NumberFieldEdit/NumberFieldEdit.java
index d4062e8a4e..c0af1b6539 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/NumberFieldEdit/NumberFieldEdit.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/NumberFieldEdit/NumberFieldEdit.java
@@ -1,5 +1,7 @@
package org.droidplanner.widgets.NumberFieldEdit;
+import org.droidplanner.R;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Handler;
@@ -14,8 +16,6 @@
import android.widget.LinearLayout;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class NumberFieldEdit extends LinearLayout implements OnTouchListener {
private TextView titleText;
diff --git a/DroidPlanner/src/org/droidplanner/widgets/SeekBarWithText/SeekBarWithText.java b/DroidPlanner/src/org/droidplanner/widgets/SeekBarWithText/SeekBarWithText.java
index f641d83805..1991357c78 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/SeekBarWithText/SeekBarWithText.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/SeekBarWithText/SeekBarWithText.java
@@ -1,5 +1,7 @@
package org.droidplanner.widgets.SeekBarWithText;
+import org.droidplanner.R;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
@@ -8,8 +10,6 @@
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class SeekBarWithText extends LinearLayout implements
OnSeekBarChangeListener {
diff --git a/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarActionProvider.java b/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarActionProvider.java
index 25d8bd07b5..8c411c0f36 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarActionProvider.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarActionProvider.java
@@ -1,10 +1,5 @@
package org.droidplanner.widgets.actionProviders;
-import android.content.Context;
-import android.view.ActionProvider;
-import android.view.LayoutInflater;
-import android.view.View;
-
import org.droidplanner.R;
import org.droidplanner.drone.Drone;
import org.droidplanner.drone.DroneInterfaces;
@@ -17,6 +12,11 @@
import org.droidplanner.widgets.actionProviders.InfoBarItem.PhoneExtraInfo;
import org.droidplanner.widgets.actionProviders.InfoBarItem.SignalInfo;
+import android.content.Context;
+import android.view.ActionProvider;
+import android.view.LayoutInflater;
+import android.view.View;
+
/**
* This implements the info bar displayed on the action bar after connection with the drone.
*
diff --git a/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarItem.java b/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarItem.java
index 27bf138fa5..6e281584f3 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarItem.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/actionProviders/InfoBarItem.java
@@ -1,5 +1,12 @@
package org.droidplanner.widgets.actionProviders;
+import java.util.Collections;
+import java.util.List;
+
+import org.droidplanner.R;
+import org.droidplanner.drone.Drone;
+import org.droidplanner.widgets.spinners.ModeAdapter;
+
import android.content.Context;
import android.os.Handler;
import android.view.Gravity;
@@ -13,13 +20,6 @@
import com.MAVLink.Messages.ApmModes;
-import org.droidplanner.R;
-import org.droidplanner.drone.Drone;
-import org.droidplanner.widgets.spinners.ModeAdapter;
-
-import java.util.Collections;
-import java.util.List;
-
/**
* Set of actions supported by the info bar
*/
diff --git a/DroidPlanner/src/org/droidplanner/widgets/adapterViews/MissionItemView.java b/DroidPlanner/src/org/droidplanner/widgets/adapterViews/MissionItemView.java
index 6da0519a5d..63ca54c1aa 100644
--- a/DroidPlanner/src/org/droidplanner/widgets/adapterViews/MissionItemView.java
+++ b/DroidPlanner/src/org/droidplanner/widgets/adapterViews/MissionItemView.java
@@ -2,6 +2,7 @@
import java.util.List;
+import org.droidplanner.R;
import org.droidplanner.drone.variables.mission.waypoints.SpatialCoordItem;
import org.droidplanner.helpers.units.Length;
@@ -13,8 +14,6 @@
import android.widget.ArrayAdapter;
import android.widget.TextView;
-import org.droidplanner.R;
-
public class MissionItemView extends ArrayAdapter {
private Context context;
diff --git a/DroidPlanner/src/org/droidplanner/widgets/adapterViews/NavigationDrawerAdapter.java b/DroidPlanner/src/org/droidplanner/widgets/adapterViews/NavigationDrawerAdapter.java
new file mode 100644
index 0000000000..2be7ae4a17
--- /dev/null
+++ b/DroidPlanner/src/org/droidplanner/widgets/adapterViews/NavigationDrawerAdapter.java
@@ -0,0 +1,392 @@
+package org.droidplanner.widgets.adapterViews;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.droidplanner.R;
+import org.droidplanner.activities.ConfigurationActivity;
+import org.droidplanner.activities.DrawerNavigationUI;
+import org.droidplanner.activities.EditorActivity;
+import org.droidplanner.activities.FlightActivity;
+import org.droidplanner.activities.SettingsActivity;
+import org.droidplanner.fragments.helpers.HelpDialogFragment;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.support.v4.widget.DrawerLayout;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseExpandableListAdapter;
+import android.widget.ExpandableListView;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+/**
+ * Adapter for the navigation drawer items
+ */
+public class NavigationDrawerAdapter extends BaseExpandableListAdapter {
+
+ /**
+ * Keys used to access the group and child data values.
+ */
+ private static final String KEY_SECTION_NAME = "key_section_name";
+ private static final String KEY_SECTION_ICON = "key_section_icon";
+ private static final String KEY_SECTION_CALLBACK = "key_section_callback";
+
+ /**
+ * Maps the activities used as primary section in the drawer layout to their index in the
+ * expandable list view.
+ * Only an activity within the map can instantiate this adapter.
+ */
+ private final static Map, Integer> sActivityGroupIndexMap =
+ new HashMap, Integer>();
+
+ static {
+ sActivityGroupIndexMap.put(FlightActivity.class, 0);
+ sActivityGroupIndexMap.put(SettingsActivity.class, 1);
+ }
+
+ private final static boolean[] sIsGroupExpanded = {false, false, false};
+
+ /**
+ * Delay used to run the callback on selection in the drawer layout. This delay allows the
+ * drawer layout to close smoothly without stuttering/janking.
+ */
+ private final static long CALLBACK_LAUNCH_DELAY = 200l;// milliseconds
+
+ /**
+ * Handler used to launch the selected callback.
+ */
+ private final Handler mHandler = new Handler();
+ /**
+ * Container activity
+ */
+ private final DrawerNavigationUI mActivity;
+
+ /**
+ * Activity's drawer layout. Used to close the drawer on item click.
+ */
+ private final DrawerLayout mDrawerLayout;
+
+ /**
+ * Each entry in the list corresponds to one section in the app.
+ */
+ private final List