From 3afe3828a13a40c7be2827b62c15a5677a67bdfb Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Wed, 27 Feb 2013 13:26:59 +0100 Subject: [PATCH 01/60] Started Transdroid Lite project, which also serves as new UI development project. --- .hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgignore b/.hgignore index 458cf85b..449f87c9 100644 --- a/.hgignore +++ b/.hgignore @@ -6,3 +6,4 @@ syntax: glob bin/ gen/ lint.xml +.apt_generated From 61fd105b8e87cf931e663a222563654e8e9801f6 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Wed, 27 Feb 2013 13:27:07 +0100 Subject: [PATCH 02/60] Started Transdroid Lite project, which also serves as new UI development project. --- lite/.classpath | 13 +++++++ lite/.factorypath | 3 ++ lite/.project | 33 ++++++++++++++++++ lite/.settings/org.eclipse.jdt.apt.core.prefs | 4 +++ lite/.settings/org.eclipse.jdt.core.prefs | 2 ++ lite/AndroidManifest.xml | 27 ++++++++++++++ .../androidannotations-3.0-SNAPSHOT.jar | Bin 0 -> 591631 bytes .../androidannotations-api-3.0-SNAPSHOT.jar | Bin 0 -> 43730 bytes lite/proguard-project.txt | 20 +++++++++++ lite/project.properties | 15 ++++++++ lite/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 9397 bytes lite/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 5237 bytes lite/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 14383 bytes lite/res/layout/activity_torrents.xml | 16 +++++++++ lite/res/menu/torrents.xml | 9 +++++ lite/res/values-sw600dp/dimens.xml | 8 +++++ lite/res/values-sw720dp-land/dimens.xml | 9 +++++ lite/res/values-v11/styles.xml | 7 ++++ lite/res/values-v14/styles.xml | 7 ++++ lite/res/values/dimens.xml | 7 ++++ lite/res/values/strings.xml | 8 +++++ lite/res/values/styles.xml | 15 ++++++++ .../src/org/transdroid/lite/gui/Torrents.java | 13 +++++++ 23 files changed, 216 insertions(+) create mode 100644 lite/.classpath create mode 100644 lite/.factorypath create mode 100644 lite/.project create mode 100644 lite/.settings/org.eclipse.jdt.apt.core.prefs create mode 100644 lite/.settings/org.eclipse.jdt.core.prefs create mode 100644 lite/AndroidManifest.xml create mode 100644 lite/compile-libs/androidannotations-3.0-SNAPSHOT.jar create mode 100644 lite/libs/androidannotations-api-3.0-SNAPSHOT.jar create mode 100644 lite/proguard-project.txt create mode 100644 lite/project.properties create mode 100644 lite/res/drawable-hdpi/ic_launcher.png create mode 100644 lite/res/drawable-mdpi/ic_launcher.png create mode 100644 lite/res/drawable-xhdpi/ic_launcher.png create mode 100644 lite/res/layout/activity_torrents.xml create mode 100644 lite/res/menu/torrents.xml create mode 100644 lite/res/values-sw600dp/dimens.xml create mode 100644 lite/res/values-sw720dp-land/dimens.xml create mode 100644 lite/res/values-v11/styles.xml create mode 100644 lite/res/values-v14/styles.xml create mode 100644 lite/res/values/dimens.xml create mode 100644 lite/res/values/strings.xml create mode 100644 lite/res/values/styles.xml create mode 100644 lite/src/org/transdroid/lite/gui/Torrents.java diff --git a/lite/.classpath b/lite/.classpath new file mode 100644 index 00000000..fa0fd3c0 --- /dev/null +++ b/lite/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/lite/.factorypath b/lite/.factorypath new file mode 100644 index 00000000..026446ed --- /dev/null +++ b/lite/.factorypath @@ -0,0 +1,3 @@ + + + diff --git a/lite/.project b/lite/.project new file mode 100644 index 00000000..0654bfb6 --- /dev/null +++ b/lite/.project @@ -0,0 +1,33 @@ + + + TransdroidLite + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/lite/.settings/org.eclipse.jdt.apt.core.prefs b/lite/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 00000000..7d52ece5 --- /dev/null +++ b/lite/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=.apt_generated +org.eclipse.jdt.apt.reconcileEnabled=true diff --git a/lite/.settings/org.eclipse.jdt.core.prefs b/lite/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..0b3561ab --- /dev/null +++ b/lite/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.processAnnotations=enabled diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml new file mode 100644 index 00000000..ff80ba97 --- /dev/null +++ b/lite/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/compile-libs/androidannotations-3.0-SNAPSHOT.jar b/lite/compile-libs/androidannotations-3.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..310da002b3cd5d01b4842ea5df22207234d33df9 GIT binary patch literal 591631 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

VJODK%_Sc$u$khVq?Sk-cRAxgb^P0P}8NL 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


#&O6f%Y{hw(&w{EQFhJ5ILYcJ-}qj% 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π|R^4#adgJyJfyksaN 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 + + + + \ No newline at end of file diff --git a/lite/res/values-sw600dp/dimens.xml b/lite/res/values-sw600dp/dimens.xml new file mode 100644 index 00000000..d7cc90c8 --- /dev/null +++ b/lite/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/lite/res/values-sw720dp-land/dimens.xml b/lite/res/values-sw720dp-land/dimens.xml new file mode 100644 index 00000000..1b9fc52c --- /dev/null +++ b/lite/res/values-sw720dp-land/dimens.xml @@ -0,0 +1,9 @@ + + + + 128dp + + \ No newline at end of file diff --git a/lite/res/values-v11/styles.xml b/lite/res/values-v11/styles.xml new file mode 100644 index 00000000..c478de08 --- /dev/null +++ b/lite/res/values-v11/styles.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/lite/res/values-v14/styles.xml b/lite/res/values-v14/styles.xml new file mode 100644 index 00000000..48e5ada1 --- /dev/null +++ b/lite/res/values-v14/styles.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/lite/res/values/dimens.xml b/lite/res/values/dimens.xml new file mode 100644 index 00000000..1afdbd6c --- /dev/null +++ b/lite/res/values/dimens.xml @@ -0,0 +1,7 @@ + + + + 16dp + 16dp + + \ No newline at end of file diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml new file mode 100644 index 00000000..25ae5b89 --- /dev/null +++ b/lite/res/values/strings.xml @@ -0,0 +1,8 @@ + + + + Transdroid Lite + Settings + Hello world! + + \ No newline at end of file diff --git a/lite/res/values/styles.xml b/lite/res/values/styles.xml new file mode 100644 index 00000000..fdb33413 --- /dev/null +++ b/lite/res/values/styles.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/lite/src/org/transdroid/lite/gui/Torrents.java b/lite/src/org/transdroid/lite/gui/Torrents.java new file mode 100644 index 00000000..f3a1e05a --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/Torrents.java @@ -0,0 +1,13 @@ +package org.transdroid.lite.gui; + +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.OptionsMenu; +import org.transdroid.lite.R; + +import com.actionbarsherlock.app.SherlockFragmentActivity; + +@EActivity(R.layout.activity_torrents) +@OptionsMenu(R.menu.torrents) +public class Torrents extends SherlockFragmentActivity { + +} From ca37271340704341dc854c7ca328ab8124c45ce9 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 28 Feb 2013 14:57:42 +0100 Subject: [PATCH 03/60] Building the new UI. --- lite/.classpath | 1 + lite/AndroidManifest.xml | 3 +- .../ab_bottom_solid_transdroid.9.png | Bin 0 -> 205 bytes .../drawable-hdpi/ab_solid_transdroid.9.png | Bin 0 -> 213 bytes .../ab_stacked_solid_transdroid.9.png | Bin 0 -> 199 bytes .../ab_transparent_transdroid.9.png | Bin 0 -> 205 bytes lite/res/drawable-hdpi/ic_action_labels.png | Bin 0 -> 1734 bytes lite/res/drawable-hdpi/ic_action_new.png | Bin 0 -> 1142 bytes lite/res/drawable-hdpi/ic_action_pause.png | Bin 0 -> 1114 bytes lite/res/drawable-hdpi/ic_action_refresh.png | Bin 0 -> 3138 bytes lite/res/drawable-hdpi/ic_action_remove.png | Bin 0 -> 1285 bytes lite/res/drawable-hdpi/ic_action_resume.png | Bin 0 -> 1521 bytes lite/res/drawable-hdpi/ic_action_rss.png | Bin 0 -> 956 bytes lite/res/drawable-hdpi/ic_action_search.png | Bin 0 -> 1764 bytes .../drawable-hdpi/ic_action_sort_by_size.png | Bin 0 -> 1142 bytes lite/res/drawable-hdpi/ic_action_start.png | Bin 0 -> 1410 bytes lite/res/drawable-hdpi/ic_action_stop.png | Bin 0 -> 1055 bytes .../drawable-hdpi/ic_activity_torrents.png | Bin 0 -> 4778 bytes lite/res/drawable-hdpi/ic_empty_details.png | Bin 0 -> 10934 bytes .../list_focused_transdroid.9.png | Bin 0 -> 145 bytes .../menu_dropdown_panel_transdroid.9.png | Bin 0 -> 1231 bytes .../menu_hardkey_panel_transdroid.9.png | Bin 0 -> 867 bytes .../progress_bg_transdroid.9.png | Bin 0 -> 133 bytes .../progress_primary_transdroid.9.png | Bin 0 -> 802 bytes .../progress_secondary_transdroid.9.png | Bin 0 -> 139 bytes .../spinner_ab_default_transdroid.9.png | Bin 0 -> 376 bytes .../spinner_ab_disabled_transdroid.9.png | Bin 0 -> 358 bytes .../spinner_ab_focused_transdroid.9.png | Bin 0 -> 568 bytes .../spinner_ab_pressed_transdroid.9.png | Bin 0 -> 508 bytes .../tab_selected_focused_transdroid.9.png | Bin 0 -> 107 bytes .../tab_selected_pressed_transdroid.9.png | Bin 0 -> 107 bytes .../tab_selected_transdroid.9.png | Bin 0 -> 101 bytes .../tab_unselected_focused_transdroid.9.png | Bin 0 -> 100 bytes .../tab_unselected_pressed_transdroid.9.png | Bin 0 -> 100 bytes .../ab_bottom_solid_transdroid.9.png | Bin 0 -> 156 bytes .../drawable-mdpi/ab_solid_transdroid.9.png | Bin 0 -> 166 bytes .../ab_stacked_solid_transdroid.9.png | Bin 0 -> 166 bytes .../ab_transparent_transdroid.9.png | Bin 0 -> 164 bytes lite/res/drawable-mdpi/ic_action_labels.png | Bin 0 -> 1491 bytes lite/res/drawable-mdpi/ic_action_new.png | Bin 0 -> 1090 bytes lite/res/drawable-mdpi/ic_action_pause.png | Bin 0 -> 1107 bytes lite/res/drawable-mdpi/ic_action_refresh.png | Bin 0 -> 3033 bytes lite/res/drawable-mdpi/ic_action_remove.png | Bin 0 -> 1138 bytes lite/res/drawable-mdpi/ic_action_resume.png | Bin 0 -> 1316 bytes lite/res/drawable-mdpi/ic_action_rss.png | Bin 0 -> 586 bytes lite/res/drawable-mdpi/ic_action_search.png | Bin 0 -> 1394 bytes .../drawable-mdpi/ic_action_sort_by_size.png | Bin 0 -> 1095 bytes lite/res/drawable-mdpi/ic_action_start.png | Bin 0 -> 1248 bytes lite/res/drawable-mdpi/ic_action_stop.png | Bin 0 -> 1047 bytes .../drawable-mdpi/ic_activity_torrents.png | Bin 0 -> 4266 bytes lite/res/drawable-mdpi/ic_empty_details.png | Bin 0 -> 7258 bytes .../list_focused_transdroid.9.png | Bin 0 -> 117 bytes .../menu_dropdown_panel_transdroid.9.png | Bin 0 -> 817 bytes .../menu_hardkey_panel_transdroid.9.png | Bin 0 -> 624 bytes .../progress_bg_transdroid.9.png | Bin 0 -> 126 bytes .../progress_primary_transdroid.9.png | Bin 0 -> 514 bytes .../progress_secondary_transdroid.9.png | Bin 0 -> 126 bytes .../spinner_ab_default_transdroid.9.png | Bin 0 -> 314 bytes .../spinner_ab_disabled_transdroid.9.png | Bin 0 -> 308 bytes .../spinner_ab_focused_transdroid.9.png | Bin 0 -> 409 bytes .../spinner_ab_pressed_transdroid.9.png | Bin 0 -> 358 bytes .../tab_selected_focused_transdroid.9.png | Bin 0 -> 104 bytes .../tab_selected_pressed_transdroid.9.png | Bin 0 -> 104 bytes .../tab_selected_transdroid.9.png | Bin 0 -> 97 bytes .../tab_unselected_focused_transdroid.9.png | Bin 0 -> 98 bytes .../tab_unselected_pressed_transdroid.9.png | Bin 0 -> 97 bytes .../ab_bottom_solid_transdroid.9.png | Bin 0 -> 264 bytes .../drawable-xhdpi/ab_solid_transdroid.9.png | Bin 0 -> 277 bytes .../ab_stacked_solid_transdroid.9.png | Bin 0 -> 261 bytes .../ab_transparent_transdroid.9.png | Bin 0 -> 269 bytes .../drawable-xhdpi/action_sort_by_size.png | Bin 0 -> 1247 bytes lite/res/drawable-xhdpi/ic_action_labels.png | Bin 0 -> 2169 bytes lite/res/drawable-xhdpi/ic_action_new.png | Bin 0 -> 1221 bytes lite/res/drawable-xhdpi/ic_action_pause.png | Bin 0 -> 1181 bytes lite/res/drawable-xhdpi/ic_action_refresh.png | Bin 0 -> 3219 bytes lite/res/drawable-xhdpi/ic_action_remove.png | Bin 0 -> 1348 bytes lite/res/drawable-xhdpi/ic_action_resume.png | Bin 0 -> 1750 bytes lite/res/drawable-xhdpi/ic_action_rss.png | Bin 0 -> 1222 bytes lite/res/drawable-xhdpi/ic_action_search.png | Bin 0 -> 2127 bytes lite/res/drawable-xhdpi/ic_action_start.png | Bin 0 -> 1620 bytes lite/res/drawable-xhdpi/ic_action_stop.png | Bin 0 -> 1114 bytes .../drawable-xhdpi/ic_activity_torrents.png | Bin 0 -> 5896 bytes lite/res/drawable-xhdpi/ic_empty_details.png | Bin 0 -> 9975 bytes .../list_focused_transdroid.9.png | Bin 0 -> 151 bytes .../menu_dropdown_panel_transdroid.9.png | Bin 0 -> 1887 bytes .../menu_hardkey_panel_transdroid.9.png | Bin 0 -> 1276 bytes .../progress_bg_transdroid.9.png | Bin 0 -> 134 bytes .../progress_primary_transdroid.9.png | Bin 0 -> 1096 bytes .../progress_secondary_transdroid.9.png | Bin 0 -> 134 bytes .../spinner_ab_default_transdroid.9.png | Bin 0 -> 476 bytes .../spinner_ab_disabled_transdroid.9.png | Bin 0 -> 457 bytes .../spinner_ab_focused_transdroid.9.png | Bin 0 -> 737 bytes .../spinner_ab_pressed_transdroid.9.png | Bin 0 -> 670 bytes .../tab_selected_focused_transdroid.9.png | Bin 0 -> 111 bytes .../tab_selected_pressed_transdroid.9.png | Bin 0 -> 111 bytes .../tab_selected_transdroid.9.png | Bin 0 -> 105 bytes .../tab_unselected_focused_transdroid.9.png | Bin 0 -> 101 bytes .../tab_unselected_pressed_transdroid.9.png | Bin 0 -> 101 bytes .../drawable-xxhdpi/ic_activity_torrents.png | Bin 0 -> 6946 bytes .../pressed_background_transdroid.xml | 21 + .../progress_horizontal_transdroid.xml | 34 ++ lite/res/drawable/section_header.xml | 12 + .../selectable_background_transdroid.xml | 24 + .../spinner_background_ab_transdroid.xml | 27 + .../drawable/tab_indicator_ab_transdroid.xml | 36 ++ .../res/layout-v14/actionbar_progressitem.xml | 24 + lite/res/layout-w600dp/activity_torrents.xml | 24 + lite/res/layout-w720dp/activity_torrents.xml | 31 ++ lite/res/layout/actionbar_progressitem.xml | 24 + lite/res/layout/activity_torrents.xml | 21 +- lite/res/layout/fragment_details.xml | 22 + lite/res/layout/fragment_details_header.xml | 166 ++++++ lite/res/layout/fragment_filters.xml | 11 + lite/res/layout/fragment_torrents.xml | 11 + lite/res/layout/list_item_filter.xml | 13 + lite/res/layout/list_item_separator.xml | 14 + lite/res/menu/activity_torrents.xml | 54 ++ lite/res/menu/fragment_details.xml | 43 ++ lite/res/menu/fragment_details_file.xml | 28 + lite/res/menu/torrents.xml | 9 - lite/res/values-sw600dp/dimens.xml | 8 - lite/res/values-sw720dp-land/dimens.xml | 9 - lite/res/values-v11/styles.xml | 7 - lite/res/values-v11/styles_transdroid.xml | 95 ++++ lite/res/values-v14/styles.xml | 7 - lite/res/values/colors.xml | 4 + lite/res/values/colors_transdroid.xml | 21 + lite/res/values/dimens.xml | 5 +- lite/res/values/strings.xml | 47 +- lite/res/values/styles.xml | 35 +- lite/res/values/styles_transdroid.xml | 82 +++ .../commonsware/cwac/merge/MergeAdapter.java | 481 ++++++++++++++++++ .../cwac/sacklist/SackOfViewsAdapter.java | 177 +++++++ .../transdroid/lite/gui/DetailsFagment.java | 45 ++ .../src/org/transdroid/lite/gui/Torrents.java | 13 - .../transdroid/lite/gui/TorrentsActivity.java | 82 +++ .../transdroid/lite/gui/TorrentsFragment.java | 11 + .../lite/gui/navigation/FilterAdapter.java | 125 +++++ .../lite/gui/navigation/FilterItem.java | 12 + .../lite/gui/navigation/FilterItemView.java | 29 ++ .../gui/navigation/FilterSeparatorView.java | 42 ++ .../lite/gui/navigation/NavigationHelper.java | 30 ++ 142 files changed, 1939 insertions(+), 81 deletions(-) create mode 100644 lite/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/ab_solid_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/ab_transparent_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/ic_action_labels.png create mode 100644 lite/res/drawable-hdpi/ic_action_new.png create mode 100644 lite/res/drawable-hdpi/ic_action_pause.png create mode 100644 lite/res/drawable-hdpi/ic_action_refresh.png create mode 100644 lite/res/drawable-hdpi/ic_action_remove.png create mode 100644 lite/res/drawable-hdpi/ic_action_resume.png create mode 100644 lite/res/drawable-hdpi/ic_action_rss.png create mode 100644 lite/res/drawable-hdpi/ic_action_search.png create mode 100644 lite/res/drawable-hdpi/ic_action_sort_by_size.png create mode 100644 lite/res/drawable-hdpi/ic_action_start.png create mode 100644 lite/res/drawable-hdpi/ic_action_stop.png create mode 100644 lite/res/drawable-hdpi/ic_activity_torrents.png create mode 100644 lite/res/drawable-hdpi/ic_empty_details.png create mode 100644 lite/res/drawable-hdpi/list_focused_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/progress_bg_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/progress_primary_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/progress_secondary_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/spinner_ab_default_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/tab_selected_focused_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/tab_selected_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png create mode 100644 lite/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/ab_solid_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/ab_transparent_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/ic_action_labels.png create mode 100644 lite/res/drawable-mdpi/ic_action_new.png create mode 100644 lite/res/drawable-mdpi/ic_action_pause.png create mode 100644 lite/res/drawable-mdpi/ic_action_refresh.png create mode 100644 lite/res/drawable-mdpi/ic_action_remove.png create mode 100644 lite/res/drawable-mdpi/ic_action_resume.png create mode 100644 lite/res/drawable-mdpi/ic_action_rss.png create mode 100644 lite/res/drawable-mdpi/ic_action_search.png create mode 100644 lite/res/drawable-mdpi/ic_action_sort_by_size.png create mode 100644 lite/res/drawable-mdpi/ic_action_start.png create mode 100644 lite/res/drawable-mdpi/ic_action_stop.png create mode 100644 lite/res/drawable-mdpi/ic_activity_torrents.png create mode 100644 lite/res/drawable-mdpi/ic_empty_details.png create mode 100644 lite/res/drawable-mdpi/list_focused_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/progress_bg_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/progress_primary_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/progress_secondary_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/spinner_ab_default_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/tab_selected_focused_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/tab_selected_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png create mode 100644 lite/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/ab_solid_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/ab_transparent_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/action_sort_by_size.png create mode 100644 lite/res/drawable-xhdpi/ic_action_labels.png create mode 100644 lite/res/drawable-xhdpi/ic_action_new.png create mode 100644 lite/res/drawable-xhdpi/ic_action_pause.png create mode 100644 lite/res/drawable-xhdpi/ic_action_refresh.png create mode 100644 lite/res/drawable-xhdpi/ic_action_remove.png create mode 100644 lite/res/drawable-xhdpi/ic_action_resume.png create mode 100644 lite/res/drawable-xhdpi/ic_action_rss.png create mode 100644 lite/res/drawable-xhdpi/ic_action_search.png create mode 100644 lite/res/drawable-xhdpi/ic_action_start.png create mode 100644 lite/res/drawable-xhdpi/ic_action_stop.png create mode 100644 lite/res/drawable-xhdpi/ic_activity_torrents.png create mode 100644 lite/res/drawable-xhdpi/ic_empty_details.png create mode 100644 lite/res/drawable-xhdpi/list_focused_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/progress_bg_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/progress_primary_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/progress_secondary_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/tab_selected_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png create mode 100644 lite/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png create mode 100644 lite/res/drawable-xxhdpi/ic_activity_torrents.png create mode 100644 lite/res/drawable/pressed_background_transdroid.xml create mode 100644 lite/res/drawable/progress_horizontal_transdroid.xml create mode 100644 lite/res/drawable/section_header.xml create mode 100644 lite/res/drawable/selectable_background_transdroid.xml create mode 100644 lite/res/drawable/spinner_background_ab_transdroid.xml create mode 100644 lite/res/drawable/tab_indicator_ab_transdroid.xml create mode 100644 lite/res/layout-v14/actionbar_progressitem.xml create mode 100644 lite/res/layout-w600dp/activity_torrents.xml create mode 100644 lite/res/layout-w720dp/activity_torrents.xml create mode 100644 lite/res/layout/actionbar_progressitem.xml create mode 100644 lite/res/layout/fragment_details.xml create mode 100644 lite/res/layout/fragment_details_header.xml create mode 100644 lite/res/layout/fragment_filters.xml create mode 100644 lite/res/layout/fragment_torrents.xml create mode 100644 lite/res/layout/list_item_filter.xml create mode 100644 lite/res/layout/list_item_separator.xml create mode 100644 lite/res/menu/activity_torrents.xml create mode 100644 lite/res/menu/fragment_details.xml create mode 100644 lite/res/menu/fragment_details_file.xml delete mode 100644 lite/res/menu/torrents.xml delete mode 100644 lite/res/values-sw600dp/dimens.xml delete mode 100644 lite/res/values-sw720dp-land/dimens.xml delete mode 100644 lite/res/values-v11/styles.xml create mode 100644 lite/res/values-v11/styles_transdroid.xml delete mode 100644 lite/res/values-v14/styles.xml create mode 100644 lite/res/values/colors.xml create mode 100644 lite/res/values/colors_transdroid.xml create mode 100644 lite/res/values/styles_transdroid.xml create mode 100644 lite/src/com/commonsware/cwac/merge/MergeAdapter.java create mode 100644 lite/src/com/commonsware/cwac/sacklist/SackOfViewsAdapter.java create mode 100644 lite/src/org/transdroid/lite/gui/DetailsFagment.java delete mode 100644 lite/src/org/transdroid/lite/gui/Torrents.java create mode 100644 lite/src/org/transdroid/lite/gui/TorrentsActivity.java create mode 100644 lite/src/org/transdroid/lite/gui/TorrentsFragment.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/FilterItem.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java diff --git a/lite/.classpath b/lite/.classpath index fa0fd3c0..350f40f7 100644 --- a/lite/.classpath +++ b/lite/.classpath @@ -9,5 +9,6 @@ + diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index ff80ba97..1b6f7500 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -14,7 +14,8 @@ android:label="@string/app_name" android:theme="@style/TransdroidTheme" > diff --git a/lite/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png b/lite/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..64793735d40a0eb3b99437e31439b4cdc9db2005 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P1|(P5zFY^Srg*wIhD5l(y|IzE!GOmla1Wd8 z;SHR!#sP-Rva=0%WV2bEmt3(FQ4zQQdeo>t`@pVk>OU>A4L`{m<^DA`ICJy4wtei4 zqtlW(RJZk|izRP7C8iw48Jg6gxQuH>rB&Mutp(3sN+hjnn6*5)V3u(s2Gonx%I{_j>z%}$DK4`O=spHdS3j3^P6`V;6_wkl74F~y;v{R3sQrXwB5&)T$)C5cnvlHvqKyl0j68?* zbAAkT^O|D0wri)%Rk5yIDJE$GF$tH2AqFv(fSSiKh^YkBJdQz3C7|YU3}Pw)HIHKu zQwgYf9Qz%yXtxV>sZaAbrsDNatR7QW_pzbcuKO6p9?EtTv%IUXv_4@6lD(1x$R=VH P00000NkvXXu0mjfsQOh` literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png b/lite/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..005445acc5725591164de3ddc5d1e607ff64647f GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P1|(P5zFY^S`aE46Ln7SY&T!;9puod2+x~_2 zpZ~$1xc)Z#YJa)I%Du4XxoXZa%cFgJ^N(5FHvA-aDQY*{vdVY+wyoZ}OzT?p@)=7w zkEp~5wn-cbVak#_uCPof;Ijpr;nap%#|=AHvRtw0bM#SN@T~An`H{3cdRLa(oqar` z%iMlrkk_i;Hzbnp9@qF5w5>hjNpNlImyN=ulP58+{O)xK=rRURS3j3^P6XDU!9c*}Vh-cB zL{G7VM6m?VX^G6)CJOV8G+MI!wB$eiEY+{`k!|Gh*5oIqD#q-`4X*ce+|b=#tovog zWF56tN@`7_M+Aaduh_^s`-ld7F5xi@bvS$3@JI-wssC|^#P8`d-nP4?R-U|UD7v|L zW9jVk^Gb`C6=vR_r1R~gZ{EgP?_X)Ywku=^UTDm$SMskL=spHdS3j3^P6l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)+}P69&Dq4%$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1P0rUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dHn*5L znHU-wSmHDfsy79jTOfKJaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zZhg4s z1~9)^c)B=-RNQ(q(=$WFQKW6TakN^VBG<9M57>n6I0V{o=CQYSR9$FJaNvD1O{QnT zky_Td5+b7JCK`+6_H;bD*sP$`WPWflJFDx_7d};KxAs5C*O+x|<-1igzc`53sJxsP z@^AmEz2WPvr#-glbdw9qQ7{vb?%>^#EEmBR*AU;Ev4H&z`}u>m9~MsJIm2{#0q>Fn z@*kvZSl0iTS-2<9ByBd&+0E=etgZ%!Dyjd8La+`_}*FA;8R&3WAZ8kWzE&bfnRIym?kd#2v`=+CReo6_K>RK?W zRUL_5W0>lqwL3tI0!aVzk0{v&L_;B{ts-8p6MLjSMtA81r$Ds}pH+Bpx4_XIRA?1`bo^cf2=$H$nQjb%$sxh z1~ZeIyZkrrRD6{5_UnmIC^K2ta7Ty@^# z#Zg*x)tmEcy-$bhPoBKu<;Si#JaGr7-i!j~|11&=SAI8m@Xr1F093Phy85}Sb4q9e E0J_7PQvd(} literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_action_new.png b/lite/res/drawable-hdpi/ic_action_new.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8ada6bdfa0d08e96c96ef2e8fc6656efc31f34 GIT binary patch literal 1142 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsViy(A34k#nsr<$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1ObbUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnqfX zG!Lpb1-Dy_aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z4q0f*3(OQRJY5_^ zDsH`*smOQ8K%~vwiGeZv-~+WZOSZ=B1v}ZkA5bcg&|!bTpuiCPPfc~@%_GO8r_|{G zoD{$H=e4|Q-{R*n(~6#QC^RrIg@$%jp0M7yea4df9|g;jBtNOTHZI@cdUHutO?01w6Wim;H*=-YJSF-6)vTXc4;gaVh((-iXfZZqW+vo+u8V zBVlX)f0A7h-RPgQQ0YmtMO4nhGu#pz1)d)`lqGk1{e=6U^-ld^7jR%;WC0UGRzbha uDrBCXJI|cEda|~f-cO)#m75mj zEzcteVo_|f6vsR3|MTYHwQlCvA-pX^(Il#|no&k^AW^DWO^}QkN(+obMQhvj5Ec`} ztW|m-w3AH_~@)}jLfh_g}OkhByke;#AbOkR$WqAdB_RS1MW?fJ^LXC?`%GIQ3IgsRN zHlVUafGi5pAjI+^ejOQP0n30O!-fNZ6}Yg#0&?P`a5P727UEL*L@a!ZP$`6LfnhS4 z44o;YEvJP6JkK+1kO>9@*dyS!nMm;hrdyC>kf5tNx{Y+pBz;Du$!bLr3M(B?!LTQ3 zO?RS9xL}N@*bJaqKc$?bEdSrtFebfS6o-HHPD$)0+HA$)beTrgb7iyT)5 zSOB7c4*@w&fgDz{)K&wUD2LVlVvDB5`omz@II;vCeK*v~9m^oINelW^ zT0(pjgbSn7@=aj1>9vHW#WGk7*34x^+z799Z#8$sr$eCE*`tFx}jq2 z%l;Gbq{Atrv$HSjSN_#A_J?gFYeXo%f4V*rn= w+EkVPTzk6bTKZG(((Oyew#**~{k*zz=0f5ESCAImeGhzFELtgDDQi6V2TufSpa1{> literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_action_refresh.png b/lite/res/drawable-hdpi/ic_action_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9d855f77692343e173f814ca1e546393b707d8 GIT binary patch literal 3138 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 MSl>bq2X&7AABcbM^#A|> literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_action_remove.png b/lite/res/drawable-hdpi/ic_action_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..094eea589246b46e26d3cf02285f26c1abb33700 GIT binary patch literal 1285 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 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_activity_torrents.png b/lite/res/drawable-hdpi/ic_activity_torrents.png new file mode 100644 index 0000000000000000000000000000000000000000..63728265364774d899fc302fbd5a4ca097b54ec6 GIT binary patch literal 4778 zcmV;b5>@SqP)EX>4Tx0C?J+Q)g6D=@vcr-tj1^HV42lZa2jn55j)S9!ipu-pd!uXCy!YnK{> z2n?1;Gf_2w45>mM5#WQz#Kz&|EGkvK~TfD`~gdX7S-06<0ofSs5oQvjd@0AR~wV&ec% zEdXFAf9BHwfSvf6djSAjlpz%XppgI|6J>}*0BAb^tj|`8MF3bZ02F3R#5n-iEdVe{ zS7t~6u(trf&JYW-00;~KFj0twDF6g}0AR=?BX|IWnE(_<@>e|ZE3OddDgXd@nX){& zBsoQaTL>+22Uk}v9w^R97b_GtVFF>AKrX_0nHe&HG!NkO%m4tOkrff(gY*4(&JM25 z&Nhy=4qq+mzXtyzVq)X|<DpKGaQJ>aJVl|9x!Kv}EM4F8AGNmGkLXs)P zCDQ+7;@>R$13uq10I+I40eg`xs9j?N_Dd%aSaiVR_W%I$yKlkNCzL=651DUOSSq$Ed=-((3YAKgCY2j1FI1_jrmEhm z3sv(~%T$l4UQ>OpMpZLYTc&xiMv2YpRx)mRPGut5K^*>%BIv?Wdil zy+ylO`+*KY$4Vz$Cr4+G&IO(4Q`uA9rwXSQO+7mGt}d!;r5mBUM0dY#r|y`ZzFvTy zOmC;&dA;ZQ9DOhSRQ+xGr}ak+SO&8UBnI0I&KNw!HF0k|9WTe*@liuv!$3o&VU=N* z;e?U7(LAHoMvX=fjA_PP<0Rv4#%;!P6gpNq-kQ#w?mvCS^p@!_XIRe=&)75LwiC-K#A%&Vo6|>U7iYP1 zgY$@siA#dZE|)$on;XX6$i3uBboFsv;d;{botv|p!tJQrukJSPY3_&IpUgC$DV|v~ zbI`-cL*P;6(LW2Hl`w1HtbR{JPl0E(=OZs;FOgTR*RZ#xcdGYc?-xGyK60PqKI1$$ z-ZI`wBrnsy*W_HW0Wrec-#cqqYFCLW#$!oKa ztOZ#u3bsO~=u}!L*D43HXJuDrzs-rtIhL!QE6wf9v&!3$H=OUE|LqdO65*1zrG`sa zEge|qy{u|EvOIBl+X~|q1uKSD2CO`|inc0k)laMKSC_7Sy(W51Yk^+D%7VeQ0c-0E zRSM;Wee2xU?Ojh;FInHUVfu!h8$K0@imnvf7nc=(*eKk1(e4|2y!JHg)!SRV_x(P}zS~s+RZZ1q)n)rh`?L2yu8FGY z_?G)^U9C=SaqY(g(gXbmBM!FLxzyDi(mhmCkJc;eM-ImyzW$x>cP$Mz4ONYt#^NJz zM0w=t_X*$k9t}F$c8q(h;Rn+nb{%IOFKR-X@|s4QQ=0o*Vq3aT%s$c9>fU<%N829{ zoHRUHc}nwC$!Xf@g42^{^3RN&m7RTlF8SPG+oHC6=VQ*_Y7cMkx)5~X(nbG^=R3SR z&Rp`ibn>#>OB6F(@)2{oV%K?xm;_x?s~noduI3P8=g1L-SoYA z@fQEq)t)&$-M#aAZ}-Lb_1_lVesU-M&da;mcPH+xyidGe^g!)F*+boj)jwPQ+}Q8j ze`>&Yp!3n(NB0JWgU|kv^^Xrj1&^7J%Z3ex>z+71IXU7#a{cN2r$f(V&nBK1{-XZN zt``^}my^G3e5L*B!0Q>W+s4Ai9=^$VGcjKDR{QP2cieX!@1x%j zPvm?ce<=TG`LXp=(5L&88IzO$1Ou4!{O>iCf&c&j24YJ`L;(K){{a7>y{D4^000Sa zNLh0L01FcU01FcV0GgZ_00007bV*G`2i*c24-qqX`6HA700-ttL_t(|+U=Zwj8xSX z$3JIxV1KbLDxfT-RzPtvt=R&yU88}3R#QqVq_i3nE3K`jDE$HdY}zW3n*PzGjY`di z2-;MF#Xnk-k~U7t^be;%byq@yNI|>&NTaqc!tT24&hEE=?A`Qrcr!aQ@6Nch@=ZvV z^X8p<&iCDW&b{Z|``{8Tq3j^3I)nUHNw?;6&qO6ilBR{oJ0*37$frrtCxx83j-Y-? zRRQ^f`X3$)$gA9MC28(NBO@iLDNVL1Kt!jLRZ2P+ke`!O8R%7`*p#NLNm8m@$+IE;l@3pa4C8J|HeN_N;|%SUwAIP>l#rl3uFa>M4U%-mhi~SIpo75TH1SzrYKfjv zSX+NLvzwzTuJB~w+aa>4CG5mgbF`_r1i5%KC~1qNIg;w#rGasnI|iK1_0HBU&UPzy zylD@N{Q*fIO4_UOhrQ0Wfq<;N=rKsrJm4Q?I(NO!%#IhEAOp?;Q_75-9^f)FQ_*4& zfNS90GVDF?=1UGhY>eL0;8N&8Uob zAj#n1U^XX+#bVt3l{Gy4-A8=#^O2<8z~6uaKr&N?vkc^P0iX6f1INtRyyYh({`!}^ z@2{+^WYx;Md35~`iZ$d;n%OnE60{I_&1dV!k00av8y}&!wQFv>KD&2efkXF z1T8YN*K>|Rk{$rI`)IlQZ1<_vUt2lbmnRh!73|#;KU-B*<*Q<_&dhe?mBri*KC;)z zHEX~8gwIDkJUq4fvSIU_-m>Lhgl9l&~Ej)$z!PLW||KlGqx zj`O)gQir6viwH8aUZ4f&_GJ6RC7cy+^rWX7XmMOzJjBdw0GI|G@zB_T5)$-B4?2zj z(;NqxW008*o7s)P&Ipa2GPD1biXAgM8d1egGrQ5uhI3kKxcB036}(LD>wRJAiq`so zs2E#UYJzQ~hEn@tm9b?7>Uv93rI`)olErQVQo!ayE#L9{wkAf(vZMc=E&@S2gKZo< zxIfB6*bJnc@8L6PNwa|Co}Tt?%Wl8rsuGq-zP0a_R~G<3@}R39m}h2Z(tA+M)65j0 zHW5$03_MT*a_&#WliOXd_kj1h$n;fqWLn>>>AvqU`kok0Ao2Cj>s@5;OutCEfat0Od6De2lYk`8n64v<37 zmWU^RoF@BhM4hXh&)Er*RO_mV^F27SCS8z-CtnBdh@kWLz|TYEk9x3ozND`7ooT@| zKN)xxSmbFK^qW~|;9R<*br}%Pvr@1(5l?<8q_@w&@0;G&fLlhF9KkF$U}lSftAUq* z_ain`E$P{?3yFAgA8-{TZ)p z%g~diG4dL_D$D)56Y=EQ3^slf*b%W{HXZ2BRJY1ja+Pa5>MpcSNfjA-(!YTPS>|1D z0N=u9}V4JtMEooR_W^d;7OG&3C4Hao? z-2O}_cb2Ybty;RG^;lRulvM4~a4|3>>2y9l=rXseuVv)ba|`fwV5X<1H4GdEHksKg zV?3<;T{+?!kG4 zOmV&y-h(7f0S+l~j4ZZfl;NJA`yxRb!_G9&1e zndQCbsiFXKD%={a+;DlOC68BvT;;ADW6~4~s5%xxQ2J(p6Tq%oe)Y`D9R;cmlyF!asuyyyIJ zK24f5P0}Zi-1l{TpGK*v$YP?Ap@BdkOnEse4Pe{---?0+ylbpFA%j3@()N;)YVwkj z)UKagZ0wz^K_IVXn5M0k<{^>r-TIA$Vk9(0(M5w0g<3-*21<~~z(j+JqYz1xzeK3s zgDWkKNIskwi4YeDjU`lvU__%WBJa`^#Dx?_Mvp#j`4&3+?$ekcKuQ_xS zP`7e+H#iOIl0VHpgXpgcs7*_frp4oHm! zWX2e{KL>)s?lXPiK!zzagm8I@AZmQ;NGXt=AgFRmCt4b$#||Q}QS9djEwX^v<#lc3 zK()=F?nxZ^%t47i2a}N9P3!%>)t1TY~RXsV$6W4@g z%5v0&^h#@CvGcMwRpBZI0&RH&%)CI@8pxo6NKogOf_G<#b|&a~pYLL9>aoQdL3xME zy4SA%)s1w1LhI7f-tO+ALcfHe`KYe{i*2uIx9+pkzW|}9yW7pqZTcV%;~-hY`_10* z8>J$OsU*};i`D&j*{5do*C)z3+J1S9Ry`(y9d$gnIH|1IYmOq?D2b%^1Mg;Et+qEH zj|d_g+@M+q5jfvOmQrI&gujZ6IC>u4+jk()RhvuCFE9!M)GlOe%JcPH^jS9V9SCY8 zpX3GtnMl#IYK=CC4xxZRQh7m4wc_MAJtUBBB#NFlt3BvXW;~%1^!>dOI1*@9P>N4x z?<<2Pz~K|MluTx9zr-lHy4CH%lU=b`d$n7zgk7;8%u#ZC!0kb(h~mR2_~tark#H8# zdUSCp#F=6DG(B>NcronBjyWLy@*%(rglB5?fMF zl9~*qV$!)7(jhH&-Veta2btKJF4}rbO-z1-iKA$#3aJdK*eU$*V?$C~7twq=5)5#_d}E?T1B1N5Jxko5bM`cx&qtLN33 z?z9h5qg#?TctL0!F)PA92XXf^)J-h;ePL?Lc&2QN5iT#w=a=ME;M8r~NJS{yjYM#Con%Fuc zR5&m5RR%lOe$Z%#e#d#xd9aWHiGhYeQTa&uEK5VVwfKFpppu}{(8Tye!Nl)O?rh-? z3mga82iXhR8_i}0UIvh+(xw(``TAXhV*RtG_K#r({Q5P%aL2BK$E}<3me1@hEW07Q_q24S=8Wge{w!kk+c?*^_qqCOgR@153K9=8gnzvE@uTUA6BSso{#(Cv zDju8HDo!XKA6yl@*HcAfH++&%MRRwMF_}1Nj}@jC@aOk5viZJwOkV&7V^~C(Zn$Wi zYos38%!hPt&zV(8_YJ8BsWhqeY}*g2{532J+)N_ntPVoUyg#{qiVm{c=#S6q!Sv*v z6e;*wnW}j{I(2S5onA+5!?w|Pe2FvIhK*gl^Cx?6!b*tBSn(hNX<|x|Dtsvy;y6sD zM6vI#@IBwfp?UXG_S(|2&G5`bE=n3Py;ZrAV^a1>I!SEj_NE`;EQ0K{hBB5Vv@2mM ztz`@35@mg%cIFTk==czll$hWqQBI?r++=%XyKnPltkOEH{$=1}Of%ctROAuIhJ?yD z`YdQo62*VC48RLa$o00?x;9-CQKS566}ik4r{fKyD+#bX_cX#e9;0ic z?S=UtuP&S#tLm}oZ#0@egu}>12&1B_308>H2?H0wt6qEL5iX-$nX4&3$}0L>t)^^d zZ4UR>S#k}r(#q5K)3H8cE-nAS+|c=Pdiz&;g)MyoywVoZB-vWnCDhVxT{1E`Aty8M$x!U#^q+6~p$sXOWT46>T_e<$0TV>qq&=hC9*fsPe=6 zv`1&-Divq9(;fznPC^v4*HRUts5+ESNl)+Fx@9x9MD^ zymt@pP&e-0VhSvOiS@1ALY|}gLTO9M<{*)El_is{ne}LBVfa&ZTx90=(Ynu*>jiZdQ$esq>M?koa#_pPFq%WtC3^tnNLTfug%>dc`ond+D(V| zCDH5e`CNYCwT^2am%D+x+YO?%fKQCilVfd5o{VQz?W*mjH)5yaOOk65^P+|?tBdEW zfeziCdDkDacFHFv4%;cwEr6+ee`xQMObsv+~tPJ)JzU>_G;{0H8qw{#$bv-FYQuot~+daWr zgcMsSP>^$S)xMnn{-2Z1sj=~~Gm(?0q<`d`zJrw>#q%tmE8cxpT%NbH@da~duZM)* zfzLbS8?eo^5v=mn^s!R)FFO*%XzFR{&WPQ1*2(WQKvFn37+^aNM8r_g|F^D1C=5sx zS&WF`z+*5}ueO9T^RgxeQ6nZ$wbOm9h0J~OjTl4fFhK^Eh_T;S?s{oKp8d)Up*VTX z8L;f$-dPBVi~y=#R`3EZMpm)-+|A0XX41Dlb_}94n-7A#(*K?5Su0rS^4hpHyB9O7 z8(2b#RdTvG#lx5LWn`+=;~(t_)=HEJE)Kj0Wisau0`lVK(Z550HHyJ+hF=*nWbE|Vl z-}%i6B8H5AUlT(Eu1@y9UsF{)oJuy9eYPaAK1x$6zl1SXPSS`rMwUMrN`OdvEx0WY zkA#Zp%P|Sw=$#Txdpy&$xgB$Gk=>S^Ms!GGVozZ7nJo%>937B-CFA{QEV5^&+~?2? zP4Y_1%_1F|o%hzOw2^>{!%3^>*`pQih>TCF2HDT%jIb;95oQ&DSAY6b3UoA`jh>Q| zid+l&(e-`y#Dkf{7&h00I8bjfG}PHw5cF|mz`phVX~E`F=JsQyfhL)x6`OOAJBa%F ze}q6Lb8AO)kUGS%3umSiKp2vi=7-M+r`vn2#gBUDF2rf9!RCL$gB`fY@_7GD`E~Z$ z_w{Z=+C}a@T#=}(Eup{>G(9vx9&^RU*(P&vB7IzcW^rm~DIpnkHn}QIWR$is=O6(E zD$6{-eHvRJGUFi4a`4rm>JZ`GC$?Ru6B?^WXhX*!I(`2OW|wBYQI5E-3DdB|?=0>b zJgeQlYJ6k&BP-m;zwkO(rlM!h5k1N2spR%jZtvRSOTbabo4lXwW@3$bLD7Q_--luf zBFi#S7f*C5JC>yC^aN<8HOxKr+@AL}6lw4wW19~XMd1-gG8^Ra?;J%P8_9sm>^ZBI zAQ=bXecF<1SgGvo(-x?aHD3&B_yLlkaVm7v2s&UF{Of@B!MQ z-ii!I;ztR-tOFlySF%iz$4`nShX&t@O1UTEzRueW-kiMogDD%+do~&56lU5KVRm_H zHN%BjI0CKUB}!B(u4`=yG2-z&vTDNbtMPJ_3#rSuM?)%v(`>-6?cCuedgE<7uO3S{ z?7+PJqts7BeYJJ<&jfAP?=OqWo2wWYWIuf1k6vI~z=;`*()tD$p1q2uGmnj#YekkyNN9NB&Jb}rcPijT3x@o!f^=kGD-Lq{+;^piR7{! zswAL@GVLBoE2py2nGxCSE{-B5CidTo)q}VBw}m~>9;wa_zRr%K&JIs#2zILfeYpP? zGb;l<&APi5LZRZw!ZMz{_c;_kv4=qnjMFndFw)%W7RPG;eNO*-vb`1)MN$-j#>lwu z=~XK&q6tZ@+1X1-H~R2F^k>lqJ>}YEh+3ImMwLxQd|19a#RhS2;29zaD#wR3Ri{X2 z(@@8wCp0Cw`9`V`Rf_IIKW$Vq!mv0FB5lxtGDsXWQWq;GDV+u|KLj35z*43^hRAk#d`*izNmK9Fd~*3gvt!IM}HHm(n0ty#foDCJ6Yyp zngl<7J`B{us*}+rX-uIgc}A>-8r9U9a`{?JBR?_J8~&v39q{?25e945-CqoX9`m^576Fl<$?#__3D2vHnS8m`O=sen39ga4<=`)Jze z0leri4HuNnw_nU{KH?Eb2NjnEDcBXwIIwg3!$HPwq}M8sX!zeMZeCEct7URasSBZ1 z5KC9qIMEO|O>EG66VYvvT(t_3guf-(vehR#+oBm~8<$wKNPYNNW=HjT#6hDKnh!ED;nVbTO$aOkiWOFhl=GyH9LGsIJlY^UAQ&22eG> ztjU zPhOY1jgU&ADv2VEt@&%hr3W-A_5P#duW=E-J;&onFCuVb7_4|pLA4Jy4Had)4{v~w zd}*iAro)C!eNN;LPDsQwCf7*1rQJ4su9*#B$o{jjp z-o1|=(AdB(2S+ci@Jn$d4(4s$j&bjP^47m;)PrpGtd$u12FRkapSYQy&0_p8_==%J z7+}_*6Il=$V%!CZPO<}(fN@q&ZHZv<-=-6PK#6flT7L4Oz$#JJ$;Wj`TR@gLck!?x zC;QT4(|qG^dWyw-g2ileP=XV~P}^9C9z-mFcSe&5Vj@H@8N+HAK+NuAikW{gJ~{t~ zo4yp(LGJZpMJoCXM0qfU*wL?F2?rIU=FQoE5EOmW zFrbAVmPY53=`Mq{XtXjo5N5x0YgjSgz2n|@O4@rfApc#H6i_%R6mMq|Kt3T@Um^%Q zaj`votXKD!*B2$dLA39(rP*vHdXcG2QorUd zqLf)>{i3T5vEsnY-4U!Jo37Tt9A53{PQj)<1{ zGH8*1ucMQFC&?}S59oNd@#(l&GS-58b#{Jv6S=nLj+V{Ecq6!5W&~4j+2~SJ_7|Oe zrkIHo^}IW11bKZ3$sGlyMyCXD9{cJskYYnEf#Wk8h{5zlsyK-40j&&z#y|BSw?bP< z5MA|5mXAPcOI6yr9cxV6Q@<*cC6E>hydraS*)3EZvXs{-$wU2~Osa2OZ0g$(cHq*t zX!vH0={h)w{r9@lsDv#feUzkIs3D0)LQ0+?DAv)12N&aqOQ-YL*`6qdxvgVY4f59= zzNIxyKDG;rjXO(irnK6IM(kJfQo1R}$E)MBzi{v`?A89Yi|MVR-X>xu4EbHpP`_%B zIL-q{ZJio;`>;@#@^;sAmqm6^$UpmDhXCZzU&4x zQXxN?vn#oi!;(CskDhY4iHa;xg@$ge9Wr(}c$(QU<2_Nt14(*#&^{~^!WDUEaO~7yl4fHQRs!y^kQ{tQeYB$hxMe96sISl0x)f++}6O{0?Vn9GA>lR zu6CtLPcJKVt^eHV)YANt*5;r%GGLBASI7@5E78?S<#>a6*fm(uy8&fnMM=DzOOd!OE{WVe}-6zdGdY<|B`BM3v@5bgm&l7-bOb6e$x z_L5eGcJ1=`#r>*Wzh-HUIbvDcRGAi}dc8%9IgH+Rw|?Uh)Y)+jx;qzPz%!Ng>ioCU z-11lw0fH(qF+bkTIB>W4?966H{QD^grACo^H*2O{d2;Np&9oZTuZ!#(K%y*z(F&8g z+SpdzSnZpWWpfl&olqI>Jd>oS=zAFbo#`2>svV?I#6g=+f)++w$)h+|+#etbA(LhB zufMwgJ;P;0)z4=>q0a@qt-&9~%Oi8>c)3!ffTwjj~sBHx~37%`oMmGjl z<=;>178~npZLN$;ZYA0VJRLj9ZOacXURT8Xzmo_9C_wn{>8Ym5R8sl0!a0#Qq|T~~ zgE^EK$!Ok`k(VYuf2R;83BeP+y{`JYX3%piE)G1~x2{%GUZqfLQlL0J!_=q}tm#8n zF@zK+Zw#=!6Q!Wb|MK+0U#U^VaqzW zfEx5&^M~!%YeCFi4siZUKw3_096wk_)__3HM-m1E$;*+M7bTd4dLB6Ekl__5G~lx# z5EHG+3r76+Ph+nSKkCFv^=>NmvUj{rKAzIy#eIe#c&~7=5h8mZMQt?%KF?%>HSHGY3_SIF6AEHqeH_D>^^o^-*7e7bX7jS zDQ9G$&*|yqoEmP`;C0(^$T_&zQgy4oTyjdI1OkCn^!1rhd8yw%JZQ%5&+*-i-7nze zu%QDHQ+S|@8|9?Sh8E3OC7cY$3?<#~GImLoX(d%%3>CONJtdp+vSDzsWDC_2ACzo* zEcvQ}q6=Ja2Wg3F#zz=pG6o#Ni^Bwvw#*Q_9tO_ghS@9)1X6pZME@ykk|tGT*YLAh=Rszl!7h zGlCPE8Vhg*qOyxs%PD+dj~GeU!_!lh6}@YNkR*TZUo+*>zO(WD?gt+rBohF2a-sDaT1LPi=E*q7N`L60(kA7`pU|3 zd4}!xLV@+GiMBvseA(}MCNz><(|uRYys=>V0!Mzl!Xi3kHodbv@lKym6tWw$$%h44 zcfh1js*A4BcDt3%GXVtxuvSY1tiDB{wXrUy1J)NOd>;68YTCDT(#d%kGu1ix^6~h& z*d9%{nhn5Vx6c%A6cK9d(N;oXS{!SaMm3bzet}a#g(%RK~~4*Mc&@*kSMDLr7H$eZ2>< z8K15e-2+G_@Hu@-(8PZ4f*R_((Uks6v1S2~jXzE*J((KOu46cj58YRYEy@9R#vWiU zm1d(3Q$hbKv!Y&Turjwlm_O6LH8eCv)O0>c8ZyNgRP|28 zSKrW0n|-%u)Kx|4F4uz?XQun-<$$AsOgDYl7#Y4pDTv?h^_Ps(U32=l zD7ib3q@Vbk|61C`F{Xggvzhwu-oPA0q6$)=_AEW8R~Wj-SHp5MUVJ{ZfXuka%o;Os zu?7Ubs2K&c246)hpX2nC9&uNfV>^AnRc&6-Pb}ULjITy1FO@P6c-T}|4K|7Ax{DwM4ax) z87=JP8I?r0W_4MBdszO9`9lf1LbaiFviX)VXx=7#!dzM)RlI06pfhjcmJ;}z!C?D2 z>Yu;A-*(>L9H)H~KB4TLKTZcorkHw4!9hd;*h@CNuAy@#13T(LH*V^w1X z4`jq6h9t_+AWuGLKvJ=1ew8cXaMlMf1N+rKT85IiGp5&T(I=()ixog0eElP?1^vsDOH33R{=mll}ZQzk?K*clHtX1)W8Jl?{&r0 z3F?=Gk}e7C!evUoN-Q2oK<94$P(59Q7wDEa@kChUhbjrgXmQM?-O5#|_nA%i{0As4 z%(+Mb(@!8AaQE`mQW)j(7!8_hzz5hmRzJ`4bDAI54~iim>(@3tzQecwu9>;~QU7+< zfy<#qxZ1Lfe*W+Cp19`w$0QJ!^3D#`tJx-m0C84(RPfcUrljnzZ$W~t<^t{(Bi~w! z1T2AY00$UGObiDY;&I@emb(f)aXK;Mis0xqZp&6iy{UQ zMTCj5K_rZ6Ky^6A4NZ!q&ce%ApL_`&ta)VF+DTHX(g@Uy08Yj|qSW-ua zzc(zduS&KWG0b{Qg44(T`@jH`mX|0EPT@a)fcIOcbZu3&Q3zPT&r$l06aOwAsZ~#= zPA`}mh2$?5E~=32MLTru6aipm`ST8WGvz>|0j%D$C)9Ffxa%6r4Vjz8zwhs$kxA5U=sWK37_>Xx+}eR1%J2k^##SWzOv_YeRu z|540J@PPtUq7%v(Z&IL_kb$L2FeCfH4*>&r!lp>MU$b#Qxnd4#of-GbFo7G6FYerK zKos6v>?(L+!Z=n5xks$R?bFE*F%IQ~RuU_CAUl6LXu>7@bW#h0+|USyLpd#YKP|MVkbgDwwuPt(SUO) zY2aJDr6Y^_w#MiKjh}i$BZl40jxkPzU!O^#W8wnfWO;sJ z#g|TrPLxKOs;9+5hCvyEfh^etI}Wpt=43W8s2F|FgT2G)lZtk+2?I(GpVLfc9bo_x z8np(L*>gL(`y*fK;Vp>h1uMLZZ!7?a;bEU{tzcC~R;Jyu!u8Wg{da=_?LU|T1Xt2a zBI%X^bDrHq zYRwlvz|ndEtQN@2i@ws-XscK3PSFIYAIo&D@OdesLN;y(}hs<0AOYhZs$+$l!A|$ zCrn>`?_9idhaQgpW~NWZ3}|TD_cs7PxDgm&(F`jJ)U`DTE=8IRf znT*zGv4=zh{|}El@%>hmWDiV{aCXrVME>f4OQ!Dbq7q}xPA`5ba_3t_2jQrL2}ZEkQ2-svqHhzYbA{n$Qd;4gKB*Qz zTjnGwt4W(HA&}}^X+fy?`PMI&*nrj})oVz(6PTmMygl*M&S^|lrpQU^EXrM0FSAUp zNnuv5utfHK$vXOEBrS04Cn1J1jY}aaW!u1ik1dh3TvOxBd)p>+L6!3ZGBTnri$d+L zMX6k7MHYW1oUW4R`qa;wByWq0sYtvjdzZU_HD1Mcgo1Q~vx=HBW_{vxCW(VM;w-H$ zB!Gj>56r>n*pLwn!cb>ZP;cNeSdj3mFI&>VAR^uyX>w5IRrzbjrOXC0k t?*~`UXlyvytYYF&=g?;w^YJhT!-j3<%y(Nhy#d<6;OXk;vd$@?2>{*jG@Sqd literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png b/lite/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bab5e3ba7c3dfe7a9eebb88a395b4ada0c2e19c4 GIT binary patch literal 1231 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 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/spinner_ab_default_transdroid.9.png b/lite/res/drawable-hdpi/spinner_ab_default_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd4aeba02fd50da20150a79bb6055a621fa9134 GIT binary patch literal 376 zcmV-;0f+vHP)C3<0003$Nkl*oX-X$i=vTvx^sDAnb(Aa~NYBBqX%9MvO6hmC_HB$HD-FU;ghk zuK~0gKFHT)G;*)-W$7>A5dx+!ElB2Xl3~l&gmMvv08B^Uypl2H08C#cAQ?!8ca=iV zK+l-nGkKmnQ4}@r;rxqL*T7|2t}(`5UDxLz2=3YjC4)3gv$t*AqvxaV`xh;k7Ghae zj1YQI%s~t08$y#Kfj*i W(hwfd;(_!40000C3<0003kNklF_L-*X%UYwPkR(Z>zVE}PY3^B;byhGVWEh64>$>l{u5VT_ zQwYI$2%*jjW)7jtVg<7Vv4UYijAPayMlo9uV;CNY5ezRxJ4OVe6(b7KhLM42!N@{( z$EZMd#S}$>f*`oi?n|4V=r(RwOj(u@*#ew>-$ybKdJo39dyt{Lg{Z2^C+%PP)Pg|z z-}M{P)C3<00061NklfM2Pt?dEfIsj!nj}zLBI0B>>Yq@@D!(4Z2Cw!16c8vi1PzcJ3yM8Xh<>D=*zQO_KxFr_e4a>n+|)HA7P{4T6%&LlQx z1V}+#W2&FgFmd&m<@&N95#P9=8W@9dKyXb06u9QSCxosMm@x>~x@FFvPxi{45tx4< zS%&EvftdoLUaa_GW`M*G;{p;d%p8#TU_5}t1LF}SdKe!d(Zcuyi4GLTVbUjD2RgZv0nHDD0*7;jPtP2QbP$O z3531`A+=zF#Ki5H6voG=N`j@=gox7BQzZ_YlIxY0XcZerw!nDXuI>|xim8nZB-z|9 zH7+JwJP4UB-cwLBtgYq8(NtRStllCRJxsQETnxv$`SlGiP0=k+!vw_u0000C3<0005QNkld|6tJ5C`G zLMR_)Sv)K!k{yQM{%1dCcM!54iZx@7ZRKYF2M_&212laXh&lkcQrT-^2Q&mk7pCK9 zt9|zwzvy)*w#@3G%KCe*f@Dr6u{U-#R+o2bNt(AwiQ ypu>l(<-BPqs-1uCaaqYFm^?)#o($(wi(h}&dx{=mi3!mF0000MaW9780+lT#WR{s&087#cOP zgx&QtY~*ZPdB)Otmcrpx(Vhjyhp#*{Y}mpt>G*|#kzvg`Q|75x=KlfeX7F_Nb6Mw< G&;$Usv>=WE literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png b/lite/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..aa07ad6fbe99723de24bcca6986b2de69993d535 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1i!3HFsuehcLq>MaW9780+lT#WR{s&087#cOP zgx&MWYT;~KeSWpN?}WswYgKm4Ow9T$;c%{LfnnP!Q|8C7)h_~dGkCiCxvXe32sE@(Z)z4*}Q$iB}rFR;` literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png b/lite/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..40613b470ecaf12a64ed8c7a804c10bfa7404b6e GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1c!3HD^Kbl$tDQ!;|#}JO_+ yVRt+ yVfTEpS~%NQpI@!+JArYRg%0`LC!qu>P%j^HRqWaPMFJP z(DcrJ!I literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png b/lite/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..fd09cb18694a6ba1dc43d9e2c563662467695a6f GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%xt=bLAs*hzDGL05*t3#VT(u)M zZrf(&p?vnh)z#sO>x4u_m#%bOAHQF2Ysa1p8D6VThj>?Ho4jyq=96Pu+?n`7rS1QL zUmZEug%%f@7zzk`MO?jL|H8$^CF7Pw<>zO-OA4LLyBo?bUU6S=OpT%9P!e;x+Zkb? O#SEUVelF{r5}E+-AUj_G literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ab_transparent_transdroid.9.png b/lite/res/drawable-mdpi/ab_transparent_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3b514f5e859cb519bfa4a8d562efa9ac3e4ce8 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%*`6+rAs*hzDGL05*t3#VT(u)U z{{R2K((|Irswg+NWBw{TyF$1pT=_4*wd2kOXl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)+}P69&Dp}#$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1O_pUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1> zG!Lpb1-Dzwaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zt}Nr5#lXPi>gnPb zQgQ3eb$^e^g)+xKo?U5qG&reCT)gSg!b8m+%bWN(OF0A&1uu7Tc@;86Tz{hPmxM3u zh9*|5a!N;pnskMlnp|Y1%HAlHXdF3nE5`r5d`**JwcPyYFK0SgR6MMhmwW&G`~S%| zHm$i(x3A0T_a7^c2kH*ix0<*FzFBZ;8}?eMeEBz3>QlCU)dQwi6OUESIU;D|);^!% zsGMDNZ{8mVR=1BF-!C?)rF_^FU|SFvD}R*P=7_D#;c(MuW`5#I4m`0{_HCX$k1h7i z+_~ghHQz%s2mUO>7Im(KsC}Irr@orMHEo&AkXB=D*dZyJA9R{Oky$w+ywKlvV>H9% zRdsg`8H?JldX#$OQ0UoqS5~g-mz{UNH5#utB(uy!d|Sw!mK{CYxhgrQr7RV(-jTN5 zYEIPxmiZG(0{8e|Kf7tqI=PM~Jnk~-d)ZE8)Eti$>DO2?lRKMB;M)5)8SK4J*Cw?c zaN{|@v8g=bnDmxcb@p}-l-WwwN^5DQRW z@78iJ+7ZlP+-GmtaK2*UWrM}f59SCQoy#=k)jiRggNa`qJPtZJij;E+T>Vl0{0!sk z^}05zFP|$fT+VPgtMuB#1zrzd#@SDk|C9dZKkE)FnCz_QqW8&^GYqz4zz;`~83ak9Vf8 zx4W*Uv4&xox>S#xraSOfbtV0~#o|x8Z6}E=>Bqw)uR4f{>Uao&l&OxOG*b2P{rfkEPKZeOOA%$<j@ z^LZ}6pTo`w4@FVrg&-dc2B=5C9k+;D2w3i}5`&Cf%`t3ZU<-JR>JT0y5tb_blY(il z(OT|mnP|cIf@<@S6TFm4j*9YsSJPbcc1aqo>-{IOn;EwepGGbob2Qqx;ay%RTZ%hK zCD_See5_Q(z8ogl&0!nF`@s zOUuihPr5ejIqj>wx@l(KH_-K|>gm9j#>cTqe|Blr0qHF4)vzWG;HqqD zqVvGwmW%!Yd3y81t{2s)w*FStmj!&PX`yEReb>^-2^BmSXTCMaTaw^j_vC%M@47G9 zT34UGGFWk8hj0G!t%i!vJw2y{53_rtJKs6J+HlLg*HgK-KC0lFQr&V^Jikcta~K>v lH-F>k;f_ny-P3+%!$xNJBes5e+wwl|Ri_fY^6l8*)Nc=SU$6iG literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_action_pause.png b/lite/res/drawable-mdpi/ic_action_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..a5aee6f2cb2e807e8e8f98be18766581bc7fad2e GIT binary patch literal 1107 zcmaJ=OK1~87+$rCtpuwPYYUcf^Xb*Z&DEIotdBi`~KHAgB|Ug zJry+-1VMP>tzrW2z+DR$;J=g4f5BTdYVJavW(s9w8xm2~?1mt&%RMjwWi_|&2@Dg& zyfs>~3w23tf@12F?D|ky-NI;s2sdOcS?Prcbi*Fah>#O^?~_1NBjh$tVk9dD(^_lZ zhMoELq>}Gdc$I9}1j1PX6X+1hAgk{+93dMar+5W?cFi;ird&{Ogq%*QOX>hI(}sYf z7@xw_v!Fgmu|b9p^6P=0VHukB(@e<6G6EM87#7TYB#vgQDIp=Y%*4XC2$@F65@{i3?g(CTeFa68o*_gyUjinA#tYDCFs^H zt>MhH2{(++$`;L1j9XICQIh`es_V1f4obj3`TmpGN#-m_C!k~Y*$N(9YPB265@I%# zk!dGQb8oSW9cdGpPTI6UtdpZyAjyhmxRxn|BnffDL9(I1xELWZ2c>DMz;OOhfRFK9 z6U(q{Gs_2AzB$+wi?(oVDA>dnv7)K;>Ciw$tojEVEs1r-pj$Yy2yJaYR9kFQ2UA50 zTIpOuCHZEsYUx}yl*H0F8QLA~U!yLXuzuX*tZ?yVR{GGudbhE#uV3xv@S}Jf7o*AS z%keYOiigZH@zitg?MbqB=uG7&iwYmwcw*$(?XmKkugm-2eje1uE)RHDtUa~r*R9I4 zElbLKhnH>LRR$Wjy?8$q2}ZwN5x+hi*?Dgz8m*dqG42`B>l$kh9I5><(*MSLr>5XT zh5Cw~Ij;iC=d}qxy@juj-h~^jU4g=e-2KywJ-JtN=T;VoGVoxc>SQ`OxnuI$$qVya zQ?I`t8ofB2XdMj^hwHqTw$#_q4ZBn8w*Lrxes+{NxcKAJJ;eEH?#8*}o<;66k2klA J!%cezeglElYo-7I literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_action_refresh.png b/lite/res/drawable-mdpi/ic_action_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..bd611e8e24d2e211a94d1658a49c823c4201716f GIT binary patch literal 3033 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 IFo%f$0VKS%G5`Po literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_action_remove.png b/lite/res/drawable-mdpi/ic_action_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..3336760d5f3efdfefefd6899317c3a09264430f6 GIT binary patch literal 1138 zcmaJ>U1$_X9AA6!D{>-O1V0|eJyDC^?#_9aWVd(G`!pxn5HHtyB?hy%JIO7{?re4^ zxy=>PXrxrIMX-W>4j7>*6vaXxn)qO8p(L~w;Yw*^d=VlMT0s=V*_ewycrNVD%%9)y z_y3&zva{o`zj0e5!!Z7ATPjCa;JxeC(63Xe{7;vyBwZj~xQ~<-8!>SW7ZJ!BN1`DobyYg@YGptbHTGaDh`JILFc49IYYdu>7#po2~Upxm0G^7d^$; z5+Rnv^W}1xD<9yn-Ooc&6nP=UheAP$2s)!CQQV;E1ZoN?FX2>Yem*{mdiv7#=DBeLr(BgssUyB{ZPYLK|3Ue-o*P(VJAOoAwGv3JZ!79aeV>L zl_e!@q!4W9F&?Z{v9p8;c1qX+$*u?ofvl*y=~TfLJTV1#uZ@eRHN^hT;mAAysZrJ&>qq3vt&*SmMxy)?HVwt>5|Kw*#N*A@?K`5dj8%Q7oWF` vOgVUDW_-_uZ1>R1kA7S8{aE&X&*@dne`UUN{`beD-d`Y_?nqrv^qzSISl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVil#L(Q*(%jh8$G&eP`1g19yq1ObbUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnqfX zG!Lpb1-Dy_aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zmYpXfu z@6dsS#Kf;_pZ=QvWTMBMZSJaGMgE_n^X}dIe5d+eaaHrY=d4_oPK`|b_6_m}_&=yK zAG!GC!|k9gR##Xr_6wTqV#zqJq!uvw>9M0Tj;Ul7w|FG*=;|@fE3FlnE#cI;^qudo z4UK_Q(m6hKR4<9CejvJi#UYEZ3sV(aR%%}sUbpzU^08&z65 z;}FxVSf&=)X1mNqc_j(F)>Xmtk9U_W;=LUabU>cf;P7RuwyPKSc0@VN__$#E?0^?a ztiSKG2L_y-cFj!o*xY&N%G_p5Ji?&2CHHe&Q-AJ`_Q*MlFBw&aT;~fZU-RH$P1S)l zl`fNKOP@`&cb>b`pC|nmF) zp1FQseQFYS%$?D-xKqErbIzUf|Ni$o=gf=|7Uataa{jQ8flvkhe+7I#UlAvz1qvYi zm#5~P`;KASFpNWgbNp67lTRTK^~=OxZ+l^&)t?C~17ir3sOlau8ZsfthM`>ybo_L` zm4PiLCg|iUgs!QIEJH4oK@}uhn7L=R%2*@qcDD^YA-DsnPzdsj=p!Nde4VuG zp_l#^ec6c1AkP`sD$tMkI^q$CPC_yCFy>)QHs2zw(I3#|Ss`Y)X`mYMa~1C;*1$Gn z-8!~Pe5PNm{SjiRQv>Elv9v`r3x+@*(O1wQ3AyCGA^Sm&r(9xEj;o_bvH4}By0(L( zmyv9?X>js7ZedxDezI-(MWo*Z%?OAYJ0B#HbjHyKiS1$sFu}3{0chHq5;72~K+r4j Y0e`gAAq1YeHUIzs07*qoM6N<$f`j7!(*OVf literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_action_search.png b/lite/res/drawable-mdpi/ic_action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..587d9e0bf392fc928947f04293ba009f7fc77b29 GIT binary patch literal 1394 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 JtaD0e0syqNvA+NS literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_action_stop.png b/lite/res/drawable-mdpi/ic_action_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..20df415869bf4c224f577abc6fc30f107cada685 GIT binary patch literal 1047 zcmaJ=PiWIn9L}7ZI-QPzIEBe0lYwB9ye`>HSlrsCb%kZjuDTvPEKT0lu;tH^SKIYs znNAoCPYT1Uf{LJ`M-L7}QM@Xs$DL%Cfrxkz>r2;m9;|_v_uh~1`+k4l>g2@v&W;lu z6h(C=$CMP=L9q6>lfPdoeJ9&-9M9k>XBHPU4^a`r$s&-nv^kVQnz6L_4h>UO>nSsx z!5MX2(jAM@0t{2MT*9WP;gO=N>GKGKESfWIncjZ!k_M(B)6;^=scsDA%(0S(rb-iO zy)>_j20d~P3>PILU?Hr5qP1ZAQcx)M1DW|jt32%eYeouD%6B#1d40s_N@bZ!uW zL7ss;C-UMM5auAq!Z6DXg&-#hLlOr;?W2h|&zO}`N}}eA++;e3u`97`p-^B71B~O% zu}~C6mJ74taEKs6{*sNgV#xOU>Iw?-bDVAp)Ur+<%QT5}Ck4xG$l89bOr&6J zQFB?ya6w9SpsM~KYFQ1mk5gzj-hT@F=_MDjDdanOPbZC=?F(GFQp`gdcD%IXEYzzw znRBq?=NuQrrUV88Rntv7uv8hUDkW_nYqpM(icAv?#xxCy6XU{Jo`*sdauCL$$U`yC zM`MwM0EhS}taBAd&s)gGb*{0?4L9Wm!(h3@vw}SH3NjL&V}WYYlG!wtfkaci8rNtZ z3)hs(l3>`NwSTp`ZX)v&92@sco)o9SVB6-^(Q*5dcD?kC@7nJF*aF_`<)24Z4wpYip0)mtgzkT6;hvA( zT(0ESFPEn)Ii@GS@t`%)%Wah}>^rp8exR?r|5z7)ZDsW9Q*iO&Eq-kM?c#=c@6BG} kj`8W}+K)AY-Rz~hW~lBby{BW3UdzE#O~xmb$I+SPKUWG$(*OVf literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_activity_torrents.png b/lite/res/drawable-mdpi/ic_activity_torrents.png new file mode 100644 index 0000000000000000000000000000000000000000..ce606a7152cbfb3f5b19a2d6d75770baf82b3e66 GIT binary patch literal 4266 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 M07*qoM6N<$f~tA^n*aa+ literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/ic_empty_details.png b/lite/res/drawable-mdpi/ic_empty_details.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd58335ea5e6ccf91ed5ffdb8e09031f0368ed6 GIT binary patch literal 7258 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 Q0nK6XboFyt=akR{0B=hrvj6}9 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png b/lite/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2458ef6a2b49772c8b7b0f39200f028843a24c GIT binary patch literal 817 zcmV-11J3-3P)!1&^0008`Nkl}R)ceBswfdZf@&2*ho(nOXFkf5(y~8Ej987sRf# zv#Xg;Gg@i3->W;CI`N}R_e(V>7A$??QGZBd6R$F} z+3ZDt!B9HkV!sNgp9lBX^SOZdpg zI`k?dAYKs&g#jSzi8KZRA)z1!QZ59=Et6xebIu0Eo|CjV#eiK)fdq93EI?WkC#sN8FZl=v78Qd;fT3sPBJ?_%oJl2S*4Zg}kV7SwzB{C$xxUyd zU@(B79!=M6OVx3@POp)*0t{8kOIQF9CNCa!{yJ=Arg(y6%AB3%$&vou zoshBSaItCqWbziH%p+|Lx3G?3Y^qPrWZP?i(PtS*`>vF0qdhf;*me&vV!!sR!Bu~{ vVqxQLE~o{c{r_2NVBHF;R?Yp(XYG6h7{OE`D?p>a00000NkvXXu0mjfaXxZd literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png b/lite/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..19b2feb5142b1846071cdca6e4ca1f413418115c GIT binary patch literal 624 zcmV-$0+0QPP)+Mvg!|47cGp1r3H;GzM{tWb3KRL*R2pAU~VK4q02_|Jjiu2C{ z!G#jQ6jb(oztU_ruRPCnBlLeSQ52Oroz61Q3VXo4ObW5Ie~0#(-e2pd+}Q{^sU~!<5If4Tf=ZItNOFVdQ&MBb@09AV@0{{R3 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/progress_primary_transdroid.9.png b/lite/res/drawable-mdpi/progress_primary_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..27192ef1edb3a084e3f77e72dab4432db8317698 GIT binary patch literal 514 zcmV+d0{#7oP)5UuK}p0NXogcQDF#UhKa%mE@U!6M6CB+Wfg4vZcLh`d!+~hnG9s_-p0JsPFHK1@pQrOuX{cw`^)AgH@mw z_44~Fv?F`2mVd5PJ3Fp^kby?m={U-OuYjtHmT4`vnFkeDWx-_tJMf-u0X9a=10WVe zViOfHrHBx&JoDLyt^M;%@a5#=ff$WIhxihSA(y59g*AuH~R@Y6d|L)hLb{!v@;25U&N0~`1`IsgCw07*qoM6N<$ Ef*=s>PXGV_ literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/progress_secondary_transdroid.9.png b/lite/res/drawable-mdpi/progress_secondary_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..2b240eae7afbee9cba9837ade5ea258d30323ae3 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^uAVNAArj%qDGd$(17-<&88=8M zIPPHZQHGeoUE-ZksK0Za(oKy|PU2#LA1as_ YY`x@}|6lFC3p9|y)78&qol`;+08LLPLjV8( literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/spinner_ab_default_transdroid.9.png b/lite/res/drawable-mdpi/spinner_ab_default_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..9aeafee201a6f9567b34f5c45a9656136477d73c GIT binary patch literal 314 zcmV-A0mc4_P)R#fsQ0%e&73+@%z9IHT??i$f6qAbfeT-db3 zNsN;;5#@RAg<%*AAudUhv~N3OEu9Uh^O1rA6u4sU{c;ELdilP<`@GWjEK?5v_ zqXE{$Q2<-w-T+A43*aKY8{jIw8z7}j7-MJsFmNyv^3*l=EX&N>#`dTv%krc*kJE28 zO;e@C%^b4FP6P3uML=i40l^Mj@5Y?`by(ollD`4aE+8+)o5KsjGg^-T0000zSyC_}cb&6J#A{f(jCnxyNN%pe_ zaBMI_Tk@|7#48{X2W*c(n{;;ue0c+8;%55_e5^`*>kTj`-Vor;8z4tKNxdJy0&zcp z0`dBQCF1n}CB&-(N{Uwl{6oANKqqon6=uiCWS5hPt$o5ci# z=rO&?^efkWl*A<>(D0Z#fY3ysBLRkDf)|{+0A7R;AH)QoaP;_v6^aRd;VLOYf^@i$ zAR8_qFvI^8V8j4zG&#Owdit`Yhp~m7(15#(*JwqY87!@~q21tqh*7elF{r5}E)^ C;~q!= literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/tab_selected_transdroid.9.png b/lite/res/drawable-mdpi/tab_selected_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa38d487cdaf517875dde4bdbb277136ff3fd51 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^EI`b~!3HEJ|NhShq%=HT978ywlT#WR{s+vOD0qtT wVglzHCZ5%Ks*PJ)R-R2}&|ccfu<0;^l8YSkmNh4GfqED`UHx3vIVCg!0EIam00000 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png b/lite/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c9c6bd496b8ea1bc22a12c04ce50c53d2290af GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDNRoo#}JO_C)$`8cpi!{%kKGC0o26c>FVdQ&MBb@04U5ES^xk5 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png b/lite/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..2acd0bbe28e390d90ae0960abf26e2fa3a485f88 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDGg5-#}JO_VDb9?d2Su2rH*(bh^)Pt4`njxgN@xNA@xT{g literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png b/lite/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..abf5694bd8f585d659a168ac53c4a5cdb766b1c1 GIT binary patch literal 264 zcmV+j0r&oiP)d-=?8gYd+l9)$$=lR!bvAL~Pg4h(;g+t`-C~uGL744hm`n z0vp$ABt{1XH3ET+Yc&$1gMu1?z{a&2iP1qpjX+@IT8+f$prA$|uyL(MVsubYBM{iQ zRwFSwD5wz#Y+U;>vh8%5s1M5tyTv$^iMVY{_P2D3c>?;Etf?A O0000|oQIqFk> zysh7Znmwn@eV}ycR!v{zynT3)S*@W)W~HOPj7Bs95pcC2uyL(MVsubYBM{iQRwFSw zD5wz#Y+S367#$SU2n05+)kusE3Tgxb8`o+iMh68o0)dTdH4>wPf*OIq#rB00000NkvXXu0mjfr~qR7%-O`d^eW#`P}>7nxsU>ywX>n6mY1#rvlZcmcu#OoAWa00000 LNkvXXu0mjf*q>}* literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ab_transparent_transdroid.9.png b/lite/res/drawable-xhdpi/ab_transparent_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..24020e2351e5cc07b0484160dc0065762c04dcc9 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nETE1oWnAsNnZXC34{WFWw@lPRNl zl19TJjfP1Y&1^l2LXRwiN>-~#?Kj{4t><&`T%+tWvtF(F#V4OU$J%>Wdid4VQ-i)U z{(HvHFSNvWm5Gyvs-7qFo$PU&w8e9}8^_WVH)YRTOT3j^ zf{YeVRLQ-xRM1It=0%T5W-l*sESz#CL&bA;NoGrcSDMMBCBC~5#vM1h^iQi%A$F$a zw24y<%s&1+*kdzq`}z7!w@dflnZDdzE=8HI-tAdkS?$(m|6cRjOtxn(_Ibn&^dEz# LtDnm{r-UW|%k^ok literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/action_sort_by_size.png b/lite/res/drawable-xhdpi/action_sort_by_size.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2dff32b88940a77b17fb12c7a0cd33b339c164 GIT binary patch literal 1247 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=oxs!#Ho13AjlYyI|p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaLaz}{y`aR9TL84#CABECEH%ZgC_h&L>}jh^oNjS- z!)YE=ZwhX=7~s^a4|I$^C~A?S8YToxKOiPN;Q~4Eq@S7xOz%a&gspp0oQHvdG0@Y+ zF{I+wn;V8fha5zXeM}LY=_s?#;i;<5%e{@sy{+O0`lJh(`5%OCSpJEtkIiw)hqq_6 zH5587?(qJX|7^9<$&~t&X`ju`ezsXzycC?xP>2I*cQwjS>3lNWHg)5t4R0TK9_;j8 z`go!eyT#^>D(y@^!jn@wcZQiwTl;jC99CsImKaFNCj~^3(qQ;?30(n)0DcJX017)z9_PNPTw29g!~9X=g8PTbaHF)CU#LDccMZ0#U$o~4Tfyo((aN7Lf3n{6 z{?yh_BDdFnI5aQn8#lwjytS8k-p<^=PG!>VjI>3}5x4%#m;Ee~AjyK_Q6Q(`*VU*7 ZMg~TaQ`)O)t!IFwJzf1=);T3K0RXY#q__Y8 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_labels.png b/lite/res/drawable-xhdpi/ic_action_labels.png new file mode 100644 index 0000000000000000000000000000000000000000..8fdcd1a23ec26ede35350206e05903f36b97419f GIT binary patch literal 2169 zcmaJ@Yg7~07M=i#pj;FL6@0`Hup%TGOn`(WJQ6^ZK#cT)xEd3Z0b?-jb_Lc5SoM|cnb)=AljFR1BnDOk?e)`A%Fxt=z}Ntd4mKB$&W$+ z(eED&5=|jYq;QyF?_(i58YUTrDYBDguuPdO zlcO1%NH`G9;tNDlv*jIv#iB$=l`vl_fFhVQ48nmEiG-9;-w-0`L+~So5W+w(6eJTt zawsu`5gbMW{fHspG?pn7q)H$uJdG88#QM*OH8+Dqjznfc3eo3~Fiatnpx-4;5zVZH zG$Y@8tZ-&6zB6L+h#0)Nw0|r0vu+rq7_&hd_% zhhI5;Z*Z$iuG{|9M0I zmH2if{dvh$iBgtwV|&d{m;3Uye;dHT-dQ}_ptW33x8MNF5Wux)*A@gVzesvO8Xsrw zPU7|e#-aFt!MTI?Q&#dwgY?1H-qavVxlNDd+gWrJ-MY}?iF-umYKv`J@1UrSPe|Ml zo|S3d#XA!}?0RrLqe&NR*mo#W7p@D?eRsnY=FvdYF+A&!J{Xx;J^qwrc!Q-jFda(l zmsVyvF7IwKJx)t^+jqgK^Pc-a{oGOD%NDGC+_k>I&0*u|#49Dk9R<5r_57*z;1xGT zbHSb1tl>R7GNtyW#p;3_sMzWb!MMw_v}#q)sMbAi(!<%8V_hx!B@Wx_A8m`e4~y9XF?G?PKyvPt=cpIA=>9>o0YW z(9hrWi8XlyN#zl36k5uoJlBzB%R74uI`}06lglo)u&d5DGPp@=j@<;4<2A1a zURjEpBa1F482xuqyBu-xilF@&#j($4IX}k`HMQYoVx2z z+dUkZB{_T5fgsM`9}<*v?sW~DZi_nc=og^7KaWkU`9rd>amsMd^iEmP4 zI)*lK+Xq&3ey-q4zcyBHu!G4UW$9bB*?@9^NWoS<{=Ir{XUQHF|7>xRgiS3Zp8TxnmfOsPA&y7maL zxAK~U!%*I_1%Ade^J?96(S;f12Z2kGlb{+Umf~~Wn;0mo^)$)e~sR)?<%}!+~2D8?ws7Oq~%}Wg-0$?L$V9iw|n&{ zPItNv)x{{c!sSf7Y!q;lmJynYWgaV|th()~(Vf>E*n-Ka!UETa*$2Mu+Id|!;!F2J zIo7-MAG*6vARr-2Z*b^!~Tr;}DgJbb=7+=1Q)}jE@q4^8b SBPZYe4Mc=SF;9o^GXD!V;)iSi literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_new.png b/lite/res/drawable-xhdpi/ic_action_new.png new file mode 100644 index 0000000000000000000000000000000000000000..23b9a1c1857791d618ce961f019585acf47ed1c5 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=Yp{a|7i;J77lYyI|p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaT(7GEPQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$j9 z!D${;ZwgMgxVYlfs}FRHJ}7FDq8cUyOg|tdJmCU4@T8xb2Tbopz=Z9QHRk~X1Eaa8 zi(^Q|tv9!Qxegf!v_0$$aeO>+Pjj{Ty#t#&%nKghv#wC7|G@s3W%Gt0l?z)0Kk?Oc zi)nuKlsdgd>iL{0F`)bj1}}DNopmzix@~^e@3RJL!XnFzoEvtTX|sy^CY}h?tI7Py zaKcE4S#u9eJu>}kRr-^C=T>+9>B)~>oeO=2&+p+?Fi3E>pdO#jmsf{h^)Sw@nwUb}i8V z%C7wR$ZLlyN)pD*a+Cf|4880>&wa#)f(I4n0Oe1ucaK-UG2dP67+QSb6Mw<&;$U2b(L5E literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_pause.png b/lite/res/drawable-xhdpi/ic_action_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..333c1b24dc7dc167ef81dab9baeb01c0bb65399d GIT binary patch literal 1181 zcmaJ=YiQF@6wWM)4#kNG>JJI=Ik8D@*K8)Pn`_g#ikY)3SP`~m$?Y0u9!u_QHc(W2 zp#Bi_ht3~@A|gHpqR4#V3x6p7P{fVR2h54$6crH#74)WCr-C(*d(S;N-*?VE=gaQ8 z+7(j@XBQF#F(pnW}6Io@WWXcE<%DU^|INK~n2GbCfW+ydiJRy*46 z!g7M}&C?P|l$2HpimB7G7el+ch0z32Ug=u0(h3pT3|llKM18n&ogy_gM6Kl{R(z?yh>G8kmas`33P~L($zN@j^KusQ!PK$Zq+5M=ovzl031fMq~{Vaxo06}U2i1?1>M;cT{=65?X@XfAvTQE7xM zfnhS444o;VO}m8wJkK+1fC&WrIKuCA7)W;ghBG(EAVNp6H4AB`L3)gGv)PV96s~mS z3c58$YdE8A!VP0w*xI-hUE1i4F@gap;)swt@$jn(L*q zgoq7gWZDVS+>q;HUD`yZlQu0fQqR$Vlw?ISJWm!ONkYtUkZdS0CWa`?L2H^Sut7cw z%1RG#HLlRdb*$7zR14Xe#YGG*Aw!{>F-Vv7Q)o3uhLgt!;#AwQcHT z_R@luzm}@Je4|)3e=Xs>SOyovc%%Je)HxT{k7tev7azu?4-Kq$8w>k!dg%g!D3}@( zs}k<(k{{p9((%RUZL+M$X? zb*tuFY3 zJ+Ha=WaBH}<*mDpe*Iqg6--<{RG}1~yD*&^x__jnwEg0=t`qZa@LYP<{>!j;Xy9T0 nuH&B@m4>dt;=dTV-t}7wh(&Gm&B@2s411qq(OR)P+_dc%7VLY1 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_refresh.png b/lite/res/drawable-xhdpi/ic_action_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..a7fdc0dfcb1dc50bd0ebd2527d174398b8470797 GIT binary patch literal 3219 zcmb7`_dnZ<7sfv+wRer0mr^6OXKfODk07X8B~)#O4oYSf-JqIT>ZMa>ws z*Tt>TQ0wdd3E%U2J?H()IX|4|`Q^l!7->^euu%X2K&`8zVRlQk|3pS~+tH2T|J;Jy zN5|S904N#$6KG;F>=FPdjNPG76B9S@0B?UcZy#=5D3sgB&)e1gg$n?@nn#->VCFl_ z%7mp8h<+^cqrSHp6B)M|Bp%6_%n#-vr_+n&$(v&`?WEV#BxWDTjU`G!NDm6ns7a9a-Ho9{(#|5O5Zzr1a2QWNb8 z%4C%cm!|!BJOTi@$xOG`9$&q}(Ny7ZvWXZPdy(A^lA8xkPHWd2W92@#!L0;@jb96k z)v+NJNsyk``410>-JVkB{!NH?t)*3K0CIQct&V;E^F}l8L(|;c#`^lKUJu09amXt4 z8qsBswYqw79;S3jIQ`ka$`>wa7p_fw_Ool`#GsI4EQLJMX<;)-`?8Vp=8|*rL65Fe z6CBLAX3F53sF9U$ELr#<4w53&`*7ms+3K?J1(C|K3{dl21r(AjQex*!^jlwm4jzDA zB>=!ti+AS_K{6twTg1v(;LV}xm3Hn!0O_im;tK#zHTXnfLv^bCWB{O%8xF2fXFut@ zFN`JO=)AkoNqOlY8wug->4MNfD4roX{2YWT-a-VUM{7924q`vlIHj?sZqcbeG@@M= z-)NM5X#Y5p<#YJT%;^KlQxGMYZnPnOY< zFnb5%w$R}`QuezeAM-@3IazT4kbHX?-Ks6|F}&7P`3F@4w5ddnEmA9=^82#@iL4~% z-0bgu^=!%svUywI%iU<_lT@Jn;@Iu`q*6UE#6|nMAzvR0lczcle|=CvRo=%|V_8Ae z5_jr6_BD{0AzTwnE=wE;;dbOw*MS?rjb?R9xHF3Gi$cZ9Ny96Gjmgv{>H`AZ@ z+;@_ch=J<}^G-7)-4mk=iG}va@iD|fB?X#3+|m8|1vbGjp*7)U#=9e2nk}uv#+y1g z|IDM7RQ{td_oIQRb@Y1oy3{)RI?s_U1=>l?_sg02s-W4>b3N7#x((?K5|<1~b&G;5 zv&E7;7`;rA4Wu#;V^(b%Q*uxG?=1Pz2xeXV!pi)#Nj5hYH-dZhc0e=zVj7nb>bup% z@Q(I2YMbaJkcv8*DWX3XA;_A2pY%S0HSm6QhCvbQWISs>Ok7T4FJmi{Hq+Yz4#t3A zGbImEr0J#cr?G>@V5Mb6WlLq07RMIDu%yzb=Al(u7E#CVS@W=7>_o zl9)0?i8oC3OPKXl9Eo+eLANpVi)rpx`?c0SZc1m?x>v$H9@OR0e}~KT@P8ehd;JpJ zl5xe^60clVnkNsH(vz~PGduq1s!F<+;d}Nez=(WHuo!h5_HK#sP-s<%y-3=iNy6oc zM_D>59bT?eZd$Ir*Ct!FUyLql(`>Q62&Yl+*AsXmpp8hv-9>Mi&zUb4Qxr2BDl42; ziI#a3vgfsE1a^28A7tdTKSkykco#1PwQc?32o<}6U3vZ~KGmjzlhjf1k>IIt_mz5O ze7%)8#rpBTOrdt&YS2Q*G)L4*WOCEEQo)qgdo9`o_r51X)5`i8rP z2U%u@O+`XQiUx`X{i7qJ`J>aBGTF)!Gm=}`TiG+&%Z&~;uWW=dC75q6y0z;zMb-zH zR<9@n=Fs<7%B0jWb2R0gHk@Jp^?r;BmI_N*xK9VFp}i;RJ7Ng<7~R;c z)EegAuuzXX+B|zw8^MBT@{c% zapCIWws$Vhf?xA=B&sUlU4GZj?W-r`HmNhIC%vtFyU|(6<2LZmhe{s8Rt7E^=S~x4 z61F}4oz!vDF}^#DN+2pG$|_nl(I*zpHZFmZ2^?R5`Y&tz(MZ==%0@^S%U6r&$$(YL zM4v0o%QZ_ktM-YyT8~V@(Qw@t`W*72;3`?K7wyZJ`^Pb>=vB(K5S9$F0Xv_dJY3gF zR55d@D1)#m=hiz-3xq}NDpq1AxeU@==EhdJvdx2L4CLYqWHO7aI^NEwe|Dh9EO*mQk4 zT;UQ`d)@05-zdhFMmp$G_o3phwFm_UQnU@T5u5>&)*@W2TsubNhUC-Ba~_TEkJJs} zKgfML{Cu;|(8aKlf+>vFw-VumZ?;uDm#5bG2ML>ZAnt0^z9u6>^WszzHf!9 z3TxvJHuMO8+Bx*LvjOC>M`=N^5f!?(FtcxG3>ULrZgBh)jb>M2ihEbZh-X1Dy_pqU zc(uVE<2}@ox$v>Rw7jS3*_i8u>(1tqNRBN{dKqdHMdL+1H(yV^Y+1j5`dbq(h8h*b zw?tr|O$8lF-&$RY2XUi{s<1Dx6WAY^?7_rhgX7GZ*Z2W@Nb7Iuf2Q!Zt%NI;!FId_ z$ii^Sb;{*J_o9xVS`}BebC!PLX;*3F>AT-gG(mJl%1eWpY5Fn6IiUkFi?bAmfGU|r@mEQAB~{(9Rm3>fs0yU{$)Z)#R}=}@)4NN-m)iKhXg^6SSqJGI!v@{wciv8>B96uq&}rz<2_1$)okfL*2Q)Jfz1mQO8NRZUMk znht{78bVwNJM1}fxW$vUpkK^4(^EO}%8PBs!QO;k!s#;eVwj)66>hj?E>Pg0vemfN z{zPqGeGa-9Go@;Ky)b*Y@a8!-F!y+TL7PAl6)|?5e40cHy_=MoG#pJGy_fS?MP7bY z)$eNOvKTt{Y>YpLF`kDyLZxuf0RZPWx7-1Mzr_Jy*8u<&G5~vmSk!~mvw^Z(Zd-M04aI(>kd zkvTxk#xJF2XyfXSe4kZRhaIVIA1nj_kdv;4It<>uZ#9@6$xU}ph`#>g<;@HZG~=EQ zdD zc0>Gar)F|$Qix5mKC^6h=Zp|2@9-ec+e?JhCOUaQyT9t$)zfP;K)@K$wh~}4b{_hL z*n%5Si|}Au`L-FFyZzWX7-is~bCKfc`ZE79s`@W!A}^+Y-|uscxSzEIk?-RwL9mhd zL>F!k`K-*$ppN*W4CVRSN>0?Dt45!ls&mGrGqCGe6dV7!>zbl&dDu~0LGcj9C%JG* zjwG<%&UZ2VG19!a?9FF`G7tKHwY(~?SGEHE<%TYUODipR3H7w`nAZNz#PziTk0Pbsy(z@yh0KA0s`i@Q2@G{MjBNRhqwO&HJc!< literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_remove.png b/lite/res/drawable-xhdpi/ic_action_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..f391760ef134adb96dcce85abb2c5ab776f8e6bd GIT binary patch literal 1348 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=Qn~{aNsiT3ZlYyI|p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaSg)mpp`{ycy`aR9TL84#CABECEH%ZgC_h&L>}jh^ zoNlpn#qAb|-W05E0r|ty4X0jxpkwqwQHvDSFd<<20WskT7s!Dp{nR{QdM^Sd?B#VK zwhRo6+dN$yLn>~)nYG{Vuz|p_xtDr9Y}g(Z&X{o2E!^$jnl&PB*UFqlh1Xx=-J0LX z5}o-&XYSP%L8^~_ob&jpQyVnp;J)8?Rd;R^iVpWMvC(79@%=9ac;6W$w!hgU`x>zZ9zS^V{6gJua|t<&QJLRD>XQY zHM_w1h41cCAG249C%AqIJvT4Xmv|;R_xq-{$)?AX4zIdmePH{E{~GCs>YnsR&D^2! zQ#8Qv3|Gmz^9$0{Rxq85WY3UT^{?ZpUQ3Zw&c}?EAx)M%=G8m1rXH%5G3eamsz2dT z$J6wyOC(=CnvnTKclW{l7HM*ougiW+Xznk1f6wZZ>NnMkLr(=hh-akT<(u!c_4eFLR-Jp&{_dM#I_LIWuj@(P tw;u2dG5>dMv-cEaU=%<_JcWO_3>bt2co&(3gwFt#Yo4xtF6*2UngBR*-eUj& literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_resume.png b/lite/res/drawable-xhdpi/ic_action_resume.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6b55884c99dbf2bbe8c7c7ae1598051152a2c0 GIT binary patch literal 1750 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 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_search.png b/lite/res/drawable-xhdpi/ic_action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..3549f84dd8f5e38665849b46e252bc34f29be027 GIT binary patch literal 2127 zcmaJ?3p8749=`}>v|V&cXT7fIiVk^PBSY|2Yr&=v7ow6Rs?3P)tYO9UbY&YptXLrxq`<;8g@B5$M@ArS6bB_lH z?%ndy?>_cC6SB(G6&(~SQ-pY&KIiL0O0N^7qU1>umoho2|NJ>z0}@`26fXS$!Y;UEMb9iezHJJmQ&F0bjj+o#*9aU z?;w&S3i{WeA{oJ;HzI;TB94IN5L_V8#Tf@V6G+Y^N6?7?5%7=`p5Tgw2xOuwnE-+B zAGF$=h#OB1rTM=1rM^+ni4uvBjK|AlGMwx)93o1;nrZR=!^>O;c6UJUq#;$DF zaAB#T;l97>E*sSPM#W}D*%&vC9?NAupxYHKzlA!#x5!R$$}KEz`?K}h?B51n479y{ zQ?w+-T-{f_$ZXze2L9K&)Yu$QW7O|sondWutk)Q_JN)t9M!T--)21nHt$r5=vLfUe z#a~sbymPXRm$zn0t^*N@y}d^w!HQdfF;iuh84+$H+Z4+ka__aF6WZ>MRwfDAoU*_4 zKAt=6rl=k>E5ha}R?E)6T2N6Nf^OP-%$aH>Bc8h!4HjG5*0h$}RLuF0wJIdU zjbsxQA=8r?J*La4uKG`NBKyje7GpNe$A4*b?~}^!@0p@BU-D}9Y0|DSGj9_&&vy2n zQeDat7d%QfdZnZfB$RpBz3j0+qI>gE4|*|g|5_uvwMYuieyxZbW3|Ym*9t0tEK}11 zgB`JFNiGkc^uC#|FE~5P={}HhaMbF44G_^7>)*O~(scZ=-NEp+E*C;j>-o*bCxDi3 zXOy%zwU#lt!zkoitfTlMMv&ukM11wB<9Ly8m4A7rd4=8VmEuTqCE#F>RMNjFx!hDS z*^3*Aj}bPwVf3_cag!0d1gTf#oDN&Pd_dVdv;*a))ZL!>%mq7^3xp5xV>fH7@?30Q zVZ_0I3ioUK1=0^Dmsa~f=zf0w_-@SpBesVoWKv#w7qz2*hgn81*v0aQExoe8xC}Ud zTF)@Kr5w^Hd|ny~nn#~01FEkQYo=Zk?|RW2wR1u*{x~g|l2$HI8$O*Sc9iaR|5^LT z7z@^tH7CEpE{iyR=lRT`f)Gq&W#>w?$%+474im${sA7G49aR&=5h)*xuKt( zs=lY~A0X2EGC2yz*(%&NQ`6m4sFRdnpWY(BuzLy9{bqK?^RhtY*?v?Rb8IX~Z+jfI z;;~&!>dGdE5QDf>2lR{f*G!oe^^i@6bj6^de z|760+^ec-hFSDPm&usrXosE~R+77^4Qp$9A=Gi&x>XqsJg^B&;MqPy~i!R@{7aI(* zPp*h%eOKpxS5Nuohv%4z8e7tNq)^&ziI^HKVDgG4t07*+q|$&B9LYtwE& zuX8zyz5BF4SJBd78KhXt*r~-u9TxnaihZE<@~dg zf?Taq%d**36IX-_-{`-ie?JGKIv|#fpz>=msy(frIe0zoOg8uRrTKhIv%w?7`7Tcyl|isZ*ecw#u<}mcLbp((0&jng0SYa%AcN literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_start.png b/lite/res/drawable-xhdpi/ic_action_start.png new file mode 100644 index 0000000000000000000000000000000000000000..51124993df109972aa504c796b17e788a3ed0efd GIT binary patch literal 1620 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=8sgs4Ho0GGtlc9m3p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaNUxcZfrXQW5l+3J#E@G6wAm%KD6=dz#jPkmR{`v4 zt4!Q(al~mJRBsA4w?O>igj26R&@uX;s6~oum=G}ifSB-v3*^9)erg^ty%zx!_J7lB zJq!#?$2?seLn>~)neFc(k|=R3y~IRxAy0_LE)F>!F0O^mac8{6Tbo`8$hrvHlxTc; zbd;}@OFt>C-t=oiy@J4QmaD4#K@|axUzVx4$wejIUVHb>+scoU5iEzN6_%&nd*3X7 zT2Aa)^|!zGzE|F#x$*MLElVp!BTh{hJiw8_V!$N9*u&t~@IUIfLudp`!KNR+?5+~b zn-ij=S*A1>KaktO>z5&{!1`!`Kn%;{1;R2Hr?IGhS^U6Y2d7-KSVHz{rgZ|P5BMb5 z(htvJ`5skRXV!E%LCS_Xe#=h=!9^l5sY^4MQ*ZTLkQZQfcQmiynq_L`DELU+g7w!y zh2mB%?K#gjPDr_VBl)D*C6Wqc0;w!k+|(f_IFM!UHk2{jYG>1&uHD+qZ&I{_%fwCR5V?9cO2amDSu7o z!}_TS!Kx=e@>CrDvq9_|$BkN@q&>$@C$N-M=B{ow5cUb|@G6-5xt%*Mwt7O_B2KPA z?srX$)BH`DQn(aPezKXpCaxf6GQ-T{PV4?l%}BUi8`RCPP`~;2&&OU8tdm4iKW$m) z+K^P$^8JD0jO#*-NB7)Q{m^kX*z2%h!QoorJxM!`n>=CQ{2Y|`?WtpA;_>4T^|IM) z80K#cX;jLqyLn4;rMK{xXlKbSH=pD*UeBpflB#Jq%cB0R?9{2l9y;@xEO@^AuX%19 zHD|$`V#(6An`TZdmb;qJdbgl|L*+!q7v;Qr8+I3FCfY|>e`lPw#l)Ge`{PEb+uj5(S zW_r*6*i}r_{yi(7k;~{%Y|U?hi0w?fHVHb!++HI($vyS0&ONEg&s(0}`)97ra@uVD nSgTe~DWM4ftV38} literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_action_stop.png b/lite/res/drawable-xhdpi/ic_action_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5eda25c7c059489d86e8204ab96c9dc026df9f GIT binary patch literal 1114 zcmaJ=OK1~87~U9Kq*4?_P!H|86}&Y2Nb~3}N!uiwwox~fG-^bIZgwZllJ29s6SK)t zQ1GB0dXPeWAhn2xUWIxP#Dhu?R&-#)rPeNQ(!yZU5Tx9*#J}uSbEWvP~&o4jw^$UnLvcP znb!4*dKE|VI@GPaZs4&|Kgr;NC@GqwsUie{OK27pH3=m6Fo8HoMUgq04McllzFvQn zp&2I5us(*3`=YVPpq~l)qD&pj>rzn#8mwdGZ7kaq>kNZxAkRE7l}kV#G<6lPCe10$ zV+l0nt6}Blu>_l9DHIIlw01|U>nb!qj@TGnbZCq|(9pb_Xt4L3S!qF!Vllx-()P;d zl}Ot&`asKTzI%0OEX>4Tx0C?J+Q)g6D=@vcr-tj1^HV42lZa2jn55j)S9!ipu-pd!uXCy!YnK{> z2n?1;Gf_2w45>mM5#WQz#Kz&|EGkvK~TfD`~gdX7S-06<0ofSs5oQvjd@0AR~wV&ec% zEdXFAf9BHwfSvf6djSAjlpz%XppgI|6J>}*0BAb^tj|`8MF3bZ02F3R#5n-iEdVe{ zS7t~6u(trf&JYW-00;~KFj0twDF6g}0AR=?BX|IWnE(_<@>e|ZE3OddDgXd@nX){& zBsoQaTL>+22Uk}v9w^R97b_GtVFF>AKrX_0nHe&HG!NkO%m4tOkrff(gY*4(&JM25 z&Nhy=4qq+mzXtyzVq)X|<DpKGaQJ>aJVl|9x!Kv}EM4F8AGNmGkLXs)P zCDQ+7;@>R$13uq10I+I40eg`xs9j?N_Dd%aSaiVR_W%I$yKlkNCzL=651DUOSSq$Ed=-((3YAKgCY2j1FI1_jrmEhm z3sv(~%T$l4UQ>OpMpZLYTc&xiMv2YpRx)mRPGut5K^*>%BIv?Wdil zy+ylO`+*KY$4Vz$Cr4+G&IO(4Q`uA9rwXSQO+7mGt}d!;r5mBUM0dY#r|y`ZzFvTy zOmC;&dA;ZQ9DOhSRQ+xGr}ak+SO&8UBnI0I&KNw!HF0k|9WTe*@liuv!$3o&VU=N* z;e?U7(LAHoMvX=fjA_PP<0Rv4#%;!P6gpNq-kQ#w?mvCS^p@!_XIRe=&)75LwiC-K#A%&Vo6|>U7iYP1 zgY$@siA#dZE|)$on;XX6$i3uBboFsv;d;{botv|p!tJQrukJSPY3_&IpUgC$DV|v~ zbI`-cL*P;6(LW2Hl`w1HtbR{JPl0E(=OZs;FOgTR*RZ#xcdGYc?-xGyK60PqKI1$$ z-ZI`wBrnsy*W_HW0Wrec-#cqqYFCLW#$!oKa ztOZ#u3bsO~=u}!L*D43HXJuDrzs-rtIhL!QE6wf9v&!3$H=OUE|LqdO65*1zrG`sa zEge|qy{u|EvOIBl+X~|q1uKSD2CO`|inc0k)laMKSC_7Sy(W51Yk^+D%7VeQ0c-0E zRSM;Wee2xU?Ojh;FInHUVfu!h8$K0@imnvf7nc=(*eKk1(e4|2y!JHg)!SRV_x(P}zS~s+RZZ1q)n)rh`?L2yu8FGY z_?G)^U9C=SaqY(g(gXbmBM!FLxzyDi(mhmCkJc;eM-ImyzW$x>cP$Mz4ONYt#^NJz zM0w=t_X*$k9t}F$c8q(h;Rn+nb{%IOFKR-X@|s4QQ=0o*Vq3aT%s$c9>fU<%N829{ zoHRUHc}nwC$!Xf@g42^{^3RN&m7RTlF8SPG+oHC6=VQ*_Y7cMkx)5~X(nbG^=R3SR z&Rp`ibn>#>OB6F(@)2{oV%K?xm;_x?s~noduI3P8=g1L-SoYA z@fQEq)t)&$-M#aAZ}-Lb_1_lVesU-M&da;mcPH+xyidGe^g!)F*+boj)jwPQ+}Q8j ze`>&Yp!3n(NB0JWgU|kv^^Xrj1&^7J%Z3ex>z+71IXU7#a{cN2r$f(V&nBK1{-XZN zt``^}my^G3e5L*B!0Q>W+s4Ai9=^$VGcjKDR{QP2cieX!@1x%j zPvm?ce<=TG`LXp=(5L&88IzO$1Ou4!{O>iCf&c&j24YJ`L;(K){{a7>y{D4^000Sa zNLh0L01FcU01FcV0GgZ_00007bV*G`2i*c24-yHL*s0|J01QM)L_t(|+U=crkW|$b z#(!sMnweo0TtEY&q7pz6mkJCjBMu@;!~%^=L}R$4?8_b3V? z5fo(^wFx+=K@kL0K-mHc0z6;?#dO-&-Lt&cGsE;()qix~*YDo*o%ilN=iYPf zg)FkjqJctEvoz&>CH1Y#J+eqm-eZ#TlMyRvk^3}Da!tOZ$FfY;j{Gy^;hrSrS4ygI zpDUAGbC0{n8CgdCpWrqr%3sj`a79AdL6Vlll`oNWP{K7=#Ff90qMkNQvYV3BP0|WU zeSFGVN!k)eV40-hapl+Pr?@Vze7O71er%D{%BP+_t_|Iqq5?)Za&}0%KA~)gq}>Sw zZs{TFG@>ag;Kl@!?vs?~${tQa@E4Nir%=Frca0w& zcK6P6b;aYx1Cihsk~*X)f60fW8In$sv_QdQfxGt%pR$)yw6lYx7L8E>QAr<58ZRm8 zQ@$_>QQt`_4M72=?%sY_n56yVoea^&`WCE->*q&H%9WJk%66&YV3%u?xi*fD8z0s* z=5A=~hWA6MkPGCPx;s0^R`z`V@T&bZlVHOR_e-Yi4JMRcTHJ zgz`hj2Kd5utf35nAX3LC+<<;S8{ktjOKj|c;9)lNk-H;s60j3kU}mb9H^5cg510bH zFKMpp{1su}EocZs7W6W$L3R(Y4_FHv*+j@+3k;By3*@^&x&k=VeQq+dF9UxA zBrSH8Wsw|9%&d18;y0VTk4V40b%saz#@%=e zy?UO2B+N1*l7O3mN0LojTQ$0$S-?4&XzinqJ;>|R!<|;TdEBiGJwIdi!)!Af9K;x~ z0ys9rhL%6{=mX8)c=Pp)u=1zd?p!(O?7_!|T+K=|J1!_k>_T8$NUtcsxJ;1`aPRoL zKLef(v5IYuvtT@7Gg}Va4pau*Py-$|vk93T72Oyx8u&1T+gAd&JI?B^07>m7oeFdS zN&{}}GN;)3!i9KCi-B6tKnF>uN@`zg1xPwq(v!eUyoKq%1nhW~19zF(-uhzSMRAOe z>k5NFzT@fxV5X!eC7oL>1-N*~TO@4-rUPSu(+DTLrn%!Z=ITq{1)14GU@$N%#0Gs{(`nm~ zabL*yp9Ktd+@>D`%xooasq6p4z~34W`IuP+@LE{TJ#eYxwEBavnQb?-A$UPo6#+Nu z6&fC%3HW{$z?)_^#LTwW+6*1nlR$?zl^dNE#oY6<++yfS_7c zRaLca+47|og+&EFT2`^*lFCf?I)z0Ak$CfS!^RCd;_xF@<4v^(feR$f28Ns24>g(# za&bNvICnkJ$@DdASI-+WcJ!L^^0GY%&Pyf}KBFgwPd@ z0;c=L5k-8+|1~fc=pTmUhaP&^2B|6+7+H_q%~8N_|8M@FvT|;#R;_l2P*()_2VV5} zU(M{LRF2riz>8s#50Iaizqx0R6D|kdX+Zt|d()@BJv1jLXLpEo^aoya94B?eUIj(~ zD?@C^!H+!ncn&ZKc%cE1|6;7TWT4|BFT{FQ0wWy9DIKw?c-bGf;)P%bjT|@d%5?)z z)Fb)-0FLwrM2my!t{C)>;El?HqfD2p}D=tYKa0dlk z&z)||o#yE@K9^zawXlC$}|KnBDhJwMZm>=NUlvZ zA?t`;K;LvB9EC*%-GO(3PBnD0hQ*3Ywx^Ko0=%&DpoxFVDgSLVE3dT~>fVZSGnqZv?h3*aUbu1;_ffw_1a0cZW>^Q9X7~pL5X?Phj?a4f*I)`jVVlY$On2?Vb z;&OxEfa_#92e>6ePkkb`IpbwmvPrpA3TOr#=FHAKyx`p9oFHACSsHfqTm{|~@f2W! znN@2)3TNS51q^p>4jbjp>|BQzU9ke#3hZ@e>83>czeZM&kAUX`uM+MGk{`ap%g$U1 zY{J{QsvYoipu2l8F0Y3-b}w+Tna!x_A8V7S9R(&+PkF)(7}J1XCF?GOR6sUUK858| z(@go=WR*XfDfMwJ};&vm$ax<&;%34i!%<6%civJ$) zANSu6@p7!nfTw}pO@!pdz%_UiZ>@k|IFtEjKxauks+**j-7~KC2xQN=ptg3ovR0w?3YOu3lwa?CP`nNF5O^)tO|G|#U*72fC9>r$R0>EMc6wG9tc|*hblwZ3OFj^`$pjJgcAr= zSG03&+n7d%#)G(X#MVmsP2ABYNZQ_jjSQMid&NAI$S?pwgF&6H3GWq=pm>0oSFA)4ASMHXW~Vc#19|X(@raq}7Vz;M zVEo2^cLsoF-(`4%0R3cYd{ABjK!s}&E(KT%0u>WlkZX1>n5_<3U~Sq7CL9H!rEhktyD&>P!k=$bbvn6 zJ7+{~ZB`1#ad|>!JYEwxlT0zzZqE#2&H!%Azn7x`ke7fD``XKAk8zBu@p0bR1`MNj zhaHet8dKA)mz{}nCournaP^ydVPUHyfeJ#P_AlS*PvEUTq2_(Pjk2u86srgF4wkep zo&H-J>HPSn#l@ZN?LP{=68a{?+P*JV-A0|-&!6x8gr07%|F&<^1#lV$$imSx6Hhk@&Wce)`pXbDiZ8 zEV9l6RNIPxyc6D)7@C1^6yIR!xOQ&d0>DL!W7jMr5*TV7v@zlSdMf%Xn@0~oE#(uP z0pODq9jnH0o#+4(07&HpFjb3_UUd<%bVA6w5LUWSpNx5fCFpv)C9ot=%%NmojNeuS zN-&0wRg*Irv(1W;b9bs*hbB2;uy$+y#t?SGd@w=E>0)dRK!z6|M8Y+pUJ3`9M(WVU zA`xbU+);PQ!Q({HQ4NLTsnRGW@W^qfMQTuK%8_3Pe}UrR+H9i69Udn@x)Yff-d%#qghE_S=Yx*&AGs1L zGCFSTC1gHiaIk9k8=9mN#a|4~*!R6erkosMI&v(u^Eh$1Y*^mmlD&L%I1!SZZ<^xa zVam$g=CJil_+tniSC$ms74~A@KZ})6-ZIf%ROUCR{ZtJr!R7v%$v+lEAg@?h z`8{QZ#G26h*5>EFYcuw03Wajor1td4f$Vb_Mnnq2BzrO30X<(g&LACJ^Y)vZbeOTx;mN*pyrfB5M>M?iFYKJ=(a{!q=UG1_YF zr$RL&uJd4_wnHxu{Tjg2%TP16=;OxJlKxEI5+z(#n$IuErNE_Kr*@faDT=t2?tJ&n zRT+7Yu{iD0FLDj<^zG(b(jx8;O&k^mc4et)sXFCy<*MbfM{T@S$Hm!2ZPG2ej{z9s z0}5{p-pE?TjU#05sV}Op7NZmsCq@mRzM2}y$P)AeGuui5jyOMssrLv_MySPa? zNx3{{-m0hiykV%Jw2`=a=MQALs=>a&*Tl+{(5kVos^=uBEy=gpH|ALw5j|`Xqnuoi z+|T9L7d!zifwj!>ZzrO@eOIXmY*soGSQCG^wi<9p-uBvLt7px~S`k_`xddH?M@1+G zjl9E7r3YDoBLc(&^x+=wynLuTVnqd(EpBQTkHw?& zn#A$N;{q!Kce*O6tq1?bS5n{ZrH?0!+hBxz^xL1GL^RnoiR$q~dlM2Cq8%z4>lCg- zGR2X`<36<_>9Q{MAeAb$mSx4E!vFJ~0uPf&8LO?(5??cSvuHo7rS9mQPPUHxXGJo8 zR;DUmhtKWnPsf*Go7tPFTi%4}Y=eeQp84b5S0Tj&rK~tC0;ysj!j<1ApNV5Jl@LVJ zU*Nja$D(+4lXqLuuubt!h5wN>V4_gIkYiHvO8l45%Hv7b$5qI((-i!sG`{r%`iIpl zfgFNNH!6EhVSzS|pu~iDXNfXurKAR{L#tg&w~-2qklL3%hp0w2iWI~lySn%a1l@Ni z4H8BB8hVTiOo+8s7TT5_V-dsrspUD$W5=U)!^`n}-%fL1k8!$jHWC{OLlw2(k?ZWX zRoL>^3ORc&qio?LFo$YEDujMVHZa-GsgxgUr&am2F?cE21$^on4(zH2*&U&3qU?nD z9<3}K8>;BA>8{tCJcMSGir_~?R^crZrs4blVO;UpAq{gJ?#Nh4{#9Du+hjgrIc<5c zyY?1DRGF~;SVpa#jNf)1hItro>Y<70xN8b36y zG#)f~Po`JvO&0DPrcOw`TW`4k%`NM<-ad;AwJ&ReG?nHo=PVxOAM0*Kt0Kw{?ouD^ z4J(!HosS2=)8J=BT8xH;rrA02X<-euxOwIyS&RY7_LuBa_jl;L=$bL#`ZsBvq&&9| zZjsk-DbNL$+@ifJHV|hh-N>!T*=!{;FEVAa)H5ITP4$~qMn$IP57)e&WS1#1zi|uc zdMaFM4B0Fl1kNN`T}(u0r)2y3vEHv3FMn_F-ZL9tx5ackZN_rln3jHx+7oOQ95=Z5 z?RrtWyo0O#TRZcofRX*7>!Hv~(u~SL%eR)yswM-wrW3EWdT-0y1JWG6@ztv~&vSy; z`MDf^;nlWFFUQ-y+v|0LRlhH9p2tU87Tw>RRJN+L8eNGUi!Vy9hRuoUzpVT@UGcZ= zbkDn-T9Lhlgal2zBwWW~N+QH%#EpcahaTm;7vbmM6#epi@Kh{0VLri-L-_LjWu%Ib zfX(l2?r33rDt#(H?IJCy!``Rx`LOed_~&wecRxk@kOvpXrz@?;<1Y6Vck~Saz*8N=~d2s-8;Lt#w;3d2S_8eouCDhR6^si{&4#N1T(3sV-|%<#_b=+;Yyc_r7bs!l zso~5lJQLHmlG4iYCj)i;m`If3qRkH9Q<5hT8*@BF46pb=6F=j1VH)0H^=Rb4-L}_% zo(ndCp&&i&dAKf3NHRZWKJCy(fVpKmJ<< z^}W4PWnyy4N^J3cB^l0+MHSUPam^doOp?7(O}hN*xZY88z-5?h<9b+a82}OE7Eh$p z(A55Z+K;bMhIIE3+Wbw_d++6Ia+)CP(}#A0E54nb*w(7739jtJb`60k_bn9IhD?lc zBcbO}k=d`($xGN9qC2b|kCfsIN5xh>sqG44R$1Ab)G0k0_Il0);-@IDcsdy_SP5iW zth6qNEj4GFZ7$FhP;moF)~*Xy_R>FB|7m_^xR1BzcWkifFsRM=49RmnaB81$JGOM3 zXQ9>4z$Jl}mQ4lN& zMJA@~yOC?=lBx{`dJ-|@Xw=yzTc;xjO0pe`=EC7by8Py5PTD`u*Dso752LVRQ3F$* z%3qiM-{DvJPt<(i}4w3Ay#)mZ12fq&I%ZnQH&S&*F zrsr0xY`ren&E$$_%7WMDRxz}F-14sg(*{3ji;xt=L8xrSFVF%mbEBRH zkPb-?ImNjJI79nFEC^6SRKQpXKif}2XPHf|R*47-xZ${__NxX`%7s~wNT7aXu?GHg z%joinScW=*EF%WJYE-Zf(QaFH;^QgF(ZVC9)`mOz*Q-ey&{7(($yQC>l0_0b7co^M z24++v*d-{X>ec~n;jm!wAb1i$qUHu9!Wr?#xQ(sc0g(k-8Tu=nEpmq5vlI)@0Nm!x4cT>dltp&3>oj#lhW*_uG^qsIL+h582&otTa2pc9=amqsmHP@`3k$j;)V*PXBirA<|PVsOhP9 z!e%j^X?4i}fD-{<5YK)yYtA9Fezt9yvjFaadB2q(Z#(Y5+NYbq9Q29YCgF6fwhY+I z<7pb};s&Gpw|mD@4V1={8}diPd|q5)2LQGYZjZT*!n#=ZSUC~wIP&7vOBH4AMHF*V z`RqP|PA-bH?Z3ZdU`q{x{GdeOv&L&e%)rBVH%HVPN6^F!_JXvVfM9D)&w5Jx`?6lwmJPj!@V1xQE0 zYIuPo1v-gAG#`%~YjyZSK%--whz%sP5MoNCF+R40%ozzO4IMiJvpiAoGD> zn9QQN{>par?{iCByhR4MX%8#IQ0zT-);)hs8hf9b$0~Z~0ZW*VQ1mW*%RL)-6pxoHp3l5T0gUvpXoD9AN){x~D8GXn(08swtn{4m z84=HX)tpM%fOQ}sB&ca=8Hm(K&?O(C2&^OSJNY~?W&x}}&j{XwouD35qNT%x)Vi(n0c&+bac|urL{&DJG&v_WXMhxG}BOQR(kK7LAcw9qsK^ z=DDZrSqCj^s6RVW@T(@JuK!5=xM%6S^=}&x7j1YLg>bXh8TotVkJR%RxsUKXH$`pvURg48^e4r(#-3hR-D4W_*vh9?fDd{YV1&iP0Age;D4{lCqA#SFmjjMFpXZfFW| z6^IegerI=vc1~%JEM2^!i_x+g8WW>L(2rciAd!wfao~ly+OReT&wrex^tA1fme<~e z@N=T4n-Lo7y6UZ8!k3eYor<8;8GZi!arg0DltDKG&wreuy0(?UN0+FScom)M!V{#9 zOC6cJZ4Os6_AdIBgWk16^ujaW6-{jW9E#k2CuLH=!S=6?v=YB(d>yBfp6t~OCD&@V z#IirCG8j>ZMFtj1QI z00PZR3e7Mf2v6@)reOA9-&RuF9dK(|J@a0^!f!)=abxrGi^EbhDrS&CnsCxBr!WkF zW#Y6eF0W^bUk`dz@;KdG*rOl(WoQyuM8Ja#Uf8MaoYxCA%G411EqR~p9|)-$E4nQ ztwXU)*BnavN=R$yX-1nz>HVZ3Vz|as(>{ulPm$<<&-!WDywR0Ih<&-&13CC9W`9s? z)e}+);bOai(9of}VqLwjZ%Y;vUFNa^y7Q5=yRc1v-0>K=77aOc`r;x{XA^9_tN#4F zh|Zn~^PnLW>M`wawhiR($uj$9auHz||067j2YZYci(*odO|PACi(*2#;CtnybV93& zi&*+@LKZi%5^6cx>dj{^qaMMP^o-U9eM51HItA^Gsm#Eq z-(&^6iF>>x!TYuU)da#|LQEPq9lG>=n}Hh+!Z@ZTmdV+ua}~JJ%dgsn~rw3sVh@1GCbd#f5NlWtGmwr$PCK>FcGJe zpTbth)w<=z41N=ep%;3v+#L=J%rEfby*_tdiuao8@9%%!8sdA?_j+qZbpKqCU-Vf9 zhG1dfRL5v}_W4uuSCGPeHP*Z7I_5TEk1MwI8F-A|*O~R)jW&t%vRmsqXkTS-tj1T z&QrC@@?3csfRXEP^qHFrfZ^{42Lo)Hc)KH8?s6 zYHboWT`%ZG5k#(kOU^`gl1%1T>XbOoYUE+U$DP!BDr{(Njb|{SaTW`ej_~Zu%+2KKsi&~+lti3o?@_;<*6tY zhV7IHt_a>`VdKnninSRF4ooZ~=xh`(qc4S9r(V zLLe->c1MZeJw=<-lrGlutYds`T>k5L+r39Pf%acELLNu4hx3ZLiJE_~k`l%38ojcj zNf>1RRe~3lI&WS*>fy4864qsyjzjuJR{i<*5E}z1YaYGojfb)ug4G}#eOioY9 zm1{+Vq%=X3AV=h7)U$^1O^%M8gQ9m>L+@|56@K&Fh zeTBJYcoI%t)sZKw-^Q;U-8$Uo!H)-cX;ww+&^cKGaZFKKg^(BS^;<+oN(kK|N7n0hakH& zs4%Vz^O8Eh-6rKt|GRw=5)#9TGar2$c?ta%LRc``<$)5!k)oe?&8J3cs7$1ZQE&w; zBEUfP-2{8UOYzS$J+t#hkCoq^du$cvDGYhCwE6Ocd2`DwvjYBYi_6QBuQPnj>wCM| zB0iVT*`j@~|9C#N5lw5{k*9&Hm+dPwV(zX6@L*WO&P`a!wy3Tpo2P&}jn%L_=+sd% z)#6Ijw{qEct(7d4PTu2e)gGAq@bs=y>Fi$ENh`UIlLywpP#ru;2WE5^;M6`x(A%)F z7vP0-lT!W#sC zbAy8vMg!xHU)vVi935#g2{-vcAJvkI{0#&FB<5)naW&LKKW00p&!Qxiv z&#|O~I4v!$YGX~#7iS!7aGD=sA;{;k$55w|KqhJ&7RKYNMF(9E5}$SWqW4n}ew_bH z1I_rd%|tK#`o*jI1nDAJ^{CK7)ziyDTLn^4i&PD?-Jz-y3M5?pzu%%6cU5L>u8vByb4g7h)wFCu{h(!&I&F6-vAb6~BL!)VLoG3xqEU4@-W;FZ1CNO5?j*X-G zADbElGKEh@cM&C|dMxX{FT%qB4jPp9RqCz=z_re!f=sS#hK}`D7D!#ObcXH{Gr<8A1PFHdp}HW^=i))qVN7#YuhdN!JX!#h|t{&!9TYX zi#PpAa&%`;3k%Y(WYTS*+|4)9!s6(8Z8H;$bkX9f=&-%wghMv_r~%$@B{PP{>CYQ9 zgRx@Je@!rTQ+2(6;gE;;NB2)s~&cHwk(hCUu>ZLMP2%Zt+uv<^wC{D0h?%*J)0{Nb^0pHpT%W@Bi} zZ=428E-@H}JUAX4(4wYx0{boV8OxIRzxcAXv5dsiAxBMFjLLrh6KPLNv2M|u#HFie z&^5h@0(5RLN=g^vj#2QDtX^m64Ab+@Wg?;fg{#f}?)57%6j9csPQM1v(8N5cHDbUW zJMPpJCj9`Df8D4voO(ZY3 zokd|fVo61XSlvJjEP7>Tl2)^KNP#DVhR&%N27;pXOmj}U$5}T8TQbgrOoLlM$k;?M zksGE2!E|JpFvR#Z6XlM9pj#&ogqME7!uEMEq{pUUzZ>Tk7Y_@jI~(cO0bqFbC`v0F~Ww0&|o>aX%9jN(TJqpJ`4O>tl&y~3T zA}@o3LhMO^dwc6qB|{@AeFcdi_1rw4@}vmjGq*ejmk(kzv+%^n{lA)8HG5<{Z20e} zicSI}Q**e`^7hye3Gkrm-4;x8+hKTu=ea}2RHK#j;^&L#lMrV0fl~>+k7=B@-XAl6ZoI@F@tzdc- zuz|ygBVH%ynrzg^*ERT!dud~#JdX@}*iN1YX zEwC~rteP7{BIaCM+nRc5H6W_Id7O2t``E8XGztTpscF9i^DRAX5Xza4GLg8Kx!Qd% zDYhuze0}R80iH~WxgJ}2c$`4wAdJXarqs+e>^*y&WGoV~;rlLpZ3F4Rj4?G6E?R;g z_wH|!!vjws^1OrfWAqsAXs(TgsZspo#$~@qVd<5Z*VN^NTwP^F4CN5~ z`X99{R=z`h!QDw2m%a^+jxuMp{)|64-*5vx{3L&BSjP5dgn)V&t+%`Q8wQUw4fN70A8fL7i3vItMhy?1HL569%e;s~!w7t~a zcIcm_o(da#;85Y@`DQNV`rFUPve(Kg!>j_dHj0fX6W30Zzp?~D0)gr#pFdmkS*Iuz z)>Wm5j&fT{)Olt^4lIA0v65YnF>z!|n6bi*pfk9x|E=Nn)=t~(LS3%TrX?muN3|WA zL<|f?&85`;+gx867MuyUcQE|DbmEj^`q_o~G}Y6^h54wyP8c;G6z>A>ohoLQrBCE_ zt?Z2Ay9UjplaFj+m;AX#o!SR~!Gi}=h7n6Iu*h9 zmksI2pE;lTgufxM*9q#=Mf-l6y&9~Qq6vWAV35Uf0*`NScDM?h&aabTN-A}V!Vb@~ z97+&8w452fpsX2(&%tQyYL$=g_sJ&>52oty)u)|WUmhu|*{%@?C)A~r#t!?dpNr{7uM^1c@?~vFt@o8e+kqbZOPb}o# z>sywOoG_AI=pmFj&f{cf75GQs-@3-{H7p zS}n~vz6uJfEW%)4tH1r!Rk~h zhh_QyQvH3+eE3&m=OYB#KE6{4OA?-vqcrEDIi0F>%Ed>6I91I^je!4d+^(Ybn7 zt+q;hN*P!Qq@yiBv^U+SS7WM2(|+k-+?P`VRTV5rpauat8jsJTFLGg`q(YybJGZ-| zTyN)NPf)c4p$di)2q_3;k0$^m9M-(S!T9LST<^z_zz#=Ha{Ca&WIj;~0{3|A`RH)% zI47l^K-MXPbTq=kj%P)XAjtix+@hExq>?}h!0`R*>gu1md-T#REpUB({dug90KgD| zKuD0*ltNPkt>y?dApBL= zbT8e~0s(|)p+4&UtN{PT`eg{I20FC5Rv_0tj#F zn(n1rS|EV%eU$xw6=h&0zy|g>b=6rQfbb$Fh@=GM@KVyqs*oK% zT0o%D0ztx~1_z799HRTc;!yaWJH z5f}(LjNBRoOcDtMR0IOym#UU~;ieV{AiNSFNJWtI3Qa(ukTA?BG7t_zQ@>VMrhrh& z6{RFLNn`6sG=!=@L5!Z zpC)9Nqiae4;m6q9AHx<$58V{OL6`t`4#EVSFoh;e0R&GLCqTkJa|9ed`lw;gFbEKM zLP<_Fj~X@bvj**{qt7Gk834X~k9hkD>9YYBC^NEMN<)6;c*sIl(x)UTk(rDie*kc(CMZD`(>UU}Pag!VFQ@!dyI3>sF_ zhesFqIz56QAvks**4|8pUMqj=fE~&X#x;qk2(|A%sy&h&#;jt`MrY!PLOOo!_Y-2z zmms(zZ0f%RLIZ)$l4}su@nu*#CLOK)eu4&&3<1X;5+vku2qXb00l~*PDU@5fo`h{^gXRd? zYq?y?v0CVm;9#9v{m0bnOZO@hMsyxJ7NNjoFa-~W1*|g(0s@i?5vUA&4l4tG*Xna6 z$m5`e2s%SPJ=DIllM#q41Sv&GfxwQ(txN!22}=Fle%z`I((w!oZbyS4VUZG_`;H+c z2VLoy-E@arGB-V%148zC?Yo3vBP>`HK`Vp9OF7hJMUWvSr!t4@zTLJw6&}!$IF-u~ zph92^wYiGb@m#FdoQV}nAad%#=Xq{W2Ty9EDJAs?gBb#gBwJw6dV6k|=rGt|$o1fq zT4*6As{}PY)H?Q0L1R7NW}f3IrOhdr;(aWXJAcE9*4|m;%rRw;$IbekT9QT$23cDb z1eVYsFOUMq3e>SXdROC9N zKzMInUT;;ud|lnIlHp)Ie~a~0>$R!{hN&%)yu#ES^!oBxz(L4k=i*y&5Q=wEo(?() zdF)(#D-J^OF3QtE2O*E0i*Ln2DBeYRI_Mzev2*dQI0(hNC{G6+ggkaGzLix#Xew*p zTcwTS4Vbxu+`4bt!tb@c-^WQ+Wq2(-T08Y=E3=)8Y_7_&ArMXXbQ)Aw=Y;oJhvU2o zgeE9DbW(AF^Vb}y0*FL99ZYoK|tr*BkX3O;Qx*G z?BbNVPdl!U)Y(->G>q#6!WAM8?eNo%(sQi>N4y^%2>`EK2pUx(76g9ks~nGO;q@xD zh%?7#-%aO*01yIP=c@^fR#j*NA&dpAqjA1PMHr9AA4j9nU^r~6aHK)5V*VOjtP007E> zW7Skq)$CFcnm}M|02RPFK)^XcIIbYPO*JU5C*A@A!WDJ?PooS30cv1lhG-D%Qjs7W z06=OyA+H@#gg5cs_Y$crARt^-5Pql%5C|$m7(9keH!6Y+62mD00N~n51>tq7L3us# z77!4wDG1*c1OO4n40aXK3xse=002uRkk=_p6QT&O;=Au9QdvMixGr@eKKP~}5D3N$ zh!yO{)5;($V**tI98W6xs93fN(<<;cK7_oFY~R!3K$NyafS@a7ICR9^ZX0 zk;(!B!Yx$ z0u^CDHjswS0uG50p2c_HOQf=ZfN)!#{@F|sm=3s#;Ep3#54{zE%fLCdTcD1k!5)BBC?9Ya89R&N2vzo z^~761K)A0Ue9~AU8wktQf>8tqA>Mz!hNYu~) zgfLGbdesmrcmEWHv4RjUREp#XRsgaVvULKkv? zVDk{HB6zS^0s-2G4l%;o_7NNe2Vog3ItUIz<*LCqlnxP$!`xZ)XAOtw_^|2R&l(Uo zVjp2YGs$c*KPkvA8`l*9;jZo@aElqw8n9=81QnaR*!a+?&TvRxwTUU7k5DLLK|X?g z42{GT0MRKQp(_Z0!sa6|XhdSlv``yuM7IQli7G;vp~QTIWFSBdJZG^`tW3@#L9jWC zPy{Bg_MRH}RX3Znxc_|yX@FVGFABBMMs!O+xG4k0lu(z&OhvFipkZy(`X$(|hHU+f mo~{-7eZ4Hu_VWg+uXo`FgrIhFJI~r!+MD50G**T=Y@W zfl0wtLMVglKmP`&lJexo&38R`Bu;Yu|NmdVRli3NH3X(_YAwKlj7pd|ZMbYG3zeFCOKu_)==OS?9 z77AcXTJ7?uGt^R`SCTCmj$t8QK;n{1a=-az_|0HJO|Q_jsexAi+I0n>fWG!XTg-(U z;8z?=o6YzYlXWSti;QpLbv=NGFt2I=a}u2se09JRxL2w_=jB~>0AId+G8;d7elW`` zf2k+&{%6$>nK2gw-exF)5diX%1mfM!``EwR9l*AE04H0ADE%(og~8Dnw)75ksDxvh zfWaOVSe-Je_9k>{>nFWqyInr;Cyx&8OSSLW0KamK3)nWm1Tq2q=1wO9`$r!`PY*!= zN`E}iC;%sgMgdok2sPGVHMd~F5+RKZI4a|MLKD|j&U@;3uSQf=rnIK2O0}!p9_-sQ zfhT77)k_o>1)#7uyw$@5OqjdVDNtAgbDN5jY6^&fDILg75Tzw3K-Hc+)u^l?1P4f@ zz2!bBVj5BTK$=_UQ44U?KDa<$J2kQaN>h{{Ep#V)-~ICOT;RfTiov6=4lub~*i20N zj;9fJ0ZK=0zy=X(XElOmL{58TfR@qlII?}-S-I1J?NDL@1_A~SFpUNu6i*E!7gULk z2G*$2kKg`!7$5%r?x#PRBP)IWaTKW-|BYdRrq6kE83TSrR08QY^8$~__;k&(Hh zPyI;tX*@I48S?m_dyjv6wjyxZNB}m#r{G1fcsv@}0F_qy4e+TkXMxQPOn?(%8F6us z^s5>8^bnlS_zZYjoESOHYy^7Bz{T_CJ(BO+20mv91CQ){X29n|MJoGw#^o$5kNss# zFN*Orw_?US>oT4~qlt0gLpwXfO{||8_mCe~|_KgTjCa%fo=Me_ItEjg{D46;13euMYg z0|5qAaDGRT#9R&w!vCD}qrLB6f4C5EN!_dJc%FDzhgr{ApRpiGJg6BzXK!TP7JUcK zHvESnaJCXVB@0B8cN#VHn)b|zwfyhFZ!I8*SOjhUfU4a zDiu_6pVusTXh}gO&ucCX@)AL6774XjCh%pv4q(P^6nts6s#<-ms+uXo`FgrIhFJI~r!+MD50G**T=Y@W zfl0wtLMVglKmP`&lJexo&38R`Bu;XL-}C!+RNU?1s$%oT!-Wx=DoUX}Ph1QO4jPA? hlKavmvRHHc66v zkDb}Mb;ts*s_H(9q6BE)0sixXeL3J|S#IMveqOKFk8Rt&rfIqt4?dUN{ofbYeFpP1f`r6C*qAJbDw%LPAUS~mCv({jPDn3f5SFf9)pX<8Qe z4AXMJXPTA)PB3jBoM_rE_zkA*f!}D_4mg8p^WaRT&4M$UHV4jZ+6?#trk4kYBZRQ) zy4~0#PMr(#NaSkRa*ae?*BQM237(-xWF63V9ze(&98VnByL_na2jBNMtiZM6IRgSt&#Hn)Bbs|ocqpnL@-2HP&?EBRC9F$Z zoN&R>m;8#Scu08YcTL1a94R1M1qtPCOvJrWB2OgZNGNY(BJPb6c_Mz|RaI@_Wu9CB zukgCARi5X&uIs+bvYZ~o^9gU7MrT>JAIEXm_x&e?pV){0Ngt+ZIw++Kh#%R9U!;vO zAMjFI>l6F%YiVn(c3Xpe_+0w3pIL|Bl4c)%Pnvc3BWbqb&!ky~W2D)IW2ISzFOg;w zzEqk;I7K>oI8{1o_$$)U!e5n+67EAfc(^a=py58HgN6H+4idhGbdd12ZQYOBclfoU zkT-CajQzmyS5Xx1@4bU|d%|s#VHmbcYOu3#U&TW72=ns?*sf1O3&%#RI49vN;@&)U zvf{}-VDrzP>O%-39{R&6;v$X}z<#T+d+_}X8SIoI-&O0}00000NkvXXu0mjfzqs1! literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png b/lite/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..e4eddc17a7010ee277339226ada47ddc8e0cff71 GIT binary patch literal 737 zcmV<70v`Q|P)%-6o${a3(Hy=F;+Gf>lBKB37s*9{~&8EB+$uU;4feY30MnSnb;Cz>_}|TV!_15 z%78IJ1Aw%E6DUQr?$ii(Q`~JqaTN~r!bH@?*tIetVCuAo`Xpo6Zx0$pwArWHQ zsgYTIe0%9*1o^W4^cjHfrf^aC6fEG=liV~6!$9}j zp^u7>ijPV@8E`zR|8hEt%50c7o|#I=169Sir5YQtC|jM@b*ca^Qbz@_$z;C>nS;NV zL^(JrXAKn5?t!#vN!}2fUH#xN4e${W9!5frQ3iai9y~S;*ilr^!t(a6e(+AyQPEXB zc!KHp_Ndr+vT5Dm=a^Oue!gj);0~r0g1ed41%3(Bioh>tS_gOv(+a@TnJyQ+2h$~j z_hz~r@C;0s0G^HMV!<;sT_AY2ri%g3!F2xM*o6aq1zE|Of$*I}!moUY3EMW?NZUsy8XHCJ@N(-IL*EBZ;HovNOdHv5je-`oAGKcxAEqIA6yn@-oaS}f*}Nq+-AF_5fA~wLjtV*g~{zx4|1=z zyvD%OK3s%8gcoqWWbbZz;QO_e5*KlQ=oCICWZ>sTduQDPuhdqyeB_91NZ#IAHQ-_D zkG*l?8ZU=wEa+Tpyy(`r0S{_Yb$slN$MHVy)wlsytoTdD#~4>Nr7O-D*JV;Qk1?)lN>`jn1RmUU6yRD+ zhYYUIbeP~;O@{=o-*gDz-=KMq*x0$~IyLF-Mk2$QBfQOWH@TWGs&m2%{e2mEqPjX;epPL`7T5Ux0Vz=HBCQN9ApigX07*qoM6N<$ Ef^O(OV*mgE literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png b/lite/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6ccb7bef13d96121dd31ccba92a37a71505874 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^W}YsNArj%qDGd$(1Ekyxjha}( z?|K?KPU8rkS=@F?h-Y=4>cR-QWoG@1DaTi^*gSdY*rdCN!DX!*^UmIXr+_9fc)I$z JtaD0e0ss(PAz%Oi literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png b/lite/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bed352bdfb1bfb9faeab33d73b9a9b53b7e72e2c GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^W}YsNArj%qDGd$(1Ekyxjha}( z@A+i8OydZjAMT&Z*%rEeQh*MB@a*FZo03DAmdK II;Vst0PJKRYXATM literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/tab_selected_transdroid.9.png b/lite/res/drawable-xhdpi/tab_selected_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..794323de5c8df8000b3754c47681e5f5023a00ba GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^2A(dCArj%qDGd$(1Ekyxjht8= zO^kl{r*gK1Zl4sO!yi2RIK#G*5GJvA9~2IX1v1Qvw_;Y4swe~MW$<+Mb6Mw<&;$Ss CU>q(0 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png b/lite/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..564f40f571d5b99555a9ec9aa5adf73cdce75011 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ#0V1dK=^Fzn9Zwg>5RT~Nl!k`?0a9*;Molc? xcRdXqr*Q<&EN(j`#N%Myv+<^*FK3P%3q!D#8nZ!G7%Na8gQu&X%Q~loCIA@=7r+1j literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png b/lite/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png new file mode 100644 index 0000000000000000000000000000000000000000..3f885d604eadf0529141376b220a16762cc4e1db GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ#0V1dK=^Fzn9Zwg>5RT~Nl!k`?0a9*;Molc? y_k6Nkrg4PN5BE>yWLqH1d*jW5Wh`d=Oblha)R;{q-4%iQ7(8A5T-G@yGywn}4Hypq literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xxhdpi/ic_activity_torrents.png b/lite/res/drawable-xxhdpi/ic_activity_torrents.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a1a817e13f07f8a3167837ef4415e30c4e9dd8 GIT binary patch literal 6946 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 + + + + + diff --git a/lite/res/drawable/progress_horizontal_transdroid.xml b/lite/res/drawable/progress_horizontal_transdroid.xml new file mode 100644 index 00000000..585c2b73 --- /dev/null +++ b/lite/res/drawable/progress_horizontal_transdroid.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/lite/res/drawable/section_header.xml b/lite/res/drawable/section_header.xml new file mode 100644 index 00000000..d6094f63 --- /dev/null +++ b/lite/res/drawable/section_header.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/lite/res/drawable/selectable_background_transdroid.xml b/lite/res/drawable/selectable_background_transdroid.xml new file mode 100644 index 00000000..de42f6a1 --- /dev/null +++ b/lite/res/drawable/selectable_background_transdroid.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/lite/res/drawable/spinner_background_ab_transdroid.xml b/lite/res/drawable/spinner_background_ab_transdroid.xml new file mode 100644 index 00000000..32edfe7b --- /dev/null +++ b/lite/res/drawable/spinner_background_ab_transdroid.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/lite/res/drawable/tab_indicator_ab_transdroid.xml b/lite/res/drawable/tab_indicator_ab_transdroid.xml new file mode 100644 index 00000000..5345f3e5 --- /dev/null +++ b/lite/res/drawable/tab_indicator_ab_transdroid.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/lite/res/layout-v14/actionbar_progressitem.xml b/lite/res/layout-v14/actionbar_progressitem.xml new file mode 100644 index 00000000..f6dfd64a --- /dev/null +++ b/lite/res/layout-v14/actionbar_progressitem.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/lite/res/layout-w600dp/activity_torrents.xml b/lite/res/layout-w600dp/activity_torrents.xml new file mode 100644 index 00000000..92b91914 --- /dev/null +++ b/lite/res/layout-w600dp/activity_torrents.xml @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/lite/res/layout-w720dp/activity_torrents.xml b/lite/res/layout-w720dp/activity_torrents.xml new file mode 100644 index 00000000..19c5a3ad --- /dev/null +++ b/lite/res/layout-w720dp/activity_torrents.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/layout/actionbar_progressitem.xml b/lite/res/layout/actionbar_progressitem.xml new file mode 100644 index 00000000..5123e8df --- /dev/null +++ b/lite/res/layout/actionbar_progressitem.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/lite/res/layout/activity_torrents.xml b/lite/res/layout/activity_torrents.xml index 02d672cc..6e9f0815 100644 --- a/lite/res/layout/activity_torrents.xml +++ b/lite/res/layout/activity_torrents.xml @@ -1,16 +1,15 @@ - + + + tools:context=".TorrentsActivity" > - + - \ No newline at end of file + \ No newline at end of file diff --git a/lite/res/layout/fragment_details.xml b/lite/res/layout/fragment_details.xml new file mode 100644 index 00000000..e5663b46 --- /dev/null +++ b/lite/res/layout/fragment_details.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/lite/res/layout/fragment_details_header.xml b/lite/res/layout/fragment_details_header.xml new file mode 100644 index 00000000..56baea74 --- /dev/null +++ b/lite/res/layout/fragment_details_header.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/layout/fragment_filters.xml b/lite/res/layout/fragment_filters.xml new file mode 100644 index 00000000..30906fa2 --- /dev/null +++ b/lite/res/layout/fragment_filters.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/lite/res/layout/fragment_torrents.xml b/lite/res/layout/fragment_torrents.xml new file mode 100644 index 00000000..3365978d --- /dev/null +++ b/lite/res/layout/fragment_torrents.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/lite/res/layout/list_item_filter.xml b/lite/res/layout/list_item_filter.xml new file mode 100644 index 00000000..92114e79 --- /dev/null +++ b/lite/res/layout/list_item_filter.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/lite/res/layout/list_item_separator.xml b/lite/res/layout/list_item_separator.xml new file mode 100644 index 00000000..8a48e729 --- /dev/null +++ b/lite/res/layout/list_item_separator.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/lite/res/menu/activity_torrents.xml b/lite/res/menu/activity_torrents.xml new file mode 100644 index 00000000..1832ea34 --- /dev/null +++ b/lite/res/menu/activity_torrents.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/menu/fragment_details.xml b/lite/res/menu/fragment_details.xml new file mode 100644 index 00000000..9e763198 --- /dev/null +++ b/lite/res/menu/fragment_details.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/menu/fragment_details_file.xml b/lite/res/menu/fragment_details_file.xml new file mode 100644 index 00000000..edc1931c --- /dev/null +++ b/lite/res/menu/fragment_details_file.xml @@ -0,0 +1,28 @@ + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/menu/torrents.xml b/lite/res/menu/torrents.xml deleted file mode 100644 index a363b607..00000000 --- a/lite/res/menu/torrents.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/lite/res/values-sw600dp/dimens.xml b/lite/res/values-sw600dp/dimens.xml deleted file mode 100644 index d7cc90c8..00000000 --- a/lite/res/values-sw600dp/dimens.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - \ No newline at end of file diff --git a/lite/res/values-sw720dp-land/dimens.xml b/lite/res/values-sw720dp-land/dimens.xml deleted file mode 100644 index 1b9fc52c..00000000 --- a/lite/res/values-sw720dp-land/dimens.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - 128dp - - \ No newline at end of file diff --git a/lite/res/values-v11/styles.xml b/lite/res/values-v11/styles.xml deleted file mode 100644 index c478de08..00000000 --- a/lite/res/values-v11/styles.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/lite/res/values-v11/styles_transdroid.xml b/lite/res/values-v11/styles_transdroid.xml new file mode 100644 index 00000000..d3671383 --- /dev/null +++ b/lite/res/values-v11/styles_transdroid.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/values-v14/styles.xml b/lite/res/values-v14/styles.xml deleted file mode 100644 index 48e5ada1..00000000 --- a/lite/res/values-v14/styles.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/lite/res/values/colors.xml b/lite/res/values/colors.xml new file mode 100644 index 00000000..ba2e342f --- /dev/null +++ b/lite/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #8acc12 + diff --git a/lite/res/values/colors_transdroid.xml b/lite/res/values/colors_transdroid.xml new file mode 100644 index 00000000..88ea9872 --- /dev/null +++ b/lite/res/values/colors_transdroid.xml @@ -0,0 +1,21 @@ + + + + + #CCaada62 + diff --git a/lite/res/values/dimens.xml b/lite/res/values/dimens.xml index 1afdbd6c..e6f730d4 100644 --- a/lite/res/values/dimens.xml +++ b/lite/res/values/dimens.xml @@ -1,7 +1,6 @@ - - 16dp - 16dp + 16dp + 8dp \ No newline at end of file diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml index 25ae5b89..ce8d9e9b 100644 --- a/lite/res/values/strings.xml +++ b/lite/res/values/strings.xml @@ -1,8 +1,47 @@ - Transdroid Lite + Transdroid Lite + + Add + From file + From URL + Scan barcode + Search + Refresh + RSS + Enable turle mode + Disable turle mode + Sort list + Name + Status + Date done + Date added + Upload speed + Ratio + Filter list Settings - Hello world! - - \ No newline at end of file + + Start + Stop + Resume + Pause + Remove + Remove torrent + Remove and delete data + Set label + Update trackers + Off + Low + Normal + High + Remote play in VLC + Download using (S)FTP + + SERVERS + STATUS + LABELS + Connected, but no torrent are active on the server + Select a torrent to view its details + + diff --git a/lite/res/values/styles.xml b/lite/res/values/styles.xml index fdb33413..ae796309 100644 --- a/lite/res/values/styles.xml +++ b/lite/res/values/styles.xml @@ -1,15 +1,32 @@ - + - - + + + + \ No newline at end of file diff --git a/lite/res/values/styles_transdroid.xml b/lite/res/values/styles_transdroid.xml new file mode 100644 index 00000000..98e8c09c --- /dev/null +++ b/lite/res/values/styles_transdroid.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/src/com/commonsware/cwac/merge/MergeAdapter.java b/lite/src/com/commonsware/cwac/merge/MergeAdapter.java new file mode 100644 index 00000000..a713b862 --- /dev/null +++ b/lite/src/com/commonsware/cwac/merge/MergeAdapter.java @@ -0,0 +1,481 @@ +/*** + Copyright (c) 2008-2009 CommonsWare, LLC + Portions (c) 2009 Google, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package com.commonsware.cwac.merge; + +import android.database.DataSetObserver; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ListAdapter; +import android.widget.SectionIndexer; +import java.util.ArrayList; +import java.util.List; +import com.commonsware.cwac.sacklist.SackOfViewsAdapter; + +/** + * Adapter that merges multiple child adapters and views + * into a single contiguous whole. + * + * Adapters used as pieces within MergeAdapter must have + * view type IDs monotonically increasing from 0. Ideally, + * adapters also have distinct ranges for their row ids, as + * returned by getItemId(). + * + */ +public class MergeAdapter extends BaseAdapter implements SectionIndexer { + protected PieceStateRoster pieces=new PieceStateRoster(); + + /** + * Stock constructor, simply chaining to the superclass. + */ + public MergeAdapter() { + super(); + } + + /** + * Adds a new adapter to the roster of things to appear in + * the aggregate list. + * + * @param adapter + * Source for row views for this section + */ + public void addAdapter(ListAdapter adapter) { + pieces.add(adapter); + adapter.registerDataSetObserver(new CascadeDataSetObserver()); + } + + /** + * Adds a new View to the roster of things to appear in + * the aggregate list. + * + * @param view + * Single view to add + */ + public void addView(View view) { + addView(view, false); + } + + /** + * Adds a new View to the roster of things to appear in + * the aggregate list. + * + * @param view + * Single view to add + * @param enabled + * false if views are disabled, true if enabled + */ + public void addView(View view, boolean enabled) { + ArrayList list=new ArrayList(1); + + list.add(view); + + addViews(list, enabled); + } + + /** + * Adds a list of views to the roster of things to appear + * in the aggregate list. + * + * @param views + * List of views to add + */ + public void addViews(List views) { + addViews(views, false); + } + + /** + * Adds a list of views to the roster of things to appear + * in the aggregate list. + * + * @param views + * List of views to add + * @param enabled + * false if views are disabled, true if enabled + */ + public void addViews(List views, boolean enabled) { + if (enabled) { + addAdapter(new EnabledSackAdapter(views)); + } + else { + addAdapter(new SackOfViewsAdapter(views)); + } + } + + /** + * Get the data item associated with the specified + * position in the data set. + * + * @param position + * Position of the item whose data we want + */ + @Override + public Object getItem(int position) { + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + return(piece.getItem(position)); + } + + position-=size; + } + + return(null); + } + + /** + * Get the adapter associated with the specified position + * in the data set. + * + * @param position + * Position of the item whose adapter we want + */ + public ListAdapter getAdapter(int position) { + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + return(piece); + } + + position-=size; + } + + return(null); + } + + /** + * How many items are in the data set represented by this + * Adapter. + */ + @Override + public int getCount() { + int total=0; + + for (ListAdapter piece : getPieces()) { + total+=piece.getCount(); + } + + return(total); + } + + /** + * Returns the number of types of Views that will be + * created by getView(). + */ + @Override + public int getViewTypeCount() { + int total=0; + + for (PieceState piece : pieces.getRawPieces()) { + total+=piece.adapter.getViewTypeCount(); + } + + return(Math.max(total, 1)); // needed for + // setListAdapter() before + // content add' + } + + /** + * Get the type of View that will be created by getView() + * for the specified item. + * + * @param position + * Position of the item whose data we want + */ + @Override + public int getItemViewType(int position) { + int typeOffset=0; + int result=-1; + + for (PieceState piece : pieces.getRawPieces()) { + if (piece.isActive) { + int size=piece.adapter.getCount(); + + if (position < size) { + result=typeOffset + piece.adapter.getItemViewType(position); + break; + } + + position-=size; + } + + typeOffset+=piece.adapter.getViewTypeCount(); + } + + return(result); + } + + /** + * Are all items in this ListAdapter enabled? If yes it + * means all items are selectable and clickable. + */ + @Override + public boolean areAllItemsEnabled() { + return(false); + } + + /** + * Returns true if the item at the specified position is + * not a separator. + * + * @param position + * Position of the item whose data we want + */ + @Override + public boolean isEnabled(int position) { + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + return(piece.isEnabled(position)); + } + + position-=size; + } + + return(false); + } + + /** + * Get a View that displays the data at the specified + * position in the data set. + * + * @param position + * Position of the item whose data we want + * @param convertView + * View to recycle, if not null + * @param parent + * ViewGroup containing the returned View + */ + @Override + public View getView(int position, View convertView, ViewGroup parent) { + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + + return(piece.getView(position, convertView, parent)); + } + + position-=size; + } + + return(null); + } + + /** + * Get the row id associated with the specified position + * in the list. + * + * @param position + * Position of the item whose data we want + */ + @Override + public long getItemId(int position) { + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + return(piece.getItemId(position)); + } + + position-=size; + } + + return(-1); + } + + @Override + public int getPositionForSection(int section) { + int position=0; + + for (ListAdapter piece : getPieces()) { + if (piece instanceof SectionIndexer) { + Object[] sections=((SectionIndexer)piece).getSections(); + int numSections=0; + + if (sections != null) { + numSections=sections.length; + } + + if (section < numSections) { + return(position + ((SectionIndexer)piece).getPositionForSection(section)); + } + else if (sections != null) { + section-=numSections; + } + } + + position+=piece.getCount(); + } + + return(0); + } + + @Override + public int getSectionForPosition(int position) { + int section=0; + + for (ListAdapter piece : getPieces()) { + int size=piece.getCount(); + + if (position < size) { + if (piece instanceof SectionIndexer) { + return(section + ((SectionIndexer)piece).getSectionForPosition(position)); + } + + return(0); + } + else { + if (piece instanceof SectionIndexer) { + Object[] sections=((SectionIndexer)piece).getSections(); + + if (sections != null) { + section+=sections.length; + } + } + } + + position-=size; + } + + return(0); + } + + @Override + public Object[] getSections() { + ArrayList sections=new ArrayList(); + + for (ListAdapter piece : getPieces()) { + if (piece instanceof SectionIndexer) { + Object[] curSections=((SectionIndexer)piece).getSections(); + + if (curSections != null) { + for (Object section : curSections) { + sections.add(section); + } + } + } + } + + if (sections.size() == 0) { + return(new String[0]); + } + + return(sections.toArray(new Object[0])); + } + + public void setActive(ListAdapter adapter, boolean isActive) { + pieces.setActive(adapter, isActive); + notifyDataSetChanged(); + } + + public void setActive(View v, boolean isActive) { + pieces.setActive(v, isActive); + notifyDataSetChanged(); + } + + protected List getPieces() { + return(pieces.getPieces()); + } + + private static class PieceState { + ListAdapter adapter; + boolean isActive=true; + + PieceState(ListAdapter adapter, boolean isActive) { + this.adapter=adapter; + this.isActive=isActive; + } + } + + private static class PieceStateRoster { + protected ArrayList pieces=new ArrayList(); + protected ArrayList active=null; + + void add(ListAdapter adapter) { + pieces.add(new PieceState(adapter, true)); + } + + void setActive(ListAdapter adapter, boolean isActive) { + for (PieceState state : pieces) { + if (state.adapter==adapter) { + state.isActive=isActive; + active=null; + break; + } + } + } + + void setActive(View v, boolean isActive) { + for (PieceState state : pieces) { + if (state.adapter instanceof SackOfViewsAdapter && + ((SackOfViewsAdapter)state.adapter).hasView(v)) { + state.isActive=isActive; + active=null; + break; + } + } + } + + List getRawPieces() { + return(pieces); + } + + List getPieces() { + if (active == null) { + active=new ArrayList(); + + for (PieceState state : pieces) { + if (state.isActive) { + active.add(state.adapter); + } + } + } + + return(active); + } + } + + private static class EnabledSackAdapter extends SackOfViewsAdapter { + public EnabledSackAdapter(List views) { + super(views); + } + + @Override + public boolean areAllItemsEnabled() { + return(true); + } + + @Override + public boolean isEnabled(int position) { + return(true); + } + } + + private class CascadeDataSetObserver extends DataSetObserver { + @Override + public void onChanged() { + notifyDataSetChanged(); + } + + @Override + public void onInvalidated() { + notifyDataSetInvalidated(); + } + } +} \ No newline at end of file diff --git a/lite/src/com/commonsware/cwac/sacklist/SackOfViewsAdapter.java b/lite/src/com/commonsware/cwac/sacklist/SackOfViewsAdapter.java new file mode 100644 index 00000000..2d248e58 --- /dev/null +++ b/lite/src/com/commonsware/cwac/sacklist/SackOfViewsAdapter.java @@ -0,0 +1,177 @@ +/*** + Copyright (c) 2008-2009 CommonsWare, LLC + Portions (c) 2009 Google, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package com.commonsware.cwac.sacklist; + +import java.util.ArrayList; +import java.util.List; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +/** + * Adapter that simply returns row views from a list. + * + * If you supply a size, you must implement newView(), to + * create a required view. The adapter will then cache these + * views. + * + * If you supply a list of views in the constructor, that + * list will be used directly. If any elements in the list + * are null, then newView() will be called just for those + * slots. + * + * Subclasses may also wish to override areAllItemsEnabled() + * (default: false) and isEnabled() (default: false), if some + * of their rows should be selectable. + * + * It is assumed each view is unique, and therefore will not + * get recycled. + * + * Note that this adapter is not designed for long lists. It + * is more for screens that should behave like a list. This + * is particularly useful if you combine this with other + * adapters (e.g., SectionedAdapter) that might have an + * arbitrary number of rows, so it all appears seamless. + */ +public class SackOfViewsAdapter extends BaseAdapter { + private List views=null; + + /** + * Constructor creating an empty list of views, but with + * a specified count. Subclasses must override newView(). + */ + public SackOfViewsAdapter(int count) { + super(); + + views=new ArrayList(count); + + for (int i=0;i views) { + super(); + + this.views=views; + } + + /** + * Get the data item associated with the specified + * position in the data set. + * @param position Position of the item whose data we want + */ + @Override + public Object getItem(int position) { + return(views.get(position)); + } + + /** + * How many items are in the data set represented by this + * Adapter. + */ + @Override + public int getCount() { + return(views.size()); + } + + /** + * Returns the number of types of Views that will be + * created by getView(). + */ + @Override + public int getViewTypeCount() { + return(getCount()); + } + + /** + * Get the type of View that will be created by getView() + * for the specified item. + * @param position Position of the item whose data we want + */ + @Override + public int getItemViewType(int position) { + return(position); + } + + /** + * Are all items in this ListAdapter enabled? If yes it + * means all items are selectable and clickable. + */ + @Override + public boolean areAllItemsEnabled() { + return(false); + } + + /** + * Returns true if the item at the specified position is + * not a separator. + * @param position Position of the item whose data we want + */ + @Override + public boolean isEnabled(int position) { + return(false); + } + + /** + * Get a View that displays the data at the specified + * position in the data set. + * @param position Position of the item whose data we want + * @param convertView View to recycle, if not null + * @param parent ViewGroup containing the returned View + */ + @Override + public View getView(int position, View convertView, + ViewGroup parent) { + View result=views.get(position); + + if (result==null) { + result=newView(position, parent); + views.set(position, result); + } + + return(result); + } + + /** + * Get the row id associated with the specified position + * in the list. + * @param position Position of the item whose data we want + */ + @Override + public long getItemId(int position) { + return(position); + } + + public boolean hasView(View v) { + return(views.contains(v)); + } + + /** + * Create a new View to go into the list at the specified + * position. + * @param position Position of the item whose data we want + * @param parent ViewGroup containing the returned View + */ + protected View newView(int position, ViewGroup parent) { + throw new RuntimeException("You must override newView()!"); + } +} \ No newline at end of file diff --git a/lite/src/org/transdroid/lite/gui/DetailsFagment.java b/lite/src/org/transdroid/lite/gui/DetailsFagment.java new file mode 100644 index 00000000..38f2e74a --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/DetailsFagment.java @@ -0,0 +1,45 @@ +package org.transdroid.lite.gui; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.EFragment; +import org.androidannotations.annotations.FragmentArg; +import org.androidannotations.annotations.InstanceState; +import org.androidannotations.annotations.ViewById; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentDetails; +import org.transdroid.lite.R; + +import android.view.View; +import android.widget.TextView; + +import com.actionbarsherlock.app.SherlockFragment; + +/** + * Fragment that shown detailed statistics about some torrent. These come from some already fetched {@link Torrent} + * object, but it also retrieves further detailed statistics. + * + * @author Eric Kok + */ +@EFragment(R.layout.fragment_details) +public class DetailsFagment extends SherlockFragment { + + @FragmentArg + @InstanceState + protected Torrent torrent = null; + @InstanceState + protected TorrentDetails torrentDetails; + + @ViewById + protected TextView emptyText; + + @AfterViews + protected void init() { + + if (torrent == null) { + // No torrent specified; show the placeholder layout only + emptyText.setVisibility(View.VISIBLE); + } + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/Torrents.java b/lite/src/org/transdroid/lite/gui/Torrents.java deleted file mode 100644 index f3a1e05a..00000000 --- a/lite/src/org/transdroid/lite/gui/Torrents.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.transdroid.lite.gui; - -import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.lite.R; - -import com.actionbarsherlock.app.SherlockFragmentActivity; - -@EActivity(R.layout.activity_torrents) -@OptionsMenu(R.menu.torrents) -public class Torrents extends SherlockFragmentActivity { - -} diff --git a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java new file mode 100644 index 00000000..248a7186 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java @@ -0,0 +1,82 @@ +package org.transdroid.lite.gui; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.FragmentById; +import org.androidannotations.annotations.FragmentByTag; +import org.androidannotations.annotations.ItemSelect; +import org.androidannotations.annotations.OptionsMenu; +import org.androidannotations.annotations.ViewById; +import org.transdroid.lite.R; +import org.transdroid.lite.gui.navigation.FilterAdapter; +import org.transdroid.lite.gui.navigation.FilterItem; +import org.transdroid.lite.gui.navigation.FilterSeparatorView; +import org.transdroid.lite.gui.navigation.NavigationHelper; + +import android.widget.ListView; + +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.ActionBar.OnNavigationListener; +import com.actionbarsherlock.app.SherlockFragmentActivity; + +@EActivity(R.layout.activity_torrents) +@OptionsMenu(R.menu.activity_torrents) +public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener { + + // Navigation components + @Bean + protected NavigationHelper navigationHelper; + @ViewById + protected ListView filtersList; + protected FilterAdapter navigationListAdapter = null; + protected FilterAdapter navigationSpinnerAdapter = null; + + // Torrents list components + @FragmentById(R.id.torrent_list) + protected TorrentsFragment fragmentTorrents; + + // Details view components + @FragmentById(R.id.torrent_details) + protected DetailsFagment fragmentDetails; + + @AfterViews + protected void init() { + + // Set up navigation + getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); + getSupportActionBar().setHomeButtonEnabled(false); + navigationSpinnerAdapter = new FilterAdapter(this); + getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); + if (filtersList != null) { + navigationListAdapter = new FilterAdapter(this); + filtersList.setAdapter(navigationListAdapter); + } + + // Load settings + + } + + @Override + public boolean onNavigationItemSelected(int itemPosition, long itemId) { + Object item = navigationSpinnerAdapter.getItem(itemPosition); + if (item instanceof FilterItem) { + // A filter item was selected form the navigation spinner + filterSelected(true, (FilterItem) item); + return true; + } + // A header was selected; no action + return false; + } + + /** + * A new filter was selected; update the view over the current data + * @param selected + * @param item + */ + @ItemSelect(R.id.filters_list) + protected void filterSelected(boolean selected, FilterItem item) { + // TODO: Update the view + } + +} diff --git a/lite/src/org/transdroid/lite/gui/TorrentsFragment.java b/lite/src/org/transdroid/lite/gui/TorrentsFragment.java new file mode 100644 index 00000000..f53a9e1d --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/TorrentsFragment.java @@ -0,0 +1,11 @@ +package org.transdroid.lite.gui; + +import org.androidannotations.annotations.EFragment; +import org.transdroid.lite.R; + +import com.actionbarsherlock.app.SherlockFragment; + +@EFragment(R.layout.fragment_torrents) +public class TorrentsFragment extends SherlockFragment { + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java b/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java new file mode 100644 index 00000000..0ffb0b8e --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java @@ -0,0 +1,125 @@ +package org.transdroid.lite.gui.navigation; + +import java.util.List; + +import org.transdroid.lite.R; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +import com.commonsware.cwac.merge.MergeAdapter; + +/** + * List adapter that holds filter items, that is, servers, view types and labels. A header item is intersted where + * appropriate. + * @author Eric Kok + */ +public class FilterAdapter extends MergeAdapter { + + private Context context; + private FilterItemAdapter serverItems = null; + private FilterItemAdapter statusTypeItems = null; + private FilterItemAdapter labelItems = null; + + public FilterAdapter(Context context) { + this.context = context; + } + + /** + * Update the list of available servers. + * @param servers The new list of available servers + */ + public void updateServers(List servers) { + if (this.serverItems == null && servers != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)), false); + this.serverItems = new FilterItemAdapter(context, servers); + addAdapter(serverItems); + } else if (this.serverItems != null && servers != null) { + this.serverItems.update(servers); + } else { + this.serverItems = null; + } + } + + /** + * Update the list of available status types. + * @param statusTypes The new list of available status types + */ + public void updateStatusTypes(List statusTypes) { + if (this.statusTypeItems == null && statusTypes != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_status)), false); + this.statusTypeItems = new FilterItemAdapter(context, statusTypes); + addAdapter(statusTypeItems); + } else if (this.statusTypeItems != null && statusTypes != null) { + this.statusTypeItems.update(statusTypes); + } else { + this.statusTypeItems = null; + } + } + + /** + * Update the list of available labels. + * @param labels The new list of available labels + */ + public void updateLabels(List labels) { + if (this.labelItems == null && labels != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)), false); + this.labelItems = new FilterItemAdapter(context, labels); + addAdapter(labelItems); + } else if (this.serverItems != null && labels != null) { + this.labelItems.update(labels); + } else { + this.labelItems = null; + } + } + + protected class FilterItemAdapter extends BaseAdapter { + + private final Context context; + private List items; + + public FilterItemAdapter(Context context, List items) { + this.context = context; + this.items = items; + } + + /** + * Allows updating of the full data list underlying this adapter, replacing all items + * @param newItems The new list of filter items to display + */ + public void update(List newItems) { + this.items = newItems; + notifyDataSetChanged(); + } + + @Override + public int getCount() { + return items.size(); + } + + @Override + public FilterItem getItem(int position) { + return items.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + FilterItemView filterItemView; + if (convertView == null) { + filterItemView = FilterItemView_.build(context); + } else { + filterItemView = (FilterItemView) convertView; + } + filterItemView.bind(getItem(position)); + return filterItemView; + } + + } +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterItem.java b/lite/src/org/transdroid/lite/gui/navigation/FilterItem.java new file mode 100644 index 00000000..81638d89 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterItem.java @@ -0,0 +1,12 @@ +package org.transdroid.lite.gui.navigation; + +/** + * Represents a filter item as shown in the navigation list or spinner. + * + * @author Eric Kok + */ +public interface FilterItem { + + public String getName(); + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java b/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java new file mode 100644 index 00000000..e7f6dc82 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java @@ -0,0 +1,29 @@ +package org.transdroid.lite.gui.navigation; + +import org.androidannotations.annotations.EViewGroup; +import org.androidannotations.annotations.ViewById; +import org.transdroid.lite.R; + +import android.content.Context; +import android.widget.LinearLayout; +import android.widget.TextView; + +/** + * View that represents some {@link FilterItem} object and simple prints out the text (in proper style) + * @author Eric Kok + */ +@EViewGroup(R.layout.list_item_filter) +public class FilterItemView extends LinearLayout { + + @ViewById + protected TextView itemText; + + public FilterItemView(Context context) { + super(context); + } + + public void bind(FilterItem filterItem) { + itemText.setText(filterItem.getName()); + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java b/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java new file mode 100644 index 00000000..09368d89 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java @@ -0,0 +1,42 @@ +package org.transdroid.lite.gui.navigation; + +import org.androidannotations.annotations.EViewGroup; +import org.androidannotations.annotations.ViewById; +import org.transdroid.lite.R; + +import android.content.Context; +import android.widget.LinearLayout; +import android.widget.TextView; + +/** + * A list item that shows a sub header or separator (in underlined Holo style). + * + * @author Eric Kok + */ +@EViewGroup(R.layout.list_item_separator) +public class FilterSeparatorView extends LinearLayout { + + protected String text; + + @ViewById + protected TextView separatorText; + + public FilterSeparatorView(Context context) { + super(context); + } + + public void bind(FilterItem filterItem) { + separatorText.setText(text); + } + + /** + * Sets the text that will be shown in this separator (sub header) + * @param text The new text to show + * @return Itself, for convenience of method chaining + */ + public FilterSeparatorView setText(String text) { + this.text = text; + return this; + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java b/lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java new file mode 100644 index 00000000..dd2ec575 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java @@ -0,0 +1,30 @@ +package org.transdroid.lite.gui.navigation; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; + +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Build; + +@EBean +public class NavigationHelper { + + @RootContext + protected Context context; + + /** + * Whether the navigation of server types and labels as filter are shown in a separate fragment. + * @return True if navigation is in a separate fragment, false if the items are shown in the action bar spinner + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) + public boolean showFiltersInFragment() { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { + if (context.getResources().getConfiguration().screenWidthDp >= 600) { + return true; + } + } + return false; + } + +} From 7206333e923e89ae735262ae16a56dbc8880d025 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 28 Feb 2013 19:10:28 +0100 Subject: [PATCH 04/60] Further work on new layout. --- lite/res/layout-w600dp/activity_torrents.xml | 7 +++++-- lite/res/layout-w720dp/activity_torrents.xml | 10 +++++++--- lite/res/layout/activity_torrents.xml | 2 +- lite/res/layout/fragment_details.xml | 7 +++++-- lite/res/layout/fragment_filters.xml | 6 ++++-- lite/res/layout/fragment_torrents.xml | 18 ++++++++++++++++-- .../transdroid/lite/gui/DetailsFagment.java | 2 ++ .../transdroid/lite/gui/TorrentsActivity.java | 10 ++++++---- 8 files changed, 46 insertions(+), 16 deletions(-) diff --git a/lite/res/layout-w600dp/activity_torrents.xml b/lite/res/layout-w600dp/activity_torrents.xml index 92b91914..2f96106f 100644 --- a/lite/res/layout-w600dp/activity_torrents.xml +++ b/lite/res/layout-w600dp/activity_torrents.xml @@ -12,13 +12,16 @@ android:id="@+id/filters_list" android:layout_width="0dip" android:layout_height="match_parent" - android:layout_weight="1" /> + android:layout_weight="1" + android:choiceMode="singleChoice" + android:listSelector="@drawable/selectable_background_transdroid" /> + class="org.transdroid.gui.TorrentsFragment" + tools:layout="@layout/fragment_torrents" /> \ No newline at end of file diff --git a/lite/res/layout-w720dp/activity_torrents.xml b/lite/res/layout-w720dp/activity_torrents.xml index 19c5a3ad..6575c30e 100644 --- a/lite/res/layout-w720dp/activity_torrents.xml +++ b/lite/res/layout-w720dp/activity_torrents.xml @@ -12,20 +12,24 @@ android:id="@+id/filters_list" android:layout_width="0dip" android:layout_height="match_parent" - android:layout_weight="1" /> + android:layout_weight="1" + android:choiceMode="singleChoice" + android:listSelector="@drawable/selectable_background_transdroid" /> + class="org.transdroid.gui.TorrentsFragment" + tools:layout="@layout/fragment_torrents" /> + class="org.transdroid.gui.DetailsFragment" + tools:layout="@layout/fragment_details" /> \ No newline at end of file diff --git a/lite/res/layout/activity_torrents.xml b/lite/res/layout/activity_torrents.xml index 6e9f0815..ee4dd9b6 100644 --- a/lite/res/layout/activity_torrents.xml +++ b/lite/res/layout/activity_torrents.xml @@ -10,6 +10,6 @@ android:id="@+id/torrent_list" android:layout_width="match_parent" android:layout_height="match_parent" - class="org.transdroid.gui.TorrentsFragment" /> + class="org.transdroid.gui.TorrentsFragment" tools:layout="@layout/fragment_torrents"/> \ No newline at end of file diff --git a/lite/res/layout/fragment_details.xml b/lite/res/layout/fragment_details.xml index e5663b46..bbbcdb0a 100644 --- a/lite/res/layout/fragment_details.xml +++ b/lite/res/layout/fragment_details.xml @@ -3,10 +3,13 @@ android:layout_width="match_parent" android:layout_height="match_parent" > - + android:layout_height="match_parent" + android:choiceMode="multipleChoiceModal" + android:listSelector="@drawable/selectable_background_transdroid" + android:visibility="gone" /> - + android:layout_height="match_parent" + android:choiceMode="singleChoice" + android:listSelector="@drawable/selectable_background_transdroid" /> \ No newline at end of file diff --git a/lite/res/layout/fragment_torrents.xml b/lite/res/layout/fragment_torrents.xml index 3365978d..65ae6c53 100644 --- a/lite/res/layout/fragment_torrents.xml +++ b/lite/res/layout/fragment_torrents.xml @@ -3,9 +3,23 @@ android:layout_width="match_parent" android:layout_height="match_parent" > - + android:layout_height="match_parent" + android:choiceMode="multipleChoiceModal" + android:listSelector="@drawable/selectable_background_transdroid" + android:visibility="gone" /> + + \ No newline at end of file diff --git a/lite/src/org/transdroid/lite/gui/DetailsFagment.java b/lite/src/org/transdroid/lite/gui/DetailsFagment.java index 38f2e74a..1b3c7e10 100644 --- a/lite/src/org/transdroid/lite/gui/DetailsFagment.java +++ b/lite/src/org/transdroid/lite/gui/DetailsFagment.java @@ -40,6 +40,8 @@ public class DetailsFagment extends SherlockFragment { emptyText.setVisibility(View.VISIBLE); } + // TODO: Show the torrent details and load the advanced statistics + } } diff --git a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java index 248a7186..f368bc94 100644 --- a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java +++ b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java @@ -14,11 +14,10 @@ import org.transdroid.lite.gui.navigation.FilterItem; import org.transdroid.lite.gui.navigation.FilterSeparatorView; import org.transdroid.lite.gui.navigation.NavigationHelper; -import android.widget.ListView; - import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.OnNavigationListener; import com.actionbarsherlock.app.SherlockFragmentActivity; +import com.actionbarsherlock.view.SherlockListView; @EActivity(R.layout.activity_torrents) @OptionsMenu(R.menu.activity_torrents) @@ -28,7 +27,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @Bean protected NavigationHelper navigationHelper; @ViewById - protected ListView filtersList; + protected SherlockListView filtersList; protected FilterAdapter navigationListAdapter = null; protected FilterAdapter navigationSpinnerAdapter = null; @@ -57,6 +56,9 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi } + /** + * Called when an item in the action bar navigation spinner was selected + */ @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { Object item = navigationSpinnerAdapter.getItem(itemPosition); @@ -71,7 +73,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi /** * A new filter was selected; update the view over the current data - * @param selected + * @param selected True if * @param item */ @ItemSelect(R.id.filters_list) From e01555ae5ff7865ad89b2e93915a7164411e2173 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Mon, 4 Mar 2013 23:34:46 +0100 Subject: [PATCH 05/60] Creating new preferences screens. --- external/ColorPickerPreference/.classpath | 8 + external/ColorPickerPreference/.gitattributes | 2 + external/ColorPickerPreference/.gitignore | 4 + external/ColorPickerPreference/.project | 33 + .../ColorPickerPreference/AndroidManifest.xml | 18 + external/ColorPickerPreference/CHANGELOG.rst | 26 + external/ColorPickerPreference/LICENSE | 15 + external/ColorPickerPreference/README.rst | 47 + external/ColorPickerPreference/proguard.cfg | 34 + .../ColorPickerPreference/project.properties | 12 + .../res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes .../res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes .../res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes .../res/layout-land/dialog_color_picker.xml | 77 ++ .../res/layout/dialog_color_picker.xml | 78 ++ .../res/values/integer.xml | 5 + .../res/values/strings.xml | 21 + .../res/xml/settings.xml | 32 + external/ColorPickerPreference/screen_1.png | Bin 0 -> 124593 bytes external/ColorPickerPreference/screen_2.png | Bin 0 -> 68429 bytes .../colorpicker/AlphaPatternDrawable.java | 128 +++ .../colorpicker/ColorPickerDialog.java | 142 +++ .../colorpicker/ColorPickerPanelView.java | 171 ++++ .../colorpicker/ColorPickerPreference.java | 287 ++++++ .../colorpicker/ColorPickerView.java | 952 ++++++++++++++++++ .../preference/colorpicker/Test.java | 43 + lite/.factorypath | 2 +- lite/.project | 2 +- lite/AndroidManifest.xml | 17 +- lite/project.properties | 1 + lite/res/drawable-hdpi/ic_priority_high.png | Bin 0 -> 1194 bytes lite/res/drawable-hdpi/ic_priority_low.png | Bin 0 -> 848 bytes lite/res/drawable-hdpi/ic_priority_normal.png | Bin 0 -> 1206 bytes lite/res/drawable-hdpi/ic_priority_off.png | Bin 0 -> 1118 bytes lite/res/layout/list_item_torrent.xml | 89 ++ lite/res/values/attrs.xml | 7 + lite/res/values/colors.xml | 1 + lite/res/values/strings.xml | 141 ++- lite/res/xml/pref_about.xml | 20 + lite/res/xml/pref_main.xml | 52 + lite/res/xml/pref_notifications.xml | 47 + lite/res/xml/pref_rssfeed.xml | 21 + lite/res/xml/pref_server.xml | 108 ++ lite/res/xml/pref_websearch.xml | 16 + .../view/SherlockListView.java | 337 +++++++ .../widget/CheckableRelativeLayout.java | 100 ++ .../fr/marvinlabs/widget/InertCheckBox.java | 70 ++ .../lite/app/search/SearchHelper.java | 109 ++ .../lite/app/search/SearchResult.java | 64 ++ .../lite/app/search/SearchSite.java | 40 + .../lite/app/settings/AboutSettings.java | 30 + .../app/settings/ApplicationSettings.java | 140 +++ .../app/settings/NotificationSettings.java | 97 ++ .../lite/app/settings/RssfeedSetting.java | 67 ++ .../lite/app/settings/ServerSetting.java | 195 ++++ .../lite/app/settings/WebsearchSetting.java | 48 + .../transdroid/lite/gui/DetailsFagment.java | 2 +- .../transdroid/lite/gui/TorrentsActivity.java | 26 +- .../transdroid/lite/gui/TorrentsFragment.java | 2 +- .../lite/gui/lists/TorrentProgressBar.java | 110 ++ .../lite/gui/navigation/FilterAdapter.java | 14 +- .../lite/gui/navigation/FilterItemView.java | 2 +- .../gui/navigation/FilterSeparatorView.java | 2 +- .../transdroid/lite/gui/navigation/Label.java | 20 + .../lite/gui/navigation/StatusType.java | 75 ++ .../gui/settings/MainSettingsActivity.java | 164 +++ .../gui/settings/OtherSettingsActivity.java | 31 + .../lite/gui/settings/RssfeedPreference.java | 59 ++ .../gui/settings/RssfeedSettingsActivity.java | 46 + .../lite/gui/settings/ServerPreference.java | 59 ++ .../gui/settings/ServerSettingsActivity.java | 94 ++ .../gui/settings/WebsearchPreference.java | 59 ++ .../settings/WebsearchSettingsActivity.java | 45 + 73 files changed, 4740 insertions(+), 26 deletions(-) create mode 100644 external/ColorPickerPreference/.classpath create mode 100644 external/ColorPickerPreference/.gitattributes create mode 100644 external/ColorPickerPreference/.gitignore create mode 100644 external/ColorPickerPreference/.project create mode 100644 external/ColorPickerPreference/AndroidManifest.xml create mode 100644 external/ColorPickerPreference/CHANGELOG.rst create mode 100644 external/ColorPickerPreference/LICENSE create mode 100644 external/ColorPickerPreference/README.rst create mode 100644 external/ColorPickerPreference/proguard.cfg create mode 100644 external/ColorPickerPreference/project.properties create mode 100644 external/ColorPickerPreference/res/drawable-hdpi/icon.png create mode 100644 external/ColorPickerPreference/res/drawable-ldpi/icon.png create mode 100644 external/ColorPickerPreference/res/drawable-mdpi/icon.png create mode 100644 external/ColorPickerPreference/res/layout-land/dialog_color_picker.xml create mode 100644 external/ColorPickerPreference/res/layout/dialog_color_picker.xml create mode 100644 external/ColorPickerPreference/res/values/integer.xml create mode 100644 external/ColorPickerPreference/res/values/strings.xml create mode 100644 external/ColorPickerPreference/res/xml/settings.xml create mode 100644 external/ColorPickerPreference/screen_1.png create mode 100644 external/ColorPickerPreference/screen_2.png create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java create mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java create mode 100644 lite/res/drawable-hdpi/ic_priority_high.png create mode 100644 lite/res/drawable-hdpi/ic_priority_low.png create mode 100644 lite/res/drawable-hdpi/ic_priority_normal.png create mode 100644 lite/res/drawable-hdpi/ic_priority_off.png create mode 100644 lite/res/layout/list_item_torrent.xml create mode 100644 lite/res/values/attrs.xml create mode 100644 lite/res/xml/pref_about.xml create mode 100644 lite/res/xml/pref_main.xml create mode 100644 lite/res/xml/pref_notifications.xml create mode 100644 lite/res/xml/pref_rssfeed.xml create mode 100644 lite/res/xml/pref_server.xml create mode 100644 lite/res/xml/pref_websearch.xml create mode 100644 lite/src/com/actionbarsherlock/view/SherlockListView.java create mode 100644 lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java create mode 100644 lite/src/fr/marvinlabs/widget/InertCheckBox.java create mode 100644 lite/src/org/transdroid/lite/app/search/SearchHelper.java create mode 100644 lite/src/org/transdroid/lite/app/search/SearchResult.java create mode 100644 lite/src/org/transdroid/lite/app/search/SearchSite.java create mode 100644 lite/src/org/transdroid/lite/app/settings/AboutSettings.java create mode 100644 lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java create mode 100644 lite/src/org/transdroid/lite/app/settings/NotificationSettings.java create mode 100644 lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java create mode 100644 lite/src/org/transdroid/lite/app/settings/ServerSetting.java create mode 100644 lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java create mode 100644 lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/Label.java create mode 100644 lite/src/org/transdroid/lite/gui/navigation/StatusType.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/ServerPreference.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java create mode 100644 lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java diff --git a/external/ColorPickerPreference/.classpath b/external/ColorPickerPreference/.classpath new file mode 100644 index 00000000..a4763d1e --- /dev/null +++ b/external/ColorPickerPreference/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/external/ColorPickerPreference/.gitattributes b/external/ColorPickerPreference/.gitattributes new file mode 100644 index 00000000..dfe07704 --- /dev/null +++ b/external/ColorPickerPreference/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/external/ColorPickerPreference/.gitignore b/external/ColorPickerPreference/.gitignore new file mode 100644 index 00000000..4b1a60ae --- /dev/null +++ b/external/ColorPickerPreference/.gitignore @@ -0,0 +1,4 @@ +/bin +/gen +.classpath +.project \ No newline at end of file diff --git a/external/ColorPickerPreference/.project b/external/ColorPickerPreference/.project new file mode 100644 index 00000000..b3e7744d --- /dev/null +++ b/external/ColorPickerPreference/.project @@ -0,0 +1,33 @@ + + + ColorPickerPreference + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/external/ColorPickerPreference/AndroidManifest.xml b/external/ColorPickerPreference/AndroidManifest.xml new file mode 100644 index 00000000..e09215a9 --- /dev/null +++ b/external/ColorPickerPreference/AndroidManifest.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/external/ColorPickerPreference/CHANGELOG.rst b/external/ColorPickerPreference/CHANGELOG.rst new file mode 100644 index 00000000..5342d2ac --- /dev/null +++ b/external/ColorPickerPreference/CHANGELOG.rst @@ -0,0 +1,26 @@ +================================ +ColorPickerPreference Change Log +================================ + +2011-02-11 v1.11: +---------------- +fix: color controls not visible in landscape orientation +fix: colorPickerDialog constructor was protected + +2011-01-25 v1.1: +---------------- +* new: Alpha Slider is disabled by default +* new: Alpha Slider can be enabled: + * with preference XML using attribute alphaSlider="true" + * with function setAlphaSliderEnabled(true) +* new: defaultValue in preference XML now accepts HEX color code: + * #FF00FF, rgb + * #FF00FF00, argb + +2011-01-20 v1.01: +----------------- +fix: sometimes preview color disappear + +2011-01-19 v1.0: +---------------- +release \ No newline at end of file diff --git a/external/ColorPickerPreference/LICENSE b/external/ColorPickerPreference/LICENSE new file mode 100644 index 00000000..da9cd5cb --- /dev/null +++ b/external/ColorPickerPreference/LICENSE @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2011 Sergey Margaritov & Daniel Nilsson + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ \ No newline at end of file diff --git a/external/ColorPickerPreference/README.rst b/external/ColorPickerPreference/README.rst new file mode 100644 index 00000000..bffa417a --- /dev/null +++ b/external/ColorPickerPreference/README.rst @@ -0,0 +1,47 @@ +===================== +ColorPickerPreference +===================== + +Generally used classes by Daniel Nilsson. +ColorPickerPreference class by Sergey Margaritov. +Packed by Sergey Margaritov. + +Features +======== + +* Color Area +* Hue Slider +* Alpha Slider (disabled by default) +* Old & New Color +* Color Preview in Preferences List + +Requirements +============ + +Tested with APIv7, but maybe will work with early versions + +Usage +===== + +You can see some tests inside + +:: + + + alphaSlider="true" + /> + +To enable Alpha Slider in your code use function: +:: + setAlphaSliderEnabled(boolean enable) + +Screens +======= + +* .. image:: https://github.com/attenzione/android-ColorPickerPreference/raw/master/screen_1.png + +* .. image:: https://github.com/attenzione/android-ColorPickerPreference/raw/master/screen_2.png \ No newline at end of file diff --git a/external/ColorPickerPreference/proguard.cfg b/external/ColorPickerPreference/proguard.cfg new file mode 100644 index 00000000..8ad7d335 --- /dev/null +++ b/external/ColorPickerPreference/proguard.cfg @@ -0,0 +1,34 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class com.android.vending.licensing.ILicensingService + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/external/ColorPickerPreference/project.properties b/external/ColorPickerPreference/project.properties new file mode 100644 index 00000000..616f300c --- /dev/null +++ b/external/ColorPickerPreference/project.properties @@ -0,0 +1,12 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +android.library=true +# Project target. +target=android-16 diff --git a/external/ColorPickerPreference/res/drawable-hdpi/icon.png b/external/ColorPickerPreference/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8074c4c571b8cd19e27f4ee5545df367420686d7 GIT binary patch literal 4147 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 literal 0 HcmV?d00001 diff --git a/external/ColorPickerPreference/res/drawable-ldpi/icon.png b/external/ColorPickerPreference/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1095584ec21f71cd0afc9e0993aa2209671b590c GIT binary patch literal 1723 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 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/external/ColorPickerPreference/res/layout/dialog_color_picker.xml b/external/ColorPickerPreference/res/layout/dialog_color_picker.xml new file mode 100644 index 00000000..00ee3753 --- /dev/null +++ b/external/ColorPickerPreference/res/layout/dialog_color_picker.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/external/ColorPickerPreference/res/values/integer.xml b/external/ColorPickerPreference/res/values/integer.xml new file mode 100644 index 00000000..e3626064 --- /dev/null +++ b/external/ColorPickerPreference/res/values/integer.xml @@ -0,0 +1,5 @@ + + + 0xff000000 + 0xff00ff00 + \ No newline at end of file diff --git a/external/ColorPickerPreference/res/values/strings.xml b/external/ColorPickerPreference/res/values/strings.xml new file mode 100644 index 00000000..251a66f4 --- /dev/null +++ b/external/ColorPickerPreference/res/values/strings.xml @@ -0,0 +1,21 @@ + + + + Hello World, Main! + ColorPickerPreference + + + Color Picker + Press on Color to apply + + + Category + Color 1 + black color by default, set by reference + Color 2 + not persistent color\nalpha slider added via code + Color 3 + picker with alpha slider + Color 4 + color set with HEX code in xml + diff --git a/external/ColorPickerPreference/res/xml/settings.xml b/external/ColorPickerPreference/res/xml/settings.xml new file mode 100644 index 00000000..0cd87af9 --- /dev/null +++ b/external/ColorPickerPreference/res/xml/settings.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/external/ColorPickerPreference/screen_1.png b/external/ColorPickerPreference/screen_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4798dae717ac258baec0c388b218221f258415b7 GIT binary patch literal 124593 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∋XWxe#A7 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 literal 0 HcmV?d00001 diff --git a/external/ColorPickerPreference/screen_2.png b/external/ColorPickerPreference/screen_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb2d671930d3c5e8557bcda386bb0f0146d3c24 GIT binary patch literal 68429 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 z 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 Z5vG4mEL+W+cOig(veHT~izJN${}25Pibwze literal 0 HcmV?d00001 diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java new file mode 100644 index 00000000..ff9c3c84 --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; + +/** + * This drawable that draws a simple white and gray chessboard pattern. + * It's pattern you will often see as a background behind a + * partly transparent image in many applications. + * @author Daniel Nilsson + */ +public class AlphaPatternDrawable extends Drawable { + + private int mRectangleSize = 10; + + private Paint mPaint = new Paint(); + private Paint mPaintWhite = new Paint(); + private Paint mPaintGray = new Paint(); + + private int numRectanglesHorizontal; + private int numRectanglesVertical; + + /** + * Bitmap in which the pattern will be cahched. + */ + private Bitmap mBitmap; + + public AlphaPatternDrawable(int rectangleSize) { + mRectangleSize = rectangleSize; + mPaintWhite.setColor(0xffffffff); + mPaintGray.setColor(0xffcbcbcb); + } + + @Override + public void draw(Canvas canvas) { + canvas.drawBitmap(mBitmap, null, getBounds(), mPaint); + } + + @Override + public int getOpacity() { + return 0; + } + + @Override + public void setAlpha(int alpha) { + throw new UnsupportedOperationException("Alpha is not supported by this drawwable."); + } + + @Override + public void setColorFilter(ColorFilter cf) { + throw new UnsupportedOperationException("ColorFilter is not supported by this drawwable."); + } + + @Override + protected void onBoundsChange(Rect bounds) { + super.onBoundsChange(bounds); + + int height = bounds.height(); + int width = bounds.width(); + + numRectanglesHorizontal = (int) Math.ceil((width / mRectangleSize)); + numRectanglesVertical = (int) Math.ceil(height / mRectangleSize); + + generatePatternBitmap(); + + } + + /** + * This will generate a bitmap with the pattern + * as big as the rectangle we were allow to draw on. + * We do this to chache the bitmap so we don't need to + * recreate it each time draw() is called since it + * takes a few milliseconds. + */ + private void generatePatternBitmap(){ + + if(getBounds().width() <= 0 || getBounds().height() <= 0){ + return; + } + + mBitmap = Bitmap.createBitmap(getBounds().width(), getBounds().height(), Config.ARGB_8888); + Canvas canvas = new Canvas(mBitmap); + + Rect r = new Rect(); + boolean verticalStartWhite = true; + for (int i = 0; i <= numRectanglesVertical; i++) { + + boolean isWhite = verticalStartWhite; + for (int j = 0; j <= numRectanglesHorizontal; j++) { + + r.top = i * mRectangleSize; + r.left = j * mRectangleSize; + r.bottom = r.top + mRectangleSize; + r.right = r.left + mRectangleSize; + + canvas.drawRect(r, isWhite ? mPaintWhite : mPaintGray); + + isWhite = !isWhite; + } + + verticalStartWhite = !verticalStartWhite; + + } + + } + +} \ No newline at end of file diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java new file mode 100644 index 00000000..a63d48c3 --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java @@ -0,0 +1,142 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import android.app.Dialog; +import android.content.Context; +import android.graphics.PixelFormat; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.LinearLayout; + +public class ColorPickerDialog + extends + Dialog + implements + ColorPickerView.OnColorChangedListener, + View.OnClickListener { + + private ColorPickerView mColorPicker; + + private ColorPickerPanelView mOldColor; + private ColorPickerPanelView mNewColor; + + private OnColorChangedListener mListener; + + public interface OnColorChangedListener { + public void onColorChanged(int color); + } + + public ColorPickerDialog(Context context, int initialColor) { + super(context); + + init(initialColor); + } + + private void init(int color) { + // To fight color banding. + getWindow().setFormat(PixelFormat.RGBA_8888); + + setUp(color); + + } + + private void setUp(int color) { + + LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + View layout = inflater.inflate(R.layout.dialog_color_picker, null); + + setContentView(layout); + + setTitle(R.string.dialog_color_picker); + + mColorPicker = (ColorPickerView) layout.findViewById(R.id.color_picker_view); + mOldColor = (ColorPickerPanelView) layout.findViewById(R.id.old_color_panel); + mNewColor = (ColorPickerPanelView) layout.findViewById(R.id.new_color_panel); + + ((LinearLayout) mOldColor.getParent()).setPadding( + Math.round(mColorPicker.getDrawingOffset()), + 0, + Math.round(mColorPicker.getDrawingOffset()), + 0 + ); + + mOldColor.setOnClickListener(this); + mNewColor.setOnClickListener(this); + mColorPicker.setOnColorChangedListener(this); + mOldColor.setColor(color); + mColorPicker.setColor(color, true); + + } + + @Override + public void onColorChanged(int color) { + + mNewColor.setColor(color); + + /* + if (mListener != null) { + mListener.onColorChanged(color); + } + */ + + } + + public void setAlphaSliderVisible(boolean visible) { + mColorPicker.setAlphaSliderVisible(visible); + } + + /** + * Set a OnColorChangedListener to get notified when the color + * selected by the user has changed. + * @param listener + */ + public void setOnColorChangedListener(OnColorChangedListener listener){ + mListener = listener; + } + + public int getColor() { + return mColorPicker.getColor(); + } + + @Override + public void onClick(View v) { + if (v.getId() == R.id.new_color_panel) { + if (mListener != null) { + mListener.onColorChanged(mNewColor.getColor()); + } + } + dismiss(); + } + + @Override + public Bundle onSaveInstanceState() { + Bundle state = super.onSaveInstanceState(); + state.putInt("old_color", mOldColor.getColor()); + state.putInt("new_color", mNewColor.getColor()); + return state; + } + + @Override + public void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mOldColor.setColor(savedInstanceState.getInt("old_color")); + mColorPicker.setColor(savedInstanceState.getInt("new_color"), true); + } +} diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java new file mode 100644 index 00000000..b0003662 --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.view.View; + +/** + * This class draws a panel which which will be filled with a color which can be set. + * It can be used to show the currently selected color which you will get from + * the {@link ColorPickerView}. + * @author Daniel Nilsson + * + */ +public class ColorPickerPanelView extends View { + + /** + * The width in pixels of the border + * surrounding the color panel. + */ + private final static float BORDER_WIDTH_PX = 1; + + private float mDensity = 1f; + + private int mBorderColor = 0xff6E6E6E; + private int mColor = 0xff000000; + + private Paint mBorderPaint; + private Paint mColorPaint; + + private RectF mDrawingRect; + private RectF mColorRect; + + private AlphaPatternDrawable mAlphaPattern; + + + public ColorPickerPanelView(Context context){ + this(context, null); + } + + public ColorPickerPanelView(Context context, AttributeSet attrs){ + this(context, attrs, 0); + } + + public ColorPickerPanelView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + private void init(){ + mBorderPaint = new Paint(); + mColorPaint = new Paint(); + mDensity = getContext().getResources().getDisplayMetrics().density; + } + + + @Override + protected void onDraw(Canvas canvas) { + + final RectF rect = mColorRect; + + if(BORDER_WIDTH_PX > 0){ + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(mDrawingRect, mBorderPaint); + } + + if(mAlphaPattern != null){ + mAlphaPattern.draw(canvas); + } + + mColorPaint.setColor(mColor); + + canvas.drawRect(rect, mColorPaint); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + + setMeasuredDimension(width, height); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + mDrawingRect = new RectF(); + mDrawingRect.left = getPaddingLeft(); + mDrawingRect.right = w - getPaddingRight(); + mDrawingRect.top = getPaddingTop(); + mDrawingRect.bottom = h - getPaddingBottom(); + + setUpColorRect(); + + } + + private void setUpColorRect(){ + final RectF dRect = mDrawingRect; + + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX; + float right = dRect.right - BORDER_WIDTH_PX; + + mColorRect = new RectF(left,top, right, bottom); + + mAlphaPattern = new AlphaPatternDrawable((int)(5 * mDensity)); + + mAlphaPattern.setBounds( + Math.round(mColorRect.left), + Math.round(mColorRect.top), + Math.round(mColorRect.right), + Math.round(mColorRect.bottom) + ); + + } + + /** + * Set the color that should be shown by this view. + * @param color + */ + public void setColor(int color){ + mColor = color; + invalidate(); + } + + /** + * Get the color currently show by this view. + * @return + */ + public int getColor(){ + return mColor; + } + + /** + * Set the color of the border surrounding the panel. + * @param color + */ + public void setBorderColor(int color){ + mBorderColor = color; + invalidate(); + } + + /** + * Get the color of the border surrounding the panel. + */ + public int getBorderColor(){ + return mBorderColor; + } + +} \ No newline at end of file diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java new file mode 100644 index 00000000..8dded67a --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java @@ -0,0 +1,287 @@ +/* + * Copyright (C) 2011 Sergey Margaritov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; +import android.preference.Preference; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; + +/** + * A preference type that allows a user to choose a time + * @author Sergey Margaritov + */ +public class ColorPickerPreference + extends + Preference + implements + Preference.OnPreferenceClickListener, + ColorPickerDialog.OnColorChangedListener { + + View mView; + ColorPickerDialog mDialog; + private int mValue = Color.BLACK; + private float mDensity = 0; + private boolean mAlphaSliderEnabled = false; + + public ColorPickerPreference(Context context) { + super(context); + init(context, null); + } + + public ColorPickerPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public ColorPickerPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs); + } + + @Override + protected Object onGetDefaultValue(TypedArray a, int index) { + return a.getColor(index, Color.BLACK); + } + + @Override + protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { + onColorChanged(restoreValue ? getPersistedInt(mValue) : (Integer) defaultValue); + } + + private void init(Context context, AttributeSet attrs) { + mDensity = getContext().getResources().getDisplayMetrics().density; + setOnPreferenceClickListener(this); + if (attrs != null) { + mAlphaSliderEnabled = attrs.getAttributeBooleanValue(null, "alphaSlider", false); + } + } + + @Override + protected void onBindView(View view) { + super.onBindView(view); + mView = view; + setPreviewColor(); + } + + private void setPreviewColor() { + if (mView == null) return; + ImageView iView = new ImageView(getContext()); + LinearLayout widgetFrameView = ((LinearLayout)mView.findViewById(android.R.id.widget_frame)); + if (widgetFrameView == null) return; + widgetFrameView.setVisibility(View.VISIBLE); + widgetFrameView.setPadding( + widgetFrameView.getPaddingLeft(), + widgetFrameView.getPaddingTop(), + (int)(mDensity * 8), + widgetFrameView.getPaddingBottom() + ); + // remove already create preview image + int count = widgetFrameView.getChildCount(); + if (count > 0) { + widgetFrameView.removeViews(0, count); + } + widgetFrameView.addView(iView); + widgetFrameView.setMinimumWidth(0); + iView.setBackgroundDrawable(new AlphaPatternDrawable((int)(5 * mDensity))); + iView.setImageBitmap(getPreviewBitmap()); + } + + private Bitmap getPreviewBitmap() { + int d = (int) (mDensity * 31); //30dip + int color = mValue; + Bitmap bm = Bitmap.createBitmap(d, d, Config.ARGB_8888); + int w = bm.getWidth(); + int h = bm.getHeight(); + int c = color; + for (int i = 0; i < w; i++) { + for (int j = i; j < h; j++) { + c = (i <= 1 || j <= 1 || i >= w-2 || j >= h-2) ? Color.GRAY : color; + bm.setPixel(i, j, c); + if (i != j) { + bm.setPixel(j, i, c); + } + } + } + + return bm; + } + + @Override + public void onColorChanged(int color) { + if (isPersistent()) { + persistInt(color); + } + mValue = color; + setPreviewColor(); + try { + getOnPreferenceChangeListener().onPreferenceChange(this, color); + } catch (NullPointerException e) { + + } + } + + public boolean onPreferenceClick(Preference preference) { + showDialog(null); + return false; + } + + protected void showDialog(Bundle state) { + mDialog = new ColorPickerDialog(getContext(), mValue); + mDialog.setOnColorChangedListener(this); + if (mAlphaSliderEnabled) { + mDialog.setAlphaSliderVisible(true); + } + if (state != null) { + mDialog.onRestoreInstanceState(state); + } + mDialog.show(); + } + + /** + * Toggle Alpha Slider visibility (by default it's disabled) + * @param enable + */ + public void setAlphaSliderEnabled(boolean enable) { + mAlphaSliderEnabled = enable; + } + + /** + * For custom purposes. Not used by ColorPickerPreferrence + * @param color + * @author Unknown + */ + public static String convertToARGB(int color) { + String alpha = Integer.toHexString(Color.alpha(color)); + String red = Integer.toHexString(Color.red(color)); + String green = Integer.toHexString(Color.green(color)); + String blue = Integer.toHexString(Color.blue(color)); + + if (alpha.length() == 1) { + alpha = "0" + alpha; + } + + if (red.length() == 1) { + red = "0" + red; + } + + if (green.length() == 1) { + green = "0" + green; + } + + if (blue.length() == 1) { + blue = "0" + blue; + } + + return "#" + alpha + red + green + blue; + } + + /** + * For custom purposes. Not used by ColorPickerPreferrence + * @param argb + * @throws NumberFormatException + * @author Unknown + */ + public static int convertToColorInt(String argb) throws NumberFormatException { + + if (argb.startsWith("#")) { + argb = argb.replace("#", ""); + } + + int alpha = -1, red = -1, green = -1, blue = -1; + + if (argb.length() == 8) { + alpha = Integer.parseInt(argb.substring(0, 2), 16); + red = Integer.parseInt(argb.substring(2, 4), 16); + green = Integer.parseInt(argb.substring(4, 6), 16); + blue = Integer.parseInt(argb.substring(6, 8), 16); + } + else if (argb.length() == 6) { + alpha = 255; + red = Integer.parseInt(argb.substring(0, 2), 16); + green = Integer.parseInt(argb.substring(2, 4), 16); + blue = Integer.parseInt(argb.substring(4, 6), 16); + } + + return Color.argb(alpha, red, green, blue); + } + + @Override + protected Parcelable onSaveInstanceState() { + final Parcelable superState = super.onSaveInstanceState(); + if (mDialog == null || !mDialog.isShowing()) { + return superState; + } + + final SavedState myState = new SavedState(superState); + myState.dialogBundle = mDialog.onSaveInstanceState(); + return myState; + } + + @Override + protected void onRestoreInstanceState(Parcelable state) { + if (state == null || !(state instanceof SavedState)) { + // Didn't save state for us in onSaveInstanceState + super.onRestoreInstanceState(state); + return; + } + + SavedState myState = (SavedState) state; + super.onRestoreInstanceState(myState.getSuperState()); + showDialog(myState.dialogBundle); + } + + private static class SavedState extends BaseSavedState { + Bundle dialogBundle; + + public SavedState(Parcel source) { + super(source); + dialogBundle = source.readBundle(); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + super.writeToParcel(dest, flags); + dest.writeBundle(dialogBundle); + } + + public SavedState(Parcelable superState) { + super(superState); + } + + @SuppressWarnings("unused") + public static final Parcelable.Creator CREATOR = + new Parcelable.Creator() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + } +} \ No newline at end of file diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java new file mode 100644 index 00000000..c0ec0531 --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java @@ -0,0 +1,952 @@ +/* + * Copyright (C) 2010 Daniel Nilsson + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ComposeShader; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.Point; +import android.graphics.PorterDuff; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.Paint.Align; +import android.graphics.Paint.Style; +import android.graphics.Shader.TileMode; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +/** + * Displays a color picker to the user and allow them + * to select a color. A slider for the alpha channel is + * also available. Enable it by setting + * setAlphaSliderVisible(boolean) to true. + * @author Daniel Nilsson + */ +public class ColorPickerView extends View { + + private final static int PANEL_SAT_VAL = 0; + private final static int PANEL_HUE = 1; + private final static int PANEL_ALPHA = 2; + + /** + * The width in pixels of the border + * surrounding all color panels. + */ + private final static float BORDER_WIDTH_PX = 1; + + /** + * The width in dp of the hue panel. + */ + private float HUE_PANEL_WIDTH = 30f; + /** + * The height in dp of the alpha panel + */ + private float ALPHA_PANEL_HEIGHT = 20f; + /** + * The distance in dp between the different + * color panels. + */ + private float PANEL_SPACING = 10f; + /** + * The radius in dp of the color palette tracker circle. + */ + private float PALETTE_CIRCLE_TRACKER_RADIUS = 5f; + /** + * The dp which the tracker of the hue or alpha panel + * will extend outside of its bounds. + */ + private float RECTANGLE_TRACKER_OFFSET = 2f; + + + private float mDensity = 1f; + + private OnColorChangedListener mListener; + + private Paint mSatValPaint; + private Paint mSatValTrackerPaint; + + private Paint mHuePaint; + private Paint mHueTrackerPaint; + + private Paint mAlphaPaint; + private Paint mAlphaTextPaint; + + private Paint mBorderPaint; + + private Shader mValShader; + private Shader mSatShader; + private Shader mHueShader; + private Shader mAlphaShader; + + private int mAlpha = 0xff; + private float mHue = 360f; + private float mSat = 0f; + private float mVal = 0f; + + private String mAlphaSliderText = ""; + private int mSliderTrackerColor = 0xff1c1c1c; + private int mBorderColor = 0xff6E6E6E; + private boolean mShowAlphaPanel = false; + + /* + * To remember which panel that has the "focus" when + * processing hardware button data. + */ + private int mLastTouchedPanel = PANEL_SAT_VAL; + + /** + * Offset from the edge we must have or else + * the finger tracker will get clipped when + * it is drawn outside of the view. + */ + private float mDrawingOffset; + + + /* + * Distance form the edges of the view + * of where we are allowed to draw. + */ + private RectF mDrawingRect; + + private RectF mSatValRect; + private RectF mHueRect; + private RectF mAlphaRect; + + private AlphaPatternDrawable mAlphaPattern; + + private Point mStartTouchPoint = null; + + public interface OnColorChangedListener { + public void onColorChanged(int color); + } + + public ColorPickerView(Context context){ + this(context, null); + } + + public ColorPickerView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public ColorPickerView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + private void init(){ + mDensity = getContext().getResources().getDisplayMetrics().density; + PALETTE_CIRCLE_TRACKER_RADIUS *= mDensity; + RECTANGLE_TRACKER_OFFSET *= mDensity; + HUE_PANEL_WIDTH *= mDensity; + ALPHA_PANEL_HEIGHT *= mDensity; + PANEL_SPACING = PANEL_SPACING * mDensity; + + mDrawingOffset = calculateRequiredOffset(); + + initPaintTools(); + + //Needed for receiving trackball motion events. + setFocusable(true); + setFocusableInTouchMode(true); + } + + private void initPaintTools(){ + + mSatValPaint = new Paint(); + mSatValTrackerPaint = new Paint(); + mHuePaint = new Paint(); + mHueTrackerPaint = new Paint(); + mAlphaPaint = new Paint(); + mAlphaTextPaint = new Paint(); + mBorderPaint = new Paint(); + + + mSatValTrackerPaint.setStyle(Style.STROKE); + mSatValTrackerPaint.setStrokeWidth(2f * mDensity); + mSatValTrackerPaint.setAntiAlias(true); + + mHueTrackerPaint.setColor(mSliderTrackerColor); + mHueTrackerPaint.setStyle(Style.STROKE); + mHueTrackerPaint.setStrokeWidth(2f * mDensity); + mHueTrackerPaint.setAntiAlias(true); + + mAlphaTextPaint.setColor(0xff1c1c1c); + mAlphaTextPaint.setTextSize(14f * mDensity); + mAlphaTextPaint.setAntiAlias(true); + mAlphaTextPaint.setTextAlign(Align.CENTER); + mAlphaTextPaint.setFakeBoldText(true); + + + } + + private float calculateRequiredOffset(){ + float offset = Math.max(PALETTE_CIRCLE_TRACKER_RADIUS, RECTANGLE_TRACKER_OFFSET); + offset = Math.max(offset, BORDER_WIDTH_PX * mDensity); + + return offset * 1.5f; + } + + private int[] buildHueColorArray(){ + + int[] hue = new int[361]; + + int count = 0; + for(int i = hue.length -1; i >= 0; i--, count++){ + hue[count] = Color.HSVToColor(new float[]{i, 1f, 1f}); + } + + return hue; + } + + + @Override + protected void onDraw(Canvas canvas) { + + if(mDrawingRect.width() <= 0 || mDrawingRect.height() <= 0) return; + + drawSatValPanel(canvas); + drawHuePanel(canvas); + drawAlphaPanel(canvas); + + } + + private void drawSatValPanel(Canvas canvas){ + + final RectF rect = mSatValRect; + + if(BORDER_WIDTH_PX > 0){ + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(mDrawingRect.left, mDrawingRect.top, rect.right + BORDER_WIDTH_PX, rect.bottom + BORDER_WIDTH_PX, mBorderPaint); + } + + if (mValShader == null) { + mValShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, + 0xffffffff, 0xff000000, TileMode.CLAMP); + } + + int rgb = Color.HSVToColor(new float[]{mHue,1f,1f}); + + mSatShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, + 0xffffffff, rgb, TileMode.CLAMP); + ComposeShader mShader = new ComposeShader(mValShader, mSatShader, PorterDuff.Mode.MULTIPLY); + mSatValPaint.setShader(mShader); + + canvas.drawRect(rect, mSatValPaint); + + Point p = satValToPoint(mSat, mVal); + + mSatValTrackerPaint.setColor(0xff000000); + canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS - 1f * mDensity, mSatValTrackerPaint); + + mSatValTrackerPaint.setColor(0xffdddddd); + canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS, mSatValTrackerPaint); + + } + + private void drawHuePanel(Canvas canvas){ + + final RectF rect = mHueRect; + + if(BORDER_WIDTH_PX > 0){ + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(rect.left - BORDER_WIDTH_PX, + rect.top - BORDER_WIDTH_PX, + rect.right + BORDER_WIDTH_PX, + rect.bottom + BORDER_WIDTH_PX, + mBorderPaint); + } + + if (mHueShader == null) { + mHueShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, buildHueColorArray(), null, TileMode.CLAMP); + mHuePaint.setShader(mHueShader); + } + + canvas.drawRect(rect, mHuePaint); + + float rectHeight = 4 * mDensity / 2; + + Point p = hueToPoint(mHue); + + RectF r = new RectF(); + r.left = rect.left - RECTANGLE_TRACKER_OFFSET; + r.right = rect.right + RECTANGLE_TRACKER_OFFSET; + r.top = p.y - rectHeight; + r.bottom = p.y + rectHeight; + + + canvas.drawRoundRect(r, 2, 2, mHueTrackerPaint); + + } + + private void drawAlphaPanel(Canvas canvas){ + + if(!mShowAlphaPanel || mAlphaRect == null || mAlphaPattern == null) return; + + final RectF rect = mAlphaRect; + + if(BORDER_WIDTH_PX > 0){ + mBorderPaint.setColor(mBorderColor); + canvas.drawRect(rect.left - BORDER_WIDTH_PX, + rect.top - BORDER_WIDTH_PX, + rect.right + BORDER_WIDTH_PX, + rect.bottom + BORDER_WIDTH_PX, + mBorderPaint); + } + + + mAlphaPattern.draw(canvas); + + float[] hsv = new float[]{mHue,mSat,mVal}; + int color = Color.HSVToColor(hsv); + int acolor = Color.HSVToColor(0, hsv); + + mAlphaShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, + color, acolor, TileMode.CLAMP); + + + mAlphaPaint.setShader(mAlphaShader); + + canvas.drawRect(rect, mAlphaPaint); + + if(mAlphaSliderText != null && mAlphaSliderText!= ""){ + canvas.drawText(mAlphaSliderText, rect.centerX(), rect.centerY() + 4 * mDensity, mAlphaTextPaint); + } + + float rectWidth = 4 * mDensity / 2; + + Point p = alphaToPoint(mAlpha); + + RectF r = new RectF(); + r.left = p.x - rectWidth; + r.right = p.x + rectWidth; + r.top = rect.top - RECTANGLE_TRACKER_OFFSET; + r.bottom = rect.bottom + RECTANGLE_TRACKER_OFFSET; + + canvas.drawRoundRect(r, 2, 2, mHueTrackerPaint); + + } + + + private Point hueToPoint(float hue){ + + final RectF rect = mHueRect; + final float height = rect.height(); + + Point p = new Point(); + + p.y = (int) (height - (hue * height / 360f) + rect.top); + p.x = (int) rect.left; + + return p; + } + + private Point satValToPoint(float sat, float val){ + + final RectF rect = mSatValRect; + final float height = rect.height(); + final float width = rect.width(); + + Point p = new Point(); + + p.x = (int) (sat * width + rect.left); + p.y = (int) ((1f - val) * height + rect.top); + + return p; + } + + private Point alphaToPoint(int alpha){ + + final RectF rect = mAlphaRect; + final float width = rect.width(); + + Point p = new Point(); + + p.x = (int) (width - (alpha * width / 0xff) + rect.left); + p.y = (int) rect.top; + + return p; + + } + + private float[] pointToSatVal(float x, float y){ + + final RectF rect = mSatValRect; + float[] result = new float[2]; + + float width = rect.width(); + float height = rect.height(); + + if (x < rect.left){ + x = 0f; + } + else if(x > rect.right){ + x = width; + } + else{ + x = x - rect.left; + } + + if (y < rect.top){ + y = 0f; + } + else if(y > rect.bottom){ + y = height; + } + else{ + y = y - rect.top; + } + + + result[0] = 1.f / width * x; + result[1] = 1.f - (1.f / height * y); + + return result; + } + + private float pointToHue(float y){ + + final RectF rect = mHueRect; + + float height = rect.height(); + + if (y < rect.top){ + y = 0f; + } + else if(y > rect.bottom){ + y = height; + } + else{ + y = y - rect.top; + } + + return 360f - (y * 360f / height); + } + + private int pointToAlpha(int x){ + + final RectF rect = mAlphaRect; + final int width = (int) rect.width(); + + if(x < rect.left){ + x = 0; + } + else if(x > rect.right){ + x = width; + } + else{ + x = x - (int)rect.left; + } + + return 0xff - (x * 0xff / width); + + } + + + @Override + public boolean onTrackballEvent(MotionEvent event) { + + float x = event.getX(); + float y = event.getY(); + + boolean update = false; + + + if(event.getAction() == MotionEvent.ACTION_MOVE){ + + switch(mLastTouchedPanel){ + + case PANEL_SAT_VAL: + + float sat, val; + + sat = mSat + x/50f; + val = mVal - y/50f; + + if(sat < 0f){ + sat = 0f; + } + else if(sat > 1f){ + sat = 1f; + } + + if(val < 0f){ + val = 0f; + } + else if(val > 1f){ + val = 1f; + } + + mSat = sat; + mVal = val; + + update = true; + + break; + + case PANEL_HUE: + + float hue = mHue - y * 10f; + + if(hue < 0f){ + hue = 0f; + } + else if(hue > 360f){ + hue = 360f; + } + + mHue = hue; + + update = true; + + break; + + case PANEL_ALPHA: + + if(!mShowAlphaPanel || mAlphaRect == null){ + update = false; + } + else{ + + int alpha = (int) (mAlpha - x*10); + + if(alpha < 0){ + alpha = 0; + } + else if(alpha > 0xff){ + alpha = 0xff; + } + + mAlpha = alpha; + + + update = true; + } + + break; + } + + + } + + + if(update){ + + if(mListener != null){ + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); + } + + invalidate(); + return true; + } + + + return super.onTrackballEvent(event); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + + boolean update = false; + + switch(event.getAction()){ + + case MotionEvent.ACTION_DOWN: + + mStartTouchPoint = new Point((int)event.getX(), (int)event.getY()); + + update = moveTrackersIfNeeded(event); + + break; + + case MotionEvent.ACTION_MOVE: + + update = moveTrackersIfNeeded(event); + + break; + + case MotionEvent.ACTION_UP: + + mStartTouchPoint = null; + + update = moveTrackersIfNeeded(event); + + break; + + } + + if(update){ + + if(mListener != null){ + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); + } + + invalidate(); + return true; + } + + + return super.onTouchEvent(event); + } + + private boolean moveTrackersIfNeeded(MotionEvent event){ + + if(mStartTouchPoint == null) return false; + + boolean update = false; + + int startX = mStartTouchPoint.x; + int startY = mStartTouchPoint.y; + + + if(mHueRect.contains(startX, startY)){ + mLastTouchedPanel = PANEL_HUE; + + mHue = pointToHue(event.getY()); + + update = true; + } + else if(mSatValRect.contains(startX, startY)){ + + mLastTouchedPanel = PANEL_SAT_VAL; + + float[] result = pointToSatVal(event.getX(), event.getY()); + + mSat = result[0]; + mVal = result[1]; + + update = true; + } + else if(mAlphaRect != null && mAlphaRect.contains(startX, startY)){ + + mLastTouchedPanel = PANEL_ALPHA; + + mAlpha = pointToAlpha((int)event.getX()); + + update = true; + } + + + return update; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + + int width = 0; + int height = 0; + + int widthMode = MeasureSpec.getMode(widthMeasureSpec); + int heightMode = MeasureSpec.getMode(heightMeasureSpec); + + int widthAllowed = MeasureSpec.getSize(widthMeasureSpec); + int heightAllowed = MeasureSpec.getSize(heightMeasureSpec); + + widthAllowed = chooseWidth(widthMode, widthAllowed); + heightAllowed = chooseHeight(heightMode, heightAllowed); + + if(!mShowAlphaPanel){ + + height = (int) (widthAllowed - PANEL_SPACING - HUE_PANEL_WIDTH); + + //If calculated height (based on the width) is more than the allowed height. + if(height > heightAllowed || getTag().equals("landscape")) { + height = heightAllowed; + width = (int) (height + PANEL_SPACING + HUE_PANEL_WIDTH); + } + else{ + width = widthAllowed; + } + } + else{ + + width = (int) (heightAllowed - ALPHA_PANEL_HEIGHT + HUE_PANEL_WIDTH); + + if(width > widthAllowed){ + width = widthAllowed; + height = (int) (widthAllowed - HUE_PANEL_WIDTH + ALPHA_PANEL_HEIGHT); + } + else{ + height = heightAllowed; + } + + } + + setMeasuredDimension(width, height); + } + + private int chooseWidth(int mode, int size){ + if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { + return size; + } else { // (mode == MeasureSpec.UNSPECIFIED) + return getPrefferedWidth(); + } + } + + private int chooseHeight(int mode, int size){ + if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { + return size; + } else { // (mode == MeasureSpec.UNSPECIFIED) + return getPrefferedHeight(); + } + } + + private int getPrefferedWidth(){ + + int width = getPrefferedHeight(); + + if(mShowAlphaPanel){ + width -= (PANEL_SPACING + ALPHA_PANEL_HEIGHT); + } + + + return (int) (width + HUE_PANEL_WIDTH + PANEL_SPACING); + + } + + private int getPrefferedHeight(){ + + int height = (int)(200 * mDensity); + + if(mShowAlphaPanel){ + height += PANEL_SPACING + ALPHA_PANEL_HEIGHT; + } + + return height; + } + + + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + mDrawingRect = new RectF(); + mDrawingRect.left = mDrawingOffset + getPaddingLeft(); + mDrawingRect.right = w - mDrawingOffset - getPaddingRight(); + mDrawingRect.top = mDrawingOffset + getPaddingTop(); + mDrawingRect.bottom = h - mDrawingOffset - getPaddingBottom(); + + setUpSatValRect(); + setUpHueRect(); + setUpAlphaRect(); + } + + private void setUpSatValRect(){ + + final RectF dRect = mDrawingRect; + float panelSide = dRect.height() - BORDER_WIDTH_PX * 2; + + if(mShowAlphaPanel){ + panelSide -= PANEL_SPACING + ALPHA_PANEL_HEIGHT; + } + + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = top + panelSide; + float right = left + panelSide; + + mSatValRect = new RectF(left,top, right, bottom); + } + + private void setUpHueRect(){ + final RectF dRect = mDrawingRect; + + float left = dRect.right - HUE_PANEL_WIDTH + BORDER_WIDTH_PX; + float top = dRect.top + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX - (mShowAlphaPanel ? (PANEL_SPACING + ALPHA_PANEL_HEIGHT) : 0); + float right = dRect.right - BORDER_WIDTH_PX; + + mHueRect = new RectF(left, top, right, bottom); + } + + private void setUpAlphaRect() { + + if(!mShowAlphaPanel) return; + + final RectF dRect = mDrawingRect; + + float left = dRect.left + BORDER_WIDTH_PX; + float top = dRect.bottom - ALPHA_PANEL_HEIGHT + BORDER_WIDTH_PX; + float bottom = dRect.bottom - BORDER_WIDTH_PX; + float right = dRect.right - BORDER_WIDTH_PX; + + mAlphaRect = new RectF(left, top, right, bottom); + + mAlphaPattern = new AlphaPatternDrawable((int) (5 * mDensity)); + mAlphaPattern.setBounds( + Math.round(mAlphaRect.left), + Math.round(mAlphaRect.top), + Math.round(mAlphaRect.right), + Math.round(mAlphaRect.bottom) + ); + + } + + + /** + * Set a OnColorChangedListener to get notified when the color + * selected by the user has changed. + * @param listener + */ + public void setOnColorChangedListener(OnColorChangedListener listener){ + mListener = listener; + } + + /** + * Set the color of the border surrounding all panels. + * @param color + */ + public void setBorderColor(int color){ + mBorderColor = color; + invalidate(); + } + + /** + * Get the color of the border surrounding all panels. + */ + public int getBorderColor(){ + return mBorderColor; + } + + /** + * Get the current color this view is showing. + * @return the current color. + */ + public int getColor(){ + return Color.HSVToColor(mAlpha, new float[]{mHue,mSat,mVal}); + } + + /** + * Set the color the view should show. + * @param color The color that should be selected. + */ + public void setColor(int color){ + setColor(color, false); + } + + /** + * Set the color this view should show. + * @param color The color that should be selected. + * @param callback If you want to get a callback to + * your OnColorChangedListener. + */ + public void setColor(int color, boolean callback){ + + int alpha = Color.alpha(color); + int red = Color.red(color); + int blue = Color.blue(color); + int green = Color.green(color); + + float[] hsv = new float[3]; + + Color.RGBToHSV(red, green, blue, hsv); + + mAlpha = alpha; + mHue = hsv[0]; + mSat = hsv[1]; + mVal = hsv[2]; + + if(callback && mListener != null){ + mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); + } + + invalidate(); + } + + /** + * Get the drawing offset of the color picker view. + * The drawing offset is the distance from the side of + * a panel to the side of the view minus the padding. + * Useful if you want to have your own panel below showing + * the currently selected color and want to align it perfectly. + * @return The offset in pixels. + */ + public float getDrawingOffset(){ + return mDrawingOffset; + } + + /** + * Set if the user is allowed to adjust the alpha panel. Default is false. + * If it is set to false no alpha will be set. + * @param visible + */ + public void setAlphaSliderVisible(boolean visible){ + + if(mShowAlphaPanel != visible){ + mShowAlphaPanel = visible; + + /* + * Reset all shader to force a recreation. + * Otherwise they will not look right after + * the size of the view has changed. + */ + mValShader = null; + mSatShader = null; + mHueShader = null; + mAlphaShader = null;; + + requestLayout(); + } + + } + + public void setSliderTrackerColor(int color){ + mSliderTrackerColor = color; + + mHueTrackerPaint.setColor(mSliderTrackerColor); + + invalidate(); + } + + public int getSliderTrackerColor(){ + return mSliderTrackerColor; + } + + /** + * Set the text that should be shown in the + * alpha slider. Set to null to disable text. + * @param res string resource id. + */ + public void setAlphaSliderText(int res){ + String text = getContext().getString(res); + setAlphaSliderText(text); + } + + /** + * Set the text that should be shown in the + * alpha slider. Set to null to disable text. + * @param text Text that should be shown. + */ + public void setAlphaSliderText(String text){ + mAlphaSliderText = text; + invalidate(); + } + + /** + * Get the current value of the text + * that will be shown in the alpha + * slider. + * @return + */ + public String getAlphaSliderText(){ + return mAlphaSliderText; + } +} \ No newline at end of file diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java new file mode 100644 index 00000000..e5e167d9 --- /dev/null +++ b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2011 Sergey Margaritov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.margaritov.preference.colorpicker; + +import net.margaritov.preference.colorpicker.R; + +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceActivity; + +public class Test extends PreferenceActivity { + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.settings); + ((ColorPickerPreference)findPreference("color2")).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + preference.setSummary(ColorPickerPreference.convertToARGB(Integer.valueOf(String.valueOf(newValue)))); + return true; + } + + }); + ((ColorPickerPreference)findPreference("color2")).setAlphaSliderEnabled(true); + } +} \ No newline at end of file diff --git a/lite/.factorypath b/lite/.factorypath index 026446ed..d528d92e 100644 --- a/lite/.factorypath +++ b/lite/.factorypath @@ -1,3 +1,3 @@ - + diff --git a/lite/.project b/lite/.project index 0654bfb6..1b341fee 100644 --- a/lite/.project +++ b/lite/.project @@ -1,6 +1,6 @@ - TransdroidLite + Transdroid Core diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index 1b6f7500..e33579dd 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -1,13 +1,20 @@ + android:versionName="2.0-alpha1" > + + + + + + + + \ No newline at end of file diff --git a/lite/project.properties b/lite/project.properties index 5f7d115e..b8863ad3 100644 --- a/lite/project.properties +++ b/lite/project.properties @@ -13,3 +13,4 @@ # Project target. target=android-16 android.library.reference.1=../external/JakeWharton-ActionBarSherlock/library +android.library.reference.2=../external/ColorPickerPreference diff --git a/lite/res/drawable-hdpi/ic_priority_high.png b/lite/res/drawable-hdpi/ic_priority_high.png new file mode 100644 index 0000000000000000000000000000000000000000..43dd253bdeda94a1b5cbad49239b4591a03816e3 GIT binary patch literal 1194 zcmV;b1XcTqP)c5e|e! zygOM$9-$!2{F*bsGl)3iEk^>8=IhmqtP>LxfsKugA512bkWwnm&CM@{hldwuW@a8O zE-ro#ERPWP;dE+hYJMCU83{1~EeZ)tLqkKm=jZ3%Y&Khdd3h;LPEMWykM#HV|GBrf z=K)@3gkM}-h||;4=fGbgQXFZmTGQz0sIv$s8jZTlW^-F{aj{6HQm$k&8Et84x!&L3 zw}9!VM!4N>7l}l|eRg*CM|*qw`F|5g{*dhI>I&y@N=r)x{Rj!ar4oC3dX^r-T`rd> zDJc<0M@LUdZiJm*P1GYwkfbKHwzghcES6tUg>bvwA{LAJcXxN4b#--bQQ*1}j^Bu~ zvN8d=x+0NCl`erC1ze)J3lHH`0TRiTm6bu@MI35> zCEJX2OQ3nbL+4|XfaE}9zmCV_Imoe(8@(~Y6-7~#+}_^y-`w0-IDu75kmUsAWzsaP zu|?VL+1Xh?UF`LG7aqbL4u?RZ52mK3dRZnLRUz50g(~{``sTqdMr=vn!^6WMeIE=4 ze*+#j!l??I%_iWcL2fWrVUawU8O=>TpD$*$TIXR9^#`zE^V-_lM`&aQ>|Yt-m^ZaL zRP!hl3N`UoFl!0&x(O8Z_4TvRQqW{Ooldc}we^@-!T$^I!^vqoJ3E8iWGThJN73HE zh96?GMLL~UZv>tHA`-xT{|B$Csyb!Tg@q+qH+9)*}kH&u`$Gsqy!mF8g++YpA=tR zT?Of48Yr;c^ZWg8ps#}Hc?ieapvt1KZIoxKkU(Q^A0HnlSCkM->H+pVv9wH1PJRK_ z4kMfrkp5_Hn4Os5DzauyKtmyqkB`42jd|zX^!E0?CKhP=6C<3oC-z8mJuoovO3$8# zSZeIY#>PH_%|0QPbTe3R3HwEvo}O;NP}LgYl$0hL>-?q1<4Nk-YtIAKL9m)?O#KXBAJSYKZ+2a7MUCPYO=1vT<@Q&ZC=Bq&Ge0jzOD zoSp@cEz;T9NkbRY$x|4#?7_i-udS`^1zil55=~qJev1jM>*(m1$M_Q)c!p)U<4EW$_(y;N0Oit~VznlB0RR9107*qo IM6N<$f*+ME#{d8T literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_priority_low.png b/lite/res/drawable-hdpi/ic_priority_low.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8e7bfb7096ff45090d417ee242cdd5999e3189 GIT binary patch literal 848 zcmV-W1F!svP)k7RCwB) zR!eIdQ53#2j_*gT!J>jBfyU5HCEaA9-AD_?EOa4Fmi-r9`U~7g7ug$z(hxTmq#Kh} z=*plF;zq1ekVslz<70ZxaHdR4X4G8x7`PYjcfRjDuAD5(?7w9KSOHFeo4#hi0x$yn zCX4}7+SgseBYPa}Tk`q*o2#pR%^_xsPiUM~xW!^~>6ZWRiJ12}V#je@}) zx&$bBM$t{;@wm8v1!T|z*+v!ckBY;?!_sIp8lnoQCf07Z zGZeXv8j*iYg%N?Qt)@^YG_+VOC2Tl{!@)q!t75VEk}iLe0$F1fg6;0^eg^Lub~g4# zy7W`RJUWz@yXMg>O!n8*fJtJN|XJ>~&=Z<0tP z&dEk~Cdun4;MJjri4;X~YcLobKpvDs=!Z%q61k^_)SasQlIYD;hSqYqe8ls-l3?g& zwzs!eqzapminSDQWQ{U&VE#CIyp}wb zACfDQ?_*M-JFDK zT)-PKSta^q3X}@EzP`=~f}jjJj1=DoihjJxi>CJ`E4aM8+=Qs#!kAFr0!VH(7K{CW zv!TYGwHl4nPSe}l+tB|0{ujI)8jA&k!4mBMB7&v%C>I+1ZL!ne7CR+et(pO0yo!Q9 a0t^6}Z64v69v9sJ0000Z!BR+B{h!i3#@|KaW+KSe#n{+bfB|Sxw1Bn@BO@bw=jZ3HOeRwqjYh@E$;or%!-Io^ zf9>z@S0i6>ad9C|PfveD{xu@WketSg~N^z`%uvsk62rNU;jiAW^!Jw4Rd z*SAc0fDk1mCF1Dl=o!h1u<_Nva^ESCV|oc{UPnhq6v%%w8jXSw$6_(>-rkAv6Z{~h@_v4ESz+1c4JBe(Jal{FUm1#)^f!Im+z*}Mefs2eGY(zd?7{skJG z2CKI;1&AHkJPZT^t-SeX8RT?QQHZ9drg>;A=wv&cPO-hc{e;lAx3|C1^5nGL-Q8i` z=29^RLN_|p1$%mMvPCMDQVT%;zX=5LZhgMCw)Qmt6c-v55*IaS!)|A1XPC|doJwC4 zKA-PbVz;%m^;G=<`Tz+Ny}iA!SYB-=O;x!7dK25tg6a8;G$uPzLrHgfZed~JJ1WTb6)i0-0d`)3 zSrlX-u{7#z!JM&QUS9fX6FO*MvG4VI-$Qo^(MNfV4Pq97Z6kbk^abuP(4)6aOiYkl zN(epm0P~;Fo2I9yzXBTv6(If5+#u_&FpFCw+n9%5JM!}J@$nC&Jgtw||Az|{lt)FL_qWBye_L$aaQ$qOb&+OSZa9=;4E_~h04tH% U;?bhnUH||907*qoM6N<$f-v$pApigX literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_priority_off.png b/lite/res/drawable-hdpi/ic_priority_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e44ea25ab7e1d2755da9b4e84b41ee893bd678c9 GIT binary patch literal 1118 zcmV-k1flzhP)f-3#5{t#$+uPfs`Xd+&#)gN7|IkJR zu+PrUzRqT|Pw>Ai%S;r-4}m}+K{}keR|}wm7zPIiZz7S%+d`pW!wAFSuoVDSDFR_@ zYs++5Sjd|p-c zH#aw5f>FMsqk|!U!{PYU(9nRMmo=g+USn4#-q6cZPft%2LvLG=5A zc6oUjM8j4qrim3MCMLcRH6^l95ui*zQ87O?HFXHjU*Mf$=9m+kCLL#IXRlP_xI7+DnDp}mAXfuWX_9Ee z&G`8E1|+(KbbvwI!otEk@ZN=h7?sgzjE{_r9D#0*_DE!dRRbuKl0s8&Z*Q9C`S19n zrKN>6H8s7!#G-M?3+w9Y3RA@SO8i#?kTo<(ot>T0d_K=iCX-@V%?SV>`Fy@OabKW4 zvc4ku3RNm=b1^+V{R3!9p~qNNKoJuJ0jn!a`UQ>mtQLU(N*1`6LDnz|=nF*v@UPeF zT_-vv(v|h}RBbfq;DeKdvmA~07u`9G>V0TgM%Pc z46|4)N^((P4zXgf=viJ~_Rv^2Ya)3RKp?LydwYBJK*yNPW@9L=t*sjfgk6k4`}_ML zRhOLN^-=H@0Pg@+R#tqtvA(_@>B-H^%-~2)s!?Pz88IG@J9SZ11>iK?qeqxrKk|(N zUdP(n+Hx>9K4YRWBIpTYG#U+R0Pf|Y5`f}8BzFLk>qhUf_WSz!)=0F)9GXv7Z)K-1#%Ca$;z3qv$NASG&J-Lrl-8>p%x{f&LDUjDUBqh>QuQnFi kt6p0&bT-^wTmA_!0Qk+80bDP1`~Uy|07*qoM6N<$f-8Rf$^ZZW literal 0 HcmV?d00001 diff --git a/lite/res/layout/list_item_torrent.xml b/lite/res/layout/list_item_torrent.xml new file mode 100644 index 00000000..4041e535 --- /dev/null +++ b/lite/res/layout/list_item_torrent.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/lite/res/values/attrs.xml b/lite/res/values/attrs.xml new file mode 100644 index 00000000..a19eb9b9 --- /dev/null +++ b/lite/res/values/attrs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/lite/res/values/colors.xml b/lite/res/values/colors.xml index ba2e342f..f4cdf7fa 100644 --- a/lite/res/values/colors.xml +++ b/lite/res/values/colors.xml @@ -1,4 +1,5 @@ #8acc12 + #7dbb21 diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml index ce8d9e9b..780a7fcf 100644 --- a/lite/res/values/strings.xml +++ b/lite/res/values/strings.xml @@ -1,7 +1,7 @@ - Transdroid Lite + Transdroid Add From file @@ -21,7 +21,6 @@ Ratio Filter list Settings - Start Stop Resume @@ -41,7 +40,143 @@ SERVERS STATUS LABELS + All + Downloading + Uploading + Active + Inactive Connected, but no torrent are active on the server Select a torrent to view its details - + Servers + Add new server + Search sites + Set default site + Add web search site + RSS feeds + Add RSS feed + Other settings + + Name + Optional personal name + Direct search URL + %s will be replaced by the search query + Feed URL + Requires authentication + Opens links in the webbrowser for user login + + Server type + IP or host name + Port number + User name + Password + Deluge web password + Advanced settings + Local IP or host + When connected to the specified local network + Local network + The server\'s local (wifi) network + Folder + Usually empty + SCGI mount point + Optional settings + Finished notification + Notify when a torrent finishes + New torrent notification + Nofity when a torrent was added + Server OS + Download directory + Manually set absolute path for remote connections + Connection timeout + Number of seconds before a connection attempt is aborted + Base (S)FTP url + For example ftp://me@server/downloads/ + (S)FTP password + Use SSL + Connect using https + Custom SSL thumbprint (SHA-1) + Permit only connections to this specific certificate + Accept all SSL certificates + Allow all connections from any thumbprint + + Background notifications + Enable notifications + Enables the background service + Interval + How often to check the server + Sound + Vibrate + LED colour + If supported by your device + Support AWD notifications + Show torrent counter in ADW Launcher + + About Transdroid + Check for updates + Check transdroidorg for latest app version + Import settings + Export settings + Send error log + Get support or report a bug + About + + + BitComet + Bitflu 1.2+ + BitTorrent 6+ + Buffalo NAS -1.31 + Deluge 1.2+ + DLink Router BT + Ktorrent + qBittorrent + rTorrent + Torrentflux-b4rt + Transmission + µTorrent + Vuze + + + daemon_bitcomet + daemon_bitflu + daemon_bittorrent + daemon_buffalonas + daemon_deluge + daemon_dlinkrouterbt + daemon_ktorrent + daemon_qbittorrent + daemon_rtorrent + daemon_tfb4rt + daemon_transmission + daemon_utorrent + daemon_vuze + + + Windows + Mac + Linux + + + type_windows + type_mac + type_linux + + + 1 minute + 10 minutes + 30 minutes + 1 hour + 3 hours + 12 hours + 1 day + + + 60 + 600 + 1800 + 3600 + 10800 + 43200 + 86400 + + + \ No newline at end of file diff --git a/lite/res/xml/pref_about.xml b/lite/res/xml/pref_about.xml new file mode 100644 index 00000000..eb4dad12 --- /dev/null +++ b/lite/res/xml/pref_about.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_main.xml b/lite/res/xml/pref_main.xml new file mode 100644 index 00000000..19f3bf36 --- /dev/null +++ b/lite/res/xml/pref_main.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_notifications.xml b/lite/res/xml/pref_notifications.xml new file mode 100644 index 00000000..4a7a1a16 --- /dev/null +++ b/lite/res/xml/pref_notifications.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_rssfeed.xml b/lite/res/xml/pref_rssfeed.xml new file mode 100644 index 00000000..401c5aea --- /dev/null +++ b/lite/res/xml/pref_rssfeed.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_server.xml b/lite/res/xml/pref_server.xml new file mode 100644 index 00000000..9512a302 --- /dev/null +++ b/lite/res/xml/pref_server.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_websearch.xml b/lite/res/xml/pref_websearch.xml new file mode 100644 index 00000000..09674685 --- /dev/null +++ b/lite/res/xml/pref_websearch.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/lite/src/com/actionbarsherlock/view/SherlockListView.java b/lite/src/com/actionbarsherlock/view/SherlockListView.java new file mode 100644 index 00000000..3b2df828 --- /dev/null +++ b/lite/src/com/actionbarsherlock/view/SherlockListView.java @@ -0,0 +1,337 @@ +package com.actionbarsherlock.view; + +import android.annotation.TargetApi; +import android.content.Context; +import android.util.AttributeSet; +import android.util.SparseBooleanArray; +import android.view.View; +import android.widget.AdapterView; +import android.widget.Checkable; +import android.widget.ListView; + +import com.actionbarsherlock.app.SherlockActivity; +import com.actionbarsherlock.app.SherlockFragmentActivity; +import com.actionbarsherlock.view.ActionMode; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; + +/** + * Provides backwards compatible multiple choice ActionMode support on Froyo+ using ActionBarSherlock. + */ +public class SherlockListView extends ListView { + // API 11+ reference, but ok because the value will be inlined. + public static final int CHOICE_MODE_MULTIPLE_MODAL_COMPAT = CHOICE_MODE_MULTIPLE_MODAL; + + /** + * Wrapper to intercept delegation of long click events, and pass to {@link #doLongPress} + */ + class OnItemLongClickListenerWrapper implements OnItemLongClickListener { + private OnItemLongClickListener wrapped; + + public void setWrapped(OnItemLongClickListener listener) { + this.wrapped = listener; + } + + @Override + public boolean onItemLongClick(AdapterView view, View child, int position, long id) { + // this would be easier if AbsListView.performLongPress wasn't package + // protected :-( + boolean handled = doLongPress(child, position, id); + if (!handled && wrapped != null) { + return wrapped.onItemLongClick(view, child, position, id); + } + return true; + } + } + + /** + * Hijack the onLongClickListener so we can intercept delegation. + */ + @Override + public void setOnItemLongClickListener(OnItemLongClickListener listener) { + if (longClickListenerWrapper == null) { + longClickListenerWrapper = new OnItemLongClickListenerWrapper(); + } + longClickListenerWrapper.setWrapped(listener); + super.setOnItemLongClickListener(longClickListenerWrapper); + } + + /** + * A MultiChoiceModeListener receives events for {@link AbsListView#CHOICE_MODE_MULTIPLE_MODAL}. It acts as the + * {@link ActionMode.Callback} for the selection mode and also receives + * {@link #onItemCheckedStateChanged(ActionMode, int, long, boolean)} events when the user selects and deselects + * list items. + */ + @SuppressWarnings("javadoc") + public interface MultiChoiceModeListenerCompat extends ActionMode.Callback { + /** + * Called when an item is checked or unchecked during selection mode. + * @param mode The {@link ActionMode} providing the selection mode + * @param position Adapter position of the item that was checked or unchecked + * @param id Adapter ID of the item that was checked or unchecked + * @param checked true if the item is now checked, false if the item is now unchecked. + */ + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked); + } + + class MultiChoiceModeWrapper implements MultiChoiceModeListenerCompat { + private MultiChoiceModeListenerCompat wrapped; + + public void setWrapped(MultiChoiceModeListenerCompat wrapped) { + this.wrapped = wrapped; + } + + @Override + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + if (wrapped == null) { + return false; + } + if (wrapped.onCreateActionMode(mode, menu)) { + // Initialize checked graphic state? + setLongClickable(false); + return true; + } + return false; + } + + @Override + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + if (wrapped == null) { + return false; + } + return wrapped.onPrepareActionMode(mode, menu); + } + + @Override + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + if (wrapped == null) { + return false; + } + return wrapped.onActionItemClicked(mode, item); + } + + @Override + public void onDestroyActionMode(ActionMode mode) { + if (wrapped == null) { + return; + } + wrapped.onDestroyActionMode(mode); + actionMode = null; + + // Ending selection mode means deselecting everything. + clearChoices(); + checkedItemCount = 0; + updateOnScreenCheckedViews(); + invalidateViews(); + setLongClickable(true); + requestLayout(); + invalidate(); + } + + @Override + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { + if (wrapped == null) { + return; + } + wrapped.onItemCheckedStateChanged(mode, position, id, checked); + + // If there are no items selected we no longer need the selection mode. + if (checkedItemCount == 0) { + mode.finish(); + } + } + } + + private com.actionbarsherlock.view.ActionMode actionMode; + private OnItemLongClickListenerWrapper longClickListenerWrapper; + private MultiChoiceModeWrapper choiceModeListener; + private int choiceMode; + private int checkedItemCount; + + public SherlockListView(Context context) { + super(context); + init(context); + } + + public SherlockListView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context); + } + + public SherlockListView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context); + } + + void init(Context context) { + if (isInEditMode()) { + // Ignore when viewing in the UI designer + return; + } + if (!(context instanceof SherlockActivity || context instanceof SherlockFragmentActivity)) { + throw new IllegalStateException( + "This view must be hosted in a SherlockActivity or SherlockFragmentActivity"); + } + setOnItemLongClickListener(null); + } + + @Override + public void setChoiceMode(int mode) { + choiceMode = mode; + if (actionMode != null) { + actionMode.finish(); + actionMode = null; + } + if (choiceMode != CHOICE_MODE_NONE) { + if (mode == CHOICE_MODE_MULTIPLE_MODAL_COMPAT) { + clearChoices(); + checkedItemCount = 0; + setLongClickable(true); + updateOnScreenCheckedViews(); + requestLayout(); + invalidate(); + mode = CHOICE_MODE_MULTIPLE; + } + super.setChoiceMode(mode); + } + } + + @Override + public int getChoiceMode() { + return choiceMode; + } + + public void setMultiChoiceModeListener(MultiChoiceModeListenerCompat listener) { + if (choiceModeListener == null) { + choiceModeListener = new MultiChoiceModeWrapper(); + } + choiceModeListener.setWrapped(listener); + } + + @Override + public boolean performItemClick(View view, int position, long id) { + boolean handled = false; + boolean dispatchItemClick = true; + boolean checkStateChanged = false; + if (choiceMode != CHOICE_MODE_NONE) { + handled = true; + if (choiceMode == CHOICE_MODE_MULTIPLE + || (choiceMode == CHOICE_MODE_MULTIPLE_MODAL_COMPAT && actionMode != null)) { + boolean newValue = !getCheckedItemPositions().get(position); + setItemChecked(position, newValue); + if (actionMode != null) { + choiceModeListener.onItemCheckedStateChanged(actionMode, position, id, newValue); + dispatchItemClick = false; + } + checkStateChanged = true; + return false; + } else if (choiceMode == CHOICE_MODE_SINGLE) { + boolean newValue = !getCheckedItemPositions().get(position); + setItemChecked(position, newValue); + checkStateChanged = true; + } + if (checkStateChanged) { + updateOnScreenCheckedViews(); + } + } + if (dispatchItemClick) { + handled |= super.performItemClick(view, position, id); + } + return handled; + } + + /** + * Perform a quick, in-place update of the checked or activated state on all visible item views. This should only be + * called when a valid choice mode is active. + *

+ * (Taken verbatim from AbsListView.java) + */ + @TargetApi(11) + private void updateOnScreenCheckedViews() { + final int firstPos = getFirstVisiblePosition(); + final int count = getChildCount(); + final boolean useActivated = getContext().getApplicationInfo().targetSdkVersion >= android.os.Build.VERSION_CODES.HONEYCOMB; + for (int i = 0; i < count; i++) { + final View child = getChildAt(i); + final int position = firstPos + i; + + if (child instanceof Checkable) { + ((Checkable) child).setChecked(getCheckedItemPositions().get(position)); + } else if (useActivated) { + child.setActivated(getCheckedItemPositions().get(position)); + } + } + } + + public ActionMode startActionMode(ActionMode.Callback callback) { + if (actionMode != null) { + return actionMode; + } + Context context = getContext(); + if (context instanceof SherlockActivity) { + actionMode = ((SherlockActivity) getContext()).startActionMode(callback); + } else if (context instanceof SherlockFragmentActivity) { + actionMode = ((SherlockFragmentActivity) context).startActionMode(callback); + } else { + throw new IllegalStateException( + "This view must be hosted in a SherlockActivity or SherlockFragmentActivity"); + } + return actionMode; + } + + boolean doLongPress(final View child, final int longPressPosition, final long longPressId) { + if (choiceMode == CHOICE_MODE_MULTIPLE_MODAL_COMPAT) { + if (actionMode == null && (actionMode = startActionMode(choiceModeListener)) != null) { + setItemChecked(longPressPosition, true); + } + return true; + } + return false; + } + + /** + * Sets the checked state of the specified position. The is only valid if the choice mode has been set to + * {@link #CHOICE_MODE_SINGLE} or {@link #CHOICE_MODE_MULTIPLE}. + * @param position The item whose checked state is to be checked + * @param value The new checked state for the item + */ + @Override + public void setItemChecked(int position, boolean value) { + if (choiceMode == CHOICE_MODE_NONE) { + return; + } + SparseBooleanArray checkStates = getCheckedItemPositions(); + + // Start selection mode if needed. We don't need to if we're unchecking + // something. + if (value && choiceMode == CHOICE_MODE_MULTIPLE_MODAL_COMPAT && actionMode == null) { + actionMode = startActionMode(choiceModeListener); + } + + if (choiceMode == CHOICE_MODE_MULTIPLE || choiceMode == CHOICE_MODE_MULTIPLE_MODAL) { + // boolean oldValue = checkStates.get(position); + checkStates.put(position, value); + if (value) { + checkedItemCount++; + } else { + checkedItemCount--; + } + if (actionMode != null) { + final long id = getAdapter().getItemId(position); + choiceModeListener.onItemCheckedStateChanged(actionMode, position, id, value); + } + } else { + if (value || isItemChecked(position)) { + checkStates.clear(); + } + // this may end up selecting the value we just cleared but this way + // we ensure length of checkStates is 1, a fact getCheckedItemPosition + // relies on + if (value) { + checkStates.put(position, true); + } + } + requestLayout(); + invalidate(); + } +} diff --git a/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java b/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java new file mode 100644 index 00000000..e8e92e9a --- /dev/null +++ b/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java @@ -0,0 +1,100 @@ +package fr.marvinlabs.widget; + +import java.util.ArrayList; +import java.util.List; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Checkable; +import android.widget.RelativeLayout; + +/** + * Extension of a relative layout to provide a checkable behaviour + * + * @author marvinlabs + */ +public class CheckableRelativeLayout extends RelativeLayout implements Checkable { + + private boolean isChecked; + private List checkableViews; + + public CheckableRelativeLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + initialise(attrs); + } + + public CheckableRelativeLayout(Context context, AttributeSet attrs) { + super(context, attrs); + initialise(attrs); + } + + public CheckableRelativeLayout(Context context, int checkableId) { + super(context); + initialise(null); + } + + /* + * @see android.widget.Checkable#isChecked() + */ + public boolean isChecked() { + return isChecked; + } + + /* + * @see android.widget.Checkable#setChecked(boolean) + */ + public void setChecked(boolean isChecked) { + this.isChecked = isChecked; + for (Checkable c : checkableViews) { + c.setChecked(isChecked); + } + } + + /* + * @see android.widget.Checkable#toggle() + */ + public void toggle() { + this.isChecked = !this.isChecked; + for (Checkable c : checkableViews) { + c.toggle(); + } + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + + final int childCount = this.getChildCount(); + for (int i = 0; i < childCount; ++i) { + findCheckableChildren(this.getChildAt(i)); + } + } + + /** + * Read the custom XML attributes + */ + private void initialise(AttributeSet attrs) { + this.isChecked = false; + this.checkableViews = new ArrayList(5); + } + + /** + * Add to our checkable list all the children of the view that implement the + * interface Checkable + */ + private void findCheckableChildren(View v) { + if (v instanceof Checkable) { + this.checkableViews.add((Checkable) v); + } + + if (v instanceof ViewGroup) { + final ViewGroup vg = (ViewGroup) v; + final int childCount = vg.getChildCount(); + for (int i = 0; i < childCount; ++i) { + findCheckableChildren(vg.getChildAt(i)); + } + } + } +} diff --git a/lite/src/fr/marvinlabs/widget/InertCheckBox.java b/lite/src/fr/marvinlabs/widget/InertCheckBox.java new file mode 100644 index 00000000..5dd3080b --- /dev/null +++ b/lite/src/fr/marvinlabs/widget/InertCheckBox.java @@ -0,0 +1,70 @@ +package fr.marvinlabs.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.widget.CheckBox; + +/** + * CheckBox that does not react to any user event in order to let the container handle them. + */ +public class InertCheckBox extends CheckBox { + + // Provide the same constructors as the superclass + public InertCheckBox(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + // Provide the same constructors as the superclass + public InertCheckBox(Context context, AttributeSet attrs) { + super(context, attrs); + } + + // Provide the same constructors as the superclass + public InertCheckBox(Context context) { + super(context); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onKeyPreIme(int keyCode, KeyEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onKeyShortcut(int keyCode, KeyEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + // Make the checkbox not respond to any user event + return false; + } + + @Override + public boolean onTrackballEvent(MotionEvent event) { + // Make the checkbox not respond to any user event + return false; + } +} diff --git a/lite/src/org/transdroid/lite/app/search/SearchHelper.java b/lite/src/org/transdroid/lite/app/search/SearchHelper.java new file mode 100644 index 00000000..11244a19 --- /dev/null +++ b/lite/src/org/transdroid/lite/app/search/SearchHelper.java @@ -0,0 +1,109 @@ +package org.transdroid.lite.app.search; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.EBean.Scope; +import org.androidannotations.annotations.RootContext; + +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; + +@EBean(scope = Scope.Singleton) +public class SearchHelper { + + static final int CURSOR_SEARCH_ID = 0; + static final int CURSOR_SEARCH_NAME = 1; + static final int CURSOR_SEARCH_TORRENTURL = 2; + static final int CURSOR_SEARCH_DETAILSURL = 3; + static final int CURSOR_SEARCH_SIZE = 4; + static final int CURSOR_SEARCH_ADDED = 5; + static final int CURSOR_SEARCH_SEEDERS = 6; + static final int CURSOR_SEARCH_LEECHERS = 7; + + static final int CURSOR_SITE_ID = 0; + static final int CURSOR_SITE_CODE = 1; + static final int CURSOR_SITE_NAME = 2; + static final int CURSOR_SITE_RSSURL = 3; + + @RootContext + protected Context context; + + public enum SearchSortOrder { + Combined, BySeeders + } + + /** + * Return whether the Torrent Search package is installed and available to query against + * @return True if the available sites can be retrieved from the content provider, false otherwise + */ + public boolean isTorrentSearchInstalled() { + return getAvailableSites() != null; + } + + /** + * Queries the Torrent Search package for all available in-app search sites. This method is synchronous. + * @return A list of available search sites as POJOs, or null if the Torrent Search package is not installed + */ + public List getAvailableSites() { + + // Try to access the TorrentSitesProvider to retrieve all available in-app torrent search sites + Uri uri = Uri.parse("content://org.transdroid.search.torrentsitesprovider/sites"); + Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); + if (cursor.moveToFirst()) { + List sites = new ArrayList(); + do { + // Read the cursor fields into the SearchSite object + sites.add(new SearchSite(cursor.getInt(CURSOR_SITE_ID), cursor.getString(CURSOR_SITE_CODE), cursor + .getString(CURSOR_SITE_NAME), cursor.getString(CURSOR_SITE_RSSURL))); + } while (cursor.moveToNext()); + cursor.close(); + return sites; + } + + // Torrent Search package is not yet installed + return null; + + } + + /** + * Queries the Torrent Search module to search for torrents on the web. This method is synchornous and should always + * be called in a background thread. + * @param query The search query to pass to the torrent site + * @param site The site to search, as retrieved from the TorrentSitesProvider, or null if the Torrent Search package + * @param sortBy.name() The sort order to request from the torrent site, if supported + * @return A list of torrent search results as POJOs, or null if the Torrent Search package is not installed + */ + public List search(String query, SearchSite site, SearchSortOrder sortBy) { + + // Try to query the TorrentSearchProvider to search for torrents on the web + Uri uri = Uri.parse("content://org.transdroid.search.torrentsearchprovider/search/" + query); + Cursor cursor; + if (site == null) { + // If no explicit site was supplied, rely on the Torrent Search package's default + cursor = context.getContentResolver().query(uri, null, null, null, sortBy.name()); + } else { + cursor = context.getContentResolver().query(uri, null, "SITE = ?", new String[] { site.getKey() }, + sortBy.name()); + } + if (cursor.moveToFirst()) { + List results = new ArrayList(); + do { + // Read the cursor fields into the SearchResult object + results.add(new SearchResult(cursor.getInt(CURSOR_SEARCH_ID), cursor.getString(CURSOR_SEARCH_NAME), + cursor.getString(CURSOR_SEARCH_TORRENTURL), cursor.getString(CURSOR_SEARCH_DETAILSURL), cursor + .getString(CURSOR_SEARCH_SIZE), cursor.getLong(CURSOR_SEARCH_ADDED), cursor + .getString(CURSOR_SEARCH_SEEDERS), cursor.getString(CURSOR_SEARCH_LEECHERS))); + } while (cursor.moveToNext()); + cursor.close(); + return results; + } + + // Torrent Search package is not yet installed + return null; + + } + +} diff --git a/lite/src/org/transdroid/lite/app/search/SearchResult.java b/lite/src/org/transdroid/lite/app/search/SearchResult.java new file mode 100644 index 00000000..77594909 --- /dev/null +++ b/lite/src/org/transdroid/lite/app/search/SearchResult.java @@ -0,0 +1,64 @@ +package org.transdroid.lite.app.search; + +import java.util.Date; + +/** + * Represents a search result as retrieved by querying the Torrent Search package. + * @author Eric Kok + */ +public class SearchResult { + + private final int id; + private final String name; + private final String torrentUrl; + private final String detailsUrl; + private final String size; + private final Date addedOn; + private final String seeders; + private final String leechers; + + public SearchResult(int id, String name, String torrentUrl, String detailsUrl, String size, long addedOnTime, + String seeders, String leechers) { + this.id = id; + this.name = name; + this.torrentUrl = torrentUrl; + this.detailsUrl = detailsUrl; + this.size = size; + this.addedOn = (addedOnTime == -1L) ? null : new Date(addedOnTime); + this.seeders = seeders; + this.leechers = leechers; + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public String getTorrentUrl() { + return torrentUrl; + } + + public String getDetailsUrl() { + return detailsUrl; + } + + public String getSize() { + return size; + } + + public Date getAddedOn() { + return addedOn; + } + + public String getSeeders() { + return seeders; + } + + public String getLeechers() { + return leechers; + } + +} diff --git a/lite/src/org/transdroid/lite/app/search/SearchSite.java b/lite/src/org/transdroid/lite/app/search/SearchSite.java new file mode 100644 index 00000000..2d7910df --- /dev/null +++ b/lite/src/org/transdroid/lite/app/search/SearchSite.java @@ -0,0 +1,40 @@ +package org.transdroid.lite.app.search; + +import org.transdroid.lite.gui.navigation.FilterItem; + +/** + * Represents an available torrent site that can be searched using the Torrent Search package. + * @author Eric Kok + */ +public class SearchSite implements FilterItem { + + private final int id; + private final String key; + private final String name; + private final String rssFeedUrl; + + public SearchSite(int id, String key, String name, String rssFeedUrl) { + this.id = id; + this.key = key; + this.name = name; + this.rssFeedUrl = rssFeedUrl; + } + + public int getId() { + return id; + } + + public String getKey() { + return key; + } + + @Override + public String getName() { + return name; + } + + public String getRssFeedUrl() { + return rssFeedUrl; + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/AboutSettings.java b/lite/src/org/transdroid/lite/app/settings/AboutSettings.java new file mode 100644 index 00000000..9dd745c7 --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/AboutSettings.java @@ -0,0 +1,30 @@ +package org.transdroid.lite.app.settings; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; +import org.androidannotations.annotations.EBean.Scope; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +/** + * Allows instantiation of the settings specified in R.xml.pref_about. + * @author Eric Kok + */ +@EBean(scope = Scope.Singleton) +public class AboutSettings { + + @RootContext + protected Context context; + private SharedPreferences prefs; + + protected AboutSettings(Context context) { + prefs = PreferenceManager.getDefaultSharedPreferences(context); + } + + public boolean checkForUpdates() { + return prefs.getBoolean("about_checkupdates", true); + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java b/lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java new file mode 100644 index 00000000..75a4c09e --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java @@ -0,0 +1,140 @@ +package org.transdroid.lite.app.settings; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.EBean.Scope; +import org.androidannotations.annotations.RootContext; +import org.transdroid.daemon.Daemon; +import org.transdroid.daemon.OS; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +/** + * Singleton object to access all application settings, including stored servers, web search sites and RSS feeds. + * @author Eric Kok + */ +@EBean(scope = Scope.Singleton) +public class ApplicationSettings { + + @RootContext + protected Context context; + private SharedPreferences prefs; + + protected ApplicationSettings(Context context) { + prefs = PreferenceManager.getDefaultSharedPreferences(context); + } + + /** + * Returns all available user-configured servers + * @return A list of all stored server settings objects + */ + public List getServerSettings() { + List servers = new ArrayList(); + for (int i = 0; i <= getMaxServer(); i++) { + servers.add(getServerSetting(i)); + } + return servers; + } + + /** + * Returns the order number/identifying key of the last server + * @return The zero-based order number (index) of the last stored server settings + */ + public int getMaxServer() { + for (int i = 0; true; i++) { + if (prefs.getString("server_type_" + i, null) == null) + return i - 1; + } + } + + /** + * Returns the user-specified server settings for a specific server + * @param order The order number/identifying key of the settings to retrieve + * @return The server settings object, loaded from shared preferences + */ + public ServerSetting getServerSetting(int order) { + return new ServerSetting(order, prefs.getString("server_name_" + order, null), Daemon.fromCode(prefs.getString( + "server_type_" + order, null)), prefs.getString("server_address_" + order, null), prefs.getString( + "server_localaddress_" + order, null), prefs.getString("server_localnetwork_" + order, null), + prefs.getInt("server_port_" + order, -1), prefs.getBoolean("server_sslenabled_" + order, false), + prefs.getBoolean("server_ssltrustall_" + order, false), prefs.getString("server_ssltrustkey_" + order, + null), prefs.getString("server_folder_" + order, null), prefs.getBoolean("server_useauth_" + + order, true), prefs.getString("server_user_" + order, null), prefs.getString("server_pass_" + + order, null), prefs.getString("server_extrapass_" + order, null), OS.fromCode(prefs + .getString("server_os_" + order, null)), prefs.getString("server_downloaddir_" + order, null), + prefs.getString("server_ftpurl_" + order, null), prefs.getString("server_ftppass_" + order, null), + prefs.getInt("server_timeout_" + order, -1), prefs.getBoolean("server_alarmfinished_" + order, true), + prefs.getBoolean("server_alarmnew_" + order, false), false); + } + + /** + * Returns all available user-configured web-based (as opped to in-app) search sites + * @return A list of all stored web search site settings objects + */ + public List getWebsearchSettings() { + List websearches = new ArrayList(); + for (int i = 0; i <= getMaxWebsearch(); i++) { + websearches.add(getWebsearchSetting(i)); + } + return websearches; + } + + /** + * Returns the order number/identifying key of the last web search site + * @return The zero-based order number (index) of the last stored web search site + */ + public int getMaxWebsearch() { + for (int i = 0; true; i++) { + if (prefs.getString("websearch_url_" + i, null) == null) + return i - 1; + } + } + + /** + * Returns the user-specified web-based search site setting for a specific site + * @param order The order number/identifying key of the settings to retrieve + * @return The web search site settings object, loaded from shared preferences + */ + public WebsearchSetting getWebsearchSetting(int order) { + return new WebsearchSetting(order, prefs.getString("websearch_name_" + order, null), prefs.getString( + "websearch_url_" + order, null)); + } + + /** + * Returns all available user-configured RSS feeds + * @return A list of all stored RSS feed settings objects + */ + public List getRssfeedSettings() { + List rssfeeds = new ArrayList(); + for (int i = 0; i <= getMaxRssfeed(); i++) { + rssfeeds.add(getRssfeedSetting(i)); + } + return rssfeeds; + } + + /** + * Returns the order number/identifying key of the last stored RSS feed + * @return The zero-based order number (index) of the last stored RSS feed + */ + public int getMaxRssfeed() { + for (int i = 0; true; i++) { + if (prefs.getString("rssfeed_feedurl_" + i, null) == null) + return i - 1; + } + } + + /** + * Returns the user-specified RSS feed setting for a specific feed + * @param order The order number/identifying key of the settings to retrieve + * @return The RSS feed settings object, loaded from shared preferences + */ + public RssfeedSetting getRssfeedSetting(int order) { + return new RssfeedSetting(order, prefs.getString("rssfeed_name_" + order, null), prefs.getString( + "rssfeed_feedurl_" + order, null), prefs.getBoolean("rssfeed_reqauth_" + order, false)); + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/NotificationSettings.java b/lite/src/org/transdroid/lite/app/settings/NotificationSettings.java new file mode 100644 index 00000000..1a68aabd --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/NotificationSettings.java @@ -0,0 +1,97 @@ +package org.transdroid.lite.app.settings; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.EBean.Scope; +import org.androidannotations.annotations.RootContext; +import org.transdroid.core.R; + +import android.content.Context; +import android.content.SharedPreferences; +import android.net.Uri; +import android.preference.PreferenceManager; +import android.provider.Settings; + +/** + * Allows instantiation of the settings specified in R.xml.pref_notifications. + * @author Eric Kok + */ +@EBean(scope = Scope.Singleton) +public class NotificationSettings { + + @RootContext + protected Context context; + private SharedPreferences prefs; + + protected NotificationSettings(Context context) { + prefs = PreferenceManager.getDefaultSharedPreferences(context); + } + + /** + * Whether the background service is enabled, i.e. whether the user want to receive notifications + * @return True if the server should be checked for torrent status updates + */ + public boolean isEnabled() { + return prefs.getBoolean("notifications_enabled", true); + } + + private String getRawInverval() { + return prefs.getString("notifications_interval", "10800"); + } + + /** + * Returns the interval between two server checks + * @return The interval, in milliseconds + */ + public Long getInvervalInMilliseconds() { + return Long.parseLong(getRawInverval()) * 1000L; + } + + private String getRawSound() { + return prefs.getString("notifications_sound", null); + } + + /** + * Returns the sound (ring tone) to play on a new notification, or null if it should not play any + * @return Either the user-specified sound, null if the user specified 'Silent' or the system default notification sound + */ + public Uri getSound() { + String raw = getRawSound(); + if (raw == null) + return null; + if (raw.equals("")) + return Settings.System.DEFAULT_NOTIFICATION_URI; + return Uri.parse(raw); + } + + /** + * Whether the device should vibrate on a new notification + * @return + */ + public boolean shouldVibrate() { + return prefs.getBoolean("notifications_vibrate", false); + } + + private int getRawLedColour() { + return prefs.getInt("notifications_ledcolour", -1); + } + + /** + * Returns the LED colour to use on a new notification + * @return The integer value of the user-specified or default colour + */ + public int getDesiredLedColour() { + int raw = getRawLedColour(); + if (raw <= 0) + return context.getResources().getColor(R.color.ledgreen); + return raw; + } + + /** + * Whether the background service should report to ADW Launcher + * @return True if the user want Transdroid to report to ADW Launcher + */ + public boolean shouldReportToAdwLauncher() { + return prefs.getBoolean("notifications_adwnotify", false); + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java b/lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java new file mode 100644 index 00000000..69ee3823 --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java @@ -0,0 +1,67 @@ +package org.transdroid.lite.app.settings; + +import org.transdroid.lite.gui.navigation.FilterItem; + +import android.net.Uri; +import android.text.TextUtils; + +/** + * Represents a user-specified RSS feed. + * @author Eric Kok + */ +public class RssfeedSetting implements FilterItem { + + private static final String DEFAULT_NAME = "Default"; + + private final int order; + private final String name; + private final String url; + private final boolean requiresAuth; + private String lastNew; + + public RssfeedSetting(int order, String name, String baseUrl, boolean needsAuth) { + this.order = order; + this.name = name; + this.url = baseUrl; + this.requiresAuth = needsAuth; + this.lastNew = null; + } + + public int getOrder() { + return order; + } + + @Override + public String getName() { + if (!TextUtils.isEmpty(name)) + return name; + if (!TextUtils.isEmpty(url)) + return Uri.parse(url).getHost(); + return DEFAULT_NAME; + } + + public String getUrl() { + return url; + } + + public boolean requiresExternalAuthentication() { + return requiresAuth; + } + + /** + * Returns the URL of the item that was the newest last time we checked this feed + * @return The last new item's URL as URL-encoded string + */ + public String getLastNew() { + return this.lastNew; + } + + /** + * Record the URL of what is now the last item we retrieved + * @param lastNew The URL of the last new item as URL-encoded string + */ + public void setLastNew(String lastNew) { + this.lastNew = lastNew; + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/ServerSetting.java b/lite/src/org/transdroid/lite/app/settings/ServerSetting.java new file mode 100644 index 00000000..164be4ad --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/ServerSetting.java @@ -0,0 +1,195 @@ +package org.transdroid.lite.app.settings; + +import org.transdroid.daemon.Daemon; +import org.transdroid.daemon.OS; +import org.transdroid.lite.gui.navigation.FilterItem; + +import android.text.TextUtils; + +/** + * Represents a user-configured remote server. + * @author Eric Kok + */ +public class ServerSetting implements FilterItem { + + private static final String DEFAULT_NAME = "Default"; + + private final int key; + private final String name; + private final Daemon type; + private final String address; + private final String localAddress; + private final String localNetwork; + private final int port; + private final String folder; + private final boolean useAuthentication; + private final String username; + private final String password; + private final String extraPass; + private final OS os; + private final String downloadDir; + private final String ftpUrl; + private final String ftpPassword; + private final int timeout; + private final boolean alarmOnFinishedDownload; + private final boolean alarmOnNewTorrent; + private final boolean ssl; + private final boolean sslTrustAll; + private final String sslTrustKey; + private final boolean isAutoGenerated; + + /** + * Creates a daemon settings instance, providing full connection details + * @param name A name used to identify this server to the user + * @param type The server daemon type + * @param address The server domain name or IP address + * @param localAddress The server domain or IP address when connected to the server's local network + * @param localNetwork The server's local network SSID + * @param port The port on which the server daemon is running + * @param sslTrustKey The specific key that will be accepted. + * @param folder The server folder (like a virtual sub-folder or an SCGI mount point) + * @param useAuthentication Whether to use basic authentication + * @param username The user name to provide during authentication + * @param password The password to provide during authentication + * @param extraPass The Deluge web interface password + * @param downloadDir The default download directory (which may also be used as base directory for file paths) + * @param ftpUrl The partial URL to connect to when requesting FTP-style transfers + * @param timeout The number of seconds to wait before timing out a connection attempt + * @param isAutoGenerated Whether this setting was generated rather than manually inputed by the user + */ + public ServerSetting(int key, String name, Daemon type, String address, String localAddress, String localNetwork, + int port, boolean ssl, boolean sslTrustAll, String sslTrustKey, String folder, boolean useAuthentication, + String username, String password, String extraPass, OS os, String downloadDir, String ftpUrl, + String ftpPassword, int timeout, boolean alarmOnFinishedDownload, boolean alarmOnNewTorrent, + boolean isAutoGenerated) { + this.key = key; + this.name = name; + this.type = type; + this.address = address; + this.localAddress = localAddress; + this.localNetwork = localNetwork; + this.port = port; + this.ssl = ssl; + this.sslTrustAll = sslTrustAll; + this.sslTrustKey = sslTrustKey; + this.folder = folder; + this.useAuthentication = useAuthentication; + this.username = username; + this.password = password; + this.extraPass = extraPass; + this.os = os; + this.downloadDir = downloadDir; + this.ftpUrl = ftpUrl; + this.ftpPassword = ftpPassword; + this.timeout = timeout; + this.alarmOnFinishedDownload = alarmOnFinishedDownload; + this.alarmOnNewTorrent = alarmOnNewTorrent; + this.isAutoGenerated = isAutoGenerated; + } + + @Override + public String getName() { + return (name == null || name.equals("") ? DEFAULT_NAME : name); + } + + public Daemon getType() { + return type; + } + + public String getAddress() { + return address; + } + + public String getLocalAddress() { + return localAddress; + } + + public String getLocalNetwork() { + return localNetwork; + } + + public int getPort() { + return port; + } + + public boolean getSsl() { + return ssl; + } + + public boolean getSslTrustAll() { + return sslTrustAll; + } + + public String getSslTrustKey() { + return sslTrustKey; + } + + public String getFolder() { + return folder; + } + + public boolean shouldUseAuthentication() { + return useAuthentication; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public String getExtraPassword() { + return extraPass; + } + + public OS getOS() { + return os; + } + + public String getDownloadDir() { + return downloadDir; + } + + public String getFtpUrl() { + return ftpUrl; + } + + public String getFtpPassword() { + return ftpPassword; + } + + public int getTimeoutInMilliseconds() { + return timeout * 1000; + } + + public boolean shouldAlarmOnFinishedDownload() { + return alarmOnFinishedDownload; + } + + public boolean shouldAlarmOnNewTorrent() { + return alarmOnNewTorrent; + } + + public boolean isAutoGenerated() { + return isAutoGenerated; + } + + public int getOrder() { + return this.key; + } + + public String getHumanReadableIdentifier() { + if (isAutoGenerated) { + // Hide the 'implementation details'; just give the username and server + return (this.shouldUseAuthentication() && !TextUtils.isEmpty(this.getUsername()) ? this.getUsername() + "@" + : "") + getAddress(); + } + return (this.ssl ? "https://" : "http://") + + (this.shouldUseAuthentication() && !TextUtils.isEmpty(this.getUsername()) ? this.getUsername() + "@" + : "") + getAddress() + ":" + getPort() + + (Daemon.supportsCustomFolder(getType()) && getFolder() != null ? getFolder() : ""); + } + +} diff --git a/lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java b/lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java new file mode 100644 index 00000000..b4da7aed --- /dev/null +++ b/lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java @@ -0,0 +1,48 @@ +package org.transdroid.lite.app.settings; + +import org.transdroid.lite.gui.navigation.FilterItem; + +import android.net.Uri; +import android.text.TextUtils; + +/** + * Represents a user-specified website that can be searched (by starting the browser, rather than in-app) + * @author Eric Kok + */ +public class WebsearchSetting implements FilterItem { + + private static final String DEFAULT_NAME = "Default"; + private static final String KEY_PREFIX = "websearch_"; + + private final int order; + private final String name; + private final String baseUrl; + + public WebsearchSetting(int order, String name, String baseUrl) { + this.order = order; + this.name = name; + this.baseUrl = baseUrl; + } + + public int getOrder() { + return order; + } + + @Override + public String getName() { + if (!TextUtils.isEmpty(name)) + return name; + if (!TextUtils.isEmpty(baseUrl)) + return Uri.parse(baseUrl).getHost(); + return DEFAULT_NAME; + } + + public String getBaseUrl() { + return baseUrl; + } + + public String getKey() { + return KEY_PREFIX + getOrder(); + } + +} diff --git a/lite/src/org/transdroid/lite/gui/DetailsFagment.java b/lite/src/org/transdroid/lite/gui/DetailsFagment.java index 1b3c7e10..c43b8135 100644 --- a/lite/src/org/transdroid/lite/gui/DetailsFagment.java +++ b/lite/src/org/transdroid/lite/gui/DetailsFagment.java @@ -7,7 +7,7 @@ import org.androidannotations.annotations.InstanceState; import org.androidannotations.annotations.ViewById; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentDetails; -import org.transdroid.lite.R; +import org.transdroid.core.R; import android.view.View; import android.widget.TextView; diff --git a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java index f368bc94..1af298df 100644 --- a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java +++ b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java @@ -4,15 +4,15 @@ import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.FragmentById; -import org.androidannotations.annotations.FragmentByTag; import org.androidannotations.annotations.ItemSelect; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.ViewById; -import org.transdroid.lite.R; +import org.transdroid.core.R; +import org.transdroid.lite.app.settings.ApplicationSettings; import org.transdroid.lite.gui.navigation.FilterAdapter; import org.transdroid.lite.gui.navigation.FilterItem; -import org.transdroid.lite.gui.navigation.FilterSeparatorView; import org.transdroid.lite.gui.navigation.NavigationHelper; +import org.transdroid.lite.gui.navigation.StatusType; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.OnNavigationListener; @@ -30,6 +30,10 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi protected SherlockListView filtersList; protected FilterAdapter navigationListAdapter = null; protected FilterAdapter navigationSpinnerAdapter = null; + + // Settings + @Bean + protected ApplicationSettings applicationSettings; // Torrents list components @FragmentById(R.id.torrent_list) @@ -42,17 +46,23 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @AfterViews protected void init() { - // Set up navigation + // Set up navigation, with an action bar spinner and possibly (if room) with a filter list getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); getSupportActionBar().setHomeButtonEnabled(false); navigationSpinnerAdapter = new FilterAdapter(this); + // Servers are always added to the action bar spinner + navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); if (filtersList != null) { + // There was room for a dedicated filter list; add the status types navigationListAdapter = new FilterAdapter(this); filtersList.setAdapter(navigationListAdapter); + navigationListAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); + } else { + // Add status types directly to the action bar spinner + navigationSpinnerAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); } - // Load settings } @@ -73,12 +83,12 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi /** * A new filter was selected; update the view over the current data - * @param selected True if - * @param item + * @param selected True if the filter item was selected, false if it was deselected + * @param item The touched filter item */ @ItemSelect(R.id.filters_list) protected void filterSelected(boolean selected, FilterItem item) { - // TODO: Update the view + // TODO: Update the torrent list view } } diff --git a/lite/src/org/transdroid/lite/gui/TorrentsFragment.java b/lite/src/org/transdroid/lite/gui/TorrentsFragment.java index f53a9e1d..5dd796bb 100644 --- a/lite/src/org/transdroid/lite/gui/TorrentsFragment.java +++ b/lite/src/org/transdroid/lite/gui/TorrentsFragment.java @@ -1,7 +1,7 @@ package org.transdroid.lite.gui; import org.androidannotations.annotations.EFragment; -import org.transdroid.lite.R; +import org.transdroid.core.R; import com.actionbarsherlock.app.SherlockFragment; diff --git a/lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java b/lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java new file mode 100644 index 00000000..0dbe8fc1 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java @@ -0,0 +1,110 @@ +package org.transdroid.lite.gui.lists; + +import org.transdroid.core.R; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.view.View; + +/** + * Draws a progress bar indicating the download progress as well as the torrent status. + * + * @author Eric Kok + */ +public class TorrentProgressBar extends View { + + private final float scale = getContext().getResources().getDisplayMetrics().density; + private final int MINIMUM_HEIGHT = (int) (2 * scale + 0.5f); + // private final int RIGHT_MARGIN = (int)(3 * scale + 0.5f); + + private int progress; + private boolean isActive; + private boolean isError; + private final Paint notdonePaint = new Paint(); + private final Paint inactiveDonePaint = new Paint(); + private final Paint inactivePaint = new Paint(); + private final Paint progressPaint = new Paint(); + private final Paint donePaint = new Paint(); + private final Paint errorPaint = new Paint(); + private final RectF fullRect = new RectF(); + private final RectF progressRect = new RectF(); + + public void setProgress(int progress) { + this.progress = progress; + this.invalidate(); + } + + public void setActive(boolean isActive) { + this.isActive = isActive; + this.invalidate(); + } + + public void setError(boolean isError) { + this.isError = isError; + this.invalidate(); + } + + public TorrentProgressBar(Context context) { + super(context); + initPaints(); + } + + public TorrentProgressBar(Context context, AttributeSet attrs) { + super(context, attrs); + initPaints(); + + // Parse any set attributes from XML + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TorrentProgressBar); + if (a.hasValue(R.styleable.TorrentProgressBar_progress)) { + this.progress = a.getIndex(R.styleable.TorrentProgressBar_progress); + this.isActive = a.getBoolean(R.styleable.TorrentProgressBar_isActive, false); + } + a.recycle(); + } + + private void initPaints() { + notdonePaint.setColor(0xFFEEEEEE); + inactiveDonePaint.setColor(0xFFA759D4); + inactivePaint.setColor(0xFF9E9E9E); + progressPaint.setColor(0xFF42A8FA); + donePaint.setColor(0xFF8CCF29); + errorPaint.setColor(0xFFDE3939); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int ws = MeasureSpec.getSize(widthMeasureSpec);// - RIGHT_MARGIN; + int hs = Math.max(getHeight(), MINIMUM_HEIGHT); + setMeasuredDimension(ws, hs); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + + int height = getHeight(); + int width = getWidth(); + fullRect.set(0, 0, width, height); + + // Error? + if (isError) { + canvas.drawRect(fullRect, errorPaint); + } else { + // Background rounded rectangle + canvas.drawRect(fullRect, notdonePaint); + + // Foreground progress indicator + if (progress > 0) { + progressRect.set(0, 0, width * ((float) progress / 100), height); + canvas.drawRect(progressRect, (isActive ? (progress == 100 ? donePaint : progressPaint) + : (progress == 100 ? inactiveDonePaint : inactivePaint))); + } + } + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java b/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java index 0ffb0b8e..22f9dbe6 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java @@ -2,7 +2,7 @@ package org.transdroid.lite.gui.navigation; import java.util.List; -import org.transdroid.lite.R; +import org.transdroid.core.R; import android.content.Context; import android.view.View; @@ -31,7 +31,7 @@ public class FilterAdapter extends MergeAdapter { * Update the list of available servers. * @param servers The new list of available servers */ - public void updateServers(List servers) { + public void updateServers(List servers) { if (this.serverItems == null && servers != null) { addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)), false); this.serverItems = new FilterItemAdapter(context, servers); @@ -47,7 +47,7 @@ public class FilterAdapter extends MergeAdapter { * Update the list of available status types. * @param statusTypes The new list of available status types */ - public void updateStatusTypes(List statusTypes) { + public void updateStatusTypes(List statusTypes) { if (this.statusTypeItems == null && statusTypes != null) { addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_status)), false); this.statusTypeItems = new FilterItemAdapter(context, statusTypes); @@ -63,7 +63,7 @@ public class FilterAdapter extends MergeAdapter { * Update the list of available labels. * @param labels The new list of available labels */ - public void updateLabels(List labels) { + public void updateLabels(List labels) { if (this.labelItems == null && labels != null) { addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)), false); this.labelItems = new FilterItemAdapter(context, labels); @@ -78,9 +78,9 @@ public class FilterAdapter extends MergeAdapter { protected class FilterItemAdapter extends BaseAdapter { private final Context context; - private List items; + private List items; - public FilterItemAdapter(Context context, List items) { + public FilterItemAdapter(Context context, List items) { this.context = context; this.items = items; } @@ -89,7 +89,7 @@ public class FilterAdapter extends MergeAdapter { * Allows updating of the full data list underlying this adapter, replacing all items * @param newItems The new list of filter items to display */ - public void update(List newItems) { + public void update(List newItems) { this.items = newItems; notifyDataSetChanged(); } diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java b/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java index e7f6dc82..532f85f3 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java @@ -2,7 +2,7 @@ package org.transdroid.lite.gui.navigation; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.lite.R; +import org.transdroid.core.R; import android.content.Context; import android.widget.LinearLayout; diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java b/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java index 09368d89..ea6deaff 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java +++ b/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java @@ -2,7 +2,7 @@ package org.transdroid.lite.gui.navigation; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.lite.R; +import org.transdroid.core.R; import android.content.Context; import android.widget.LinearLayout; diff --git a/lite/src/org/transdroid/lite/gui/navigation/Label.java b/lite/src/org/transdroid/lite/gui/navigation/Label.java new file mode 100644 index 00000000..6da5d20a --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/Label.java @@ -0,0 +1,20 @@ +package org.transdroid.lite.gui.navigation; + +/** + * Represents some label that is active or available on the server. + * @author Eric Kok + */ +public class Label implements FilterItem { + + private final String name; + + public Label(String name) { + this.name = name; + } + + @Override + public String getName() { + return this.name; + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/StatusType.java b/lite/src/org/transdroid/lite/gui/navigation/StatusType.java new file mode 100644 index 00000000..2aaac124 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/navigation/StatusType.java @@ -0,0 +1,75 @@ +package org.transdroid.lite.gui.navigation; + +import java.util.Arrays; +import java.util.List; + +import org.transdroid.core.R; + +import android.content.Context; + +/** + * Enumeration of all status types, which filter the list of shown torrents based on transfer activity. + * @author Eric Kok + */ +public enum StatusType { + + ShowAll { + StatusTypeFilter getFilterItem(Context context) { + return new StatusTypeFilter(context.getString(R.string.navigation_status_showall)); + } + }, + OnlyDownloading { + StatusTypeFilter getFilterItem(Context context) { + return new StatusTypeFilter(context.getString(R.string.navigation_status_onlydown)); + } + }, + OnlyUploading { + StatusTypeFilter getFilterItem(Context context) { + return new StatusTypeFilter(context.getString(R.string.navigation_status_onlyup)); + } + }, + OnlyActive { + StatusTypeFilter getFilterItem(Context context) { + return new StatusTypeFilter(context.getString(R.string.navigation_status_onlyactive)); + } + }, + OnlyInactive { + StatusTypeFilter getFilterItem(Context context) { + return new StatusTypeFilter(context.getString(R.string.navigation_status_onlyinactive)); + } + }; + + /** + * Returns a list with all status types, represented as filter item that can be shown in the GUI. + * @param context The Android UI context, to access translations + * @return A list of filter items for all available status types + */ + public static List getAllStatusTypes(Context context) { + return Arrays.asList(ShowAll.getFilterItem(context), OnlyDownloading.getFilterItem(context), + OnlyUploading.getFilterItem(context), OnlyActive.getFilterItem(context), + OnlyInactive.getFilterItem(context)); + } + + /** + * Every status type can return a filter item that represents it in the navigation + * @param context The Android UI context, to access translations + * @return A filter item object to show in the GUI + */ + abstract StatusTypeFilter getFilterItem(Context context); + + public static class StatusTypeFilter implements FilterItem { + + private final String name; + + StatusTypeFilter(String name) { + this.name = name; + } + + @Override + public String getName() { + return name; + } + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java b/lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java new file mode 100644 index 00000000..5240fee5 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java @@ -0,0 +1,164 @@ +package org.transdroid.lite.gui.settings; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.transdroid.core.R; +import org.transdroid.lite.app.search.SearchHelper; +import org.transdroid.lite.app.search.SearchSite; +import org.transdroid.lite.app.settings.ApplicationSettings; +import org.transdroid.lite.app.settings.RssfeedSetting; +import org.transdroid.lite.app.settings.ServerSetting; +import org.transdroid.lite.app.settings.WebsearchSetting; +import org.transdroid.lite.gui.settings.RssfeedPreference.OnRssfeedClickedListener; +import org.transdroid.lite.gui.settings.ServerPreference.OnServerClickedListener; +import org.transdroid.lite.gui.settings.WebsearchPreference.OnWebsearchClickedListener; + +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +/** + * The main activity that provides access to all application settings. It shows the configured serves, web search sites + * and RSS feeds along with other general settings. + * @author Eric Kok + */ +@EActivity +public class MainSettingsActivity extends SherlockPreferenceActivity { + + @Bean + protected ApplicationSettings applicationSettings; + @Bean + protected SearchHelper searchHelper; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the preference menu and attack actions + addPreferencesFromResource(R.xml.pref_main); + findPreference("header_addserver").setOnPreferenceClickListener(onAddServer); + findPreference("header_addwebsearch").setOnPreferenceClickListener(onAddWebsearch); + findPreference("header_rssfeed").setOnPreferenceClickListener(onAddRssfeed); + findPreference("header_background").setOnPreferenceClickListener(onBackgroundSettings); + findPreference("header_system").setOnPreferenceClickListener(onSystemSettings); + + // Add existing servers + List servers = applicationSettings.getServerSettings(); + for (ServerSetting serverSetting : servers) { + getPreferenceScreen().addPreference( + new ServerPreference(this).setServerSetting(serverSetting).setOnServerClickedListener( + onServerClicked)); + } + + // Add existing websearch sites + List websearches = applicationSettings.getWebsearchSettings(); + for (WebsearchSetting websearchSetting : websearches) { + getPreferenceScreen().addPreference( + new WebsearchPreference(this).setWebsearchSetting(websearchSetting).setOnWebsearchClickedListener( + onWebsearchClicked)); + } + + // Add existing RSS feeds + List rssfeeds = applicationSettings.getRssfeedSettings(); + for (RssfeedSetting rssfeedSetting : rssfeeds) { + getPreferenceScreen().addPreference( + new RssfeedPreference(this).setRssfeedSetting(rssfeedSetting).setOnRssfeedClickedListener( + onRssfeedClicked)); + } + + // Construct list of all available search sites, in-app and web + ListPreference setSite = (ListPreference) findPreference("header_setsearchsite"); + // Retrieve the available in-app search sites (using the Torrent Search package) + List searchsites = searchHelper.getAvailableSites(); + List siteNames = new ArrayList(websearches.size() + searchsites.size()); + List siteValues = new ArrayList(websearches.size() + searchsites.size()); + for (SearchSite searchSite : searchsites) { + siteNames.add(searchSite.getName()); + siteValues.add(searchSite.getKey()); + } + for (WebsearchSetting websearch : websearches) { + siteNames.add(websearch.getName()); + siteValues.add(websearch.getKey()); + } + // Supply the Preference list names and values + setSite.setEntries(siteNames.toArray(new String[siteNames.size()])); + setSite.setEntryValues(siteValues.toArray(new String[siteValues.size()])); + + } + + @Override + public void onBuildHeaders(List

target) { + // TODO: Add two-pane support in settings + super.onBuildHeaders(target); + } + + private OnPreferenceClickListener onAddServer = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + ServerSettingsActivity_.intent(MainSettingsActivity.this).start(); + return true; + } + }; + + private OnPreferenceClickListener onAddWebsearch = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + WebsearchSettingsActivity_.intent(MainSettingsActivity.this).start(); + return true; + } + }; + + private OnPreferenceClickListener onAddRssfeed = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + RssfeedSettingsActivity_.intent(MainSettingsActivity.this).start(); + return true; + } + }; + + private OnPreferenceClickListener onBackgroundSettings = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + OtherSettingsActivity_.intent(MainSettingsActivity.this).preferencesResourceID(R.xml.pref_notifications) + .start(); + return true; + } + }; + + private OnPreferenceClickListener onSystemSettings = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + OtherSettingsActivity_.intent(MainSettingsActivity.this).preferencesResourceID(R.xml.pref_about).start(); + return true; + } + }; + + private OnServerClickedListener onServerClicked = new OnServerClickedListener() { + @Override + public void onServerClicked(ServerSetting serverSetting) { + ServerSettingsActivity_.intent(MainSettingsActivity.this).key(serverSetting.getOrder()).start(); + } + }; + + private OnWebsearchClickedListener onWebsearchClicked = new OnWebsearchClickedListener() { + @Override + public void onWebsearchClicked(WebsearchSetting websearchSetting) { + WebsearchSettingsActivity_.intent(MainSettingsActivity.this).key(websearchSetting.getOrder()).start(); + } + }; + + private OnRssfeedClickedListener onRssfeedClicked = new OnRssfeedClickedListener() { + @Override + public void onRssfeedClicked(RssfeedSetting rssfeedSetting) { + RssfeedSettingsActivity_.intent(MainSettingsActivity.this).key(rssfeedSetting.getOrder()).start(); + } + }; + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java b/lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java new file mode 100644 index 00000000..5e23ee79 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java @@ -0,0 +1,31 @@ +package org.transdroid.lite.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.transdroid.lite.app.settings.ApplicationSettings; + +import android.os.Bundle; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +@EActivity +public class OtherSettingsActivity extends SherlockPreferenceActivity { + + @Extra + protected int preferencesResourceID; + + @Bean + protected ApplicationSettings applicationSettings; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Just load the preferences from XML, of which the ID is supplied as extra + addPreferencesFromResource(preferencesResourceID); + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java b/lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java new file mode 100644 index 00000000..49a81046 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java @@ -0,0 +1,59 @@ +package org.transdroid.lite.gui.settings; + +import org.transdroid.lite.app.settings.RssfeedSetting; + +import android.content.Context; +import android.preference.Preference; + +/** + * Represents a {@link RssfeedSetting} in a preferences screen. + * @author Eric Kok + */ +public class RssfeedPreference extends Preference { + + private static final int ORDER_START = 201; + + private RssfeedSetting rssfeedSetting; + private OnRssfeedClickedListener onRssfeedClickedListener = null; + + public RssfeedPreference(Context context) { + super(context); + setOnPreferenceClickListener(onPreferenceClicked); + } + + /** + * Set the RSS feed settings object that is bound to this preference item + * @param rssfeedSetting The RSS feed settings + * @return Itself, for method chaining + */ + public RssfeedPreference setRssfeedSetting(RssfeedSetting rssfeedSetting) { + this.rssfeedSetting = rssfeedSetting; + setTitle(rssfeedSetting.getName()); + setOrder(ORDER_START + rssfeedSetting.getOrder()); + return this; + } + + /** + * Set a listener that will be notified of click events on this preference + * @param onRssfeedClickedListener The click listener to register + * @return Itself, for method chaining + */ + public RssfeedPreference setOnRssfeedClickedListener(OnRssfeedClickedListener onRssfeedClickedListener) { + this.onRssfeedClickedListener = onRssfeedClickedListener; + return this; + } + + private OnPreferenceClickListener onPreferenceClicked = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (onRssfeedClickedListener != null) + onRssfeedClickedListener.onRssfeedClicked(rssfeedSetting); + return true; + } + }; + + public interface OnRssfeedClickedListener { + public void onRssfeedClicked(RssfeedSetting rssfeedSetting); + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java b/lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java new file mode 100644 index 00000000..2b83f52f --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java @@ -0,0 +1,46 @@ +package org.transdroid.lite.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.transdroid.core.R; +import org.transdroid.lite.app.settings.ApplicationSettings; + +import android.os.Bundle; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +/** + * Activity that allows for a configuration of some RSS feed. The key can be supplied to update an + * existing RSS feed setting instead of creating a new one. + * @author Eric Kok + */ +@EActivity +public class RssfeedSettingsActivity extends SherlockPreferenceActivity { + + @Extra + protected int key = -1; + + @Bean + protected ApplicationSettings applicationSettings; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the raw preferences to show in this screen + addPreferencesFromResource(R.xml.pref_rssfeed); + + // Bind the preferences to the correct storage key, e.g. the first RSS feed setting stores its URL in the + // 'rssfeed_url_0' shared preferences field + if (key < 0) { + key = applicationSettings.getMaxRssfeed() + 1; + } + findPreference("rssfeed_name").setKey("rssfeed_name_" + key); + findPreference("rssfeed_url").setKey("rssfeed_url_" + key); + findPreference("rssfeed_reqauth").setKey("rssfeed_reqauth_" + key); + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/ServerPreference.java b/lite/src/org/transdroid/lite/gui/settings/ServerPreference.java new file mode 100644 index 00000000..802873e3 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/ServerPreference.java @@ -0,0 +1,59 @@ +package org.transdroid.lite.gui.settings; + +import org.transdroid.lite.app.settings.ServerSetting; + +import android.content.Context; +import android.preference.Preference; + +/** + * Represents a {@link ServerSetting} in a preferences screen. + * @author Eric Kok + */ +public class ServerPreference extends Preference { + + private static final int ORDER_START = 1; + + private ServerSetting serverSetting; + private OnServerClickedListener onServerClickedListener = null; + + public ServerPreference(Context context) { + super(context); + setOnPreferenceClickListener(onPreferenceClicked); + } + + /** + * Set the server settings object that is bound to this preference item + * @param serverSetting The server settings + * @return Itself, for method chaining + */ + public ServerPreference setServerSetting(ServerSetting serverSetting) { + this.serverSetting = serverSetting; + setTitle(serverSetting.getHumanReadableIdentifier()); + setOrder(ORDER_START + serverSetting.getOrder()); + return this; + } + + /** + * Set a listener that will be notified of click events on this preference + * @param onServerClickedListener The click listener to register + * @return Itself, for method chaining + */ + public ServerPreference setOnServerClickedListener(OnServerClickedListener onServerClickedListener) { + this.onServerClickedListener = onServerClickedListener; + return this; + } + + private OnPreferenceClickListener onPreferenceClicked = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (onServerClickedListener != null) + onServerClickedListener.onServerClicked(serverSetting); + return true; + } + }; + + public interface OnServerClickedListener { + public void onServerClicked(ServerSetting serverSetting); + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java b/lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java new file mode 100644 index 00000000..148a8b56 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java @@ -0,0 +1,94 @@ +package org.transdroid.lite.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.transdroid.daemon.Daemon; +import org.transdroid.core.R; +import org.transdroid.lite.app.settings.ApplicationSettings; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +/** + * Activity that allows for a configuration of a server. The key can be supplied to update an existing server setting + * instead of creating a new one. + * @author Eric Kok + */ +@EActivity +public class ServerSettingsActivity extends SherlockPreferenceActivity { + + @Extra + protected int key = -1; + + @Bean + protected ApplicationSettings applicationSettings; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the raw preferences to show in this screen + addPreferencesFromResource(R.xml.pref_server); + + // Bind the preferences to the correct storage key, e.g. the first server setting stores its address in the + // 'server_address_0' shared preferences field + if (key < 0) { + key = applicationSettings.getMaxWebsearch() + 1; + } + findPreference("server_name").setKey("server_name_" + key); + findPreference("server_type").setKey("server_type_" + key); + findPreference("server_address").setKey("server_address_" + key); + findPreference("server_port").setKey("server_port_" + key); + findPreference("server_user").setKey("server_user_" + key); + findPreference("server_pass").setKey("server_pass_" + key); + findPreference("server_extrapass").setKey("server_extrapass_" + key); + findPreference("server_localaddress").setKey("server_localaddress_" + key); + findPreference("server_localnetwork").setKey("server_localnetwork_" + key); + findPreference("server_folder").setKey("server_folder_" + key); + findPreference("server_timeout").setKey("server_timeout_" + key); + findPreference("server_alamrfinished").setKey("server_alamrfinished_" + key); + findPreference("server_alarnew").setKey("server_alarnew_" + key); + findPreference("server_os").setKey("server_os_" + key); + findPreference("server_downloaddir").setKey("server_downloaddir_" + key); + findPreference("server_ftpurl").setKey("server_ftpurl_" + key); + findPreference("server_ftppass").setKey("server_ftppass_" + key); + findPreference("server_sslenabled").setKey("server_sslenabled_" + key); + findPreference("server_ssltrustall").setKey("server_ssltrustall_" + key); + findPreference("server_ssltrustkey").setKey("server_ssltrustkey_" + key); + + // Monitor preference changes + getPreferenceScreen().setOnPreferenceChangeListener(onPreferenceChangeListener); + } + + private OnPreferenceChangeListener onPreferenceChangeListener = new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + updatePreferenceAvailability(); + return true; + } + }; + + @SuppressWarnings("deprecation") + private void updatePreferenceAvailability() { + + // Use daemon factory to see if the newly selected daemon supports the feature + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + Daemon daemonType = Daemon.fromCode(prefs.getString("server_type_" + key, null)); + findPreference("server_extrapass_" + key).setEnabled(Daemon.supportsExtraPassword(daemonType)); + findPreference("server_folder_" + key).setEnabled(daemonType == null? false: Daemon.supportsCustomFolder(daemonType)); + findPreference("server_downloaddir_" + key).setEnabled(daemonType == null? false: Daemon.needsManualPathSpecified(daemonType)); + //findPreference("server_ssltrustkey_" + key).setEnabled(sslValue && !sslTAValue); + + // Adjust title texts accordingly + findPreference("server_folder_" + key).setTitle(daemonType == Daemon.rTorrent? R.string.pref_scgifolder: R.string.pref_folder); + + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java b/lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java new file mode 100644 index 00000000..929f66a9 --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java @@ -0,0 +1,59 @@ +package org.transdroid.lite.gui.settings; + +import org.transdroid.lite.app.settings.WebsearchSetting; + +import android.content.Context; +import android.preference.Preference; + +/** + * Represents a {@link WebsearchSetting} in a preferences screen. + * @author Eric Kok + */ +public class WebsearchPreference extends Preference { + + private static final int ORDER_START = 102; + + private WebsearchSetting websearchSetting; + private OnWebsearchClickedListener onWebsearchClickedListener = null; + + public WebsearchPreference(Context context) { + super(context); + setOnPreferenceClickListener(onPreferenceClicked); + } + + /** + * Set the websearch settings object that is bound to this preference item + * @param websearchSetting The websearch settings + * @return Itself, for method chaining + */ + public WebsearchPreference setWebsearchSetting(WebsearchSetting websearchSetting) { + this.websearchSetting = websearchSetting; + setTitle(websearchSetting.getName()); + setOrder(ORDER_START + websearchSetting.getOrder()); + return this; + } + + /** + * Set a listener that will be notified of click events on this preference + * @param onWebsearchClickedListener The click listener to register + * @return Itself, for method chaining + */ + public WebsearchPreference setOnWebsearchClickedListener(OnWebsearchClickedListener onWebsearchClickedListener) { + this.onWebsearchClickedListener = onWebsearchClickedListener; + return this; + } + + private OnPreferenceClickListener onPreferenceClicked = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (onWebsearchClickedListener != null) + onWebsearchClickedListener.onWebsearchClicked(websearchSetting); + return true; + } + }; + + public interface OnWebsearchClickedListener { + public void onWebsearchClicked(WebsearchSetting serverSetting); + } + +} diff --git a/lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java b/lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java new file mode 100644 index 00000000..d5daae2e --- /dev/null +++ b/lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java @@ -0,0 +1,45 @@ +package org.transdroid.lite.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.transdroid.core.R; +import org.transdroid.lite.app.settings.ApplicationSettings; + +import android.os.Bundle; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +/** + * Activity that allows for a configuration of a web search site. The key can be supplied to update an existing web + * search site setting instead of creating a new one. + * @author Eric Kok + */ +@EActivity +public class WebsearchSettingsActivity extends SherlockPreferenceActivity { + + @Extra + protected int key = -1; + + @Bean + protected ApplicationSettings applicationSettings; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the raw preferences to show in this screen + addPreferencesFromResource(R.xml.pref_websearch); + + // Bind the preferences to the correct storage key, e.g. the first site setting stores its URL in the + // 'websearch_baseurl_0' shared preferences field + if (key < 0) { + key = applicationSettings.getMaxWebsearch() + 1; + } + findPreference("websearch_name").setKey("websearch_name_" + key); + findPreference("websearch_baseurl").setKey("websearch_baseurl_" + key); + + } + +} From fc83f907e18cf43714f3681778935a9c270d984e Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Wed, 6 Mar 2013 03:12:31 +0100 Subject: [PATCH 06/60] Build torrent and details fragment UI and started on logic. --- .../daemon/BitComet/BitCometAdapter.java | 6 +- .../daemon/Bitflu/BitfluAdapter.java | 3 +- .../daemon/BuffaloNas/BuffaloNasAdapter.java | 3 +- .../DLinkRouterBT/DLinkRouterBTAdapter.java | 3 +- .../daemon/Deluge/DelugeAdapter.java | 5 +- .../daemon/Ktorrent/StatsParser.java | 4 +- .../Qbittorrent/QbittorrentAdapter.java | 3 +- .../daemon/Rtorrent/RtorrentAdapter.java | 10 +- .../transdroid/daemon/Tfb4rt/StatsParser.java | 4 +- lib/src/org/transdroid/daemon/Torrent.java | 7 +- .../Transmission/TransmissionAdapter.java | 3 +- .../daemon/Utorrent/UtorrentAdapter.java | 3 +- .../transdroid/daemon/Vuze/VuzeAdapter.java | 16 +- .../daemon/util/FileSizeConverter.java | 84 ++++-- lite/.classpath | 2 +- lite/AndroidManifest.xml | 64 ++++- lite/res/layout-w600dp/activity_torrents.xml | 2 +- lite/res/layout-w720dp/activity_torrents.xml | 4 +- lite/res/layout/activity_details.xml | 16 ++ lite/res/layout/activity_torrents.xml | 3 +- lite/res/layout/fragment_details.xml | 1 + lite/res/layout/fragment_details_header.xml | 26 +- lite/res/layout/fragment_torrents.xml | 1 + lite/res/layout/list_item_torrent.xml | 11 +- lite/res/layout/list_item_torrentfile.xml | 58 ++++ lite/res/menu/activity_details.xml | 9 + lite/res/values/strings.xml | 59 +++- lite/res/xml/searchable.xml | 8 + .../app/search/SearchHelper.java | 2 +- .../app/search/SearchResult.java | 2 +- .../{lite => core}/app/search/SearchSite.java | 6 +- .../app/settings/AboutSettings.java | 2 +- .../app/settings/ApplicationSettings.java | 52 +++- .../app/settings/NotificationSettings.java | 2 +- .../app/settings/RssfeedSetting.java | 6 +- .../app/settings/ServerSetting.java | 33 ++- .../app/settings/WebsearchSetting.java | 6 +- .../transdroid/core/gui/DetailsActivity.java | 132 +++++++++ .../transdroid/core/gui/DetailsFagment.java | 113 ++++++++ .../core/gui/SearchHistoryProvider.java | 22 ++ .../transdroid/core/gui/TorrentsActivity.java | 253 ++++++++++++++++++ .../transdroid/core/gui/TorrentsFragment.java | 69 +++++ .../core/gui/lists/DetailsAdapter.java | 141 ++++++++++ .../core/gui/lists/LocalTorrent.java | 233 ++++++++++++++++ .../gui/lists/SimpleListItem.java} | 4 +- .../core/gui/lists/SimpleListItemAdapter.java | 91 +++++++ .../gui/lists/SimpleListItemView.java} | 10 +- .../core/gui/lists/TorrentDetailsView.java | 85 ++++++ .../core/gui/lists/TorrentFileView.java | 53 ++++ .../gui/lists/TorrentProgressBar.java | 2 +- .../core/gui/lists/TorrentView.java | 47 ++++ .../core/gui/lists/TorrentsAdapter.java | 67 +++++ .../gui/navigation/FilterListAdapter.java | 78 ++++++ .../gui/navigation/FilterSeparatorView.java | 5 +- .../{lite => core}/gui/navigation/Label.java | 6 +- .../gui/navigation/NavigationHelper.java | 2 +- .../gui/navigation/StatusType.java | 5 +- .../gui/settings/MainSettingsActivity.java | 20 +- .../gui/settings/OtherSettingsActivity.java | 4 +- .../gui/settings/RssfeedPreference.java | 4 +- .../gui/settings/RssfeedSettingsActivity.java | 4 +- .../gui/settings/ServerPreference.java | 4 +- .../gui/settings/ServerSettingsActivity.java | 4 +- .../gui/settings/WebsearchPreference.java | 4 +- .../settings/WebsearchSettingsActivity.java | 4 +- .../transdroid/lite/gui/DetailsFagment.java | 47 ---- .../transdroid/lite/gui/TorrentsActivity.java | 94 ------- .../transdroid/lite/gui/TorrentsFragment.java | 11 - .../lite/gui/navigation/FilterAdapter.java | 125 --------- 69 files changed, 1850 insertions(+), 422 deletions(-) create mode 100644 lite/res/layout/activity_details.xml create mode 100644 lite/res/layout/list_item_torrentfile.xml create mode 100644 lite/res/menu/activity_details.xml create mode 100644 lite/res/xml/searchable.xml rename lite/src/org/transdroid/{lite => core}/app/search/SearchHelper.java (99%) rename lite/src/org/transdroid/{lite => core}/app/search/SearchResult.java (96%) rename lite/src/org/transdroid/{lite => core}/app/search/SearchSite.java (80%) rename lite/src/org/transdroid/{lite => core}/app/settings/AboutSettings.java (94%) rename lite/src/org/transdroid/{lite => core}/app/settings/ApplicationSettings.java (72%) rename lite/src/org/transdroid/{lite => core}/app/settings/NotificationSettings.java (98%) rename lite/src/org/transdroid/{lite => core}/app/settings/RssfeedSetting.java (89%) rename lite/src/org/transdroid/{lite => core}/app/settings/ServerSetting.java (78%) rename lite/src/org/transdroid/{lite => core}/app/settings/WebsearchSetting.java (85%) create mode 100644 lite/src/org/transdroid/core/gui/DetailsActivity.java create mode 100644 lite/src/org/transdroid/core/gui/DetailsFagment.java create mode 100644 lite/src/org/transdroid/core/gui/SearchHistoryProvider.java create mode 100644 lite/src/org/transdroid/core/gui/TorrentsActivity.java create mode 100644 lite/src/org/transdroid/core/gui/TorrentsFragment.java create mode 100644 lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java create mode 100644 lite/src/org/transdroid/core/gui/lists/LocalTorrent.java rename lite/src/org/transdroid/{lite/gui/navigation/FilterItem.java => core/gui/lists/SimpleListItem.java} (64%) create mode 100644 lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java rename lite/src/org/transdroid/{lite/gui/navigation/FilterItemView.java => core/gui/lists/SimpleListItemView.java} (58%) create mode 100644 lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java create mode 100644 lite/src/org/transdroid/core/gui/lists/TorrentFileView.java rename lite/src/org/transdroid/{lite => core}/gui/lists/TorrentProgressBar.java (98%) create mode 100644 lite/src/org/transdroid/core/gui/lists/TorrentView.java create mode 100644 lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java create mode 100644 lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java rename lite/src/org/transdroid/{lite => core}/gui/navigation/FilterSeparatorView.java (86%) rename lite/src/org/transdroid/{lite => core}/gui/navigation/Label.java (62%) rename lite/src/org/transdroid/{lite => core}/gui/navigation/NavigationHelper.java (94%) rename lite/src/org/transdroid/{lite => core}/gui/navigation/StatusType.java (92%) rename lite/src/org/transdroid/{lite => core}/gui/settings/MainSettingsActivity.java (91%) rename lite/src/org/transdroid/{lite => core}/gui/settings/OtherSettingsActivity.java (87%) rename lite/src/org/transdroid/{lite => core}/gui/settings/RssfeedPreference.java (94%) rename lite/src/org/transdroid/{lite => core}/gui/settings/RssfeedSettingsActivity.java (92%) rename lite/src/org/transdroid/{lite => core}/gui/settings/ServerPreference.java (94%) rename lite/src/org/transdroid/{lite => core}/gui/settings/ServerSettingsActivity.java (97%) rename lite/src/org/transdroid/{lite => core}/gui/settings/WebsearchPreference.java (94%) rename lite/src/org/transdroid/{lite => core}/gui/settings/WebsearchSettingsActivity.java (92%) delete mode 100644 lite/src/org/transdroid/lite/gui/DetailsFagment.java delete mode 100644 lite/src/org/transdroid/lite/gui/TorrentsActivity.java delete mode 100644 lite/src/org/transdroid/lite/gui/TorrentsFragment.java delete mode 100644 lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java diff --git a/lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java b/lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java index 732a4e8a..525c9c0c 100644 --- a/lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java +++ b/lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java @@ -480,7 +480,8 @@ public class BitCometAdapter implements IDaemonAdapter { comment, dateAdded, null, - null)); + null, + settings.getType())); } } } @@ -557,7 +558,8 @@ public class BitCometAdapter implements IDaemonAdapter { label, dateAdded, null, - null)); // Not supported in the web interface + null, // Not supported in the web interface + settings.getType())); id++; // Stop/start/etc. requests are made by ID, which is the order number in the returned XML list :-S diff --git a/lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java b/lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java index 14e618bd..cfcc2fe0 100644 --- a/lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java +++ b/lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java @@ -214,7 +214,8 @@ public class BitfluAdapter implements IDaemonAdapter { null, // label null, // Not available null, // Not available - null)); // Not available + null, // Not available + settings.getType())); } } // Return the list diff --git a/lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java b/lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java index dbe6bea8..06db1af9 100644 --- a/lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java +++ b/lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java @@ -281,7 +281,8 @@ public class BuffaloNasAdapter implements IDaemonAdapter { null, null, null, - null)); + null, + settings.getType())); } // Return the list diff --git a/lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java b/lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java index 521333b7..b9eabbaf 100644 --- a/lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java +++ b/lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java @@ -376,7 +376,8 @@ public class DLinkRouterBTAdapter implements IDaemonAdapter { null, null, null, - null); + null, + settings.getType()); torrents.add(new_t); } diff --git a/lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java b/lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java index 8a7fa785..6ce49d45 100644 --- a/lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java +++ b/lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java @@ -593,8 +593,9 @@ public class DelugeAdapter implements IDaemonAdapter { 0f, // Not available tor.has(RPC_LABEL)? tor.getString(RPC_LABEL): null, tor.has(RPC_TIMEADDED)? new Date(tor.getInt(RPC_TIMEADDED) * 1000L): null, - null, - tor.getString(RPC_MESSAGE))); // Not available + null, // Not available + tor.getString(RPC_MESSAGE), + settings.getType())); } } diff --git a/lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java b/lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java index fb55a519..b6dd76f7 100644 --- a/lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java +++ b/lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java @@ -5,6 +5,7 @@ import java.io.Reader; import java.util.ArrayList; import java.util.List; +import org.transdroid.daemon.Daemon; import org.transdroid.daemon.DaemonException; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentStatus; @@ -85,7 +86,8 @@ public class StatsParser { null, // Not supported in the web interface null, // Not supported in the web interface null, // Not supported in the web interface - null)); // Not supported in the web interface + null, // Not supported in the web interface + Daemon.KTorrent)); id++; // Stop/start/etc. requests are made by ID, which is the order number in the returned XML list :-S } else if (next == XmlPullParser.START_TAG && name.equals("torrent")){ diff --git a/lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java b/lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java index fb6a3fc2..c96e3f82 100644 --- a/lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java +++ b/lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java @@ -394,7 +394,8 @@ public class QbittorrentAdapter implements IDaemonAdapter { null, null, // Only available in /json/propertiesGeneral on a per-torrent basis, unfortunately null, - null)); + null, + settings.getType())); } // Return the list diff --git a/lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java b/lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java index 7e06af29..fb71300b 100644 --- a/lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java +++ b/lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java @@ -350,10 +350,11 @@ public class RtorrentAdapter implements IDaemonAdapter { (Long)info[10], // totalSize ((Long)info[8]).floatValue() / ((Long)info[10]).floatValue(), // partDone 0f, // TODO: Add availability data - label, // See remark on rTorrent/groups above + label, added, finished, - error)); + error, + settings.getType())); } else { @@ -379,10 +380,11 @@ public class RtorrentAdapter implements IDaemonAdapter { (Integer)info[10], // totalSize ((Integer)info[8]).floatValue() / ((Integer)info[10]).floatValue(), // partDone 0f, // TODO: Add availability data - label, // See remark on rTorrent/groups above + label, added, finished, - error)); + error, + settings.getType())); } } diff --git a/lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java b/lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java index af7f5cc7..31dc7ae7 100644 --- a/lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java +++ b/lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java @@ -5,6 +5,7 @@ import java.io.Reader; import java.util.ArrayList; import java.util.List; +import org.transdroid.daemon.Daemon; import org.transdroid.daemon.DaemonException; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentStatus; @@ -80,7 +81,8 @@ public class StatsParser { null, // Not supported in the XML stats null, null, - null)); + null, + Daemon.Tfb4rt)); } else if (next == XmlPullParser.START_TAG && name.equals("transfer")){ diff --git a/lib/src/org/transdroid/daemon/Torrent.java b/lib/src/org/transdroid/daemon/Torrent.java index 2d5ec2a9..2125755d 100644 --- a/lib/src/org/transdroid/daemon/Torrent.java +++ b/lib/src/org/transdroid/daemon/Torrent.java @@ -55,6 +55,7 @@ public final class Torrent implements Parcelable, Comparable { final private Date dateAdded; final private Date dateDone; final private String error; + final private Daemon daemon; //public long getID() { return id; } //public String getHash() { return hash; } @@ -80,6 +81,7 @@ public final class Torrent implements Parcelable, Comparable { public Date getDateAdded() { return dateAdded; } public Date getDateDone() { return dateDone; } public String getError() { return error; } + public Daemon getDaemon() { return daemon; } private Torrent(Parcel in) { this.id = in.readLong(); @@ -108,12 +110,13 @@ public final class Torrent implements Parcelable, Comparable { long lDateDone = in.readLong(); this.dateDone = (lDateDone == -1)? null: new Date(lDateDone); this.error = in.readString(); + this.daemon = Daemon.valueOf(in.readString()); } public Torrent(long id, String hash, String name, TorrentStatus statusCode, String locationDir, int rateDownload, int rateUpload, int peersGettingFromUs, int peersSendingToUs, int peersConnected, int peersKnown, int eta, long downloadedEver, long uploadedEver, long totalSize, float partDone, float available, String label, - Date dateAdded, Date realDateDone, String error) { + Date dateAdded, Date realDateDone, String error, Daemon daemon) { this.id = id; this.hash = hash; this.name = name; @@ -149,6 +152,7 @@ public final class Torrent implements Parcelable, Comparable { this.dateDone = cal.getTime(); } this.error = error; + this.daemon = daemon; } /** @@ -296,6 +300,7 @@ public final class Torrent implements Parcelable, Comparable { dest.writeLong((dateAdded == null)? -1: dateAdded.getTime()); dest.writeLong((dateDone == null)? -1: dateDone.getTime()); dest.writeString(error); + dest.writeString(daemon.name()); } } diff --git a/lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java b/lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java index aa4bb4e1..0aeb6d1b 100644 --- a/lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java +++ b/lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java @@ -500,7 +500,8 @@ public class TransmissionAdapter implements IDaemonAdapter { null, // No label/category/group support in the RPC API for now new Date(tor.getLong(RPC_DATEADDED) * 1000L), new Date(tor.getLong(RPC_DATEDONE) * 1000L), - errorString)); + errorString, + settings.getType())); } // Return the list diff --git a/lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java b/lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java index 40b9214b..982fa079 100644 --- a/lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java +++ b/lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java @@ -515,7 +515,8 @@ public class UtorrentAdapter implements IDaemonAdapter { addedOnDate, completedOnDate, // uTorrent doesn't give the error message, so just remind that there is some error - status == TorrentStatus.Error? "See GUI for error message": null)); + status == TorrentStatus.Error? "See GUI for error message": null, + settings.getType())); } return torrents; diff --git a/lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java b/lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java index b19ca94d..ba55e981 100644 --- a/lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java +++ b/lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java @@ -31,6 +31,7 @@ import java.util.Map; import org.apache.openjpa.lib.util.Base16Encoder; import org.transdroid.daemon.Daemon; import org.transdroid.daemon.DaemonException; +import org.transdroid.daemon.DaemonException.ExceptionType; import org.transdroid.daemon.DaemonMethod; import org.transdroid.daemon.DaemonSettings; import org.transdroid.daemon.IDaemonAdapter; @@ -38,7 +39,6 @@ import org.transdroid.daemon.Priority; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentFile; import org.transdroid.daemon.TorrentStatus; -import org.transdroid.daemon.DaemonException.ExceptionType; import org.transdroid.daemon.task.AddByFileTask; import org.transdroid.daemon.task.AddByUrlTask; import org.transdroid.daemon.task.DaemonTask; @@ -99,18 +99,27 @@ public class VuzeAdapter implements IDaemonAdapter { case AddByFile: byte[] bytes; + FileInputStream in = null; try { // Request to add a torrent by local .torrent file String file = ((AddByFileTask)task).getFile(); - FileInputStream in = new FileInputStream(new File(URI.create(file))); + in = new FileInputStream(new File(URI.create(file))); bytes = new byte[in.available()]; in.read(bytes, 0, in.available()); + in.close(); } catch (FileNotFoundException e) { return new DaemonTaskFailureResult(task, new DaemonException(ExceptionType.FileAccessError, e.toString())); } catch (IllegalArgumentException e) { return new DaemonTaskFailureResult(task, new DaemonException(ExceptionType.FileAccessError, "Invalid local URI")); } catch (Exception e) { return new DaemonTaskFailureResult(task, new DaemonException(ExceptionType.FileAccessError, e.toString())); + } finally { + try { + if (in != null) + in.close(); + } catch (IOException e) { + // Ignore; it was already closed or never opened + } } makeVuzeCall(DaemonMethod.AddByFile, "createFromBEncodedData[byte[]]", new String[] { Base16Encoder.encode(bytes) }); return new DaemonTaskSuccessResult(task); @@ -406,7 +415,8 @@ public class VuzeAdapter implements IDaemonAdapter { null, // TODO: Implement Vuze label support new Date((Long) statsinfo.get("time_started")), // dateAdded null, // Unsupported? - error)); + error, + settings.getType())); } diff --git a/lib/src/org/transdroid/daemon/util/FileSizeConverter.java b/lib/src/org/transdroid/daemon/util/FileSizeConverter.java index a31c9966..13f18e38 100644 --- a/lib/src/org/transdroid/daemon/util/FileSizeConverter.java +++ b/lib/src/org/transdroid/daemon/util/FileSizeConverter.java @@ -15,71 +15,99 @@ * along with Transdroid. If not, see . * */ - package org.transdroid.daemon.util; +package org.transdroid.daemon.util; /** * Quick and dirty file size formatter. - * * @author erickok - * */ public class FileSizeConverter { private static final String DECIMAL_FORMATTER = "%.1f"; - + /** * A quantity in which to express a file size. - * * @author erickok - * */ public enum SizeUnit { - B, - KB, - MB, - GB + B, KB, MB, GB } - + private static int INC_SIZE = 1024; - - // Returns a file size given in bytes to a different unit, as a formatted string - public static String getSize(long from, SizeUnit to) - { + + /** + * Returns a file size (in bytes) in a different unit, as a formatted string + * @param from The file size in bytes + * @param to The unit to convert to + * @return A formatted string with number (rounded to one decimal) and unit, e.g. 1177.4MB + */ + public static String getSize(long from, SizeUnit to) { String out; switch (to) { case B: out = String.valueOf(from); break; case KB: - out = String.format(DECIMAL_FORMATTER, ((double)from) / 1024); + out = String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE); break; case MB: - out = String.format(DECIMAL_FORMATTER, ((double)from) / 1024 / 1024); + out = String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE / INC_SIZE); break; default: - out = String.format(DECIMAL_FORMATTER, ((double)from) / 1024 / 1024 / 1024); + out = String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE / INC_SIZE / INC_SIZE); break; } - - return (out + " " + to.toString()); + + return (out + " " + to.toString()); } - // Returns a file size in bytes in a nice readable formatted string + /** + * Returns a file size as nice readable string, with unit, e.g. 1234567890 (bytes) returns 1,15GB + * @param from The file size in bytes + * @return A formatted string with number (rounded to one decimal), with unit text + */ public static String getSize(long from) { return getSize(from, true); } // Returns a file size in bytes in a nice readable formatted string + /** + * Returns a file size as nice readable string, e.g. 1234567890 (bytes) returns 1,15 or 1,15GB + * @param from The file size in bytes + * @param withUnit Whether to also append the appropriate unit (B, KB, MB, GB) as text + * @return A formatted string with number (rounded to one decimal) and optionally unit + */ public static String getSize(long from, boolean withUnit) { if (from < INC_SIZE) { - return String.valueOf(from) + (withUnit? SizeUnit.B.toString(): ""); - } else if (from < (INC_SIZE * INC_SIZE)) { - return String.format(DECIMAL_FORMATTER, ((double)from) / INC_SIZE) + (withUnit? SizeUnit.KB.toString(): ""); + return String.valueOf(from) + (withUnit ? SizeUnit.B.toString() : ""); + } else if (from < (INC_SIZE * INC_SIZE)) { + return String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE) + + (withUnit ? SizeUnit.KB.toString() : ""); } else if (from < (INC_SIZE * INC_SIZE * INC_SIZE)) { - return String.format(DECIMAL_FORMATTER, ((double)from) / INC_SIZE / INC_SIZE) + (withUnit? SizeUnit.MB.toString(): ""); - } else { - return String.format(DECIMAL_FORMATTER, ((double)from) / INC_SIZE / INC_SIZE / INC_SIZE) + (withUnit? SizeUnit.GB.toString(): ""); + return String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE / INC_SIZE) + + (withUnit ? SizeUnit.MB.toString() : ""); + } else { + return String.format(DECIMAL_FORMATTER, ((double) from) / INC_SIZE / INC_SIZE / INC_SIZE) + + (withUnit ? SizeUnit.GB.toString() : ""); } } - + + /** + * Returns the unit to display some file size (as returned by getSize(long)) in, e.g. 1234567890 (bytes) returns GB + * as it is 1.2GB big + * @param from The file size in bytes + * @return The unit, i.e. B, KB, MB or GB + */ + public static SizeUnit getSizeUnit(long from) { + if (from < INC_SIZE) { + return SizeUnit.B; + } else if (from < (INC_SIZE * INC_SIZE)) { + return SizeUnit.KB; + } else if (from < (INC_SIZE * INC_SIZE * INC_SIZE)) { + return SizeUnit.MB; + } else { + return SizeUnit.GB; + } + } + } diff --git a/lite/.classpath b/lite/.classpath index 350f40f7..08d23ddb 100644 --- a/lite/.classpath +++ b/lite/.classpath @@ -9,6 +9,6 @@ - + diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index e33579dd..90b10a33 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -17,12 +17,13 @@ + + @@ -30,12 +31,59 @@ + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/layout-w600dp/activity_torrents.xml b/lite/res/layout-w600dp/activity_torrents.xml index 2f96106f..da228be0 100644 --- a/lite/res/layout-w600dp/activity_torrents.xml +++ b/lite/res/layout-w600dp/activity_torrents.xml @@ -21,7 +21,7 @@ android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="3" - class="org.transdroid.gui.TorrentsFragment" + class="org.transdroid.core.gui.TorrentsFragment_" tools:layout="@layout/fragment_torrents" /> \ No newline at end of file diff --git a/lite/res/layout-w720dp/activity_torrents.xml b/lite/res/layout-w720dp/activity_torrents.xml index 6575c30e..dfdbcad1 100644 --- a/lite/res/layout-w720dp/activity_torrents.xml +++ b/lite/res/layout-w720dp/activity_torrents.xml @@ -21,7 +21,7 @@ android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="2" - class="org.transdroid.gui.TorrentsFragment" + class="org.transdroid.core.gui.TorrentsFragment_" tools:layout="@layout/fragment_torrents" /> \ No newline at end of file diff --git a/lite/res/layout/activity_details.xml b/lite/res/layout/activity_details.xml new file mode 100644 index 00000000..f1d8b7c8 --- /dev/null +++ b/lite/res/layout/activity_details.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/lite/res/layout/activity_torrents.xml b/lite/res/layout/activity_torrents.xml index ee4dd9b6..feb3cba7 100644 --- a/lite/res/layout/activity_torrents.xml +++ b/lite/res/layout/activity_torrents.xml @@ -10,6 +10,7 @@ android:id="@+id/torrent_list" android:layout_width="match_parent" android:layout_height="match_parent" - class="org.transdroid.gui.TorrentsFragment" tools:layout="@layout/fragment_torrents"/> + class="org.transdroid.core.gui.TorrentsFragment_" + tools:layout="@layout/fragment_torrents" /> \ No newline at end of file diff --git a/lite/res/layout/fragment_details.xml b/lite/res/layout/fragment_details.xml index bbbcdb0a..245e60fc 100644 --- a/lite/res/layout/fragment_details.xml +++ b/lite/res/layout/fragment_details.xml @@ -19,6 +19,7 @@ android:drawableTop="@drawable/ic_empty_details" android:drawablePadding="8dip" android:text="@string/navigation_emptydetails" + android:gravity="center" android:textIsSelectable="false" android:visibility="gone" /> diff --git a/lite/res/layout/fragment_details_header.xml b/lite/res/layout/fragment_details_header.xml index 56baea74..141517d2 100644 --- a/lite/res/layout/fragment_details_header.xml +++ b/lite/res/layout/fragment_details_header.xml @@ -9,9 +9,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" - android:text="UNLABELED" android:textIsSelectable="true" - style="@style/LabelTextView" /> + style="@style/LabelTextView" + android:visibility="invisible" /> @@ -65,7 +62,6 @@ android:layout_below="@id/uploaded_text" android:layout_toRightOf="@id/separator" android:layout_marginLeft="@dimen/margin_half" - android:text="RATIO 18.7" android:textSize="12sp" android:textIsSelectable="false" /> @@ -77,7 +73,6 @@ android:layout_toRightOf="@id/separator" android:layout_marginLeft="@dimen/margin_half" android:layout_marginBottom="4dip" - android:text="↑1.4MB/s" android:textSize="22sp" android:textColor="#fff" android:fontFamily="sans-serif-light" @@ -90,18 +85,16 @@ android:layout_below="@id/upspeed_text" android:layout_toRightOf="@id/separator" android:layout_marginLeft="@dimen/margin_half" - android:text="56 (1208) SEEDERS" android:textSize="12sp" android:textIsSelectable="false" /> @@ -110,10 +103,9 @@ android:id="@+id/downloaded_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignBaseline="@id/uploaded_unit" - android:layout_toLeftOf="@id/downloaded_unit" + android:layout_alignBaseline="@id/uploadedunit_text" + android:layout_toLeftOf="@id/downloadedunit_text" android:layout_marginRight="4dip" - android:text="325.6" android:textColor="#fff" android:textSize="33sp" android:fontFamily="sans-serif-light" @@ -126,7 +118,6 @@ android:layout_alignBaseline="@id/ratio_text" android:layout_toLeftOf="@id/separator" android:layout_marginRight="@dimen/margin_half" - android:text="/ 388.8MB" android:textSize="12sp" android:textIsSelectable="false" /> @@ -137,7 +128,6 @@ android:layout_alignBaseline="@id/upspeed_text" android:layout_toLeftOf="@id/separator" android:layout_marginRight="@dimen/margin_half" - android:text="400.8KB/s↓" android:textSize="22sp" android:textColor="#fff" android:fontFamily="sans-serif-light" @@ -150,7 +140,6 @@ android:layout_alignBaseline="@id/seeders_text" android:layout_toLeftOf="@id/separator" android:layout_marginRight="@dimen/margin_half" - android:text="128 (128) LEECHERS" android:textSize="12sp" android:textIsSelectable="false" /> @@ -160,7 +149,6 @@ android:layout_height="wrap_content" android:layout_below="@id/separator" android:layout_marginBottom="@dimen/margin_half" - android:text="DOWNLADING (80%): ETA 38 SECONDS" android:textIsSelectable="false" /> \ No newline at end of file diff --git a/lite/res/layout/fragment_torrents.xml b/lite/res/layout/fragment_torrents.xml index 65ae6c53..ae070955 100644 --- a/lite/res/layout/fragment_torrents.xml +++ b/lite/res/layout/fragment_torrents.xml @@ -19,6 +19,7 @@ android:drawableTop="@drawable/ic_empty_details" android:drawablePadding="8dip" android:text="@string/navigation_emptytorrents" + android:gravity="center" android:textIsSelectable="false" android:visibility="gone" /> diff --git a/lite/res/layout/list_item_torrent.xml b/lite/res/layout/list_item_torrent.xml index 4041e535..7f4d8a0f 100644 --- a/lite/res/layout/list_item_torrent.xml +++ b/lite/res/layout/list_item_torrent.xml @@ -15,7 +15,8 @@ android:layout_height="wrap_content" android:layout_marginLeft="@dimen/margin_half" android:layout_marginTop="@dimen/margin_half" - android:src="@drawable/ic_priority_normal" /> + android:src="@drawable/ic_priority_normal" + android:contentDescription="@string/status_priority_normal" /> @@ -52,14 +51,14 @@ android:layout_alignBaseline="@id/ratio_text" android:layout_toLeftOf="@id/ratio_text" android:layout_toRightOf="@id/torrent_checkbox" - android:text="325.6MB OF 388.8MB (0%)" android:textSize="12sp" android:textIsSelectable="false" /> - @@ -71,7 +70,6 @@ android:layout_below="@id/torrent_progressbar" android:layout_alignParentRight="true" android:layout_marginLeft="@dimen/margin_half" - android:text="↓400.8KB/s ↑1.4MB/s" android:textSize="12sp" android:textIsSelectable="false" /> @@ -82,7 +80,6 @@ android:layout_alignBaseline="@id/speed_text" android:layout_toLeftOf="@id/speed_text" android:layout_toRightOf="@id/torrent_checkbox" - android:text="246 (288) LEECHERS" android:textSize="12sp" android:textIsSelectable="false" /> diff --git a/lite/res/layout/list_item_torrentfile.xml b/lite/res/layout/list_item_torrentfile.xml new file mode 100644 index 00000000..01562e78 --- /dev/null +++ b/lite/res/layout/list_item_torrentfile.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + diff --git a/lite/res/menu/activity_details.xml b/lite/res/menu/activity_details.xml new file mode 100644 index 00000000..d9ddd500 --- /dev/null +++ b/lite/res/menu/activity_details.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml index 780a7fcf..22fba165 100644 --- a/lite/res/values/strings.xml +++ b/lite/res/values/strings.xml @@ -45,9 +45,46 @@ Uploading Active Inactive - Connected, but no torrent are active on the server + Connected, but no torrent are active within the current filter Select a torrent to view its details + Waiting to check… + Verifying local data… + Waiting to download %s + Error… + %1$s OF %2$s (%3$s) + %1$s, UPLOADED %2$s + SINCE $s + ~ %1$s + ETA %1$s + UNKNOWN ETA + RATIO %1$s + %1$s OF %2$s PEERS + ↑ %1$s + ↓ %1$s + Downloading + Seeding + Paused + Queued + Stopped + Unknown status + Not downloaded + Low priority + Normal priority + High priority + TRACKERS + ERRORS + FILES + + All labels + Unlabeled + New label + Setting a label is not supported by your client + + Torrent search + Search for torrents + + Servers Add new server Search sites @@ -120,6 +157,26 @@ Get support or report a bug About + Error during communication; check your connection + Internal error building request + Error parsing server response (please check your settings) + Web interface not connected to a running daemon + Access denied (please check your settings) + Can\'t read .torrent file + Error while parsing the RSS feed + This URL is not well-formed + Your web search URL is invalid: + Input is not a valid IP address or host name + Port number is always numeric + Directory paths end with a / or \ + Timeout can not be empty and is a positive number + The RSS feed item didn\'t provide an URL enclosure or link tag pointing to the .torrent file + The RSS feed item does not provide a link to browse to + URL is not a (valid) RSS feed + SD card not available to read/write + File does not seem to contain Transdroid settings + There is no settings file found + BitComet Bitflu 1.2+ diff --git a/lite/res/xml/searchable.xml b/lite/res/xml/searchable.xml new file mode 100644 index 00000000..9f811c8c --- /dev/null +++ b/lite/res/xml/searchable.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/lite/src/org/transdroid/lite/app/search/SearchHelper.java b/lite/src/org/transdroid/core/app/search/SearchHelper.java similarity index 99% rename from lite/src/org/transdroid/lite/app/search/SearchHelper.java rename to lite/src/org/transdroid/core/app/search/SearchHelper.java index 11244a19..b72cb7b8 100644 --- a/lite/src/org/transdroid/lite/app/search/SearchHelper.java +++ b/lite/src/org/transdroid/core/app/search/SearchHelper.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.app.search; +package org.transdroid.core.app.search; import java.util.ArrayList; import java.util.List; diff --git a/lite/src/org/transdroid/lite/app/search/SearchResult.java b/lite/src/org/transdroid/core/app/search/SearchResult.java similarity index 96% rename from lite/src/org/transdroid/lite/app/search/SearchResult.java rename to lite/src/org/transdroid/core/app/search/SearchResult.java index 77594909..6bbfaa76 100644 --- a/lite/src/org/transdroid/lite/app/search/SearchResult.java +++ b/lite/src/org/transdroid/core/app/search/SearchResult.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.app.search; +package org.transdroid.core.app.search; import java.util.Date; diff --git a/lite/src/org/transdroid/lite/app/search/SearchSite.java b/lite/src/org/transdroid/core/app/search/SearchSite.java similarity index 80% rename from lite/src/org/transdroid/lite/app/search/SearchSite.java rename to lite/src/org/transdroid/core/app/search/SearchSite.java index 2d7910df..a30ad09e 100644 --- a/lite/src/org/transdroid/lite/app/search/SearchSite.java +++ b/lite/src/org/transdroid/core/app/search/SearchSite.java @@ -1,12 +1,12 @@ -package org.transdroid.lite.app.search; +package org.transdroid.core.app.search; -import org.transdroid.lite.gui.navigation.FilterItem; +import org.transdroid.core.gui.lists.SimpleListItem; /** * Represents an available torrent site that can be searched using the Torrent Search package. * @author Eric Kok */ -public class SearchSite implements FilterItem { +public class SearchSite implements SimpleListItem { private final int id; private final String key; diff --git a/lite/src/org/transdroid/lite/app/settings/AboutSettings.java b/lite/src/org/transdroid/core/app/settings/AboutSettings.java similarity index 94% rename from lite/src/org/transdroid/lite/app/settings/AboutSettings.java rename to lite/src/org/transdroid/core/app/settings/AboutSettings.java index 9dd745c7..577f9fc9 100644 --- a/lite/src/org/transdroid/lite/app/settings/AboutSettings.java +++ b/lite/src/org/transdroid/core/app/settings/AboutSettings.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; diff --git a/lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java b/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java similarity index 72% rename from lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java rename to lite/src/org/transdroid/core/app/settings/ApplicationSettings.java index 75a4c09e..7f6393d5 100644 --- a/lite/src/org/transdroid/lite/app/settings/ApplicationSettings.java +++ b/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; import java.util.ArrayList; import java.util.List; @@ -52,7 +52,8 @@ public class ApplicationSettings { } /** - * Returns the user-specified server settings for a specific server + * Returns the user-specified server settings for a specific server. WARNING: This method does not check if the + * settings actually exist and may rely on empty defaults if called not a non-existing server. * @param order The order number/identifying key of the settings to retrieve * @return The server settings object, loaded from shared preferences */ @@ -71,6 +72,53 @@ public class ApplicationSettings { prefs.getBoolean("server_alarmnew_" + order, false), false); } + /** + * Returns the settings of the server that was last used by the user. As opposed to getLastUsedServerKey(int), this + * method checks whether a server was already registered as being last used and check whether the server still + * exists. It returns the first server if that fails. If no servers are configured, null is returned. + * @return A server settings object of the last used server (or, if not known, the first server), or null if no + * servers exist + */ + public ServerSetting getLastUsedServer() { + int max = getMaxServer(); // Zero-based index, so with max == 0 there is 1 server + if (max < 0) { + // No servers configured + return null; + } + int last = getLastUsedServerKey(); + if (last < 0 || last > max) { + // Last server was never set or no longer exists + return getServerSetting(0); + } + return getServerSetting(last); + } + + /** + * Returns the order number/unique key of the server that the used last used; use with getServerSettings(int) or + * call getLastUsedServer directly. WARNING: the returned integer may no longer refer to a known server settings + * object: check the bounds. + * @return An integer indicating the order number/key or the last used server, or -1 if it was not set + */ + public int getLastUsedServerKey() { + return prefs.getInt("system_lastusedserver", -1); + } + + /** + * Registers some server as being the last used by the user + * @param server The settings of the server that the user last used + */ + public void setLastUsedServer(ServerSetting server) { + setLastUsedServerKey(server.getOrder()); + } + + /** + * Registers the order number/unique key of some server as being last used by the user + * @param order The key identifying the specific server + */ + public void setLastUsedServerKey(int order) { + prefs.edit().putInt("system_lastusedserver", order).commit(); + } + /** * Returns all available user-configured web-based (as opped to in-app) search sites * @return A list of all stored web search site settings objects diff --git a/lite/src/org/transdroid/lite/app/settings/NotificationSettings.java b/lite/src/org/transdroid/core/app/settings/NotificationSettings.java similarity index 98% rename from lite/src/org/transdroid/lite/app/settings/NotificationSettings.java rename to lite/src/org/transdroid/core/app/settings/NotificationSettings.java index 1a68aabd..58bd4003 100644 --- a/lite/src/org/transdroid/lite/app/settings/NotificationSettings.java +++ b/lite/src/org/transdroid/core/app/settings/NotificationSettings.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.EBean.Scope; diff --git a/lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java b/lite/src/org/transdroid/core/app/settings/RssfeedSetting.java similarity index 89% rename from lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java rename to lite/src/org/transdroid/core/app/settings/RssfeedSetting.java index 69ee3823..b964cfb2 100644 --- a/lite/src/org/transdroid/lite/app/settings/RssfeedSetting.java +++ b/lite/src/org/transdroid/core/app/settings/RssfeedSetting.java @@ -1,6 +1,6 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; -import org.transdroid.lite.gui.navigation.FilterItem; +import org.transdroid.core.gui.lists.SimpleListItem; import android.net.Uri; import android.text.TextUtils; @@ -9,7 +9,7 @@ import android.text.TextUtils; * Represents a user-specified RSS feed. * @author Eric Kok */ -public class RssfeedSetting implements FilterItem { +public class RssfeedSetting implements SimpleListItem { private static final String DEFAULT_NAME = "Default"; diff --git a/lite/src/org/transdroid/lite/app/settings/ServerSetting.java b/lite/src/org/transdroid/core/app/settings/ServerSetting.java similarity index 78% rename from lite/src/org/transdroid/lite/app/settings/ServerSetting.java rename to lite/src/org/transdroid/core/app/settings/ServerSetting.java index 164be4ad..3070c730 100644 --- a/lite/src/org/transdroid/lite/app/settings/ServerSetting.java +++ b/lite/src/org/transdroid/core/app/settings/ServerSetting.java @@ -1,8 +1,10 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; +import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.daemon.Daemon; +import org.transdroid.daemon.DaemonSettings; +import org.transdroid.daemon.IDaemonAdapter; import org.transdroid.daemon.OS; -import org.transdroid.lite.gui.navigation.FilterItem; import android.text.TextUtils; @@ -10,7 +12,7 @@ import android.text.TextUtils; * Represents a user-configured remote server. * @author Eric Kok */ -public class ServerSetting implements FilterItem { +public class ServerSetting implements SimpleListItem { private static final String DEFAULT_NAME = "Default"; @@ -192,4 +194,29 @@ public class ServerSetting implements FilterItem { + (Daemon.supportsCustomFolder(getType()) && getFolder() != null ? getFolder() : ""); } + @Override + public boolean equals(Object o) { + if (o instanceof ServerSetting) { + // Directly compare order numbers/unique keys + return ((ServerSetting) o).getOrder() == this.key; + } else if (o instanceof DaemonSettings) { + // Old-style DaemonSettings objects can be equal if they were constructed from a ServerSettings object: + // idString should reflect the local key/order + return ((DaemonSettings) o).getIdString().equals(Integer.toString(this.key)); + } + // Other objects are never equal to this + return false; + } + + public IDaemonAdapter createServerAdapter() { + // Convert local server settings into an old-style DaemonSetting object + // The local integer key is converted to the idString string + // TODO: Add localaddress and localnetwork to DaemonSettings, or solve properly rework the Connect library + // handling of settings + DaemonSettings daemonSettings = new DaemonSettings(name, type, address, port, ssl, sslTrustAll, sslTrustKey, + folder, useAuthentication, username, password, extraPass, os, downloadDir, ftpUrl, ftpPassword, + timeout, alarmOnFinishedDownload, alarmOnNewTorrent, Integer.toString(key), isAutoGenerated); + return type.createAdapter(daemonSettings); + } + } diff --git a/lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java b/lite/src/org/transdroid/core/app/settings/WebsearchSetting.java similarity index 85% rename from lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java rename to lite/src/org/transdroid/core/app/settings/WebsearchSetting.java index b4da7aed..d278544a 100644 --- a/lite/src/org/transdroid/lite/app/settings/WebsearchSetting.java +++ b/lite/src/org/transdroid/core/app/settings/WebsearchSetting.java @@ -1,6 +1,6 @@ -package org.transdroid.lite.app.settings; +package org.transdroid.core.app.settings; -import org.transdroid.lite.gui.navigation.FilterItem; +import org.transdroid.core.gui.lists.SimpleListItem; import android.net.Uri; import android.text.TextUtils; @@ -9,7 +9,7 @@ import android.text.TextUtils; * Represents a user-specified website that can be searched (by starting the browser, rather than in-app) * @author Eric Kok */ -public class WebsearchSetting implements FilterItem { +public class WebsearchSetting implements SimpleListItem { private static final String DEFAULT_NAME = "Default"; private static final String KEY_PREFIX = "websearch_"; diff --git a/lite/src/org/transdroid/core/gui/DetailsActivity.java b/lite/src/org/transdroid/core/gui/DetailsActivity.java new file mode 100644 index 00000000..5e57cfa3 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/DetailsActivity.java @@ -0,0 +1,132 @@ +package org.transdroid.core.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.Background; +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.FragmentById; +import org.androidannotations.annotations.InstanceState; +import org.androidannotations.annotations.OptionsItem; +import org.androidannotations.annotations.OptionsMenu; +import org.androidannotations.annotations.UiThread; +import org.transdroid.core.R; +import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ServerSetting; +import org.transdroid.core.gui.lists.LocalTorrent; +import org.transdroid.daemon.IDaemonAdapter; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentDetails; +import org.transdroid.daemon.TorrentFile; +import org.transdroid.daemon.task.DaemonTaskFailureResult; +import org.transdroid.daemon.task.DaemonTaskResult; +import org.transdroid.daemon.task.GetFileListTask; +import org.transdroid.daemon.task.GetFileListTaskSuccessResult; +import org.transdroid.daemon.task.GetTorrentDetailsTask; +import org.transdroid.daemon.task.GetTorrentDetailsTaskSuccessResult; +import org.transdroid.daemon.task.RetrieveTask; +import org.transdroid.daemon.task.RetrieveTaskSuccessResult; + +import android.widget.Toast; + +import com.actionbarsherlock.app.SherlockFragmentActivity; + +@EActivity(R.layout.activity_details) +@OptionsMenu(R.menu.activity_details) +public class DetailsActivity extends SherlockFragmentActivity { + + @Extra + @InstanceState + protected Torrent torrent; + + // Settings + @Bean + protected ApplicationSettings applicationSettings; + private IDaemonAdapter currentConnection = null; + + // Details view components + @FragmentById(R.id.torrent_details) + protected DetailsFagment fragmentDetails; + + @AfterViews + protected void init() { + + // Simple action bar with up, torrent name as title and refresh button + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setTitle(torrent.getName()); + + // Connect to the last used server + ServerSetting lastUsed = applicationSettings.getLastUsedServer(); + currentConnection = lastUsed.createServerAdapter(); + + // Load fine details and torrent files + refreshTorrentDetails(); + + } + + @OptionsItem(R.id.action_refresh) + protected void refreshScreen() { + refreshTorrent(); + refreshTorrentDetails(); + refreshTorrentFiles(); + } + + @Background + protected void refreshTorrent() { + DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); + if (result instanceof RetrieveTaskSuccessResult) { + onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); + } else { + onCommunicationError((DaemonTaskFailureResult)result); + } + } + + @UiThread + protected void onTorrentsRetrieved(List torrents, List labels) { + // Update the details fragment + fragmentDetails.perhapsUpdateTorrent(torrents); + } + + @Background + protected void refreshTorrentDetails() { + DaemonTaskResult result = GetTorrentDetailsTask.create(currentConnection, torrent).execute(); + if (result instanceof GetTorrentDetailsTaskSuccessResult) { + onTorrentDetailsRetrieved(((GetTorrentDetailsTaskSuccessResult) result).getTorrentDetails()); + } else { + onCommunicationError((DaemonTaskFailureResult)result); + } + } + + @UiThread + protected void onTorrentDetailsRetrieved(TorrentDetails torrentDetails) { + // Update the details fragment with the new fine details for the shown torrent + fragmentDetails.updateTorrentDetails(torrentDetails); + } + + @Background + protected void refreshTorrentFiles() { + DaemonTaskResult result = GetFileListTask.create(currentConnection, torrent).execute(); + if (result instanceof GetFileListTaskSuccessResult) { + onTorrentFilesRetrieved(((GetFileListTaskSuccessResult) result).getFiles()); + } else { + onCommunicationError((DaemonTaskFailureResult)result); + } + } + + @UiThread + protected void onTorrentFilesRetrieved(List torrentFiles) { + // Update the details fragment with the newly retrieved list of files + fragmentDetails.updateTorrentFiles(new ArrayList(torrentFiles)); + } + + @UiThread + protected void onCommunicationError(DaemonTaskFailureResult result) { + // TODO: Properly report this error + Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), + Toast.LENGTH_LONG).show(); + } + +} diff --git a/lite/src/org/transdroid/core/gui/DetailsFagment.java b/lite/src/org/transdroid/core/gui/DetailsFagment.java new file mode 100644 index 00000000..f05a8a3b --- /dev/null +++ b/lite/src/org/transdroid/core/gui/DetailsFagment.java @@ -0,0 +1,113 @@ +package org.transdroid.core.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.EFragment; +import org.androidannotations.annotations.InstanceState; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.core.gui.lists.DetailsAdapter; +import org.transdroid.core.gui.lists.SimpleListItemAdapter; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentDetails; +import org.transdroid.daemon.TorrentFile; + +import android.widget.TextView; + +import com.actionbarsherlock.app.SherlockFragment; +import com.actionbarsherlock.view.SherlockListView; + +/** + * Fragment that shown detailed statistics about some torrent. These come from some already fetched {@link Torrent} + * object, but it also retrieves further detailed statistics. + * @author Eric Kok + */ +@EFragment(R.layout.fragment_details) +public class DetailsFagment extends SherlockFragment { + + // Local data + @InstanceState + protected Torrent torrent = null; + @InstanceState + protected TorrentDetails torrentDetails = null; + @InstanceState + protected ArrayList torrentFiles = null; + + // Views + @ViewById(R.id.details_list) + protected SherlockListView detailsList; + @ViewById + protected TextView emptyText; + + @AfterViews + protected void init() { + + detailsList.setAdapter(new DetailsAdapter()); + detailsList.setEmptyView(emptyText); // Shows a text that no torrent was selected yet + if (torrent != null) + updateTorrent(torrent); + if (torrentDetails != null) + updateTorrentDetails(torrentDetails); + if (torrentFiles != null) + updateTorrentFiles(torrentFiles); + + } + + /** + * Updates the details adapter header to show the new torrent data + * @param newTorrent The new torrent object + */ + public void updateTorrent(Torrent newTorrent) { + this.torrent = newTorrent; + ((DetailsAdapter) detailsList.getAdapter()).updateTorrent(newTorrent); + } + + /** + * Updates the details adapter to show the list of trackers and tracker errors + * @param newTorrentDetails The new fine details object of some torrent + */ + public void updateTorrentDetails(TorrentDetails newTorrentDetails) { + this.torrentDetails = newTorrentDetails; + ((DetailsAdapter) detailsList.getAdapter()).updateTrackers(SimpleListItemAdapter.SimpleStringItem + .wrapStringsList(newTorrentDetails.getTrackers())); + ((DetailsAdapter) detailsList.getAdapter()).updateErrors(SimpleListItemAdapter.SimpleStringItem + .wrapStringsList(newTorrentDetails.getErrors())); + } + + /** + * Updates the list adapter to show a new list of torrent files, replacing the old files list + * @param newTorrents The new, updated list of torrent file objects + */ + public void updateTorrentFiles(ArrayList newTorrentFiles) { + this.torrentFiles = newTorrentFiles; + ((DetailsAdapter) detailsList.getAdapter()).updateTorrentFiles(newTorrentFiles); + } + + /** + * Can be called if some outside activity returned new torrents, so we can perhaps piggyback on this by update our + * data as well + * @param torrents The last of retrieved torrents + */ + public void perhapsUpdateTorrent(List torrents) { + for (Torrent newTorrent : torrents) { + if (newTorrent.getUniqueID().equals(this.torrent.getUniqueID())) { + // Found, so we can update our data as well + updateTorrent(newTorrent); + break; + } + } + } + + /** + * Clear the screen by fully clearing the internal merge list (with header and other lists) + */ + public void clear() { + detailsList.setAdapter(new DetailsAdapter()); + torrent = null; + torrentDetails = null; + torrentFiles = null; + } + +} diff --git a/lite/src/org/transdroid/core/gui/SearchHistoryProvider.java b/lite/src/org/transdroid/core/gui/SearchHistoryProvider.java new file mode 100644 index 00000000..da59bbf1 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/SearchHistoryProvider.java @@ -0,0 +1,22 @@ +package org.transdroid.core.gui; + +import android.content.Context; +import android.content.SearchRecentSuggestionsProvider; +import android.provider.SearchRecentSuggestions; + +public class SearchHistoryProvider extends SearchRecentSuggestionsProvider { + + public final static String AUTHORITY = "org.transdroid.core.gui.SearchHistoryProvider"; + public final static int MODE = DATABASE_MODE_QUERIES; + + public SearchHistoryProvider() { + super(); + setupSuggestions(AUTHORITY, MODE); + } + + public static void clearHistory(Context context) { + SearchRecentSuggestions suggestions = new SearchRecentSuggestions(context, + SearchHistoryProvider.AUTHORITY, SearchHistoryProvider.MODE); + suggestions.clearHistory(); + } +} diff --git a/lite/src/org/transdroid/core/gui/TorrentsActivity.java b/lite/src/org/transdroid/core/gui/TorrentsActivity.java new file mode 100644 index 00000000..cfd82a53 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/TorrentsActivity.java @@ -0,0 +1,253 @@ +package org.transdroid.core.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.Background; +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.FragmentById; +import org.androidannotations.annotations.InstanceState; +import org.androidannotations.annotations.OptionsItem; +import org.androidannotations.annotations.OptionsMenu; +import org.androidannotations.annotations.SystemService; +import org.androidannotations.annotations.UiThread; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ServerSetting; +import org.transdroid.core.gui.lists.LocalTorrent; +import org.transdroid.core.gui.lists.SimpleListItem; +import org.transdroid.core.gui.navigation.FilterListAdapter; +import org.transdroid.core.gui.navigation.FilterListAdapter_; +import org.transdroid.core.gui.navigation.Label; +import org.transdroid.core.gui.navigation.NavigationHelper; +import org.transdroid.core.gui.navigation.StatusType; +import org.transdroid.core.gui.navigation.StatusType.StatusTypeFilter; +import org.transdroid.daemon.IDaemonAdapter; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.task.DaemonTaskFailureResult; +import org.transdroid.daemon.task.DaemonTaskResult; +import org.transdroid.daemon.task.RetrieveTask; +import org.transdroid.daemon.task.RetrieveTaskSuccessResult; + +import android.annotation.TargetApi; +import android.app.SearchManager; +import android.os.Build; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.Toast; + +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.ActionBar.OnNavigationListener; +import com.actionbarsherlock.app.SherlockFragmentActivity; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; +import com.actionbarsherlock.view.SherlockListView; +import com.actionbarsherlock.widget.SearchView; + +@EActivity(R.layout.activity_torrents) +@OptionsMenu(R.menu.activity_torrents) +public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener { + + // Navigation components + @Bean + protected NavigationHelper navigationHelper; + @ViewById + protected SherlockListView filtersList; + protected FilterListAdapter navigationListAdapter = null; + protected FilterListAdapter navigationSpinnerAdapter = null; + @SystemService + protected SearchManager searchManager; + + // Settings + @Bean + protected ApplicationSettings applicationSettings; + @InstanceState + boolean firstStart = true; + private IDaemonAdapter currentConnection = null; + + // Torrents list components + @FragmentById(R.id.torrent_list) + protected TorrentsFragment fragmentTorrents; + + // Details view components + @FragmentById(R.id.torrent_details) + protected DetailsFagment fragmentDetails; + + @AfterViews + protected void init() { + + // Set up navigation, with an action bar spinner and possibly (if room) with a filter list + getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); + getSupportActionBar().setHomeButtonEnabled(false); + navigationSpinnerAdapter = FilterListAdapter_.getInstance_(this); + // Servers are always added to the action bar spinner + navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); + getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); + if (filtersList != null) { + // There was room for a dedicated filter list; add the status types + navigationListAdapter = FilterListAdapter_.getInstance_(this); + filtersList.setAdapter(navigationListAdapter); + navigationListAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); + filtersList.setOnItemSelectedListener(onFilterListItemSelected); + } else { + // Add status types directly to the action bar spinner + navigationSpinnerAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); + } + + // Connect to the last used server + ServerSetting lastUsed = applicationSettings.getLastUsedServer(); + if (lastUsed == null) { + // No server settings yet; + return; + } + // Set this as selection in the action bar spinner; we can use the server setting key since we have stable ids + // TODO: Does this call the action bar item selection callback? + getSupportActionBar().setSelectedNavigationItem(lastUsed.getOrder()); + + // Handle any start up intents or instead just refresh the torrents list + if (firstStart) { + handleStartIntent(); + } else { + refreshTorrents(); + } + + } + + @Override + protected void onResume() { + super.onResume(); + refreshTorrents(); + } + + @TargetApi(Build.VERSION_CODES.FROYO) + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + // For Android 2.1+, add an expandable SearchView to the action bar + MenuItem item = menu.findItem(R.id.action_search); + if (android.os.Build.VERSION.SDK_INT >= 8) { + final SearchView searchView = new SearchView(this); + searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); + searchView.setQueryRefinementEnabled(true); + item.setActionView(searchView); + } + return true; + } + + /** + * Called when an item in the action bar navigation spinner was selected + */ + @Override + public boolean onNavigationItemSelected(int itemPosition, long itemId) { + Object item = navigationSpinnerAdapter.getItem(itemPosition); + if (item instanceof SimpleListItem) { + // A filter item was selected form the navigation spinner + filterSelected((SimpleListItem) item); + return true; + } + // A header was selected; no action + return false; + } + + // Handles clicks (selections) on the dedicated list of filter items (if it exists) + // NOTE: Unfortunately we cannot use the @ItemSelect(R.id.filters_list) annotation as it throws NPE exceptions when + // the list doesn't exist (read: on small screens) + protected OnItemSelectedListener onFilterListItemSelected = new OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + filterSelected((SimpleListItem) filtersList.getAdapter().getItem(position)); + } + @Override + public void onNothingSelected(AdapterView parent) { + // TODO: Check if this happens + } + }; + + /** + * A new filter was selected; update the view over the current data + * @param selected True if the filter item was selected, false if it was deselected + * @param item The touched filter item + */ + protected void filterSelected(SimpleListItem item) { + + // Server selection + if (item instanceof ServerSetting) { + ServerSetting server = (ServerSetting) item; + + if (currentConnection != null && server.equals(currentConnection.getSettings())) { + // Already connected to this server; just ask for a refresh instead + refreshTorrents(); + return; + } + + // Update connection to the newly selected server and refresh + currentConnection = server.createServerAdapter(); + clearScreens(); + refreshTorrents(); + + } + + if (item instanceof StatusTypeFilter) { + // TODO: Update the torrent list view + } + + if (item instanceof Label) { + // TODO: Update the torrent list view + } + + } + + /** + * If required, add torrents, switch to a specific server, etc. + */ + protected void handleStartIntent() { + // TODO: Handle start intent + } + + @OptionsItem(R.id.action_refresh) + protected void refreshScreen() { + refreshTorrents(); + // TODO: Refresh TorentDetails and TorrentFiles as well + } + + private void clearScreens() { + // Clear the currently shown list of torrent and perhaps the details + fragmentTorrents.clear(); + if (fragmentDetails != null) { + fragmentDetails.clear(); + } + } + + @Background + protected void refreshTorrents() { + DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); + if (result instanceof RetrieveTaskSuccessResult) { + onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); + } else { + onCommunicationError((DaemonTaskFailureResult)result); + } + } + + @UiThread + protected void onTorrentsRetrieved(List torrents, List labels) { + // Report the newly retrieved list of torrents to the torrents fragment + fragmentTorrents.updateTorrents(new ArrayList(torrents)); + // Update the details fragment if the currently shown torrent is in the newly retrieved list + if (fragmentDetails != null) { + fragmentDetails.perhapsUpdateTorrent(torrents); + } + // TODO: Update local list of labels + } + + @UiThread + protected void onCommunicationError(DaemonTaskFailureResult result) { + // TODO: Properly report this error + Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), + Toast.LENGTH_LONG).show(); + } + +} diff --git a/lite/src/org/transdroid/core/gui/TorrentsFragment.java b/lite/src/org/transdroid/core/gui/TorrentsFragment.java new file mode 100644 index 00000000..a62dd8d2 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/TorrentsFragment.java @@ -0,0 +1,69 @@ +package org.transdroid.core.gui; + +import java.util.ArrayList; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.EFragment; +import org.androidannotations.annotations.InstanceState; +import org.androidannotations.annotations.ItemClick; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.core.gui.lists.TorrentsAdapter; +import org.transdroid.daemon.Torrent; + +import android.view.View; +import android.widget.TextView; + +import com.actionbarsherlock.app.SherlockFragment; +import com.actionbarsherlock.view.SherlockListView; + +@EFragment(R.layout.fragment_torrents) +public class TorrentsFragment extends SherlockFragment { + + // Local data + @InstanceState + protected ArrayList torrents = null; + + // Views + @ViewById(R.id.torrent_list) + protected SherlockListView torrentsList; + @ViewById + protected TextView emptyText; + + @AfterViews + protected void init() { + torrentsList.setAdapter(new TorrentsAdapter()); + torrentsList.setEmptyView(emptyText); + if (torrents != null) + updateTorrents(torrents); + } + + /** + * Updates the list adapter to show a new list of torrent objects, replacing the old torrents completely + * @param newTorrents The new, updated list of torrents + */ + public void updateTorrents(ArrayList newTorrents) { + torrents = newTorrents; + if (newTorrents == null) { + // Hide list adapter as well as empty text + torrentsList.setVisibility(View.GONE); + emptyText.setVisibility(View.GONE); + } else { + ((TorrentsAdapter)torrentsList.getAdapter()).update(newTorrents); + // NOTE: This will also make visible again the list or empty view + } + } + + /** + * Clear currently visible list of torrents + */ + public void clear() { + updateTorrents(null); + } + + @ItemClick(R.id.torrent_list) + protected void torrentsListClicked(Torrent torrent) { + + } + +} diff --git a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java new file mode 100644 index 00000000..adb3b573 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java @@ -0,0 +1,141 @@ +package org.transdroid.core.gui.lists; + +import java.util.List; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; +import org.transdroid.core.R; +import org.transdroid.core.gui.navigation.FilterSeparatorView_; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentFile; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +import com.commonsware.cwac.merge.MergeAdapter; + +/** + * List adapter that holds a header view showing torrent details and show the list list contained by the torrent. + * @author Eric Kok + */ +@EBean +public class DetailsAdapter extends MergeAdapter { + + @RootContext + protected Context context; + private TorrentDetailsView torrentDetailsView = null; + private TorrentFilesAdapter torrentFilesAdapter = null; + private SimpleListItemAdapter trackersAdapter = null; + private SimpleListItemAdapter errorsAdapter = null; + + /** + * Update the torrent data in the details header of this merge adapter + * @param torrent The torrent for which detailed data is shown + */ + public void updateTorrent(Torrent torrent) { + if (this.torrentDetailsView == null) { + torrentDetailsView = TorrentDetailsView_.build(context); + addView(torrentDetailsView, false); + } + torrentDetailsView.update(torrent); + } + + /** + * Update the list of files contained in this torrent + * @param torrentFiles The new list of files + */ + public void updateTorrentFiles(List torrentFiles) { + if (this.torrentFilesAdapter == null && torrentFiles != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_files)), false); + this.torrentFilesAdapter = new TorrentFilesAdapter(context, torrentFiles); + addAdapter(torrentFilesAdapter); + } else if (this.torrentFilesAdapter != null && torrentFiles != null) { + this.torrentFilesAdapter.update(torrentFiles); + } else { + this.torrentFilesAdapter = null; + } + } + + /** + * Update the list of trackers + * @param trackers The new list of trackers known for this torrent + */ + public void updateTrackers(List trackers) { + if (this.trackersAdapter == null && trackers != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_trackers)), false); + this.trackersAdapter = new SimpleListItemAdapter(context, trackers); + addAdapter(trackersAdapter); + } else if (this.trackersAdapter != null && trackers != null) { + this.trackersAdapter.update(trackers); + } else { + this.trackersAdapter = null; + } + } + + /** + * Update the list of errors + * @param errors The new list of errors known for this torrent + */ + public void updateErrors(List errors) { + if (this.errorsAdapter == null && errors != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_errors)), false); + this.errorsAdapter = new SimpleListItemAdapter(context, errors); + addAdapter(errorsAdapter); + } else if (this.errorsAdapter != null && errors != null) { + this.errorsAdapter.update(errors); + } else { + this.errorsAdapter = null; + } + } + + protected class TorrentFilesAdapter extends BaseAdapter { + + private final Context context; + private List items; + + public TorrentFilesAdapter(Context context, List items) { + this.context = context; + this.items = items; + } + + /** + * Allows updating of the full data list underlying this adapter, replacing all items + * @param newItems The new list of files to display + */ + public void update(List newItems) { + this.items = newItems; + notifyDataSetChanged(); + } + + @Override + public int getCount() { + return items.size(); + } + + @Override + public TorrentFile getItem(int position) { + return items.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TorrentFileView torrentFileView; + if (convertView == null) { + torrentFileView = TorrentFileView_.build(context); + } else { + torrentFileView = (TorrentFileView) convertView; + } + torrentFileView.bind(getItem(position)); + return torrentFileView; + } + + } + +} diff --git a/lite/src/org/transdroid/core/gui/lists/LocalTorrent.java b/lite/src/org/transdroid/core/gui/lists/LocalTorrent.java new file mode 100644 index 00000000..76722530 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/LocalTorrent.java @@ -0,0 +1,233 @@ +package org.transdroid.core.gui.lists; + +import java.util.Locale; + +import org.transdroid.core.R; +import org.transdroid.daemon.DaemonException; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentStatus; +import org.transdroid.daemon.util.FileSizeConverter; +import org.transdroid.daemon.util.TimespanConverter; + +import android.content.res.Resources; + +/** + * Wrapper around Torrent to provide some addition getters that give translatable or otherwise formatted Strings of + * torrent statistics. + * @author Eric Kok + */ +public class LocalTorrent { + + /** + * Creates the LocalTorrent object so that the translatable/formattable version of a Torrent can be used. + * @param torrent The Torrent object + * @return The torrent wrapped as LocalTorrent object + */ + public static LocalTorrent fromTorrent(Torrent torrent) { + return new LocalTorrent(torrent); + } + + private final Torrent t; + + private LocalTorrent(Torrent torrent) { + this.t = torrent; + } + + private static final String DECIMAL_FORMATTER = "%.1f"; + + /** + * Builds a string showing the upload/download seed ratio. If not downloading, it will base the ratio on the total + * size; so if you created the torrent yourself you will have downloaded 0 bytes, but the ratio will pretend you + * have 100%. + * @return A nicely formatted string containing the upload/download seed ratio + */ + public String getRatioString() { + long baseSize = t.getTotalSize(); + if (t.getStatusCode() == TorrentStatus.Downloading) { + baseSize = t.getDownloadedEver(); + } + if (baseSize <= 0) { + return String.format(Locale.getDefault(), DECIMAL_FORMATTER, 0d); + } else if (t.getRatio() == Double.POSITIVE_INFINITY) { + return "\u221E"; + } else { + return String.format(Locale.getDefault(), DECIMAL_FORMATTER, t.getRatio()); + } + } + + /** + * Returns a formatted string indicating the current progress in terms of transferred bytes + * @param r The context resources, to access translations + * @param withAvailability Whether to show file availability in-line + * @return A nicely formatted string indicating torrent status and, if applicable, progress in bytes + */ + public String getProgressSizeText(Resources r, boolean withAvailability) { + + switch (t.getStatusCode()) { + case Waiting: + case Checking: + case Error: + // Not downloading yet + return r.getString(R.string.status_waitingtodl, FileSizeConverter.getSize(t.getTotalSize())); + case Downloading: + // Downloading + return r.getString( + R.string.status_size1, + FileSizeConverter.getSize(t.getDownloadedEver()), + FileSizeConverter.getSize(t.getTotalSize()), + String.format(DECIMAL_FORMATTER, t.getDownloadedPercentage() * 100) + + "%" + + (!withAvailability ? "" : "/" + + String.format(DECIMAL_FORMATTER, t.getAvailability() * 100) + "%")); + case Seeding: + case Paused: + case Queued: + // Seeding or paused + return r.getString(R.string.status_size2, FileSizeConverter.getSize(t.getTotalSize()), + FileSizeConverter.getSize(t.getUploadedEver())); + default: + return ""; + } + + } + + /** + * Returns a formatted string indicating either the expected time to download (ETA) or, when seeding, the ratio + * @param r The context resources, to access translations + * @return A string like '~ 34 seconds', or 'RATIO 8.2' or an empty string + */ + public String getProgressEtaRatioText(Resources r) { + switch (t.getStatusCode()) { + case Downloading: + // Downloading + return getRemainingTimeString(r, true, false); + case Seeding: + case Paused: + case Queued: + // Seeding or paused + return r.getString(R.string.status_ratio, getRatioString()); + case Waiting: + case Checking: + case Error: + default: + return ""; + } + } + + /** + * Returns a formatted string indicating the torrent status and connected peers + * @param r The context resources, to access translations + * @return A string like 'Queued' or, when seeding or leeching, '2 OF 28 PEERS' + */ + public String getProgressConnectionText(Resources r) { + + switch (t.getStatusCode()) { + case Waiting: + return r.getString(R.string.status_waiting); + case Checking: + return r.getString(R.string.status_checking); + case Downloading: + return r.getString(R.string.status_peers, t.getPeersSendingToUs(), t.getPeersConnected()); + case Seeding: + return r.getString(R.string.status_peers, t.getPeersGettingFromUs(), t.getPeersConnected()); + case Paused: + return r.getString(R.string.status_paused); + case Queued: + return r.getString(R.string.status_stopped); + case Error: + return r.getString(R.string.status_error); + default: + return r.getString(R.string.status_unknown); + } + + } + + /** + * Returns a formatted string indicating current transfer speeds for the torrent + * @param r The context resources, to access translations + * @return A string like '↓ 28KB/s ↑ 1.8MB/s', or an empty string when not transferrring + */ + public String getProgressSpeedText(Resources r) { + + switch (t.getStatusCode()) { + case Waiting: + case Checking: + case Paused: + case Queued: + return ""; + case Downloading: + return r.getString(R.string.status_speed_down, FileSizeConverter.getSize(t.getRateDownload()) + "/s") + " " + + r.getString(R.string.status_speed_up, FileSizeConverter.getSize(t.getRateUpload()) + "/s"); + case Seeding: + return r.getString(R.string.status_speed_up, FileSizeConverter.getSize(t.getRateUpload()) + "/s"); + default: + return ""; + } + + } + + public String getProgressStatusEta(Resources r) { + switch (t.getStatusCode()) { + case Waiting: + return r.getString(R.string.status_waiting).toUpperCase(Locale.getDefault()); + case Checking: + return r.getString(R.string.status_checking).toUpperCase(Locale.getDefault()); + case Error: + return r.getString(R.string.status_error).toUpperCase(Locale.getDefault()); + case Downloading: + // Downloading + return r.getString(R.string.status_downloading).toUpperCase(Locale.getDefault()) + " (" + + String.format(DECIMAL_FORMATTER, t.getDownloadedPercentage() * 100) + "%), " + + getRemainingTimeString(r, false, true); + case Seeding: + return r.getString(R.string.status_seeding).toUpperCase(Locale.getDefault()); + case Paused: + return r.getString(R.string.status_paused).toUpperCase(Locale.getDefault()); + case Queued: + return r.getString(R.string.status_queued).toUpperCase(Locale.getDefault()); + default: + return r.getString(R.string.status_unknown).toUpperCase(Locale.getDefault()); + } + } + + /** + * Returns a formatted string indicating the remaining download time + * @param r The context resources, to access translations + * @param inDays Whether to show days or use hours for > 24 hours left instead + * @return A string like '4d 8h 34m 5s' or '2m 3s' + */ + public String getRemainingTimeString(Resources r, boolean abbreviate, boolean inDays) { + if (t.getEta() == -1 || t.getEta() == -2) { + return r.getString(R.string.status_unknowneta); + } + return r.getString(abbreviate ? R.string.status_eta : R.string.status_etalong, + TimespanConverter.getTime(t.getEta(), inDays)); + } + + /** + * Convert a DaemonException to a translatable human-readable error message + * @param e The exception that was thrown by the server + * @return A string resource ID to show to the user + */ + public static int getResourceForDaemonException(DaemonException e) { + switch (e.getType()) { + case MethodUnsupported: + return R.string.error_jsonrequesterror; + case ConnectionError: + return R.string.error_httperror; + case UnexpectedResponse: + return R.string.error_jsonresponseerror; + case ParsingFailed: + return R.string.error_jsonrequesterror; + case NotConnected: + return R.string.error_daemonnotconnected; + case AuthenticationFailure: + return R.string.error_401; + case FileAccessError: + return R.string.error_torrentfile; + default: + return R.string.error_httperror; + } + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterItem.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java similarity index 64% rename from lite/src/org/transdroid/lite/gui/navigation/FilterItem.java rename to lite/src/org/transdroid/core/gui/lists/SimpleListItem.java index 81638d89..605aa3ca 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterItem.java +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java @@ -1,11 +1,11 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.lists; /** * Represents a filter item as shown in the navigation list or spinner. * * @author Eric Kok */ -public interface FilterItem { +public interface SimpleListItem { public String getName(); diff --git a/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java new file mode 100644 index 00000000..f44c86f5 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java @@ -0,0 +1,91 @@ +package org.transdroid.core.gui.lists; + +import java.util.ArrayList; +import java.util.List; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +public class SimpleListItemAdapter extends BaseAdapter { + + private final Context context; + private List items; + + public SimpleListItemAdapter(Context context, List items) { + this.context = context; + this.items = items; + } + + /** + * Allows updating of the full data list underlying this adapter, replacing all items + * @param newItems The new list of filter items to display + */ + public void update(List newItems) { + this.items = newItems; + notifyDataSetChanged(); + } + + @Override + public int getCount() { + return items.size(); + } + + @Override + public SimpleListItem getItem(int position) { + return items.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + SimpleListItemView filterItemView; + if (convertView == null) { + filterItemView = SimpleListItemView_.build(context); + } else { + filterItemView = (SimpleListItemView) convertView; + } + filterItemView.bind(getItem(position)); + return filterItemView; + } + + /** + * Represents a very simple list item that only contains a single string to show in the list. Use wrapStringsList to + * wrap an existing list of strings into a list of {@link SimpleListItem}s. + * @author Eric Kok + */ + public static class SimpleStringItem implements SimpleListItem { + + /** + * Wraps a simple string of strings into a list of SimpleStringItem to add as data to a + * {@link SimpleListItemAdapter} + * @param errorStrings A list of string + * @return A list of SimpleStringItem objects representing the input strings + */ + public static List wrapStringsList(List errorStrings) { + ArrayList errors = new ArrayList(); + for (String errorString : errorStrings) { + errors.add(new SimpleStringItem(errorString)); + } + return errors; + } + + private final String string; + + public SimpleStringItem(String string) { + this.string = string; + } + + @Override + public String getName() { + return this.string; + } + + } + +} \ No newline at end of file diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItemView.java similarity index 58% rename from lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java rename to lite/src/org/transdroid/core/gui/lists/SimpleListItemView.java index 532f85f3..d428939f 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterItemView.java +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItemView.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.lists; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; @@ -9,20 +9,20 @@ import android.widget.LinearLayout; import android.widget.TextView; /** - * View that represents some {@link FilterItem} object and simple prints out the text (in proper style) + * View that represents some {@link SimpleListItem} object and simple prints out the text (in proper style) * @author Eric Kok */ @EViewGroup(R.layout.list_item_filter) -public class FilterItemView extends LinearLayout { +public class SimpleListItemView extends LinearLayout { @ViewById protected TextView itemText; - public FilterItemView(Context context) { + public SimpleListItemView(Context context) { super(context); } - public void bind(FilterItem filterItem) { + public void bind(SimpleListItem filterItem) { itemText.setText(filterItem.getName()); } diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java new file mode 100644 index 00000000..c2975105 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java @@ -0,0 +1,85 @@ +package org.transdroid.core.gui.lists; + +import org.androidannotations.annotations.EViewGroup; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.daemon.Daemon; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.util.FileSizeConverter; + +import android.content.Context; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +/** + * Represents a group of views that show torrent status, sizes, speeds and other details. + * @author Eric Kok + */ +@EViewGroup(R.layout.fragment_details_header) +public class TorrentDetailsView extends RelativeLayout { + + @ViewById + protected TextView labelText, dateaddedText, uploadedText, uploadedunitText, ratioText, upspeedText, seedersText, + downloadedunitText, downloadedText, totalsizeText, downspeedText, leechersText, statusText; + + public TorrentDetailsView(Context context) { + super(context); + } + + /** + * Update the text fields with new/updated torrent details + * @param torrent The torrent for which to show details + */ + public void update(Torrent torrent) { + + LocalTorrent local = LocalTorrent.fromTorrent(torrent); + + // Set label text + if (Daemon.supportsLabels(torrent.getDaemon())) { + if (TextUtils.isEmpty(torrent.getLabelName())) { + labelText.setText(getResources().getString(R.string.labels_unlabeled)); + } else { + labelText.setText(torrent.getLabelName()); + } + labelText.setVisibility(View.VISIBLE); + } else { + labelText.setVisibility(View.INVISIBLE); + } + + // Set status texts + if (torrent.getDateAdded() != null) { + dateaddedText.setText(getResources().getString( + R.string.status_sincedate, + DateUtils.getRelativeDateTimeString(getContext(), torrent.getDateAdded().getTime(), + DateUtils.SECOND_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, DateUtils.FORMAT_ABBREV_MONTH))); + dateaddedText.setVisibility(View.VISIBLE); + } else { + dateaddedText.setVisibility(View.INVISIBLE); + } + statusText.setText(local.getProgressStatusEta(getResources())); + ratioText.setText(getResources().getString(R.string.status_ratio, local.getRatioString())); + // TODO: Implement separate numbers of seeders and leechers + seedersText.setText(getResources().getString(R.string.status_peers, torrent.getPeersSendingToUs(), + torrent.getPeersConnected())); + leechersText.setText(getResources().getString(R.string.status_peers, torrent.getPeersSendingToUs(), + torrent.getPeersConnected())); + // TODO: Add field that displays torrent errors (as opposed to tracker errors) + // TODO: Add field that displays availability + + // Sizes and speeds texts + totalsizeText.setText(FileSizeConverter.getSize(torrent.getTotalSize())); + downloadedText.setText(FileSizeConverter.getSize(torrent.getDownloadedEver(), false)); + downloadedunitText.setText(FileSizeConverter.getSizeUnit(torrent.getDownloadedEver()).toString()); + uploadedText.setText(FileSizeConverter.getSize(torrent.getUploadedEver(), false)); + uploadedunitText.setText(FileSizeConverter.getSizeUnit(torrent.getUploadedEver()).toString()); + downspeedText.setText(getResources().getString(R.string.status_speed_down, + FileSizeConverter.getSize(torrent.getRateDownload()) + "/s")); + upspeedText.setText(getResources().getString(R.string.status_speed_up, + FileSizeConverter.getSize(torrent.getRateUpload()) + "/s")); + + } + +} diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentFileView.java b/lite/src/org/transdroid/core/gui/lists/TorrentFileView.java new file mode 100644 index 00000000..0c9b3684 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/TorrentFileView.java @@ -0,0 +1,53 @@ +package org.transdroid.core.gui.lists; + +import org.androidannotations.annotations.EViewGroup; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.daemon.TorrentFile; + +import android.content.Context; +import android.widget.ImageView; +import android.widget.TextView; +import fr.marvinlabs.widget.CheckableRelativeLayout; + +/** + * View that represents some {@link TorrentFile} object and show the file's name, status and priority + * @author Eric Kok + */ +@EViewGroup(R.layout.list_item_torrentfile) +public class TorrentFileView extends CheckableRelativeLayout { + + @ViewById + protected TextView nameText, progressText, sizesText; + @ViewById + protected ImageView priorityImage; + + public TorrentFileView(Context context) { + super(context, null); + } + + public void bind(TorrentFile torrentFile) { + nameText.setText(torrentFile.getName()); + sizesText.setText(torrentFile.getDownloadedAndTotalSizeText()); + progressText.setText(torrentFile.getProgressText()); + switch (torrentFile.getPriority()) { + case Off: + priorityImage.setImageResource(R.drawable.ic_priority_off); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_low)); + break; + case Low: + priorityImage.setImageResource(R.drawable.ic_priority_low); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_normal)); + break; + case Normal: + priorityImage.setImageResource(R.drawable.ic_priority_normal); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_normal)); + break; + case High: + priorityImage.setImageResource(R.drawable.ic_priority_high); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_high)); + break; + } + } + +} diff --git a/lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java b/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java similarity index 98% rename from lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java rename to lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java index 0dbe8fc1..34123a99 100644 --- a/lite/src/org/transdroid/lite/gui/lists/TorrentProgressBar.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.gui.lists; +package org.transdroid.core.gui.lists; import org.transdroid.core.R; diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentView.java b/lite/src/org/transdroid/core/gui/lists/TorrentView.java new file mode 100644 index 00000000..bf8ff662 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/TorrentView.java @@ -0,0 +1,47 @@ +package org.transdroid.core.gui.lists; + +import org.androidannotations.annotations.EViewGroup; +import org.androidannotations.annotations.ViewById; +import org.transdroid.core.R; +import org.transdroid.daemon.Torrent; +import org.transdroid.daemon.TorrentStatus; + +import android.content.Context; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import fr.marvinlabs.widget.CheckableRelativeLayout; + +/** + * View that represents some {@link Torrent} object and displays progress, status, speeds, etc. + * @author Eric Kok + */ +@EViewGroup(R.layout.list_item_torrent) +public class TorrentView extends CheckableRelativeLayout { + + @ViewById + protected ImageView priorityImage; + @ViewById + protected TextView nameText, ratioText, progressText, speedText, peersText; + @ViewById + protected TorrentProgressBar torrentProgressbar; + + public TorrentView(Context context) { + super(context, null); + } + + public void bind(Torrent torrent) { + LocalTorrent local = LocalTorrent.fromTorrent(torrent); + nameText.setText(torrent.getName()); + ratioText.setText(local.getProgressEtaRatioText(getResources())); + progressText.setText(local.getProgressSizeText(getResources(), false)); + speedText.setText(local.getProgressSpeedText(getResources())); + peersText.setText(local.getProgressConnectionText(getResources())); + torrentProgressbar.setProgress((int) (torrent.getDownloadedPercentage() * 100)); + torrentProgressbar.setActive(torrent.canPause());; + torrentProgressbar.setError(torrent.getStatusCode() == TorrentStatus.Error); + // TODO: Implement per-torrent priority and set priorityImage + priorityImage.setVisibility(View.INVISIBLE); + } + +} diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java b/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java new file mode 100644 index 00000000..1ebf2390 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java @@ -0,0 +1,67 @@ +package org.transdroid.core.gui.lists; + +import java.util.ArrayList; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; +import org.transdroid.core.gui.lists.TorrentView_; +import org.transdroid.daemon.Torrent; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +/** + * Adapter that contains a list of torrent objects to show. + * @author Eric Kok + */ +@EBean +public class TorrentsAdapter extends BaseAdapter { + + private ArrayList torrents = null; + + @RootContext + protected Context context; + + /** + * Allows updating the full internal list of torrents at once, replacing the old list + * @param newTorrents The new list of torrent objects + */ + public void update(ArrayList newTorrents) { + this.torrents = newTorrents; + notifyDataSetChanged(); + } + + @Override + public int getCount() { + if (torrents == null) + return 0; + return torrents.size(); + } + + @Override + public Torrent getItem(int position) { + if (torrents == null) + return null; + return torrents.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TorrentView torrentView; + if (convertView == null) { + torrentView = TorrentView_.build(context); + } else { + torrentView = (TorrentView) convertView; + } + torrentView.bind(getItem(position)); + return torrentView; + } + +} diff --git a/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java b/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java new file mode 100644 index 00000000..d155e801 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java @@ -0,0 +1,78 @@ +package org.transdroid.core.gui.navigation; + +import java.util.List; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; +import org.transdroid.core.R; +import org.transdroid.core.gui.lists.SimpleListItem; +import org.transdroid.core.gui.lists.SimpleListItemAdapter; +import org.transdroid.core.gui.navigation.FilterSeparatorView_; + +import android.content.Context; + +import com.commonsware.cwac.merge.MergeAdapter; + +/** + * List adapter that holds filter items, that is, servers, view types and labels. A header item is inserted where + * appropriate. + * @author Eric Kok + */ +@EBean +public class FilterListAdapter extends MergeAdapter { + + @RootContext + protected Context context; + private SimpleListItemAdapter serverItems = null; + private SimpleListItemAdapter statusTypeItems = null; + private SimpleListItemAdapter labelItems = null; + + /** + * Update the list of available servers + * @param servers The new list of available servers + */ + public void updateServers(List servers) { + if (this.serverItems == null && servers != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)), false); + this.serverItems = new SimpleListItemAdapter(context, servers); + addAdapter(serverItems); + } else if (this.serverItems != null && servers != null) { + this.serverItems.update(servers); + } else { + this.serverItems = null; + } + } + + /** + * Update the list of available status types + * @param statusTypes The new list of available status types + */ + public void updateStatusTypes(List statusTypes) { + if (this.statusTypeItems == null && statusTypes != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_status)), false); + this.statusTypeItems = new SimpleListItemAdapter(context, statusTypes); + addAdapter(statusTypeItems); + } else if (this.statusTypeItems != null && statusTypes != null) { + this.statusTypeItems.update(statusTypes); + } else { + this.statusTypeItems = null; + } + } + + /** + * Update the list of available labels + * @param labels The new list of available labels + */ + public void updateLabels(List labels) { + if (this.labelItems == null && labels != null) { + addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)), false); + this.labelItems = new SimpleListItemAdapter(context, labels); + addAdapter(labelItems); + } else if (this.serverItems != null && labels != null) { + this.labelItems.update(labels); + } else { + this.labelItems = null; + } + } + +} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java b/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java similarity index 86% rename from lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java rename to lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java index ea6deaff..9ea2a411 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterSeparatorView.java +++ b/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java @@ -1,8 +1,9 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.navigation; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; +import org.transdroid.core.gui.lists.SimpleListItem; import android.content.Context; import android.widget.LinearLayout; @@ -25,7 +26,7 @@ public class FilterSeparatorView extends LinearLayout { super(context); } - public void bind(FilterItem filterItem) { + public void bind(SimpleListItem filterItem) { separatorText.setText(text); } diff --git a/lite/src/org/transdroid/lite/gui/navigation/Label.java b/lite/src/org/transdroid/core/gui/navigation/Label.java similarity index 62% rename from lite/src/org/transdroid/lite/gui/navigation/Label.java rename to lite/src/org/transdroid/core/gui/navigation/Label.java index 6da5d20a..2a27e6b6 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/Label.java +++ b/lite/src/org/transdroid/core/gui/navigation/Label.java @@ -1,10 +1,12 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.navigation; + +import org.transdroid.core.gui.lists.SimpleListItem; /** * Represents some label that is active or available on the server. * @author Eric Kok */ -public class Label implements FilterItem { +public class Label implements SimpleListItem { private final String name; diff --git a/lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java b/lite/src/org/transdroid/core/gui/navigation/NavigationHelper.java similarity index 94% rename from lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java rename to lite/src/org/transdroid/core/gui/navigation/NavigationHelper.java index dd2ec575..c5d0d364 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/NavigationHelper.java +++ b/lite/src/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.navigation; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; diff --git a/lite/src/org/transdroid/lite/gui/navigation/StatusType.java b/lite/src/org/transdroid/core/gui/navigation/StatusType.java similarity index 92% rename from lite/src/org/transdroid/lite/gui/navigation/StatusType.java rename to lite/src/org/transdroid/core/gui/navigation/StatusType.java index 2aaac124..d7a86cad 100644 --- a/lite/src/org/transdroid/lite/gui/navigation/StatusType.java +++ b/lite/src/org/transdroid/core/gui/navigation/StatusType.java @@ -1,9 +1,10 @@ -package org.transdroid.lite.gui.navigation; +package org.transdroid.core.gui.navigation; import java.util.Arrays; import java.util.List; import org.transdroid.core.R; +import org.transdroid.core.gui.lists.SimpleListItem; import android.content.Context; @@ -57,7 +58,7 @@ public enum StatusType { */ abstract StatusTypeFilter getFilterItem(Context context); - public static class StatusTypeFilter implements FilterItem { + public static class StatusTypeFilter implements SimpleListItem { private final String name; diff --git a/lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java similarity index 91% rename from lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java index 5240fee5..dce00a47 100644 --- a/lite/src/org/transdroid/lite/gui/settings/MainSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java @@ -1,4 +1,4 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; import java.util.ArrayList; import java.util.List; @@ -6,15 +6,15 @@ import java.util.List; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.transdroid.core.R; -import org.transdroid.lite.app.search.SearchHelper; -import org.transdroid.lite.app.search.SearchSite; -import org.transdroid.lite.app.settings.ApplicationSettings; -import org.transdroid.lite.app.settings.RssfeedSetting; -import org.transdroid.lite.app.settings.ServerSetting; -import org.transdroid.lite.app.settings.WebsearchSetting; -import org.transdroid.lite.gui.settings.RssfeedPreference.OnRssfeedClickedListener; -import org.transdroid.lite.gui.settings.ServerPreference.OnServerClickedListener; -import org.transdroid.lite.gui.settings.WebsearchPreference.OnWebsearchClickedListener; +import org.transdroid.core.app.search.SearchHelper; +import org.transdroid.core.app.search.SearchSite; +import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.RssfeedSetting; +import org.transdroid.core.app.settings.ServerSetting; +import org.transdroid.core.app.settings.WebsearchSetting; +import org.transdroid.core.gui.settings.RssfeedPreference.OnRssfeedClickedListener; +import org.transdroid.core.gui.settings.ServerPreference.OnServerClickedListener; +import org.transdroid.core.gui.settings.WebsearchPreference.OnWebsearchClickedListener; import android.os.Bundle; import android.preference.ListPreference; diff --git a/lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java similarity index 87% rename from lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java index 5e23ee79..fdd62df7 100644 --- a/lite/src/org/transdroid/lite/gui/settings/OtherSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java @@ -1,9 +1,9 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; -import org.transdroid.lite.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings; import android.os.Bundle; diff --git a/lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java b/lite/src/org/transdroid/core/gui/settings/RssfeedPreference.java similarity index 94% rename from lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java rename to lite/src/org/transdroid/core/gui/settings/RssfeedPreference.java index 49a81046..59d86415 100644 --- a/lite/src/org/transdroid/lite/gui/settings/RssfeedPreference.java +++ b/lite/src/org/transdroid/core/gui/settings/RssfeedPreference.java @@ -1,6 +1,6 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; -import org.transdroid.lite.app.settings.RssfeedSetting; +import org.transdroid.core.app.settings.RssfeedSetting; import android.content.Context; import android.preference.Preference; diff --git a/lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java similarity index 92% rename from lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java index 2b83f52f..e0e8e44c 100644 --- a/lite/src/org/transdroid/lite/gui/settings/RssfeedSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java @@ -1,10 +1,10 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.transdroid.core.R; -import org.transdroid.lite.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings; import android.os.Bundle; diff --git a/lite/src/org/transdroid/lite/gui/settings/ServerPreference.java b/lite/src/org/transdroid/core/gui/settings/ServerPreference.java similarity index 94% rename from lite/src/org/transdroid/lite/gui/settings/ServerPreference.java rename to lite/src/org/transdroid/core/gui/settings/ServerPreference.java index 802873e3..0aa0bbb2 100644 --- a/lite/src/org/transdroid/lite/gui/settings/ServerPreference.java +++ b/lite/src/org/transdroid/core/gui/settings/ServerPreference.java @@ -1,6 +1,6 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; -import org.transdroid.lite.app.settings.ServerSetting; +import org.transdroid.core.app.settings.ServerSetting; import android.content.Context; import android.preference.Preference; diff --git a/lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java similarity index 97% rename from lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java index 148a8b56..6398d547 100644 --- a/lite/src/org/transdroid/lite/gui/settings/ServerSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java @@ -1,11 +1,11 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.transdroid.daemon.Daemon; import org.transdroid.core.R; -import org.transdroid.lite.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings; import android.content.SharedPreferences; import android.os.Bundle; diff --git a/lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java b/lite/src/org/transdroid/core/gui/settings/WebsearchPreference.java similarity index 94% rename from lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java rename to lite/src/org/transdroid/core/gui/settings/WebsearchPreference.java index 929f66a9..a4a5d173 100644 --- a/lite/src/org/transdroid/lite/gui/settings/WebsearchPreference.java +++ b/lite/src/org/transdroid/core/gui/settings/WebsearchPreference.java @@ -1,6 +1,6 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; -import org.transdroid.lite.app.settings.WebsearchSetting; +import org.transdroid.core.app.settings.WebsearchSetting; import android.content.Context; import android.preference.Preference; diff --git a/lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java similarity index 92% rename from lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java index d5daae2e..53194bcc 100644 --- a/lite/src/org/transdroid/lite/gui/settings/WebsearchSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java @@ -1,10 +1,10 @@ -package org.transdroid.lite.gui.settings; +package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.transdroid.core.R; -import org.transdroid.lite.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings; import android.os.Bundle; diff --git a/lite/src/org/transdroid/lite/gui/DetailsFagment.java b/lite/src/org/transdroid/lite/gui/DetailsFagment.java deleted file mode 100644 index c43b8135..00000000 --- a/lite/src/org/transdroid/lite/gui/DetailsFagment.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.transdroid.lite.gui; - -import org.androidannotations.annotations.AfterViews; -import org.androidannotations.annotations.EFragment; -import org.androidannotations.annotations.FragmentArg; -import org.androidannotations.annotations.InstanceState; -import org.androidannotations.annotations.ViewById; -import org.transdroid.daemon.Torrent; -import org.transdroid.daemon.TorrentDetails; -import org.transdroid.core.R; - -import android.view.View; -import android.widget.TextView; - -import com.actionbarsherlock.app.SherlockFragment; - -/** - * Fragment that shown detailed statistics about some torrent. These come from some already fetched {@link Torrent} - * object, but it also retrieves further detailed statistics. - * - * @author Eric Kok - */ -@EFragment(R.layout.fragment_details) -public class DetailsFagment extends SherlockFragment { - - @FragmentArg - @InstanceState - protected Torrent torrent = null; - @InstanceState - protected TorrentDetails torrentDetails; - - @ViewById - protected TextView emptyText; - - @AfterViews - protected void init() { - - if (torrent == null) { - // No torrent specified; show the placeholder layout only - emptyText.setVisibility(View.VISIBLE); - } - - // TODO: Show the torrent details and load the advanced statistics - - } - -} diff --git a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java b/lite/src/org/transdroid/lite/gui/TorrentsActivity.java deleted file mode 100644 index 1af298df..00000000 --- a/lite/src/org/transdroid/lite/gui/TorrentsActivity.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.transdroid.lite.gui; - -import org.androidannotations.annotations.AfterViews; -import org.androidannotations.annotations.Bean; -import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.FragmentById; -import org.androidannotations.annotations.ItemSelect; -import org.androidannotations.annotations.OptionsMenu; -import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; -import org.transdroid.lite.app.settings.ApplicationSettings; -import org.transdroid.lite.gui.navigation.FilterAdapter; -import org.transdroid.lite.gui.navigation.FilterItem; -import org.transdroid.lite.gui.navigation.NavigationHelper; -import org.transdroid.lite.gui.navigation.StatusType; - -import com.actionbarsherlock.app.ActionBar; -import com.actionbarsherlock.app.ActionBar.OnNavigationListener; -import com.actionbarsherlock.app.SherlockFragmentActivity; -import com.actionbarsherlock.view.SherlockListView; - -@EActivity(R.layout.activity_torrents) -@OptionsMenu(R.menu.activity_torrents) -public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener { - - // Navigation components - @Bean - protected NavigationHelper navigationHelper; - @ViewById - protected SherlockListView filtersList; - protected FilterAdapter navigationListAdapter = null; - protected FilterAdapter navigationSpinnerAdapter = null; - - // Settings - @Bean - protected ApplicationSettings applicationSettings; - - // Torrents list components - @FragmentById(R.id.torrent_list) - protected TorrentsFragment fragmentTorrents; - - // Details view components - @FragmentById(R.id.torrent_details) - protected DetailsFagment fragmentDetails; - - @AfterViews - protected void init() { - - // Set up navigation, with an action bar spinner and possibly (if room) with a filter list - getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); - getSupportActionBar().setHomeButtonEnabled(false); - navigationSpinnerAdapter = new FilterAdapter(this); - // Servers are always added to the action bar spinner - navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); - getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); - if (filtersList != null) { - // There was room for a dedicated filter list; add the status types - navigationListAdapter = new FilterAdapter(this); - filtersList.setAdapter(navigationListAdapter); - navigationListAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); - } else { - // Add status types directly to the action bar spinner - navigationSpinnerAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); - } - - - } - - /** - * Called when an item in the action bar navigation spinner was selected - */ - @Override - public boolean onNavigationItemSelected(int itemPosition, long itemId) { - Object item = navigationSpinnerAdapter.getItem(itemPosition); - if (item instanceof FilterItem) { - // A filter item was selected form the navigation spinner - filterSelected(true, (FilterItem) item); - return true; - } - // A header was selected; no action - return false; - } - - /** - * A new filter was selected; update the view over the current data - * @param selected True if the filter item was selected, false if it was deselected - * @param item The touched filter item - */ - @ItemSelect(R.id.filters_list) - protected void filterSelected(boolean selected, FilterItem item) { - // TODO: Update the torrent list view - } - -} diff --git a/lite/src/org/transdroid/lite/gui/TorrentsFragment.java b/lite/src/org/transdroid/lite/gui/TorrentsFragment.java deleted file mode 100644 index 5dd796bb..00000000 --- a/lite/src/org/transdroid/lite/gui/TorrentsFragment.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.transdroid.lite.gui; - -import org.androidannotations.annotations.EFragment; -import org.transdroid.core.R; - -import com.actionbarsherlock.app.SherlockFragment; - -@EFragment(R.layout.fragment_torrents) -public class TorrentsFragment extends SherlockFragment { - -} diff --git a/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java b/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java deleted file mode 100644 index 22f9dbe6..00000000 --- a/lite/src/org/transdroid/lite/gui/navigation/FilterAdapter.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.transdroid.lite.gui.navigation; - -import java.util.List; - -import org.transdroid.core.R; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; - -import com.commonsware.cwac.merge.MergeAdapter; - -/** - * List adapter that holds filter items, that is, servers, view types and labels. A header item is intersted where - * appropriate. - * @author Eric Kok - */ -public class FilterAdapter extends MergeAdapter { - - private Context context; - private FilterItemAdapter serverItems = null; - private FilterItemAdapter statusTypeItems = null; - private FilterItemAdapter labelItems = null; - - public FilterAdapter(Context context) { - this.context = context; - } - - /** - * Update the list of available servers. - * @param servers The new list of available servers - */ - public void updateServers(List servers) { - if (this.serverItems == null && servers != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)), false); - this.serverItems = new FilterItemAdapter(context, servers); - addAdapter(serverItems); - } else if (this.serverItems != null && servers != null) { - this.serverItems.update(servers); - } else { - this.serverItems = null; - } - } - - /** - * Update the list of available status types. - * @param statusTypes The new list of available status types - */ - public void updateStatusTypes(List statusTypes) { - if (this.statusTypeItems == null && statusTypes != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_status)), false); - this.statusTypeItems = new FilterItemAdapter(context, statusTypes); - addAdapter(statusTypeItems); - } else if (this.statusTypeItems != null && statusTypes != null) { - this.statusTypeItems.update(statusTypes); - } else { - this.statusTypeItems = null; - } - } - - /** - * Update the list of available labels. - * @param labels The new list of available labels - */ - public void updateLabels(List labels) { - if (this.labelItems == null && labels != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)), false); - this.labelItems = new FilterItemAdapter(context, labels); - addAdapter(labelItems); - } else if (this.serverItems != null && labels != null) { - this.labelItems.update(labels); - } else { - this.labelItems = null; - } - } - - protected class FilterItemAdapter extends BaseAdapter { - - private final Context context; - private List items; - - public FilterItemAdapter(Context context, List items) { - this.context = context; - this.items = items; - } - - /** - * Allows updating of the full data list underlying this adapter, replacing all items - * @param newItems The new list of filter items to display - */ - public void update(List newItems) { - this.items = newItems; - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return items.size(); - } - - @Override - public FilterItem getItem(int position) { - return items.get(position); - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - FilterItemView filterItemView; - if (convertView == null) { - filterItemView = FilterItemView_.build(context); - } else { - filterItemView = (FilterItemView) convertView; - } - filterItemView.bind(getItem(position)); - return filterItemView; - } - - } -} From 34376e26e778ab827ebd0860c6d86c028f45a6e3 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 7 Mar 2013 09:12:46 +0100 Subject: [PATCH 07/60] Getting the details screen lay out properly. --- lite/AndroidManifest.xml | 27 +++-- lite/res/drawable-hdpi/ic_action_discard.png | Bin 0 -> 1611 bytes lite/res/drawable-hdpi/ic_launcher.png | Bin 9397 -> 12113 bytes lite/res/drawable-mdpi/ic_action_discard.png | Bin 0 -> 1358 bytes lite/res/drawable-mdpi/ic_launcher.png | Bin 5237 -> 5025 bytes lite/res/drawable-xhdpi/ic_action_discard.png | Bin 0 -> 1824 bytes lite/res/drawable-xhdpi/ic_launcher.png | Bin 14383 -> 14733 bytes lite/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 25819 bytes lite/res/layout/fragment_details.xml | 2 + lite/res/layout/fragment_torrents.xml | 12 ++ lite/res/layout/list_item_filter.xml | 9 +- lite/res/layout/list_item_torrent.xml | 29 +++-- lite/res/layout/list_item_torrentfile.xml | 24 ++-- lite/res/menu/activity_deleteableprefs.xml | 9 ++ lite/res/menu/activity_torrents.xml | 14 ++- lite/res/menu/fragment_torrents_cab.xml | 29 +++++ lite/res/values/strings.xml | 13 ++- lite/res/values/styles.xml | 1 + lite/res/xml/pref_main.xml | 2 +- lite/res/xml/pref_notifications.xml | 7 +- lite/res/xml/pref_server.xml | 8 +- .../xml/{pref_about.xml => pref_system.xml} | 14 ++- lite/res/xml/pref_websearch.xml | 2 +- .../widget/CheckableRelativeLayout.java | 2 +- .../app/settings/ApplicationSettings.java | 21 ++-- ...AboutSettings.java => SystemSettings.java} | 8 +- .../transdroid/core/gui/DetailsActivity.java | 26 ++++- ...tailsFagment.java => DetailsFragment.java} | 8 +- .../transdroid/core/gui/TorrentsActivity.java | 69 ++++++++++-- .../transdroid/core/gui/TorrentsFragment.java | 94 ++++++++++++++-- .../core/gui/lists/DetailsAdapter.java | 103 ++++++++++++------ .../core/gui/lists/SimpleListItemAdapter.java | 6 +- .../core/gui/lists/TorrentProgressBar.java | 5 +- .../core/gui/lists/TorrentView.java | 2 +- .../core/gui/lists/TorrentsAdapter.java | 5 + .../gui/settings/MainSettingsActivity.java | 7 +- ...java => NotificationSettingsActivity.java} | 11 +- .../gui/settings/RssfeedSettingsActivity.java | 2 + .../gui/settings/ServerSettingsActivity.java | 9 +- .../gui/settings/SystemSettingsActivity.java | 71 ++++++++++++ .../settings/WebsearchSettingsActivity.java | 2 + 41 files changed, 515 insertions(+), 138 deletions(-) create mode 100644 lite/res/drawable-hdpi/ic_action_discard.png create mode 100644 lite/res/drawable-mdpi/ic_action_discard.png create mode 100644 lite/res/drawable-xhdpi/ic_action_discard.png create mode 100644 lite/res/drawable-xxhdpi/ic_launcher.png create mode 100644 lite/res/menu/activity_deleteableprefs.xml create mode 100644 lite/res/menu/fragment_torrents_cab.xml rename lite/res/xml/{pref_about.xml => pref_system.xml} (59%) rename lite/src/org/transdroid/core/app/settings/{AboutSettings.java => SystemSettings.java} (82%) rename lite/src/org/transdroid/core/gui/{DetailsFagment.java => DetailsFragment.java} (93%) rename lite/src/org/transdroid/core/gui/settings/{OtherSettingsActivity.java => NotificationSettingsActivity.java} (63%) create mode 100644 lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index 90b10a33..6b16a6ad 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -15,17 +15,25 @@ android:smallScreens="true" android:xlargeScreens="true" /> + + + + + + + android:theme="@style/Theme.Sherlock" > + android:icon="@drawable/ic_activity_torrents" + android:uiOptions="splitActionBarWhenNarrow" + android:theme="@style/TransdroidTheme" > @@ -41,7 +49,9 @@ + android:icon="@drawable/ic_activity_torrents" + android:uiOptions="splitActionBarWhenNarrow" + android:theme="@style/TransdroidTheme" > @@ -49,12 +59,15 @@ - - + + + + android:label="@string/search_torrentsearch" + android:icon="@drawable/ic_activity_torrents" + android:theme="@style/TransdroidTheme" > diff --git a/lite/res/drawable-hdpi/ic_action_discard.png b/lite/res/drawable-hdpi/ic_action_discard.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd19d9e80b07c6fdf216f2b728a9337e438d1c4 GIT binary patch literal 1611 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)*~rk%+1S<8$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19ytk=TX(Za+Lr(RHE$SnZc?2=lPS(cjOR+OKs0QR(1 zCT_Pl<1`PdHwCL(!2WQ-saGH97=2LGB1JV!2$+6AOnAZta^OinH4m8Hi+~Ax_NSC; z1_q|Ro-U3d6}R5ZjQ19GlsHyi)<2I+TTnztb;AoS-#^X*68FllPJeMI@3Zm`!B2}$ zFY3P_-tj{3qKL~y1+S*APcKf!oWE&o+kE~|fyMEXv~zE~tUok2pFX$m{F&eB_X0gM zn?KtedN8No$wBc!y?8*8ML5g5M#c$qHYA*W5G=>))4*D=@@(6ugT z1GX1zi+Vr4x@n^EypUZ;Y9I46$2FWQn6S< zt9D%C>|Ix=e#lI3+AhDD)=ORFnzSOA&L3>|%%>3`{oP$bstt}e(f~YY53RoV9rdrXH4v&H=~_{ub%sV zt+S;#w3h2e`GndpfzRh0-FhnXxIWtkZE>qdbMCRI^f8CcnwRIxDq~^ex177^L9oM8 z=ExO~f*W2q*l^8fdS&x{$F0WL%Ug1^7F;YTOx0E}vyHmVQ83p{I&#N^ZYPPfhfXhd zuPamd6x+%CZDZ0llYelb#{Ni?uWQ|IJ&xn-(=TK<5f7DoCcXLWylc+4*#kb# k{{>7-3j`*-{Gok-LH)?F>j~0pmV=6SPgg&ebxsLQ0FuvZE&u=k literal 0 HcmV?d00001 diff --git a/lite/res/drawable-hdpi/ic_launcher.png b/lite/res/drawable-hdpi/ic_launcher.png index 96a442e5b8e9394ccf50bab9988cb2316026245d..bb8449f45b13d44339e3bfde4a4d9939b2425cf5 100644 GIT binary patch literal 12113 zcmV-XFRsvuP)H#=?!ktB zp(v_NH+b_<*AAW%g=mUy{!5Z2{C~OSRm9L5^yt7Wm@tI}NdBMH9`dhWN0IfwKX`zU z$>dtc3)_=}Pqg{HFfaB$OCBi1P%L_EP&TUyhlD37yq$WP9MV)8U&pV4Uky=7It~*W zDBt+jq3*ImWaS<-r9txt9))`__`TxWDVGIh^q;5gbVm@ab%Q=*oW4e3$)_nTA?~=l z!;KLMoEa0?%HZdeYYbt)ya7izOw^=@zlvHl_KxsK{Cb-l(hmGuAbwEt6CoRZvm*lE zLo1&(*YnS#b>k87~owyK)`{=+- zCxaD&CCmYVM?*FoefDv;+jZ5@Y1|9&no}Q-)xfv}63LxA zAf0|hMt!SY#nX6AW1sn7cJsb-Ti((~2W8QV(vmCZ_CFHq73zi`D*f_WjSWk@5lx%; zkZHq`_m(uGC8!=V&xG$ec2Cad(+=lC6ZI!FL9H@A#Doz0EqstZe9F>;H^kuIjab4R8d{GfQ3KM?Re6tf^)tmibc`9r z^)$}9k&>yM5|FJC{@pf_XlVZcn|klD#ze#@)jQS83*O&MIlOv{{9$8l-3KsNZOL{;`U!`QKK3ajQPk zYqnbLWFCyhhxB2>m1)O!aqGYQ2{7}xZAX@0z4p*^qs-Akeb9xZk>dyT>fLQnLACs9 zAq6H1G3T8B#elJF$C6($GZ_AXDbRtbf#?2}Hpnj%2GHoCZ%fE$w=xdm%tc@h@he)y z8QD&?ny)@FQ@mY6hhqn?!$^onoK}OFsGxb=1JqcH%~-$ergJ+`1ITs^_D z@W+UVh!T+c57LJ<;h)-izR<$ZOcarD1Vj!Xqm3Pr;a~V^R>sHsbq0SN$jc}-|M=sN`yQK|jbn)(GSwlLzaur^ z3>2jPDR#9?h~AL%=trfVF(*FSd&8SGI|i)k-7u1s<xf&u>5 z>&!8t)_BkmBN8M<7y!SkA5BaI35z9_AtHGVTnD%b<}A!dld+hl>qOD+%HjJL(_xtnl^Tqgf zVp}r?f0zb@9wxeTk;P;KJKR+=RW7qn**dpSKDpB88&Xr=klQ~X`3NKh=>VjRu**f=J*S?LGVUb)0J0 zbK}4M{lN|8-t@#U95!eJ_&rrgHo+`J;Ww7bz<~cW4PeNkS`vXwQ0N{x(*05T7(b#U zo%%_=8>Eak-ak6<6fGL_86B&JK1z-Td_+(dPv>uttp3*i1-HC+C>;U6a~MVGj5OjR znZd4@j}q4%uOB60-yR!>qiF`~8;%S(*`Wc{2DecJgjMGxpF#hA^)1lzs}cmthC8zB=x|#g8=F5 zTrcn$I-?>KpdsKNASXzR2Cv8C@rBk(B4!fL(5i-BS_ar2>VE*77vy6g`QpLD`~H!k zK`b@CkJ3liVM%g=1cD6*ct@$h7|BnnHol|Px;5rgrof*B2|+cCUeOkjNBBP!#2C&~ zF4mYW4c@hD*J`FFPmP7Z5sw<|3%ta-;Wyyl`AfwBabfD^Kd^il7Z;X%tgqw7^aR_m z(%F6YLF6I_BrmVUjut7w7q+_K_<}7YTfQig-rAIKP!2Skm1fq^m^qS+vJaP5+_Yd$ z)XmI((B9(3cEUor-08A+GQYfI*xaF<^m-0)oE&rx&F_{Pd}aKW4Ru#k zy9zs-!x`+jF^clD>5+9eMK52zJnt;-{ecW%vUhp2k|%Z|s;eLj$?1}Eob~>rBefcn zGB+7rLNn7AXstmUqs1tRV~0*bANhi(kS5BHVmm2#f@2KG-)POl+GAO=WJ#bsA#!_j zL4j`<7i8jqiiZ#$M=4l!X{2S%IM8t@HkDE^yP^ivpJqV)frNk9U+Fbr$YO}Z>oP)G z1ev%ftAJ5|m^mh(c;4`{&UCHS)l~ zfuvAKjUtEwK_8N!uBMd(KM zmPr^Tl2iamGob&(Lg0mY1T_XHYk^=6f@cBCd{s?lhTzt?)~#Dtt|B2E;mZb~5uhYB zZs<@A&@VnRTDPa*!<)N@T@~dtCCT#Xb_)OCnA@wey{nXRAOgbw_jOv(_@9>35ENH+ z(wAa18Uvd*Z~m*(>5KzY+!QF!UUpO~;QPFH{qeze@-zM91IBahTrPJ1|l} zu3T?Z5UPeGQesB4M< zS{Q8%(&_ZbU4!Ni7T?@7dGh3fbL2+Og1{H50iGvDq}IK)cfcBFlr)VZHB@j?G7d@v zBSYy)!mDMJ`Cs>-)N&Fe_l#T&_6;#CCa*?kBB?>B-m#LUJZoKaO3w*y>xJTLx)mld zu4wYTu9*^@Mx!k{9^|w}L>h{blf?b&L%e z*l;p9#zM-H;3Rp$hkU#n@t7$P-IBC4m{_?3=A>p;B{fqEYX$-E`+3X&6ZXEHs@{2Q z^Y`7mclR|kG#Z-{DD7sqc; z6=sTsPE_g<>8Tn28|{qutX;ddC{zi&Ai7?l69!4LK$$T;Jzd)AdvK-6Y?vewcoszM zu9d0|P9Z!`h{drMWYxx?aD6vq)<&V~Vm~^OQI0B08c;AOqMC9SnKOeOU|1Apl8!?5 zNDf7H)goPFBdX^Mk=tK`1Rk3TEoP)fOX?4RW;%iizyJYjr`HWhM!Ig>oA$pC8#uOZ z^ytwgAN=!5Ji@?Sovb<-<}n@TSwV{fkkcvIb|HOL>Y4j?6}Xl(j)7>0Q2#1ma7)^{H~!pw~5 zGeRdx5|4#rHy+uLFT-^7;NOMTXn^&dy~8ipYb{SS)$)COexKPZ)P>_H9O+C93X3pc za}ciDX&$w;!&+9WQ#g<#_poxEP>iWR(s*Oh<}Xvx;h*!6!DvJliv^iXCS}nytu)@M z^Hri$`Lsk~hM3J}^1CETNFQH;xNf;vn%szCDWo?uh~so5Wuw3*m+&6mJ=hj%=$#-+cZx;3nwj)kN$0eLE7kQAMTn3z*Y#BwOx{TQ=Dy_jqB{1pvCM4N#4U^bz~ z4Fxmk&eJg3ZVbnEsz?c6U)8C~iQiIvF2~HC$2Q?$i>gUX*4*D`jP*wiN1NCX)~6IS zAgiecl7VZJLKLj33+6WYF?1y%Jm-SBCcm6VZ z;K9c8IZFCG5(POP^R?X(~ikGbnbA1wV%6jWJRX^f1F zM9*#Pvp77Ko33T`Y7xHefD6`wJ}-_B1Z1VV6*|!1SAsZJ3kp(malJi3BuTwvi|h}0U5j2?^>kyM z=OjjJwfLg%w{SXr9v=Xj5r@YZj6SB#z5m7Q3{>P+a9S`FX`x#^Nd8(3U@63Es_%_T zviPlUJ^SgVJLqw&2*Lhqrqg#SdkXLMUVf+OVe3fOHIJ z(4g81@4m{?hB{2Q+IQc5S5z&G_Ch0J3*`Lq&k3R=^x2!W`tr0>TQ92mI)A#Bq>Caq>ID=C^OP>$QJ}teyFJ&cYE}|5_)N0QBY;u+Rj5@ z1RyDFAjD>xmN{`ulbkmuQ^@^n5$WRY(30GcQfy@1h`4+mvlLMxUwXpDOM zB%8x9LvovvGBY!|mK>(fwEdoKQ=YFWl%DsyMTz%{#JdM&KdFyOp}?yRaE&xSVJSCi z9q3ec`KDo4j1WKn{PX6-71@NRO6f(h|1IuIsoP*@UcQ}bstveHj|Wyka7lJx0(7O? zwnn7pvv{cqLv{}`YQj;1g;U-9=MG{jeEtHA?uE_c;*gAgmvVtwW2FA?Cpq!IPTf2-}m0jJ?&{@4xxAPw?f66)RTM78Mo!3X+}`3EOP8qWb#!&MwzoU+gM;H`nU) zeT?n1g+9HzrS;^8ybP9e98n|QFBA*)mbzo*#{eG-5LXNtGK3{IR5cM7!wHAd8Iq*7 zu;Xx;R)oo)vA43u@20X17N);4U$Je`0G_tMizMe{U>wr6jcF^Nowal$zL)`F6(+v- z%rfOU#o2DR7mpe>%5~#_S5lfzI&P#zQ!(VLC$x6$ z+6GuFsQl}%zn%b@P-3GY{csTn*kv5s_)1GltHIW+%$^D+fv+p~rxFJWT0&86Sf|=g z#85~O5NF1;yhZ{gVgw?NPwRCG*;naL5CJdPxYiI{n-d zFV~j)nygkUvwHRF_z@#U7|dpKVw1HgcF*2DB=H6W=zylH2+tXK$*>&vGq1H}<&FOStZ>}c}hU{8t`5BS;G*tpVcwiM!ZIlNx4Co3z< zYl-C@WA3)hg1JJ5wryr81WA=0`;@HpmFK(OTQqOS(xTjY5GxnN0xjp%k^wgSyL6=F z`+K>eDflmn4P9=#V|!f;h&cl;G4PTan3<`tROF7UYBPYMBv;S4M?K=p~Vm!ExV zNozI0>+uow=Q9UB!FoEC6%`dehZlbt5J0EXk@N&XE8@l34%#fA0Es0<6QIz8BVuXC zj-5|OU4}OIoD?_;!6HEKwlhF+$f3=JKtHH!!`}_A>g}eA2@fZR4K2Fz$}3&JO2*+o z0)g_V#k^aynj&_XLS8?XTmg#Qe(XqP)zQ$cAAoG|;sbvCfm)I6+qbVbGBRq0$K%a$ zdpyXC%~L=KD7zhrBW5~$K+`ZdOZXfCYgt%WIO^K9n{@PO#@p|||Nf?tlY48(3)-^2 z=Ai^*u>TGFVZ<_eWY;C2IP);1^IVp-9%dXHniH2An+3M2~ApTcWWn2npD}ZU%wfCpYNF4l9HdB)v36?_0Jc?A46Fb4+zJ2>juDk9!5kG(b;lqa) zV<+7Q5D>f$d_hNU2L-}}>H$#S0OF^mrLTDAnP-;Z$TWBIe>dG2#t>S~%!;g@9M(e(1mFZ)`;(X&1!F)^`f(4av_v2+&q zH_!OGY-g9NQP7aB#c@CgBe!;t?lBG%R?8rfb$9l7JoKztvx3pl(S;KyPOKO@bm)CS zQA~q;z0dDMK|nzi>JZ!yCM|S7htr9=ckhlev$9ssn>X)0YzneHUDxrLLB^o$PbT}- z+EX3FW(W%_bW!`4zW(F=^QOPM5EFkprsrX`CJft|e$~fwzIp(I?R4z;31cTD-yknE z7`UEF=QG>f;MA&ra6S*i5g1Bye6O0C8v5C1pEZ7U{1(E5F=NKm3>!LZwj_#&ydJ15 z`AG>;Io^h8^B`?AqC}SKbU4vvnD{47oLoES!8!lD`R1FC+D88({H@!^pw@AMP1klB-{H zrCn~juY-)9>U0u-yYdM(nKv^3Ybd;*R@sgGw@vogN6I`@uXczAfhs8OS8$BY>}52K-N zfQ)C{3KENopGnH7 z-Eg%;Nm`_COKLOPYes#_c3jS&b>8#Buq88IzH$t{tLa=BzLs$STr}+|es9Fl{2iZ( zGVe6owWL3XQgiyv%}}VVttdf+?LVq5^A~P?-#2;M)aezL(R=Ha`^)I&?w?Y%wY7-{ z4<0n{*}MA<4Xc@CGMkXmXjIFU^zURTm9+?hKmt0z`3VUL&=s-sh8u2t8ed9XopWa( zv_bpEu8V;v*RRRB?^T%+G}7B=dR4O6Nw@O zmj`O?XBFk47I4!;$$Vkc&v)ufvd!)^D0vMWnD~6q?CK>Y#nZ%Z?P+neYKC;k>fqvg zPZlOU`Q(#w&Z;CfREhdJ_ih<$LjI5;LtJCWjC%r`kZ-{!_^?R|`2^C5c3!y2kk>(< zj@4pC3GoTY)#ToH+ilaI1GBR_=dOTaC>S)g+YcH`mAn@e=de(}eXbg%l^gz+(zFcBr{LCgzX1|=A9NYN{GV<5|I&A72eCi1~_sWU> z66c$&KjM&{wILxOBTtjsh^6K_+BO(cH#OUIsK+4ZeAXD~{K5+_aG?_s;pdvXd*$tQ zPn^Qxx@X+D@lRtWe1iivgkuL{(?coibJ=~QN+C#oe0)3>9DfRSwol{t9>&k}@EMF+ zc!7i?mei3cg=;2h7#)5;i$aB=whSmZ`F$eRR1QTNd!r=VIAjU*DNWl}vw8llOXuC1 zy!d`sfxYg)fdl^E>X^&NNCVonbv|#+#gIOn8KKKggN){SW+9$-3MbUipkIeSe91HxVNU{i` zZ2gH@F1h)DCgm|Pa$#a>YN~0^o;{BVoSw&u*;qG-TVZ$YqZi49cY&Z zP%W&V6qLLx-###Rc50QO!8 z3M8Qy9Tg2s$-C*Mn;t1IFaHJ4)&0$hSwZFeHws;s^qw73?M2m@SFicyg}+B6at5=( zP8f5#6xmj_mPmUd&j(P^@%oRRz4^zN7B61xe&B%zJm@o|+Zb zNo&$GRu#<%?aEg+V=2`n2)x{|erf7+U;T66E>PKxCmyK;o2qC-hzV~c9y@l-xO3Oe zd+}W70uz)14o%Dsq!@7UbrR$JN3rSLjpy#d%nVZGWEKe|A5JbpA<#v~z9VBTJs$w_dG=Nv&o8NWUlruKQyD+*f6NLn17gA(Iu) zZVPYYlDx)%ao^gzlS8&JBiY5I~>_5pN`BW@Z}p?%i`I{_Mxi zW($I1QDkHkXhZRg88hY`J$iH(o_o`#Q;&e!qiehT6I2a?tZ@gkzn}2$^pD0xcQI+h z9bqJBQcllmd#YWb-|6jIWM2X{@w`9Ku;Qfy*X~$*;_!$?smyN+|({75MJdW2#?J zm@vliazb8Sp7H0O_fC(AiFqP6HkQ_Cv=uXF&YXvR#dbXJMofGj;PVY#KZFQ0IS}+; zv2oA)6LPAy_mAyrLpGb8RIE-HnA%EwLEpek9FC=2;W_G*XQ!oP_oHJ+6yzjpIZZBR- zgX&zm;L#h#_SCON{F1$4fZi@xW0I`MptUOT0@+&CKFJ4P==bp?_%-S6$f$9U4TL(@ zLIlbks6;sh>7QB4uYU7yfBRd`xpv5$lL7cSTTM+3w{zbQk!8M={*oj|8clkKHG=Bp zqpKoCF&Jrc7~)!P&Te<53Q?*#QcM!59|+PZtz`Q)(K_l-C(GsK*vvFwDFgH5<9R*- z&r!xO(-#&NCPYO=#bBrkr{cy|Hx$LD=5FnE^wiE?GUswc#F~-KZYHOT%`}h*LZ7~>Z*!{s=AuS`pop)lFam+9335&JAeLsYWno)8R(3IJ$};% ztXZ>$!C`!CadEK`V{x&dpg_hF$6&~({mUH7-@9BE^Tg>M8o2}6z^FkPqn_WU9(N{d z3XE)IhFKF;W6{QWjGAyU(%juu?aH?{da5mTt}=U7U6He(GBd#wsE#&Twa6B($3dS_ z>HjB*xAsZ>*&4tjkK2!=0DI`pD?WK#^~El=1;smg@?;9fEd0ie8zCFYU$6$8!@-jV z$ZgxUIl`j3#1d}(MjSmlWEFaKbPZQIP)|Wfp_b*4y#+rc1Toz62C<_HlIj!q2B>(k z8XD=0knT`+@+*58nC2R7N6u4LkK*A49Hrv`?AUJ4y{;1xdp`Q;qcSznl3M&cFATkq z5|^^CLg7^WfwH9!$$rVvGH-q{jvZ4rLPKsw-4&^(dRaz`w6uh6xp>C0ks(-1w_sZ6 zXi2%l=Sh)m1+br4j{=N@B9oXqYmWu?9655ta4v^?-hQQ4e5PKIeBI04$0ji>O(b8* z97@d+OErHJMhERiSNlp8C6!tfc<6IGe|5vRd{zes)gcleIzdQou{Rq222^OabE6Ci zm6w0>%{O~dE6$L+(84FY&Uc_}Ss$83Hl>SL`8p9m6MTRt!CC02FY4kPlhJ|z;<*Qs z+FUgH{i+^C@O>c2E3lJNzRw0AC!8b1=`|>+zwIFm1RQB;Y2h8M0fr%CyXs$DKJ^xk zHX*&nP7cg~MK|z8sMb|Y3ev1DRR8+#djNBx#t`sH$Y!-8i?$OvEe0ZX*biXW`H|Dn zG%~%sv|mF*Ln?kt?S*Iodx7fb|L(-&U44H4PMX(hPv%rr1p~DVqYd)qRmJ%d?Pso> z(&b%9^{Pjm{MRvnY)6$4Nrx96bFDb=!`9=;Lwd(EEJePZDKgrgAZs|*=n&#CJU*sc z4Y8v%z&z6VY+Xi1#_KCqtU$|`FDK9k<8RS!w^Q@~Ire%TV^uro1U0n(?|OhfOZ#AlpK_)F&3{qOwIH2>hP)bxu664S_?zZ_26=Aw?^WiJW_$9a3s751vSu& z>%p@K;-H8|p?v(G$>EA37A8SNoKE?!GY}@|D-HOSWAM4~rYozft1~au)?X|J7z>;B z_oP{h9NT5mM3RkZKA}O%Z#tTZ(LuDqNINNt`BT|@au5|JsZnnY3U#)Fkujb63CL~q zY3h(c=R%IC0IIWkFRMOKuj|&W8=IGxcgYyw4@&$*BW*_Dw| z6fDWj(QJDTOzId@Bcqlz=+hCsa_$f>y3if>O=S$MvnGQs{y9V?bG*rd+ukZPp4d8eDQ@#bwC6G=sBZ4^nEaJMg%MhwjhDS z<~R*$5xG=njE0C$cFF{meFTyVr8>SIPq?&2wv;4GwimrFL!o9=>^xYJMLE=u#_DV(JwdSj zr?#%P3HvRJK~E!e$qspyu#*jvo+pFe?9yuVMnUq>u#-m!D4A9Wx>%iT5k--3WozL} zL2OFhl6=HHC-Eh^1>xmOr2%Mr@f#uBs}@xlAU>EPqfCi*sB)RvD01>)MQLr``meuP z8r$7y>_0N@Mdb@|P>TeY(v_xsp)=h9U*dB*Id|s0fn@L{Jw}rOH56%fe7b1ky4lZN zcdIFko#^v>X%6~Wby`%H@6-7Gq?d|PG*+QDUN?z@#&uqRE~N=V^jQ*22*%wqbF>X& zcMI1Exhj~G3*Y&0%U3JDfv$&~hhMrj>54JEi1~rQjqEPRkWW-w$sw`T(mct(3XZ5V z{x6?(J#;N}LJJ(O3T0Fx(Hdm~Na!uFnU41g#ow>nofaS2Cw=g^E?+piqr1by?PIm9 zffmHWlFRFo)C_co=ej!Ji`?jQIcMMQf)8|jpz)W_KHjwIofp3V#|(uEIJU)?l~Sy^ zCS5bZ6W;;6qKM33gb$) zRylze4u>L5TpF&1W+j`e$-@SCk!%)`WhHs&b$jccdg>`%SXfw5|D^HE@vP&|q*w2E zB#%hAUvFYrf1_ViEH2&QKC1)1&i3p>nV@zsB&V)bu=R5p|g?OXzKYI_QMHWa+SbN%rJp$1w~lEe%Gn+$~+IKSWL7LXTzoRgV~E?x)~m5s`JrSJB1NW5ZiGM z8CeHf^XbZ6=?8NU_PuQA-AttGRaPtYb42P9G#{VL$Sb%kDH`T0?J9m-=F#r@v7Hw* zsPkvkyqDB`{PBO538Kzs34U%*>AO(H1iKJCy{{kymQX#G;uCoBy=#hv%-gTOV`WKE zc}he?M0QnGl~7ym-`=^4`7VH~dJay~O+-aGjR$WX^TP5)tLE%a=xJX_z5)^3bymY7 zD;EnX;vM&2_x9T5KRoHz7{vMH)3D7q8*RwbBxD{WbKe*7vrzS9wDMK&%TWoMP{#1Sj|^2;xmGYsRI zJ$rWdoE+1_lH&*V#l-qJ;byA|o^b3RVgZ*Mg)>}neqlbL-u ze9fwjLSbQ{{Ml!pk)s{+>VFcu*(U%*ab{M0zsIDvcj22frIW_|?X~=qg+Ir|#T9?} z;fF$D{h`7AhxFXyaM~Gww?BQqZ`mEwW-Y-)F8kz@PYhXESv0RJe82C2ZWB$KC~4lT z=cXpb^)7kswbwFo>$dQqJ<;s2`1JI2eM;IsgW#v61q&AB;?MWC)~F z=RLPB%TE4ZRg_=RP*hYzVd9g>xypN70u8D1<_N{v?rKgJH*&Id`klAm`wAw0D%Oxn ztRYQTUwyTqZ{G!bmwoy6SJ*V&?sv&WGw+`N&9rIL{Hs^5u4k={EYtf=bacYu}YH^*z&N=~`n(0%fOzHFDi!Z`4``R<^p)D&b zBlp;_VFP?aw&r5YwVlb#_G^HAkqYqYuFcaMYR>+k=#wW;nvWhmD&KhHjj$DnKgVm7 z=t(W1$`@g>?dgH)5DmEGsr%5mn18~@uQcHQAD8Cwe*z2ujBe4(PsS%m00000NkvXX Hu0mjfN&J${ literal 9397 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 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_launcher.png b/lite/res/drawable-xhdpi/ic_launcher.png index 71c6d760f05183ef8a47c614d8d13380c8528499..e2a946584857250c9e0f32a2c31e6bef82fcba7b 100644 GIT binary patch literal 14733 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 F{|EQY!AAf9 literal 14383 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 diff --git a/lite/res/drawable-xxhdpi/ic_launcher.png b/lite/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..91ea69c23f4c991eceb20dfe0086e4856c055773 GIT binary patch literal 25819 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 literal 0 HcmV?d00001 diff --git a/lite/res/layout/fragment_details.xml b/lite/res/layout/fragment_details.xml index 245e60fc..6c17e9e2 100644 --- a/lite/res/layout/fragment_details.xml +++ b/lite/res/layout/fragment_details.xml @@ -9,6 +9,8 @@ android:layout_height="match_parent" android:choiceMode="multipleChoiceModal" android:listSelector="@drawable/selectable_background_transdroid" + android:divider="@null" + android:dividerHeight="0dip" android:visibility="gone" /> + + \ No newline at end of file diff --git a/lite/res/layout/list_item_filter.xml b/lite/res/layout/list_item_filter.xml index 92114e79..5dff7d2f 100644 --- a/lite/res/layout/list_item_filter.xml +++ b/lite/res/layout/list_item_filter.xml @@ -1,8 +1,11 @@ - + android:paddingTop="@dimen/margin_half" + android:paddingBottom="@dimen/margin_half" + android:paddingLeft="@dimen/margin_default" + android:paddingRight="@dimen/margin_default" > - \ No newline at end of file + \ No newline at end of file diff --git a/lite/res/layout/list_item_torrent.xml b/lite/res/layout/list_item_torrent.xml index 7f4d8a0f..c87f9742 100644 --- a/lite/res/layout/list_item_torrent.xml +++ b/lite/res/layout/list_item_torrent.xml @@ -4,10 +4,9 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:layout_marginTop="@dimen/margin_half" - android:layout_marginBottom="@dimen/margin_half" - android:layout_marginLeft="@dimen/margin_half" - android:layout_marginRight="@dimen/margin_default"> + android:paddingTop="@dimen/margin_half" + android:paddingBottom="@dimen/margin_half" + android:paddingRight="@dimen/margin_default"> + android:contentDescription="@string/status_priority_normal" + android:focusable="false" /> + android:layout_below="@id/priority_image" + android:layout_marginRight="4dip" + android:focusable="false" /> + android:textIsSelectable="false" + android:focusable="false" /> + android:textIsSelectable="false" + android:focusable="false" /> + android:textIsSelectable="false" + android:focusable="false" /> + android:layout_marginBottom="@dimen/margin_half" + android:focusable="false" /> + android:textIsSelectable="false" + android:focusable="false" /> + android:paddingTop="@dimen/margin_half" + android:paddingBottom="@dimen/margin_half" + android:paddingRight="@dimen/margin_default"> + android:layout_height="wrap_content" + android:focusable="false" /> + android:textSize="15sp" + android:textIsSelectable="false" + android:focusable="false" /> + android:textIsSelectable="false" + android:focusable="false" /> + android:textSize="12sp" + android:focusable="false" /> + android:contentDescription="@string/status_priority_normal" + android:focusable="false" /> diff --git a/lite/res/menu/activity_deleteableprefs.xml b/lite/res/menu/activity_deleteableprefs.xml new file mode 100644 index 00000000..ad353807 --- /dev/null +++ b/lite/res/menu/activity_deleteableprefs.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/lite/res/menu/activity_torrents.xml b/lite/res/menu/activity_torrents.xml index 1832ea34..0d086f85 100644 --- a/lite/res/menu/activity_torrents.xml +++ b/lite/res/menu/activity_torrents.xml @@ -4,7 +4,13 @@ android:id="@+id/action_add" android:icon="@drawable/ic_action_new" android:showAsAction="always" - android:title="@string/action_add"/> + android:title="@string/action_add"> + + + + + + + \ No newline at end of file diff --git a/lite/res/menu/fragment_torrents_cab.xml b/lite/res/menu/fragment_torrents_cab.xml new file mode 100644 index 00000000..ae62819e --- /dev/null +++ b/lite/res/menu/fragment_torrents_cab.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml index 22fba165..ccd9f810 100644 --- a/lite/res/values/strings.xml +++ b/lite/res/values/strings.xml @@ -21,6 +21,7 @@ Ratio Filter list Settings + Help Start Stop Resume @@ -36,6 +37,7 @@ High Remote play in VLC Download using (S)FTP + Remove settings SERVERS STATUS @@ -47,6 +49,7 @@ Inactive Connected, but no torrent are active within the current filter Select a torrent to view its details + Transdroid allows you to monitor and manage the torrent client you run at home or on your seedbox. Setting things up can be a bit tricky, but we offer step-by-step guides and promise it\'ll be worth it! Waiting to check… Verifying local data… @@ -54,7 +57,7 @@ Error… %1$s OF %2$s (%3$s) %1$s, UPLOADED %2$s - SINCE $s + SINCE $1%s ~ %1$s ETA %1$s UNKNOWN ETA @@ -145,16 +148,18 @@ Vibrate LED colour If supported by your device - Support AWD notifications - Show torrent counter in ADW Launcher + Support AWD notifications + Show torrent counter in ADW Launcher - About Transdroid + System Check for updates Check transdroidorg for latest app version Import settings Export settings Send error log Get support or report a bug + View install guides + Recent changes About Error during communication; check your connection diff --git a/lite/res/values/styles.xml b/lite/res/values/styles.xml index ae796309..9daedc4b 100644 --- a/lite/res/values/styles.xml +++ b/lite/res/values/styles.xml @@ -3,6 +3,7 @@ diff --git a/lite/res/xml/pref_main.xml b/lite/res/xml/pref_main.xml index 19f3bf36..09c61a50 100644 --- a/lite/res/xml/pref_main.xml +++ b/lite/res/xml/pref_main.xml @@ -13,7 +13,7 @@ + android:defaultValue="false" + android:dependency="notifications_enabled" /> diff --git a/lite/res/xml/pref_server.xml b/lite/res/xml/pref_server.xml index 9512a302..c34556f7 100644 --- a/lite/res/xml/pref_server.xml +++ b/lite/res/xml/pref_server.xml @@ -18,8 +18,7 @@ android:inputType="textUri" /> + android:inputType="numberSigned" + android:defaultValue="8" /> + + + + \ No newline at end of file diff --git a/lite/res/xml/pref_websearch.xml b/lite/res/xml/pref_websearch.xml index 09674685..f2efdec1 100644 --- a/lite/res/xml/pref_websearch.xml +++ b/lite/res/xml/pref_websearch.xml @@ -8,7 +8,7 @@ android:inputType="textNoSuggestions" /> diff --git a/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java b/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java index e8e92e9a..91932561 100644 --- a/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java +++ b/lite/src/fr/marvinlabs/widget/CheckableRelativeLayout.java @@ -30,7 +30,7 @@ public class CheckableRelativeLayout extends RelativeLayout implements Checkable initialise(attrs); } - public CheckableRelativeLayout(Context context, int checkableId) { + public CheckableRelativeLayout(Context context) { super(context); initialise(null); } diff --git a/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java b/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java index 7f6393d5..9bd6d723 100644 --- a/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java +++ b/lite/src/org/transdroid/core/app/settings/ApplicationSettings.java @@ -61,15 +61,16 @@ public class ApplicationSettings { return new ServerSetting(order, prefs.getString("server_name_" + order, null), Daemon.fromCode(prefs.getString( "server_type_" + order, null)), prefs.getString("server_address_" + order, null), prefs.getString( "server_localaddress_" + order, null), prefs.getString("server_localnetwork_" + order, null), - prefs.getInt("server_port_" + order, -1), prefs.getBoolean("server_sslenabled_" + order, false), - prefs.getBoolean("server_ssltrustall_" + order, false), prefs.getString("server_ssltrustkey_" + order, - null), prefs.getString("server_folder_" + order, null), prefs.getBoolean("server_useauth_" - + order, true), prefs.getString("server_user_" + order, null), prefs.getString("server_pass_" - + order, null), prefs.getString("server_extrapass_" + order, null), OS.fromCode(prefs - .getString("server_os_" + order, null)), prefs.getString("server_downloaddir_" + order, null), - prefs.getString("server_ftpurl_" + order, null), prefs.getString("server_ftppass_" + order, null), - prefs.getInt("server_timeout_" + order, -1), prefs.getBoolean("server_alarmfinished_" + order, true), - prefs.getBoolean("server_alarmnew_" + order, false), false); + Integer.parseInt(prefs.getString("server_port_" + order, "-1")), prefs.getBoolean("server_sslenabled_" + + order, false), prefs.getBoolean("server_ssltrustall_" + order, false), prefs.getString( + "server_ssltrustkey_" + order, null), prefs.getString("server_folder_" + order, null), + prefs.getBoolean("server_useauth_" + order, true), prefs.getString("server_user_" + order, null), + prefs.getString("server_pass_" + order, null), prefs.getString("server_extrapass_" + order, null), + OS.fromCode(prefs.getString("server_os_" + order, null)), prefs.getString( + "server_downloaddir_" + order, null), prefs.getString("server_ftpurl_" + order, null), + prefs.getString("server_ftppass_" + order, null), prefs.getInt("server_timeout_" + order, 8), + prefs.getBoolean("server_alarmfinished_" + order, true), prefs.getBoolean("server_alarmnew_" + order, + false), false); } /** @@ -87,7 +88,7 @@ public class ApplicationSettings { } int last = getLastUsedServerKey(); if (last < 0 || last > max) { - // Last server was never set or no longer exists + // Last server was never set or no longer exists return getServerSetting(0); } return getServerSetting(last); diff --git a/lite/src/org/transdroid/core/app/settings/AboutSettings.java b/lite/src/org/transdroid/core/app/settings/SystemSettings.java similarity index 82% rename from lite/src/org/transdroid/core/app/settings/AboutSettings.java rename to lite/src/org/transdroid/core/app/settings/SystemSettings.java index 577f9fc9..3030af70 100644 --- a/lite/src/org/transdroid/core/app/settings/AboutSettings.java +++ b/lite/src/org/transdroid/core/app/settings/SystemSettings.java @@ -9,22 +9,22 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; /** - * Allows instantiation of the settings specified in R.xml.pref_about. + * Allows instantiation of the settings specified in R.xml.pref_system. * @author Eric Kok */ @EBean(scope = Scope.Singleton) -public class AboutSettings { +public class SystemSettings { @RootContext protected Context context; private SharedPreferences prefs; - protected AboutSettings(Context context) { + protected SystemSettings(Context context) { prefs = PreferenceManager.getDefaultSharedPreferences(context); } public boolean checkForUpdates() { - return prefs.getBoolean("about_checkupdates", true); + return prefs.getBoolean("system_checkupdates", true); } } diff --git a/lite/src/org/transdroid/core/gui/DetailsActivity.java b/lite/src/org/transdroid/core/gui/DetailsActivity.java index 5e57cfa3..68076526 100644 --- a/lite/src/org/transdroid/core/gui/DetailsActivity.java +++ b/lite/src/org/transdroid/core/gui/DetailsActivity.java @@ -17,6 +17,7 @@ import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.lists.LocalTorrent; +import org.transdroid.daemon.Daemon; import org.transdroid.daemon.IDaemonAdapter; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentDetails; @@ -30,6 +31,9 @@ import org.transdroid.daemon.task.GetTorrentDetailsTaskSuccessResult; import org.transdroid.daemon.task.RetrieveTask; import org.transdroid.daemon.task.RetrieveTaskSuccessResult; +import android.annotation.TargetApi; +import android.content.Intent; +import android.os.Build; import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragmentActivity; @@ -49,11 +53,17 @@ public class DetailsActivity extends SherlockFragmentActivity { // Details view components @FragmentById(R.id.torrent_details) - protected DetailsFagment fragmentDetails; + protected DetailsFragment fragmentDetails; @AfterViews protected void init() { + // We require a torrent to be specified; otherwise close the activity + if (torrent == null) { + finish(); + return; + } + // Simple action bar with up, torrent name as title and refresh button getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(torrent.getName()); @@ -62,11 +72,19 @@ public class DetailsActivity extends SherlockFragmentActivity { ServerSetting lastUsed = applicationSettings.getLastUsedServer(); currentConnection = lastUsed.createServerAdapter(); - // Load fine details and torrent files + // Show details and load fine stats and torrent files + fragmentDetails.updateTorrent(torrent); refreshTorrentDetails(); + refreshTorrentFiles(); } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + @OptionsItem(android.R.id.home) + protected void navigateUp() { + TorrentsActivity_.intent(this).flags(Intent.FLAG_ACTIVITY_CLEAR_TOP).start(); + } + @OptionsItem(R.id.action_refresh) protected void refreshScreen() { refreshTorrent(); @@ -92,6 +110,8 @@ public class DetailsActivity extends SherlockFragmentActivity { @Background protected void refreshTorrentDetails() { + if (!Daemon.supportsFineDetails(torrent.getDaemon())) + return; DaemonTaskResult result = GetTorrentDetailsTask.create(currentConnection, torrent).execute(); if (result instanceof GetTorrentDetailsTaskSuccessResult) { onTorrentDetailsRetrieved(((GetTorrentDetailsTaskSuccessResult) result).getTorrentDetails()); @@ -108,6 +128,8 @@ public class DetailsActivity extends SherlockFragmentActivity { @Background protected void refreshTorrentFiles() { + if (!Daemon.supportsFileListing(torrent.getDaemon())) + return; DaemonTaskResult result = GetFileListTask.create(currentConnection, torrent).execute(); if (result instanceof GetFileListTaskSuccessResult) { onTorrentFilesRetrieved(((GetFileListTaskSuccessResult) result).getFiles()); diff --git a/lite/src/org/transdroid/core/gui/DetailsFagment.java b/lite/src/org/transdroid/core/gui/DetailsFragment.java similarity index 93% rename from lite/src/org/transdroid/core/gui/DetailsFagment.java rename to lite/src/org/transdroid/core/gui/DetailsFragment.java index f05a8a3b..f1d85081 100644 --- a/lite/src/org/transdroid/core/gui/DetailsFagment.java +++ b/lite/src/org/transdroid/core/gui/DetailsFragment.java @@ -25,7 +25,7 @@ import com.actionbarsherlock.view.SherlockListView; * @author Eric Kok */ @EFragment(R.layout.fragment_details) -public class DetailsFagment extends SherlockFragment { +public class DetailsFragment extends SherlockFragment { // Local data @InstanceState @@ -44,8 +44,8 @@ public class DetailsFagment extends SherlockFragment { @AfterViews protected void init() { - detailsList.setAdapter(new DetailsAdapter()); - detailsList.setEmptyView(emptyText); // Shows a text that no torrent was selected yet + detailsList.setAdapter(new DetailsAdapter(getActivity())); + detailsList.setEmptyView(emptyText); if (torrent != null) updateTorrent(torrent); if (torrentDetails != null) @@ -104,7 +104,7 @@ public class DetailsFagment extends SherlockFragment { * Clear the screen by fully clearing the internal merge list (with header and other lists) */ public void clear() { - detailsList.setAdapter(new DetailsAdapter()); + ((DetailsAdapter)detailsList.getAdapter()).clear(); torrent = null; torrentDetails = null; torrentFiles = null; diff --git a/lite/src/org/transdroid/core/gui/TorrentsActivity.java b/lite/src/org/transdroid/core/gui/TorrentsActivity.java index cfd82a53..f4242fd5 100644 --- a/lite/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/lite/src/org/transdroid/core/gui/TorrentsActivity.java @@ -25,6 +25,8 @@ import org.transdroid.core.gui.navigation.Label; import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.navigation.StatusType; import org.transdroid.core.gui.navigation.StatusType.StatusTypeFilter; +import org.transdroid.core.gui.settings.MainSettingsActivity_; +import org.transdroid.daemon.Daemon; import org.transdroid.daemon.IDaemonAdapter; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.task.DaemonTaskFailureResult; @@ -68,6 +70,8 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @InstanceState boolean firstStart = true; private IDaemonAdapter currentConnection = null; + @InstanceState + protected boolean turleModeEnabled = false; // Torrents list components @FragmentById(R.id.torrent_list) @@ -75,7 +79,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Details view components @FragmentById(R.id.torrent_details) - protected DetailsFagment fragmentDetails; + protected DetailsFragment fragmentDetails; @AfterViews protected void init() { @@ -105,14 +109,12 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi return; } // Set this as selection in the action bar spinner; we can use the server setting key since we have stable ids - // TODO: Does this call the action bar item selection callback? + // TODO: Does this call the action bar item selection callback? And refreshes? getSupportActionBar().setSelectedNavigationItem(lastUsed.getOrder()); - // Handle any start up intents or instead just refresh the torrents list + // Handle any start up intents if (firstStart) { handleStartIntent(); - } else { - refreshTorrents(); } } @@ -120,7 +122,16 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @Override protected void onResume() { super.onResume(); - refreshTorrents(); + + // Refresh server settings + navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); + ServerSetting lastUsed = applicationSettings.getLastUsedServer(); + if (lastUsed == null) { + // Still no settings + return; + } + // There is a server now: select it to establish a connection + filterSelected(lastUsed); } @TargetApi(Build.VERSION_CODES.FROYO) @@ -138,6 +149,45 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi return true; } + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + super.onPrepareOptionsMenu(menu); + + // No connection yet; hide all menu options except settings + if (currentConnection == null) { + menu.findItem(R.id.action_add).setVisible(false); + menu.findItem(R.id.action_search).setVisible(false); + menu.findItem(R.id.action_rss).setVisible(false); + menu.findItem(R.id.action_enableturtle).setVisible(false); + menu.findItem(R.id.action_disableturtle).setVisible(false); + menu.findItem(R.id.action_refresh).setVisible(false); + menu.findItem(R.id.action_sort).setVisible(false); + menu.findItem(R.id.action_filter).setVisible(false); + menu.findItem(R.id.action_settings).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + menu.findItem(R.id.action_help).setVisible(true); + fragmentTorrents.updateConnectionStatus(false); + getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + return true; + } + + // There is a connection (read: settings to some server known) + menu.findItem(R.id.action_add).setVisible(true); + menu.findItem(R.id.action_search).setVisible(true); + menu.findItem(R.id.action_rss).setVisible(true); + boolean hasAltMode = Daemon.supportsSetAlternativeMode(currentConnection.getType()); + menu.findItem(R.id.action_enableturtle).setVisible(hasAltMode && !turleModeEnabled); + menu.findItem(R.id.action_disableturtle).setVisible(hasAltMode && turleModeEnabled); + menu.findItem(R.id.action_refresh).setVisible(true); + menu.findItem(R.id.action_sort).setVisible(true); + menu.findItem(R.id.action_filter).setVisible(true); + menu.findItem(R.id.action_settings).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); + menu.findItem(R.id.action_help).setVisible(false); + fragmentTorrents.updateConnectionStatus(true); + getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); + + return true; + } + /** * Called when an item in the action bar navigation spinner was selected */ @@ -211,7 +261,12 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @OptionsItem(R.id.action_refresh) protected void refreshScreen() { refreshTorrents(); - // TODO: Refresh TorentDetails and TorrentFiles as well + // TODO: Retrieve turtle mode status + } + + @OptionsItem(R.id.action_settings) + protected void openSettings() { + MainSettingsActivity_.intent(this).start(); } private void clearScreens() { diff --git a/lite/src/org/transdroid/core/gui/TorrentsFragment.java b/lite/src/org/transdroid/core/gui/TorrentsFragment.java index a62dd8d2..25ef7d28 100644 --- a/lite/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/lite/src/org/transdroid/core/gui/TorrentsFragment.java @@ -1,21 +1,28 @@ package org.transdroid.core.gui; import java.util.ArrayList; +import java.util.List; import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.Background; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.InstanceState; import org.androidannotations.annotations.ItemClick; import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; import org.transdroid.core.gui.lists.TorrentsAdapter; +import org.transdroid.core.gui.lists.TorrentsAdapter_; import org.transdroid.daemon.Torrent; import android.view.View; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; +import com.actionbarsherlock.view.ActionMode; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.SherlockListView; +import com.actionbarsherlock.view.SherlockListView.MultiChoiceModeListenerCompat; @EFragment(R.layout.fragment_torrents) public class TorrentsFragment extends SherlockFragment { @@ -23,21 +30,24 @@ public class TorrentsFragment extends SherlockFragment { // Local data @InstanceState protected ArrayList torrents = null; - + // Views @ViewById(R.id.torrent_list) protected SherlockListView torrentsList; @ViewById protected TextView emptyText; - + @ViewById + protected TextView nosettingsText; + @AfterViews protected void init() { - torrentsList.setAdapter(new TorrentsAdapter()); + torrentsList.setAdapter(TorrentsAdapter_.getInstance_(getActivity())); torrentsList.setEmptyView(emptyText); + torrentsList.setMultiChoiceModeListener(onTorrentsSelected); if (torrents != null) updateTorrents(torrents); } - + /** * Updates the list adapter to show a new list of torrent objects, replacing the old torrents completely * @param newTorrents The new, updated list of torrents @@ -49,7 +59,7 @@ public class TorrentsFragment extends SherlockFragment { torrentsList.setVisibility(View.GONE); emptyText.setVisibility(View.GONE); } else { - ((TorrentsAdapter)torrentsList.getAdapter()).update(newTorrents); + ((TorrentsAdapter) torrentsList.getAdapter()).update(newTorrents); // NOTE: This will also make visible again the list or empty view } } @@ -61,9 +71,79 @@ public class TorrentsFragment extends SherlockFragment { updateTorrents(null); } + private MultiChoiceModeListenerCompat onTorrentsSelected = new MultiChoiceModeListenerCompat() { + + @Override + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + // Show contextual action bar to start/stop/remove/etc. torrents in batch mode + mode.getMenuInflater().inflate(R.menu.fragment_torrents_cab, menu); + return true; + } + + @Override + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + + // Get checked torrents + List checked = new ArrayList(); + for (int i = 0; i < torrentsList.getCheckedItemPositions().size(); i++) { + if (torrentsList.getCheckedItemPositions().get(i)) + checked.add((Torrent) torrentsList.getAdapter().getItem(i)); + } + + // Execute the requested action + // TODO: Add the other actions + switch (item.getItemId()) { + case R.id.action_start: + startTorrents(checked); + mode.finish(); + return true; + default: + return false; + } + } + + @Override + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { + // TODO: Update title or otherwise show number of selected torrents? + } + + @Override + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + return false; + } + + @Override + public void onDestroyActionMode(ActionMode mode) { + } + + }; + @ItemClick(R.id.torrent_list) protected void torrentsListClicked(Torrent torrent) { - + DetailsActivity_.intent(getActivity()).torrent(torrent).start(); + } + + /** + * Updates the shown screen depending on whether we have a connection (so torrents can be shown) or not (in case we + * need to show a message suggesting help) + * @param hasAConnection True if the user has servers configured and therefor has a conenction that can be used + */ + public void updateConnectionStatus(boolean hasAConnection) { + if (!hasAConnection) { + clear(); + torrentsList.setVisibility(View.GONE); + emptyText.setVisibility(View.GONE); + nosettingsText.setVisibility(View.VISIBLE); + } else { + nosettingsText.setVisibility(View.GONE); + torrentsList.setVisibility(torrentsList.getAdapter().isEmpty()? View.GONE: View.VISIBLE); + emptyText.setVisibility(torrentsList.getAdapter().isEmpty()? View.VISIBLE: View.GONE); + } } - + + @Background + protected void startTorrents(List torrents) { + // TODO: Implement action + } + } diff --git a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java index adb3b573..11f8e986 100644 --- a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java @@ -1,10 +1,10 @@ package org.transdroid.core.gui.lists; +import java.util.ArrayList; import java.util.List; -import org.androidannotations.annotations.EBean; -import org.androidannotations.annotations.RootContext; import org.transdroid.core.R; +import org.transdroid.core.gui.navigation.FilterSeparatorView; import org.transdroid.core.gui.navigation.FilterSeparatorView_; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentFile; @@ -20,77 +20,110 @@ import com.commonsware.cwac.merge.MergeAdapter; * List adapter that holds a header view showing torrent details and show the list list contained by the torrent. * @author Eric Kok */ -@EBean public class DetailsAdapter extends MergeAdapter { - @RootContext - protected Context context; private TorrentDetailsView torrentDetailsView = null; - private TorrentFilesAdapter torrentFilesAdapter = null; + private FilterSeparatorView trackersSeparatorView = null; private SimpleListItemAdapter trackersAdapter = null; + private FilterSeparatorView errorsSeparatorView = null; private SimpleListItemAdapter errorsAdapter = null; + private FilterSeparatorView torrentFilesSeparatorView = null; + private TorrentFilesAdapter torrentFilesAdapter = null; + public DetailsAdapter(Context context) { + // Immediately bind the adapters, or the MergeAdapter will not be able to determine the view types and instead + // display nothing at all + + // Torrent details header + torrentDetailsView = TorrentDetailsView_.build(context); + torrentDetailsView.setVisibility(View.GONE); + addView(torrentDetailsView, true); + + // Trackers + trackersSeparatorView = FilterSeparatorView_.build(context).setText(context.getString(R.string.status_trackers)); + trackersSeparatorView.setVisibility(View.GONE); + addView(trackersSeparatorView, true); + this.trackersAdapter = new SimpleListItemAdapter(context, new ArrayList()); + addAdapter(trackersAdapter); + + // Tracker errors + errorsSeparatorView = FilterSeparatorView_.build(context).setText(context.getString(R.string.status_errors)); + errorsSeparatorView.setVisibility(View.GONE); + addView(errorsSeparatorView, true); + this.errorsAdapter = new SimpleListItemAdapter(context, new ArrayList()); + addAdapter(errorsAdapter); + + // Torrent files + torrentFilesSeparatorView = FilterSeparatorView_.build(context).setText(context.getString(R.string.status_files)); + torrentFilesSeparatorView.setVisibility(View.GONE); + addView(torrentFilesSeparatorView, true); + this.torrentFilesAdapter = new TorrentFilesAdapter(context, new ArrayList()); + addAdapter(torrentFilesAdapter); + + } + /** * Update the torrent data in the details header of this merge adapter * @param torrent The torrent for which detailed data is shown */ public void updateTorrent(Torrent torrent) { - if (this.torrentDetailsView == null) { - torrentDetailsView = TorrentDetailsView_.build(context); - addView(torrentDetailsView, false); - } torrentDetailsView.update(torrent); + torrentDetailsView.setVisibility(torrent == null? View.GONE: View.VISIBLE); } /** * Update the list of files contained in this torrent - * @param torrentFiles The new list of files + * @param torrentFiles The new list of files, or null if the list and header should be hidden */ public void updateTorrentFiles(List torrentFiles) { - if (this.torrentFilesAdapter == null && torrentFiles != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_files)), false); - this.torrentFilesAdapter = new TorrentFilesAdapter(context, torrentFiles); - addAdapter(torrentFilesAdapter); - } else if (this.torrentFilesAdapter != null && torrentFiles != null) { - this.torrentFilesAdapter.update(torrentFiles); + if (torrentFiles == null) { + torrentFilesAdapter.update(new ArrayList()); + torrentFilesSeparatorView.setVisibility(View.GONE); } else { - this.torrentFilesAdapter = null; + torrentFilesAdapter.update(torrentFiles); + torrentFilesSeparatorView.setVisibility(View.GONE); } } /** * Update the list of trackers - * @param trackers The new list of trackers known for this torrent + * @param trackers The new list of trackers known for this torrent, or null if the list and header should be hidden */ public void updateTrackers(List trackers) { - if (this.trackersAdapter == null && trackers != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_trackers)), false); - this.trackersAdapter = new SimpleListItemAdapter(context, trackers); - addAdapter(trackersAdapter); - } else if (this.trackersAdapter != null && trackers != null) { - this.trackersAdapter.update(trackers); + if (trackers == null) { + trackersAdapter.update(new ArrayList()); + trackersSeparatorView.setVisibility(View.GONE); } else { - this.trackersAdapter = null; + trackersAdapter.update(trackers); + trackersSeparatorView.setVisibility(View.GONE); } } /** * Update the list of errors - * @param errors The new list of errors known for this torrent + * @param errors The new list of errors known for this torrent, or null if the list and header should be hidden */ public void updateErrors(List errors) { - if (this.errorsAdapter == null && errors != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.status_errors)), false); - this.errorsAdapter = new SimpleListItemAdapter(context, errors); - addAdapter(errorsAdapter); - } else if (this.errorsAdapter != null && errors != null) { - this.errorsAdapter.update(errors); + if (errors == null) { + errorsAdapter.update(new ArrayList()); + errorsSeparatorView.setVisibility(View.GONE); } else { - this.errorsAdapter = null; + errorsAdapter.update(errors); + errorsSeparatorView.setVisibility(View.GONE); } } - protected class TorrentFilesAdapter extends BaseAdapter { + /** + * Clear currently visible torrent, including header and shown lists + */ + public void clear() { + updateTorrent(null); + updateTorrentFiles(null); + updateErrors(null); + updateTrackers(null); + } + + protected static class TorrentFilesAdapter extends BaseAdapter { private final Context context; private List items; diff --git a/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java index f44c86f5..43c92426 100644 --- a/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java @@ -69,8 +69,10 @@ public class SimpleListItemAdapter extends BaseAdapter { */ public static List wrapStringsList(List errorStrings) { ArrayList errors = new ArrayList(); - for (String errorString : errorStrings) { - errors.add(new SimpleStringItem(errorString)); + if (errorStrings != null) { + for (String errorString : errorStrings) { + errors.add(new SimpleStringItem(errorString)); + } } return errors; } diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java b/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java index 34123a99..c6347cee 100644 --- a/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentProgressBar.java @@ -18,8 +18,7 @@ import android.view.View; public class TorrentProgressBar extends View { private final float scale = getContext().getResources().getDisplayMetrics().density; - private final int MINIMUM_HEIGHT = (int) (2 * scale + 0.5f); - // private final int RIGHT_MARGIN = (int)(3 * scale + 0.5f); + private final int MINIMUM_HEIGHT = (int) (3 * scale + 0.5f); private int progress; private boolean isActive; @@ -77,7 +76,7 @@ public class TorrentProgressBar extends View { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int ws = MeasureSpec.getSize(widthMeasureSpec);// - RIGHT_MARGIN; + int ws = MeasureSpec.getSize(widthMeasureSpec); int hs = Math.max(getHeight(), MINIMUM_HEIGHT); setMeasuredDimension(ws, hs); } diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentView.java b/lite/src/org/transdroid/core/gui/lists/TorrentView.java index bf8ff662..897a6b0e 100644 --- a/lite/src/org/transdroid/core/gui/lists/TorrentView.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentView.java @@ -27,7 +27,7 @@ public class TorrentView extends CheckableRelativeLayout { protected TorrentProgressBar torrentProgressbar; public TorrentView(Context context) { - super(context, null); + super(context); } public void bind(Torrent torrent) { diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java b/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java index 1ebf2390..eeb17774 100644 --- a/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentsAdapter.java @@ -33,6 +33,11 @@ public class TorrentsAdapter extends BaseAdapter { notifyDataSetChanged(); } + @Override + public boolean hasStableIds() { + return true; + } + @Override public int getCount() { if (torrents == null) diff --git a/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java index dce00a47..0c7b97d1 100644 --- a/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/MainSettingsActivity.java @@ -45,7 +45,7 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { addPreferencesFromResource(R.xml.pref_main); findPreference("header_addserver").setOnPreferenceClickListener(onAddServer); findPreference("header_addwebsearch").setOnPreferenceClickListener(onAddWebsearch); - findPreference("header_rssfeed").setOnPreferenceClickListener(onAddRssfeed); + findPreference("header_addrssfeed").setOnPreferenceClickListener(onAddRssfeed); findPreference("header_background").setOnPreferenceClickListener(onBackgroundSettings); findPreference("header_system").setOnPreferenceClickListener(onSystemSettings); @@ -126,8 +126,7 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceClickListener onBackgroundSettings = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - OtherSettingsActivity_.intent(MainSettingsActivity.this).preferencesResourceID(R.xml.pref_notifications) - .start(); + NotificationSettingsActivity_.intent(MainSettingsActivity.this).start(); return true; } }; @@ -135,7 +134,7 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceClickListener onSystemSettings = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - OtherSettingsActivity_.intent(MainSettingsActivity.this).preferencesResourceID(R.xml.pref_about).start(); + SystemSettingsActivity_.intent(MainSettingsActivity.this).start(); return true; } }; diff --git a/lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java similarity index 63% rename from lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java rename to lite/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java index fdd62df7..29f9bdec 100644 --- a/lite/src/org/transdroid/core/gui/settings/OtherSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java @@ -2,7 +2,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.Extra; +import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; import android.os.Bundle; @@ -10,11 +10,8 @@ import android.os.Bundle; import com.actionbarsherlock.app.SherlockPreferenceActivity; @EActivity -public class OtherSettingsActivity extends SherlockPreferenceActivity { +public class NotificationSettingsActivity extends SherlockPreferenceActivity { - @Extra - protected int preferencesResourceID; - @Bean protected ApplicationSettings applicationSettings; @@ -23,8 +20,8 @@ public class OtherSettingsActivity extends SherlockPreferenceActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // Just load the preferences from XML, of which the ID is supplied as extra - addPreferencesFromResource(preferencesResourceID); + // Just load the notification-related preferences from XML + addPreferencesFromResource(R.xml.pref_notifications); } diff --git a/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java index e0e8e44c..b32b9e91 100644 --- a/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java @@ -3,6 +3,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsMenu; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; @@ -16,6 +17,7 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity; * @author Eric Kok */ @EActivity +@OptionsMenu(R.menu.activity_deleteableprefs) public class RssfeedSettingsActivity extends SherlockPreferenceActivity { @Extra diff --git a/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java index 6398d547..98551451 100644 --- a/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java @@ -3,6 +3,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsMenu; import org.transdroid.daemon.Daemon; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; @@ -21,6 +22,7 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity; * @author Eric Kok */ @EActivity +@OptionsMenu(R.menu.activity_deleteableprefs) public class ServerSettingsActivity extends SherlockPreferenceActivity { @Extra @@ -53,15 +55,17 @@ public class ServerSettingsActivity extends SherlockPreferenceActivity { findPreference("server_localnetwork").setKey("server_localnetwork_" + key); findPreference("server_folder").setKey("server_folder_" + key); findPreference("server_timeout").setKey("server_timeout_" + key); - findPreference("server_alamrfinished").setKey("server_alamrfinished_" + key); - findPreference("server_alarnew").setKey("server_alarnew_" + key); + findPreference("server_alarmfinished").setKey("server_alarmfinished_" + key); + findPreference("server_alarmnew").setKey("server_alarmnew_" + key); findPreference("server_os").setKey("server_os_" + key); findPreference("server_downloaddir").setKey("server_downloaddir_" + key); findPreference("server_ftpurl").setKey("server_ftpurl_" + key); findPreference("server_ftppass").setKey("server_ftppass_" + key); findPreference("server_sslenabled").setKey("server_sslenabled_" + key); findPreference("server_ssltrustall").setKey("server_ssltrustall_" + key); + findPreference("server_ssltrustall_" + key).setDependency("server_sslenabled_" + key); findPreference("server_ssltrustkey").setKey("server_ssltrustkey_" + key); + findPreference("server_ssltrustkey_" + key).setDependency("server_sslenabled_" + key); // Monitor preference changes getPreferenceScreen().setOnPreferenceChangeListener(onPreferenceChangeListener); @@ -70,6 +74,7 @@ public class ServerSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceChangeListener onPreferenceChangeListener = new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { + // TODO: This doesn't get called updatePreferenceAvailability(); return true; } diff --git a/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java new file mode 100644 index 00000000..20a9d611 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -0,0 +1,71 @@ +package org.transdroid.core.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.transdroid.core.R; +import org.transdroid.core.app.settings.ApplicationSettings; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +@EActivity +public class SystemSettingsActivity extends SherlockPreferenceActivity { + + protected static final String INSTALLHELP_URI = "http://www.transdroid.org/download/"; + + @Bean + protected ApplicationSettings applicationSettings; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Just load the system-related preferences from XML + addPreferencesFromResource(R.xml.pref_notifications); + + // Handle outgoing links + findPreference("system_sendlog").setOnPreferenceClickListener(onSendLogClick); + findPreference("system_installhelp").setOnPreferenceClickListener(onInstallHelpClick); + findPreference("system_changelog").setOnPreferenceClickListener(onChangeLogClick); + findPreference("system_about").setOnPreferenceClickListener(onAboutClick); + } + + private OnPreferenceClickListener onSendLogClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + // TODO: Implement error log collection and sending + return true; + } + }; + + private OnPreferenceClickListener onInstallHelpClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(INSTALLHELP_URI))); + return true; + } + }; + + private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + // TODO: Implement about change log screen + return true; + } + }; + + private OnPreferenceClickListener onAboutClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + // TODO: Implement about screen with app version, developer name and used open source libraries + return true; + } + }; + +} diff --git a/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java index 53194bcc..ae2e6fe9 100644 --- a/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java @@ -3,6 +3,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsMenu; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; @@ -16,6 +17,7 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity; * @author Eric Kok */ @EActivity +@OptionsMenu(R.menu.activity_deleteableprefs) public class WebsearchSettingsActivity extends SherlockPreferenceActivity { @Extra From ee824238d05197df50e4befd95b7b8be96573415 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 8 Mar 2013 18:56:39 +0100 Subject: [PATCH 08/60] Fixing the details fragment to show and with a proper layout of headers.\nStarting task execution. --- lite/res/layout/list_item_filter.xml | 4 +- lite/res/layout/list_item_separator.xml | 2 + lite/res/menu/fragment_details.xml | 2 +- lite/res/values/strings.xml | 14 ++++ lite/res/xml/pref_system.xml | 3 +- .../transdroid/core/gui/DetailsFragment.java | 42 ++++++++++ .../transdroid/core/gui/TorrentsActivity.java | 84 ++++++++++++++++++- .../transdroid/core/gui/TorrentsFragment.java | 7 ++ .../core/gui/lists/DetailsAdapter.java | 15 +++- .../core/gui/lists/TorrentDetailsView.java | 12 +++ .../gui/navigation/FilterSeparatorView.java | 7 +- .../gui/settings/SystemSettingsActivity.java | 2 +- 12 files changed, 178 insertions(+), 16 deletions(-) diff --git a/lite/res/layout/list_item_filter.xml b/lite/res/layout/list_item_filter.xml index 5dff7d2f..66f6ae72 100644 --- a/lite/res/layout/list_item_filter.xml +++ b/lite/res/layout/list_item_filter.xml @@ -2,8 +2,8 @@ diff --git a/lite/res/layout/list_item_separator.xml b/lite/res/layout/list_item_separator.xml index 8a48e729..65389da3 100644 --- a/lite/res/layout/list_item_separator.xml +++ b/lite/res/layout/list_item_separator.xml @@ -2,6 +2,8 @@ \ No newline at end of file diff --git a/lite/res/values/strings.xml b/lite/res/values/strings.xml index ccd9f810..43c447a3 100644 --- a/lite/res/values/strings.xml +++ b/lite/res/values/strings.xml @@ -84,6 +84,20 @@ New label Setting a label is not supported by your client + Torrent added (refreshing) + %1$s removed + %1$s removed and data deleted + %1$s resumed (refreshing) + %1$s stopped + %1$s started (refreshing) + %1$s paused + Torrents paused + Torrents resumed (refreshing) + Torrents stopped + Torrents started (refreshing) + Trackers updated + Torrent moved to \'%1$s\' + Torrent search Search for torrents diff --git a/lite/res/xml/pref_system.xml b/lite/res/xml/pref_system.xml index b186a063..8968dc62 100644 --- a/lite/res/xml/pref_system.xml +++ b/lite/res/xml/pref_system.xml @@ -10,8 +10,7 @@ - + android:summary="@string/pref_sendlog_info" /> torrents) { + // TODO Auto-generated method stub + + } + + @Override + public void pauseTorrents(List torrents) { + // TODO Auto-generated method stub + + } + + @Override + public void removeTorrents(List torrents, boolean withData) { + // TODO Auto-generated method stub + + } + + @Override + public void setLabels(List torrents) { + // TODO Auto-generated method stub + + } + } diff --git a/lite/src/org/transdroid/core/gui/TorrentsFragment.java b/lite/src/org/transdroid/core/gui/TorrentsFragment.java index 25ef7d28..afaba547 100644 --- a/lite/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/lite/src/org/transdroid/core/gui/TorrentsFragment.java @@ -146,4 +146,11 @@ public class TorrentsFragment extends SherlockFragment { // TODO: Implement action } + public interface TorrentsTasksExecutor { + void resumeTorrents(List torrents); + void pauseTorrents(List torrents); + void removeTorrents(List torrents, boolean withData); + void setLabels(List torrents); + } + } diff --git a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java index 11f8e986..ba60ee43 100644 --- a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java @@ -81,7 +81,7 @@ public class DetailsAdapter extends MergeAdapter { torrentFilesSeparatorView.setVisibility(View.GONE); } else { torrentFilesAdapter.update(torrentFiles); - torrentFilesSeparatorView.setVisibility(View.GONE); + torrentFilesSeparatorView.setVisibility(View.VISIBLE); } } @@ -95,7 +95,7 @@ public class DetailsAdapter extends MergeAdapter { trackersSeparatorView.setVisibility(View.GONE); } else { trackersAdapter.update(trackers); - trackersSeparatorView.setVisibility(View.GONE); + trackersSeparatorView.setVisibility(View.VISIBLE); } } @@ -109,10 +109,19 @@ public class DetailsAdapter extends MergeAdapter { errorsSeparatorView.setVisibility(View.GONE); } else { errorsAdapter.update(errors); - errorsSeparatorView.setVisibility(View.GONE); + errorsSeparatorView.setVisibility(View.VISIBLE); } } + /** + * The details adapter is empty if it is not showing any torrent (regardless of errors, trackers and files) + */ + @Override + public boolean isEmpty() { + //return torrentDetailsView.isBound(); + return false; + } + /** * Clear currently visible torrent, including header and shown lists */ diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java index c2975105..2245e4b7 100644 --- a/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java @@ -21,6 +21,8 @@ import android.widget.TextView; @EViewGroup(R.layout.fragment_details_header) public class TorrentDetailsView extends RelativeLayout { + private boolean isShowingData = false; + @ViewById protected TextView labelText, dateaddedText, uploadedText, uploadedunitText, ratioText, upspeedText, seedersText, downloadedunitText, downloadedText, totalsizeText, downspeedText, leechersText, statusText; @@ -35,6 +37,12 @@ public class TorrentDetailsView extends RelativeLayout { */ public void update(Torrent torrent) { + if (torrent == null) { + isShowingData = false; + return; + } + + isShowingData = true; LocalTorrent local = LocalTorrent.fromTorrent(torrent); // Set label text @@ -82,4 +90,8 @@ public class TorrentDetailsView extends RelativeLayout { } + public boolean isBound() { + return isShowingData ; + } + } diff --git a/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java b/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java index 9ea2a411..a26516dc 100644 --- a/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java +++ b/lite/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java @@ -3,7 +3,6 @@ package org.transdroid.core.gui.navigation; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; -import org.transdroid.core.gui.lists.SimpleListItem; import android.content.Context; import android.widget.LinearLayout; @@ -26,17 +25,13 @@ public class FilterSeparatorView extends LinearLayout { super(context); } - public void bind(SimpleListItem filterItem) { - separatorText.setText(text); - } - /** * Sets the text that will be shown in this separator (sub header) * @param text The new text to show * @return Itself, for convenience of method chaining */ public FilterSeparatorView setText(String text) { - this.text = text; + separatorText.setText(text); return this; } diff --git a/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java index 20a9d611..7f697f93 100644 --- a/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/lite/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -27,7 +27,7 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { super.onCreate(savedInstanceState); // Just load the system-related preferences from XML - addPreferencesFromResource(R.xml.pref_notifications); + addPreferencesFromResource(R.xml.pref_system); // Handle outgoing links findPreference("system_sendlog").setOnPreferenceClickListener(onSendLogClick); From d46bf03eebd8553efe0dde98702d3481c2b2d461 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 14 Mar 2013 17:34:19 +0100 Subject: [PATCH 09/60] Working on task execution and navigation list. --- android/res/values/changelog.xml | 10 + lite/res/drawable/loading_progress.xml | 5 + lite/res/layout/fragment_details.xml | 2 +- lite/res/layout/fragment_torrents.xml | 7 + lite/res/layout/list_item_navigation.xml | 22 ++ lite/res/menu/fragment_details.xml | 11 +- lite/res/values/strings.xml | 10 +- .../transdroid/core/gui/DetailsActivity.java | 143 ++++++++++-- .../transdroid/core/gui/DetailsFragment.java | 74 ++++-- .../core/gui/TorrentTasksExecutor.java | 16 ++ .../transdroid/core/gui/TorrentsActivity.java | 211 ++++++++++++------ .../transdroid/core/gui/TorrentsFragment.java | 109 ++++++--- .../core/gui/lists/DetailsAdapter.java | 9 - .../core/gui/lists/SimpleListItem.java | 1 + .../core/gui/lists/SimpleListItemAdapter.java | 2 +- .../core/gui/lists/TorrentDetailsView.java | 10 +- .../gui/navigation/FilterListAdapter.java | 30 ++- .../transdroid/core/gui/navigation/Label.java | 35 ++- .../core/gui/navigation/NavigationFilter.java | 27 +++ .../navigation/NavigationSelectionView.java | 52 +++++ .../core/gui/navigation/StatusType.java | 77 ++++++- 21 files changed, 702 insertions(+), 161 deletions(-) create mode 100644 lite/res/drawable/loading_progress.xml create mode 100644 lite/res/layout/list_item_navigation.xml create mode 100644 lite/src/org/transdroid/core/gui/TorrentTasksExecutor.java create mode 100644 lite/src/org/transdroid/core/gui/navigation/NavigationFilter.java create mode 100644 lite/src/org/transdroid/core/gui/navigation/NavigationSelectionView.java diff --git a/android/res/values/changelog.xml b/android/res/values/changelog.xml index 923175ba..49e661a5 100644 --- a/android/res/values/changelog.xml +++ b/android/res/values/changelog.xml @@ -1,6 +1,16 @@ +Transdroid 1.1.12\n +- Option to disable app update checking\n +- Transmission: support non-Western characters in directories\n +- Deluge: don\'t treat trackers errors as blocking\n +- Added Pirate Bay mirror search support\n +\n +Transdroid 1.1.11\n +- rTorrent: fix crash with creationtime and non-i8 dialect\n +- Fixed picking up local .torrent files\n +\n Transdroid 1.1.10\n - Updated translations (thanks to all translators)\n - Special thanks Tom Briden for the following contributions:\n diff --git a/lite/res/drawable/loading_progress.xml b/lite/res/drawable/loading_progress.xml new file mode 100644 index 00000000..df2175ef --- /dev/null +++ b/lite/res/drawable/loading_progress.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/lite/res/layout/fragment_details.xml b/lite/res/layout/fragment_details.xml index 6c17e9e2..d627b53b 100644 --- a/lite/res/layout/fragment_details.xml +++ b/lite/res/layout/fragment_details.xml @@ -23,6 +23,6 @@ android:text="@string/navigation_emptydetails" android:gravity="center" android:textIsSelectable="false" - android:visibility="gone" /> + android:visibility="visible" /> \ No newline at end of file diff --git a/lite/res/layout/fragment_torrents.xml b/lite/res/layout/fragment_torrents.xml index 634058ed..869766dc 100644 --- a/lite/res/layout/fragment_torrents.xml +++ b/lite/res/layout/fragment_torrents.xml @@ -11,6 +11,13 @@ android:listSelector="@drawable/selectable_background_transdroid" android:visibility="gone" /> + + + + + + + + + \ No newline at end of file diff --git a/lite/res/menu/fragment_details.xml b/lite/res/menu/fragment_details.xml index aea9239e..5b32d61d 100644 --- a/lite/res/menu/fragment_details.xml +++ b/lite/res/menu/fragment_details.xml @@ -13,12 +13,17 @@ + android:showAsAction="ifRoom" + android:title="@string/action_start"> + + + + + Settings Help Start + Normal start + Force start Stop Resume Pause @@ -39,6 +41,9 @@ Download using (S)FTP Remove settings + Transdroid allows you to monitor and manage the torrent client you run at home or on your seedbox. Setting things up can be a bit tricky, but we offer step-by-step guides and promise it\'ll be worth it! + Connected, but no torrent are active within the current filter + Select a torrent to view its details SERVERS STATUS LABELS @@ -47,10 +52,8 @@ Uploading Active Inactive - Connected, but no torrent are active within the current filter - Select a torrent to view its details - Transdroid allows you to monitor and manage the torrent client you run at home or on your seedbox. Setting things up can be a bit tricky, but we offer step-by-step guides and promise it\'ll be worth it! + Status: %1%s Waiting to check… Verifying local data… Waiting to download %s @@ -96,6 +99,7 @@ Torrents stopped Torrents started (refreshing) Trackers updated + Label set to \'%1$s\' Torrent moved to \'%1$s\' Torrent search diff --git a/lite/src/org/transdroid/core/gui/DetailsActivity.java b/lite/src/org/transdroid/core/gui/DetailsActivity.java index 68076526..0f597715 100644 --- a/lite/src/org/transdroid/core/gui/DetailsActivity.java +++ b/lite/src/org/transdroid/core/gui/DetailsActivity.java @@ -24,12 +24,21 @@ import org.transdroid.daemon.TorrentDetails; import org.transdroid.daemon.TorrentFile; import org.transdroid.daemon.task.DaemonTaskFailureResult; import org.transdroid.daemon.task.DaemonTaskResult; +import org.transdroid.daemon.task.DaemonTaskSuccessResult; import org.transdroid.daemon.task.GetFileListTask; import org.transdroid.daemon.task.GetFileListTaskSuccessResult; import org.transdroid.daemon.task.GetTorrentDetailsTask; import org.transdroid.daemon.task.GetTorrentDetailsTaskSuccessResult; +import org.transdroid.daemon.task.PauseTask; +import org.transdroid.daemon.task.RemoveTask; +import org.transdroid.daemon.task.ResumeTask; import org.transdroid.daemon.task.RetrieveTask; import org.transdroid.daemon.task.RetrieveTaskSuccessResult; +import org.transdroid.daemon.task.SetDownloadLocationTask; +import org.transdroid.daemon.task.SetLabelTask; +import org.transdroid.daemon.task.SetTrackersTask; +import org.transdroid.daemon.task.StartTask; +import org.transdroid.daemon.task.StopTask; import android.annotation.TargetApi; import android.content.Intent; @@ -40,7 +49,7 @@ import com.actionbarsherlock.app.SherlockFragmentActivity; @EActivity(R.layout.activity_details) @OptionsMenu(R.menu.activity_details) -public class DetailsActivity extends SherlockFragmentActivity { +public class DetailsActivity extends SherlockFragmentActivity implements TorrentTasksExecutor { @Extra @InstanceState @@ -102,12 +111,6 @@ public class DetailsActivity extends SherlockFragmentActivity { } } - @UiThread - protected void onTorrentsRetrieved(List torrents, List labels) { - // Update the details fragment - fragmentDetails.perhapsUpdateTorrent(torrents); - } - @Background protected void refreshTorrentDetails() { if (!Daemon.supportsFineDetails(torrent.getDaemon())) @@ -120,12 +123,6 @@ public class DetailsActivity extends SherlockFragmentActivity { } } - @UiThread - protected void onTorrentDetailsRetrieved(TorrentDetails torrentDetails) { - // Update the details fragment with the new fine details for the shown torrent - fragmentDetails.updateTorrentDetails(torrentDetails); - } - @Background protected void refreshTorrentFiles() { if (!Daemon.supportsFileListing(torrent.getDaemon())) @@ -138,12 +135,106 @@ public class DetailsActivity extends SherlockFragmentActivity { } } + @Background + @Override + public void resumeTorrent(Torrent torrent) { + torrent.mimicResume(); + DaemonTaskResult result = ResumeTask.create(currentConnection, torrent).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_resumed); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void pauseTorrent(Torrent torrent) { + torrent.mimicPause(); + DaemonTaskResult result = PauseTask.create(currentConnection, torrent).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_paused); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void startTorrent(Torrent torrent, boolean forced) { + torrent.mimicStart(); + DaemonTaskResult result = StartTask.create(currentConnection, torrent, forced).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_started); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void stopTorrent(Torrent torrent) { + torrent.mimicStop(); + DaemonTaskResult result = StopTask.create(currentConnection, torrent).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_stopped); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void removeTorrent(Torrent torrent, boolean withData) { + DaemonTaskResult result = RemoveTask.create(currentConnection, torrent, withData).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, withData ? R.string.result_removed_with_data + : R.string.result_removed); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void updateLabel(Torrent torrent, String newLabel) { + torrent.mimicNewLabel(newLabel); + DaemonTaskResult result = SetLabelTask.create(currentConnection, torrent, newLabel).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_labelset, newLabel); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void updateTrackers(Torrent torrent, List newTrackers) { + DaemonTaskResult result = SetTrackersTask.create(currentConnection, torrent, newTrackers).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_trackersupdated); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + + @Background + @Override + public void updateLocation(Torrent torrent, String newLocation) { + DaemonTaskResult result = SetDownloadLocationTask.create(currentConnection, torrent, newLocation).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_locationset, newLocation); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } + } + @UiThread - protected void onTorrentFilesRetrieved(List torrentFiles) { - // Update the details fragment with the newly retrieved list of files - fragmentDetails.updateTorrentFiles(new ArrayList(torrentFiles)); + protected void onTaskSucceeded(DaemonTaskSuccessResult result, int successMessageId, String... messageParams) { + // TODO: Properly report this success + Toast.makeText(this, getString(successMessageId, (Object[]) messageParams), Toast.LENGTH_LONG).show(); } - + @UiThread protected void onCommunicationError(DaemonTaskFailureResult result) { // TODO: Properly report this error @@ -151,4 +242,22 @@ public class DetailsActivity extends SherlockFragmentActivity { Toast.LENGTH_LONG).show(); } + @UiThread + protected void onTorrentsRetrieved(List torrents, List labels) { + // Update the details fragment + fragmentDetails.perhapsUpdateTorrent(torrents); + } + + @UiThread + protected void onTorrentDetailsRetrieved(TorrentDetails torrentDetails) { + // Update the details fragment with the new fine details for the shown torrent + fragmentDetails.updateTorrentDetails(torrentDetails); + } + + @UiThread + protected void onTorrentFilesRetrieved(List torrentFiles) { + // Update the details fragment with the newly retrieved list of files + fragmentDetails.updateTorrentFiles(new ArrayList(torrentFiles)); + } + } diff --git a/lite/src/org/transdroid/core/gui/DetailsFragment.java b/lite/src/org/transdroid/core/gui/DetailsFragment.java index bb4738a4..685a5527 100644 --- a/lite/src/org/transdroid/core/gui/DetailsFragment.java +++ b/lite/src/org/transdroid/core/gui/DetailsFragment.java @@ -17,6 +17,7 @@ import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentDetails; import org.transdroid.daemon.TorrentFile; +import android.view.View; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; @@ -50,7 +51,6 @@ public class DetailsFragment extends SherlockFragment { protected void init() { detailsList.setAdapter(new DetailsAdapter(getActivity())); - detailsList.setEmptyView(emptyText); if (torrent != null) updateTorrent(torrent); if (torrentDetails != null) @@ -68,6 +68,9 @@ public class DetailsFragment extends SherlockFragment { clear(); this.torrent = newTorrent; ((DetailsAdapter) detailsList.getAdapter()).updateTorrent(newTorrent); + // Make the list (with detials header) visible + detailsList.setVisibility(View.VISIBLE); + emptyText.setVisibility(View.INVISIBLE); // Also update the available actions in the action bar getActivity().supportInvalidateOptionsMenu(); } @@ -112,7 +115,9 @@ public class DetailsFragment extends SherlockFragment { * Clear the screen by fully clearing the internal merge list (with header and other lists) */ public void clear() { - ((DetailsAdapter)detailsList.getAdapter()).clear(); + detailsList.setAdapter(new DetailsAdapter(getActivity())); + detailsList.setVisibility(View.INVISIBLE); + emptyText.setVisibility(View.VISIBLE); torrent = null; torrentDetails = null; torrentFiles = null; @@ -136,20 +141,59 @@ public class DetailsFragment extends SherlockFragment { menu.findItem(R.id.action_updatetrackers).setVisible(setTrackers); } - - @OptionsItem(R.id.action_start) - protected void startTorrent() { - + + @OptionsItem(R.id.action_resume) + protected void resumeTorrent() { + getTasksExecutor().resumeTorrent(torrent); } - - public interface DetailsTasksExecutor { - void resumeTorrent(Torrent torrent); - void pauseTorrent(Torrent torrent); - void startTorrent(Torrent torrent); - void stopTorrent(Torrent torrent); - void removeTorrent(Torrent torrent, boolean withData); - void setLabel(Torrent torrent); - void updateTrackers(Torrent torrent); + + @OptionsItem(R.id.action_pause) + protected void pauseTorrent() { + getTasksExecutor().pauseTorrent(torrent); + } + + @OptionsItem(R.id.action_start_default) + protected void startTorrentDefault() { + getTasksExecutor().startTorrent(torrent, false); + } + + @OptionsItem(R.id.action_start_forced) + protected void startTorrentForced() { + getTasksExecutor().startTorrent(torrent, true); + } + + @OptionsItem(R.id.action_stop) + protected void stopTorrent() { + getTasksExecutor().stopTorrent(torrent); + } + + @OptionsItem(R.id.action_remove_default) + protected void removeTorrentDefault() { + getTasksExecutor().removeTorrent(torrent, false); + } + + @OptionsItem(R.id.action_remove_withdata) + protected void removeTorrentWithData() { + getTasksExecutor().removeTorrent(torrent, true); + } + + @OptionsItem(R.id.action_setlabel) + protected void setLabel() { + // TODO: Show label selection dialog + } + + @OptionsItem(R.id.action_updatetrackers) + protected void updateTrackers() { + // TODO: Show trackers edit dialog + } + + /** + * Returns the object responsible for executing torrent tasks against a connected server + * @return The executor for tasks on some torrent + */ + private TorrentTasksExecutor getTasksExecutor() { + // NOTE: Assumes the activity implements all the required torrent tasks + return (TorrentTasksExecutor) getActivity(); } } diff --git a/lite/src/org/transdroid/core/gui/TorrentTasksExecutor.java b/lite/src/org/transdroid/core/gui/TorrentTasksExecutor.java new file mode 100644 index 00000000..c8bc7e55 --- /dev/null +++ b/lite/src/org/transdroid/core/gui/TorrentTasksExecutor.java @@ -0,0 +1,16 @@ +package org.transdroid.core.gui; + +import java.util.List; + +import org.transdroid.daemon.Torrent; + +public interface TorrentTasksExecutor { + void resumeTorrent(Torrent torrent); + void pauseTorrent(Torrent torrent); + void startTorrent(Torrent torrent, boolean forced); + void stopTorrent(Torrent torrent); + void removeTorrent(Torrent torrent, boolean withData); + void updateLabel(Torrent torrent, String newLabel); + void updateTrackers(Torrent torrent, List newTrackers); + void updateLocation(Torrent torrent, String newLocation); +} \ No newline at end of file diff --git a/lite/src/org/transdroid/core/gui/TorrentsActivity.java b/lite/src/org/transdroid/core/gui/TorrentsActivity.java index d8cc073c..0493cc99 100644 --- a/lite/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/lite/src/org/transdroid/core/gui/TorrentsActivity.java @@ -17,16 +17,14 @@ import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.ServerSetting; -import org.transdroid.core.gui.DetailsFragment.DetailsTasksExecutor; -import org.transdroid.core.gui.TorrentsFragment.TorrentsTasksExecutor; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.core.gui.navigation.FilterListAdapter; import org.transdroid.core.gui.navigation.FilterListAdapter_; -import org.transdroid.core.gui.navigation.Label; +import org.transdroid.core.gui.navigation.NavigationFilter; import org.transdroid.core.gui.navigation.NavigationHelper; +import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; import org.transdroid.core.gui.navigation.StatusType; -import org.transdroid.core.gui.navigation.StatusType.StatusTypeFilter; import org.transdroid.core.gui.settings.MainSettingsActivity_; import org.transdroid.daemon.Daemon; import org.transdroid.daemon.IDaemonAdapter; @@ -34,9 +32,19 @@ import org.transdroid.daemon.Torrent; import org.transdroid.daemon.task.DaemonTaskFailureResult; import org.transdroid.daemon.task.DaemonTaskResult; import org.transdroid.daemon.task.DaemonTaskSuccessResult; +import org.transdroid.daemon.task.GetStatsTask; +import org.transdroid.daemon.task.GetStatsTaskSuccessResult; +import org.transdroid.daemon.task.PauseTask; +import org.transdroid.daemon.task.RemoveTask; import org.transdroid.daemon.task.ResumeTask; import org.transdroid.daemon.task.RetrieveTask; import org.transdroid.daemon.task.RetrieveTaskSuccessResult; +import org.transdroid.daemon.task.SetAlternativeModeTask; +import org.transdroid.daemon.task.SetDownloadLocationTask; +import org.transdroid.daemon.task.SetLabelTask; +import org.transdroid.daemon.task.SetTrackersTask; +import org.transdroid.daemon.task.StartTask; +import org.transdroid.daemon.task.StopTask; import android.annotation.TargetApi; import android.app.SearchManager; @@ -56,7 +64,7 @@ import com.actionbarsherlock.widget.SearchView; @EActivity(R.layout.activity_torrents) @OptionsMenu(R.menu.activity_torrents) -public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener, DetailsTasksExecutor, TorrentsTasksExecutor { +public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener, TorrentTasksExecutor, NavigationFilterManager { // Navigation components @Bean @@ -75,6 +83,8 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi boolean firstStart = true; private IDaemonAdapter currentConnection = null; @InstanceState + protected NavigationFilter currentFilter = null; + @InstanceState protected boolean turleModeEnabled = false; // Torrents list components @@ -91,7 +101,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Set up navigation, with an action bar spinner and possibly (if room) with a filter list getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); getSupportActionBar().setHomeButtonEnabled(false); - navigationSpinnerAdapter = FilterListAdapter_.getInstance_(this); + navigationSpinnerAdapter = FilterListAdapter_.getInstance_(this).setNavigationFilterManager(this); // Servers are always added to the action bar spinner navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); @@ -240,21 +250,35 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Update connection to the newly selected server and refresh currentConnection = server.createServerAdapter(); + applicationSettings.setLastUsedServer(server); clearScreens(); refreshTorrents(); + return; } - if (item instanceof StatusTypeFilter) { - // TODO: Update the torrent list view - } - - if (item instanceof Label) { - // TODO: Update the torrent list view + // Status type or label selection - both of which are navigation filters + if (item instanceof NavigationFilter) { + currentFilter = (NavigationFilter) item; + fragmentTorrents.applyFilter(currentFilter); + // Clear the details view + if (fragmentDetails != null) { + fragmentDetails.clear(); + } } } + @Override + public String getActiveFilterText() { + return currentFilter.getName(); + } + + @Override + public String getActiveServerText() { + return currentConnection.getSettings().getName(); + } + /** * If required, add torrents, switch to a specific server, etc. */ @@ -265,7 +289,17 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @OptionsItem(R.id.action_refresh) protected void refreshScreen() { refreshTorrents(); - // TODO: Retrieve turtle mode status + getAdditionalStats(); + } + + @OptionsItem(R.id.action_enableturtle) + protected void enableTurtleMode() { + updateTurtleMode(true); + } + + @OptionsItem(R.id.action_disableturtle) + protected void disableTurtleMode() { + updateTurtleMode(false); } @OptionsItem(R.id.action_settings) @@ -291,28 +325,25 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi } } - @UiThread - protected void onTorrentsRetrieved(List torrents, List labels) { - // Report the newly retrieved list of torrents to the torrents fragment - fragmentTorrents.updateTorrents(new ArrayList(torrents)); - // Update the details fragment if the currently shown torrent is in the newly retrieved list - if (fragmentDetails != null) { - fragmentDetails.perhapsUpdateTorrent(torrents); + @Background + protected void getAdditionalStats() { + DaemonTaskResult result = GetStatsTask.create(currentConnection).execute(); + if (result instanceof GetStatsTaskSuccessResult) { + onTurtleModeRetrieved(((GetStatsTaskSuccessResult) result).isAlternativeModeEnabled()); + } else { + onCommunicationError((DaemonTaskFailureResult)result); } - // TODO: Update local list of labels - } - - @UiThread - protected void onTaskSucceeded(DaemonTaskSuccessResult result, int successMessageId, Torrent target) { - // TODO: Properly report this success - Toast.makeText(this, getString(successMessageId, target.getName()),Toast.LENGTH_LONG).show(); } - - @UiThread - protected void onCommunicationError(DaemonTaskFailureResult result) { - // TODO: Properly report this error - Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), - Toast.LENGTH_LONG).show(); + + @Background + protected void updateTurtleMode(boolean enable) { + DaemonTaskResult result = SetAlternativeModeTask.create(currentConnection, enable).execute(); + if (result instanceof GetStatsTaskSuccessResult) { + // Success; no need to retrieve it again - just update the visual indicator + onTurtleModeRetrieved(enable); + } else { + onCommunicationError((DaemonTaskFailureResult)result); + } } @Background @@ -321,70 +352,122 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi torrent.mimicResume(); DaemonTaskResult result = ResumeTask.create(currentConnection, torrent).execute(); if (result instanceof DaemonTaskResult) { - onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_resumed, torrent); + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_resumed); } else { onCommunicationError((DaemonTaskFailureResult) result); } } + @Background @Override public void pauseTorrent(Torrent torrent) { - // TODO Auto-generated method stub - + torrent.mimicPause(); + DaemonTaskResult result = PauseTask.create(currentConnection, torrent).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_paused); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override - public void startTorrent(Torrent torrent) { - // TODO Auto-generated method stub - + public void startTorrent(Torrent torrent, boolean forced) { + torrent.mimicStart(); + DaemonTaskResult result = StartTask.create(currentConnection, torrent, forced).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_started); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override public void stopTorrent(Torrent torrent) { - // TODO Auto-generated method stub - + torrent.mimicStop(); + DaemonTaskResult result = StopTask.create(currentConnection, torrent).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_stopped); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override public void removeTorrent(Torrent torrent, boolean withData) { - // TODO Auto-generated method stub - + DaemonTaskResult result = RemoveTask.create(currentConnection, torrent, withData).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, withData ? R.string.result_removed_with_data + : R.string.result_removed); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override - public void setLabel(Torrent torrent) { - // TODO Auto-generated method stub - + public void updateLabel(Torrent torrent, String newLabel) { + torrent.mimicNewLabel(newLabel); + DaemonTaskResult result = SetLabelTask.create(currentConnection, torrent, newLabel).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_labelset, newLabel); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override - public void updateTrackers(Torrent torrent) { - // TODO Auto-generated method stub - + public void updateTrackers(Torrent torrent, List newTrackers) { + DaemonTaskResult result = SetTrackersTask.create(currentConnection, torrent, newTrackers).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_trackersupdated); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } + @Background @Override - public void resumeTorrents(List torrents) { - // TODO Auto-generated method stub - + public void updateLocation(Torrent torrent, String newLocation) { + DaemonTaskResult result = SetDownloadLocationTask.create(currentConnection, torrent, newLocation).execute(); + if (result instanceof DaemonTaskResult) { + onTaskSucceeded((DaemonTaskSuccessResult) result, R.string.result_locationset, newLocation); + } else { + onCommunicationError((DaemonTaskFailureResult) result); + } } - @Override - public void pauseTorrents(List torrents) { - // TODO Auto-generated method stub - + @UiThread + protected void onTaskSucceeded(DaemonTaskSuccessResult result, int successMessageId, String... messageParams) { + // TODO: Properly report this success + Toast.makeText(this, getString(successMessageId, (Object[]) messageParams), Toast.LENGTH_LONG).show(); } - @Override - public void removeTorrents(List torrents, boolean withData) { - // TODO Auto-generated method stub - + @UiThread + protected void onCommunicationError(DaemonTaskFailureResult result) { + // TODO: Properly report this error + Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), + Toast.LENGTH_LONG).show(); } - @Override - public void setLabels(List torrents) { - // TODO Auto-generated method stub - + @UiThread + protected void onTorrentsRetrieved(List torrents, List labels) { + // Report the newly retrieved list of torrents to the torrents fragment + fragmentTorrents.updateTorrents(new ArrayList(torrents)); + // Update the details fragment if the currently shown torrent is in the newly retrieved list + if (fragmentDetails != null) { + fragmentDetails.perhapsUpdateTorrent(torrents); + } + // TODO: Update local list of labels + } + + @UiThread + protected void onTurtleModeRetrieved(boolean turtleModeEnabled) { + turleModeEnabled = turtleModeEnabled; + supportInvalidateOptionsMenu(); } } diff --git a/lite/src/org/transdroid/core/gui/TorrentsFragment.java b/lite/src/org/transdroid/core/gui/TorrentsFragment.java index afaba547..d0bbeaa1 100644 --- a/lite/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/lite/src/org/transdroid/core/gui/TorrentsFragment.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import org.androidannotations.annotations.AfterViews; -import org.androidannotations.annotations.Background; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.InstanceState; import org.androidannotations.annotations.ItemClick; @@ -12,9 +11,12 @@ import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; import org.transdroid.core.gui.lists.TorrentsAdapter; import org.transdroid.core.gui.lists.TorrentsAdapter_; +import org.transdroid.core.gui.navigation.NavigationFilter; +import org.transdroid.core.gui.navigation.StatusType; import org.transdroid.daemon.Torrent; import android.view.View; +import android.widget.ProgressBar; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; @@ -30,6 +32,12 @@ public class TorrentsFragment extends SherlockFragment { // Local data @InstanceState protected ArrayList torrents = null; + @InstanceState + protected NavigationFilter currentFilter = null; + @InstanceState + protected boolean hasAConnection = false; + @InstanceState + protected boolean isLoading = false; // Views @ViewById(R.id.torrent_list) @@ -38,11 +46,12 @@ public class TorrentsFragment extends SherlockFragment { protected TextView emptyText; @ViewById protected TextView nosettingsText; + @ViewById + protected ProgressBar loadingProgress; @AfterViews protected void init() { torrentsList.setAdapter(TorrentsAdapter_.getInstance_(getActivity())); - torrentsList.setEmptyView(emptyText); torrentsList.setMultiChoiceModeListener(onTorrentsSelected); if (torrents != null) updateTorrents(torrents); @@ -54,14 +63,7 @@ public class TorrentsFragment extends SherlockFragment { */ public void updateTorrents(ArrayList newTorrents) { torrents = newTorrents; - if (newTorrents == null) { - // Hide list adapter as well as empty text - torrentsList.setVisibility(View.GONE); - emptyText.setVisibility(View.GONE); - } else { - ((TorrentsAdapter) torrentsList.getAdapter()).update(newTorrents); - // NOTE: This will also make visible again the list or empty view - } + applyFilter(null); // Resets the filter and shown list of torrents } /** @@ -71,6 +73,26 @@ public class TorrentsFragment extends SherlockFragment { updateTorrents(null); } + /** + * Apply a filter on the current list of all torrents, showing the appropriate sublist of torrents only + * @param currentFilter + */ + public void applyFilter(NavigationFilter currentFilter) { + this.currentFilter = currentFilter; + if (this.currentFilter == null) + this.currentFilter = StatusType.getShowAllType(getActivity()); + if (torrents != null) { + // Build a local list of torrents that match the selected navigation filter + ArrayList filteredTorrents = new ArrayList(); + for (Torrent torrent : torrents) { + if (currentFilter.matches(torrent)) + filteredTorrents.add(torrent); + } + ((TorrentsAdapter) torrentsList.getAdapter()).update(filteredTorrents); + } + updateViewVisibility(); + } + private MultiChoiceModeListenerCompat onTorrentsSelected = new MultiChoiceModeListenerCompat() { @Override @@ -91,10 +113,33 @@ public class TorrentsFragment extends SherlockFragment { } // Execute the requested action - // TODO: Add the other actions switch (item.getItemId()) { - case R.id.action_start: - startTorrents(checked); + case R.id.action_resume: + for (Torrent torrent : checked) { + getTasksExecutor().resumeTorrent(torrent); + } + mode.finish(); + return true; + case R.id.action_pause: + for (Torrent torrent : checked) { + getTasksExecutor().pauseTorrent(torrent); + } + mode.finish(); + return true; + case R.id.action_remove_default: + for (Torrent torrent : checked) { + getTasksExecutor().removeTorrent(torrent, false); + } + mode.finish(); + return true; + case R.id.action_remove_withdata: + for (Torrent torrent : checked) { + getTasksExecutor().removeTorrent(torrent, true); + } + mode.finish(); + return true; + case R.id.action_setlabel: + // TODO: Open label selection dialogue mode.finish(); return true; default: @@ -126,31 +171,37 @@ public class TorrentsFragment extends SherlockFragment { /** * Updates the shown screen depending on whether we have a connection (so torrents can be shown) or not (in case we * need to show a message suggesting help) - * @param hasAConnection True if the user has servers configured and therefor has a conenction that can be used + * @param hasAConnection True if the user has servers configured and therefore has a connection that can be used */ public void updateConnectionStatus(boolean hasAConnection) { - if (!hasAConnection) { + this.hasAConnection = hasAConnection; + if (!hasAConnection) clear(); + updateViewVisibility(); + } + + private void updateViewVisibility() { + if (!hasAConnection) { torrentsList.setVisibility(View.GONE); emptyText.setVisibility(View.GONE); + loadingProgress.setVisibility(View.GONE); nosettingsText.setVisibility(View.VISIBLE); - } else { - nosettingsText.setVisibility(View.GONE); - torrentsList.setVisibility(torrentsList.getAdapter().isEmpty()? View.GONE: View.VISIBLE); - emptyText.setVisibility(torrentsList.getAdapter().isEmpty()? View.VISIBLE: View.GONE); + return; } + boolean isEmpty = torrents == null || torrentsList.getAdapter().isEmpty(); + nosettingsText.setVisibility(View.GONE); + torrentsList.setVisibility(!isLoading && !isEmpty? View.GONE: View.VISIBLE); + loadingProgress.setVisibility(isLoading? View.VISIBLE: View.GONE); + emptyText.setVisibility(!isLoading && isEmpty? View.VISIBLE: View.GONE); } - @Background - protected void startTorrents(List torrents) { - // TODO: Implement action + /** + * Returns the object responsible for executing torrent tasks against a connected server + * @return The executor for tasks on some torrent + */ + private TorrentTasksExecutor getTasksExecutor() { + // NOTE: Assumes the activity implements all the required torrent tasks + return (TorrentTasksExecutor) getActivity(); } - public interface TorrentsTasksExecutor { - void resumeTorrents(List torrents); - void pauseTorrents(List torrents); - void removeTorrents(List torrents, boolean withData); - void setLabels(List torrents); - } - } diff --git a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java index ba60ee43..77460a11 100644 --- a/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/DetailsAdapter.java @@ -113,15 +113,6 @@ public class DetailsAdapter extends MergeAdapter { } } - /** - * The details adapter is empty if it is not showing any torrent (regardless of errors, trackers and files) - */ - @Override - public boolean isEmpty() { - //return torrentDetailsView.isBound(); - return false; - } - /** * Clear currently visible torrent, including header and shown lists */ diff --git a/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java index 605aa3ca..0128a20d 100644 --- a/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItem.java @@ -1,5 +1,6 @@ package org.transdroid.core.gui.lists; + /** * Represents a filter item as shown in the navigation list or spinner. * diff --git a/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java index 43c92426..f402ab53 100644 --- a/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java +++ b/lite/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java @@ -45,7 +45,7 @@ public class SimpleListItemAdapter extends BaseAdapter { @Override public View getView(int position, View convertView, ViewGroup parent) { SimpleListItemView filterItemView; - if (convertView == null) { + if (convertView == null || !(convertView instanceof SimpleListItemView)) { filterItemView = SimpleListItemView_.build(context); } else { filterItemView = (SimpleListItemView) convertView; diff --git a/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java index 2245e4b7..db714017 100644 --- a/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java +++ b/lite/src/org/transdroid/core/gui/lists/TorrentDetailsView.java @@ -21,8 +21,6 @@ import android.widget.TextView; @EViewGroup(R.layout.fragment_details_header) public class TorrentDetailsView extends RelativeLayout { - private boolean isShowingData = false; - @ViewById protected TextView labelText, dateaddedText, uploadedText, uploadedunitText, ratioText, upspeedText, seedersText, downloadedunitText, downloadedText, totalsizeText, downspeedText, leechersText, statusText; @@ -38,11 +36,9 @@ public class TorrentDetailsView extends RelativeLayout { public void update(Torrent torrent) { if (torrent == null) { - isShowingData = false; return; } - isShowingData = true; LocalTorrent local = LocalTorrent.fromTorrent(torrent); // Set label text @@ -67,7 +63,7 @@ public class TorrentDetailsView extends RelativeLayout { } else { dateaddedText.setVisibility(View.INVISIBLE); } - statusText.setText(local.getProgressStatusEta(getResources())); + statusText.setText(getResources().getString(R.string.status_status, local.getProgressStatusEta(getResources()))); ratioText.setText(getResources().getString(R.string.status_ratio, local.getRatioString())); // TODO: Implement separate numbers of seeders and leechers seedersText.setText(getResources().getString(R.string.status_peers, torrent.getPeersSendingToUs(), @@ -90,8 +86,4 @@ public class TorrentDetailsView extends RelativeLayout { } - public boolean isBound() { - return isShowingData ; - } - } diff --git a/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java b/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java index d155e801..98a365a9 100644 --- a/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java +++ b/lite/src/org/transdroid/core/gui/navigation/FilterListAdapter.java @@ -7,9 +7,12 @@ import org.androidannotations.annotations.RootContext; import org.transdroid.core.R; import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.core.gui.lists.SimpleListItemAdapter; -import org.transdroid.core.gui.navigation.FilterSeparatorView_; +import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.SpinnerAdapter; import com.commonsware.cwac.merge.MergeAdapter; @@ -19,14 +22,25 @@ import com.commonsware.cwac.merge.MergeAdapter; * @author Eric Kok */ @EBean -public class FilterListAdapter extends MergeAdapter { +public class FilterListAdapter extends MergeAdapter implements SpinnerAdapter { @RootContext protected Context context; private SimpleListItemAdapter serverItems = null; private SimpleListItemAdapter statusTypeItems = null; private SimpleListItemAdapter labelItems = null; + private NavigationFilterManager navigationFilterManager; + /** + * Stores which screen, or manager, handles navigation selection and display + * @param manager The navigation manager, which knows about the currently selected filter and server + * @return Itself, for method chaining + */ + public FilterListAdapter setNavigationFilterManager(NavigationFilterManager manager) { + this.navigationFilterManager = manager; + return this; + } + /** * Update the list of available servers * @param servers The new list of available servers @@ -75,4 +89,16 @@ public class FilterListAdapter extends MergeAdapter { } } + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + NavigationSelectionView filterItemView; + if (convertView == null || !(convertView instanceof NavigationSelectionView)) { + filterItemView = NavigationSelectionView_.build(context).setNavigationFilterManager(navigationFilterManager); + } else { + filterItemView = (NavigationSelectionView) convertView; + } + filterItemView.bind(); + return filterItemView; + } + } diff --git a/lite/src/org/transdroid/core/gui/navigation/Label.java b/lite/src/org/transdroid/core/gui/navigation/Label.java index 2a27e6b6..748d3a7e 100644 --- a/lite/src/org/transdroid/core/gui/navigation/Label.java +++ b/lite/src/org/transdroid/core/gui/navigation/Label.java @@ -1,12 +1,16 @@ package org.transdroid.core.gui.navigation; import org.transdroid.core.gui.lists.SimpleListItem; +import org.transdroid.daemon.Torrent; + +import android.os.Parcel; +import android.os.Parcelable; /** * Represents some label that is active or available on the server. * @author Eric Kok */ -public class Label implements SimpleListItem { +public class Label implements SimpleListItem, NavigationFilter { private final String name; @@ -19,4 +23,33 @@ public class Label implements SimpleListItem { return this.name; } + @Override + public boolean matches(Torrent torrent) { + return torrent.getLabelName() != null && torrent.getLabelName().equals(name); + } + + private Label(Parcel in) { + this.name = in.readString(); + } + + public static final Parcelable.Creator
    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 D;?mo? literal 0 HcmV?d00001 diff --git a/core/libs/ormlite-core-4.24.jar b/core/libs/ormlite-core-4.24.jar new file mode 100644 index 0000000000000000000000000000000000000000..a9ab582bb27a7da15c160a06fba235e55b346262 GIT binary patch literal 216486 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

    0E!9b$& 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

      dH4Z&6H31#=Gq{%B;eGsmG*a5o&ip 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 literal 0 HcmV?d00001 diff --git a/core/res/drawable-mdpi/ic_action_website.png b/core/res/drawable-mdpi/ic_action_website.png new file mode 100644 index 0000000000000000000000000000000000000000..41b56ec926032a9b020b7051cae5a07b7cf8ff8d GIT binary patch literal 1842 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

      j<(xDrq%>}x_OTIa0dTU@|3 1pe9XFcLlNGCaS`R0 zom+J**YT|cb?JU~iqgRDMkfz=o!cXgZIv6@wR?6PzY_mz|H0sDd+Bs)=a|>>V|r^L zHFrDLwDpgy3}RzFQ4jtW`pVaKw;_A3)deS{Mo%SvIGUQJr~G7Ra&F zI)bEYoCj_}ZH2tX@VAx~Ez;i@V74eUa}^Cdwk5#_26ycnO6mWZE5P zw1pI(2#!@(88-PdRGpo;xL8oNY<;%py*?__%HWs!;?IxI#gPN&TqmwL%?;!M^<{|T z&*Bk5#-ZQ{r;(4|ri12{9j6}>Zbxc1gy5k*+dmCIo+ozn9!`+*aBZOY?#DAnc~Nt`=LUtU^B4MaoLgOmNylOR z8#QIQ#)1G#NFaLU)59hV{XtCG#q#I`&21+6q#}x;0EH(s+*{POrQ@x3HCx>Xeic99 z?w2}!E+7Sd`C(<C{r^RbY5V8hO4+r;(mzPh5Z7*O?wgz}=#g67z)Uo9hYZfa)iu8;)>Q8(#&drCev zpcBWQ`~}60w!our!u$M(?45=px5Jw>Nq>1kFT_YSpp0Eb=`PO0>Xf(}f359X@#Z7D%B8_B-vcqE)wQUoz0&dSWp%puAGAD#x=2|Eu#D`mQu#s( z{uf(g+V1r2NtulfaC-W9zR&k2W&3r@)r}u!`(Ipr$XQU=j8ysZe3T# lgWyD4g$wY?h;s=*T>z}91AnP{Y1c-AFQ{2$mxl4$?{ literal 0 HcmV?d00001 diff --git a/core/res/layout-w600dp/activity_torrents.xml b/core/res/layout-w600dp/activity_torrents.xml index da228be0..a06281b6 100644 --- a/core/res/layout-w600dp/activity_torrents.xml +++ b/core/res/layout-w600dp/activity_torrents.xml @@ -8,7 +8,7 @@ android:baselineAligned="false" tools:context=".TorrentsActivity" > - - + + diff --git a/core/res/layout/fragment_about.xml b/core/res/layout/fragment_about.xml new file mode 100644 index 00000000..56bf496b --- /dev/null +++ b/core/res/layout/fragment_about.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/res/layout/fragment_details.xml b/core/res/layout/fragment_details.xml index d627b53b..1aaefcce 100644 --- a/core/res/layout/fragment_details.xml +++ b/core/res/layout/fragment_details.xml @@ -13,6 +13,14 @@ android:dividerHeight="0dip" android:visibility="gone" /> + + + android:indeterminateDrawable="@drawable/loading_progress" + android:visibility="visible" /> + + + + \ No newline at end of file diff --git a/core/res/values-sw500dp/bools.xml b/core/res/values-sw500dp/bools.xml new file mode 100644 index 00000000..4a4c7757 --- /dev/null +++ b/core/res/values-sw500dp/bools.xml @@ -0,0 +1,5 @@ + + + + false + \ No newline at end of file diff --git a/core/res/values/bools.xml b/core/res/values/bools.xml new file mode 100644 index 00000000..2a472937 --- /dev/null +++ b/core/res/values/bools.xml @@ -0,0 +1,5 @@ + + + + true + \ No newline at end of file diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml index 734dca59..12b0e1cb 100644 --- a/core/res/values/strings.xml +++ b/core/res/values/strings.xml @@ -1,7 +1,5 @@ - - Transdroid Add From file @@ -40,6 +38,7 @@ Remote play in VLC Download using (S)FTP Remove settings + Visit transdroid.org Transdroid allows you to monitor and manage the torrent client you run at home or on your seedbox. Setting things up can be a bit tricky, but we offer step-by-step guides and promise it\'ll be worth it! Connected, but no torrent are active within the current filter @@ -179,27 +178,6 @@ View install guides Recent changes About - - Error during communication; check your connection - Internal error building request - Error parsing server response (please check your settings) - Web interface not connected to a running daemon - Access denied (please check your settings) - Can\'t read .torrent file - Error while parsing the RSS feed - This URL is not well-formed - Your web search URL is invalid: - Input is not a valid IP address or host name - Port number is always numeric - Directory paths end with a / or \ - Timeout can not be empty and is a positive number - The RSS feed item didn\'t provide an URL enclosure or link tag pointing to the .torrent file - The RSS feed item does not provide a link to browse to - URL is not a (valid) RSS feed - SD card not available to read/write - File does not seem to contain Transdroid settings - There is no settings file found - BitComet Bitflu 1.2+ @@ -258,5 +236,31 @@ 43200 86400 + + Error during communication; check your connection + Internal error building request + Error parsing server response (please check your settings) + Web interface not connected to a running daemon + Access denied (please check your settings) + Can\'t read .torrent file + Error while parsing the RSS feed + This URL is not well-formed + Your web search URL is invalid: + Input is not a valid IP address or host name + Port number is always numeric + Directory paths end with a / or \ + Timeout can not be empty and is a positive number + The RSS feed item didn\'t provide an URL enclosure or link tag pointing to the .torrent file + The RSS feed item does not provide a link to browse to + URL is not a (valid) RSS feed + SD card not available to read/write + File does not seem to contain Transdroid settings + There is no settings file found + + Transdroid + \u00A9 Eric Kok, 2312 development + Published under GNU General Public License v3 + Manage your torrents from your Android device + LIBRARIES \ No newline at end of file diff --git a/core/src/org/transdroid/core/app/settings/ServerSetting.java b/core/src/org/transdroid/core/app/settings/ServerSetting.java index 3070c730..f1c47cff 100644 --- a/core/src/org/transdroid/core/app/settings/ServerSetting.java +++ b/core/src/org/transdroid/core/app/settings/ServerSetting.java @@ -207,16 +207,23 @@ public class ServerSetting implements SimpleListItem { // Other objects are never equal to this return false; } - + + /** + * Returns the appropriate daemon adapter to which tasks can be executed, in accordance with this server's settings + * @return An IDaemonAdapter instance of the specific torrent client daemon type + */ public IDaemonAdapter createServerAdapter() { + return type.createAdapter(convertToDaemonSettings()); + } + + private DaemonSettings convertToDaemonSettings() { // Convert local server settings into an old-style DaemonSetting object // The local integer key is converted to the idString string // TODO: Add localaddress and localnetwork to DaemonSettings, or solve properly rework the Connect library // handling of settings - DaemonSettings daemonSettings = new DaemonSettings(name, type, address, port, ssl, sslTrustAll, sslTrustKey, + return new DaemonSettings(name, type, address, port, ssl, sslTrustAll, sslTrustKey, folder, useAuthentication, username, password, extraPass, os, downloadDir, ftpUrl, ftpPassword, timeout, alarmOnFinishedDownload, alarmOnNewTorrent, Integer.toString(key), isAutoGenerated); - return type.createAdapter(daemonSettings); } } diff --git a/core/src/org/transdroid/core/gui/AboutFragment.java b/core/src/org/transdroid/core/gui/AboutFragment.java new file mode 100644 index 00000000..6a336bc5 --- /dev/null +++ b/core/src/org/transdroid/core/gui/AboutFragment.java @@ -0,0 +1,42 @@ +package org.transdroid.core.gui; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.EFragment; +import org.androidannotations.annotations.OptionsItem; +import org.androidannotations.annotations.OptionsMenu; + +import android.app.Dialog; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.Window; + +import com.actionbarsherlock.app.SherlockDialogFragment; + +/** + * Fragment that shows info about the application developer and used open source libraries. + * @author Eric Kok + */ +@EFragment(resName="fragment_about") +@OptionsMenu(resName="fragment_about") +public class AboutFragment extends SherlockDialogFragment { + + @AfterViews + protected void init() { + // TODO: Add list of used open source libraries + } + + @OptionsItem(resName="action_visitwebsite") + protected void visitWebsite() { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://transdroid.org"))); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + // Allow presenting of this fragment as a dialog + Dialog dialog = super.onCreateDialog(savedInstanceState); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + return dialog; + } + +} diff --git a/core/src/org/transdroid/core/gui/DetailsActivity.java b/core/src/org/transdroid/core/gui/DetailsActivity.java index 2e92a39b..bf5974ca 100644 --- a/core/src/org/transdroid/core/gui/DetailsActivity.java +++ b/core/src/org/transdroid/core/gui/DetailsActivity.java @@ -103,7 +103,9 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent @Background protected void refreshTorrent() { + fragmentDetails.updateIsLoading(true); DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); + fragmentDetails.updateIsLoading(false); if (result instanceof RetrieveTaskSuccessResult) { onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); } else { diff --git a/core/src/org/transdroid/core/gui/DetailsFragment.java b/core/src/org/transdroid/core/gui/DetailsFragment.java index 1e363ce0..10eaf5f2 100644 --- a/core/src/org/transdroid/core/gui/DetailsFragment.java +++ b/core/src/org/transdroid/core/gui/DetailsFragment.java @@ -18,6 +18,7 @@ import org.transdroid.daemon.TorrentDetails; import org.transdroid.daemon.TorrentFile; import android.view.View; +import android.widget.ProgressBar; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; @@ -25,7 +26,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.SherlockListView; /** - * Fragment that shown detailed statistics about some torrent. These come from some already fetched {@link Torrent} + * Fragment that shows detailed statistics about some torrent. These come from some already fetched {@link Torrent} * object, but it also retrieves further detailed statistics. * @author Eric Kok */ @@ -40,12 +41,16 @@ public class DetailsFragment extends SherlockFragment { protected TorrentDetails torrentDetails = null; @InstanceState protected ArrayList torrentFiles = null; + @InstanceState + protected boolean isLoadingTorrent = false; // Views @ViewById(resName="details_list") protected SherlockListView detailsList; @ViewById protected TextView emptyText; + @ViewById + protected ProgressBar loadingProgress; @AfterViews protected void init() { @@ -68,9 +73,10 @@ public class DetailsFragment extends SherlockFragment { clear(); this.torrent = newTorrent; ((DetailsAdapter) detailsList.getAdapter()).updateTorrent(newTorrent); - // Make the list (with detials header) visible + // Make the list (with details header) visible detailsList.setVisibility(View.VISIBLE); - emptyText.setVisibility(View.INVISIBLE); + emptyText.setVisibility(isLoadingTorrent? View.INVISIBLE: View.VISIBLE); + loadingProgress.setVisibility(!isLoadingTorrent? View.VISIBLE: View.INVISIBLE); // Also update the available actions in the action bar getActivity().supportInvalidateOptionsMenu(); } @@ -122,7 +128,17 @@ public class DetailsFragment extends SherlockFragment { torrentDetails = null; torrentFiles = null; } - + + /** + * Updates the shown screen depending on whether the torrent is loading + * @param isLoading True if the torrent is (re)loading, false otherwise + */ + public void updateIsLoading(boolean isLoading) { + this.isLoadingTorrent = isLoading; + if (isLoadingTorrent) + clear(); + } + @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index 3c6a5878..dd45f2a1 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -19,6 +19,7 @@ import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.lists.SimpleListItem; +import org.transdroid.core.gui.log.Log; import org.transdroid.core.gui.navigation.*; import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; import org.transdroid.core.gui.settings.*; @@ -323,7 +324,9 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @Background protected void refreshTorrents() { + fragmentTorrents.updateIsLoading(true); DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); + fragmentTorrents.updateIsLoading(false); if (result instanceof RetrieveTaskSuccessResult) { onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); } else { @@ -454,6 +457,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @UiThread protected void onCommunicationError(DaemonTaskFailureResult result) { + Log.i(this, result.getException().toString()); // TODO: Properly report this error Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), Toast.LENGTH_LONG).show(); diff --git a/core/src/org/transdroid/core/gui/TorrentsFragment.java b/core/src/org/transdroid/core/gui/TorrentsFragment.java index 4101c736..0a046aad 100644 --- a/core/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/core/src/org/transdroid/core/gui/TorrentsFragment.java @@ -7,6 +7,7 @@ import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.InstanceState; import org.androidannotations.annotations.ItemClick; +import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; import org.transdroid.core.gui.lists.*; @@ -172,10 +173,20 @@ public class TorrentsFragment extends SherlockFragment { this.hasAConnection = hasAConnection; if (!hasAConnection) clear(); - updateViewVisibility(); } - - private void updateViewVisibility() { + + /** + * Updates the shown screen depending on whether the torrents are loading + * @param isLoading True if the list of torrents is (re)loading, false otherwise + */ + public void updateIsLoading(boolean isLoading) { + this.isLoading = isLoading; + if (isLoading) + clear(); + } + + @UiThread + protected void updateViewVisibility() { if (!hasAConnection) { torrentsList.setVisibility(View.GONE); emptyText.setVisibility(View.GONE); diff --git a/core/src/org/transdroid/core/gui/log/DatabaseHelper.java b/core/src/org/transdroid/core/gui/log/DatabaseHelper.java new file mode 100644 index 00000000..d95cd00a --- /dev/null +++ b/core/src/org/transdroid/core/gui/log/DatabaseHelper.java @@ -0,0 +1,51 @@ +package org.transdroid.core.gui.log; + +import java.sql.SQLException; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.util.Log; + +import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; +import com.j256.ormlite.support.ConnectionSource; +import com.j256.ormlite.table.TableUtils; + +/** + * Helper to access the database to access persisting objects. + * @author Eric Kok + */ +public class DatabaseHelper extends OrmLiteSqliteOpenHelper { + + private static final String DATABASE_NAME = "transdroid.db"; + private static final int DATABASE_VERSION = 1; + + public DatabaseHelper(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) { + try { + TableUtils.createTable(connectionSource, ErrorLogEntry.class); + } catch (SQLException e) { + Log.e(org.transdroid.core.gui.log.Log.LOG_NAME, "Could not create new table for ErrorLogEntry", e); + } + } + + @Override + public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, + int newVersion) { + try { + switch (oldVersion) { + case 1: + TableUtils.createTable(connectionSource, ErrorLogEntry.class); + /*case 1: + etc...*/ + } + + } catch (SQLException e) { + Log.e(org.transdroid.core.gui.log.Log.LOG_NAME, "Could not upgrade the table for ErrorLogEntry", e); + } + } + +} diff --git a/core/src/org/transdroid/core/gui/log/ErrorLogEntry.java b/core/src/org/transdroid/core/gui/log/ErrorLogEntry.java new file mode 100644 index 00000000..b14656a2 --- /dev/null +++ b/core/src/org/transdroid/core/gui/log/ErrorLogEntry.java @@ -0,0 +1,92 @@ +package org.transdroid.core.gui.log; + +import java.util.Date; + +import android.os.Parcel; +import android.os.Parcelable; + +import com.j256.ormlite.field.DatabaseField; +import com.j256.ormlite.table.DatabaseTable; + +/** + * Represents an error log entry to be registered in the database. + * @author Eric Kok + */ +@DatabaseTable(tableName = "ErrorLogEntry") +public class ErrorLogEntry implements Parcelable { + + public static final String ID = "logId"; + public static final String DATEANDTIME = "dateAndTime"; + + @DatabaseField(id = true, columnName = ID) + private Integer logId; + @DatabaseField(columnName = DATEANDTIME) + private Date dateAndTime; + @DatabaseField + private Integer priority; + @DatabaseField + private String tag; + @DatabaseField + private String message; + + public ErrorLogEntry() { + } + + public ErrorLogEntry(Integer priority, String tag, String message) { + this.dateAndTime = new Date(); + this.priority = priority; + this.tag = tag; + this.message = message; + } + + public Integer getLogId() { + return logId; + } + + public Date getDateAndTime() { + return dateAndTime; + } + + public Integer getPriority() { + return priority; + } + + public String getTag() { + return tag; + } + + public String getMessage() { + return message; + } + + public int describeContents() { + return 0; + } + + public void writeToParcel(Parcel out, int flags) { + out.writeInt(logId); + out.writeLong(dateAndTime.getTime()); + out.writeInt(priority); + out.writeString(tag); + out.writeString(message); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public ErrorLogEntry createFromParcel(Parcel in) { + return new ErrorLogEntry(in); + } + + public ErrorLogEntry[] newArray(int size) { + return new ErrorLogEntry[size]; + } + }; + + private ErrorLogEntry(Parcel in) { + logId = in.readInt(); + dateAndTime = new Date(in.readLong()); + priority = in.readInt(); + tag = in.readString(); + message = in.readString(); + } + +} diff --git a/core/src/org/transdroid/core/gui/log/ErrorLogSender.java b/core/src/org/transdroid/core/gui/log/ErrorLogSender.java new file mode 100644 index 00000000..26fcc129 --- /dev/null +++ b/core/src/org/transdroid/core/gui/log/ErrorLogSender.java @@ -0,0 +1,73 @@ +package org.transdroid.core.gui.log; + +import java.sql.SQLException; +import java.util.List; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.OrmLiteDao; +import org.transdroid.core.R; +import org.transdroid.core.app.settings.ServerSetting; +import org.transdroid.core.gui.navigation.NavigationHelper; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Intent; + +import com.j256.ormlite.dao.Dao; + +@EBean +public class ErrorLogSender { + + @Bean + protected NavigationHelper navigationHelper; + @OrmLiteDao(helper = DatabaseHelper.class, model = ErrorLogEntry.class) + protected Dao errorLogDao; + + public void collectAndSendLog(final Activity callingActivity, final ServerSetting serverSetting) { + + try { + + // Prepare an email with error logging information + StringBuilder body = new StringBuilder(); + body.append("Please describe your problem:\n\n\n"); + body.append("\n"); + body.append(navigationHelper.getAppNameAndVersion()); + body.append("\n"); + body.append(serverSetting.getType().toString()); + body.append(" settings: "); + body.append(serverSetting.getHumanReadableIdentifier()); + body.append("\n\nConnection and error log:"); + + // Print the individual error log messages as stored in the database + List all = errorLogDao.queryBuilder().orderBy(ErrorLogEntry.ID, true).query(); + for (ErrorLogEntry errorLogEntry : all) { + body.append("\n"); + body.append(errorLogEntry.getLogId()); + body.append(" -- "); + body.append(errorLogEntry.getDateAndTime()); + body.append(" -- "); + body.append(errorLogEntry.getPriority()); + body.append(" -- "); + body.append(errorLogEntry.getMessage()); + } + + Intent target = new Intent(Intent.ACTION_SEND); + target.setType("message/rfc822"); + target.putExtra(Intent.EXTRA_EMAIL, new String[] { "transdroid.org@gmail.com" }); + target.putExtra(Intent.EXTRA_SUBJECT, "Transdroid error report"); + target.putExtra(Intent.EXTRA_TEXT, body.toString()); + try { + callingActivity.startActivity(Intent.createChooser(target, + callingActivity.getString(R.string.pref_sendlog)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + } catch (ActivityNotFoundException e) { + Log.i(callingActivity, "Tried to send error log, but there is no email app installed."); + } + + } catch (SQLException e) { + Log.e(callingActivity, "Cannot read the error log to build an error report to send: " + e.toString()); + } + + } + +} diff --git a/core/src/org/transdroid/core/gui/log/Log.java b/core/src/org/transdroid/core/gui/log/Log.java new file mode 100644 index 00000000..809374ca --- /dev/null +++ b/core/src/org/transdroid/core/gui/log/Log.java @@ -0,0 +1,54 @@ +package org.transdroid.core.gui.log; + +import java.sql.SQLException; +import java.util.Date; + +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.EBean.Scope; +import org.androidannotations.annotations.OrmLiteDao; + +import android.content.Context; + +import com.j256.ormlite.dao.Dao; +import com.j256.ormlite.stmt.DeleteBuilder; + +/** + * Application-wide logging class that registers entries in the database (for a certain time). + * @author Eric Kok + */ +@EBean(scope = Scope.Singleton) +public class Log { + + public static final String LOG_NAME = "Transdroid"; + private static final long MAX_LOG_AGE = 15 * 60 * 1000; // 15 minutes + + @OrmLiteDao(helper = DatabaseHelper.class, model = ErrorLogEntry.class) + Dao errorLogDao; + + protected void log(String logName, int priority, String message) { + android.util.Log.println(priority, LOG_NAME, message); + try { + // Store this log message to the database + errorLogDao.create(new ErrorLogEntry(priority, logName, message)); + // Truncate the error log + DeleteBuilder db = errorLogDao.deleteBuilder(); + db.setWhere(db.where().le(ErrorLogEntry.DATEANDTIME, new Date(new Date().getTime() - MAX_LOG_AGE))); + errorLogDao.delete(db.prepare()); + } catch (SQLException e) { + android.util.Log.e(LOG_NAME, "Cannot write log message to database: " + e.toString()); + } + } + + public static void e(Context caller, String message) { + Log_.getInstance_(caller).log(caller.getClass().toString(), android.util.Log.ERROR, message); + } + + public static void i(Context caller, String message) { + Log_.getInstance_(caller).log(caller.getClass().toString(), android.util.Log.INFO, message); + } + + public static void d(Context caller, String message) { + Log_.getInstance_(caller).log(caller.getClass().toString(), android.util.Log.DEBUG, message); + } + +} diff --git a/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java b/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java new file mode 100644 index 00000000..43451eca --- /dev/null +++ b/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java @@ -0,0 +1,53 @@ +package org.transdroid.core.gui.navigation; + +import org.androidannotations.annotations.AfterViews; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; +import org.transdroid.core.gui.log.Log; + +import android.content.Context; +import android.support.v4.app.DialogFragment; +import android.support.v4.app.FragmentTransaction; + +import com.actionbarsherlock.app.SherlockFragmentActivity; + +@EActivity(resName = "activity_dialogholder") +public class DialogHolderActivity extends SherlockFragmentActivity { + + @Extra + protected String dialogType; + + /** + * Use this method to show some dialog; it will show the dialog as full screen fragment on smaller devices. Use the + * DialogFragment's class here only; a new instance will be created by this holder activity. + */ + public static void showDialog(Context context, Class dialogType) { + DialogHolderActivity_.intent(context).start(); + } + + @AfterViews + public void init() { + try { + // Instantiate an instance of the requested dialog + DialogFragment dialog = (DialogFragment) Class.forName(dialogType).newInstance(); + // Determine if the dialog should be shown as full size screen + boolean isSmall = NavigationHelper_.getInstance_(this).isSmallScreen(); + if (!isSmall) { + // Show as normal dialog + dialog.show(this.getSupportFragmentManager(), "about_dialog"); + } else { + // Small device, so show the fragment full screen + FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction(); + // Note: the fragment is not added to the back stack, as this activity already is + ft.add(android.R.id.content, dialog).commit(); + } + } catch (InstantiationException e) { + Log.e(this, "Tried to show a dialog of type " + dialogType + ", but that cannot be instantiated."); + } catch (IllegalAccessException e) { + Log.e(this, "Tried to show a dialog of type " + dialogType + ", but it is not accessible."); + } catch (ClassNotFoundException e) { + Log.e(this, "Tried to show a dialog of type " + dialogType + ", but that class doesn't exist."); + } + } + +} diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java index 0d71a040..cb271715 100644 --- a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java +++ b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -2,9 +2,12 @@ package org.transdroid.core.gui.navigation; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; +import org.transdroid.core.R; import android.annotation.TargetApi; import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; @EBean @@ -13,6 +16,31 @@ public class NavigationHelper { @RootContext protected Context context; + /** + * Whether any search-related UI components should be shown in the interface. At the moment returns false only if we + * run as Transdroid Lite version. + * @return True if search is enabled, false otherwise + */ + public String getAppNameAndVersion() { + String appName = context.getString(R.string.app_name); + try { + PackageInfo m = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); + return appName + " " + m.versionName + " (" + m.versionCode + ")"; + } catch (NameNotFoundException e) { + return appName; + } + } + + /** + * Returns whether the device is considered small (i.e. a phone) rather than large (i.e. a tablet). Can, for example, + * be used to determine if a dialog should be shown full screen. Currently is true if the device's smallest + * dimension is 500 dip. + * @return True if the app runs on a small device, false otherwise + */ + public boolean isSmallScreen() { + return context.getResources().getBoolean(R.bool.small_screen); + } + /** * Whether any search-related UI components should be shown in the interface. At the moment returns false only if we * run as Transdroid Lite version. diff --git a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java index 7f697f93..bcb29689 100644 --- a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -4,12 +4,16 @@ import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.gui.AboutFragment; +import org.transdroid.core.gui.log.ErrorLogSender; +import org.transdroid.core.gui.navigation.DialogHolderActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; +import android.widget.Toast; import com.actionbarsherlock.app.SherlockPreferenceActivity; @@ -20,6 +24,8 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { @Bean protected ApplicationSettings applicationSettings; + @Bean + protected ErrorLogSender errorLogSender; @SuppressWarnings("deprecation") @Override @@ -39,7 +45,7 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceClickListener onSendLogClick = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - // TODO: Implement error log collection and sending + errorLogSender.collectAndSendLog(SystemSettingsActivity.this, applicationSettings.getLastUsedServer()); return true; } }; @@ -55,7 +61,8 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - // TODO: Implement about change log screen + // TODO: Implement change log screen + Toast.makeText(SystemSettingsActivity.this, "TODO: Implement change log screen", Toast.LENGTH_LONG).show(); return true; } }; @@ -63,7 +70,7 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { private OnPreferenceClickListener onAboutClick = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - // TODO: Implement about screen with app version, developer name and used open source libraries + DialogHolderActivity.showDialog(SystemSettingsActivity.this, AboutFragment.class); return true; } }; From 4ae16a14d3651aff7aec14416122da8619b90fac Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Wed, 20 Mar 2013 18:02:26 +0100 Subject: [PATCH 17/60] Small fixes in dialog instantiation. --- .../transdroid/core/gui/navigation/DialogHolderActivity.java | 2 +- full/AndroidManifest.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java b/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java index 43451eca..55f94950 100644 --- a/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java +++ b/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java @@ -22,7 +22,7 @@ public class DialogHolderActivity extends SherlockFragmentActivity { * DialogFragment's class here only; a new instance will be created by this holder activity. */ public static void showDialog(Context context, Class dialogType) { - DialogHolderActivity_.intent(context).start(); + DialogHolderActivity_.intent(context).dialogType(dialogType.getName()).start(); } @AfterViews diff --git a/full/AndroidManifest.xml b/full/AndroidManifest.xml index 33c4ef62..17aff8b2 100644 --- a/full/AndroidManifest.xml +++ b/full/AndroidManifest.xml @@ -61,6 +61,7 @@ + Date: Thu, 21 Mar 2013 09:11:42 +0100 Subject: [PATCH 18/60] Updated RSS action bar icons to correct size. --- core/res/drawable-hdpi/ic_action_rss.png | Bin 956 -> 1140 bytes core/res/drawable-mdpi/ic_action_rss.png | Bin 586 -> 760 bytes core/res/drawable-xhdpi/ic_action_rss.png | Bin 1222 -> 1492 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/res/drawable-hdpi/ic_action_rss.png b/core/res/drawable-hdpi/ic_action_rss.png index 02ec51ef058c3b2cc3931d3a832759e9f6a12ba8..1c5baa20fceb20d25a82f1cd6ee3d5a89f6e5498 100644 GIT binary patch delta 1120 zcmV-m1fTo72lNP#BYy-tNklPgvX4xDq zz|6bko>Q>|5#M{fvajZ0gs5 z$Ry$r=`G31JmCn~5L8|H#I31}0)0ZQl|GVrS) z#dxDTZ6`r%)8`kzWju4=eujQsD4zjA0ih&L0=90=s-nz!a2F+7DrtgoA;TV+N63J*B+@8mPj*xP64IZk|(q;a0rx|aWhhkIG2!&U(JATE#unrU$+-} z6Myq$n;SAAp+s(l>7WfihdwVI5<2iQ((X73>}9ZXwo)_0qxjut)yq5c>HFIvDlaKq zdXn+74#^!f>I_MfI0^W^QlhvM8m~Eem!nu|cAc2~N11A=sk%sex#NMwl$Rw*K(}R= zeLSFq?vPV|lD-EW1MO3{igu+P^#VzEvwzpM#pwZEG-(gihd`9Jq;3xw>JYd|zx9rR zD$g`^?`WUuv@47%oTf=G1cI(rG_WpUj{}kE2Ilw}uYT1)`H(F-ZM_p$ucg}9wkWwv zTUL~Fx>gCg*m5T)ALX1bwu=60QR`ZlyZRnbNYQdtq2d)LSC;cU|Hx) z@s+3_IFz5{+Y_4kT^OJH2M&+236qM?V+@g`KQY}vk3KQ^E*skwSv^q5#UDj?BY`Nh mlw_Yq4rtR}@7rE~pm~42cyAMgCV_P9r~sb0Sc*-$wxqj z-nN8#tYaWez<*rAOJjJ<2aCZHFt8+p!VTK#H|z4PkAMa`+*C|}U1!9sq--tloinEq zaH^^TEU!!^-)y|%!bxpn6Y!qFK7)^-3v^<+w}n{Zk=2xM1upwWYy!euwGnlK>)>8^ zB|(Jd#z6-Wu?ctqnf_oR&;+)VJkf@Tr=hvAi1$M!M1RC4Ah!x(*+CGR1r~zkV5A|f zW5QwDXt~WN+Sl;1w@|2=vUmlA$PMSc7Svl-zJQ3fP`g&%m;OUU^#lZju(CG37BJ3~ z9YDktt9}Ccb3mJ5IK?JFbKo6#10F!|Yskvu4M~ak1)6E|&=OHcen&M0*kga;G@{=WE4f&nseZM`a5wVZ* z71b7?(2+F<7$UED)(4(|q^y4vj0HM7tqb-Dvo{>8mH=6KJ7l^bGK%~zu*{IjQr>QP zVI%oQ^WH$+a}!1qcMI5)IkpgLfyfPuNPZ4eyT z?o+S(b1or3v99w_H|49W@(tvhq85;0fbfMTcT@n6z$CB@=ubtEbRNoE+SF@~XvwuL zu75Ip8>C1sG=;8|)|eH|MslUpzaXtD_GGIlYtz{idAj14dUZ|=>*AgTzE?z7p<1~z zkk>`YDLLPXgWk-)A*~vf_Jk~d1oF}S*s??@oaTU;z~zcq%$iyVv=r+)8vUB002ov JPDHLkV1j?px#s`? diff --git a/core/res/drawable-mdpi/ic_action_rss.png b/core/res/drawable-mdpi/ic_action_rss.png index 2de867b8abf9cf0216046cc7dca6caa8cbc96b07..29ce14e87d3215c265b41fd92890f12971b9a03a 100644 GIT binary patch delta 736 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 Rt(pJ;002ovPDHLkV1fXKHFE#} From 489fd94cd5bdf61131bba8d2bca118b1ec0daf02 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 21 Mar 2013 11:28:59 +0100 Subject: [PATCH 19/60] Fixed dialog showing on small and large devices. --- core/res/layout/activity_dialogholder.xml | 8 -- .../{fragment_about.xml => dialog_about.xml} | 40 ++++---- core/res/layout/dialog_changelog.xml | 15 +++ .../{fragment_about.xml => dialog_about.xml} | 0 core/res/values/changelog.xml | 11 +++ .../transdroid/core/gui/AboutFragment.java | 42 --------- .../core/gui/navigation/DialogHelper.java | 91 +++++++++++++++++++ .../gui/navigation/DialogHolderActivity.java | 53 ----------- .../core/gui/settings/AboutDialog.java | 37 ++++++++ .../core/gui/settings/ChangelogDialog.java | 37 ++++++++ .../gui/settings/MainSettingsActivity.java | 4 +- .../gui/settings/SystemSettingsActivity.java | 23 +++-- full/AndroidManifest.xml | 2 +- lite/AndroidManifest.xml | 1 + 14 files changed, 231 insertions(+), 133 deletions(-) delete mode 100644 core/res/layout/activity_dialogholder.xml rename core/res/layout/{fragment_about.xml => dialog_about.xml} (78%) create mode 100644 core/res/layout/dialog_changelog.xml rename core/res/menu/{fragment_about.xml => dialog_about.xml} (100%) create mode 100644 core/res/values/changelog.xml delete mode 100644 core/src/org/transdroid/core/gui/AboutFragment.java create mode 100644 core/src/org/transdroid/core/gui/navigation/DialogHelper.java delete mode 100644 core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java create mode 100644 core/src/org/transdroid/core/gui/settings/AboutDialog.java create mode 100644 core/src/org/transdroid/core/gui/settings/ChangelogDialog.java diff --git a/core/res/layout/activity_dialogholder.xml b/core/res/layout/activity_dialogholder.xml deleted file mode 100644 index 02cd3f98..00000000 --- a/core/res/layout/activity_dialogholder.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/core/res/layout/fragment_about.xml b/core/res/layout/dialog_about.xml similarity index 78% rename from core/res/layout/fragment_about.xml rename to core/res/layout/dialog_about.xml index 56bf496b..8866f1f0 100644 --- a/core/res/layout/fragment_about.xml +++ b/core/res/layout/dialog_about.xml @@ -3,46 +3,46 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:layout_margin="@dimen/margin_default" > - + android:padding="@dimen/margin_default" > + - + android:fontFamily="sans-serif-condensed" + android:text="@string/app_name" + android:textColor="@android:color/white" + android:textSize="36sp" /> + - + android:gravity="center" + android:text="@string/system_description" /> + - + android:textSize="18sp" /> + - + android:layout_marginTop="4dip" + android:gravity="center" + android:text="@string/app_license" /> + \ No newline at end of file diff --git a/core/res/layout/dialog_changelog.xml b/core/res/layout/dialog_changelog.xml new file mode 100644 index 00000000..dc51afd1 --- /dev/null +++ b/core/res/layout/dialog_changelog.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/core/res/menu/fragment_about.xml b/core/res/menu/dialog_about.xml similarity index 100% rename from core/res/menu/fragment_about.xml rename to core/res/menu/dialog_about.xml diff --git a/core/res/values/changelog.xml b/core/res/values/changelog.xml new file mode 100644 index 00000000..2966749d --- /dev/null +++ b/core/res/values/changelog.xml @@ -0,0 +1,11 @@ + + + +Transdroid 2.0.0-alpha1\n +- Totally reworked Holo-style interface\n +- Provide tablet interface on smaller tablets\n +- Automatically switch between local and remote IP configurations\n +\n +Older changes: http://www.transdroid.org/about/changelog/ + + \ No newline at end of file diff --git a/core/src/org/transdroid/core/gui/AboutFragment.java b/core/src/org/transdroid/core/gui/AboutFragment.java deleted file mode 100644 index 6a336bc5..00000000 --- a/core/src/org/transdroid/core/gui/AboutFragment.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.transdroid.core.gui; - -import org.androidannotations.annotations.AfterViews; -import org.androidannotations.annotations.EFragment; -import org.androidannotations.annotations.OptionsItem; -import org.androidannotations.annotations.OptionsMenu; - -import android.app.Dialog; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.view.Window; - -import com.actionbarsherlock.app.SherlockDialogFragment; - -/** - * Fragment that shows info about the application developer and used open source libraries. - * @author Eric Kok - */ -@EFragment(resName="fragment_about") -@OptionsMenu(resName="fragment_about") -public class AboutFragment extends SherlockDialogFragment { - - @AfterViews - protected void init() { - // TODO: Add list of used open source libraries - } - - @OptionsItem(resName="action_visitwebsite") - protected void visitWebsite() { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://transdroid.org"))); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - // Allow presenting of this fragment as a dialog - Dialog dialog = super.onCreateDialog(savedInstanceState); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - return dialog; - } - -} diff --git a/core/src/org/transdroid/core/gui/navigation/DialogHelper.java b/core/src/org/transdroid/core/gui/navigation/DialogHelper.java new file mode 100644 index 00000000..226faed6 --- /dev/null +++ b/core/src/org/transdroid/core/gui/navigation/DialogHelper.java @@ -0,0 +1,91 @@ +package org.transdroid.core.gui.navigation; + +import java.io.Serializable; + +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.Extra; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.Window; + +import com.actionbarsherlock.app.SherlockActivity; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuInflater; +import com.actionbarsherlock.view.MenuItem; + +/** + * Helper class that show a dialog either as pop-up or as full screen activity. Should be used by calling + * {@link #showDialog(Context, DialogSpecification)} with in instance of the dialog specification that should be shown, + * from the calling activity's {@link Activity#onCreateDialog(int)}. + * @author Eric Kok + */ +@EActivity +public class DialogHelper extends SherlockActivity { + + @Extra + protected DialogSpecification dialog; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(dialog.getDialogLayoutId()); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater menuInflater = getSupportMenuInflater(); + menuInflater.inflate(dialog.getDialogMenuId(), menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + return dialog.onMenuItemSelected(this, item.getItemId()); + } + + /** + * Call this from {@link Activity#onCreateDialog(int)}, supplying an instance of the {@link DialogSpecification} + * that should be shown to the user. + * @param context The activity that calls this method and which will own the constructed dialog + * @param dialog An instance of the specification for the dialog that needs to be shown + * @return Either an instance of a {@link Dialog} that the activity should further control or null if the dialog + * will instead be opened as a full screen activity + */ + public static Dialog showDialog(Context context, DialogSpecification dialog) { + + // If the device is large (i.e. a tablet) then return a dialog to show + if (!NavigationHelper_.getInstance_(context).isSmallScreen()) + return new PopupDialog(context, dialog); + + // This is a small device; create a full screen dialog (which is just an activity) + DialogHelper_.intent(context).dialog(dialog).start(); + return null; + + } + + /** + * A specific dialog that shows some layout (resource) as contents. It has no buttons or other chrome. + */ + protected static class PopupDialog extends Dialog { + public PopupDialog(Context context, DialogSpecification dialog) { + super(context); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(dialog.getDialogLayoutId()); + } + } + + /** + * Specification for some dialog that can be show to the user, consisting of a custom layout and possibly an action + * bar menu. Warning: the action bar, and thus the menu options, is only shown when the dialog is presented as full + * screen activity. Use only for unimportant actions. + */ + public interface DialogSpecification extends Serializable { + int getDialogLayoutId(); + int getDialogMenuId(); + boolean onMenuItemSelected(Activity ownerActivity, int selectedItemId); + } + +} diff --git a/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java b/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java deleted file mode 100644 index 55f94950..00000000 --- a/core/src/org/transdroid/core/gui/navigation/DialogHolderActivity.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.transdroid.core.gui.navigation; - -import org.androidannotations.annotations.AfterViews; -import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.Extra; -import org.transdroid.core.gui.log.Log; - -import android.content.Context; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentTransaction; - -import com.actionbarsherlock.app.SherlockFragmentActivity; - -@EActivity(resName = "activity_dialogholder") -public class DialogHolderActivity extends SherlockFragmentActivity { - - @Extra - protected String dialogType; - - /** - * Use this method to show some dialog; it will show the dialog as full screen fragment on smaller devices. Use the - * DialogFragment's class here only; a new instance will be created by this holder activity. - */ - public static void showDialog(Context context, Class dialogType) { - DialogHolderActivity_.intent(context).dialogType(dialogType.getName()).start(); - } - - @AfterViews - public void init() { - try { - // Instantiate an instance of the requested dialog - DialogFragment dialog = (DialogFragment) Class.forName(dialogType).newInstance(); - // Determine if the dialog should be shown as full size screen - boolean isSmall = NavigationHelper_.getInstance_(this).isSmallScreen(); - if (!isSmall) { - // Show as normal dialog - dialog.show(this.getSupportFragmentManager(), "about_dialog"); - } else { - // Small device, so show the fragment full screen - FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction(); - // Note: the fragment is not added to the back stack, as this activity already is - ft.add(android.R.id.content, dialog).commit(); - } - } catch (InstantiationException e) { - Log.e(this, "Tried to show a dialog of type " + dialogType + ", but that cannot be instantiated."); - } catch (IllegalAccessException e) { - Log.e(this, "Tried to show a dialog of type " + dialogType + ", but it is not accessible."); - } catch (ClassNotFoundException e) { - Log.e(this, "Tried to show a dialog of type " + dialogType + ", but that class doesn't exist."); - } - } - -} diff --git a/core/src/org/transdroid/core/gui/settings/AboutDialog.java b/core/src/org/transdroid/core/gui/settings/AboutDialog.java new file mode 100644 index 00000000..72ccfe95 --- /dev/null +++ b/core/src/org/transdroid/core/gui/settings/AboutDialog.java @@ -0,0 +1,37 @@ +package org.transdroid.core.gui.settings; + +import org.transdroid.core.R; +import org.transdroid.core.gui.navigation.DialogHelper; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; + +/** + * Fragment that shows info about the application developer and used open source libraries. + * @author Eric Kok + */ +public class AboutDialog implements DialogHelper.DialogSpecification { + + private static final long serialVersionUID = -4711432869714292985L; + + @Override + public int getDialogLayoutId() { + return R.layout.dialog_about; + } + + @Override + public int getDialogMenuId() { + return R.menu.dialog_about; + } + + @Override + public boolean onMenuItemSelected(Activity ownerActivity, int selectedItemId) { + if (selectedItemId == R.id.action_visitwebsite) { + ownerActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://transdroid.org"))); + return true; + } + return false; + } + +} diff --git a/core/src/org/transdroid/core/gui/settings/ChangelogDialog.java b/core/src/org/transdroid/core/gui/settings/ChangelogDialog.java new file mode 100644 index 00000000..c777598c --- /dev/null +++ b/core/src/org/transdroid/core/gui/settings/ChangelogDialog.java @@ -0,0 +1,37 @@ +package org.transdroid.core.gui.settings; + +import org.transdroid.core.R; +import org.transdroid.core.gui.navigation.DialogHelper; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; + +/** + * Fragment that shows recent app changes. + * @author Eric Kok + */ +public class ChangelogDialog implements DialogHelper.DialogSpecification { + + private static final long serialVersionUID = -4563410777022941124L; + + @Override + public int getDialogLayoutId() { + return R.layout.dialog_changelog; + } + + @Override + public int getDialogMenuId() { + return R.menu.dialog_about; + } + + @Override + public boolean onMenuItemSelected(Activity ownerActivity, int selectedItemId) { + if (selectedItemId == R.id.action_visitwebsite) { + ownerActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://transdroid.org/about/changelog/"))); + return true; + } + return false; + } + +} diff --git a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java index 7abf5e11..66deaa4d 100644 --- a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java @@ -36,15 +36,13 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { @Bean protected SearchHelper searchHelper; - @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // Note: Settings are loaded in onResume() - } + @SuppressWarnings("deprecation") @Override protected void onResume() { super.onResume(); diff --git a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java index bcb29689..61768852 100644 --- a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -4,22 +4,23 @@ import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; -import org.transdroid.core.gui.AboutFragment; import org.transdroid.core.gui.log.ErrorLogSender; -import org.transdroid.core.gui.navigation.DialogHolderActivity; +import org.transdroid.core.gui.navigation.DialogHelper; +import android.app.Dialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; -import android.widget.Toast; import com.actionbarsherlock.app.SherlockPreferenceActivity; @EActivity public class SystemSettingsActivity extends SherlockPreferenceActivity { + protected static final int DIALOG_CHANGELOG = 0; + protected static final int DIALOG_ABOUT = 1; protected static final String INSTALLHELP_URI = "http://www.transdroid.org/download/"; @Bean @@ -59,20 +60,30 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { }; private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { + @SuppressWarnings("deprecation") @Override public boolean onPreferenceClick(Preference preference) { - // TODO: Implement change log screen - Toast.makeText(SystemSettingsActivity.this, "TODO: Implement change log screen", Toast.LENGTH_LONG).show(); + showDialog(DIALOG_CHANGELOG); return true; } }; private OnPreferenceClickListener onAboutClick = new OnPreferenceClickListener() { + @SuppressWarnings("deprecation") @Override public boolean onPreferenceClick(Preference preference) { - DialogHolderActivity.showDialog(SystemSettingsActivity.this, AboutFragment.class); + showDialog(DIALOG_ABOUT); return true; } }; + protected Dialog onCreateDialog(int id) { + switch (id) { + case DIALOG_CHANGELOG: + return DialogHelper.showDialog(this, new ChangelogDialog()); + case DIALOG_ABOUT: + return DialogHelper.showDialog(this, new AboutDialog()); + } + return null; + }; } diff --git a/full/AndroidManifest.xml b/full/AndroidManifest.xml index 17aff8b2..356bca80 100644 --- a/full/AndroidManifest.xml +++ b/full/AndroidManifest.xml @@ -61,7 +61,7 @@ - + + From cc834a7ff51ddfc36b70b22f97884fe62a4c07a9 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 21 Mar 2013 12:04:47 +0100 Subject: [PATCH 20/60] Fix state in which no settings are know and no loading is performed. --- core/res/drawable/loading_progress.xml | 16 ++++++++++++---- core/res/layout/fragment_torrents.xml | 18 +++++++++++------- core/res/values-sw500dp/bools.xml | 2 +- core/res/values/bools.xml | 2 +- .../transdroid/core/gui/DetailsFragment.java | 13 +++++++++++++ .../transdroid/core/gui/TorrentsActivity.java | 14 ++++++++++++++ .../core/gui/navigation/NavigationHelper.java | 2 +- 7 files changed, 53 insertions(+), 14 deletions(-) diff --git a/core/res/drawable/loading_progress.xml b/core/res/drawable/loading_progress.xml index df2175ef..3ac28bc2 100644 --- a/core/res/drawable/loading_progress.xml +++ b/core/res/drawable/loading_progress.xml @@ -1,5 +1,13 @@ - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/core/res/layout/fragment_torrents.xml b/core/res/layout/fragment_torrents.xml index c2a223ca..a72b0fe4 100644 --- a/core/res/layout/fragment_torrents.xml +++ b/core/res/layout/fragment_torrents.xml @@ -16,31 +16,35 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" + android:indeterminate="true" + android:indeterminateOnly="true" android:indeterminateDrawable="@drawable/loading_progress" android:visibility="visible" /> - + - + - + \ No newline at end of file diff --git a/core/res/values-sw500dp/bools.xml b/core/res/values-sw500dp/bools.xml index 4a4c7757..f701a217 100644 --- a/core/res/values-sw500dp/bools.xml +++ b/core/res/values-sw500dp/bools.xml @@ -1,5 +1,5 @@ - false + false \ No newline at end of file diff --git a/core/res/values/bools.xml b/core/res/values/bools.xml index 2a472937..63d71d3e 100644 --- a/core/res/values/bools.xml +++ b/core/res/values/bools.xml @@ -1,5 +1,5 @@ - true + true \ No newline at end of file diff --git a/core/src/org/transdroid/core/gui/DetailsFragment.java b/core/src/org/transdroid/core/gui/DetailsFragment.java index 10eaf5f2..15250beb 100644 --- a/core/src/org/transdroid/core/gui/DetailsFragment.java +++ b/core/src/org/transdroid/core/gui/DetailsFragment.java @@ -127,6 +127,7 @@ public class DetailsFragment extends SherlockFragment { torrent = null; torrentDetails = null; torrentFiles = null; + getActivity().supportInvalidateOptionsMenu(); } /** @@ -143,12 +144,24 @@ public class DetailsFragment extends SherlockFragment { public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); + if (torrent == null) { + menu.findItem(R.id.action_resume).setVisible(false); + menu.findItem(R.id.action_pause).setVisible(false); + menu.findItem(R.id.action_start).setVisible(false); + menu.findItem(R.id.action_stop).setVisible(false); + menu.findItem(R.id.action_remove).setVisible(false); + menu.findItem(R.id.action_remove_withdata).setVisible(false); + menu.findItem(R.id.action_setlabel).setVisible(false); + menu.findItem(R.id.action_updatetrackers).setVisible(false); + return; + } // Update action availability boolean startStop = Daemon.supportsStoppingStarting(torrent.getDaemon()); menu.findItem(R.id.action_resume).setVisible(torrent.canResume()); menu.findItem(R.id.action_pause).setVisible(torrent.canPause()); menu.findItem(R.id.action_start).setVisible(startStop && torrent.canStart()); menu.findItem(R.id.action_stop).setVisible(startStop && torrent.canStop()); + menu.findItem(R.id.action_remove).setVisible(true); boolean removeWithData = Daemon.supportsRemoveWithData(torrent.getDaemon()); menu.findItem(R.id.action_remove_withdata).setVisible(removeWithData); boolean setLabel = Daemon.supportsSetLabel(torrent.getDaemon()); diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index dd45f2a1..2c29b439 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -142,8 +142,10 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi ServerSetting lastUsed = applicationSettings.getLastUsedServer(); if (lastUsed == null) { // Still no settings + updateFragmentVisibility(false); return; } + // TODO: See if this does not mean the refresh is called twice (first in onCreate) // There is a server now: select it to establish a connection filterSelected(lastUsed); } @@ -254,6 +256,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi currentConnection = server.createServerAdapter(); applicationSettings.setLastUsedServer(server); clearScreens(); + updateFragmentVisibility(true); refreshTorrents(); return; @@ -281,6 +284,17 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi return currentConnection.getSettings().getName(); } + /** + * Hides the filter list and details fragment's full view if there is no configured connection + * @param hasServerSettings Whether there are server settings available, so we can continue to connect + */ + private void updateFragmentVisibility(boolean hasServerSettings) { + if (filtersList != null) + filtersList.setVisibility(hasServerSettings? View.VISIBLE: View.GONE); + if (fragmentDetails != null) + getSupportFragmentManager().beginTransaction().hide(fragmentDetails).commit(); + } + /** * If required, add torrents, switch to a specific server, etc. */ diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java index cb271715..96d26edd 100644 --- a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java +++ b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -38,7 +38,7 @@ public class NavigationHelper { * @return True if the app runs on a small device, false otherwise */ public boolean isSmallScreen() { - return context.getResources().getBoolean(R.bool.small_screen); + return context.getResources().getBoolean(R.bool.show_dialog_fullscreen); } /** From 9258ebd0da79adea212b041cd96b550ca921bbce Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 21 Mar 2013 12:49:49 +0100 Subject: [PATCH 21/60] Add Crouton library and updated Andorid Support Library. --- README | 36 +++++++++++++----- .../library/libs/android-support-v4.jar | Bin 271754 -> 393154 bytes 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/README b/README index 30a36df1..7ab734cd 100644 --- a/README +++ b/README @@ -21,26 +21,44 @@ along with Transdroid. If not, see . Some code/libraries are used in the project: ActionBarSherlock - Jake Wharton (Apache License, Version 2.0) + Jake Wharton + Apache License, Version 2.0 http://actionbarsherlock.com/ AndroidAnnotations Pierre-Yves Ricau (eBusinessInformations) et al. + Apache License, Version 2.0 http://androidannotations.org/ - Base16Encoder (Apache OpenJPA) - Marc Prud'hommeaux (Apache License, Version 2.0) - MultipartEntity (AOSP) - Apache Software Foundation (Apache License, Version 2.0) + Crouton + Code: Benjamin Weiss (Neofonie Mobile Gmbh) et al. + Idea: Cyril Mottier + Apache License, Version 2.0 + https://github.com/keyboardsurfer/Crouton + Base16Encoder + Marc Prud'hommeaux + Apache OpenJPA + http://openjpa.apache.org/ + MultipartEntity + Apache Software Foundation + Apache License, Version 2.0 http://source.android.com/ RssParser (learning-android) - Tane Piper (Public Domain) + Tane Piper + Public Domain http://github.com/digitalspaghetti/learning-android Base64 - Robert Harder (Public Domain) + Robert Harder + Public Domain http://iharder.net/base64 android-xmlrpc - pskink et al. (Apache License, Version 2.0) + pskink et al. + Apache License, Version 2.0 http://code.google.com/p/android-xmlrpc/ android-ColorPickerPreference - Daniel Nilsson and Sergey Margaritov (Apache License, Version 2.0) + Daniel Nilsson and Sergey Margaritov + Apache License, Version 2.0 https://github.com/attenzione/android-ColorPickerPreference + CheckableRelativeLayout + Cédric Caron (MarvinLabs) + Public Domain + http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/ diff --git a/external/JakeWharton-ActionBarSherlock/library/libs/android-support-v4.jar b/external/JakeWharton-ActionBarSherlock/library/libs/android-support-v4.jar index 99e063b33a53c8ba7980a5b5244ce0e0da46ae54..65ebaf8dc3458670e74166e0e69c76360f1554cb 100644 GIT binary patch delta 276646 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

      $H=OaX%IE*cF9C)*;mURt7s2 zmi$~&ZgmJk;v#%nh%yKPt^4d~&hwv|*tYAwlqc%Svqcas> zSpGpbeO_XAs~|x}`@b9X&A8kic{zvcg|DV5l}i~5A8U4qvxc9P05hL7+rJU-+c0g~ zs!cwBvQVSpPDV4^5G6AIjI#w$p;Ry)9E-EvNcL^#bSH0LwWd{+M6c*Qd;wyM(=$7c zzfi7LbX(MAlh=^G-H#xI47?xoTI_cFScA4;h8>7%bvzMB@G}MJ!%oQ$g<-?UmY`T> zm`vj+Xn$*b1JTs+`gx_$OHnDq)p<`5r99)WC^ki3smxSa35@Y6bUwlVxh*3>6rzE@ z$s!itq^SRa-T?gry#fABnwp0X0+Sj83W@;uwXTY*j@8$TD&jy#FCP$CoMFQ#O$A0X z42wSOWX&c|1x)i0n0Y~MN4Xkf$+`F)h33t?ZUFjjSPGd;Ef*~f-$CC={hsn)vl}Th z%~#oCC!HQIuAV-6-d5i~?~e_Ej4+zO$nw!bTtGyWA_uXx6n9+07;*i|ug#Mfb(H}t zvHhE1WINqh7fvC*e%`r^gkrmcRDNPcdCE09$@pbUJmgO0WjHvj?)0VQEjsG-8M-6# zA#3>M;2>iUF2!})RH+`VGB3Ka#my<^AVoq(OpZ9es&O7$bR6e;0N03w9rML5)**s^ zGDI$_oNm4eLWVqz@`j1O|8z_ zrWTd$efm+$a)TOkj1opwnM55myb0&wbSq85MisOz@zerJh>Lpq?2j&oXP^L`#`aYC zg?al;wpqa#9S&AP?!42hyd=CUmmxIYoNgfAQaYPj*6w_kG0iJe`l=5P9tqG%=!?~# z$6zQEO=DK@>g*t=M4LNKtN{i6!0@LSfbQ{03GGk}D{7%P0*zS}M5|$p{_lqSnjCB6 z!aAJli53kki%m28xm7nz={P`&pMG;yLAlL}<;I-<#2o+fl2j2xQM(iqgf8@Yil)Wp zWmtlnklD)U;CC;_6X6*4)ZcwugAmu~t5b}}&-&d%3C2=ixwdFhiw+vb$3J~dEzva` z=x||(2PF>6!%g_-kZu|3CzSLyi(>Fa*ZTU6PtNnoUg*A6CM`^1l{^5*tQ&FE7 z6x*OLd+)a>3*c`7yvPr}6k@%@{0=WLwzQ4v5{a-29~6TK}Gj?amR zRGaq1kkFuTbu2Do1CIi#(ES})9?fx01 zbJzYU9v24ABNx-e2~X8;EOXkq1@TeqHMq|6EkG*`TETf^<_kvk-8~L%Uu%zdx`Vi> zJ{UhbX=9WC%o%|EtP51L|Ju+sIQJ`0w?QL#Hko4*n2g-mjt4BEXi7rl2C*L)P|Bt#^H&`ib~lLV}lK5 zbYtn^t`M=q)`DhmCT1J^DjOj~H(A=~JIyt1#DWeW&X_q7q+BTAfM4&!BXPsb066E&A9>hzi-ZeaAE(A*8Arv|1Vw-AZhOE z=I&xHX6|Ng>gMPo>S*s|>_+zgIr=~By_Ccmg#jU?k>36_kOC5@&xkFqKHK zODOlH_HoK=)1%nExm}|wMhvKZ+s?RXkkSk@9e}LrQKW=@Ie3)*Gu{@JcI!BlFCT9a6Hn~xwJ;28XJt!C)TPQ`dPl?#xwB4iO;L#KzGB7M? zz<&5bj7ke&G1Ofj#NKsSK1O!%&`EWAARGXP0xueMzM%YR3OXRLA;*u#O20d+f##IF zIa;Pwy;>Hniq}TYTNs(4`~L5`aE)o|F#!Vs{lm=qZ;J*21@zCtqyl$+W3loSL19|; zsX>r{!Pb4g2LoWf2Nj{f5L(MsLCgLNjwM_G{4enaF|~>ewEJInRw^_1_lwu{-xiS` z78DYox$cXriTs7H-6OR%xGAMd*>iC%P%U)(e)Nzp=V<3iR(px zQgG)WEbBcy36uMUnNo1~fLy_Ud~Am6g`2WBe8;?NK1Q=Jd_TmY3u74QxHsA){?1UG zdFbU_Icw*ASsBjtGt=Sym+{~G`6_n{1Jzuq^reiw-%AWOAmA}NXLl0Kl{qmE^`s8}*(&UN(^TP#v#FmHi117gB)H6uZvV&l`=2%lS62mObG6M#cOL7y^RdM8h ztQ}ExarrhnmiOWG5p6<`_$FtaZx{KDizg$;@#o>#TQ&4msuLTElFStU(9ymEx=gJ7 zu3!eID`Pta7K?Ds%lc9pYvJ#l?;^< zZ(M9BOoy;$b2?U^m>YLr{6t?GtF6@dn5cp}|G6zwdSdplZg2?HYL(=XXO z{l+U#B$gyO#yrW`c%5lYwKqnym3T9WcsiTnm(&O04idmQy<7*j6GMd5QvmqiccBg|70AmMU1!T?+p&FB;{<0&RDePmis>Z{AG<5FRU*8YVN8eE%@-FpSi^rMM;jke9IlJl;3 zc%`Yl4yn~bNeWXP`trhW!_ksEsICmR$G)V)QEfA^Z04QGACJqjpdeR;jot&9+z@V3 zU8PRl@8OEQF<;Jm(GKhStGz~DEozr}yQ^oN*8{iJ*@Jv7j_$HUeXUG+C*smnw?28T zLZb!MHS!3fDZIygQ+wZ}qe~c~X-j6pr`x2X=qwo~V|9vEq$FPlkZ>w?&!_cgQ?e!# zrj;HAnLfi-Lwm~V9shjYr}S!{Qd|TF8=6{9=C_H)fVct-l?>HxV(`RsU2tUbFmz3Ai(7FAVxJ{fS9YH*@euQ%f9i_oAoi1tt}@?jjhL<4TP#Le2T#c-gV{94t2s? z+2yi&BQDqFO*PI>q0!dE3>zQwG@q%0teLspbsTg`ON>Lk2n+|!QRi1uXGHegZZ0_h z!?a2m?>Mh|^xV7N!aLuT;4B;9=O?%y5~0oH=;@oN{Uc&4U{!G51b`LSa!R>=PpNZ{ zcmpf4FG^PUCUOrlB@w~8mrd#z@S#wqaAT0cd$uTzlKicJ2Mc|9{4*i@FywIb)gp8Pc>6ephAN_0O}3^1SnMr;VpB&G?Lj}T2$|c) zGQE$t9$L!A@t65qur8?NQy6D`=LD!bMyF^Yh)q?^mQyvNy7S)i?>uFxXgM7BaOD^Y zW1YmU_MZp$-ky8PYY}FB3M)=S3bUD~AVg$t27hD?G=mIuUu{{QLF@Hd!?f&sv`JoV4sF$q zmg5HG=eUc0pb5~66mtv;F8(0ynhSj`a4cIaWJ8%dTK%k}{NqW5+zQgwId^?U?I-N@ zT7>IF{5g|xpfRAF??C=g5I~*s1tWEcDelGZRda*%IqW{x7BRSg zqxB^l-W~Hipv!ejAyR8ZOb`V<2NV$tqf9}tPA?Wj#zP@ic%xN|1fOuyh6F!sicHKS zT<`=nSJTQYm-IAmHgSBnB3{fS&Ui(ZGRTI|02kW;i)F0ZmOJJZE>Aja!8F>CX4y#9 zXuwx-VPcv&pq7$TTE?}N3iiRGfSj90wZB-DMJ6ER7yL|gvoI7EzAgI>cJqWvNa0U- z19tP)>2u9;d72si{x9=R@Ls2;0TKv^5B-0f1t_3@-2w!WZ)-mb4~7VkHgzRawRW(y zGncb=Fc-G76E${nRdX?RaJ6uBvHuSduUbv_TTT$|69XmyDPONiubIjylLUFl7J0Y= zj#V8m>c^e2bt(#lyiJ4nS3)gM5Yv88oWOG--V6nMxY9#^Sk`7E_qONb#^d_aj3E%+ zUOfUnD~|z_Z^p^?6Rxw;6Rwi?o} zExHq|S+rgbMD4T_8`hBoMOaNfbCph#L*XS&__REvVo#BmYc46qEUE_%OHUUS>Nk4S zde-QRuL?(v=AmN!l_;Y^a~{KY7C&^Kb^Ulv)YZ(d)@2;=0Tc%{_)O8MCpxi8Y3!ra z*AjJyuAD13?>s^EyB!0JTzpVqt2LunK^BF(FY{}LEsyp$e|-9F52k*_Dmim-(Dcjs z8o)?bial9i+2W!M8p;308ZN$Uhf`$fC2Ovm_(=3xKywg3FfF*2Fh_Z@&(=;9-gt zz{*=DU3@()+=6~$qrf8JmRqAZ#cx8$lr*xqLc$L_;S<_J?GOkZAtig8lXiiC_L&Z4 z3cD-P2ZS3n#RBg-;Gv3*t9iEkHbhk*rkvb(NA8Gfuf-z6%<%qMBYNK@8TcbS`-C_j z8oqs2m?v-qfx-znHC*d*J`LgT4{kBTeyeaxv^Nr!S-`hj3<-5vp0-=|?IMSMhcN%` zCjZAv{@>vX=l7S?ALO8Tsf6et5CA1(OY{G;@y%WSv-Lydd0_^G(6TU13z+?RZ2LuU zG5e=gpr8T+6a8Z<$%bMsC~h1u2>L`Lw1w&D{D!-X(`NR)J3-S5E(>-G#I24aWq(XA zdJifF&JtF)@s-gD)UjY_VrVcSju7{+TZBZ4A(f_7o4O?_0g{4KH$oKC`~y4M^jK0F zT^=vJe8V6-bA|JvHVKCfWvCZP4s~GVPttvUxpfR!`LB}kQ@Z#UsQUk5;PbBpj%!4 zpF`ih{tE*M92gm?h{z^NN=!%$OM>c53|Sb-0?%;X%o=lkGvm8MG1G6B($eo5^83&` zwpi1B6u4m#CT?DA`A&CR{+;^#yt~5$njDa!3^pc)h+_7_2_grXLmx?Rlp)HJx@zq%yO4$O)=i46jSTO%xH;m@ewm`+wUvRfsr<;;H%5qRjvS16l z;&ITKI+O>|r#W7fNzbrXW!v6dY%_+oplZpSft^r>xswT)LoKFIkU6-`U|o$jP45FM zr6kXENrLw&YcElaE)q=G;G2iZFtOn)?2;u^-W1-RcZrLB{GwTqdprbKMC&sfr24?Fiywvs_T7N5(#CZO z6OkvXXnX${C$m07*?|H?Lv58Mj(`Ca1v?i#Jg7Nsw8KkW0Ort~0BLqEEkpuZxfzxP zA||8d2#(ba>GGUu{06-zg*&YaF>!jEApaeoUuUCe){-oX<%z!QDBu=e{4<%PiY-2M z!VRwr>Xc|}1hZ$E){m@lx)Z%p%cIKOhq0)!cV(f&J1=;}Y&aT6+RpgTm^qS&@ z)X7ekJ$Qe6Rs%ZyS%^8TyzS{?LsT#yng#Of$9bzrG*S4+Bb}Wi%^^@bDr*iRm_OMe_Ay=d&Vs~us(@cHg^ z{Cxo%Rg#}kKjj7}Z9MRIYct+UxA?d1nsz;+!i4l{7}-fhm+v`Xj{t4lli~yu=Ne-< zNLx!7Esm<+-0)Q%c&S3jf@q=iB?A2dt7|pB;9JRt?He)H8&Jq1ycC9=+X|2-^gtZt zKx9^-zM_oaHQcBsz0x<_@coU1U>3Xc`9mrT)9V!^fO5`q8uq>a#m7u{))a@}wQj~4 zZkcW+YbfT;`wt@r2y4UobeXPthX?A}FPWzVxvk8p0n>JXD+8pzCgoC)Cw$K;@`h=8($NF_GODIp7 zP7(OC4?6jv3EqJOWiG52gE0Bkx+^r*Ydc;)_8;K;z!55bo30Pmgz<|=!&CCH1$%ts zhb9%%@LoJ)J4uo)Y0xF8r1O3%NsCq|iv3QQ%7tn!4xelr6)9{o2l%Ax;gxQTr__X? z9figVa^oYx=%YJ}G%}L)W-Es22{srHG&a+ijs3JvI5aftj~2ISg$z{$#ikYEk54>z z7?@99AJ@(ulcGg_IrZaEU3-p_1rR^a6KZ+RNazs)5Z75N5N&Eiw@}l)_Dc`>I@@B= z+4wF{dA^p(n*6^o%yv&^yzxjZ1qrEiXt@xRcev>a_v#`u20KI>EC{XYtx2~{M$mW} z^DJ=>W?fLQu}zm^+98_ich54X9gR1olVUvULT@SmS(ucPR~?D(+Y#}9B~<=v&WR}h zlR80cwW9=0|1b7*sm4>N%4F@fm^-wPElZlL8PIhB$G_K+((W{hq2?5+2IamSF$yW8H;M}R0!gZ zs5I+GKZfuWiD9De47apE@0K8t-VW1%LGTZeV|8n1$7GNB5}n_i17oZ3%L6#%TEz#+ zn>eM>SDGrFl}(u_i3x7B5kz4AZ}+Kobtk?QfTrFhepMSuu1|68<6*>-CQ)vsbTYhZ zbzh4_S5JW>^f)J>HiK0(^BmlBE%%o}=X`E`Uhm|V>vOk6%gjgI5VEDUZLWQBV%RT7 zcdCgtg8I(Xdc0Rlx36phkYI?jIXEa?D4?06MB)N&U0Dax$87kE$zw45nH63nk2wTg zLe_t#iy{5g`|I1GSo(jt9I5}N9s5v0aRA?NEI+lSB|%Eo^mI9c0ka)sB4ChUBov}N zCXz~Gy9A&FFeIfh*&}l7tVuXlRE%buN)xo!78P($-Kc`JOcZ zp0$tjr{;&Z+_x<{Xs~A;|K9eejmr(!Y5sFq!>{GW8PqwrPg~&Oc9o2X5I1g3Zve3T ztx6!}m|pW;NM*zZ->NJ@O+va3r{awYv0_R;+p0e0tedrklG z^X+z!sRWA}x=B>4o-8e*S&?+!nTdxksUw^$*zZ7;aufse8pVL7a>C5GJC;0%0qgAUS2ALeqN78 zex<$c^nnvEFQ#i_5Sbep9gJCflSXP8s-leznv?Qy+92OF({6>~&65jr9N;X(+wF&K z$S{jO?5yuN!SIp}!LDwlro^WXqtc zEXtNBg_Cf=L%Lz>^QdEs}%`JyMu&q+h^^5jB$JzHafy9yWdb{7=4e=Fj}R zQf>zaTXs*fbO{RuJ4Eo#Nwe?5CyVCVd`^PaNA&wD5yyTX#iRtO8bG*MtE5>Fwls_d zg@YMRg1&7mg~*r^TSG@9tMMKdBe*0#J-);W98AHlv^n5kX?*+>dm}AME|h8K+PJVd z(sH_*Hxk@QIkKj5zehd?5aGsOfL=6?azK-Mavmfa3UOD?gCyvv+a!*|`5ip|RCC72 zE~jNva9uKqGtlSPgaZ;TVuFszOV@b+E{d&UPU{0@y*yM`+v=p=zw zLz|hIcJ$Rt#wJ86yvxLA0y~5jdQW2UgKNWR=o;y8DadB_z#Y)mMT`@i7Wz9~y_^41 z$gU|&e(sWr%{Utwacm{Wjbf>?^C*NQ{~*x+H*WzlpLRoy@GHJFtak%17z#x$wdKyh zrg8Sn(tAKz`ZV_Y)})9d3tCO3B8a1}5vjTEAY@yZ!e-zKzXtHE(^!=&V^o+(1 z5{`@n+n_+xNIc772}u5k)l=5 zAJF->;g2woq%MBaqOHh|%&m`W43vZ|DHq>*CHYQH?bv5$BLODtI*hXP%#ENHzZ&hP z(1yXKNmc=77txPqaRN=&v)vaKfL@J7d$Vx_o z;+qm}jl`Wt^5KPbkRdkl#8M|g?riDV(wREZf3yHm2EJCvwul(i8TO6#8XMYSVP=#U zcNv%X^JY-(*8Yom!qTA86MX{(UNX6u2IS>XgL5!Ebcb*u`xkX}qbmvc=wr&W**!H< z(?_v~PSb5eP^6#f!qO!34bn3aWRTO+d+|B615?%9`|tK9`%H3~5YDrIE`MJ59@f{} z+*|+>q%%LP%!;ka)UZN1m1CzeCxx$6B~1U;Pv#ftRzGCY*0q##9X2m7_36}Yq;wm> z!}y3K+><-JRSWB|CAP3AK8%b=M3HDNVq|s};)dEo?2aYu)RS>~DL8!VcD&V0noQb4 zHjGF23k%g>DM=PEU~#s{rd8?MfnLKJ6cz#o<;Z9(<#MOl4%u3=P@yPEF(=joSaZDb zjd@pmbPKxcGK+~LhQ4WTX%scmg}5gYF;~TJY#q4-vnO}=X%fq-gbil^$`25b&nAgh z19?7g8Ej$A-w4Lvj#z zYza5YF}eGU*6)11MK=@g>M;Texw9v#_tr6SH_LhUmV2A*uLM5~3pqn-HN}iL7wB<% z#|@XC+5PqRIhjVcMe=;us9qZ@|Xbga4F!y$b?UVZp4thlqjJ8ODvlXO3(HXgiOSUdvG(lISa=tWV&2T;eHAeh_EH%I=gj2CKL5UEv z$_JRd4U+fLZVR>!S*pqp$KTR2Y$&RrCM%1upsYfGyVXX&odX(V$LsynQ5d<12-QBpB{@VR+3KN$NQR$n@4#zg<4-% z?^+CfnfzDP)b*OC`?42UYeJzu+6{^;^OB~D4stodJa{r*eQl<6M z&1~DK^T4Iw5tCyW2B3h?PWCOu#8RM;?nB&JK?7{)VTZ2i@aY;mZwaQd$~ee)!HF|( zs%P_<>HJi5{%wD|6WUhE1EUx@5+U9n&mM!Zw<#Q%nBO3%Ok+HT4myA{tNNI!LjBJi zWepX=m2g~oVW2WOLi*k4X%I+N8__Lqs@Tj{1HMJ-ukPEMp!AJ9shl-SZBZc4FkiY% z)B7ttJ8Dl6>iK~{i%-rWBMdc^7jHO+zwg#QdNGv~f#$v(Lnn#^tCT3s!!nC53UwfiH^Yf);7>o)QmZ%I;d4 zYD*zBFYBvLgpF|{iAU=-spn%k*cXPKB8z8aA^>I!g-CuAG{zrp%D)@{e`?8JCJ!bX zCV7VIvHL#}?`0GotSSZJ!XPBHLKF_bH-|~Ddxb};sBJi!{O*G$q_8Q)D@sIr(Uf=R zQek7;S)}vWrLfIhdXG@D_5{v0)6rMG@z++K6&X>Ve_-`kCb^*Sz7d? ziv>WnfrVVj%t`gfL-=7ZEgjk_%$13%aj=UYvNw>57pk%yA;nbRXcp0dAk06b$;S_W z|0I!QAGz7DpsXOZ^nwW24bn{!fO;SMJbZG8En^CFEGe5bl2$h2raunx9d$*ELkfaR zS&jVM0h+NA@4EheuFBa~!yA(PRL>e_IRL{RrIsTKhFXZ6Eq7#=qoVNAjo>m5_Jn0k zDpi$NUs#_htePo&BHwGdAI%|@*$<|q4zUo@7z8r!Q&AW=H|Q0BUh##o__?lhzpwOU zC^YvKzWJ4>*ckQb1pFg3>J))M+Vj?HZ6fK!AxGrtdex0_CjZTgnZJ+rMA$$y7jOtq z#Vx-!qkNKRr9tU-36wI2>68kK71=+$Kl^`C_Lf0$cF(#u4DL>Fhv4p(;O_43PH-FC z-QC@SyE_Dz;7)LN=Oxec-}{`s&!_jU`8ZWmHLLH{YhB&fuNe*%G*>}1Rw$;?*^noG(WQ$xD{+qN^dptL%?Weq?Cmj z=FFd&WeR^zEAwWoX&M+zB7cj@R(m&No!^D1A@B018ZKwfwP>zmbu@sS+r4mk47{Nl)qZ6Ok#Ak!jUdha}~eQZNSNhcLdl7lH}( z2{e0Q+S-*bM{+!;om$gCJi0AwrVNR+RdyxdX?0A@lIHROJNJpu^5F<|^pY`f9ZR9c zJy3IyHP_Pmkva)EmL}84FjMKR?34(=eLcV{1}-zqcZt`l%1X?%RuucP*@f>{Hv6@* zDIw1AI()y0iIZzXr*n(LJpcN&pDine+zzK9OFvEanPub!?&X zD_r(AX*$@3RvN|=8>RvK6U4l*UdiJ3d-cbd#ci}}dq>DlzpogW8{;+T{i#X$c*P#b zY`_aF8FZWjKL|(_K%Kn-*bgf#ZDR}k0&8AE-j>qXb>%UFa^F9y^(n=5$wrJCChl-! zg|-L70#cx+8##`V9kDAU(EYW!L++tCZqfDQpO>GSd>N`AkV*}1(Mq>wWPN?8GlZ3o zW1`>0gOqYtBSa$A<%d@oGx(R1`48(6i-G1;KEM3UlcB(#4sot{^oD5sFYlh(KQDnU zFKPsNDxl5hbs#a}jJE3u`3uxT#^3dDXcHKpSlNVdEy?g01qUG55bfhJev>Q17Kg~A zyo^lw%(_!XZ5yz{*xGZ)6j$%2 z3*cT>Uo=`0+z42W`7JtpB_DZ5y0S%YNYW!~*t1fmX>}!kxMS1p{%P=^n!4hY!S={F zgo-7iIrJu%il1u0M4EIZu9s+WOy=!A;lHNgLly!Eyp$QUDiZuslNX(RSl^5@}#ejz-o#-<9f&7At0e*3Z!BAiY(@BtECePw0uY)#zj^2qu zfJ^hv@jifCq;7Q#CaV#6)Ibrl-s#x)Al<7{RK`qnsyf8NF6V{bYcetR zp@`R*9>M*$%n#F6czJfDAw1EMrzsst{Ck{lQD~=IWJue(^t(2^X|C5AUgUZsga;F^ zFz0(#Eg?VuU|sC|di02VeiZHU`xbUDyD{NY|w%e%M>Md~S5sa-Hyml{U&z$6ikQFe!2~|z#AHj`SDmhMV6YR@h zqm7fBQ`*BYEf+_{eR$fz`-k+I_8jh(IM;CG5&8{u8d>}~ zB6P`Hel6q4;2Euy+ONS*5d1<2^#?NV8^pA{_&cod4S%8^!w>)WPZR}>b>0UgE1sRf z^d@N1j)*4m)r&d!MiGodcZ}$cb25?Ig%JHE2WKr12%zql$_ld1jTyVrRT+VK-kKkC zLl2w_nPyI7+k^6E#bh|#;{A>>9qYOTYL4f$BjW{+I(~eMO17wKW&bfiK=J{PV<5vFD1iv{;v%iBLRx zUaDHaTo8kLqEL_wT-)to+FbeN6g39vkX87@dV%#LyKX}A;%o+$>{h*^WW#Fv@YI_g zF7(hV13D{>6C$gfse-ztnAls!z8=z=8ZqM9VPt>85=|d})5`?b1f*F(pYUXo_lEqn z&eWVdTc2c9uf*y-h8gEq-t{4dd_fNwyH^t+26c6i@_js#M$94XUIGjbRLeAC4^%9Y zgk`22l0zJ9Pf%%jcv4d`$SQJCRZ;1Xm!y`J!dz!TgEQo;FKSU0OP;q+QB~E}flg7? zmpMs{Y`7~$p*UG};yYP=5nE9e)k5^IgF&9>f`afM%Zl69DZGS9 z0}X4qUJzzSF{d`7bpa6vejDAOfJ$&bbslVbTyn+slv)fY z>EPxPt5ET)sw?Bt`@;JC+Ho`ux*!rT=GPvN76zKI)Y_Cg2j}a01qbI_-U9CRo0h7b z{S$-E8+sDwf+UvyAA#d53{oJUWE?^W)ie5^voGzT1~nL9aU2JUnsNjV6MA+Zw6@_hFJf0K%6G)QewJ!V-+$Miz zB;>RsxBf2=oY&E@BsemF7f{W`zxlW1#f@3#{>a+p!?sohh}$r z0Nj5HOrOrbe_MCK$Rt18fW^QtfXWwktH#Ja8?TNTZnwknHgr@@1x6ML?6@bsvkK<* zNfd==>XPIXfwvS_nn=UZ)?dv(&wG3)ejPH~Cy2);ix` zayCD}FF`g-n1X)JKH{v>x~MCw^BP1sh`%C)|FB{vLj$PLqNeI0wEM*oRwUg z!FPiG82JegT3P{=oY&_OJ+g{T2}g?sl9$^S;)iM*oPF-2U>=lR!HcbUhTHC?29KSJ zw9cFmKpQR7({-2%cg^>%O6ez>Y>v+A=1yGbR_PuVe|d*f#Q;+JC^G;oC9_<0MMsC} zN9@{1inF*uAhh3?w0#5?fR_b5ccF^_4Y3~&^#1FS0MA}&Xu-@A&1fyQm)YsnJs)%1 z3=grkHWOV{NQgOk_B zI&1Np!q*P7bY3I|PsyfWg=I=4Y98b6FwHpSw9?Bt6b&P5Ui7x zHjdJ4ildA9sLm2}LtOf~+J#AT3}Ozh@#JBqtSf#tvuSM&j}S2Ec)Mekc~PBT3d-Lr z|C)QGj~;Sd@+xY41lqJ2+?^&jRoo0_;;a|4-K#J~VMA<|rS^A(LwMyHqBLu)DJb;R zg`=vftPO)<&~^fj>(lsA#u zGkBz<%pbshsp`mc9r~IN+95{h_-=A2rv#WtX<*LspWGYM0)}pihi!9@qT`C7YRoR= zfjPE_lx)pB_u@JYJ?c34F8$2gf?;?Zn(jq1J@ek{%xu8pA18Pk;Hpj~B;uzgnWz;M zQPjSv!3@y_RUI2Pv_T|{Z{D)GQRwDX(k6lDjtWf0Rw6p9M7m?qP?FYR>W-D#iw7g? z_thvAnFL$I0e<#Yrsa;o^Y_K4&QG;3hIilqk}!6MTp1-;YCuBRCCLOGWLW2CdxbuWJ&OLjOvma~#^43VkuS zgSB#0kKFhrVVgOO#=+J4;e=q~ZbH3rz2E z>)Q;=mxQ88mY1UL+;`BskXbElPtpzWG*fJy#8N*M>2S93@E0?jQAmw?pWkFU>oUB> zhgel?1=iceA!r3wopQ#qvBUh?20Q;W6du-Yt z8W<`$Ia=8N+szcE4&$c0fWe>Q&XNGnKqie?;+Fk-SeF5;p+5*z$Y;j6BsTFS5*)~J1>Qlc4PpDeP~Y18IyYSg2`+VAeP2E zwC6xEociiJibne(1ji>Kr*UZEQ5@?dJS9n^hAKgmnoiTK`de4LjXj?G9zk*ALOF(iv>;#Hn1r7+2 z`eIUKvq_!*TCSErzZA~Drm` zOr?U$+_STpnWn1b*L$?3uW?&ZINf;I{eraP2Nn@&owPMI(VcLs0vny0-MKZL`gy5t zMff&s<3QqX&r-cPkYHd%FsA%i`|k8-9I(?pfGZXU2}W6uj&h zJ2#f=o~~(fO|rtcP>`IP$GF- z4<|Gn-eRX_MUAKX1%dL)p0XU|NCw2{R5%9EI7dS2mUgB| zlC95*sn*fugODoEya(4j9G|D|1jgDFy=}WEvY|eI#1nNhS;nPKHnDSJ6T>r^5x0vNHWoC32Hu5}IE$Y#&vQ>`f zp5ExwuW|kK07+I9NnPj;G)dG|Tzrf8{sPMztN!wVeH1en`YE1wUb;vn$It4Fd$x`5Z&MYIY7;@@% z@<{5y#Kana3sZ%(&E)%bhGy1{ViX(Q<-(|_E}sN8GEkYT7T*5;$sHQYWjDm0aWKCl z4W*e3E`0S1{w2BclC)1_4&h+IAklouMLX*P;Uzf+|422~4kAVE{N81QrTOiNbf#i)5MD+D5I+QTWgojp#O}Wqg?VB#hpL zGX64a9w1#8a{OCLGP76tl&?g z?Ae7rO?v3t}j9NG=^FT}aL?btiTuzSj--?nF(FyMNHOVNA{t?5^ z@|pj zaRP{-8VFkM9Z1+7#HpZ7jdF6}D6fX1;-uJUTI6i(gSyz(W%#d0eoeu|(z zInkZ6F}m7Ci?ee{a_mcX&$fAzbg z7HQYU-RRqpUq`L~)qRHp@@^N(bwbNd`5V4RyOLeM2ky*j>567+bp@Sd%NS7Z@P=~F zk|(#h-Ra%dJ2Jem>C4F(`LP$wy(5(lWO$5>rk~uSg!#mz2b1&;sEU2e^V6?Wc4h@0 z9ls4HnaJwGiqQEDvm;AN1CxMsW(VI$GK2G$`u9kK^gUk5;HZ8wgg6u(w6=X>YJ1rt zG$G|fR`|G}QR9*u#!(^Vz#(9$oL{9}^wTzG)?hr&8Nw%9U7 zf0RXNED+fe0@he#+K#M`LCyH8M2M=z^dC`z4FW$qz^7H9drwgOUr;PJ1xkxhbj45< z<%klqg~U5T?cH$2-ua_ngz%VhqLhUAJlTiu>bExz4slK`>DGtsxbT{`prU;qPZ;}4 zEPt$s?I1Nzj<*`AEa(CK`a4l)eqhK1JZpL7Tp;5pblD)p%Q>`YjR6b z)~PkkQrg*hD3RLD79kab=v{_C^b3h7aGKV6CFCe`X8)oP&=wJXc!IT=1*Kr|+l#8H zR3Ol`!d5@QHg{Izn{-5;_q7k6;M<&WGGe?j7Rt}`EW6$^Pv6zfrOP~Co+J&PB;PIe zg~>AwvB^cGmh=apPqk^uyhSs8tM$h~aTlBtQqO!q3r@(5w2GOGikZ<-bY)ql6yrjw z!>A7`kC^@e@sc|hJs-25RNCP)j_>bNr(>7!Cr$N7TRDOYL0*_Yaws2iJLn!1a_$bQ z?o5+(MbzJX=Wub`l4tT>);RN|Uhnc4Y<*d$M#aBL<>fvDq3Lj|cAt3h9ob*I1vcjs zoRAPB3m&lIPp?f>UUE+vtCqw>`-$yUoBUbnlFQFce!0fomlzCv{XXK}C^Uac3r1@@ zxk-aKTdi4YzTp$7nwQ1p_UnwbGx8$&^U4^|hAj@AGu%gKVJV`7jkV^9>-c1#Inm8p z6$h}m#w*kW>KyW7u8jSXx(R9$6d&W-2&a|0WnS}uINDLkoU&3D{Ye_Skvn)xQFo~| z(qTu6-5DVLNI!PuInqc-gys_}&M*5gCw7bFo$1;bW77Lg6v~0+l3xI1y+HSjc`ep+ zL0dDbpcRP^=Hrs91WY?1fYIoWjMvR?633O#0ee#qz*d1V*XmyNC>PD#-ome2eeu`p znTwTYDQDZ7<_VBC#R3@)H6F3#v-7=q^)Z-NBW+}Qi4m*%7@YS#M9*2;dw>9yH0M@m zezd&a4-PAI$U5jSV}n9T1CkKNIe>zARi7YkkhGQviVjinbd+Iv_$1CmJuNp!p6I&V zYtHH-a7&Sen^_mkb74RYCelt7Ee8xEE+H=tGdJJCpVfel-_dyhQ@KzH1*JQKXvNWu3@cYmr6&+m4ph?u8g6Bimmg3PUja^^=YG#)=yi7Ow7*fPcV{4KD^>@>`LLlzGRb-v2; zYv?zH&UDD~#h>L;Rs-5I6nMpb{|Y4^nIl0RpI-H2?EiHg0u@XVPy}NJ$hfBvvwR98 z|1mVF=-AG?HDgn$R^Cr2FErPKhijN!J?=5pA_pK2RGT`HU6n#qeHgJtBnioJ_3b$z}j_-JQ+$*I0f`uBE;0{?r44 zF-9a23&-wb4MuuR1TzgY#Xv*@f4J$~cl2HrN1|sQxWQpBcMxUR{W{DK>>$m!2#!P8 zMeX-(H|3nc4xWRUn78>gJttc~Q)A81*%hnHG4SRTrn}f!Uc&<3t)Cj~8MiHc3i9X{ zCNQeerjJF1Rjh9L`&VCAQIggCj~0EE22F{2gynl4j8?qhf<^Yaq;PvYV1e~Kyz6dV zX;}F_>i3C^;+h|96As{@EK|B7PK5M|EEZ|*@kZusyHd4K4K4K2DF(F#%tRBXXR~c{ zvvTnbGV1ks`M4*&L(>c^2}L;xsoQ&9Cwe4vH~Zy-_Ah0q??)?26zfIf8h63_znD9y z96!MD`>%p))acr~ppvRufWaorWFBQBP~OQ2UGuDW=_3Od@^O|vn7`(5*xHYsv^IO0 zFY^}~Xm-Mht?W1{)9Q1qPSV5sv6PsiGs9DuBy7Lc&-b-d8ltH6xycQ_j8t$&nPU-_ zwuB2}Eh^J)3t=oe2o1`htE~0ag)bs2DfBV-KLK^d;cs64+z&MC0L`EW_xPj5JCD*$ zRp&NF4WZS7+6x!LTzN4WoPr~&ZBkVnZJ%2$lP0T3wPV^RJV<_vq-)Kc=C>@On~JzO zC%sMG32Utmi5{39I<|Y{u3G9va%3+w2A}Bo&jf5?L5}ukF0ih$D^U@UAcbSBmM^^i zqIVH1U)MS6&_3!t2da?Z&N_KNI8oMikl`c~aM)zPPqpVqQ$4Fk&bkJOkklnpDIR`{ zCe?R~%ZIp~0lO5wHmeyxd?rw;KoUFR`;K*q%PCq*ZDijO2s26{7cf=hkIdI&PLj4F zK*$t~QE+LOZ6BNcl2+45VSwTCu#h;eMB>x5cD2}~GG*p<63`8Hb2A;Fny z%$W2DbNU7TEt=G49-!8Qtm+epYPlVx&pQ)6f5G%eOb6y!=yKj1oDL5b)sX)blp;s` za!UzyL%|(3pzxZ$>@`%`CsN}b=KNYtVIQY!$Hc4uj{Z-E-}S`zCkov`Y&ouVD4Rd0 zST?C^bydQShCmOf{>?nSab9x#l~%XHhesbi1r(b9 zM?gvWlve*^jwJi*33F7oaI!Y}M@9KR_=>3LDN6v;C%&TAMXebY!t+*Lo*`J!E<2nE zS`dzAqkxAtE)_vS`^B2?7SxNiq{vg(%3T0x%a!RgHa$pEBX{X<~fyCIo(G@qFY69hoT*^fXgY}@7if3a? zv-l91;!E(RmR2j#v8#euaEoGx?!-;jLg2=PjhQWcds*_v53k!NYl;TeqDO5zcQoh# z9vw8_=^n093AgVoE(pBu2jCi&8XZK1=3lG6{ryvtjkjfIKJ_D>f19`A!2d4`%73fO zDZJ?5Uq1Z{GID?Y3!4&xnQg(}bElEIVDTQ2)iM6aD>x9LvMQP*<*spzhSNKqnxCb9 zTac0y!FvSNj^k|jC^B?m5|$+OvmE8wU4QU)G2J`qPEiBl*Iyol-e_@)a5YVHX1vh% zlYgxgOgcrmuCPK7%)@CU&(l`RdtEtUE#gO+0Q$O8-<6X42TzZAnPmj+wTHv(hP)t< zPgN+C(8Oz&;39WuVoB;C2!D=HIh_|-`Wm(Gpw|CP8Qt3+*E!4Li7O8QZDS7wd>XjBh<2YRpONJf+#0 z0;ss12R+>DiDVM#nL3adK;Cx`Y#2lH2)5E2aGX}dZfbpEJ(UkCQRHYux9OXm^PtV| z0miytzd9ZeC34E-5R?p^l5j_)IA>vnpA>KaCpra74G%i;alx84P`5`yh( zS!H*9F*Z$*$u+##^D|3jsH|178P_G+6l3UX+}J#QGSZ09I76y59AaLk@l--&`Td4d zfJc*w!8nYNn94N#K8yc%U7y$lCyPJVRN?>iFxZfTi2<{eXB5$x&^r|h)v1dB5Y+iZ z)DR{i*qd(Uu>I64(Tw9uSLEvmLQF;qzU3K6MM?ztM`aY{PpU>515SH0^kT- z?nxTQ&Y5{85Q~gkpkxO1Y)YxUEN~*Mc-Fr1g|h*B_5yX-fItTy@kZ%q zJwXKn)YvDcye5iYv7(N|JtA0pR6&EWG?5$saUkSL-Ql|#O(WqK*8J$)x+5^?9}*ol znt(-wDM}a5SU5%LswfX>6qj_3gC9KkYHg#p$Rh@6VoUtqvoQAXnOBn;>5vC&EV5D8 zd!*xRP~gR9b-mzC@M^`tBtBJ}vsy6v*wmP!c6OH?nz0^4zjXzZyAj;Z95+7yp7DvO zOd4`k%2K9rdAV5DJnF!HOY$ zFBGE@6H+}U+~xER-nf>wuc3bgW{Uo@Aq;_rw!|&r*XN4MfgL6F`WD0~T3fP?1DLMR zr^A;bZ@WI40a{hTT=>-lrGHJiUpf7WbpG0`Aph4HO)w=r_doVFpsIz5tGwM03nvRZ z+kZepjs~Adp?^Gh1{*)xMj8MQH*TK^E9rk^Wy zS;d((9M89^>{iFROqIEL=1;_y!Q4DG&0%KSpCTOO4(gn9(Fb%{tQNN$T)C_kdRM5} za%hXOMmB9)a#fq*(c^|BT7g5j%{kR?7g57o^3^~C*>X-6kG`r2YCp+*au!i8)x{GH zt0P6|DnznWpQMH#nqba-GmBW9JeWyKDNe@!l)t>j;$k*u3?;04*Pp9E^3~OkM8xwh z_@zeDGLg9o&+TV3z-+!K$!ww}U%e#$7BsI`60jM*T5o%jA4x;F!$vnjz(2@6q1-MG z*Mc7e0(Yy7uubrr9YPF@L9~ZCCs`_AFXpjlOTt(pLzqf%S6Mp~vdUU$O5zB4V&+mc{rwGa>bVj z6O_y$F7?Ky{D&@a1O=N3JCrT@SszxDM#2gQdcy_iqvMxcDEdZtdT@j! zhqwl4CanQ*dbFP?#tuQOaob(!(L&=6~JI-_eW%BV;n`s{;9pd!w=AXk~Ba#{)fB#FIORf zkC`-?1&jzNX<}{dE@)z4`)}lSD(n1>T)sJaohI}rRC!@x5u1n_l1Ke;GISw-c5{E? zndYN&`M-gC-h}Wm3gz7^jJ8|Py6VN1#C|2cYZR zXt`ZW7F`AFYO|Tpgw1;FJcTr|AH1BHZ$crtawU7hYb{01MB9>ohja&D_4=La8E7d} zCeO7kW6Ql(m1bA|wGUQ8vlvIJrusW*zn4s4O74pjft~kHDw}N<-l+#m>k~yoL<{k1 zeuXT#1df%O9y%P z4Ll3|UmA0j1_^0}?t82rlb4d>o`A4#x87{1$wG()#&dp%_EDfHGwIPK@G%}^Qv3$N zM+0t%_3BgG?Cho90f&ZI7w3Fn9~Y`7oNe)X@zsT4*{UoZlV9836(e0K7(bqs;;O*@IE3TM&5##-dkH4S#;XJEN(G>+b^sGg6gI zuv&uLS2#u@;g}XckD|tK6_jsi4o19ANqAI^2jSE+tjQ=MR9#E=5;fNc`KalGUc!yS zNQk`B6^}RuTX&;6;3atmfLuQ+opy(2-VvJW|zl_;xj8|#Dm6^-rcha)F zDT`kfcoX)HTp;Nl5J$+)^xc=ZX*-!N*w5d-a$U2?-2K9RrZ_>TEf0B>lo z_7d9^ZjH*bnli(uO4FIo;`c?Gvw=4=(uj3S5_JmCNd81pIm=W2W zU^7w0O^9%{E;hZGmnqgY-P1MgvN`&49(5$juG_+$$wt`^pjIN4*VHIieqWJ&mMt?h zC(0eM+_!c5)o02uUb(jf+oZfHG_hePRE9RiHjLxKvE?`_ToHB7ZD-q+H7@4O-*{q; zYGyGvifC-;7y@-dw;9P3-?U7EgFYte3TAIpFwPrmY}n+Q`eXU)jJxuKNAX+FJX#e; zue}w}n__d?fsGL>vG*Tg5qR?TNf_QY6y?beGk4VZE!szfRlk}iwKuhYa+xe}r@O>^ ziZ#NnBXqx^W(~1gosQH?q2BW~(~l(&Gk(!9(n5L&|Eem1s&Jg8btCz^NnVO+$>%6V zxxo((OMENH&!B^qF}lN#6%zh*E6EQV9p3nIrH8}?0Z3~wmD~BrarftdXZfhtg#XfC zE7rky zAr9o*a+%(@)MKjUh+EUygqeDV7yMIPELVc zvaY^jOu*va-BjovEA;h({Q3lh+w5Z5qdBTRX{+EkQ{|rA4g+aav3O=}n3m+#z=1wx zme6g}!c^93NN~c#207xogd>{%TFB=<+8gwo1=@%7I646;ZPHe0&$+!j^9yeG&Xsln z-Nv(OiFGEEhieohJ(HWov_pWc*rbl8)n)g6axa+vWup3<9Opugq9}pCd}+CZEGTo zicL_?9@NwzLF zE*RZ+2^77MwBz>29+$L}?d5}b!1jmhLp>)EvSI}$n?jSF(wdpe!9>`hH?yp{SDQ&6 zA4x9<+ZH>Eja*oo^?1|4!hcB!n`qdwL%ny=bxl}xPY{sN#B@b1)}^$MA1`vEIawm9 zzzBcpIBU_g5T#LwY$D`b@eO0S#cFG`;B2y}UXEUBq*LRVzz^Oqk5ca+NT^MLuN;{E z!!iOyo`em-t*)U{B$rSzDrwz?Ef73!t}=7!GC!u*V}{qI42@(AYOmMaN&Z!H%yG3% z|E8b%8#?S)g6%Fww#%4$u)wOM;$)z0xXvayA|cgM?kPo;8hd|)QL{o$p^@s{7md;M z=0@MkV)0ifJRv>5_7HTMwLLCL#Qx{9`z<&iSIx0}6J$0YS|D+q#TWd5Zz$J}4Ht{o z^U1oiDy5u1iK_FVQk1omWWGTv!yA0>^$!nGS7wS7gC(d?k0&&`HcB(tr%eelcm_AH z3VSY%9;&Y0CrZyYILbkr%-w6zqMA83rzJ;{WpSn{;hV6YSuYZbem3nCpj7hM1I0@K zih59(L;Q*!*{2L6{e+A@B{2MarMfL43)lv@<7kLB*}Q@+@i=Nu%i2tzy!s=`ox<3o ztQ)6QMp|CNmT47vfXBV3TO{ugzMLhzlK)b4cL99P@GT= zvtrvZ#`b%|7aaj?TIhXCSA=qyC_sDyDy<%ueG7X&8JIVSR4zMFv2-)M=JPk9yxZD@ zHn;%c)CLQ&+G4CWng@&74kqMO7HvTsKQu9*lj-F^A$Nu|)V<|w8*z#M(#yMyjIqQ^ zKy>@h8(<4C<(>IVN#~zjs{iSx|J%3nUynXWN|^%y=l?HRRM6mu$$xQ2#SLtYt^bSS z)2VtUiz|lCXB7G+W007Pm^CPo-L~y}4`S?X|6T!BJSUUiP#}7`5AD4^L#>%wyH&d) zjfz4M@EXw_wD7$mQE*lKto!|tW=|)7ZMhL)5D_C@Nu!JB$HQdWkMs4`bfE70)mL9B z%0PRZU4vUA!SqztE9A~pcq0&{S!vf@=IW7|kXbLXiQ)A}a2N;{*y>=EUg0m*qX*6w zw&FJySbV7}vC53Y$WCydCHt4d{rV6dTx?g1yKt?9*h8{(~8+6KTN6Ky}c5 z^ecbm4({P>WyJ`|*CXVQMh-RiXXuPyx%vUywzwQch8A_kdAzQ3#TKL9a#o}-QU~p2 zj&GW9&Dv{=+UDGJ3;yTKHRws&Q>LT%o#-(vnd<0lq89xQt+71s)B6SM->o1}Y=9)O zO9fad=usS!X1$4on_fY1DcsEXiD3n`CWq`I#rmo#)`rq=8lHSzm9jc3g^8*;(xaoJ zB1~qv0TCq-br5?l;oRf z=_&2Cr3g>i6EhZBa|iq$2k&I^U4Z6ZDOS()`Q>a-6nm|2A4H^2C4Lv zZ%%3kot3E}RLX@85`cx$kL~4(S2i)3m;>BcdHk2zWvS#OTm)@)r0a zyE>UryoKfnM~GGNS15!>JBZvaGw#SX3DX2~>&1t8cb=YNIOZrFF>rfEk3bMjga-)j z&eEz{GtT?^FQQ&sSC@?-35uhKEH#_Rw}fLChp_s%*g%{W(J{iHk0EE^{2O|TRo4&> zn{UV}=K~&J#T1Ih`ruX927V^is=y|q?D@{To~J*(ydp?M;8Lo808Qx@b$N^5MNQ;| z#6H?1@s_aDN7IU=hyol00cga^^ z5CngcrNdsbVGC2>tQIVDovQhBDx@5Mv8%-<0T-}I&wStg42akHcOknlyC$pB-{iln zM5iYwt%d)VOt#XrhSg!b(>lkFHrVS!hR4sGRIn&W5hlgt>VMQzNQC~O6;*zznz)1D zznmc;(`qP#BkHljH_>(Ae6A02gZMc`q>u+Qo6{{E0&WVAcNh*10xH7oXbZ;!h(~J> zYjFRuR97?3=egQl@HF# zt!%yJa4rz+$gCHqN|{Sx>`)rlo;Y9sg`#{^JuTuWVj@PTSeA@x+s_7u{mj9ZntNa} z$0O}efP@#HiVYYS+YP@ziNikx+AZ4&dq&2BVHG-uHjocU05Yv!~v{Gz9nf(Uaf zLb^*iu?^qySNZ#70(kq4z?%yyoftH0`H2L+#g56!ULbqC(sAl{xLV~;qOiL4wrb5N@VcFtWTN}cV)s{i0$LNLN0*ic(zAMP_~M+ zra1SG6!jhsErK^;)aGM;k^39PR)|R2NuQ~)3;cgaaY`XHm<}*u%69HAFnfZq9U(Xw z1XNNH7F`^tRA9$H99hvkun3(50|FUpZ%Jx-Ohc;)&5bf}AS@gVsYi&|)Tja?p@HB2 za{Tn1qg!L@{QdRr4a)bWMXeW5t!58)GPb6?pUm8xWO2MSJ@eZkM8K1*FqDu5J);U# zsBE`A)1d4t84$=%fZ+Z(OW?t(boLZ|hHxrh>cFiL{w*{#uj^AifOdUVe{}ThGvVDb z5Uyo|<%R5zj}O70iYAdgHsjN3%VW@H!GZE49NORW<3f2Yc!J8^jRElJenadSta;TH zZ@z%TzL}1v{}`xQ;TY7w-Tdezz*y;dQ42Jb8U0; z#;L218L`_wN*?AtROW82Tg|$#&VPiw?@0LE^IF<$_@`xLS!d)W@qk%PAGJ=G&8^NH z7KqM{0CPvkrbbdYx;_ymxxRBsap|YK@EW8j`YD7_|)FJ$W% zQAN_L^5IHl7TL51$j9`LDa}wKGgZ^%01AP3)DsaUQ&<3vljicZXXGHei>DXy`kG^Sugw%2J zu1Gm7TcKj%v?_J@VG*uf1kG@h_19Ysw_w;XTxvh?2VQi;-?f>F#)lAJ?#It3UpL)` zUUm;s>_C2Bwtzr97}HX!(|+%J0}yQGxv7}Yj;beLg%Wq$a;diT#+LnVgI_MTatscO z2L8D`6Zr6bv5N%DaFN7sHe1r^Zyw;@7!SUv^fmC9gMPH)XwWWU+ml`TV#n?p^oWC$8ru8->337duvXNV3s+TQZts z_gU&|pg~u9sGhR*=fx}-?+ZUhCc&`%ATUBi22xbw7zN37SgZU2mqn_??jvXeXYfqP zXxLE3mB=#fMXI>8wdMfvm0+_@xSs~dYVl_Y3x^uEWvqtCYn?rll&{>@4EY?-7Ig?- z^DEzZm~!xQ_0&mKwvBq1X&dh}9>@HSf%%&szGn7B<0B0iaVLq88dHD@#t-$RTHw&- zF;F@#n6ujLU@P^Zl#qepXJ)ac1W#(E%TQ0}baQ4w@Z(9zECsR-T)OVrtcXB>^h2}{ zXBhluTtrQebQhIrZ`i7491imBSCK1 z8nsv=^>-1|O$(Y)c0y91t_yF-4Bl#-rioK}sYGqMFkWq21g^2v-e{>pHwAimL9mDJ z(?5jD8tta3pud~m{}aQ_o<9K+{|Q?JasXAzG(0#)3jZS*RkI=+VDw+?+CTaIUmfeO z;%fM*xPB7W{#CS+6lCN+Ck%N1Qfu_}qRK7ZLg18_=rCxBjn$V&!a3Jk+KQizS7dzu z%Am`5wS{ykhHVDdi`25zznZq}Znt6mjem0kbY5W=MO0RdAOtp=6`d82MVP*bu9HHj zM*D~G-BU#%lCP#fO6>!bdR#RERHH*L5V=akV4?}1pAd@-MwUy5vpNp}$essWr z&&bDMyvU8!1Dwu`cY7nLrt+(j{mV)f2Ufn&wsR|0Wz#OR@h__&wkn0AX^LT@h6LOO z*2}(>BDt%a_v|BZ;MpIsaNQ#?WZsUjM;NUV>!1rdbhOB?1XV8!Bo2~Yf-cLAit-AO zFYjAmISFrozqzXtTb;(k^s~Yk_PLh-=U(>@Yxo~_AtN~eCPn%y0IoSw1uPa6_Vc9n z`TWDjJ8A!0{4oHaB?|&z|D9U!i6<6Hi8TNq0snh7tNyFrEF*{->310i^65S&BID9m zxPufFELDyJB*6;WuW?q?#G#23T!JV z=3#zvC8kxjvAfE)#&aVkz+FdagOTwHv&ZvIU*lrBFLr zVN5@3UQCiwAE0{z%Ypm+@>PfDQL1_v6~ZGo?*M$fb{&%lurjgQ`;>k5J3<-we*Gmc z{Kf8x5n;#^isHu6e0@Vih+w-9lYRKKLrVXW@10-6So0ETj#ow@RR{!YI3M ziE~8g_Z~{Qi+`l&boWndfr;A3ezj&p9_>UACRxeIyT>~F0rn?ep%pM{10VZ>KEiaY z!2&n+H$p7HkiA+z1ElMJl%W3!5E%o2Ch$!QT?Ku3in8vUJ2-#Gs?37hx2>p{Jg|?X zEiBh}OUk6a9xRfUh0`@TrLy7wdIng@8m|xDOS31_@C{lvA~blBHd`Mi-+VqzC^q*$ zyDwfrL8f{ynABmRj2JNyMYi}ny5t;F_n=3i$Oz-{$hkzXQAUT!fWs29v0j4LRHG8{ zN@O{4Ub2qqd+?)Q$n@ef$+^U?F-8~34kYMfy@ammMn&SK$Ts7=k zw~AgXf%`=FI73|jqFcSDM#rka;Gl_3v7aplKr|-X{5IiHDqbxtVO~;HKf&@S)^MdO zhl+C7Z68E0tzI~50G_BHasF~~=Boa3p^JUdG@jjJi$!6iIyR=RtJlG-ZN-Q%Eb}#U zl73wZrxISsK{4BQ8CH5B-0I(=q|Odf|@-;y!oKN_}<2nZ(qo^om72hgr2lmVMF&B#PY7G3GkkI6R$D=$)C3rHi`vtMxrBkFXieG~TO52-&AMEk zH~tfwbdb{m%}R=lQT_PhunOe*B~0yd0^s6SyY_Xf3_ z_6sof#*|zApH+i2it9w><(Z6do%}l>p&(JgJRJ`q zJBFg0^T+92BRi1j0(eAY^fs!pnE)LVilh^QNWg>1>mqy?tGBc}iEWxMlZ==rXW#Vp z*4c(LG|i9)nM)Id)GieUP|zOqRf;^6sHnF(crMgG9H;(*kt(bgdYo?_z!@*NQr&=AF|dU8(UnR#mAV7oXaEl=7vr!tY}B71Jl@Ji(L0tH_F}b1^tN^!t(xGO=PRx ze|k}P`Vh#xFMBz#BK-60SVHFut~Gxb2-6E$bs%d30AyHy|1B!?!^KPbeEN8V3FC#% z>;vX14*uQN{Nttz5IWPVkP1ki1~ktY(%g-B0WxL`Dee>jJMXrk9}sF$@3eUUkrP8E zJOHWC2ULEq#1SCq$r1I1>*pI}SFgdzHucsYaOQ~VUgZQ7b|zPk17KG%^6VSB_{ecxE4@TiYb}Tw`zZ-o0e^ zT%&JnUP5SqmsVld9Yc;eA=lr-vAby3cZ7ikB!!SI(9tsI(td@5=>i~)UOxq!x=%$T zT?oKoQat(;2F08UyGZ*}koxQhTZx>Z$=ft{Ifz>E4AR87zK;-yZIHm$5V{eiB}zPz z$MHqCk)dXzh^3|Ou6%jBr%uPgr1nr$K-8c#2wM>9gzH&{CkX2PC3GEoVi*zV~hvR zSSX&-L1#hTf>SA!uLyCS(QS07dZzL8NtB)8Bl_YS9I#XHiIXzUQQn`}p9fi|P0$+2 z$aydQ4f(;%#2p`Sy*#(eNbe2%K|~oRM+nzeon}*!wZ)ESJo^1G4L;GoF=wnY^AvAPN%?vP*@52#JV@IDo)BfFLA}iyMZ6 z`>zJKbFnGID{a{gP8r&C<+1(xc;V~ldDZjhENdO)8m22N0J|$OKy$a5dn0_{%-Ksc z_);0*;QaIhDyKXF2hjwlvyWYiXOw|co#rsZRbo18g^k%7uY;$MPfxINDxGgS6bf$y zAs7~Tw{dVehmP8?l%3;B_iR^gXA?i6gXzjz!U!Si?x)fU7dr`WtxS_a6Xtwb)(^{GdLUZ zb_A4JwARtZ21e5q5 zR-YKOLxk@v8G7fcqno%ou*MJbq1FHsP4<&oT+8@K1FFNujeb?1h)^cdpW_o}3bFb% z%;QE<1j$P+hbACqn|xj8%iD10c}p>}J_*ko2DJmoYWU{8tS?Hu-(y#!Tx#!~6EZBV z4hTf@^Yg?L=S;@>57goDd2FO-i8AV9BFkdD6kW_Hu-NczF%EE-WQ!2{Ba%oHuwOT#V`VqC@6fKOAb7FC;GbIXAzofZwG7O6PXTlpg< zeb2}g)L|uvxay8rDAAyHstZWUlvth)b(R}5&vyRY*Ql6j(IInn&8Vecms6EGh)5cA ztTblIiz-+xE84Y3F&&9v@G=0k3$vel66&{351F4fhrV3NMMAQh9#+q550>Scams1X z;$GUw*d#eFD9s&FjTPiKK-BEY@rYmXmMoen8pfWg){ji=g0)z;PH>g#)*EV7?-u)a zaI;M`uVaY1Y74Dap4zZ}2A0ixzGEEqM9{buh7g2B>V8c3;hEIOKg$78t(sf-xqrNP zC!g)}mXFdevF|>eiI7zBs2MB1OW?nzMw`dM&eM~V8RGa`{DM?yttv0yjG^_P3`A9|6{Ly znDNQrvL-#qw={tOAvs8Z;KPsPVU2+n+x4^`ez79Z_dak9s^1|#sQe&Lf-zS1yb&vt zZ#>L5^8J>~v|+S7Am}ye#=BQMLUdfFU2=pf=!@AwY`a!9`gMl5qwOuJ2X3(kKCA** zPFRYXke2p)ix3kCBh2~NKs>z(HxZwxhe_T>d33?r(Ve6!KTA%4_&JHgnQkW{$WDp= zFy|b>bAQP3Jtj=3&Rt;3bFjUUN}}-D;3MeDCkU0VM&-*Z9B<};2iuNCl|<~~PnHz~ z?-}IG4z`aR#DWrdLj~l9Qsm65VuI8MkDbP}to|sDL3Wr>vdv{vfN`Eg|ym&-MT>paOf$M^PZh-0mHRV%> zgWD1jlA~Hzx{CvsN^0Ebv=uBM>)R3>B2dcjoBL>o1>5<9-#75ljtF)>#nKy>Q>GsQ zl5VDs1r;!iZWkLSA757xG&x^~mLRatZkHLNuU04PW}Qu8TtXXz`W#p=naC{b_haRr zl_|ciLFdRESA*C%HV77XSUSDZ2!q!G6BbX2r81t#J(F1I7nH8xFU*r^H2Z`uF|5UR zHwv%|T4`OCCahDi9))4YM%taUor<7~8*GxgtU!gVMhwa)kc=SRKfI6x*9{|WQ12^9 zKNet@Nh0Rmj9)E0r~iJ9S>?=-=6$}#qVfN8EB)7N>|f>4zdo)1@?PXjGjafffKqaC z^sqKdn>7H#1SmL~ng8S5+~wbJ_3F5K8!+L|q#uiqB_q_gKz1Ohbpynlb~!n*6uOE| zb!Tu@Rp-d1_gehPf@hs9gTMBPV}>))8gF{}Z&n zZTp!>*a-yt4@BO-Z%T90w(Te6X{0x4SkG6YvbvXpBM8|ZBTi(SG*V(PsmzGNG04|5 z%3<|9Y*W4nkgAAD^y%~K2;qle$&?SL@uKA8#OKP!mv=S6_;j(HRtwVNL?@1>siHU3 z48eu!22=eyR(2gwSJ%Tr&JK8ONenp*WW7B!QTduYBka1m$uQsSbao{<+lvJ`69kt3h- zmLAcoyh^guLl7h0=9g?1S9f5(QjezTQi^vLtj~gxfqCTjSh12~egYu4SAs|OK0Ula z(5V?7%J@^hn~~ETSmz_fAz3;W8Zo0-#8g}!0?Xq{O;yyWkXzy9VEZTM%s|aKp6p@ib78euLpu z6SF(E6V)7p1CA2m?RvnVzi$gD%~V~nSMc3l4i9^~YincNaNaF@#SC)OiDk@6wtW^^ zfhW?jtz8gC)sg^3TR;?o-Hys+`$YeaU9jo0b7s4Ii>=lh;$P34L3=@=>GOHN{Z}^O zf5(W+=cxFE0k}AR2FI%e82$f$wEPcd^WP)n(*wtGo*7->a;+$&e+62!4pf)sHMx%R zhLhd85(GmX(%K4jZ&X^&`H(jy$zu&q2sW29a1eP%GJmtkoLHh*FhoM8=EC>e)I)Ra z-Tv|N6^KXuE)bX)#YYI&cD73hNY&r)ya@n$mqg1v;#hFD#^OXiP$wfa%A1>2Za)W7H6p>(w(axrs^gCd(6 z?y!{ZGHEQuB%8dk2wr*o$h!ek11u5$AvlF%+wY|KxZ+yL&0Hy)q|qxDfLaVc4!mF! zt=)XVmg5oH(w0Ue8B~z1@!DJSc7m`73AgZ(nO8;$?G%+&>f2pI6)gY1(e+;^<+H-^r8YcX5Pm8gM8fpiE#OK0TuD@7*W~KAp)ukx6Jt|7uZtLGWcig5YSs2m>LplxAJO-3(zF z{@wA9>~{+Y$kL{$#p1gteDvt6KUL~JX=py_y+6H)gQUX=y&B_ooqSK*F;5&IuZ;(E z$=u?Oo{>vR#U^$M-%^h1l8;EmCUwc*B8_&EQ%NZ#c1hj}ex|ufr4*9BN&TJXvXq)i z%qBY}ehxX{AB9X*loljwmvV_Xa7|>A>LGuQJYfCIb8W|elf5Mv#UT226--3_Gp`b_ zgUv8V@NoYZ#ZSac6!{?k#g6<%a)8c2X0r_JNL_K!np%ohx5=s76~__pWCsKA8cu!D zP8a!%Wz)J=SmdV_t7rv*P0R>+yl7ayHZa{}9XHmYN+UYl{8vIiPWXuYIILYJ%1V)~ zJtzep+Kx!Dg{_{m#1s22zFsnp2m0n`!v4AK7p8dozA^YNRZ|&zpE7Id4rWMk>t_5Spm$9uW%EawUSz!2oF201{fcp1qiO5mfXa zl6Bf~;^frF+}D`j!}&Q*RhEkIP#mBxLN6+tCSxJkycgtTb4*Vq*qi4<3P->eJ1%PG zo!@0UkcQotPL)NSQ87zgPXT{2jT|&fpJ5&)IjAzeZWt7IB^pgZ?feL}=nr2ZDb%QE z2Or2@QN1llMRif*pVXoq zw3qDqr5w9i?&+R=k-8cefU??U)M&D3jfa+*ZzIJ(;W+Qa44RTztpo7kZ?AnZ@vSa! zP%6+#)IH%OM>`bdYiEm`(FqRBuqV-zOK^bB;&5|`19$kfOgf5J>`llba2O~Mg}|C5 zpk9($H!pBW@NhqWVKX0Y@%-%GiHSC2p|iqp#(A_FJv8U%u7hw)xxCkA!I7b1J3Wmx z%-wg{A#gijP~XU>N&!f*uaNP%;J?=KoG;4|MpZaad{*`nCs7VeOI{ zeKm6#m6uJCFWE^xuMMmg<&Zb}yaeU8g%ZU?9sf3T9#ey`6cw|B0(^E1p^ zO&7mWSYMd3n}2JwL~oBNM^yQum^HLAYu&h_&2^Bn$_weSRs`Vr)rA!}tsnp=D66`@ z=)fhYF_h<4F=wr$jm*?EdcZi~mcAQo%Q_M2O@1d$YgQH_&PpE`k1+m2Ck&%bC5%^# zVgNVMcUKT+NqPPKIsoBJ8dnN;RFi~GuA5fOY(^?ms(^fwoL3rt6e~&C{Qf$EXyLL~zcF&!_Hs4LA=mspo z%y)Oe172hWr0eWa9T3k>)xCWn@Sq`m;8Wd1WM*gw{Kz%h(J0!2EWH%J3BC zKw45?L)%3yGv%uOXGPEuw@v|73%t7t^g-i-sgwX?5#taA8b%yQ7iu$W)-TiLZz57% z&^9xs?PmbZD0{COr$lY1M9@4`ax_KCtp@m2^E{w=9tKo9?ypVr+FjLm`Uid$ru)oD z%Tmee3C3?ISrf7%dpflzXKm8StK7p}k%dNcq$>4Ee|$eU`v=g=n&!TVV!A8sLs(C={#GPn8~szzGIfJjzQ3!T$UhoVYa(u zFAczO^=>$PzASK^NnYK1ux;3UkMdIEN-?3V_*UH5N-dew4EtSJqBnW}rxxnzI zC0W0qEtSJiB)B)!kwSE4mCB1%eiyPJ*{#)jW7?fltU>IaAODh$b><=Hjv!kt^2>ze z!8xuYSdm~{C5@z6N6N3i@bW-)T-%00MH2v1uIRI%|7H_oT3(r;!&D@AsBX*kht7*% zRzGUNUF6sNmgY5~KNMx%0#p$vT=}#Y&dPYHf>}9Ak&Vc&MnZR@Jl=@nUsCocDo?%( z;BQ?D7UfVX@+9toY0JTH0$+^EIaP8D-uk63LEnn6l#k83i%RNdCgZc_xAvoGp^-S+ z1)2Kvy%>aTY4wJ<3_(9iy5WRGfPlZ&XPuSf3UHqg&)NUY#}`Q>Z~$`!YnECqbq+=v2YfS>0i7kR92g6--JVR%$SuehvNOwUwS?LS}zgEJRSkqpQ z;1bMU!umMl%FG~;Ci8o{{{RQs2%ALhq6gX{4=;H1hurVT+1KC1Ua$&TG#vJB_>T;j zjRv1JLnS3>kluPiZr`;6t{ux~?sV)|bWXJBWN^?sQV|t1X%|U6jYSE?o9(^pew)_> zJ}_Lt;8d40b2!wCIuC`)pRa^dTJqYFHGADsl_>iP9{}xUB_Igp3N*VJ_R4BhGQ5~` z*^so+XX}ENQkYR>OoYvwEO&r<#?Ea)qm0XZGM*BAJq%l^KU$dpW4|lQqfL6u{EnTE z4a@Ymc3HhEGUQB4#7Vg^IktISY=90>1JrgDv6W4ZSs_gg*()HJ-Shd)t0>id)XN zvZFDW(K%+bqttJI8GaB^Z6cRdiRr#R7oyN6MDnph+xOv2KYEn28#vs@X{y~*7N?AF zzZfo?vaw#WkDB=nsNGE1pPfkGMGv;l%0JR0ydSqm>t9&sf6KBTc?&P;cdfu(7ZYeL zXat zY9GrZAwzYBoKsEaQrY`dYdo*P8G5F8yV``I4C8&WPAUIT9kL#*_^KW$y-m*M_z`d9 z+Aa!`vZQ8(TCUFxpiWsV*O=YTR>df>0xiBx$d`$8`Epvw*LN3rw-FJp25X5@_!caO zxa&}NeYh_IP8$wV5t)SNgL`lJOy?XlPY1WVlLRL0nAeCB&SZA=W=@9*v+-Co5sMDi zE)x9eOOR`S2B-YdU&juB9_jl?RrGSgR{-IDk93P}I&i}uE5ay6Q*!5(=7prnQAnDK ze@7q6DQKH#2S8cmOaZm$yi1RNesDbdfgjgT!D}4?SlYth7#5qqK4Vhgy5pWI<3;oRrs(Bgp zbHVuBHo5;_;yY+Im=-|G_nYbihEQ+U{8lPhOIJR6$Q)*6cp3i!dkANI35E5zXnx75 zy)TQrjRP3^lhQG#JM!knx4L#3L8ZY6ViWP4vVgty=l)Z*g$Ul9S{`>=zT+dx_EEpS zW7B7{# z2wqeN)H`V}DS800vSLACNZOzXYLwJ(DfYzcBrDQcITMx$kO<-kOc`6c2u@VlY&#lV z3(Il%z7d)8^9iu)`KKx{tCA}?D2y7XbS&|F(Qudue?V2zlSHQp{IgV1Z!ofWcefu3 zR5lmx;r^wR6uNf;P-~KNt1kVPuvD8sj-0P-Yf6I^yBH8d%+czFm*t0`@mpke%1iE~ z3M0wSuimS`<6&ZL5v;d_v&c@jGU6ci;V~37$=x?&pl?kUD%iM3J%2HOO^SL=e|@1o z5}B$l(Y0N-Oa9{#QvPy@82rdw=^$2oNQ^qu3SK<13&)aeV7MV~{n!~&WlPOe#Iv39 zl0K@DJKtdzQ+TOpEVL$Io_DOl@^l9IxVO`Gk=F2$!~g0SndbZjje% zuAK_RK^Sx8oxkDB1Cp;!Uumz+UD{YX+S%N(`@At+JbN@dn;#xz1HC3cHW6z;9`|5(DrVfY=Frn?HIMIJ1bq4?!=pT0gAMjAGzB;b zdjOP#zwSl~KFrAXQY^gEE$fO@y6H>&{$NDNewu)xLWzD8Nq(a8<@@a=TSnGDk3HC* zFQrS(7|(#UW}>oPHi1zfvd5nNMQ38|3)d{!&ej1TeqvA)*GlKJm`xgYiA&~^VBkF} z3CWm|wRwqQc_Sx!a58fiw(PLAT$rsJ&>Tj@m~)=t!;6Hb+w|MQyx!riRG z26%T40)I;I{OC|hFbEsBS~h7O%-Aa9Jic9w=Zo z#V|@de`?B2nfrm^D^prXBmr;z7KNvAc`{g2s99%OT%707Uia9`VKS~GN6b$(H|K~ z^)usLfd^9&lr+#E6;6=M5V< zRlQ8zSf|Q@Tz!=wa#&4bH)E8}lQ02rD^+(!h>3-jkTeSo*;~zg; zIRv|D=M#7M{=ViZM;TlUZOlNk<}in2NExU2l(R-DD zQcs^^3}xgisb>xArmIFo8RP_&1hv$wQa{+|)}LjmEwgg3(WeaODNF+rkj!cPP*)}1 zVMGTa$b!zqX4K=Gw15T2!JGozq+rK0r<^n-*Lt*?bd_bB?jj>e+c`@H&?wXuB!}zn zGE9W+hM&eVwe(6dn(_T`QU;9rZ?wospG0@5&%u<9(PihcY25BUl$aD%)x2q(o3K)m_$!sUQwBcVI+@s2Rm#}8Bur%W2I4}Xq8KxOanpJEF zq9~mhW~>RZUR3bB%FFZx>8q5jMhZ)X=$W7oE>B=11j=o55F^4!3#K>_u|jc}+}do1 zQ3crF@m-xMi!R+E%Y!`wzqTDh>5e&vjQ2fsKT#t2L-tAltMId7EuHHSQeCh4mZpHy zyC!o}5}=y#n0q@qOTqxs37~sbQZSy>#wSacGqEjnLjIs3LXT5*^`a^&n4v053>kWT zbOU%onYL-Ef8$k_$Ek~SX&jVOy|=>S#5O`&m1e4Zv}45O-t#^F>C0^){V))XJeTx_ zJ;L(m70=QLFsi6qY|VepfaF4b&VcN~eQt~R0>s)e;gQq&Djx92Xbmmxo7aRa^%~z4 zC-s`%q$u?o-83!z8k92*OrxIyauxZ>u8}M_{fTmoPOu=I4Dz<%gp)Ocja|(cn9^{y zW2iEl@lMWt_68VN@$3AdEc)|cB_u;o^oI-R#{v*$;l88(kPMpkyO4|-<||V6g zhWGQX6*`ZX8Z`y8?=$2H$0&m>E;ChsEvAddj0NKGY;tQXlAKEA`L%@}<#wxak4(MX zoJ>g53EEP&dV>i&CJ{|nS7B!NQa?;9O84-|K|q0mU;`ivPsP64V-p~&jKXO}G+*3f z5oO1CNEv(nAkbLJvATonguieI-3)H|QKy;j7uz5EW3#fZ&}szTgJ|uT_MCgIpkLuf zj@nA)tU+Pja=~V8-EzJk;Ty5(pD!0gH0MNxe*Ok;SO-G@V}p0a+h0s$Dm zprH)-&y&HlT}&f7G=KOn!+Pr71oWOqB=%p6@cOKKltpM|y$8&lcmj&vp;%50XSe$? zSS_l}z_ltb!DLg@W8fyU&_k+NqtULgdeiXo=-&aBa7s-W>&O9<5KjRDL}r~}MKCoX zm1gmk=JC8{3j9&9W)mRX6FSt$bfmOlw&dt@OR}d_T|z&-l8STdBnR<8sALOSAlH&q zqJ+j6EXIwK?c|G%LEzZQytPrJVUKQIU>|gTt6F?RPasx!071_r;gf(=v-L-leEF)t zetH9-No^P)pAZ^Pj{=I2!HdqNn?eUPmVNCFF}c%3welVl0Ou8x(Xf$GZlGQ`+wsBK zB2y)#9WecfYPxl-r^7~`3_uP=RQbT!F!~htf#s2bzLmharEJr-&6NgcAB4!d+o5$i zS~b5tv113JQ4UtK4cah4-%y&|Ir;_RS&0wWpe)p8ljE?ZkNWX*Z$5*gb+pkUX}1ce zCX*u-L&;9td$7@>QJ6MPxzr`ag4XeS@5x|HIlcPGW}I{Fe8ejfPnvFB%CJFVKRsJz zy1t86S2e4FsR7~00zw~56r5AH0+MP#k^QGAceXtj9H5BzO&9EK@EW&P- zzyU*;m|jW>`eU}5!)GM-K3ZcFWa0IEu0CbcK`zyeeGNj#^ir12akCYQ^j!ix|Ju{a_+lR3$qqh(bs1X%tnITX=u`{I!tZg-n=6Eo2?H_3{i|lUykgNxK-`r>5E?MQO-Z{r z_$xsx7^(hv7cycc3Tm*VJc7d()ps;pDt6?@N$9tF%_jA$Ht^Hens^A=*l|Opn@9Oda3j|0htNg;@~4$ zy{23EyDH^l4QPGR!XT0rDxZ~@U25hEmDIT^fyveA;1(CLM?>bya^|2QfSJ@IGBSM< zR=fp_z~oP2grC*db2SW>b!K@JA{>;gYD!L&2=$XMudQ6Ob~TwR z5CV4ntvPvm6KL3I%nMrAR1cQVL=;x0mMEHUJS)}mjfW5ucYdOpu>!|d@U3KSmA;i)Uz>hmN(hPMXCI}6Ce@#WuoVN87m~_!Fo4#45b}Ah@Vv5g|-Y=}>XLe4Ln}^^jYqKOlS6e?#0GR}u>zzx}o!a%A&g zzwU(Sm9A#X^grcpr2j3h zQmv-%Ixm4Pkj3p`hTbC$mjCrPbwfT1M8Bk*RnFJ&U^Hsb*2#4p9jb9^6^X>j>%5nl zo}wHB{eOkU3J)6oXF4e>3%7~fJX6Rw{~UQ>1t|j zw9wiE5OC(EG;jqW3!Gw%(+oZK(?j2=Wr=oK)?Z7_1&k}zXI^>7trI@Ao@-t_^+(u3 ze?LXjLAOC<&_~TeebI&*2%kUZOG=Qd6u=qQzZ5`AAp4f~>Kt5G1vC;P-Gb@JFN{PC zCN5d}S@!AeY9n&Zh)Ochj*yTdAC{Dy9TaQ%l`G|U{gyFt;aj~vibs%B>E$5nbz{~n zH#K$mIbf*f%10zm|3EqsI8c2Vd%bT}_o8SNCY{)hc^?AS4b#5;VD+;eUAaYX^Q^vl zpl`HVFLvTm$u>%u?J3>#bFH{yr1kEi$cQ7j z`7JEse7EKPHSC*CUDG>N6+anPl^?se1;q&MpJr#XNS?Dlhw|s0#OC07KxrSY%4z49 zS-@AIQ|hH%2Wv;H8UXw?#Uaco)riVr8&Z^&f=GU^cf6mOWZvfFl#f$uOOpW}e3QC+SaO4o2HrOaDgnl)& zjufCssl!!%GUmO!LPD!mwc&w%e;KLeJ$s{AY>D_5MM5JF>6Mj9FmvOo0NWhuF{`f! z@>9~=vzS6X?*rdhZ&3pg@(J~?RpD)Y1-FS^;r_;W+B2<88Ppl3 zKG{l>$G-0Ln-|9+hJp>6w%!H;xtG3VjaP~;-9DrYb}@5Hu5kJ@2IgKBu08Kqe+9Z_ zdhlHKXWr@Xzw%Ch699;~J_Q$@l)>=+F3;5H<@ljIU zT@OhQI$J;rmP$&$NJ{wyRfb(#B>^V!WZlh^TC}Be(jcol^jQrBg5^lH1QbH%E_c6fbNdy19JFV{^rSeEeZlr zLwQ~k0Xx7_XzS1!r}Ztz^1&nLQ&Fa8a)gnlicjD5Q3U~mDj{46l^5~ULxypWm7Kda zlSpw3icJkeH*t}cRg^IcbFi_SB=1r?-rFx=>hCYia_F|cU6bxve29K**G2PMi|15@Q&61lP1rr4Ish_UJv(fnjw|6467}5Bz=RbNy|gxmK?Z zYZ!n<^8C;IOZvn9!;E&|71)x|EC%TB*f$1BuPLJat+o1hVcu*zZdg|%qZ z%cvYr9Xg7NMib36Uu_7#fe^{a!H1ee-5U|h8U1uTBD#Hezk%I>lQch1asE0JjbIt; zSs1QM7bXJ7b#a#d-KGdOR@bYTor_e+EcBU|>4 zMG{|Y<>nQCDd$W^#P8sELbv+4i`5go!HtbG>9Gy6G#6Z_5=P4^RwUTrC~5oDk~Qv3 z!+E`HF6*&WWjEF9)wN~V=y0^{+UHVT{@R^!eVOd$V$0+6WSuYS{ct_w1fdVTBCEqT zi0C8Xmb;}LwI#1j!YAR8xrG9ZW|2E4;FIwv+;WcckzYydKx7xq`jTHIef#PXdB8sU zot!A)o19D70sSZyd0yf-376PUpvN(}Vf;5~m%szkQHsP`sUFI9IhW7_+EFf&Hq4+i zRCKk|uuC;r<`O&OPKaj~wsL8ujURYArX^hY+SM|op>!08B^5<$7_y~+_TKcX`;!)k zd0RF0Mtgz$Qa4M_#*$18)|$1OEjJl39tZ493|X3%>ikb#q9G}rlHBOE47atWY^&`C ztGt>A$rNJpG2!8ft){(+@osGj!Vx*{NCzqAay#Pzq+-R067)j84wiaRRe~;|Ub_R@ z<+?tXQ8%ZlP3O%_)g(E94YumA6M6c?z_384PW5GmzwVAYN@Nq&@4 z`N(1$8lPnM$U-TlshG>DJJySnPsXKYbcjXu^7*(0Ne~@Fg?R};B`Y|I0X4+h#9~G_ zC|23?nMi#$ycn0OL#~#Qx!}v?-l4a_CBG%U0EYdHy$ek1$!6G|89hSfi%^@|p^w^P z%2uGRywJKh_vuVb(JIjhF5H<%m87bt%_x5H-04~s3w5&<*_nqQWlI0OHLl=xxC56l z%6;cU_)}Mt4+A!!pLer*E*yS1mCzEoc990ZlN(1OIUoi7i9dL;GkrgUj*O8R#VI$n zbAqf*kyEJanm2;dIMK{kOEhHhtLw_!5w)^6f$1HuMG&t^gb1Dw{bOA$oF`%ojXF?L zq9o7({w#2+QPP9(>PjSbxKJ%xk?lj()x$cWb3JE|rezh7n^L{YU8{;xD|Ropy6@3Xh6l=ke3cQN$5R5uvD7EWBRA*nus)<9 z-WXO))JZgKWEVCOgH;VEgHvIgf>0@KBV}XFAfY1J0QJjUOSaIR+&S@~juax8bt43k z^|L0(%03IYrA)N2O2|(siYdw|3N~Z2OUOrS8M{WXOCtfTK){XZkap{+Pg+u8XSFh$ zv%=D1HM3fioCi%5AosPl7vg6c0A0Zi(nWRK>h!FF(7gif8X6_%e~DJUTG~3?@`8c2 zxqQ(N9$IyzIhB~V8qAHuYbnH5YpA?rGh!j^PPx&D++L5#22 zBSsdI2ZggzrVWyGqW6WmrludM6l=cVW4g(?gC@Cx+vgM9$s)Se-+i6qh-*6xW)5>_ zbk8aEg6d(5$qkY5l(nNpqWpszoI%-Vr0c?Lx@u(s%Us!>4u;958Bo4!B0_Hw2%KPeh7x}5piG?xw4@K$86g^`_qoS5;EOgZ-N`MQ6eD1 zm1SRh!Uxns!0wtwU9jW}%TO?Lp#1bONIA1C?L^|WK=9K_0A)jZi!!*4TQ%2SS%hy7 z>f^VZpga3L6B+FZ4^XJ>O#BIQ%p`OpopwO_D7^%h(OO$N4gK&JqqX+*a{6IRBi^=j zYkG^X0l+I{qDIz$cE^)u)O>Mkq667iNb0x98|AZ^Pi;aaLDw%OjaA^x8oVbBM_wA* z8iCUVvz%VI)f6xExWd)gAvp98UsRCc%cq0(RBrg9u+HRCeIUvuLl-QhI@Dr_&gcQD zJ_zL_p$m*cOAdnWoU#Ie3rQk2af*x2if8_*K5*rwp$h~b^J}BiXZWc;Q011P3mQVT zH2zh{bqlUi0!&4ZFZH-@TE`6w@KW8>MJ> z2ar5Cl05v#3gq`1eelO29I%CrrQOlh3d>`Nx_Kc$|A7B%?X2ee$K3i8pNOi0^`DsV zzZcIpA^)IH)Bm4+v5KrLILnvMb#ish;)}n=wS~G9N|!nWQFw~DaPgBHmzCLOvYpP2 zrML1maqheFo*iuuFbXz9j*@Nr$^7Tt_yAdeJH6M*fEz3up-Vc0aZQM~h_foim;=gf z^C4w^T_u@x83b*DWKLx&yJZ0ez}1X?COv@V)tP7NDi<np#3`3@don)Q3I9x~S%r0F((*cEQeN z!q+}BkLr(W#k~);<_qTN%A{3(`7e!V<_P&R+`nrzP$hbv0-5z+yZyAp0s)eoE?rte zFz@HjU1(Q+bWcBYJq3198+PdVTMiAtpjN@Rk&J&=bAQdH+NtIzY1Qc#{Qw8Lim5+h z;g6XxpO_QVRyKaZ~@^(#h6{j zeGSqDhKj}L6d?I^Vg(ZdZB0~NHa8yGk9K9WOcw~HlsP`Q97u^&t4=VJ*?0;g9iaUGpwG0Qqg zh(we+xtDqG_~uzlv)cWo||vJGFGo;}{LLdQ}(}e8s)Uo?|8#lQ0Zu>Wej%zw842q`Hw7!oL`kiWnEXZK~#*OTdSmFJi* zgm$R?>G;+E>h*Q%<1&w_2Q1*OFX>BgGkH}o;dj6!H?}i1-3(_*RtHJM$fDAU8a*eW|iGl15HnXZ($w976^-a<9ZAZ%#*P}^k>%#R6K*Bg%XZy+ zCzvm5WJ{GTF=ssAQ(P?~F1*I(TMqLg^{oN*b?1>Csxx-u%r#t-Y3SUMciM|f=_H8) z#k>_@mSEM}vSmYT?vU&~@UX5`cJ_+}$%83tfe)~`sbA14BiG>Q3BASu)LA(6N7?N* z-l4&mLpSJ5$l%p?O73oCNz3g@Qt0;_s_qq>nH+>7=2hynBa#B&j~Oyzkh1B2S&RbK zri^1K+;a6T*C^?lsf*1uj~Zx1qF8Bi6g3gS2S%`ugv#%<=@ac+4VF$tM>Kf zqrreH_c>klsjpxME+Wk3FGb1OrKh!*ji8y;qGb>fKQg*`O0t%e^o*hT1$ zR_P%}wuFQm{F^#Tk~cqMc?&LdQA+@e^Zj_djP*K1QA*FMlwy9H=`(&gqj-F5+K;U? zj&}1eB`4ZFy_Ufa*_aG;L0)ZhMcdmAy?h(+{X z_lMSv(`v&~?Fr7cz|HV&T+}K(XOAJosP{~ywlb=Z(t0Pjg5U2_fug_7X@ZFmgr?Ru zaSRxK^RwUcQ0MItgTZQkr8fWslYc0BgUx_`zlrDuku18cQ;Vg}W4FfqmWh&gq+ITe zl9%vxQe3lfdOao6WC2m&(t6}aYX-`DSwy`E^UIICrhSYcXMPA#GHlOKqbii>PSHWr zB%^E?U>(e`010-s(FR^ny*#r*m{FGm^W{KT{_QO2ekkJkyx5UUWsm>VN(-^JEd^^6*vdBD%{ahE- zL%P4g4XlUC_%ndhPSfAN_Dh&elvt1ZlN(RVjOP|IyhenW7n$>{HRMUJ+|4y$S*K7}8sbZ^eO8)lbL9nBAoo zIaf|z!)Ow<99o(bzU$O31=pjL;t!}y% z8c`wZ2C0Xk#}jIC#-twI4yBvfO(*ch$Bjn;*UurnmkK}EoH~vZ=c3dq)hapW+HQ_? zhu(Q@pWf!)Y>Zrs&At@pw2XuFl_)O7jlo|jGz@phcEID+*5NSOGNlD7z?1qO}Nw!f2!9~S+f+Hd_)4gL-&AQbkPam@M@#CMO|WS41FB-@4% z4>;O3G$_}fgs4_b%Se?bS4eG?@#tL0KxE`_xwxF?)b5v-C9JwB*GbQNYF0F^QS_aq zF&qJmv{DP75tqG(WBGF#bs^L$&D!?dpx~kss@{1&fu`ydknC57j=FXSEA9{tj{K>g z_}>8ca3oM%cFXSp#H|`-F5z@l>e_el9jBMaT>E0SFB={vXIjwhf$peS1HoYU*2MlX zS4{qJG9g~Yk@Wtm-n~ziP*TuKSjJ1-H`Z;d7BJ>=K1-=s=h@L2hN%bKxTpAyT z8D@S3e$)jriZs;Dz0$Tlzh;lX>Xgc^B8;xP}`?1*`hI-#ZvA#J?65AxQ^x+vXA#3EAEOy@;O?Y8wZ(KyCR_eYGH?X%7a)dvB_y)^%%EupxiE=FM=D? z)-294SRH}T)BfN@97Bnfx+-n}wCSSRo4sdFD2ykK#1{frfY8U%t`<#Z-uw<4@B#(y zz?Q7f{C$(R2-emmG%P0hr;rYFt21Di!F*V_5CMt7VPnKc1Y}A0c9nGI?R-bZl}p)U zQ(6nndR@ho7mhC~n}|L06{ZjJJLbK^xfh&wR1YYb1U6Z)_+&e}((98TvuKzt8Vq{8 z6ka%H4|ft-iFZJK7a1Q@USclUH<6>|tbPejshD$;(eH164b~pmr_yXcC9yzNu>ak- zp#E{*%JBeE2f%uu&7=EGo!Zron8gEaVee{6aX>fkDdv)a2}`UDAjN)V(g+?okCj;( z4@z4G%2T5SZ_p}fs06Q&?-vgTN5`?K98lA$ypQtHJ{z+tx3#qu{5qAEc8cJ2A@hR% z8}=aE`Ml-e{b78(!##)3=TH(Tl>&^^f%%j%h=>;>1Ta+UlLv*f^%blku)rrtL?BF< z3?bnWC#*WbBfg(Qf>(4qgDg7MBfY;#!aJj%l`J~`5h3g%-Xpo+nXFTM`x^>l>?3~| zVeBJu7-8Hab68I7BlV~IzaH5YD~bT+6)Z{@*%d8H7sVAW3S-X*_>2++<63iL8lq8oW(DsIXs zw5&WsqH<}}jj3dm`$GX3(oPx8$sP3wlZmh&b0+dt&`*gRv(S{Am$S*4%t;K^b-4~h z4`n~(_L+rg1@D=73gDG=vM;69QY>Z#UY>00k$}6&$UB1_Qa;{SNRnVAi1}#QwK`>Bqk%($- zx>~2?2gSg<10$-AQdKh>ZliGYMS6uc+ksVz z%(BC6`}DA&emN_&Yr<#N36ZGIrFLJmwnV3;#4%6JEm2(%B0r(&1HQA=O;M#~s-oC~ zKm6jcAqYJvdh_L2YmjY{33k!s4oZw+4g#*vG)Q&=-I(!=g@?j8C@PW%b#6b}atzS_ zLoJdyq5wW^Munvb|H#d~HE`7_V0EoWZokz;NsfCj-=GOUPDhLyf-$MBVWVPb`0o32 z8U-K1%4J5OopBbR{RD@we*;kP*r2ZSvWra9ZW;^HxgW~SsqGTm)Qj14wIM&B^V(4gR2S^{2W)6+bL6DI|Fs!{5GB(oWGqK(t2wZ)FJE-FH-m9;t`AS$V4W}30*AW0ruQ`Sw#g^gYz-j7e#e|;4$#j?9##zMLQ+$%k#8%K>XBQ zh#r%_RxRp>esJ`8(oHsoM%oTUx%>$p^1?spe{t8TI~)jLKH#4>q5_(#oFg||_b<8W z2B|*^#kkBTR5q@CqH82Kj@HdplI#neILrv@rjqrU9Qb$ekH+iLGUpA6{f5e|A7AU^ zrR1z^HC9mc*CL0$s#$9~jFfrYuy{u~_Zfn`J9T0Kv>|_Fx@r9inI4QfgF~_y5?zi| zBNYRyiBcf|%dI_zh60?{iP4K`25=E6faUr@1^XLm1axk>vFX4_1JhN4*KK#8C-*o} znvd54U(*nVcB``-U5{W>)y;l)^Ghf~a{oY|{H+D0=_8CNTw^N`L?te;3;vsE_h29A zWb_M~AcT|d{%-gz$mJ#xrMf^+us?4Atvs43ZpC;anFW1qe;S~pj1VRumR>r@6O{D_ zC)1p2e7uaL)NiN9RMi0X=H8KS)K%dcQjku1(}=;u6qcZgU^tZpJ7Pub&zi~b3YpXzWI!$RTIXeIKNB>%S=o=$3aEg5xFoA~DdG&H%u(WGXM1F4 zfwKtY4O|4!>f`}mhbRp^c!9CePM}?${E})6GMWvn-@2tVYv`dG=RqsRfTf@O;Ej43 z9eY~ex*_Tec#v$0AvH#Um3_KHY78D6d)NeOSTJlD1Ne@Ci?|K=_zi?LYXWs@Tzw7t zG-^np?&~2_&;79Z^`{*$PPrITp)Kuekm;6~!MtWbD=+~MkRaL@pzQJBUSY6}J%~1F zu=h9t9p}J}Gr(=5kQJHWUKy~BBZxL^pcrsl1n~#JZVjMrQHV?6a2hp1ux^!vOIR2- zWC2mvKrhXpZdr&+8W=Vpn5UisHI8%|PR{Cs+W+j<~vcwyNCVH=kbZ9rhv0u7w` zy7`a%Y_9;o8N&fz9C{j`{X1g7wSx>M2n;y54LF|sWQ}^XS`0W|{5x{MwSx`HKmTCQ zZ+#n-Jq`S1H(>o3@*Wst{43KO=;<875<6iH6|CDAOq(`B4RF{-^d7rgpqEHcH(c)p z)Qb2PKkz2!9=p(~Z+=??b>ZNvVFqoy-Ta99HQj)7KSm=$LK_&^#thKLzVPL+PF?=; z%u$NfG2Oi^-}3fYUGnuugl`qs(vvh7*T4}!4aA!b++X~CV!^!#dh{-V+J=DJFwbwm zG6nI@i3muLwL5W5LrPX#@OM>Hq=CZL$8H-VTRDKO8s#woclPYJzD z6ZZgAL4jVM)^BBy24?4>Psy~ZniTV&Dch^11Opb&^UCU)cR;(r&t=gkXKDS^OT2+8jr_I68p?Y0fdN9xVT?j%Pz2%^&>}q0qCLtQMec?sP(OIl z{2X(MWDtT4tf&x;a+${A(YxCf`tMLH7?c5n+>f<)%IsAqZLkRjAR%X)WguiiE@$mEQU#*_!PmMWqp?k8~t?r9+uBjYqgji(- zUs^C)^`q}lBOGD;bPQwTkL!K-i$$N9q5KN^B+En*{?ChBLJsg>$5f&}<^;GY;vb-> zDXQY1ZmH6^ifHe4EM_v9YEdy34R`3|BfVk2tCVP{gTGo~Ce!JBV|5Nwr*Q8bmkodg zB*I?(yo7{W0FY&eLDUlyS*+ttroCj{TxAXEZ0hO(FLhhNK+6=z_KZWBT~UV-kEf+_ zT%{2&mkcYwl7ob}?8P>m@=0_!&f#Jdq*)8p5;yI4{C z9X~6H8T{|=wx@B#{!!ucorp>DF@yXDN>OJnZjA3m4m+B+ zwL0!+BQu@82jJ@b9lgAJ+P&6a?QJ*bxAvqXJ=)Z?qGv?QUcK{mxnwbzFm;Tj>l77r^-`pKvj+=4_?Q&wtyFjUx<*#R?1n^2GDG`e2?8%cOuR_O0^@u)oN9w z5bcEHt^uP_Nra>4MB!#Or>ZT%iD83iyx^%6w%Gaal^O7icB^}*|N8>k}&+GRLQ66UIC6Y~`_(I?8 z!GEF#51{3JOR1th)$~pCv1Xbwd#d4$J4|cNK18ZOpeP+3L12ywn>=9$IZwCNIo6}U zDKiI$C&bj|6d(33p2xg4d`e!fy3|Y!q|r}gEo1A2y$q;evV3VLaPUuIBi$JaEjunU zPB>X@H3CltRtB895l^@QnX!>gO(MCI;8RSK1Mbp%Ov=r|Z0&9(f*BR#Xp65<=u%|UV%80(kY_eYj1rYk7N5RXKU$VZqf)$|7( z9l+u}#Fgx})HaND%x1us&1=~sSk4rr(?p;tN4S6IyK;U9&R$d4j3LzUUpEs zsohv5jC92nhl--e|A0S z|LA&uk*>cM;D6lB{s$fOAFA7DppzZ0C>md#TYKXU8^s%ug47%veIu-{mei93R8#_l zEwg2Cz63o~{YF-5*h1UFd4+U#fV!Xl>lWmj5_pn_AHT{x&rYQ^9xid>wfRK{>t}@V z{$%Le?Q#wPxH%|_q{y+wkAy#UkPc8qbwM~jjh#A*sikgEKr+%-DItF*JsFO1E z(*jz5_^on!rzx+7l9yopcW0OWft-PRE5Gmv0?4Ojx*Xn3>ehIFdy$M5%|Jg)Uujqk zzxBfVv09)%M`m|~(3Ym->{&=$y{CFb_HTE3bI#55;YI?t)@YsQA*=cop##7GP@j(R z)Dc(m1(@xLnRQHCJWvZdGE~cGY^jR7#0Iw`(>S|GcT>Dvg!ro5*Z~cf3qD{dEGT@g zr{Yym!Mc+(b09W-Cn*poslwa6Cj5v!g>liPLJ7aAEWxfHe*_V&K5#wOu+B*RqugYG zDVAprHBP34KGDJpZoKFxLkz&JucU5Y3K;_K27Q$P4c53k8!US&rQE&bK`xw{Q<3NB z@~aYSOf)bn-D!9?E-gjXh5Zd7d0)%c#urnvfcx4kH_Eu)CL9vAygH@61B5(D3FUfF zaSCMH^Np@8ZLT2xDy6O0@RMT5pG$BF!+RM*Sv4b&?K$3xBh*`*a*2RToPDWBxN>s5 z0cO-isgfPKz>jeImEpP>-+?{7c6PW$#6lF|Z?_=K%^!Uy{WVyZZK%X|5+1hPz?&)v zN3Pg63aJ{!u+L2|6yElh2hWSLFZ&pQPqWr`-cKDJ4YKPv!8>rjVvr1e%eq30WGGX{ zRzMd;Q~2l?TYzF;TQmahu`1jM#m*2-;CO}ZvnR8QFOYkI7-}!SN9@3dOTEz<2}r6j zcP6peDJ2UwmS8hR8XhAl`+*2exa7sir6szDyUex)H#u_e)w{sS%oC8jy!bH`LnaUl zDuW8b{tEEDR;?`y>JeiF;Gh`5fnjO%Yw9{cA1FoRn$%e_+^hnihNjZ<7jpQzbK7rr z?`Yct!|mLYE<^S^#1zdc8X?o&a|L+%y?`%@+9T2*_|EhT0H_PoML0O0PLs-e*NjvG zg6H?fsfY%z;c1k^$_hVzXP^IS-;gN$VE?(6Tlt!d^MUW!UfsfI7;;KN>{QQ1-n%@f`-hb)vc_Me6PKKQdEtj$vDhb2%-QDLFmtQ&PAAvrmlqeNSeEQn>` zFVI;J_e`0FjRvq-0G^rXpLU31-lPw6{l#(;x31RNy> zy)>A=jih);(;`%l%j!m%L*^=dk8a(ZE0)WgYw)In2NKk^B}a?(3n05b>c`@lr?15= zBbE;}KgXjU6DexzmTN07ZyKRnHp;CQaSDTQB|8-Mz%mK5{X#~QM-DE6dsEci0=;4I zuJSD(qlpK9pTFD7ETY$%CWb$`PDWd1;6C<+~6csfpR>uY-8>mq>7uwOh~5!gPi}ddaMGhx@Pv--0Oj;LZEj zNh2lyiuwt`4Lt+8JDpWz}e(BA{jeE|{ft+qvmr`ZQE& z!cMJ9QFW;40awl*abTFP5}U&$@MX7KA&jSvWL`Jp+o&vO@edc?P)Ybj*Y=A|D^Hn}27!Q9F zOxuLyU~}iVK0hCiS{J5ff=Zuk?IbSys7C8 zbp3H`+v>td^1tW7u1o?vXmEd~ioJ4UUNwNl*$Db?RX%sk{T7 zwpO9s*x7Nrtw1&4U1@}fXH}5JEZp5B{G7PE-O+x(tO3naf=r*ug6I^eW+m;r<*rL6 z?S?{m(y(KFO+m3JItPF_yV_fde>#nblwK;^eS>c&NP6(5X!*(3lH)ww5hq&}Pw@a7 z_wprWEdv0}<++3M>rT+R%-r3PNcKX`PJ1JIP}1_^_j(Eat(%$R!d&77^4_Ks^%Uif zRE(n--_Tsp#lbIU!(jyinYx$2kn1S`Un00S(w5F3TV+CltO2Mvla&2DL@=HY)Sqja z%vF6_|7VYA`d>+GpRFLpuo%P^@UIjrS)(?rIUzqGX;@$wGPIu{cVE#~f9!`oG~~ zPS5V=v8T|{X*Ty7Y^cVKE@B;@O=1Y=V?xFo7FClxHDh_O_)xUR0@TvqmN2)HC6aur zFmRt}lbFXVUpmKG_DU7@>X6T)V~>%tZJdE@F#6Z+_(4yX_ zUAY2zT|dq=ms7!nDd#*dBh|~->o$E4cn&J=9{^px-=GcP^u=ca>TT@$r^A=A_G9BF z+5_Z`zZBoTUk4?FK_I*;B?c(T1$KIFTy6-K;5EXqTIAk4oqi_ znpxA?sE;Mm_3h3DB97G4;Z=*=hAAu<7yvZGll62l=d*+?L$wLM%{qbr34bKlL~@&H zT93K0ww=7)%HL)^mPq&2YFEeew8a^rNnsg_i?W1 zPTDM`n%r%Ee)TJ$MeO}|cPJI!eo_Fs{%>jY#miKLsXBV|(XkyT+Q)FiHexobjQN{5 z6cao{G^&t}4{q!1LJ~Mo41j0Z8F8^V{PVO-PU=}t;wuRqn+aq{GRH~$B%QkV*qiPl z8v+I=JoPWN@N!mH7V>o_lWz-CBgVdp$+o1?zvc&v@Kv2**K4UpkS(kef)N1I31!&~ z#>CI=`JrZ0iuNeLU`NZ`Y_E7W7Q0*^!i-3-VId%gh3rBh-KMvS<C`d|@FbR@ZzR4I063FimmoPu63n_o)pOX3l zeerwQ6kS3De9WM(kXHPdvg;no%ELW?qrQcXDzyB-Z4S`1nsb4kcpSfoUq@#%j`dc! zB{6GZ!tG(+23Pt~L54>Fn}y)sVuCS&Z z=c}NfTe+0aB)$LEEFv^%M1vSW{$0T}ebReP{zU}x6afhW)F?Wr_Gd__<_Qr|)uT|| znYp=_D6_MU`HH;B>m4Tj{tWIWB+p)^%cY>#5YRB29OrV*{zS_s|3-{9hu%TZG#_uL zN1QNd1wE4%sy2$2*fc^0SuF;|*G#Kxb&iL2%ILug7)>c{f|1~S7g_#xRAFYXDy8ua z2aH8FsTx3%rkI~r`Ce?Y< zZ}^=f;xyfmt~P3?ft!wETjSV48-fBFdWxOWs*8N)i12&dB}wi>hx)reTx~R8VtTz` zfV&V*j-8TPEt@pO_{G?1jPzMUjL8}fu=fi7AX!b1$-taOB#DSXlHhU z+63a}76@wL%jg^I%~GLVs+rrbG^@CGEjfS2Se=#W$NJ~a;^=?xEH+9%{nMuYh|!0- za5IMEMVYq5b0u+M82WR6D1an#!y{2z&Zl?(mN8qgEY=;1s8dPijXzDsK6H7;yo8(< zme=tF@-zTp<#XJQF?v>G2_ci4Vc}{i2@O|(1 zwknMVO%e-fN;gv~TYzr@%$|1pM5P*;uC$;;l3tu^jCiFV%Gu;XSb}bEc#k2;+A(_6 z+4^mSGT9#00N+Vz=0{42IeYcYIr9BRhS0CFwI|0dH|6n`b~(t%WjOau5MNqr2aOO| z-!aYfx0a)4;Fv?0BRc55{*NUBZaT5;6hcBm^O7hGx9!d`834E4!5}M*FRep=ri%I} z!-6X}TP?z3n`ndC5h_$R^7r>JL{&#TN}0&50%+JBoP8N@e`UB$J87bIz_|Nr0N^gc zsJUI0UzkCTH>C>kMC&fu;ZWHplz}aTu#qQ*ZQ7sr)(S(QzDRqvau3toUggyK<`&aK zw|w0Du7j`ZD}c6k1)p#l*UT@Q74D*JH%}|%IMMJ5^EaKQnA_qK>MdWM6k$jS+i-vr zQxqmvQFoGu#OPT{RBS*E>BCO3Jk!F`R%I4i+S5%TP!>p#PJO4`d4*1 zojzo;9&B3|aHJgU9rY5J=9gZD8q?F`zCP6oNc(;>7l20oPkDa{mtF1x^xBZ*nH;S^ z&(`RQ7>Dp@)I-aFS>*HnR;lcTCW>DN)_Z#_w@h!%!dTH>er(7DgI=$mr%-1%%jXPJ z{jGkaF>xdCul{SShx!8kSC~tnr@kR{Uu3L!kCh-SPyE|Np1>h5X|H@q2Sq9_@$TdC z^IevNmqkA#&J`H<1g|IJ*TvlgmOZq6T3FG^1Bdq5s|VV5r-KhB}7z(Fj753r*^**ZI#@b z&^KSnd{EF{fdr&7;c4=y_!A*m5=26{=(gFCeM|X>gKpjgMZuQ6lrF#^3Ris2-h+~YASv6LbModD9wKc0)ckf5Ca#fO~ zeyzyLimnzI08N; zf-d3^{bC&2yj&=T9(9z>D@Ga$+t2C`F)DVnx&VasNAbPJo#u;06U(>C&_)O?t8D~~{(Clwd1N!tSC>K`RV)2HVE!at~5ia!j9IABu_M-XkWOYj{{hc>SPZF)tC z+F&j!Onu%%n25M%pxAz9l?Xov0g(6Yb!?f29CJ9ZCl`N(p{++o`slja$$=*Voslu%Q zfY?cOOO9zblSRdb2j477q^|^ljl>a z>P(WjIZc}KGO-aWeGyCiB1&_hBE1J&U5R&y0nG0-uWj znom;B_&WEJxX0hjDp#C?p}U^`Nh)T1s0ks+0O&QoD_VL^djB%6rqr5!R88L*S_RH= zfVDJHD$yFwGc%kE;yuQIp+NgNWbjcuWl~4HDqQt^AA0`vwq)nE-S>#G+<(f<5*&4= zNKtYIFO5=?(G@DhbY;1oMGN&#-$1|;H4y!~3`-1p_=1YxkOsU|od#^gW*oQKue)t@ zBa@W4V)t?yUS;I-rO6utnpnsQ7&y~PI+NDf+;h{Z2^+ZEbz=;8#$6uYR2Da ziqB(fv}E~Rs^1LG(S)6`N*e9|LaAexea!=(2jSzh%>Rq2{SV=>$q*5g{2vGZCT1>> z*ngS%3+8>o>Hi&2Dvt@`@qhp3Ge;Q~U}&W5;$-PS#_~_yM=77#{RxK96RtHgq{UCX zi1``afK7)hvn`H{Queh>g-S^gkWi#{5XY^$jiv`{2^U7l3xpWl>_!WdDA}-kaXbGx)7aYM@z=VJZmim@80Ud$xGPxF&tXkJY9=c-Q_~aT9MS zC~;L1ZLot0-BSRRUN!<4PET4Yn|+6AjFb3oPf3jsRgp4oLPLZQi^jQVuu;6X#t1cJ z;vl12BczFwSysPDezp@14Ue~@qhkZIjt!@paWR!r?^ zNzKoarUhpH(XCclh^?b_h}hwg!4KR=qfuJG7}_}mGx5bENRRC7`#p~1TL+`TyLyE; zJNpTlZ7nd0P3&#td0vq0;m|j1bu(mcs#GZTH{}{-G_x^mx|26-hVj0ZK{`?JG-%DV z)(Ii2N}+_Z{x3VuZ1@}&4TqqcLTU9ZhU`Vg=sZge5nX>L$|1`>4d^EldHo;9?Qh@t zY%HI##W$evO^BkP&Hp48r~DNM7=VJ{{p_f)_9wc_aeP|)-#tw(c;B7#jNZkbSMcq8OeZ< zJ1f_FF7r)3FO!d(i%&=^wPyiItR{AVsuO1r>%81d@rx;7UPa~R>lf*=ZzbvC*mUJn zRuHtM&qoC<4Ps^{#a7Z=-{J=HID`7qSucx?Lwy5V>0`eU;(qc1VB8gJ}-^bI43 zRpT(sIn_}C2-WUxIBV-nIP6h6C6aSBO>pWZFAhw5O<-ZbAuq)d_8}Nvb0`Gx>6NO> z=SwCoCi_Y$Jp6sLxk$i15$Urt#5)6)o@h!m-qLYR1>(&S%xod7?FTXf#Hm}YE@kz` zy)^^!_6)u&#kfBB^Om6HlZ_@C{7KaZnR;5^{W!e<*UNBRN9{J^pMf`nfK!Jl{ex(9 z^DCcmZi1HDIfjmGo#qup`80#ZAY0~0FCU{elwwC!Np>`{nL)jbN$B!f?j7We=;iHw z#LUdy^tG7p&BvovHO*s}oRg|sB0Sf4Vzg}w`{#`=?$Jwh>7B7Er{O=#xv>(m_0Bny zCqSP7vtpdIrp>Y!pAs<(aZ`6)H=P6lv@$z12x=Jj9Bkb{shN1=m047|8|Vk^+0oyn zA*$Y$TX+ms%|Tz_x!Q}jDEOzDK0%9b^Rz!owh+#(ZdZP+YT7W3zY+dq8{a|=37$i5 zhGWMrA}JeGHwzi_8I0n1$1zA1h(av$N7(cMgpr1vGKh^Q9jUygMF{4^ENziKSFuRxYcDOOj;bD;9(|xN%)K~edOAx?i{=j;ZT5r% zh^}bY$sK}M*p`8~tCY&Y-{>}a+QN%!`N%4WBr!G70H7J29Wf>-0))oicuX4?%fWDf z`L^h=-z{QOcGGZ02nxfMga<|OoRRdnB5zzFj`jxkWOjGPIbpS3WcR(a%Y;TW1_v)g zS<$s){Z(*y9IA1#9bss?-4ZcA=7eb~BBy&mI;YqKe&SHP_`HNYwoY+So};4iVx?jO zAvvo<%NCFFRIkspeT&pjDvzvhh1lVM+Qsi3{55QKiCTPaTr#^eejPD3AOPdX6yp_d z)Yu`fWXRo_*m0Gls3dN2C2Pgft`pij5vsdlf2gttY}0bB_YS`+aH-q0Uf#WB@MGP4 zN@Evy{z_lnlCC<e0{M@D1*Nj3Z#76o1=K?e^z<0SAbiI=i?! znTnXYm>Rp-JN;vQ^v|rRRMWRd6-WAr+VLj>UZQn6bTVJh5`NiWoGtFWoGqi0qP+rsq__mO2retDa}SjaTOU=@b2BqH2i&YK zr>%P3JlIzQ>kI}0(4r0bgMoGAw{h2ys0xsVyyGW0!0if&m^Nb!*VOv(zpSbDHG#l_ zi1t2_A3e#cGf3$#cn{HY^T78pUa(b|T54|EOZMrxGNRVk+DbQBU}sbE^@o{Z!e6jK7t>{MC63GDXZ5aO`Kc6ll zl679UCoNdWD$-7PkWsbBw}rL5Z~19$A+eK*a}G-fur4u3s`=aqxnCOR8iG+m(~5&t z@>Ah3{LTx3EBdm_oWF%qg=E$m{uN6_bDF--w@AGy`v%4E=(_|=1+rP2HOBe8ojs35 zn5;j|)~!FgmPNXnk5%2RLx+wj!FEDpXY+MIdt;BQ4n^dLI;Y&!!S~c%brZi$Y&&_^ z;tFyNfcy?zOg^vnesNK#sXlv3G2ir5#Sqh=aX9%QJy=H{=TsNm8@f9` z-UAyj4?00FphIDG9gg zINyMy-uuCPzDB>pc$f&UVZ?Yxi1Tmf)>CJi13C-B8H`+#3a_P10is5PlD%VUyh*72 zM!=mIo}!NhH0(mneH$x!Ms%0tu7gTP@e5HQRzUKYeb8E;Y}M zjqwcIL4VWT0>!qK;1ku&A%N-`bVuL=Q3iqyIM6TMe1XuM1W)mR8+r-{A0tlgqmw6l zW^sTa&y*v3f-DMZ33_&>HU=L7{GIOXt}R4PpVhkv^*^dtsLAK^Uih!a1Uxwi;=itp zpPy2tR9}K(0t%C-oL5CYS3%Z1$>d{E3CYv9l=Qi>N+r1kuTnTTW9-ORj7E#H%`RwO z)HLBHWL!*m&s`4Ny-dPs#LC>D=A2G@qj6pSx0NJ1s$m)94$D6Fn{(!yoj&$w0`G5o z>Ol5e%HZG7&@HIQ{rQHm#JM7rOTKTBGFOBPV)hNO02UOI6qI8{6@_#K<;LNmWka0z zs!UVuCaz?M7%m)EFB}$0H8;<-;mYh**XHT|404Ae3y)U^edrt}nW*i8TdlfLg$f+E zDc5nm9^BiP=o3sg3>Y4Yk20hu1?R?>5CLaSt2pAeyoNimH$B_JhQV%^kj(w1Z2Q=J zLwHU=A($5&rErs(aCOtz$%9l>o2wy?aq9Q9bGBgOxAB^l!)d1|F~eAk(CO*f1>E^E zjd3QKAtuibl?|vqZs(H9hBEaPxP&QNWefxm>LE}n`$Jnp1*}==BHQONxRK=+ggs?v z&rHL1tCe>CrHyU7)umbs)7oPf_;TasqUk=sK;lP>WRv^Z<8m=u%;v$nlzPP?+y(50 zF{c0zSbvvRX1+Dnj!;2ejGHkhbN{hh3}7PmW4zu=cBtOxJVY8(uO^PcE&e4}K(r90 z23zrEDp$#5oikix`C)ZUzy)e9)1OnutkgQVR9$Pb`|LWL+KJnh$b69yizg)fn@$3t zrYbMEF`T-+VjI7`eA|ba&PZ~Ao|$eZBq%x@UWQdAdJ~<|ZgKWXFrO#Q@O%lYmEZ9= zz;x*WHmVY`U0S;7!#;sElfYHm<)IG*CS5S42K&mrUC7Zus{{Ku2g4O5@K(kuX`uwU z6!^x`T_=x{jZq7}c%U$jO?H;8BwZ39_nU6yfaLjGJfp~M1X&l#3}c)(S6-LYwTy^- z{HxZuFL|Cm`8W2wsTtBK5!;zZ?#gyqR@Ca{SB9k+|1n&_$1tK>wDe}V_|}UckPS3M zxHq>oED#ib+3XMOFz8dhS6?Ve$dGlYuM`i#2Ay1BYjD7tz^O9)q0@X8?a8K5sf&&(u6^8Tp;&?Q2F z#1JnhP)n6@HRFOyo8sNcp_ckkb5&4F#=~Kt#jlj{uH+`BRNp_O#9`fl8TbR@pD>;% zhwaXV-k?h_V!Znqi-){|xIY?M(5~&vNhhk8=O#GXG~*$C860raVG|AvZl#g82PY z{Rv2ypU=k!P^1(%R50|EOJUHxf4I2e$e<^6A?vFwOj(-dW+{jAH$8;EV_4*dlD~E-;qLH{k8D&spLe7^J)OKD0!=B< z8#hF{hRBK@tV#+kgd0<@E$YVq+KzTB9dSO|cB8;fw!Z67*1ME&nh)p4%Te0Kfja?^ zI=M$mX!j#6-Zx7{VOW~n(9I2s4n&k7xe(mV_V2Z;w`MsmVvRPW!JK4`jC4*q9R*ga zc<9DD!R1&7mSUoST;vKo%e*?}TGZI&`}Wu5s#XM{>V(^WBs|A%jYu3na2INP`O>$n zU;9vP92rX>Y0srMldiVYs4#y_>N5fuX$4g}s)6E*TWb496!f*nE3a^`3LC zDul&rLcxZu4K4)p4qUi}RQTr?C^vv;ZJ)bOnF^0$%!_We#9bz4l#PB7T#{@x?SMZf zIP=ts;3+HT853IA!3`VwudBSiK3|lP&J2WYPAL}m$2I);!7P}Qxals`VdD}3}r-{nEmCySKb#ird)dH-zz=vr5G;EhN}3$!5$o9?Y{x2(;KkI zHIA?_KE&|ac#TWkvU4eNPtPo3Z~H@3>S*N=+ur>VTR>r*F$j1{ewPK(VBoFw+QPzz zn13*L0F*m?Sj)>^HOutjR&KG>80`93WS+6-O{ZlkA!IYv7)-^Mb>6`4<1oON(4<=* z;Zvx%cOXVh;eRmiZMz<;T|@$qVTM>&F3ju2s!Xj~TikF5ekL^(Qj($-Yp*8yqxNQ6 z^;?}kKHOteZM6<+m28EaH`aX505drr+rw=ysMtueCdCqGJ@>V6v0Y;l%;0MEBVPwV zs#B?3nr;I#%uP!r5*nWWwKp|%-Tl4&c`SDRV-4_6Bk+d_yRcn4V$qK`4H&>lAG>&3~o_AuNo{8V@7v6}4UMq0^+ScR7RVhwlV zlJ7Vo4Fb*!_T&m4kKCX;Fa4q1zjx9mMLu9{%wzrr9I}|K2#n?6yDm*J$uZ zyF4lX7TS#e^(#@ll>^`K!d8ZJnE-XM~*tHF%o1imsb>wevjGjcSLA> zz<26eAW4(G`VN2MJ{eZl%IBQ5R4TIcW+hCUwL>95cLz z%;NmGbLItvs_~s9+z}jA5sV325NxsV3werV%UbN1EO-<8nj(|%_fvWpc@y4M;@ct@ z+LI+QHCn9gv_?7|#*6Ry&Jdwy@MD+z=;O%gixntDrp?(kV5lXu7#EVt?z&qj*@I(2 z*sDg7#pHW{_q7bJy4h~(W8?NSE5s#sF7|p!D2lTRBDNwpY2ML`!r;2xV%g|^B{wk+ z4%eYrUuvvdH@MEl-(jATUW~Z-SCxAcKw`b8fkkb`hsc&MbotTeI9*wmXR-%j%5AhTQG~sH zh?$uI=roh1%|ZO=DKphZNb0I^h9W(Dz0UwFL7{~9T(jea#>V6gQ!2wJLiFui{vDf& zM#24=>ITtwBxh%FYfr-4t0op0Ay5J4W#sqlg}Mp&?S|kEI3cL(jd)HV@(tok6AzPH zAXj@N?}05Kt#5oW+9H2FgC8mm z@$O+TlzODiG0!P`G{o4&!a2J1MpCC_;w6a!|A(@-fQoZlwuKX1gS)%C6Wrb1-QB%| zySuwP!QCOayAwhP65QqQB>UWZ_TBH?_x_IoJ;v8GjP6ydR?VuKvqmhw;Ke@-JV9lX z-k+c}VhA1_i#mXV`dQ)+A}{vWs^~r`#B6K4DhTK!mei_#uOT{{zmQNb*v|}>pYt_t z|Ec=DopFryebfUNwpfPePxEk`Rcn|pfGs*513}~ygwNZ(uQrs=D8Kd)3_VEe0&xG3 z{*9XPD~9^_zF_lTB{rboGcXYf{a;13R6-VDzsw&^+yA=x*Pc=O6G#n+TU##@gTROd zFvUOagaox*3L(ix`wxfkrQI{0=!_*9nx&`f2JlBi`n}_iXw{9==wOrmic!_?vIgI$pBb`8fx>i2Tk2ja34pOhp4fadJDTe$Vg?N;<92_(`4 zxj;GWAAwY_?%IqpO0_Qr9>y-p(hO}0J@|5E19i+w79&trKR^fSGAbAMp%GA*Hx1l- z#CO>?tqb4GryFLsk4VW6*Na5;hNf|=8I}eWU;Lu7-ARHlE>mo7-LqkIMGV@c#SbRpa&)Lm&X2O~jl1?@4GFL*b zHK~ot;Lm-DMK`bgn9I=DpB0Z7}kG|;*@59k} zB<#*-KC`H>Wc6JoS%Q4l^zl!nN|{|w8xYFB{>{hv5qGJc26UV%f2+RzZVuNg1tQ`) zMi8d|PI&)&uU?ayqB@Q!W*3T(5W6-}V=uPj|q}RFnJp)i0XS)6xmv>}@@0#I$Cz8*@X9h$68uunsQijlmQj9Rv-rT&W?Jn~p zi~HTG{ATtUlyEcf-+51ElAt2vyd=|%aMhlKLDylR0DNa7wL>rqrbso z6W*9C>aJhIRDn7JZ8?TS}e2l!hFTlr!Uc=4m$7I5GDP z-tMAPZBN-rBZNqWI!*7{2=gZk+(XIMUP=?!7q*Wbij9~HfGS&O_pv#iSZ}zywcTj` zT!|!hyEU^T?g8`g0b)z(#$B|Kog`z2kTb6NZ?Ff^xbCS>* zVH58{nuIeXeWJi{m}O$;Zu$$9X|AJGF%1jcgi8}N4Bg*r#Nr%UM17Li^=S8{IC#wexx~OJ25#kT6;F2@l+S- zG13L*Pg^UlL-R*B2qlDVfQ@I0a=)jQzPb)=wLS)~0RSe#O$eu@J5r2hU8zg@bVIKE zR0jMa+|iB$&9rh_d5c!3v|GkriQSj++>OP*1?e&4WfC3H2zO0i%q5zx*R?KuELs!; zXXE&3%P$hmb9qNrdh+ABgo@V00Re!C1`~%RyWW1_QIef|SR7zn)*1^*9kVZrChjN$ zZ0m#C2MD7HduWP+48Wn-T9L$vCu`^V6%j+r4pD}v7C9;ok?E*8s&42B)5GZozppXE zwV%V;ufvVYFZHAes-Mbh64VI2HP3O8CE4CFUol@B+nvbXO`0Tl$!zHW39-?xRd^d% zj7Kbe0?x~V8$o%!ZEG*BZ0Y()cIyjR=cLq51MnddhES&K4;;sk`7{x{@q1$hUcbjK ztc}wH^YRL!c;`YEm=~)O{Q7i(%!`+|bPSajShM*he#GF*f-zWv{LBTKE4V|1Q5drS zPsfY`>h(>|z|V*TTwfX3(lkMk7^N<)!Niobq5Nip&I3g-tIQS=MQCE2FWUmt9dg7N z4FMW#3vFf#Q)0R>y8Z-6eezFYaz;fVok4Qx1c{^D#EltV0q5xL8PI;@WPnvM#7dOG zA7D&H4uZ&0&Gfu;QO`8Vuj}2?6fM=M_(cSW)x`QM0drM1KatrrWh)27pxtEnV)s;u zp+-{(zvt;WIc?8DHY3{7zaUV*OdqEBfdgv4%+)rdi`t64;vivn>MPdF-c}QDSK99L zg?9#%T$Pss=hFpGBbn%*nHUNhLE9Q1Reru+)F9>z;E0Q-y=J~j_WM-y(=H)LR9gyA zL;m7Q6=~5G+)_-4f^3Ye>;kU@&EcSwGyB16dJnAK0zvJ~%d)^afAn`6-uN3OhLtwZ zJJ|z=jr@1kZc?c`>o_+)@T7QTo{zu}(bhpGn^* za0l)3P4OPOZ&5rPZu7r^IAGne!R>gq>A)8fC}S&m2V~pcO7N zz<^(_qk~`{&%459XziEm*g%8hb>0}`YL1s)8~O_3-q8OQOF4=OOg8f{h(vSg9zs52 zV~j$XoB{o?6VgagIdZv%9x%yJ(MrY;vr{7r@>pdGJz|U|8p0B-3it3Fgd&II8QDP= z3O6_BBmC9p_!|K|x1KM33JmzVVtTdPu;6}Z4A?qd z<{2uJ4Uk4Fxdi0fuK{)+Tn*dMX0*%f( z5A0MxRGX^I6;^d^oq6_A>T+G+wMEmdmm?(+Z)4l2#?sTNcF|Gi{o!LKYqD8yn4y); zMy<(k=|tbub{p0DS^b;tSNTG20t=Da^u^6G_@Y8Q$kV*<2f@cp;I7-&P>%TWPAyYASJ@OuyO(E-c#J_#^ ze$^R>Nd;p7jvTEn5M|ZO-p}0;9o^DQSUFSiJ+tTxBwE84#}^`46wR~9@=-~%P0>sD zqwMY0^f@KFPzN7jcJ82P`16z>kbKAFIZL0TV8<9-&xR|!j4`h^qdmXC5(YWS+&5?4 zDZLZH&kNl+-4xya$w|f5z#ZF7RwFqbaVP;2RA2zb3K9!(FkRrz7{&OakdTXrCI`V4 z^!A%Gn|Y8G9}4ti)&HR3CGs-=_FjmonU|mhfZ_yQYhdazWINHW!8Yn8%C=fd7D-0h z5vhtJWeW@hwhxuKEthoOZOnz@L`LZ?MLhuH^&KF|!>s+Lu;i-{`qaqBLmuxb#%+Ml z3&almZG}c}BIdNw$*_l98E&Oa8%n>BbB}zOmKiBD4PNpWgv3h!3H}IwGt(~P5TQF! zK#h-HSbT>y6%SX2r(! zvSn{{ITi9s>)Q(D2Q!`)3vi>S{D38AKtI}*gXrpGlEP`aBwv#40fWiIGIA}$kjjFB z7@1h0!!y4&iW)E7EG_wFAKA2o2S+YvrfM!7$G6KFfpC2U{SW-bVZ00@?B8e&T z^#yXdC=KJQ`5{h?!uQu?-&c5y=G4N_h&p3C+_yL~u;OpvqDS*-4QYM4s2qfFSH3Ts z%E&!MVuw9Z%$w}(hFO^`xS&s|V;dI`(g=q~Ec$EIp_UK>ZjndMAE z>zT{a^Kd$GQuVUj!~X*EF4doc=)HTw%zJxsL)d1~s}zefvA$Q*{d0gE?pE}GH<(eP z&i)drzk{1eqJW7S12afESxtSi71wkWe1^JXv9~0Hf@>nS&P4W5Skt)dMrJvnHikc zMi*7x8F)YaW!j1gZ!mzIxvm6;IWb3r?572&tjkr>I7+8LG};<#%4A_G4DUoNbcU5t zT{5%kr8L8zw9>KH51KfFVf6Df8vz;T_L?x)g>x?Xy)uc1ZDZA4nKGtiR=Z1d{F^CL zSK#%V97HFssJc7WBOpYKW!BbS#T9#NM15`8^Ryt&;+M(Njfw!-ivWodMYDaX*mCKe zteOMHP%hO6U;T&yI&d{cY%W`Iin<#OJN|&h_a?%K#5x&iF9bV`+ivA;h6VFjRV?2(KZ{MwBWncL@rcqwf0S|w($UgWgf#ER~IBN zc@21Q;wy7BnD&6cR5wTT@#B=@)cS8w-l0`dkHcT_s})6ywIthg7g-gCO@vmea?2Tw#W}`8Q%YgQJ;)Agj!Kx77bE&_ln_sH%O^UuWvxL}(Zuzz@9Ma`qc zP6@%I95Mu8NT1bj@qkbqueN0Lgd(8(kJ}2c4P;s9eZS zh~mueu%J0SnmOihHbW&?zAtn7kqVaDIAXBwH%#VzhA47@sM)8a6=&F^Bo=4brHn{m z7zi@Iu?BtF3X_r?mh+5 z8yiNfU~(Oawu5y0cBhY+`pGMz~%UQA#@(H zun}Z;(&4!9-d-4^S@OiPYX3JTxEEGX<^h&*7!m&`BuM?0vQO1y0;PnaPNJndLO)ke z4QB$y189;eUf1m!&JUmqKk86hGGHbgNF@@fF5>moZNy1!#6Zv);(OAN7R}7q;Fm7nIe0~Lw-V)?#7Lx^V^H^uy`bw$j{w6$;wiu3kB!Rw8vEJQ9e^~3TO1E5BurdpwnlJ(#vZP&Ql zop!}AVqiC0XM@i+I7v7QS$;(;`)!usbe2PMwk3yK8_s8U*;ym9-Ea4o@V$s;{VQRK zN?A&E(30S#j$#p?iL#Ut2R%Jmh=;(b#EM%fhcuu7`$Rf0L_>K=E-Yp%kz8H94y@JM z>78`U8Ojp}Cq9BS@YZB~1QsMAeR$#%u*#_TdSA))XJCC6Hd9QX&>Q;0@nCkTg;Pr{ z#~hR*xe^6sHPNSIGurnZLJixIhBbI$j;1UP!}~Qu%rCwTaG(~va)tDkW$(hpH`d*o zI6CG44$W^o6V=w{oAWcBz4S((#*73)lHS98mIZ{YAcB{3kl-@2HYmH*SR`D=;u(|K zDGEkaL(G_Fk;FecOTPJLHlvfS0wQzBtv`Y-@A?nV^pBgY@q@6OG*_dVYJD&9xPE&s z-8e0mWR;YZ)pWNBX{A`!?JBY^v7@tC{`S)eP^bjczd75jCjDZpeZxFwt3Chh7ymIB z%g(fu*3SFhk;)#!`OCMjPTF)HV@2_3W+8@^$^$KOwV1^w68&~a6MPejr!3s5?OjB6 z8e%CpcbxH*EN)Ep=Z-|{#ieo#xJim7!#JPe=G}st82ex~KNb>4L!+IpR20A~qGhMS z0d_MY?5@jJLis}CwX)SI6nbC^Cg>DPRZd1+(Llc|GlhXte=w97sxwKm^Rs7ZR83Wd znvYgQD&trW?i{66*l=H3lw*53!gSMo?qh&u7*i1z_iNa$M0;`6Oc%%QHC{o!vwO*O zl`jf8o*3d=(g>Lq-bT#)E{oz{TP=GF0uUf!gYY%C$pcU{$Gd%;l#D@deQ%Dw|Z*9bXW`O}Klstd^QF633)~y25Ko5P3Y<+hdadC{su0OJsv(ay$EDvO%_xh7<7pxNr8=1X2Y{cL z1r|;PbdK`1-m@5@E>TzwqR4D)kTj#h`i%qIrL@z_V!Ljsvf0qhJ6!>5tcPCaq#qhR zZiXnPpV3y-0(igw(9TElpU##9;jf;9{&wWG%&b+Z3ltmbd8s@ObsTi{ZFN&vu=?sA z^z4@{c(GsB@q`&Ok0}5tX8=3t7ROi;$QQw(Ty8J&fRPW=g$(xw_A7;dJvv(!4U9gm z|HhK}9f1NhgDF#I;K2|8qzZ=SrcNrBE;gpWd*gp4b%hL_P5-1$ik1F|DkTzFXZog> zCnqBas?8u@n-L@-LMizZ-Eg)CM$2@JpOw8->%n+^hrBK<=*UEs6xtb>XuF$g15T>g zxQkupcn3+D9%j5M^1&0720{(KiU~-dAi04SuIdELn}n(BYBNqO7n9I?Bhc+`pQjW^ zl$R)|8Dpo7V_dQy~=W(3^B`&g#A$hLY6C@1tP&Iny+F_wfg8#sNibtD@2(m(=#;_jJS8Xsh6z#AQn$bltCkrir4gxZYi&b_2sNwcsUeMQA`VU1 zf2=r6QGhA^@%K_zd1vnV106Er-@wH0juxN;7H-kt1xfznkXsC8K~erA@!_x1<$oYP z(EKJoMEoH>yp@(Own-;aJHpfkvxW>J;C~7g(&<10A1l(jyt%n};k;XWy|`L;e+SP) z(?6(-gMNnQh;wJl(;I_~KzE{5rsXkcFoqJZ8jE?m4iMy#Kw&y>@L`rzI+Bg;D&HaK zy6cN8B?$0SFEN@UO~oKaza$IP)}93t9~hrada;_HLT1hf|;x~tLqTOfn(H?>@LB#nLF_S`pY3L~5SXfrRw1*$odA_V^GplgC#(nwwuV z=b?y*&?N^L6t>)@8kj;}wK7*T(>6&^t_@p7ZfH?b3ptDw3zn3bn!8$jlw=1Gd{q+J zqLKXYqH{@~+MXDkk?>6e(qyIUJO|a(cHy}YkOmu#$sVfn=$V0>n)1~+yIj=a7Qtpg zE21yC_;n_d;|PVZDll2%q$+2Ms2zo$ zST_dgwBR3m-4)2IWzxb|HAe7nC-;6&tPur7dH<96@Y_iMc{Wt3^6H@Iskks;B&qNn zAm@KNA$||50#a=tQfJ`6&{|Gj-y{4L4g8(~3#<|e02F})TEtg+$0`l9B5*09I7Fd5 zH=zP0p*7?Xc20rC4AQ~Aq+7|9SdBc18Zrt{2H&6dyZPB}QZOvpx51DlzLvmv)SF_6 zEy5OgQF;3Q%%$bYx5M4LV{W`B_XT7JJFuQ>`DLd;^vBLtM%TiRkQiG>s`hEJF6kK_y`YxO>`1*l#bTo5qZMtcw*#|V9 zaTh7GP4wwm6Y8=xzJV{`<9prqskS2@@addFYct<-&~C4kaRKMVws+>Z%WNN#c4;wg zN^O3oY2Pke?DWdBpZbx>zCE|z|FtVR153sQxZ>uR?hi{b5|x9*J@)KbgsfjB*wsA@ z>@wPo+m9ce9^SWr%;6p7c~{%1FMW|F$sF8!Xx6cmrf1fX3X+Ubv&j`xa~-N=!`1Q> zeSRc&hkmwm<8V)uPe>{Ymrbu0c(hx2*hqy7OdcgfLb839R^`ow}4%r|y-mv41nd}}BUFCjY**?l3U=mEcXcJpS# zF5YF#S^Z%d{tQy|Ol?il!~62ZY}0zd3pH?ryH7btQ+2(Z5%=b!M&|muB$iPw3$xBL z{vzc{x}f(g{&kGCYTHd5O10KCwrk{e9YE9x_t+`kJO~MU3pkp|&QhbF@nA@=bSNAa z4v};mTTNlX0mc}6OH{2dBjh9IQk<~l0BZxbS)R2A0S4Oyw0{R2O;>a1uG=(Wq+lVg zQB0?qFa3K8tO#>&b2;n=Yl&TGd!5BAYE?QHVZUfF)(NFmqqj=1nT>x<+ znZPjV$W+rpn6X=nTBn<~n8U~*#Zu&nFi zFaC$$dpNjmR6fBC3UKe5GV;^eVSP$jO55#V0u2_IuGudD&?1;@y}_W2*odn1gVG>!gna(>_|`! z@3F9W>~|G1ajg=CZJo-}`aQoeZT3O4$(_@1U1)<)n3+I92h>W~e|m&N!UdGh`;hoS zF_1pnP%Z>bv+lBhz2yW=&xDSG^+m=LO3iXF#%<r&_vW27x-SR;DYtUb{v%Z(V?1jZ7cz*v%xwmOa1s-3Q z+2#K2>xT36#wx#hk00oY@S@lUG8`I>ruq;k4mS}p4 z4Dg^wH3lDg7=qE!Hsqs@qiH_ZJi(gyZ8-M$jlW35)tP9F1Acc~zTaoHn*@e03jYXS z{;QcJ6{Zt};8!CFe#;y_NFFE*POU_+X~8K6 zjRg6(f0wubWa8MFx&V(yP~gaof4w4c+=K-E*KHLiLo+i=V`UdZ7w10=pVYcYV3R0# zhx2iNG*n0c2PIG|B3O^Gq+HENDPdut?ff0SR8*_WKHL>QLdc!ZCc!&qIO9PkWT6I* zXf!8XDoIQNT843{6W%*|j^&J}q2O&!!^SxwEcK&#wa3p?MsUDk46xP}0c|BU(Kjc} zCR$#%*6C(oh#@%D#gl06a@<0Xjx0h$H{qu-7*srlw=K-sV1}^UmZ73~P}ws`?L<$z z3FpEDQr^EQ)=L-~A8LUg?Gy0(zu)4oSn^lt0r2ZB3ftS+0U1n|Zk8^dvW9lQ5W=5# zDq(MD>S=6mYb2}m7l#&z5PsDscsW*GT%*~S*0i*3AM?Ko0~2uJ-)Y*|5ulriQ zm_;ckX4j>QT*iuA?n#3a_@F&2?rlygl_}70Ivh?-@ZN1WGhAIQw*Y>=!#7wK{80J9 z&S0`nwrYK)&M~sCu2jerJIJQoN1`sHod!Cx8^+X|=lke)0hh<;hOfs0*9f9Td)|*0 z>33El7Wc#_Vp^`7vmTra@s1R+n+n)1s-^+sMp)pXyxclfWy_v&pNn14=}BKMWzV z;5k`;Matsv!Uew!j_|I2R%W@29TfRm|89Nwl!slhu|9c(-3`k7jfG5zsKo7w_@u3t zTRcl(g{RcG-$_10x$q|8eO2lh0ITl@7E!>Y3*;A{`wkDv{ylvFS}hz72Yf#`U)xEz zZ_OpzH5s(N%)5*I54c-b&hO|ipmDpRXe=)&ZZ&UD$C#M?ZXlhOs=T63K1WYWmUDlj zG4tsM<^gimr0dzNQ?fNbqoA!zCV$jf1t#f18!QgzirxIo9EZY{MRLuxQl}R+i3o|FGzm@ z$$#Gd_r9TO6ll9H%Tk1KasfMajtxBG{ikDt(U(kXYl!9fw=Y_v!B^F>Ev z{KX+E;KO<>iW&m34+r9oP>mSTdjB+$f+#7H&OpBhz-v#sd{m z$Kr7)t~@cR?p&7PgPa(i)Zb(~#NVHc3siuH$kE|QnfEGKgp%~tttI<=q)vno1AbiP z%a3YtT(|P?#4qfFYs_#Nyc@`r5h`o8&~M&KS{Mf^@7E5TE`xN}{q9alJyBdKc)2g6h6 zOua(99%K%|Ff(QkniX=4O_Jfd2B1$lWIt+ut}!MW-e!&Dn$%d%L!@4+52WEgFgN)#bs!8Y`!Jn*d<2o%bIA6UT*~lU*O_& z+>=NlF7-l+1^hWKM_H5ddO!A3Im7ooT1-9U!W@D>gQEl>+D+>8hSs|;SLZ#Q= z(~ZWde{8(~EzRqn&Gx|_9w2WR?)Uc7DRo8KyM~qi)d;h?vhN- zwCNg5%^;UD5&~gWoP*qkz;vWON!WZp&%c)&hoNt^7g$UFN(tC+(Vi-{I>&>nO zVO)*!=`sW}6e=LL5ohl7A?J*%&x7^SXJ01gV-53^4#z_ZH*&7$`aH~EvS`)S$7&KqFofGW!{J1rj-A3=95CjV_zrF9Z+ z0U^26Hc_|e57a}G#b-ml~Zy?hVgq`s>*W zVa3_GVZQ>ZEPbqG8PeRaU_305Dd)`7qg0tW%g)6WhFDJaMNvhMvMkX>DNP+R@liaY zR5$Wl&>po0xc8ENioJ3;B&Ow?Fs0y_NFfuDroR3z&7QzzTm8bk*8ga8{Fhhz^=JV6 zHncNwvQMpZ1o`m4pNpjbelY$&7-N&txEv0UKfqB7ZRt@QCp4~XBv`g!Ny82mv>+xV zDy38|N=wW>H3%{gh3A>2@~q4O&_%1?0ew_Na}O!2h%1N#hker7_Ku151(wO}f4=kS z^@8T2O;H%4K^Vu^^Y##?#HFm>AR_9}{YdupM+pt|XZT{%N&?p+UZm_emgEp<5fADr zsigsvDc!O(g(suN&JQvRmVQqf99rYO<^E2~viU=8jjkv+K_6qhi1K|V0H)dqqPWs2 zIcz~^T7~U?8$WNNTwe{Am**ZxT2{RpR{8QP_T(isn~R#*^g6V_tpi5$u_}RFRTM z$W`2Hdlu-0onTbDlo7tbH*U~1Z!5fc2TWA6Wa#Qgr*og5UTc%Cac&bNDt^%ENavy z8=v>L)~OA&nv9%@vEs^?Xz@t3Z^7E9`V5ee>0amSqBrk6N{)7hHSs~f$&S4;gDZEj z3vCsp7pa+rFrb%HUX6GqJG-liJYq8III?kYXN$XKAFj0mESwejnvS_PllN3}n6BTb z8;y#Ku*^5KEV0%OaIw@SS=;ob1bsgMqHeiR2flAdFTM+bi8%1Semj3>gw~Y6_d}aq z3S!+Eh3@h+ahwD{&got^e}es#=KD?>X56qtkY4rchhIw}y=>mf09*>Pztx}qNcMTs zgOFhShafd|ry2xE*;Us4<>`4b(ACr%SLCfLgHtfkl{owcF{BC;EF>(R4CaBZ-fgg) zQ98uGrR{{m!N;d23Sr^OQ3D@1$#Pj3J3nb9fdyX1R4)9ia zx5mO_WYXg!Hh4?XbjVAjzMurmhY3k)SWwX+h`%(mjsOZa_Y;TI7LdA73{^UF@wjgb zv5|k!v1+^@WC(2jpHt7zi`PM^G#O*6|p+&h|c^w*7#|N1m&d!AOalSMDl4R5LMt90XuTV;SM-Jw6FP{28TiuaO@_HzVV`xJX~R?Mll1@sfI zC&3U2(04C5IKX$%#dl6@H_~68(|t2uj>o{2s(;wZn`BAefE+!3OBJE+bunG7u<2mo zHwO;gb|g<7TZg{-aGdP%7N+X^Rk07BKhl?HK)O?+f?6iIzIU~?o%_rv{`kv2RZ882 zO;B=>>kYy$gGk0nP?-Q4g!lVQYA^Z+Hm{OMKvMp;%fl)K7q)I%AW#3@YE>bGy^N`|ck9=gsK@ zc<=iqT@wX|`Y1F=K;?&spp*Kz{w&0~1F6Wk^71&8OIIRK=Y^jRzLVVXrZBE(b!9`1 zVOR3Z#&&~o3e_xFR%Ai|PHea&_SgHF)Qx*KGBSiHOjs66#xLzU%PN503Gmp0FIeUc zQj`(9mQ}m5c4tZ5whjYq2+$u7YP$ifm1=82Dl-%|^2x{>02;Qr_xu?3H=9RWx861r zJQIY+29trI$h+US6OqyP{rm<^mU~XFt1{}ihFlv`*qh^;BO~R<^sJ%4M!J0>QCYm@ z^FqIRFAduWrNn)neM0OV${Na=JOrTe6T7|@dhBaofLx-Vf`wZh;r&_`xI0NX@ zkq3nKM#kN+hN^YfVtU3HNb|zUho@f^hn+j-CcEAd+~%L2a^1Z?W&xaYxA*~oXOOy} zQ>cE4N)LR&cd&+VMob{^3@Wt2`8&lCXlRwxOPD2FPTHunem+$g2)Jh}nxD1y^44CP4aL^r2xuPSv&M9(^Cqwt1Utt8s%KCx3JUm=l?lg9zj;;^N;Ur- zWk92$9N)10hkC=fTESD{;fy&d*oIm zQ8-7m+5!*wxu$J%NYVOmO*Cz|ju%1}IF9TdfD3iRLRa>BqPHT27n#$SS59?oqt0V_ zX?hwCousjrWibE_v&B=6^rjZ{x9`0$fl;FB0%wf8p+^R=go0QS6pAKMV)lpyNO2MX zNa;6`9Txb2RH*EZ`H>^~SOG#w6b#1qM>y{9$sJR3;O=}@&?l4HJRU*v?J@7+$sC}Y z@S4OTmb4Wd3D|-y5t;<$(<9jwF%)_pNrxuQv?!T!nF9e&_@;~5^7U8E!5`21!^P&b zDa8>OkNrGCv^*9G30L6jkBPrwe?cD<#&85rg!lY<>?!`!{|$$AvsmzFd74gSe`{>4 zw@1iGT2J{X0&j#*Kq>v+>SUPwGBLs?j@u8^hoq)G1(N`hSQaB#oW_?11D1dF3?$%;DVRcLC)QT1|w_O-C^t`C&h4}^eRZ4$$gliGcr++&)xq5v#{cL}`{F8wH zJ*z{KIR2AoXRmY$jC6AG@MQ$x;L`zPq!)UMz_-AC?%i;K3MF0)#tc1u=&D9M^=vsY z-UD}2dx`j_X7lmgwrjlCm_RX)BQTJgW|yb#!|Q4TW_)iy3*DY39W*UneLWpcH;N>~ znQJj)tmcy)4TDX5>LYgsU$Q6e)nrireu3aGm~B?jHe5BQmGMpkpX)CHrr$m6<}+J~ zxXKz=ZW~g=V1G!dYjLN;u<^FaPb-$}ujZn;+Ni9lUus!xE1slfvIu4|Y)Hd?<@c*! zOlyH}@Sv*`@!m$d!n5C7|B*OQNIjJ;nw?IbVqiAQSPwBj$jvUpGe|y8f*2{ei(51?>v89-D^oEey>`fHm5sjfo=Z{1@NxgpWt9gxnEw|h) z>{B=dk|N2%te>CP&yUfR8- zCjPOW7h6;3;oGo^Bh3Dk3fNYt;N6?OvG&T+u*C+`P7rk)yE3gTAYKl+VnKO6XtE4O zRCWibeyw+*pJ_~*}D!8+}Nc&C~9Kks|MG+m|ddf=p;$=@5uL&LQs$ z2Uin@tu_>0((}qI;3Hs>5`uA-_bmyBmWZ2koVYnX(|e zyVp1u;w%K%QL1#|c!5=(Juz2!633XzFxrD0DpGfYL>>b|&es)pnonCXLIjIWND&T@m=(ai(#%4Clz0 za1UqrxB9pwI`UUCSrH^l86$XQxM>I0$$QNu%CCRa404=H&_aR7vFqQ$qklmc;L`uT zB!NHw0NS|PzX0w3!3cn!=%080J&hu5KQDmz%FfVI{v@G2m(oZk04u3&M0rpQA`}r3 zhB_-;(C#qS;Jk{F4ti@;dnG1X1eN=VYL~AY;JCjmKn)cLj~6kd<1LVX|tK%?IM$b z0t!DAvp?EyH?4`y0IqnJ5u#uHcf)2dhwP(Gc}+B!ZTnunr89VFi)MBX#2tq*o)vam z!O^4`KNiqrov)zqA@`1=!MZTA?W%D3cJv<2GaC znRf*J%zddbTOYwjwd86eb&MXt-K@B9o|XSdAos~o@W#lw)EKvADp<0^mxb$sbLqLY z*UH8v)!29?vz4}KKp}?{PgG_;us}F}nN5^nGF{Et1gi+^=z7Y%&fbKSQJ%RlOP03G zB>59A(6xDT0+2lPtNj<=h11xiu%5q{^m&HOZ6BO(6T6pE$vXd1TfdfDGc@NKR#z)A z&VAJXuH3^>E-r<56d{oq#Bx(aFu7P7O|h#mtB6)dgMbk4kef_K+z~BQGgSx6hLYY= zatUlTbJ>m&g`z7De$AM@70EX4jC<%ce+^F{QrT1FM%xo^(RPFAyDpnh2;F0IEm?L% z;w{unZXBz>H;gZVbP>jvj1v8OV%;kO16L>$`2>|((Hr}?O?Ng7=lH${yL6#$5EIbz=;tUNrc@6a1n z|9lR5pD%Pv>=wU+$^zPRXSQ|p1aJUj6#6K}G7Oquxp6#JnSgP^AH6xX`uQMg29P0{ zty##NzZ$tznlCk36X#bKUmP_{OiQo6*-aUB zQ{dBfyJK^zPd2X`kK*-qzQk&f`E8ENEl4g|XMzFOSa!=u`duE1-Op#}K zI~{B8iEw&6XMmHzSS-sSDx&bv&mqPh%WXzLGKAMbZ|NQj)P z8XG8rOk7K4B^E*DkyA3H#+NK+;=gr#zt5s#53D&~?=Q39l`T05hJjvWkh&{6!lVNB zY&4x{v8mlY>R9wWcrjwatYgCY3U&9HD&GM_F{RXAtzb^m1w8FIu|I$sZ(ihA7Q33; zDL<&!V&@n2&zI3^&*_1GyVTLLED|qMdApxttUP@tC2a@ozty28x}(EPui;TvRAx8B z2Zr#&#IbO=kOw>|3J!IG_ZQn<0+b>tH4HA(FKb6E@iSU0b}{0fa$U`3yZXx{Ck%j! zVf2LOd1%YmTWI_Zdp%PwC#-O$mj{mT?DRbm(25NqxYG~N?`tno;tRwxB4RNMPv<(^ zB{n({a|ie4f*8@nXFsAEuR2ZW_u&i^i%V90R!zY=zEAqX_nUe&g8zXu61eik|LL$u zE%FD!{of%q>3?DB|2Gq`$7VwG9au(|LKZ?1S|_z7Q#la+QKCd2R-qK3LWLA3Tq$xi zNsG>=**R(*b}!#`y#SyLeg5=ZR`D5jPXQX~1MiAG&s9z?@9lo>6XZLBbM8>oW+zI+ z^*&fg2E0yU6F%zd6AB@xx1EHz3P?Oj4SPyD?EydS4Eusp=aLmDo?U&I!h##t^ag$v z2@iLAU%;~_j4ncBN{%Xt>4J(4=QlO3g2Zlu z-~4C@`8RbOVeDurlonBF0Xn2{%k$0ND7k)A5!tkPjJYr>Tjut6)7OxpclR$7$o@|z z037oaf(L^AAHd2Vq*9zb{Yw;Uq(@k~Wz#M{@441Cj>LxY<_P%WF*3FJ2g5H8i04e@;5g_SeQlY%jAj9LkxBXV^bZ53_$IHXeKwMz6KYjXWKQ<~dy?W&~DqB2aNWHp-)^o^hZMGzQJ*{%^;`Ml<o}Pw2c~9j>BhV!S7iIX3!zQ*lJGs4&Oj@WwZ4?-ZrEg=0-K z>Gcnq`Srim>}tnkyHYpHua~;aI%g^$nyV~k%$YLoNVhLb#43>fOhe#QJ&`?7iwX^~ z@tWrVP(=vqv2D#FnkfL~Q9EgyZ%}ni!{)Zwj6B9@Rpr$tKcX#vRi|?_;f*$TlB#1P zohi-7cw)VVJ%)<0k}whoO9~+}gx?Pm6ZRJBbA{({$Rb*QhI%$eHqR(M;rk31C~J(l zcPStp(v_8?ud_?u7LxhXD9G>;5Sp9ca;DS*pjYXWjd)${y_idnP^BivF#GxS=79^M z*zCaEZfpJ!=33z9$R+yp+7XE$IH*;4#A{x=bdCSD7R57HuU=mr8}qjyMj$54zuaUF|<(@4Xx)cKkfDcANi(9E6N)X-mMq^0Dg z01Xnkgi+@eNjVzg*04XGd_*5=-+m|$G2y2A&aJ3XX@Z&9sVF=yA;GX3Y$fS6BC0XsOWWDrLc%24Z_H%xA?P6(w;Cx21vgka8-@^&p(haVyawHo z(j6sm%l%zbZB}A{OuB`%whG)_STYjVmRl-g%a{V!^kQ~PZwi;Q`(?iNzqft zZc_TvpzG?Z!4_Pp2KSRI!6S)?wFHpa{&7kHBa%U>phy)FZbYe_irIQ7tL`(8d0a7< z=|NllsO_e9YP8^8vRoHVRU568kCgkFw>B}!21m*ZH=T}QB#5xQO>7Owh=or&Q5=Jk zcV#Z0rx1~d?=>g6{n=RY`rTilgDk>t;E~5905mzqA@SjCIufDqDw^!A+%=Q&5+> zWp@$ea#0ciQpA4AUu57EdESU^LI4QC0{*bfJTCWGPK6aX&@kqga1~PEM&xNI!vV_| z9)An>+dAmxavFnzplgOj ztw7?-p+y3W;CI0|Wz5M09ZKNtSAzj1i&Xs--cCMuxL+HLC2(821X3fL8eBa@yC@8Q z;h6`<;iE^}qiPDPxmqG$2%!r-|27lbkiH(v3$o|#&S!2SP|v&9>)s*fN-w;%{M<0m zUiTbx^{1{$%C|dvh%ne(5gsz?s=da|Yv7a( zm+3CnHCa!98JT;+qO29~^#0k%J4lpdk2#&Q&1ItYM%gM#kdukDxEg_qmXDN0Voky; zgGJ6Ov?95J0XttU42v!7^Phr<>ZXiS>+`kr`!8JNe>>0ObCB5o3;qWCm9+j1Y5rgH z*{4N}8RE<5dz(}UP8zSD1P@X+Fci0Q0{+*@s1D<%t>*k5Z5lr`-Grg_uu{v{DzSuS|5FCBNt)7-m&X^xyurf3^~&8_=VrPyV0?8GOpCE1R9YrP)0Nd$l2dX9!_> z*CqEBqUBR;j%{rOE-#CrWAp;9MnZ6is6z)df@O zoq%k~9^!yPsYv!luu`~@4&Mnx@y;(_%K?dwEbVbF?5D=mHS+|H9z0GiQ^*tRd@Gv* zUIQ1aR>Mxm6E#FV(Mt=V4L!@##2gcL?aKspTHl;PjmM*;hX`z?jGeR~RWd`n5;Aco zVy3%7KjVcPS4%gfxo6kn@bR$3%^c~4PPNW{{YvV@Zm-^y*dGCbxYM<^!~V2oY9Brj zx}1@jxfCjK%|Tbu)^Q~sojWmsqFk}fj)66kfI2X`&|m+7mGeENU&HB_-wJVM&NsYwR9?C z=PAE}R-Hx@#wh}cF_;a@ahFl+Omx%7O71nGj*b+30pOv!xfXgZQvPw8{20I&FamVKSl%It!Ct| z3@(Fm@{#X)OkkmD;v{4lCh}=Vd{{zkh)HguqoFZjoo^V z0n9%%^_E5vzC-gOtMIq1VUKV+h!W7Fa`UE)k-uabgGLLr^*CEPgqa9tchjyQuWVwCHHf z9?0LFslX2`XC3ZBOl2#Y^m-+S;m+cpu|bNl!DrHcBu-l0{D>xZjkWtABpMDJVDhe?x66_kOje~m~cyYW}gk1Q^+?gdB~4WGy)$5B!eWrrHE zPfUcrQ6DBS%hj;*jqIMuU~N+S7i*~0F$F-G*TC5N=y>=Ca(d9evJ*g${FM4xM@1A) z-zuA=ek3*)S15T4^&}*fB#}b>h7+oRomIEz;U2gZG&=qZJuoV$=C6fK`CUAS&bXDF z);Ljr+xU1r4p&)t52vhx$_yu$P`WBEkUs;B4wu8wiskrjRbuz2r|fVhSfFlAp*K@H z9IH#bfs=(WPG4)h3qwZzrBj^&&sotvlStsWVoe^a;r4x)+1E$S7DNfS?rAxT7%Km~ zKmIP?DdIYdAWp=Ue#os%zHOs`2Ky=J;H{fd?ejRSCGrOvEb0n0H0cT)y7hP2@=Ghm z8jKq&>Ww=apwrA$H>kF7>GqhgVj`2Q<8bL$>9pupY1Y0v#*?q@n@ZWn;)AVPj54g+ zj1q)u)~P*cxT!yAxoI0%>?7~_GW?;jNotT1`|(}VQM{BTM?)ZxlD;(()Ny4Xa!>kH zqCXko6pV8KBlUe3JPEjykHKG>Ew-TU9>Ij!a0%-Nf*v zIE!7r(+YYQ2wxx-YXKwk4$K?lCFDbNpl$317Q}<{RrM-#6WE9zp_@c0wjAykx}-hq zx55^7H<)E*ov-8Xby;WCQuKRQ%be$WeB*b_=7p1|RFrHrSIQVcflF5OY6o+H)Vc_< z~cU8+4`GwnwqfaVI1e6 z+SSZ{(W@XBg)F~(Ka=5IS@w3r$&*IEKR`X@LCnnr6w{)9OTohk=ai@r6QvmWP+^w} z3O0s`VJqk8`DAfWA{uoE3kfToW!`*o5$-(>0t8esgu&3D3h(-6_7)f4#21sqt==rp zOir$wk?~@>(M6^5)|zs4Ioyw1Q`BnXtQ&igRz2iCh7Sj!Y89c&cK|$}V1run^mWD5 zo4-rksAsIx?@(4XLPL@rNf;6h5o0E!F`3D(Omb&0o6k^gpsiPAX_u_Z=6#(qp{LCx zeY&Ab5e0sQ-_T&CnuDjVsCYuxmMQrJDoHZaa6|R=YgWe@qlCshbbFTgX@YXM=mw3G z&05FbuRpaIvWL!{og?`yE*Pl|tBgZV9iXCw>?vs!%BvBg@V}sQ_JWqyO(()u?&!i~ zrkjJ0HG0!PS@&7T8cKE9QUqRBHGGrRYunqfHB7&$NMnwuXxhZKxS*<2ue|%t@JzMf z7}qv`5uPgeFB^hQZ6#)uGM){WU#0tEzhT@XlkS75Ng@`y!73W=D;lDTyJynw3rf0o z#-cEsbxVdt=|(Qwy9V+Pz}^^t0ec6VW*h2|gKXymHNN{3$PxUCGLL^qJd|Hd5M#o@ z@2xPeOdLLwax+GAYQq&{at-I$yFXCCM{pNYnAcHY_WR9yBFZe6d}wza=+#!pzeidQ zNo+U55f-?PzQ{O*BS;l3lCNG7uxxW3{MsmWqb`Zk9p}c&AOegi@C^UJOA^Uu`cNS+ zKqn{%{osz0hB{g4LSA%Z#n`4-4{J8y+K9p;7!vIOU%P^~9c;HpyDaMN2u|rv#`yTc z{EYg_KtQ^v(G(wC~O){ZkvPlFalWqWB&#;GUApmbxYB6 zWuo*#KwLxRH-ocO8<_^!aG0+qF=AgT~p%mkHPB*dq)^TTNc18$mK=Z&eYwKdYQ$F_kZJt{AnRe2k>G{Zy{*cUX(A$H=_Et|l~_ z&8Cgtl-`p+ik82)`^V4p0eA0tGLCE;#F#ZJH{7{N78-m_wajLY8LR2!Kw|j9+th_B z1>}pi!3n=OlhGjt5v;Yh^vz7}9#m05{>f|ejJU9J*WJg~KXyd^2&k|yH+(m(j+x2a#&l;jsgVRu{`oMpEt$2jtn9>2yft~!+aI!nL5lVTnGL(-GQ?EBt+8mfQ~ zvMl@k^`H(hlC2TBDwWw9kdy$Eys%s@q?OzU%NtVLnnh-~oPR4weCg2z& zk?J(*$g!0oCI>U>kl+f^3YFh7I1b8Z^vboXmn({Aoi(_5aXW88og%Kw854HPo8CC* zRkW-(JX3DRReDx!0fmJywec{YaSFEVWWnAt(FQpSyUrIRKYyp%r{aDd)eth6wVk26 zQszqoZGO9??sz7yXS{7}BMEJi5^2&~>l@A(suiQwmlt8|%zcs>yI2Re0TZQ;td@Hi zbn*D+37O^xj~=Tae_RtrZWDnhDO#cZFE0fM)E2`Q$357s2#8|_9U|Pchj z4!o4E*a^+3jV5&O{KhO1i1ZZNcL%N71Aptno1{go}1~#yJYEZkT`yfo$ zFX`RW{$tb%H{_7|0k0DFL22`gf z9Y?}I%%^gJRhlzO{@OK}k5ig_@dKJh2I7#0*6A=?It3Y(UAxHNCP}O1n3;~+8_!m8 zz*j5VEes(f$9s&{6)06;SJA?>sj^py46}nUZ*A*mYw#Jn9l7k-aGt$Kg@Vy&pn+=E zr?DC~+>VNxlW~-%$kK4YBsw|G4Y&CUdP%XIj18Mw!?EFKeEaQg;Ja9*pIqRm_OE!G zFxUZ|#7#-G7T_JjSLS2Yh@g)BMXRs<$2WDghI>{)DwCM008#-f$#N37RBu$)EF+NS zq92JKzrm)`d7N8;OT2Fv_^9XGZnO+RE@0QYD$0p%9piVEL}@_@3Oc_CKSg%jkCA)$ z;7b2F%{>aUvm&Kf)S{Ew#^@-xvXUrN&eC0PFQndJZc`?ysWm!Mzcuayrs`c@hNBk$ zc5ePYKF8QHcSwA~-L9K*f@Ta!?0e8R8zN^}8Lz%X2Q*m?INSbU{*W!=$JY<#(a5t( z2M+@c)dYwr-Eg(@AA36rfdjbe4h7qzJ8?GcbE~n&AntlvNnK*}iROb5;Tw4kIAF`% z8Z}d#ZF07SC#@`A6`G=6yy~LXO*h+u_(Hvw8SP9uzw*{L?5&+6wq{#GZX2kNtQT|P z*`J$lFYK(;%lCOYlY!sv<*b_!s(Xy@l{a45ryRhaz$R9Fv~K}vL)8veD@y6h-_`GP z#s2cVr1ho47t;cAYU|A925nX_a0H>6v?fsh%dIECu%U-{rvtidN*}IWN6h_@X>WPy znnh6&Jl6D(N>ct0 z_)R9J1E@RIE!uC2J~{R1HCRtKPy^=QvJI))JN*ZkWhsSDIkS%PhUq~KTO4S%=%f-d zo+C?Uj$_y9<@Rdqvz7LGRy(VDAmjFL%dz^3bmcVUn%l>GbDJW5myp1mKGx*D9b}0r z$7!jSukqcRCem9<6L~=tCr@87x&k9FXL@L~Uq_B`ZaJ<74jm#o?zTKn_DIN)2Bu$^ z^=<$S$G6a%Ru1JIYFq-iSDoW`es|SRR=9%}zkNhKT86-~`iah^w9VpNXzKWw#_a^B0Lc3T zYzxfxe#@vbm{uLpp1#L9=z_Ggz7Q@*I2u4O}l4; zJ*B|$5rfToCk)sxbh8c5*xsGhu{gxmL z5==bimdh@%NB~*rz@XC7CYY!b5}@Y`|G@C)NuaAaPhp*|axfkd+Sb2BV#3R2;0>Rm4F&tcUcyq(!9?gIbRD<~~ zG2p@6i8T<)+2p#qApWday-(^{sDsLa#MDa7R2@3?;xD?kknQK0yRwH##+}OHs#FY>ozCB=+QGa21bfz8{b#)) zkgNrDxI z6yW=`0c9pZfY`I;S z&L^-XCMA1b@Oe&Mx?Xf1zR$hCTsCiltwg)Nwji3Boc&ZB+D$E{*T+6sGG>ejnYjA62g zO=3nUp~B+>_yI|VprZ;0S#uGFUc(jb+g}E!d(X$EN7i&W(dD7>^`quzz`H%N?IA`B zIL(2X32n0dm9|veVn4$q4ItaRgq3J0D{ws(FH)x5!r3DzSAs7-f;D0gz-p!C!LCS$ z4x4l?j4?!_nTw>MAPSO^5T5r^=5Rj55;8I;lF?_Tl`>8T?Y51g7QW&&7dLYGhvQU6 zm=*xEFs-In_a;t16WpEUQB^#nc$g=dJ||o0oixUge{wct(4ypFi|Nf|9u7mD;7j1D z=wDfrhfEdtu$+$_490ECuc}O0{@w;i&|XCBy9fy{*ru{cnY+ujv|r%N$`Uf1w8l+N z+t(LxXQVNLboaGpo)g9Q$Dcf^&Z4^TTrb646`Cu-#%2`Jp7(`=W+UsFN}MGL)Gj}9 zf8_H*rT!yChn;PUbl^&(xh5Su)5*anhwjm)IcgTa*7Y}pi(nl;r7p4-A=rTvkv32c%;cPZq=eU}x&0Q%f zEOmnOj((WVthi{&NN6_b9eF&rf_%8jS1h{7{eZd39NTZ1?gVIS%s|~JwW~7D3gixo zZ3IY=-7f|^>)mAXfcveXdF^w)hHGBpX`q*@T!C&W!RBhK6t7U#NE_jg{bW<)e7PWk zv!TyKq{6JcSRQ3Hi8r!vbnhdW%B9X54%oA@kHCf$q%r$=HGD0j6dD2?|PMC zu&c6`ca{j(Lc7fHOC}{hGzP^1LeSSVjl?P-q)FYSy{s7Snj&BJd1A+S2n%za^s+J2 z>K{6P>!)kS7(A5jW9CsdOpkPH$vK(@__z`krzx-sPUxIpKL-L*ir6a=#0cL^8p7Y- zEeBizn4wWvH39mlmBFeN-Z6nMv)Uwt5=4>t4ctGHV%O2SLW53ikHBzD>Uxmb03E>~ z<}~VkBD?|OI-j{IC_Y~&G-|`| z+b}&9f;jy8P!@T^6kV>(0R_7&1jcNa5i&l0CY#1UQu@lv+f0|;jLQCbp5ZTnqnGyr zo~LkzTf4S4&>x&W6JSPGp6#T?~tQV%JE9Y}k(28P@vw|1IYjRELXKx8>LN1J}x^;*# z2(kF)53>T0)w?oJ|8j)CVDkziT7J6WLjG4U>HpNGlI2#x5$b^hq2T|Ktl|tAljU~7 zQ9+6ER{xAi1#R}5V8+lWYBj2#LeeKE(TD0K1O>#f6ZcB_Ss1?Re@mIM(NCUWaC=sH zDU@M*`E+ItvDPeo3rUhOJv&&+rYc2pxtAsLAyGmEp55gC>n8 zbA}S(y;l21L!2>Ah)m+#ObfG|)V~^yvmO_%A-|F4TEF3wk-pcSBmWR* z#}g~_&~wY$lP;yssB%27+K&tpQhQ!{3MCH`I+YLI_`&VdL_Sovb`!{0zYj~is1Ua+ zwEtZfW--?L=T3Ei{CFm+&UBh2%`G_zP&H8nXu%7bI%>)L(~GHCjJ z;6ogt@5T5&6br7LF(d1~&YOg%i{afMx~9_&6K?N1Y27J6Kyd42 zTk_Z;guW>jwLrVE3P_5T)k)CrAE1>NIpn^Jy!zIy$30sPo!P{)JRTDp1CcWaQ0gBf zX4@VrM3<26DtqH=X>Kh}aPMuR0J3g`%mQvzPFY#Vmax+qoxyjA@bZuv0&y>)BbnGK zq<3B+&J?7j;xgZye8ALkpS4?$$5_3p2Xt!R0~ z&jYkr4cWJ^!<>g$EvWW$D;c|Ja>$*$Vs^BC?Wk{jf3hbKuVM~MRj3JYq3cxzn5X#q zXtKrNc~)3<{xu)hRR-(+`1E9w{~u3g{Ok*5GS3V+38+%zQxRSKM-eS>$KkWWUai}| zmtb#Vn^WJY5p0UUG|*}y#~qidSr^#>P@nS z=7d=xGba8;Hp6C-P9c+H;maY>oDt0g0bUvkM#?N zQU{t1h;v^=AjlX%*KdJ6HF8w|FE@HssK^^>#+GrvHLjarAl|QL{9Xn>J$99Wd1$X| zpUo(Qr-z!R_qYS;B@|@maZT^F=8p;R8VZ;}uU~E?i;nsl;ap5JhI(fpHY3yQ#FS*QAg)B0;J=2ZG?_Kf>5O3`WtD#? z!A+$GBJLZlPgm_Am1xyi4dfPvNGIrp*|DMvE7Zq`C!c5;A^_iu=Z+|DeHU$uq*c## zf4VoUhXo+2!_XRohvz?>;d*B0h_ox2l9&VvpYl{BU`GWSc?XpJp$L~BWkRk5jdLd` z{%D=IC07c4GT^F?vPGcO(5J2KKZ#fQnX^B8u1YrmWP!c@9Ui65$a7eTs^}pGBw}H7 zjofFDxDSrM#Xx>Vr66iny$)9_hk?SS@TtuAjn>WR23%0IEDsAMwE#IyoeT5%R1J$) zQELZyuXC_hZ7BNcTzzfbDRQYm6Jfw~8e>WSR;Chc@58Gf2U)9E9~91l&GE@-ls1I+ zfRQS)+}A*%`ef&fv(0Vmag;GLJdgvW(luCARLnWRYl1jK(+qMFIEQndw_Xat6Upf| zQTLOlqG0fGe3u#7&N~CasPJjX1QH9_JRJW2#f2TK~!#I~ktc zDpHg>UTLqe8xgwP-qsp6eIq6Efx1qs-I;e`(XW6-T>b&SySk3~A=1$hD0KY31iw8l z0ko|i{tlZ230CR=`+jv0KzD`U7FG$D($%AV_gHu)uDIk29`ZN1eZMHgEm?fmZGQZ} z4*5~gdEAELM=g-S&VOk7k?|g4^ol8J1mti;0+^if+8r{mf?#2T8gaM*NSu7rO{d*#GJnfwJmn2Vy8OO=WlVn45tPWb+Pd5*xaSSW2nEPU_UmXzt30t1Ll zAyOo!pQ&F<=GlK=jMe$mS&sm@S2;t^c20Q zM%0BTAFxxFBjz}lAk%LkAS|MFXY`dNdDhacM6HwiJRtrS zs|Msy9Exs0e?2Z;m^++4U+;*w3@RTF$EMPN7$rTA- z?Jep>HwB5pfz256AYWuz#J);1dDyWcl7 z#*G-JzXhC6<4r$yu%B z!Z!89_c6O9ij(a|1hzlI`MkrFj+u*1ROPIS-BOCPF`%pT1t^rgOzuSi>5|?aj59RG zR5I`W*xqZxOs$a8RgO3JOj*nEgMLa_?UzJsc&Dr<(aM={4zR7JvZs#v{4KYWBzD9D zeW;LfbFx>T;EgL@%Pi$a5V^xn-(+e)XG!JV?`kxypGZ8O@1S?DE|Wg3zj;+DF3QGZ zGtd#8v_uH6EkdUGJWPVEjt(bI#IA61#~|(ob+SyRhY0B-|DHkoiG^O0u!Ogj+U_)h z$Z_PAw5Nis$m@ujxlXtjt0f!gTF>eP+ATdGoqESG>sm~;b2?bdeEx2BP!zkWIwtn@ zax7(7=ZWa{3F&fU+KG93{!OO%$GZXAvssqkI3XuwbN7-r>>%aSLLlO;dOj2A+jG7? zmrs=C>(@p%1W>QMz@MLxgvh#<&K%uM;*}TMk8KMljL(C%ujtjzNqs>DSccutAYFnF zoX2YzDN%ZO%nYaZcq(jRa=9$Qgcl8pa|pWz!4|oabxZ~BkW~IlC8~B0tTwwjq_H=l z60D#57Ru)a+MBm2{YuyF(zoLi-3;%}*@BI5#apNew=Jqg#L@(P34(M}wwAI+CkhLE zffj0JoC~l}&J5B)%x`p;rg($KATXL8p%m)6$(mZzOnF2!a@!y1(cQ+7U8AsGaPikx z6Fqj!sNF*NKGA?D@V1svgdKdB6oDOC61-wVuP90TG+wtf$!oks>cTZi-ei>*G1f67 zHOJC=^yjwJ%wpW6T4Ck9OuykvLz9=$+E)4tU_uT37;`WUQ#8%2w92O(#!pv#f=p5| z5@rul4VdO3fw1}8xG%**DTk6Q-scyR8BKj}DW*|GjMY?YcCE}2f|GR;o!56+;&Fj= zus@JFJq1(tE4avzUq%RZv94r(RA;ZVc~)qWR2b1zW+w{wXw+W9wL+UFR-vj&X}ZMx&amQM9X36#PEZbWR;EBZclStxsVtLE+3 zw9WoI%CiI)ah8Es64cH-ajWL;6Z)`&{yUiPdiYB2NV7w9d0VE9pgR}$iv2z&T)?>V z6-G*!JvPfCzq@Z5BrXD(j}8t+?4~b^`Vc4e=S%3{F#>$9d7&&TquLJ z&WXc&9hx50CX{5UCfq*Qk85P;WD}$$Amo&hH~;f^s+T^5J4p344tc>Gx^lw1)ECR9 z5Gif#wM5Z%U7<>O(vYgzhDt{ArxL4Ju8ct<>2&h!(n*zbwwQNix=FgmDTY~vGY_yn zq`Y32Sw~fL2U?+^XG0U7d^~vsL}H}ZhrhDrLRJqQiMZXFI2jPf3KBZuyl)|uD&7E znGohlzHmCTX>1TbK6T zvJ@rWK}08Hx4|h<4gBfCT!~gewFXx4cBH39a`7K*?3tp$nt$2Xi1tIY+`3gB;tbPd z^Xo^K3!^lG^+w9=`maz<6Q}es_(ntbsUeP}&Z6Xu(E0rDfvTP5LrJ~vk(lMz7O$0( zVA0#GvWg$*xOy2@QohgDa8FI+=5Rojp632lki!Cy2bu?8-r;-0IGBUsS(8%nSWc9Y zxaQ+|lXor`5m?J`lo5>C2azhL^2V-wDQ@2)*ru-8u)BV?zkMWlTKcY6CHUMz=4pmb z=Wm_MGaM&0Tl*j6u)RPRg2qz^7gntGsf)^~$}OayU_A3$V0w&~#;g~goLzt`M^TL> zDBHx$D=PCE5BG@oFzj$vL{BI{w`cMW!7HFE6zW(j15K!a#zPusThm(ZTdh{TG{)w)gv2^jU<&j3QeE8aRXRf0SN>87|mFwa~ zgg5sfzD2^Bo?)OA44nK1^j6GOL-QO?zHgF2Mg8_4Jiu*7_0{pGB0ER)e-v47{Lh}c zeiB+T4g(l0=-;GNA=8CuTAmtR86F*JuO= zIX2y{MhkxK_zUz9nsn6bd{sbgAKmDDoXYf^PGw#FbpC&Qk?*s_p{Xk43~yztGT@J- zZK;aWh&c#?w<}W@R!!PNJA%D|?>AV3$56#`Q~_OJby?vI=Ipvx5n{COlRS3p1Wju- z+4l`k&YY!fzth-gvf{IP4akpt@1RvP6R&Cy(#I-Ki*lQ-eGKUCf213eR$ixQKKa98 zf=3yTf&-4#5Vi{qTHg^QqKYR39{mjMiE1eQjRHW1=n%0fmSbucWR?}XLUEZf!o&}#Ey)tlM= zh-&oX(^<5Hd%|8=x%md;6gm7Fz)B&?T&HfCCMo0Z-|0_DmQRrys%1b44=(*0by-QYT@nOoPDZqnYji zW!RKF(tsXX>6k?ly+JPNQCr2*mj1(*e$%et0Zid(QC_i&)X=xM4e(RqXBdrRa+~iC z2Vd&v_y+7jGF-xzk6);Q55i```5S)XYs#*T+}+UP~MbM~bAm5Cbj*aQDuC`hp44 zyd+pwO;%8+0ij+7*+`prX>s<>%P#w;w(SgyJPNLyETG0yKtMfXLgh!kJ}+mD_gCmt z{N+T;dE_oet{b3Qi_HG2%=o1XcNT2L#;0Y7TU91hRjUmQyopa>g6_$`; zAo}kEGAKL61=@*tPyQ}oAG+D3vy^a5G-vv%Ra%|EyBPUqA#2@HWJYBIz~NlTEAr%~ z>VZ-6H!-}aLT8KrRAn8edb}d7QcHl9Om{YTE4Y529dEjMeTfzu&utQ3Q9NCpSa~W_ z`I6qu9-o6Hr4QcV{%dsD=7PPuv_0^>o1BC$5|lhXVAMCRfREQal3142z8X7Byf<8! zGvRM@Lq_3#gZk>Q{(OnziJ>(&y90BC%foE!2I$lG9q%xG`KsLuIC3~}6iZ)5HsgzV z|F!ZLB~yRr6e$-I<=~|(B&Sm&>UiK!cgTH4r7C%y05a|nUS=QJw-gB59Sn0vf96%_ zTVp?frU_d8a0sH4pAw!?53@bbjBHOrBS7e$h4L5ysC%vQkH^LDr9-@hXgT2@d!@b-|VE zV`wCja&DEsfdSI{M#B^D9}xT86>03qz^b!x+1vKF!l}5JPs=6kKs7xFtGZb`*Y|3)qDBoHxD#TYc&mXLH zDXlDI?j^Yw6tHb(%v8b2K}sf${KDF8jQpPcv(+wA?|c;62utT z@jm80!B>#hE1lM zQ|f*$Bs`L)pQcot~*Wr<)8N4eEYj8@D5=QLK1kcg)4sJ z^jAPP@^M2-4zK@|o-@L3eM)ZB2O-hp`K3!!9)$WW2pPuyMj+PT_>4wlUdItK?$)9C z3_@)WW*y(KY(}7Acrm@U_=!*_K9GVd1s3*wMh*+kJM^<G_K z7|@o|uJBr>c<^SY&ex-Y3>hXfw@MO`j;Uh-dujF~?VqiDP#| zF<52zcrq|rGh{=B^82Js=}ECi_ifh3xMM%Nat3R$bq5=NiSuBa3V~+Y#?JHD(wswa z+uG5o-_>Bh2hg~o6nNpCms(TOsj(?85Um6$Cz&i5&68Rph`mW;&(bS{eWkDmG@QNbKBjz^Ijros7!Pi|{Ba zq?VOuNsnHG;!h^es1X)PSQpjW?^@VvEK+d`YjIjNH^+Mg-nw$e&f84Ets;=0n|fW= zEnhvna%>}B355ly5vapD7#B-&SHNe$_m%B*I=Okg#zy6s@dXcY@hb7rN*2H()UC*K zivd?4y0Iv%pd;w1W4zQR_yw|^U?f*RzH`X>;LI;^n&J*wh<$R%vGh?&i|wpe7o7{i zKL;|pGF_B9BRNirMt9L3p-$dXOsU_hrE13+QjD;cAT{(qo%F1HpHbTcJC(sq!R82Hxs3R-C({4K`tQmmU$3wHRctxQ%9g>Q%PQ>Q%K3hdsjx@CvM6#WGo++d3vBV5-k9o^LF&uj$H3PSW_jD(0R6&X|kXKFQ@DhexjDjPE{ zlmk|K5znBw=B%|i;$i!8acWC{(*XQ4wxU%2?DT*T7U6|*q_fSwljdWPw_C+5oYgwb&;S!qc&M&ax`~P1mOL;IR2I zM)eDnh5|>zGZNx)e9R=KpJ}?);VPD+C0K_sJGjX}wK9oVC;HB{-Rj{dhrEH_+Wx_w zu=zCO>)pZLnhrHHS+0uq1G=-rDTqj0@f}K6@@svk>kQM9D`Mo>jgFhC$6woi+)IQ_ z!Cl|xbx%Yee)jdgqIP*R+kQ-j9QT~sP6u~T5AGj(Oq@sdZye|~tEcTf#ID)8NyC%Qg;=YDEvAvJw|sEF)qpEh$=cu3sZDQ_1Zj`!Z8aZ$e}6eHN=6~@ z0LG+&!w(Z1j$F>K#_8Q0LuZlbky4Ce5$oZ~BHv=&qn!v#=@z?@0C+s%%<1)|cwaF= zU$^zOz_dU?C!LVhhs%;gg{yN&goafTf5Xer=cZ6fy|`s}ai~_q%)}Wb)s! z-0Y6wY-#oXe)8BCWx=^s9Wj8pyLZoYPV7-%rdktpLoHiose0@zSekooS*x zO7&2z@W+KJvmvU|;f7e0I`et(Z_o;w?hhTfk>5lWc7{sGWBGt*@E%x<0u)zdTrN(T zHaBnoL5cWhug#Zzp6Q$aM}GbfiRHgOSd*h{z%l+Al#FLIgi7|^2S;e;$N&@g`X5C) zSuhXm^WMV(k*u=^4wHOC1;!6)K*Qknr5QjCb_<5ngvfCG4+*s6|5UBX|G3VQ_P`;N zd1t`k>t|ey!2bQkXeKbWX3ei)8vm6)@$b#*-+w?%-kJr6iKpeK28~k+_99;84_MH{ z=9v>Y9e7Z%?%kgsL-t@`lppm(1aiUM!kds^pad!Eu&xwK!Z@K_abhs{w~Z&-ksR|l zlsOxt6nCE6S7r)bth1w_9QK7rbSp2n3l~J1vjW|6r+Z|v+p6L10)Ha^?X#1n6oFk- zgAU-5XDLv0po~Xc1TDq#zlYr!ADGRskVO3U!-;C)=$Oo8i~Z%K58v%-l2OlYEOku= z@H03p&gc}#Zjxiu@l+f&&K}az=q%8PCdr1js#4yeLrCw_zB2uhCCG8(Wi|0xUV@=k>UKg)ul&-MFn)XYD1-{+$d zKQlpAU(GuB@1n&sLy#rgt%KA3|0}^twN((B2+}+Es&SpcPoe-^Fo#7M&ZHlEuq0$* zbk;wme8X??<(*)G7TKh&? z-*I%mv=x_^x3!nGwZAme9x{F{=`VDo6KW6mF0f<(!WE+Ie}hM4vNk(1bc@+04hqI5 zFmOxQX8smPJceWxlAI4sv+R;U`s)H_W~RSJ$!~iYJ_Q~_D6aitr>ZF+fzWB2sQ}xB z^=$ilC(6q!G!tV_$Cul$E8`vBC+U$kZ$&QI($MLD$;-kj|ezUQ+yet4SxemOF?h zRzE>8E>0u6B7TytqH`Hu7Di1JEThzz4kS-hl+c$FX5MWo926=AvRJIjn!9?7OHc?c z)4;xlUwr!&XRbNFixLGb9;vNj^Q*G=>(Gce0Q4DhR&^oXpFqQ0rC=gdR9E3k%!{q4 zQ~(K4M#?v4OP=7u#)syjtmQzLt`_I`vQp)kpL8Vendx%rszNL^8cP#|?;ZK-QMjI=s@nmfbz5=6w(vZqO<~tr z8r0o%iQ*C&;qgb1fWZp_Tg*XvNXboeh?SFJS0m^UD{B~zMR!1oMRy1WyPByZY}vSD z%EpeVBh&}mj=5v9`?5xzZzJ)VKvvRCZwQK$d|L>caN7twTmMI2@mDFhNFnU(+LvjK zH%#70#_Pn0YKI^{W3O6@T`koId^ztJE6^q@{5IXQ1+N0-E>uQ>!}mi-)o7k2V{QGv z?;+X7e?r5*ZhxF_A*bwJ80avg=2p%U01lulKB`Y3i}sBc&^z=X#v&-jfg@sHS?k-$ zhh&OS$7;-_l(AYRAxtBkzpJ`&%M=Saxxr0_M6BeNYSpeS>R2pBT=OT_>#S27gFyWU z-=*~ZW^)H!%3O+zE|62=@tvYE$xbtlr1obM5cu7w5Ny0XbKDy7I!GD-1H3G!U)^c~rBM zF{39|6n{5LG-5F_t-pIDOHksfZeft;n8Z`+x3NDH&X9k~`ya2#{HG>o+uP!HK4T=> zr}?&3Tpte_YN}a=1?~$6Bc{|zdc9~*XxM&qI@j5Tg~8%bbL7KByJnQ{jKOtHObX`i z(3=Ct=6R!PZ_XhI>}2gHfFM@o99-t?4aV^wq3E5)VIfq%a=X!$;S{J#=t}wE9EMD) z$>^MMmDEM3Jn?IAtV+><8dZ-0gVf3jJofuv!%A_${{vTWC92{vEt^0|sj%^zg8xz}@ z*tU}nJGO1xoYeorKr`r;c>Xaa7SLQ2o8@lC=#>0!xhiN)-1a+U2Mb zK|aS7iJ5B{O8|ND7s8THbBq6|)2lQvdouasEfl@BWL@c-vuZt<{B=PJk-5h{5k`{j zSI)#G;7~tcT+ZLmp=FiJb9%EMQ zGhKJ7l)3v0p0;DZsx6>F3n94K7C7^yD5j?F;?pVqef_+e{M;+luAtLbKYIxP8p{9N zEdG@nqc;2}Xo2ECBMd`T|08!Msm^XmK5K;2e_^dACbM|WF5e*%1%w4&At(+W#GG`V zF1I=b+LT@(CZ%~t3$+#zA%+4bds@h^!GtoLU*@nM<@$W4RQCD<-;nbIzY)o) zjZ(ETZs-ie#vsyh+V97Pc41XwStIfYBs&4k@{GEsQ;0+7p7zE)3BIjm5qbLZKgN;? z;=q*(WSdFWjl>H#=U|HNnSI`gZWM*-IN=Mn*8jiN3DYf=F{DvBbuExOsybji~WIV#ex_0%w0Z}zO;x7cR`6^L`4 zU(|sWR`=Jq+N>Oh^JuP?IC4e3z&*^DPVX|aIXczCXj=qVvm6N_ZbGRW_D{11*-K_Y zXI~92-E;*48fACDXK0@BbV{mg?4c46`rY>|onDXy@1)Yo!QE75!tqb9n|@s@^X>U@ zxJ(A(@Trh#J4db8X%~_PLninB7vP82ThRH0=+n^{U0d!fT|Aqmpx6XCd>I5o|5u8Mm}?h*gho^-Wg| zsc-SeX&=^8_c3mm%QT{R%jmsG8~H#G)24hiWd;kc?(OTpXw(+@?h=B}#v}Ltdnb{E zx&fPJGXsGQtkHt=#aJYKr}CLHX9tI)s81ATpk;!a1kZ(%L!bfRlh~0cUuT+98@V!D znDf}G>-@5AQNL+jq9a;ZfFx)`@BA!0|w%tY-PW2QmgK>4zc zEvHqsGlbLWF}b%!tzsItt1#5T?^)}i54E%_{4!uRHvkMG8UHa8@hFO{gJi|jg?f_* z+hD-rQ`-QDlea=UHhON+f!2o{y9_sIEqmxdpUJ|@L+5Ae?dTrryY?I8pzm~-NXE#Q z=!0*c>6`(ZLG1W_xnCZk8&FUxSL*gip>h|a;xv`!{XsnTb0 zN;^qK-tXT0CN$TCJ{yT&DKwV6VF@tgq!^m+-$N2yHIAi!Y}aFitUs7e$z(K?=SY{S zrlM~;da5aw6^YT%`uiGNjp*2&Nb6p?O{u8>`_E_7qsnRX>1Hb&Sd4RGFMoCFEQdy$ zj1)yN%5HDiuOU~^@lC%MUz#$^K}O*=x0=q?r;fO-bJ{}5PTnx%O&6AmL?Gx^Flq&a zkj1^{iOcYOqU*6V2~#tE)lA#PCMY?Mm3M!3JX6Id&2*NyE)3>wwAW1X!>|+2?(9~; z>M06uM4Of^bS`o0V($mfH2VzW9G?@nr7Ty+cS}497DCbSz4Tmn(+&EUL1>A`Eo=ki1ER2&i z0Io8F9YJ-xx_|}Fj{%yJIH(1SbrY%2nTWVDs#KZnyu5cw%w!J%=36vwt4WD7SRQ+$ z$lwK9?O#=AeVth-pV8HCR-#sZa#%ioL`!g`j2sM2DiP{DJiBaI3=Bm+j7g%XEN+u5 zEL5CtGwS*@{5UtsgcrYR^vRh3QLYJY#E8-}86)OFmW=|dwf7OjjcKNdthAcIrf{2y zi7Xao{varc+VQ1dxpO8RfSZi*^o9sHTTa?^HMRAjxj9-rHG?>{v2IZBSJ@pDK2wqH>~$%#u9gLzSk0tdKbPH*OfGr)*XDgA zB;rBiJ^j*EE3Kdsyws>&NMAjm7`s>c@-a2ylDmH?E;VR`~wZFpHl)Z z3A?NImht?9w=17>K-&lxz&>K_Xt81IXY}{#UFPSi$X=^wzW0LNyl3n)t05BB$<*V9 z5nmsxg`96x21SuT8&8xg`t-jd_}uvJxLDdJC8oLc{2I1*wqi^xhy1oL{N;lOStnBs zIU10qqsLrHlw4svyFlfc__?k@3ikod+@w+><{or$Ndfk#t~keEMWe<8Ww(qCnbsOO z<8o-cc-ALOiDB%}FB-&39MBI>3>Q?R_Mz zNJFrdM0QZTG{ucA15D&@lTua!kUEtAWGDuZppm$2D5(cHXNd ze$+oQLpIO2a@kWG7lDg<1FEi7<+$&uv`zYLns`~|lUd1eD(MK?fMhOSz~Fm*_PPzn?Ht-sX9S)(G8maFQ%PJ@Gz$zs8R4|CQ9U&jLtu^VtsFQ z2H#8$UOnGav1`_!_szoYNVZ!{phi>l>~@yDq4K7ueeyZzyOd|UiF1=4`?~OZ`YQ}< zE2bH{(17il6S~7rcr}n_-cAH`6;6P!3T35K6L}Iygc~(3CHv^l#m|CA)kzxk`VxA% zzhQi^J6&1{NGb0&^WlZsgcC)SWkiyL(47F1P&N%eF$<>3_yjNQ9Q?n$GtiwmNYtb+ zS)lnMs?(E0TuZp$$PcUHEKgaGAjose2L)?5UjSV)N+T;KIqUoHwSdJwYvw$^jY~1#1E^(NG$-0ZY3tlj%?-y8EA$*w;o5HBtv1NeB z$_r|!G|o>`seMQm5yhnYTZa1qQF!DJww0-TyWwwoBN=@qDKzqjSEir=v0A!p(G&eZ zQ7~ZD1yA+RImc;reyVD@rX$U9fiD-NVv^#{GA5}GLbqAKgvjrgtI5C2y8t!t;?C@+ zcW=tLU{8S#AC_A743@r*W^V-K0SgwWBNJ$*{10rl4Ccb`*z5vK3GalLI%?M?RXehp zKe1V(&_qxU+@$KdH?HVCB_N8UHI}R5uVsNhknV;|zMv0_4KY7eqwNwA-_HHE=2_wh z(*i%uf0$+nswslzxlY^an2m!PG#Z=pYag ze80}`Rl?)7f>aOw;_^jxh&+mR(|&m3I3#kXCJElb*l$Y?!lRzeK}5iwo~{TK#EJwA zWz(7Y?Xp-y7V`|$d9Vdf9qwmr6MMJ}S#~*!pXe5gv~`U@AggkMcF{^;-&Kb?ax!ny zElP6cX_c^=F`JJ`?;uuPwK~0XAR1}MH0I@t0$rwNTKOtG5vb->^$>E~ODRk0=8CH8 zkN9)kdPz-(HKvPXmNE!3sPg;*+%^JnEbOb4+%dzesd=t zXwSp#$g<;_Txt!ovtxeSl6~$B-h15__bOuxpV63;L`MS8I@Wi!b z{FLyKMXrLs%^P0Bx?Zog$1dQKVq`lPp8T?9?S-hS`3<(OAR*IAJEVku$nw+TIKq%n zBcDs|*U}UJlt2g@u^HdC#FbYgt9Ham{KGHHpNsiA)c5bN0rDZ@+p9rasO4RL)+n0S z+ngq0qzdq+W4B|3imAUHKCD+`0biH^DoyFV`D|)D0UaGA3(zt?JA4HbdT4)aAPQuZ z|M1N!xo8REg|Xv_P9cI!m}5zRqda6r0&L)Ajlp1wsCCq>nGu3yyd($14SfvVkQqB~M6vGI}xEXc_xP ziQ0P1LOYXc?fMTIw$(&%!>>8n(h3&rG687GpP~s9F6=Qlk9_aqpW!#+{Ch;|(6>}c zPBcE74iSBpm~r7PBT$R)2!-px6!QiAs-fGVTQEGojo~oy8L^o(aNXZcGL7D9X-`4kckCbl3}{1Ws_TU5g3)vVmM5q1nijlXhz zieJS~E@3uw0+yAEr0kffS1Tr{6hEU2C58z;L?M76A&Z9u-kEH?@0ptHA4)z^+uM>lplwwJ$r$dnE zX^?u^z~A=;afj%#on}8021fI{-oRJv<%ZLQw!Aw&KQ-Ye^%&tJ2_z^ygCt*4(BDRnRZE*ZB#FEWoY8$E`BoH{SsVbsZBm9$)q`K@2HJfFrQM{U_XRR=GNxyjk zK69yB@ASrJ=_ov3pVcIs5~UZnu@7lZc*_5@hgPCs=f**uZH|C~JL90iiRFQ|iLp(t z!%7V;1L;-%&xJk=WMXV`1!)~By{51Vd8x@VN%yRATds(>&>q(`Y|b>(x}cE{wZHO| z{hSKYX6eNI1o ztJ6KA{EEi5WbC89NAy~6ZVLxub8H7g5i5Ig9cEMNf(Q%hv?#W3BSPVS4*pzZt4u;v zWZ`;m1w_+;)u2U^Cu@(Pj;uu* znNj@bTEf{B6aCrwa9;j}3m>Gj8-o{se{i;kn*hr>|fTtV0``{F|Mu`OVG+;F2V zLj53gCtxBH^}bhyBeg<;BONpLooQysJSD^KA4L4=nYR9K*|bI#Ax)lIRJ*oYnm?0x z_%rEu`Qhk2J;9iN9w}3DsRJ}*+XKQ7Iy#gFBmhg-^{H9IfF2Cq3|^Bc#pg1A+d1?i;rT>+{71 zaKmVrkFt9b8h&fyj`1_g8GN0hJ1b(FeAgZBD#bAj$z#ti+B7ZXN%lDalh`ys0}l9k zNvz?!0*!yILI0k4@FzSZ?sj?9He}z)-d*-NBt-FcPc^zE275h2JS@bAV#8*5yB5c=qF*@yUkL>6YpJhS8Kg2R~`9+GNM&fHi{OC3}66p_y9Tdrpcd4B9^=cBS9=f*e z&GHaby%c+(7|o6q4Llc2aG+AL<>nBX2a6U5^>6!o+V}9DrUC4G0M%JgXjLUPP*a1< zFf_vU3#y7`h3lhjE@@DVdDH~9MrvxxU8Jy-x@INTLIna9(r9<&>ghtYyv-q_)_`hM ztDn18993G_VpAv+LUlGHoF+3aDE+L#kGMHN8>q@`HC##k&5(pAbIR$FK2>pNs_i=GP?Z zy40xD(Ud8$1x-1G$ieaVm<{{L?MOlQ1~T%{vwOmpQjho+k~~n!){oRKiUH2+ zxU}s10-<1UtUVcy%98gnkZNcRT5Mobd2Zx^jwocR_&7q@qdei~mJl4N%E5dCahwGY zdni$%=9Nu;OmQsHBRE2lEwmI46_EX;!pp8H?ZK~e^eSRXnC4XZd|WQ)M9WW^*~m(b z43pxEs=hxIVS@Siy|ZK51EfHc2Mk#_lTJ#0bFjCtiYauB-C2R9w7Gm^6g?xm}o~<#|3-iaNfUF?fDa3ntRyDiYk@C_V zVJ!~?*~itsEMg2irb=M3$oLpWj zNg0Fkfe+&4BBU2qz`{VjLZp|l6e(>NZost@jw3sU)x%16WMmVCsq$-O5eq$r3hD?t zsA+^0>H$__0M5EUVh_s+hd49x_9s>iBLK$!Do7#DP9@!EG5>Eny6EZ@g~GWlbAKK5 zph&LcGIs??LBd5CLl%b9bKuf+)>Upx8}M7q{Z6J7HP1l-sIORiVvB;Q9DI`RsCa4H zhZkuyLR*>QD2~)|$iE2BGUPvrZIoA63L7GWU#?P61BsXn8iw^_6?PwgO^I@!EcRU5f`bChPE;2p zm9)aN+bcxV7!010DSJWcr0FYqkL7ThsV}ZU!(J8JJFY>}F3*aDg$Lr%Ox>g-Z0o!T z;eD6rr)?VzS3j`L^c8_fJxPjJ7H&0IOmQ&5w34%tic*7ENQkPM!qr`@64cWCQODdFNM3u)qQ2Pl{QQ1aZrOB`+T3` z@saBBft*_=oJ;Y;G(9lZ6xSTi<)IWY2N9UQ3-gq$!InrM8J9sReMoCbj;W2RCYnjl zc-Vyp6q(r17sB1%8%%GJ85CcHvI@~xkH2oQ4(f5i6d}|^X|7gB;`mhw^&&hQd`UCB ztA*-{Dp|NfI%sj-5e+m$`-rhBro9=EaiL)q*vHD}Pj%;t~CXZ8x&s(Yh~D>OKR1{!hg88}nN+tgoNo8VfY7n!bip4@n!MU(VH zzfdMfHsl7kA)IX<>eqQE1}HR`{NR(T)**QB^M=_TP{!@u5sNzocleDK8@UP>{yy0S zyqn=hPuktSZa~}~NP|6c=aaB1Z^*bAAvD#(9R4opqD6}J7K)#u)Rz#yIOYgn(U`3& z`w&VVf$jdQQ3%zky@h)(9Fo8W0|tu4j=)NVz$RQmG98zYd=QK~oJD;Y>m+jc!Ys$0 z)X|w;z$pGk_FH^HyjD_MwnXmM?lONjaB$zFexT0EN$Z9lw|B(B^flFN)eRpms|^ja z^Fg01F1o`L8MhS+8qvN22nfJzo%m7F?kf?<8jeXxjM9Li(CvX34;)63yqkVW4!LM2MVSY6HamLon@H| z4AGM3h?;?7ZS5H-x9xUC#@%pHV2Y{1MD!b)VzF5+-$pU!YsQThc6EnVMOjGJZM47B zqujfS`b)EvVQwSoOMLvewpAj)Q>yU+M>mzE$`E|FU39b3|LMiYFvdoxB~?n@7=+e9i&d@sA$%&-8ByUdh==o{2=k{Cf({s=uGB-y z*RTb>(5ocRa-?H+`m_PMthZxFQ1yMC1?eL1gYQ|glGf~T;C*`o zSBY%0tI&=BX&YF>0@=7jw1N!#bj!!}oX=e5!tpccuVGq)ztA*sc$SdV-BSCXI?H#Z zjaQ@04_^Cs*lFUJETM0Aqx*+lR`22)uhQ1E9fxgRKPeV-Z>3tci=KQQ-nqO#nzydz z|Gs&D(t+26ik{Q}z>2q~mscLYZHI^4Ncfhkg`=>=jwH{bmxwiN%Oz;4J%HhfV4vCB z&Zz(i9m07jG7B@U<0aIjzSM3*6H@hhJ}~h6T+gp&2okB;)?$3PL5LW|I&oJ#f0_l*%eXh@_6FWF+zyV1mh>sAVxywL2hihuj zgcpwTptK#cJp!KPS;cz5lwpCsGZscBU;Yd_v_uyC8=TgzD(1SlU0!UABv9ikNV2Z~ z?9?9a9bB@%ICd+53yy2vTeir|KcuG^JpJXjeLpJ`uK{RsD^2&}H^*7oj1<3n+K*mA z{9j-h3rHK_Km|hU_;<5>IzyeYIqb&8(0-1IRd~)*&`^N$g8+|mzRP_mDfBNTq%kxI zywWRNJSbjG14kU;!LRvfIV?IbcokQ;L{NAo%+bdIvkM1SsDD^t%X&ze;g$25f7_te zD)`E7>qx0-Z$9?n=&-Cum6NK|a^AHXM_D<`w3eU~1IJsN`&Ysiv#cR6W@LKFUgS#+ z;NHyV9R%O7W*uAug|n~zsE=}p<0M|xMxduH3IFV8Qqg2|Ps9@+<*6Q$XPa$H*2f~6q?{ap>D z)%e+qfb{ImHakWY$lUbMT3DMJcu?7d-!m{F7_LI{*F5^NFY?o=WHVG;{fQae&60fC z3lR@hBtp_@(K0UpuMa{97DkVMam_;;(h9`pJ`ybnjBOk z#K6gboZ|=<^C6~j2Zb2)k?046LoYXF0@W1|0DA&M)y$XrKLYR-gunEJ#W(^u2T>d$ zvV-_gcl|##WSKiw9D}6IeZ;@u9SR|d4e5MAoX_y{I~1iRc#r*o>4Agw%&{Z>S|J(S z85%Mbpo$_kBPjEII)Z2y}>5FP=uFSkhZj<^%10)T4=qk*t2abopFA+#3J@@2qjDMfi8v5o6O*GcBHjPg4#){7uwn(Vq#c>gQD9*Q#I0WO)w5PzJ)QX&9ex<^Da93?z}!wjHE^;!OaUz^ z7_a??jV)qQ-51%eEO2II22`nM``fm)itIf^Pl4=^0Gn#q_p4D)Da_OdP(7)Q1_|jd zjrWjuz;=oC^QZ0%7K18dcWXYyV4ev9YD0sBU^T1q5lJd!7;blsw!ysth4#KhXtx}e zqWHhaT8)@g=fNeDg(5b%P>h-|3~dHO5N=VcJwchGjP;j+!~*+twqc#wj7rkmn)ZQK z8wVTfm@}1-{PeW2m7dPPX3O$Dr-S&!8r!hNzkTvbHj#|0sdBf}CQXdB?&+6Pt**j; za(fFruHhcPTVl9OsWX; zWPX}iHjAtfsml4QLfM9tLHfMy8(F0utt&z;cn@Uf@C)}`rY>?GonyzpjcE^}_Oms?Vn6ifquwR*5H_!TA<+jU zt(1&7#TS2&FML^MFZGUe(=XxGd`hqQnN3Pn`IZS_+y`DcNvR?gS0p!BWoF8Ftuql; zNK3AXy41Eo^U(hO%}u+7=ycdRs6_39Alc^PD@^+{%y7^oK5T_}=%6&jZU=JPqB z@G>n;kS5etyOWeF7*aOb_Z7HlV8e&#;yI6tIHz_JnY4~?RM{FYMpaEBpS%Q}3x%9V z5yh{%0!^)G&c-&pPjX~qdt@GnWYbm!&P{oQy3)y8YqHXNsMNNFgrZe+>AFo~zk_Ecerf=q_^`$%fO2P)^Imd)Lj-S^qA5`BEzkpaEk< z=&qw5_z_WL0hopyU2@63vZYVY^8|G38WwM2$2|GNUns;r1!_faBZ&AfI;nT?8gU(b z0nYOkB=b!mGEWywU8`V@r{g5Xr_#$=@EiHb`IxNeS$lO3lwju}u{*bke4TNw$mfSl zFm`F}pm(>>Jl9LLZf~0Y&f>t9V=b`wt^824C07SylE+-c056sTlK?7lEVy9+E=e3r z4wEUJ7QR3xI*@*tdxc?Ska-Alg_LTb4meEV8GLvZUg0Pw$DTcdoF26Ln|Im~fkEkv z!<}Oksh@bX|I|$(h`J~i({MarR z16Ep4;s1G~wQf9HF;yp3jDYj{Q47Gh0;nd!Qvn3!KM1 z&w#cR?7RF8nX*$`%-fifNY|44n^L8usuL?f$gtHJt&X`40_$rS+w^j4y;CTIj$x0d<%TOfowpW&WTHp%IGFo9? zix^KG3+OD(G|P%#%p_TyRlZ5$PJ5kA;feV0a7IrUcjw9$O~b z8!F5iJfGsz+lWScX;-w#wu3d))5(s5eM#gK$8}rt0L#zcMMpg;3c7~;aL(?EO@C5q zsN*WuYPZ&AigqaS);W|*Pk@IvQRyZx7^Sn0w1}9KM#=54@Wb%jiq)VKW2EFrZyIbQ zR5Y6c366oUg>bdlMD5ag;B9cs8;ri!;n#!yXaOk0CD$pi{cvdCqAb5@R}YF9Lm;Cw z9%JA;Ww#@iMNQ6<*AB!CglR^}w@cfO;19QWcC{m40had#_Mm-*H-O<6dsG|r_Wclh z8ov6k1P0h`yZC!)&#mo*LKq%9ntKYb8n*pO##QyjEzI?3G|nkRzI^_Ez1k(0wF#z`wRnU1J)G??dM(JZjqIUgz3 zjN)+4MzM+JWB1W00Ty|F`SE`L#(oGTQse<>C)irl8I{Cqf(^>tFuOe#O8DNezr$#a zgV;N`H)O7nX}}$~8@6s{{lK{4s_U=Qz1Vewv`!e)dq|CwT&$|yq1t;6>GWG8344Uu zWLv{ldji?CTccik5ZzJ)gDHFD)z}|HvO~SsGB>RH%7NWMk&vyJ=-rB#Wb3(5v3-z> zk5kE8)xUaFkQNn*55AE)ma zPD&+$k~VOMp`s8eZ7%MsE$&;5=);u`M2Lwz;V0zI39xAmTHJs)S0zh)caoZOqW~W* zw?o^g(O?k|vi`wmgs(27dky<2W0rYc|fxg$*&-gJ>;;cGe` z9^#$Yr6v@L9uPGAh(_!@c~t1&W_lj+?g#z-qW95D$jFdWOrOYG+AXJG^{@~-On*iO zS{Y+x4$oejKeGBq`V)lam>-kpcFYCIEv@2vAT@u-biHcU!OnL4`3snsJ=ZzfUT7=z zMpNjO&N(`kPH$p5jWYH_wrG;# zPU-Fm3VVz*S$>OBF9>g9vRuwtpkJ@E%{G<>Q=ta!@Y`5Y%6R-(PuQb#W>bEAeO-CI z!{{xO;;s3(N&8FX{O_Oh0JmM z;+RdN0?|~;L+FwIp|U4T|d zu?D&n?i066GT!~^0Ms_TPl?){ROT~M^Fv8=7)Q6#Rt)&CiI`Ku z-c5mLkbXKTY(`;{WNw1uM>|ZHyh`b~Ip7+P-Sn;wE`1pM4+9p=uvwx}ZpM^Ytx-pX z&Y*jZ4*A7e3t#b9hos5tes{4AS?Mq{092y2BHeO{(!8WyS@xX6?<807twAtxM4wsKTv=a{;Eg-$@22s4yc`bw*zfj_ zmL0yFIy$pBQAbgppB~yHYj4a?`=P6&bBc|u=an02f~c$!f#%>i)tWubgCk1Oqs~*; zW0?M2h-%BYir;A{;>jS9~$#Xq*Q(;xB~KtEtP`p1H7!y0?Bq@p)nL(&XoigL5tiRmV_bl_~ z=>tIPv02u|HpWT&XuWpD&-QnUUt7;E>ANqz&Mwo20QcXrB~R@)Pco0LPz)GK&GnIA z5pcDzh;|A>8EvyxOdPQ|Kr(*HOUoC5=Sm%?2tHz?z=Y4ZGM}h)K1Rg{m9plS?WAbJ zPI0PDhG2hZq!-=(6z;<$sZ^CL@Ofm_E`?)S?uUTvH>fFvoIoJikdu0xG9(Zt7$F%} zcV5nR2T!8%t33sS-9)jT?Rs89rJwL>Z4PNkzlRp@$`Q+!9!pw$sXaC>Q^SCd){&p> zjYzeMMJ5|1U1u9EJ-Z(?;0KjNj=JfknyGe}OY!E~Xoi$XR=;jGiU1lYPNn6{C!rlc!TXHf$JYBfnfNq67Ofl{rF$+i!@}>f7mZ1ed$RPzPTnrf2EWU?~(Hu<*m=D z@v-7~r}aZCinv)NHskNI!((J5oekS`In?WMIm~9hyIWqq`qEmTBZ4=HXK#TznB$2o zglg@0#@0EtZ;?iSyGM1g z@uS4ReZ<`3q#}2C%-wf*HDXJx18Qe4Ruu^;x3U!4rsKaR1MD{sbE#=wrGx1w-HJtscM8`e?WzCA%{Lr(oZ7<{K znE+7489nE+2JjBi(afbuv*|xa?lRiE`-vJ5V{*TMaJ^BC@6k|>lPTq?$EB#275W7w zE@kf(B}TBA=7soR`v`6+B7o_{RKWapjB%B(????r*1mr+ZmfOx*b}E8N~}q5peo|X z$K=%hgbV9S)OQ6hklL1G)}yA-?c&u+&QfADgnJgJNXd$?Au%ZPv2H}yJM6-b^IPFv zl1n~ilXj%ad_ezGbNY~4Q#_wF_vQZ~Z~XhF`!C)Qkb><$iY-QE`?J_k-%A+}KwJgTzU91BLp8Cb)e#SWgiAR#sOX z%zOSc+#OwA5C({K*W`!DW6Q2M-+-?p>+^aZ?0hY-1<`E^kZ^R0hDle83gtwPIvKy7 z1IMuU8-SVN{ZiI)n>X;pAs*oR0>}Zh>-%$9vk!AUp*~)cV)bCO;p4E2P zUea60{dI@zTK$7FxoGqb1c_v0jcFUE<|f^+73;zOs%|_*?|P0XS-peXeJ}Fl5td|` zf?KkPxPq&0jr`h*y=wfHXA*n`a9~uLR=qL)o%{T6w-HlToSOEzXKnwlJ?kIDMv~nF zI#9&K)ym=j0#qgy@L4egVySTfAP=u(VJ{{_PdQ!EhA--(33L*XmXxTvzvU2dkRDl_ zo|&w=byn0Yq!w%eI#qENrNwip zg-R}I{CF(q4krrcCj3oSwk>Z-US+Eo`zchs|l-_9*R{rk64zVMOac0nVNDGOEk?8-r&*4*Flzd z{vqNEn~XVxYb37HX%82pP@-PZ?Vw;D)sXbN19t7ZjD#cQNR#FXB~jr&Vy_4cwNJ{C zZGU%e6o~r;7G-hDxW%e>lyqUAIV*i(ihQwE`THRs_WHf#jPb55L9Q8+O~rb*ma)w| zyK%WLxpetN)5Nmrq7Nwl{6)zX(A0`P7k2u8Eo|C9&B$lW1_jW|7kw1-UBgD#rU9Cv z{zgO?)!1}gOYZ=dse(~li40;GBs`bQG`FTtW;JX*oY2a%R%(@4D(Nkn2}-6YX0#(U z1S^o2La|KRvh!{`@jJ4ge_u4%KCfM}u?m%buQzu;{Bh-X7n^ZZ_Wrc8{{?HeSAXLi zB23r!xWDFs!v~m#ay8$|$5qK>7BegG%#B5X&H~?JX zk0V}OLkT;0&(ug=ecmV(|L(9h@~h!h3c+hc&YV4MVrt`H0@!!e#=$CX4)H}>{j|mx zEZXn!JPQ`yNu7cit%}j&P*oM?o*}RbD55eF&6JzhKGn<(U zerJ@tfSGaApFqXfLT;LR+tO=m$Js6=t5-?am`ka$6No3>P-)AIXWnF_v{>p)9GNxZ zqIB{V%F*DrzOi>0YdnYZg~*NnQQKNe80zVH%(*9nMn=Ct&#MD666aGQYOb zT3fB67DCYcc^B2ubbgHV&{~3dI&bjGI@bQHi)C8qaeDr(M;lrD$HYv6;Ta$rNF6p+x;)_8CFglO3 z&J5(VCn71%EGu3)>tJ>TmUH}|o7ptEOkIdjLcRkE5zaYDukX*JOCxk9vHKW{)FNFooeqs)KCY#}v#*myB?U zPJ@ZLI?fsO6h{Fb_@NSXhh0@=8a9((h{QH20ECa*(Ld6Cb! z{yz&gG2IOvRjWUTF3i`mbRUg$04E^jQbaqluEZ;R@8cd9S?;jINxO*~z(T#XAm0J! z)TAQOqj)v?*7}s5#%iC=o;8X!|Ja#|n1q&cdhYQyAbflGi45c1v`I(_3M!fn+49_a z?94fG{1t7vN$FjBC@*8j;Cgw2C1W(|;b{b&>>bpLPN*4SnS9)SdEZczaS7C4-|$dp zkSTbEc|RF;A^Y^;6QuV3tlax0v8=+2IabL_n5;*6l?nl000~lKjOUo7Q1brT?Wrsd z#vI{^Tc<>+mwc%e6Y-4w&bX)k8a613z4>{}x1LaoH4)h~-1K#!u9esy+1!)TIwH5w zzb&DzoIdbw){RqIlw3bJ)CUUgA{acpxKSGdF61>l2RNkbu*@ow&5`6;lrPKF&ku5b z)(VWuVw;?Z-=JvR_V$@r3s_K?op{LQJ9HI0ZG`p{nUd919S-g49r^9W{!U7i=E=)z zbKDi} z@6cJb{ejel3ZoFQ6&~nQJs$~0-A={Sh?b?3$X1xCG@c{CG}^N>u@hdJ=~-=OhO0ZP zRMT!aq91R>qwgNRwwuD_>7)rvtEgoQ{=T|cQ|nqD<-TYW_Z~W zD#`)>hHwxB>LBoaoMRQmVcKZnTGF;kkm`yDx!+~Lh|*9S?N^W;$b?7FMps*b?ff@V zD(2uw0vmRYTYGtb(7x8b7LsWr!q|K*$pVKiNfeU#&^%;@3Q?H_!Anq$VoYO6?*iGb z$;*3%1V<`4|C#XhDy%~j?uOVLe+)e$BoJ*LVCzoQuk`ulZ&$APyuaKfZ&azOr2@e> zlVu)`?1AXodCMCTG@>T1G@OAu0^i&t+DGR6)jKk#o9>YOBQsYo{eHHYD(JK?t2Uo1 z2)<~ontH82zha6pt1wKtxc=%!S@K0aHj3T0)Y>Z;je&b%d<9jIf@gRUu^(HeosTXk z!MQBam;)PYT+#EV1#5xC=UT z5CaMT`SAYm{TkVpzUf7{d+xdzuq`{v4-ojK;I2i0HyiR}#X_lfHYG->{~L{QN5A=S z=<0^7?Ik(q6M9zg&>@(y%W>gq_ht{QLlL}%?LdlcG-XeCiiDoMlFmUf2SU>%4I#PA zXv7?id6GszS>&POdNMe&j8T?Kmc)3l2M(8rAN30ozeXz;sR*wui;S6G9K`*bT+TJ{ zp9ZejW&q;oXw(V4GbZpx;I<{@w>^QmE-#&MobM76h ze$=R+?^vj{=6s(S3jNh2^1s?}{&UCrA`y}QhiepHSce95j~@XOFd_u;Cl(qJ5up_# z#f1MED<;MOO-Pt1en`rlIgyHiuKC!~M2Ds-r_@%^q`_t)x3{>sx>)FWkyqImQCYds z@S68=G+`vrTXM5E#&KkGly$)O*s-(HOyCXL&G_^Oqj-Nuz*XrZ7!m{Ms~P3$m`2+J8%?UgVcx3TfJjL z&*sD5htb*KC$kaY$@3H!{MvDU&xCl1@!|U$lE)1w_T+=8&^xDt+ui4|iv%AN{y>b+ zP4;I0HDP~~AB+}%WtI=Cc67XzV`u%%Q>L@*17LSm?ciW{m2O8m4aUQOr>~-h6Y+%U zF`H|c(3It{D|$^!H8%pRC|Zc{dZ66JU)6i8dw#KF;z2oSLIXIbbGD-!garo?g8GQY zP(*+X^BI_t_kUAVmXDd-#v;S&c?Jt3RIVHXIz7F>}C-?xq1hJ#Kt8{By4Mwb37AW@ZTtw1E7g zg_4@C+fJEAGJh~6Vv9-ykpM7}JX&N#Hm_}XZ4q4>B#RP_p$^s|0cH=4b}SZ7%%8+F z#ETM}2Hri_ZF;>4_AUykZ)e+-mgOVeG#Lf-{n9|8+`oP7x!cFmx1*2uUU_UVo5w)C zg0ay4Caj;Em=W<#ar06Ng2JX+Hc>;zE90Yr^=3om-6Z>nWA(#z4Ef^Jn2l0x6*ZTF zg%uXJI%PgV#Jpn7=fuA^-c5=oapB;{n2ktYkxi;+a3eIW;U`>IH64F|aE<+Hl?F*uA}nVhS&8bhu(Jc}D@t<6DwgTEN8`bv#OvyrAcc;>halK9Xc9&cfQ z3UtU9TT3@!Gxvh$(=)WQ5duCW`$GagMEk{VVX9ugaGjloH(3N^1e2rjV;6y6aDfM+ z%xGt9oy8l#o7NEZ?lApzS+MTu6B_H;6N`@^%>l3xH9Adea-eVtwTvvv0RGRy4OiH9 z1GJi<33=Dx803WA@G!Rr$J2{*NAwo#GnnH=%)mRW(KW=+el>DdMoCjyo5S49gqalMgr zcCeyIG?7YU&BD_vTw`kc8kq9%V+J$_Rl9D=wvO&=yx( zpP1Qj0M-gqi^m%)!+>f=^Kn7$x~E<~-+9*~#t8Oyfz@ZFxXt{JWwY`~8(DN@9w2xm_OLJaT{s?gO3tgV%$P8Sm0>$uQ7P z$8|fH>Y8UCDZJo%y|>ebo4(zfzLUKW(oFSqO;PD8*CW=a^~`9GiQ?z=*BZTb#t>P_ zy_#Z%0CXn=bBm|Ubj zwp&INiXCavE;_Sb%Afq%^=B65UGR*4`iS_ItMp~)WNLV63mBCWgN70gc453Q)<&q} zGE%id86jZ1MUO=zHl777=YmOvJcK-2p0Ku1pQRd90Oo8-E&hALy8jP2J!;obqg|R^ z(SmxUB2k-0aHLDeU#d7r!Wll5s&jS-M_R0#$XFdaNSBm^TQqLvRpNVMy`oR@$cu3F zXkBu>X;@Pex9$swd3A?KN@&}ZN|J7XyF2o60#x83Cu*$ATn7Fycn^~f z{1YgzN_$Y~*6hA*g;h++Qi+HhO4=|l0Z{AV1Eiuc+n96&nzymc=u1Vl1qE6DU)&9Q z(jlN?UCg|F!XPxF;mJ!zxJUC;C#0jr-~67VNne*zl|!mIg%qa9UZ&(chRad&J&}Pu zk-4ELi9s9v)N|p6aTb4L9IsW7j1>Pq`KuduuT|cP`plBaJt0H^9=5Nr9N9e^|1?p;x!POURpotdWA9pIy=4hD^UstA8TAPSF43D zs4r+rb_eQfNz;@V)1+HmP3`E>|Agxs&?5G*Yam=n<@d7@FS!iXF0~Cex!lq|s0~ZCY|Slwn@(noPJhOF2*GS#Eif|y z<_3b1>fqQ<7yNwJ;pPf0!xG~#Vtv6DgL)=~dZu#)nO2F-M6yBbqHb))uk@7DD>5$r zj9|!prMIFHY0{13azuE-dP>VsvlwWqQqM-=1Ec$!$DQ7pb69mjEN@PY&dUUQqF1us z%LSV{aB3p@C|2^)0v9n~nC#G$jOskB7PKmfY0vURpDNrQOv0Wx-UUT>GJS>CcE{3< zTDN24Jk8Sz@Q$VEFwhQzu{uCKE9}(fn?`4n0w|)dk;J3G=BKXp8WmJ~_WgCSk@DE= zIQH9mve4_N?@EUraiX=u*yr%V4}wCo#zePG@PGbJD)_^%Vt#dXf1vz-;v@mve~Xh8 zKygE3K?h@fYejtsJ~Q=r zu?XOg^;)fvvy==eO$tO(o*hca`^~98r7^{ps1hRv2qP=ru_7=c7DwEOffI!(reO73D6nn@21v5fH0B;f=2+$^Q#ZZ+Fgj^&g(HKOD7FnW`Q~Vr5R1}Q+m(LO!BL;u zR>3x%%42&}wv|VJ15p@hfbW**!J8uCrGVu0+znYsD&&xcMn8{sTv~-#Wkq>K&iAbV z2Dq%n*GUU0H0u#Dwpu<%r4T2-5cQibngrtE`HFOvCOO?z3pTyu>*j(xnZPv#Tn4SG zBktceIzo#@*8yT?#$f_jJ`Vu}?WTYXuJD3X{o@!sTc`tx#A>P$VC#@BrKip!bdcO1 z?l_;|5O;m9mu}I4k&q6x-!dZ_NwHHAiGo&v{Jf}zvs8RWV)M!KAK#2=L_K-LsPkQq&g&00}NOWyljBD`n;0!v?HgAgze2_ty;|fJ0 zumpfK%<)-4sK(~(P3W<1exUrbGK$AnP-eeg$q6C# zX_>F43;)=JN4^&5^*7k=o{cAQ(SeJN>N~;-ymtn}=;H3B`G~Sd-wB^1z?VTlmznHb zFQW*_B_u0XOsxQ3AiC4)7W$tuSZ>Qy?R`ml{$HZOf4djfJV3w7@Z(wn_-u-{m{?Xh zFOm3yqVQQ#c6G7Z1HQtdw)!Otm>hPp*=~+MT>*VQQMxyt7^5fHkq6XpwcRL!X&lC* znQ%-~whtLi5CL41G*eco?UI#YIvqs?w&Pdmkxv@N;y=0Z?<9PKjETOopcm^Cc&VjS?Ou z4-Vh+JX%crgvOkJP*9qB%3OdtUenooH=s(BM)NPAq0x53%;>6cSy+qd=~2R%`46=@ zI#DG)7dcW?O%=Tve=HHdg|A!(2DJ)x6&=^aIvf;(q{Aeoq;Y2Q-Bqc$deB0v1``d4 z_9XQ+6`R4?GG*a|mM-I9*7@S!L2jF+t!CgHJ!70g> z5(&2w@o@t+gXkU5L(;5%{IKHdhJL^@tv%9|gjTO3^3>gLjO)C9NjLRfv<|8p>@yux zw}2h#4$>Rede`f!eowe7fLC`L;!SM-(38-vV(=JT_Kss1eU0p{q>1j1Wti=CWxp%; zljj>@&D|gnk^W+1p*M{pLz(kpV^k$I7u&*nFhJ7OMr4M9Q6ybMd2=MEk&$EZrJvc_ zs2{G3bdadnBvJU`m&mR0L|w1IYQne)7t;bexc<)2h{Rwi#-X24yWw=~!%Ha)qE=+2 zEQGb6;z)XH7U%7XqO(QQ&l)5B8fg=m7P1F;GnPJ}(`{CH!|lFTP&7Zm5p6~dm-|NK zqyuIq3vAV4Y-1I`P#?J%J5727ka=M~uP``#)0h7Z7I3Ck}{6hl5aFDuA+m=`j&jJ9&+_rn`tEn5>bGfp=CD_JMg@ z9l`6tLs%1}7G6NOQh&e}s_TDQ8QAH^*tS+==KmbMp;Z5_iHlfS-eq+~=BMglPgPs`s z89LU6pt;VVrdqt7X&R2z9JxUK!0>^Uz_RJJg_fVcLi+dXTB%`X3>Px)P&jGJJhM5_ z+aI*u(Y-nb-g7ssB_@iGo`w(K$ei}0w~7!v(JuA=)5G+4A9YKJhfw$Bz@^?j+PY{3 zm);{v#P@TM^W1qxNyC)cQ7ihtKe21x`(Hp^z7dDU{?Uot?dkr^B~0sM$Ltq;#CQiz z68@$CXFIIXlD6CbvecZy{<|H*{P(Gl{LlMaeDxkW@E;-v8ZUY3xD*-v&(uJY-{1YM z^pT<3VGJ^9y60)cAc)j(@BuLl43ZhC-{sE~thLJ*+Wa)o3QL5+6LS=rR}Cy5RW3|a z+p8@sA6Gw)zIH_X_}J~Cp-j(9p2v*OipQ>wx68RH-7!E(Jf3FZTai8XbIZX@3%#VU-*M--@lWTy%EkC1!N26CM~~i!K$m3(u?WpR4lRv%Iv8cm3>R+qkDi z^iJ>E%TpB^FUR+g4!s)nyBfLn)_?Vbdd~d~toA$>y*I>o@0aF#m?nBjwffWwW;1#U zg8Sn%SN*-aI_N11_q}r5hrE7k>>RP~RTS%kq%YfePkO~o(!{p?n4a#XJmTXp56DF6 z-2<y_ zuo}W+u>y9~;-{i>HqhI2=$B~s)wYLk?aNbBi1TxbK`c6RE z2uX`_guVi@rRv^K+A^CY<4vgQ{+A{)pi2QKkp(j&g;6^8>Sprb4=6yZL26VP9Sgn; z8PSf4vsuZ48u(M)@=It_zMy1bd{`#7jGG-1T10^Y#LwP6Yp! zsp!8#nB^#KMD~@Y>`m&D5b#QyRYGD>RjTnwxf8;o9+o5n%xeO%*!b8IBy*L-zzAz! z6|#k%6m(gz6t2QT>9dG5P>>n51g4XQ9XL^#?GzQ}&gALH78{l-1dEXa!+dfBZAQcN zlR)quNOLq9+T}PC3#=<8hSEVr3kp2(e*0OzDs(O&{_yZ?oKq4wL|{}X<3bt$$egwe zVzSS#aV9am_}!8EhpgpD3wF>eFpV|**|>~hjXeUg(TU8mEd6kQ3WqIaJVS_6jFL#_ z@A`e9RUoqX%A*}v znyEyR~Ri<&-S^77(D@ZrQXaAj3qZAU@PSiD9x zu(6F}?GCLi)kgkUrA>N=DQkPzA&7dp+>TV0k~_A11}4v=4qj;7%F#Zmw~;%n^pc&U z^xCM((cT-qi1rB8W}6bmTWOtPSP`vFGSYV6oQ_v~=Y%`J+@dKSJWt+QF6z|&f}5`Z z9?RS6q&C+w5CeM;80NHRQYpUxs|(9kgc4Cg1gjQtED~v>B_@gw|D9VL3Tif!9SGy8mVkh_7sKpHGDmNk3n)T@f12 zZCNjKF7UlzVpWd>zd={>&dPNNdLyz6HbJpS%J$I(|c=MEv(&yy%eh*2VTe^#f8^yX(hp!s(T%Et78bgPHhvHEB39HmzDz= zn*XhWdvKzb_Q7VeC`ib{e%zLadk{Y9f|lv^ySjZP5L7$K0-x{3N&|b47mNvECiBeS zYL7KD1&89Us0y>*?7Lf3+I+gUc9-Mep+jui=M8O4w+q@d$1>>Db#w{sJ^zOmHe1#1@B2iTpm^X8d1z+~TpqvjwgkV@wP zN@2H7H*T?Hcyc_g@3E&%SB@KVUag#dlg)8z*v^dodR#jmd2(%vs)Fq75n=P)G|Mmc z=N%GZGw3&z|HvS`5`M>!6?u1!e=biub3;D;1Jrla1^}Cn|HKob*vdvCy<35p2q}7n zgn0*rl>7=7$lm+GVMK9@hD&tBkJrb#LyR#<$g$mM@Kgz>Qy#dfv2EoG*<`57NTQHn z@S@ANo50X`;fwklFes&)Y3AV%6Mk8Q{Or6bIKW#CTXyCeyQUf=u5x1JaC#l_&5I~! z38?Q(r8MCSD!*(7#ez0!C59L^KG`QFC8aR>-JZ7v@2L_)a>KyL{*J=klNq zbA-h9OxcI`z6}R!8TAfl9%Sq|Vr=?fVgbbXWPE;mZWwa>Uz^;)!@M%E$Iu%5`Saqk zL_OI8BYaVHy#4|n5C;z(2lqB*Glp6@$(n;w@a|0C1hHBjQqAqkWl&&XUGQqYaXbuQ zSZ`9*y+z5UaEHJ?9^v{>UhPoRr~9D!R4r@;HYlXW+lr)OhNyqsP$|z? zwoO~?r6#lP{FR9kg*o)QIAR&G}|3of%4DMtA5}= zFWA_3I46d@#$X{RMC&rSGMaDO^h)o17;N}42ca~BIudSjrDUHjgXU*JGwp80)=hKo zZ9tD^kG8XxNoEf}v8`coAP#JZB%iaW%ID28xD%Vc75i=$rVuQ^Yt(!d^IsEp(-?)h zJLaQrX4yX`1ol$^nOfWd67Ha^Bdwrh%pqeSLZoj6T1Ns=bAZLxMyKk17&E=LNnL8kO~O`;T+eAkFj zE?OiIKzX5S(rKxSRQsZ2)>JU!q_6!w0ry@iOF5mQ*J=atp8TB&AW-KszoLy95(QTy>7X3ho$A4)KkQJm-uec<#vG(Q+xS zatZV`RX5Tlm9l;BLGA(P1D@wLZKBm%o|PUtmgPrisW|1+Err0}-o>UfD*3uUbR#{w z0wtalsE)?u=8}&pPk53dwwSMmknC?D;lLMy&jI}-_-;^i50a_pc?$E*<07TfHc;NV zIwphuhRrn0m>)K5yUG^I9W?B)mr02tsk>6>-Z%>JPZCcrR8KD!WxJLoN!5j=UOW@K zIA*+CV&r$y`$xd^84#P?MlYNbSENZ&C=n##8{~(ZS7GCzoqYTV(@a=_*}1t(GzZp;CM+bz%6TJkSnzqxFz>k?xVl0WP+C*W!+(ty~~S#OHrZr@}A1 zg7;skO^JB_^9|{LV-3H3ql@1`!A|Cy215e=`?%bw0qusn5c_fV5Lv`x18r%g9%sF> zr-?6~1cFmTlfI1J1m1ORjS{^mrHRcQlF}C^rbdX{>VhJLP{V;t7^W`>6+)Zt#xYJt zrauC`ViXTADkk8Iiz6m5jNI^`^LQUALQMQt`@#F@`L5Gh_ELVTtQ_+`&$ZT%uQqkMise0I~|?KZTJ-KRgt{=|ee`{Pu+AL)-c; zGBn2NL+##0L{L3CWEppJ<@BZl93t3%B{+Efe7Yg;pws_Gz#m6-M%p57zBL5>}sD_Kh zseG(7Vs?!B%&SsN#Q~wl6ct~8!>N46%%4@RKciHxn3+vBOTs5z&E~%)i!Qh4!=NP{A=~1sQ;%O`FbCYL;iom}?-+6g!y`Hm(9lYJ}SS>zHJ#Z?Gyp zy~iqhINdTRC8RK7RzR8wyf_grVxsj#Z!iMPsErlj0}`8(3KdK~!;LzI#u?^rrDv)F zQ%8zY^pB2Zn-YmwJUuk5SQgWu>m!f`Jq-YNdKmP^eujH^(147v%UZ1{o*U~8tFYTA zrdIrkdz8cIexUK_dAMenRJ2oVe;1`;5tB+FEzXvi@wk~k{8v-y=%1GF#r>)UG=M(I zCMN-P97UrfqqO8B6? z{&>Vm6wAwOKFO#=qnbIvrp@KH&~ccmo(BnFcp$wz&tP#;cq^iYJ!l^uqd|heqN_h> zkZIz^cIM$M7%~O~q}r%wNedY)hKgW=>X{(b4-k7i1tJOkkcW`Ov*H6R3~)wK=OU$3 zoI??1*gL$``j)iiz{)Dj)TN;410)!s$WgFd{Q3e%$l;=5KeDtkGCUPtn$f=By-Z40 z+KFs*0k*W0kz{->-|xJ|p~-O&QO;YmlR}+_&oLto=v;upPRFn6#G4@~62D#h=oN*c zWp6)Uk>OyY;u~%cT@G4gn;V;x7@l5_Wk}6XNN`rSpFyR+Az?U3w8hk-BC1Tj*%pGf$;k>F)_O~?Atj^e&*`#*dj%qbtyy*4} zCxxb-7Hxu|7&bUNxe19;gqMtpD+8X=QZ*q{Z4tO9)lVn0-$*R3->Wl_Ca0}HWcq%MXAZ9=fJx(DQ&ZSfhoH?< z0c$UuMH6fwo{#*YX?5u}3nzlYAAqiy?nSdhJ&&C*;2GuzdGk9a3EPR)ySrQZ3Dc7c zQ;8P)ETP5&kHtSwyk}daoFhGHRo#20K>;|o!eWNSYdr1H1YVir5-^#Yhzl(^8#(XC zAng!F{#epy!ih3oh##U%eWyXXQZcx}d&+REWj?r4p~#xJtMxk`QyOy4E8VkVcvo-q zG%QvB&}`bhrDtY7cE*sD$X!^|8h%n-E2*(=ble==fdZ|a7E{ae(#3gv#7QYps|*;t zFOHK=p0Zvz-Z7Zd*f5#%aL%&o%LT_BZOF^Hl@rx4BAO1rN+gd(RVYSz`qUq*h#j~X^x|xgu*0)zdv1z%nulpiMWT%^if*1=el5cTH6OD4YNLwfI(*v`@4LEG9tCJ zf+zt_z5cPm%eKK|YMa0r#xv`QF$&y6Q7Jngg$%xCv?I7=Jth)&tt}{bK`vX@HGvF3 zR#mLYdNrvfenvLw4%xI?w=5<-jzP40~Oa;}e?+1F~xxL5|>(ed=okm9hY~o`4fdr!;2ZAL*ftBql z-P8gpOsR!li*sx{o?}S%k;2e74)7mol6ZXl&-en_ibvn?4IQVIYc=BciNrji97Sk8 z1yN6a6D)&Q(Zy7=KB`@q3>pE!`Y#yeV03@^L{-X)MI2u4i@m$W5=&^dGi}-ouzx73 z^e3H0?0e*yUya6>PRJC+nO8D(^~iL#R*nerC|U7+{0LR^K6A}9eOT+HOz&?N{lKl4 z`in%F`gg%;l7g?ZP}tGZYNp8b)rjE5@t4{Ce4qzf9>S)JW%2+xtpXv?^SsK8W-)d< z1AnuV!#KDVqzr3T+2&G))boI?^xVu7+B!cxEe@_=gZt$8An9~sKH@ZLOhJa4o0YfX zE18VyJfL$Y#kj6-5FP4V*0h41UYIyCG^%}7%5{xzL@BwAoTjNPhi?~C-rZJ;tabHt zjAe155Y!)@!MgyVX5$n%?qa=zmCig(No=afc2!RB#F{>CuLG?u0>^=Mu_w{+$I2J~ zd2pwA5OZz3eeF~?iT?+Z+PAk7VYWO%tx;S5EvJ><8?TCUad)25MbD@Ax;)oQrJtX6 z^<{$LthUK)4#dWsyLlPRmTfX3+)vLk0> z9U6ms4fzyXNNMxHc`wWl71_Ijq7X(A!Sd!w#Uq~Y`IC-(DCQDUzsjVmbNqFL;X8vV z@3}~AN+*WV*x(6FQR33Pkv}UEQiFj##VNAj=`V9FejE!mtDg469Z!+vbpst2j~WOx z*IOqR4UE!ySUF28PPRF5ACWir81u8~FiW7D5dipPZ9QIL#H_TQAbmmYhD=6-FqHZ5!g^M7`;_h3nzfy-1mJC`YYIOz2G ztQ%;CPaf3+BN2yE90z!na0goO{BAdrsl;eGClxUnXM}qApoX4Ga7?*;Ea4}?hw4>+lCKEiH+a^1rmTaa{)hi4(y}&76 zHpkZ)@={|IePuly$vd4l_nxv0i_iu{GBvG~=pnsJCb@h?jN3t&DNW*vPQOJD4;;Ry zR6Rukq30nEM-(L#4Pe9<-M)E}s*l;z$Qku?v^-1TUZGJ{=&0l32}F!NDtS(|=5*vA z7qCVA%wVOV3x9CQucE;Ho0ElS#~acof)GNBi=fGY+hosfHRMtYh7q1w(?8H6qvbCP zgTfXnvrg0dRCnCF)Ng|jgV{y7>!wj~T_Lsyl#cDm8IDuEpJksBRU9~&C#=d_*tJ+C z+V=Q?$%)PH(>uUDg1=gE9=9 z&T6))qKoGoZyJ2bak*geEIIkz2IEGW_2RrzxqSf~Rf`;V^=T`vG99f#o1jFtAhB0K z_QCq!!mk{6w`=?j2zvIsnzTo=u=d2Sdw}zpDZ|(n=&^x`^LX!Niob@%E#MeoYty7Q zLpC?yT~)gMiMt3|#FxD~H>B%CUAsCu9z+nf?7` zFH}jF?@9QBE0!%1UV55YUg}vLH&98op1;sVwFU6HVPp%eXK739eI=V6!djCcfQWEi zNv<2*kvk{EDOC6aRyUZ2o*A`xeI7U8Swn60Bc2d?cPX_74XfQ&2e`AdAGdX}rUtYE zyH1T3c$W|!ySNtr?x;Oxe>>yotBHnlEQD8N1@&NDyaFr|Ff0-SM?R3_ z=J5$f4kbKc8NRziS8z!hyr)Gx0F5Ef&<500JJ~AAC7&AwdpJN&9V0R=lcjBh2kzjW zz#-m5wkEdnG&}rxxP8<*R6v~yzTKnI9lvT#zv4|ZnLC{eiZcGa z3$L+69v!AwM9r6*XnX?G9pGaM=gXDvn8Z4Suh_M(d@5hVprx61%q%}z0&4RR%MkN8 zhF-6N?pWDE?-TS8|K zm5`x{ch9H_1NCzc1!(ypwt#LqY1OK>8St$}XxI9vVMZ6I!%uXd*+*ZGKz@+UIWwTnBGMTFWh2K)vbOr;B4t6LGFI zFfK?tKSM2@6x=65KD8i~Y8Mf8=Tt$TVsHJjF{{0%myAA)QB#|vJP@sQ+!i6ag=Yvo zraeyG%;r+{CWXwUq#3^+NL=8-K**MK#}e8Vo_vRE!|t7Y4Z_}X4gXW4dC6iCalu44 zku{l$dA(gND-N_Z5aGrBLL%x7c%4X z$^yGKQ*G2Pul37Hb+VN|&IHe;HK1lJ4lZcB9=I6A(bhkZzNeW36-dsTfQxe%INg9?Z zvqN0cV>zl>`^z`%mv0&rv<0+&k#TWN1b4ZXjb7WIHOohn!!kxFYZ_-+j#E63>)u&$ zpRWVOpCEQzADIIx%XPRTz&!tatkDd(=$#h3p`daYRkX=}2FlmKn8dIVX~Ei&fpQgS z`PD)gfi0kZS~nhkUO-b^#~wvsazo6WRd|cyuvcIw3-hQHTr3OwC-eL<*v6q$kgUXO0qM=ecHBTBW^ z#GMP|Bcvh6-V2DAJINO&hJoeiXJgP~eAAl8#SL?=6ktL!X@t*6nT)z0@vBe@Obn;f z<>J9k?nmq|re?A~(|qq9>3fYN)Eq{_?3~oO`SJU7Clh9rP9~Yx_t&#F^u#0P)QqNj z;t#FKSnpWWIsLz?td=DF0M?Q}hgep!2=q>>*|FGjc}|9Wu+`et%)&VV%>0r|c%>R> zI#;JeVj|?8_l5hYv~}{ z9h)G}K%6Aw@2*tq)O8ni>mjewZ!$ZN4p)e7LOZk_l?>spU)`zW{ai4>{%om^@@xE$ z3WlIZv=9G3R9=LSeEsS{e|9Ru{!qVxxz=~2T?6s!xXTUdwHKQvL-Cx8HIm|42A=zq z*>J__Y~-Gxj*Onwc2GLZcRK_EgL}cXl%B|Wm0JRVwXDgCY46QAzP&Qs-6HCf;3iJ^ z*Ig%uE@7qWon~{`Ejwuw<4P*$a)>aCK0e#w=A}V2`IqQOM{w2sbB&K>IF5IXw$Su& z6+kWDa26r4gJp=V-_r6*jqLd8_e^{>$IKfo<4p|H3-_+;%}(J<^!J>+*j?BrC<3aL z1KkhL)h+Z<`V-Acl$Txpm%WNR*S*8EyQ_7FU`V98X3hH%V`&XoKHdu{pHE|D?)~cs zw9Y){X?a}40gOjfzFA>z_F&wHbJnmtQII)!V2HY6IXgMM$~Rdp zt_k9^Z0haC%Yf%dO?l%_jt?uP3@IvlBzfHlj3)7TBs*F|8D)fd#*wBFC0}}Aat1z$ z#CqX$MIqcG8f2UaCS(*=L^*wKgJTAyW1Cs#@CaDg&ADq~QOc0ttI#{O z#=1oRTAs)VEKRgGCQ^d!6ktjS|LRQmi}LoP$AuW$#C2)7|-9&z%}D^;n#Dch)mCR2=H?1)__!B`iGwif;D|X%QH&>B>PS z9d&oZ+6xc8#yH;{1)UwO2a_H?og7++!~|VVCQouMh(TI(MJn4UKvFF$d>6H+~;1 z+_(FS^l}RUMN@GMAE+Fb5PAhROnVd3b=jL=0_Y8AKE_ zYlBQuU5b@an*TF#l0APffUle2;K^DOwzt9m#cuM_XKAB;#OL$o0mm0>+5CRnfjrn= zcurXwC9TT5t?DGWD6*)cNL*UcTxzcfWUQMO3;;JGTx#?d`ZIRKhOq&7^kq@cpcErr zr1Fs$O7A$1E&TK2%c8y;JAc+z%d;7499-K-n6x&#QwyiWdo75+=5t&LA<^Lq`e#^g zRU(Yy>c&A`t~UZy)duy;p03)<5Ncp)ySb}xhDXnQ6S4{mhc^&@uLb4^H&~Yy9;(md z7>@r?5oAStWJcJi?-UJe{X;SOdlQN(mRO}=(dydG%qIED9;Ndbz!@=GkJq z>sJIW9pPrSi-e!9){BBNmUioAv7H)*#?4kUs`tsJj^*)CL=#gU*QoR5_8YIcuRg$n zNaHY(p`{TVor0u7zcRDLz{c1!ix01Ci`c*Vi-@6*Y2!S$(U=CL+DxeJs><#4LwLr+ zw+?Ma%f;o-H6d!v$-<~ zdN&+DA2*GMx$(T%nPtXjtaHN!?<9707IgdQ ztI&9XBt3)$P?>?uxo5EBh@u`X3;1A-oDcXOE=bA4Tfwz#7H{ldc5@Mbgt+`;)CosS zesVm@kQJj-@_(lK<$$_p!k5`R`)j)Yx6ArJUA=zRVE;1W>cdC)!2UC-;|$1wGWssc zPUcpQB>(q|xV4?tzq(mw?8KKf9W_YS;$mK-@ndH;DgwPeydAU5n#_+CHUDn9u>EY8cjwF%->OQ6TqP1hqoz5x%=YKs^SlWJL# z?E;)sN3OWB7pBkJq!K(C{QxUOgV5Il? zpjaWg!+pP zlG7Sm+b{Zq#Gi^oz-!BI{NT?eD$t8^58yqV7C{gt7;S#Ru1YoPX`^k@G={;>+C5{Z;<|UHUK7kr>cZPw@cl)7za{+!L00TGVXpyM2*3L5?pdxRhW{ zskyMmuU~+5~e#gm-`GMO@&m+!Ng zj#m@bahnQ*1g(#r8CR~8&)!E|NA2#%3+*wWYBacXUIo~o1eJr>=Z|t{5Eww4ieQx2 z4fgJDHk-Z2 ziv=}5`r7m4jh1|D(`~|-^^-x>r*~zH%iR&dH;U`M8dy=cL(7F0oX6|oC9F3c2(HnM z*A~ynsAmYi%cDy+_gxUSt^wfHo(=c#m96R?ms@D@pRtXr)@$#}x9*@2^&TIex8I^Z z`-8-E+*I4*LAw?Px&n9@W}zb|J62?j>!dMXndw8SFf9r*4P^z&eq@RySu??H_gKhf z(m|qt)QmVhi4yT3;m6U}{i=ct{1cd%(G~uKx{kPLY7(l#V5Z!ioeE&w7$t|Fhc;6+ zS)6vRl?r|gsYB#3mQ-YcF-taS11ojvB{Euo1#2w6daFhN;*jLFr6SMGY!{bsU3f-b z(H3^&v7v^1JF77Yc8Q@ZYdjId##WXW5l4lQxGHm|O5ILDh2i6KC5IIt#PPYdR!Ze! zwOJ@0lf)#!j*Nw@92Pj1qi)O&kgA%BB%K}o#oL%(lIRL(+*Bi@BWD|1`TiKy(^iln zJ0uzw7=~AQDpP=RY5}sPrU_-mEx-;Z9zS zR5RAs2U@@TY?Xvd5tg;GR@rX}-;)xDFE2XMNYUCv9-9AOu2WN&XY_W-{V-Fxh)*7(3_B8&xu!QfPHG7?zM{XmN}x>y_4^3J-r@ z_Qm=<#%D>#Pn*7r`PI)yxsVa}Gb;l^?CeBM%D=!J<}h#4paA`K!AO>blsrxl%kROb zyo7@^em|_Gx~QqN*H|jS3}Hyps6|mRBe!3=b2njePZ=2Syy2PHGTMNlxe$=*#adM% zX;(2$Ra+7NZoe}G8u6jaMq)LH?o)z1DHw`S#j zepSwmq7BHw*`VAzb@PAddgtiKqITQ6W7|$Tw(X>2+qP{~Y}*~%wr$%^I=1_!-*dh@ zzH{%mdsNk^e^;$l&tB`mUHtkTq z0o2L8bK;RR!pummZol1)7F5qbB5;YE%*6DUOkLh-i2AR7rI)UtlG`YO2GYCT*dS+#4I6Fp3oE04n&_TE!mFV2cDnvF4$SVi{ha_#653YYfa1qrQi{ z8nfcKW?@u78Tn*$A6aMgq6@OpSs2c=4t)Hrd{R)*A{B@#g~I)~u=rP)&7a4KXy zks(FdyQ0=bLLUOP=DFapg>n3e_hhLlbC}oihOGe1$hvQhOO8@9YAUH{ zxY_V9HC^Oze(8{W5~Ze70(&KjH$k#a`8XdMm2pWAzYO@wl_?5&jfbSY>oBWgXBA88 zh|CbcZG9buU^tO=nwRQC7S$hh$Yp5A+v|Kk5{34Fp03NnrRKMMX%!Z3;+d3n+M-8O zrBalsu)|Fd1K{eeGF@{!s#21ril%~xKNY9H_2y!ezfJD~ zAwXK=MA_y?*J_nuZZ<*cSnV;J12a|$c`MujLX*RYO{6-InXrkcu7*FfrGBt^{uYb8 z^xq}o0DkUmdt@l@tOni;-G$l&i*4aj7mxv(N3T+o>cRq>T=Z&yF5Pe}DRaZ;M40;# zY91uU(ns#ip)@(9I2Xm5FVavVxDp;&i#DrijfKWpUDG+hh{`Q?^wa&E_zHX;avI-P$~;)~h{2YtLyLJg_}=j4^v*Lz(NM zau4*-ycyP%A$ReP?z4vVR__5ZTPf2O^Zo=Z%N_DM*;f_!a0`rH%cgf9eQL|;=hQTp z0+s7QHk$>N3oJ`7mODI%uNxq0*pHA3Fc;2-%oS`bP;o~5oo$X0Y2U0KrLs@+5N5JU zHr*Gd9usvs+^QaIHE6j>GCg3E4*?+pD)x*13PXX1>g^^eY!9qXa3gZTIVHMlH3Y|= z(RCI-YPYKp5ZbK7T{jVyN@tV$gB43Ua&nU+tKhxH><9H?aB%L=8cwxw_@PR>F!t80p#=|`dyY@Bu7WFH_+b! zGP->8jR?;=xced3m!YA-S$G-@?mE?rd04F~YW4!U0FDq=BVuPUO*v7|*=XLwHoQmm zAO#W%@Dn4Vr};FL)Qssm9s-$9fIJy1xe~ZALOe#6LxyqFB4wlEM`Z8Zi0BF!0o#k#w>*Ye zRYtJkpZPwJxPrAzKki6@2(jM49OdDn(8$0=5cX!fU8P^trs~M5e?_;BBZposflp&6 z9JV?;3`2v$s|sjKq3Wn5m}`@v(RKQ>$(ie?;^-3*gDr!vmLCIi!JL*qSOcK6tDw{( z9So!Ps(W$ZT5AooqLB_G0nO6&*JRL3nNmNjqgJ;Sh4Ql z4KH_5*}8}9U#p6vJK)4=x7=soGtzw=fTZAOpFm^vEr2E@AKfWM39pEGM`kImMlAOI zk$qsKePC|b2Eg7(7#~bvefkWCi$2ypdvC;NnzA?_X)qV5CW7|C0nid*Vhl<=l0%1# zlPIwTGCT_TJmypg`&6C6N?)={ua|{cO4@piV>wQ+Cr>T>;ziNQwEUwMFM^Y~?JWW4 z+miJKpRKAAlTjB19GA=W?($aBtLTJpL^+~W?jgtz4ZkLxjCbyhcVJEt=?&A}!()yo zPSI+TNH+Kuw)qCO0h*Ql9i>Af2V1S{wcZtinR4|0SB87{?q(32tkUb*YGsO@;A5hC z`)pcJf_zGO2-kUuQ=mFVq66^4GSn56Mghql)IQ6~YnFTUQ+_LKFjLL#$SPIE<*HPK z10m%V)YBQE;uqdbSsH25Ahio(~xD?|`($!HG<4!whri{w5*0|AC4mhk8t%Nys zQShBI?5eRZ;=+bo;>(xm|=Xqawj+0w_j_=TdNF-Edp+@D^^FU5l7TEM#AhpCH{Y z`!Ep*Uq1jzx0B6{ek@J4OlGDtS@+o!-poC|e_x>Vv9!3HNnD~1+L0T$Z1rVFejG1d zPYG@cNrpFuREB^7LS9lDi~jl%Wk_B#4LZhISnEfRzkVcWfq~ z_moAwnw-t))=lcfJC(Cuom4bQ@~Ig!+%?l~Y6pAe5N1XLx6rP{r<{Q`WgNVj`Yatb zWq9ki1sFBH^7;3;_x{=JC4>bbOM%TFhzQ{Zr!!pYMbl=jEoS)x&St;T%e%QEU{U$GGR9E( zeAP0*E9rRw(7sfx!7F55#rSd^OLaNxF-(&z(y~#C8R1sm|AEzw{UltzVarN1 zAqNrfJaV2e!rzv#N;(5;$|v1UU(W)m4{^-B)H@m!AW>l8XAm_v85W%=a{>aaWIuM% zPxO-|e+Oy87-8-iNmvqtKLEY2f$fUIkYoq(SgYS76sr@#hy;gY3e%D`Sju3Nq}U<7 zGmlPy**38R8r33cGc>3=QRHe_#W_wTc1*8ea?{s+JQM=+Rby$AyT-@t3MqRu}9Zr;=sIvw=V zBVoi}3gN*JY$V-zh?U4VmJ$?af%K;B+)zf%%$ZwjqP{WLox7345CA{^2>X^Ka5zS3 zrsw-jFS)D9-xGR0K-LFskq(n7jG-PFFz%=NbA8Bp51JMxZcxGNqM`DYnexb{8IlvK z%YViJhrgVOW0W(=5EaBosGdXn@_AJ#_e_*d85pS^7HDE*3_ri9^#<#D2-KIuR}!Jc{0bD(2PRQ8bUAJ`^ls8I-YEI&|2Y9iSKp!SeR^Z&3t%J9#6If+RO&e0p6h zW6WXTOWNboc&QJeK*;e*8${Ro((ebY1Oz=dQ~^@K|=Iz6)32*5(;Y{cQJGsUKn&rt7ni3l=aVCJq0xpM}+A6@M^gsfEx1G0hiik>sa+}M?spQZB_t-YejD-tL@{<=@q6|?1HV%4+BUS z%$>IOSDg~dQ8BR99H$J$qPG$9L=|U#%+lk>1+@? zIY=b^WVqe_j&*#hh9(?EC|B${fH(L%E5GWNbQpPfsR+Kr<2#`Ujq z?lvumu1x%aHh0DI>i`sd03#QFkR8ak9?G*lzZaE-57?i?y{9OpGUW z)%2z*wJ}jj;l2L8lG4$zvDJ|}Cd>{|+*rq>=o|JlrML4=Y+(Ra0ptqW{hA(&c8bkfCMpq-3@g69p7a^)*3gd{3+;$p3kN`L;m# z-xpot?XRB@$_9qwc23TzwUHob0M|Vr?XXrR)J}hOXCk@>U<({eDH+LxCwn>`zfff2 zD{an!kD0(dUcF}sKg>LY9WepO>GGv?@o`N=)9~XV8F8<@GhM8XYWESSh3rX76G;u+ z;I8t`k)Yarrj_!^bc;+;i-~r)1DOF|)X20SLhf;jr#4g3NFj(mgO$hi0{SJ5$mygs zfA2+{%>L|g`?S~}8tkqQ%pR@k?E0Px&z-{k8(yKJ;ac_gFz&wJ|3|M&-u&M)WGKLY z4T|J@a1yqrcK>w`EmGc4T#!fADQOXabEFP)Qy4_1vjDOKxzo=Zhb=&GalZ-XEX)g` zlpvSD^101)9*$w=djaxII^eR1gfxM?tDoUByKZ_~=jJ?FxhCKTLcOgdz@nirqEeDC zP74kZft$d_hanNxK*3xCtfz*~S4y>*stWBmSWyF0R^WpI4~!TVwZj63yivAVTk0ZNKSIIe{H#osC$kRan&NM44SHddLzkP|Kg(bCt~8DL;|KuN%c!zU)5b zqN_ueFt^GLe$UyfYNp_UDh>7L3#9dw?mG2MNJr79zNpI=yKBSAQDLZ}l&H51=2O*u z5s-Rn2hg1)?9=D~A{x9r+LI;%05M;^#VjR)cjDQRuf*f_>C ziF;@>Kn2kwteZc6UXwZfI^4=n`2HvkA-S4ei8Ta?YEs$8J0IYcX3A%&Vo=IsF?#ZW zDWg{yS0~XC)ca*JvO(FpLs_v0w1GmB(LVqmKc+%7Kitw_zHT{hgB?(ETMEH}g^)EO zjbQ&1f3=s{8lg4}$kdyz{=RjZbwV9nDy?^r;NRL^L72ty{;szJ|96XAFdyh&&BXzD z|5M&SzHpw%n35%mr9c6NkTB2)jS8*)f{hFz5g-925dc-jO@NA$HQk>C4b!T!(t6(7 zjcD8#LZg7CxYCsW)4kkPCG|(Q>H9izoA$BWmQH}0{rmfR!pDtwgLk9LjW6f(IxzM} z?=PERnC{*w_>UqO$m_|V8HY%aYk;F5xNXYt7JTOjn5@yE?%8(6*iem*JHht#pbh-y zRRHeh#US3@XEco4K3&<6&Uf#1v=IXLB^Tw{@&^Qbt3CrC2_^xuJVFQNDe=6waz?Dg zZR-Q?UO)LQC8aNQ!F!=y56JK7AjX#{`MXLKz)AnfjmMdX;BptmkQCFq2_XG5f<H|e9Ho2EP3Hx_`???D20`&dA%ef{M)+gYpJ1X=F6+e% zV{)(uvR1C>MLO;8X1E^5trWR0X_PN*)Rzk8J6U3+UD1ndM32O+8)bLuK7rzg((xx@ z+}F_{fcsXA{A(oqZ!%Ge3;-Nx1rqO(i=0f zoddo@h%AErG%4j(xd3Os`dktsWsAQRy}_*h-gKHWv~-rFJuDl>9n0c%su6yuC6W#q zsDhO1MUWCmDfz+?3q@g&ex-|siq4XC(-MDcv=@?qa zFs^THyk-uMn*cDEXsHaCNYCfq6(uXI#3uK<3s zw#^Kb%ZpP;F~j6P#maA7TvRAd=r2OutY6|j-=29@CICLeZUOP#RD8=SR=4(96_nd| z!!OliyI>ZK_k!%pdFN*Kp?*9(#i?UmJ%&{im)2Hcfm%c)@D}G3k0F$MxtKbEQcPg~YAPr9S;w4VqAIqXjM_f5J$r zc31zJKtTAkHFPD^t6?_McHP1IblRL-$vcV!g12N^LorNGSLvl%q0b8Os#&eRVT1a$ z=?`la)|Wt5j_Zf+g4XWqlRw*4IpEKRF{Vo+TTCh@bhbd`*SX>FPJ)? z0TT|#t|8W~jb9oP%U`|%0FtS~!LqU9xc*ZYFS!eUaYEf{`A&DNH!Xp$*ImXWb}S-r zG7iu+7s+tWuw2W>j9qjd)lISlYUUOJMOC`mcb>)7Jc?m)3t?h~8Nhw6bz&#Ofv&3U z4@mwEjtU&CiD(J$h9dU-rxR0IH{eR7JC2`%ZI~s6q{U6Ax2IdNy(HEMq*-JoWTnA< z{bQW(T%)+zwTX;>3fi>*>U5$N#lU1t(3+e`=a%3*tLD&;srwvLPHzkAp8Zv0%=0J8 zZqy|DT~os-E-m7vNvylnvJ_p*x5xFIgetCtOo9N zMA-C&FQDYPMKYYWYyZF0BR0kp`%Pn6$8V78Ov)Xr{o8Ce82& zk54L1ol^SgyM`fx_rA65TsCzk_K0WIZ?h-vSGT@QY4QXOy*BVQ8END&)`}Xe*ZQWM zQd24sHxvpK@|}={DzrBKmlC|u86ax3_mra%3dYw!JLV)P`Jt$}jupO*Y6_u{C41`vcPFohdCJ`eM)+~Cv z*5eneeh|z0!r_f;s2eX~zyuJNpdwjxZf0IDI@?SLBqA$@botm@`-0nXeksNBtwnMa)}R@ z!l2bbW)npkPAOD)bU5qf;F8rca_2RRV(l$8y>k_9mo}q#TEdK(f^y<1-jkQ08SU%kpZ&gATu{LIG2}xX|wv!)&PUioW098pho|Q%Ps!Vfi zrNKRN_gWwYZy^D^I556#9Q8cDFqDkPRKk41v=x|dXczwA*KqR75TLeLvr(l6`k;*g z)k5x(=3$Nx56`WiZc2~8hCOdxxSsoHHGr#=V0f0Smij=SgwISmfhIQZ^jK$6TdnTk zjwr)_8AcXE@Py9H>C8%5g}z`m>{()Y09Fv=ae7ShX}{1B4%usU3XbO+^tYA{_iIl! z^l!iaU!WzD>?VAdb^y{AmrKEpAdX9WxUDJBQ_cj=LTuYlWim34=%AgJJIj^agyj)u{&!^7x4UxnSNwQi+FRWW73!jZsf`AQ|b-@njhy`1`kzMud zr(FrirN2ArZ80Ue)kf&`y}V?NR4AIsXghchezFMjx_DZ1H4DNIwX(60RR?v7C1Pic z+4v>oxDQFP@4H?Qmn&x$o}wd^?j&Xrw2mEnxn?eJc)TSG_YVPqx{GI|o@;_Nrw`>} zZ>*j=CG4}8xd3*Tw=V04(ZlLxh`=w_ZhaSHnUXl8SC{PV{3%G7icS~~I^t>CW^BRChA%Q+@rQ zAbYEt0Fp8raC-Q@do~GsDDqcybnslg31Lwf5s;D3!FSwq5ro>Yg-IAVp zb}pYta=_UG-lxon=3I!>EmQUvT@&u)(wW!VG~o0>u3cjUXP~mcVF;REY(; z0$JTMPUk7gZ&%*7Y78jBT2%?+Q!CY7kt&Pm0^pb{8US=3g;?m^te=Z zW&pE;1e;Q?HW}VAYr5jjpa>SbV;67DxG6NIZrsM7cB^7-$TIvIN-EJn6|Nk*SJfEx zh!x4Cv=qmx{=DdwCP|xs7>t7%k__*IS+etW5}SJA%zP`cdDCWmoAPSBAR@>L2HYX~bVaoisyj>pbu$oqaS!PA7Pp zUDbFaeBzn(A|N(~=t0qvF$8~&^2aKsQ{Mfj_2oyHZ)s%x=gD2#n*|`P7SYe$gRSp> zQvSMZ8bVH#vRcIp78Z0hRp?>I)SXGl=2+_B(ie?Q+MvO!8T#W~C4oDEUgf9r3-CMh z7kWeUuay+b3FoSG+g*}Rh6C{5G$_m_9BaI<_8@Yx6IXY_$F|EpxrI6&7j98bxGr1F@b&^hsNs$G;SiUZ18Z)|yg73neUzA>)%{lB<$Xwdv;rUI~xSc79?_b zT^$@M6$njWKIf}korNn?+A~lzA^m}{4Gl(VPTsWMm{*SGFIcv^qz{1bxRnzsbb}u?lH2<~lZuv3zpA~RR_z#pzRvY$J7LRc&deOw zy>RomH|8<#gW?BBud>FjbbU;5 zr3|EzYw9GPjv`>R0>WX7SFOC&=}<7b2%wJD)zk+#!A;V^zW3vIi`?bik^2^OYR&BLZj9-2&Bg+%`;~{b%{IGKdtk>)ePzT zsYydblQMU48L+q)pMb*O&t)`vR#u7&u^bQ4G3|fGEfH$&CqxSJ$qKfVi%Rn(n~`0* zjLf1HFV+i8NvkyOC$oZ>CHVpyL#jLl*VW*j0wj01SACZ3kIC@~fyj=k3K-_hJX>>O z@r4)Mx&BNQFp$zkdOm2MpMj~Tkm2)#7dhqjmv&rp^TIe)#RAmC3OZjEgx#Zfxc4!z z$loDIZqj4P+Z1F=&eypOb&hdEu6B0qGzPaS+wzg6RU|8Gb0ps4im$*v_{dC3g9qJN z&XCaOorW5Z89*k0=YEXP#49L+wc*#0+~KoS|2Bhq=ek|$G#8JhWZlaRTW@8;PpkgT zt3_k|)|ZfwYynWFmifJ^-=Iyj4hK{Lu^;G(YL&NOR-`|j(sZH!vO9xLC)YZre?@u5 z|A26MdJ)f&L~vozcw(rK(-%G^k=F6Z4I^f?>Ma}pTRm+hHl;sJxINwuJC=qC*Yv;u zMh=#|WFqr5tC8Va@ z#eWR0x%S}EmQ@@zGSkQ>lAjZR42#8BpH3X#X^3!@jgAF!XPR7`S=4W3^+~%IwzmiE zNzeY<)yXTdm%ER8$u1nzId&oRJn2`hS}G6wn^E+6TTyA@vA&?p&n~7`0r@f`RYETE z&3P==MJfO@Vik-;ax$Tn4EoFSf^vxZ~NBL-`^2 zIbo!O{oafwMk4~VP@{7sWw|jIbw^^!d2*#P1WCXUM7BPOK=|=bzS=q|RyJaO69Gs1 z0ylk0yKJ5$tgU)h)_vT`v_r|p3Q{HMsZ7Pk5jyb7RkR8g*u`w;&9PJxZZr7vXZjJ` zNjKbc^-{yuWumi@MwVlzv@eE^2H{Fx4+cCJ%#-RQVYmIXAH=&(FTg)G8Bn|Z?SS^U zU&8@7#si2iT9RJ4v48QpTh{;X-U5mn0lQBF(Q_u&oJKB_-WJQm()> zr_pRMzC~Jf-t4Px{(%*;XVaTt)tAug0(1ZfLGV;3_s?5tFKW~Pg5iF-IzKNL5Hk4w zzK^D{#9)7fky~%>?<9vSP%+$kXeXzcG)wAQmjMrqRe13e+1cm5UEmFwUAo$IJO|8L zsLrd4uDAh~qxSp#UAj$>*N^alUS9dx&aEsB{m6mb5q*1=5OO2_C}}#Zd9yL}(I-0j>C=3Fe#Dl1nsIFeJH{@yeQy)PkLrV}9(?Fs@HANVexX&!$X(N$KH6FE zmj2*csOq38d$i550<9!OQ^o?mG(X`w`S9`$)X>FfKu-~&nwxK9J-?%?BlZVW&9DG(wn4;_FcWSAFB(HaDx6MASfNlS z)9XMeP7Q2=qPMCWsz$@Ak(&U6O6ebV%wcYXFxw`2xA;*(&*_H<2C&}N@hM=z9R5}6 z;uW>x6}{ob>&m+%S(W0M0b`N z+`FY5(nj~Sx4!O7jU2c-Ciljx6!0oampM_eXZG$d%y<=9_~dpmBUpg%N2nm{i<1G; z?RaDut8JAx98bbyx@m2jEOikO`slzLsqdI{JZuB=t^;+kcOM(DOSH8kd75ku<3|pc zq294Z1k^+b?(TYKIN2arV>Y68f@E?vj+cHJwrL5CN1EU|`s`6_I;jH3ImE1LxW`l= zzgK8_Whow4p9H!DnlAwX2RzllUhEt&7g~e`exGaJSG#h7BS#Jw0brJj1tX-bZhb=4 z%I@0S1`4<_YQNesXZC4pb-8dl@`z}kWy%(5kuq=-PSxW$=>ugf=*9KJ}FUU-L z)T0M4s)I;2uwtc5F*b=BC#Lqe6-OMZGj$dIM$6&24eOkiI?-&du2>g#7dMDp2K=V| z)D#FRoN3W*m2DpCLAI5>-ph;r9C$Fb8D6mieXUUiLNMGT3$>VT_4FQb(YH{zq4fG# z-D70WK&tfta`^z*ENM=661br<7VHvAoHGU%-fws`v)r(DF{a;QzpT}jMYRqLO@U4J zL;)v?2xq!C{bI>k(A2m{buGZ-U>|0+zyrXoU!H31Md5TRIc4zBd+XMqgZ>qZpd z+j5?B;WNu;Lx-T;)T=pc1Azs{Y!J2Zz}w&uCGt*VFAP=6v}3lskZVJ}wgx%SfFb1M z+PlMXq%hy^YcHg`r$=}mNyjv(XPFG+WNW};Zf37j^XyVi#v;_)yFeqf4-I%*GZ^UD z-Z2Qrdjd4sjaQq|w=2T@ZmFP{zR+%e7lMmX0I)-MRU78JRiy6BMwxmYd6FGkoDz^i z!ZH1+E~NLILWWLYCoHCW!B$IOw8J8$*Vkp%MbkmipfAaIU&-F$^0~8&cMxwmarvf$ zfASEB?t@X5ifR1kmHxF(CbzV_oRI9{lH>>&ci}o{sN0Elrq-ieqPTXLL2_eA`3 zhZ62c8nVY)aNt~U0JA$(VL-2u&Ge@oCPT67!g_}gN7OYdHt2eOavklJ>CAL14Eh2> zHv+MTI-x>-OVzxfVO^s%c3sXqv@@q`!t!Q}sXo?iBi^3*(aczTxjT%47P)wgv=XFEkA0Bz7M~1HM?M;$gsWDEaLiEI(4HsY`a%PbY(|`f?%3}k%UppLdh%QR zslqXvBg?Bg9$Jdwl~RbE!y4JO<=YT8QIsLX2W2->x>qV|r)v`X272OJ1=GJqn6ev4 zY%i06U`Me~*1%EH!x-!YC83=~V`J6$%nYU4ct)(8ETdcyKPQYlo%8*X=cmVnEZIFz zOimG-gNFl0PhZ>u7)+yvHuV|=^&v_q3_(a_xwYu0VeBQ)3zlHRNHaotV;L3zEX$L} z5klG18VoD3`~v@7_JtFqX=)u93?E+ISA)E(Cv1Rp3d49e1%y7u>4wTQRjv8=qvM7y z=D^&wqO6v6D-7NJ>bPs)(RT#Zh-x>?I1ltQ9p;}piKvC7$@SiWPVZ5z7o>{s49fvI z4JbY%nfEN(7i!E{y#eVD>d9e%oj#B+jMNQx3@8AEz!$;h1tH84fbj*1u@BfaL|;k{ zvgbwGl*Zl^WNVG&fKSjF^JWx_C%u@JJ4Q*xJJ*MVwYUwDf{jyVwOe z6cte{a7@~6f>jMy`riT8pxAAsK{s%~f;@^l*Jg*x3+dR>%GFKHe-bc7G^LA}R0e~Y zh$LdK-P!K-XwefcH_aplXhIBW(}Lol36sGET4TcpnuDS)h+|3==;KEFL$RP2&v9^s zNam%C>+>ZKD3<%7Sny;?qI~CPL!Qi`E~i=8bK=3RD4=c1F6;sLGJv?v$#}#Yc9FQi zb8?Lg2wHv@X#PRHf!t^@j|1mk^QcmU7~06wwun=|yib9#YSCUrUJ!#nqHU82a?EMN z!O4I-+uYVdI%WpIr1gl}FZ{fjy`_Y=Ej`*5g0ky{ARdrFCc78w81Ism){s~puWfP! ziVcgUWRUZPGsy?!aPQsGQXxLvG%Z5QT1tiUfsqN2L%?#Tj?qel4m|-UUV7g@9MNon zWH!V6HG4c}pY$WnRZ2<*fZT5;3%PWQJf3AKVoG)gs!5C+unStDd3UxK^ml1Uirz~l z&pVCO?Aw>5r=?0rb`Ob0RGmr)Iy85!r3Lvrt+Ihjgf5}69R2S6WiG?Gk3!0cA1IWE@W zZVOpbfhMBq48JqO@6M1hMN|9D+hJphC-P#d{m9ypy`9m5&MejCR(fBZX|;t``j(t| zH-*@HyPN^U?-RD}@wNeOr=~AKwtcYeOYL0oUUUm^4z!ks&)Sg&CD6mJ+M$0`>J3NW zR)?M(S+oYRc<4d2@2sfqwQ=`3al6c;7*Zfku0popOeSY@ICy$5SW}O3utFg+Cn~Fw z=xUsA3%f)$)oB$5rD4Rvhi>(P6-E6D#vN0~E@%M^l{78erEoM8*;b3%CT$0BHxBM$ z1KL-(d>&*S_$k%x_&TxTEAD6IGS0kII`^KFp3?0pkEfp6?UtU-yhJ*1V|0P^SRVEC zv~m(^O0m^Dk}LVnf1Za7_**7WE=!_aMe;wTYi`YorgpHHBVX(RD(UZTlCvVkgC2)% z!}$Q))m|*6%F)jc&XCO!N*m@wzB}^amf24sv=R}ID~zLqa*BunDHXQY&dK88-)iL- zCRb``?k;S$bSPGFsv&cpQ|4<&1Dz^sw%GHK-#hh-=->&K%S7q4-Bqz#P0aK5f}?b?v%VSE3+u> z%)H^5rS>BzrN$B1bK64PmHD`$?nRIwO$D@IU+xxRxVhQF8^rr#EP*y zJUQ{{61oZ)DR)ECBnox@!(eq_Tgp&a3zGCKGrAZ0nkmu?dbByyK6k0ydd6f;y*!5S zUwGB1@IzbJ0&Kj7jBZj6ogCb?m;i%Xt<=#3mb1m{Fc)B0ZoRql^^UTH9xyuwCC>iY zAkQTdD=avUZEr+o90U&f@0gCKD5FI^_9^$2uq89SQhL3ZZ^%@q)M>x;28`dpkLO$L zd3+$q?^}|;st1{4!}((Zcd1-ddaczx;`#UDTFGp~lx2eQ9UOgOzijY-Bs{psEK}z`R$9CRaKtQ1HZtWxe^vc(i!JC+@ z@K+`>L8wL}+`t5<3#yq%Fd9L}DB?bjD4A`e#0scf>f0_7SR5qJ0LLpfr?owM_sz5 z!G1!*9`(6TXF7dWtXav?i5<0r_atjR5Yc6SB_;&63c9}WOnO#2<%>qvC^i^MvniR8 z2|2Pfy!fV&>@dC@$^)6%ZqPQd)5-nUDkb~;aowFk!TSqitN1iR;KZwUvw{xS>r|dp zh8Jat>IfHOC}jrB0HD!>L9xQj$GrAe^2}PrVV#g*n}{B#tuk4VJIc28ydzVjBn7@r zX>rzoRtr{HmjiSysT|N)mzqa*bCiX-=@?BYj|~{?ifZv`zd3bcE0`Ut1Mg(TVJ@Fu z>pH?(){A#P{K-s5E{O=}e$vxG*uE`h69%28uIf1U9maum1t5Q-1XqyhwG%6JCThTR z97soNh$I`>)`m54q2F{Knlyu;*xZIe3#OOnlI4%zw6S_Xx*fErWlJ4tV)<5eOyGcq z^-oEhgSEoiEg-$XP8H5wsTbUCLlnG$ogQEa1}+r9xHHMsO4e}bz-(gULQZ(iT;hY) z=m-BlKqiM7^M$hM=Z_!d;{SiTYs2%KG!<0*ZxLyt?IY6vBg-pW_0Y?yi<~nejo!4wVecH7+`;4Gh z?lqFjN6r-&V|dua?BQ%7aeHB5A+a&_@9VwYkCuZ}NJ9?HVRKL$0LNl9(&o$sLj&vp zCVMOcj+txH8l&k*dbU2t*c3z>@8|{5cfJo#zkaQCfJRFCST3d`%>;9%aV@4SW0q-c zTTAbxfjw5lci0b4h$5yhriuS_c8bw!2iUsNpJ6Z|i4|pFABzbE;-mhcyWuFPOcI!R z+vVC3xS4%d70f$wKvjakPaBTn6HU`jWjb`7nOHfSaGW7S@4?5atYlX236})hJoA^b zN=eUg3S)7j^>JA;bHf3a;M1t3C}W)wwHN|9N1x^24ZcNVzuuAdCX|I+`?Hdtr6ACDza1zS-&NXeihRs5U&73U~DF;>zT3J6zizspg`YOF7Mi95oG zGW?m$Rabo*0ouPdUJsTJNBolz*PnE1aX*0#~vKW8o8bAC;Ae5?%^X=gk~ z6<UyLNLD^QR~{jmcEdQ;WZWSswJ};zBK~+h zBwj~FB`=*AtL4IE$v5(#<7vIDJKasd5N|n@k+gPSQ|V^bBD{fv{FVYg(H*ygBuC#J zSxzELOlaSNhxnGJS>m6bO}94^nf^8|^)_O#!d+$`;G!Mp9%y36)H!s+wjJ-Dy5{As zw+|A6fJIk-LF`R)3&ofG67_v9qrWK{R9hv!Wo`IR=1(ihEib|s5WnO{&~LD2y=N5x z3x?E!0+bTvlzDxJ0ty8#wr<7;88+TB^CZk-A3DmvrM6WuaO`~EE?zkG&igJ-$*M}@ z#i#%x;`9K6jpQtC6saOjCRVRpDl-Zp)dXACk>}xz?9!ALN~VN!v9>u;UeQZsX%HGX=fh3T(9O2lvA<+0^r6r~9ocsLjLG^X9Z6dz4oF3t}yo zhxVjl2Mr0Vb%|A%7OSeqyL%wQXl&=W-(-c;q$6iBZf9fi?}xLGnxZM2sfL&=n?otI zRMG5CsTOQAjYR5h*)~1uwG(igBc!o;OHTE0;=E zi1%aU>NnI2>ohD{tSmJ%c{82t+&lA!6&R}YZt~^BFFOlO3#!bk8;w98F3iV-U=qL@ zV2QcDWo@wPU--|%rcopH@(ruy81BiM_+!x_ZMIhp#~)3nve@a%uG_p;(?M9yjh&^Xl(Lvdom_uYj8d!c)ESRVLHV+3C$wMAN46(+{fV@i% zEc2ZkZXqD9((^)O_*oGZH$O-fUcg+;j|6f0WDlUX(sKlc-{oM+=!$Jby+2eUxpF$g z>`#$}E`e-~1p#W=#&szVD-!u68p!%*!#^h2z*;FKWjAq)&Qg^|B7U^|T8kCAcj%V2 zFiFDgaLHxvE%zT4nDK+H^%S#fWbe(;vvLSKwWl31v0kccmDixZ>dod#V+O1SbU1sP znh&z^dV;&5Sglxd*TtD~$K_%&ZG`Kf>X~-bK^ROuA^(}TMif3>rja=KnQ=+HT(HKw zD);V?{(zv5*~PNsv%bQjxUSWXe>U=0*ZJ>%wB)jZ#{#V1oPWW$+4cYAYyUSp{QV_S z+Z?BX0reLU=sy)ef+2Tm?mh@aDmFO~B}k8ie2W-4kO2@j10~I$@NX2k?|(4n|EhVS zytxP<;XhJ=ke!8;>S~ehcq&3*GPK~OQJv`UK1}-ZG(!7t_x`Oscw0BNg|(mj6FAbH zHxMrcQD!M{Di-ve_KDe?PEVaPudA=O_Zx0Mgf{N?z24pJoXb5zit8X1;G zfnTnK^DOR2n%`0ZYcV$^1HC`La)R48Y>|(Z=P~Lcf|5JRRJhK%;w3~&+37TTKr*VE zt@1gLjzh&9L==`~pni+$Ym(>F2dI-|>(5{(J446L_fexwq}F3#Cu`b(f4SkBA^@W6 z=UMo*mpb~(%i>4Q8*t{6uY=|teyL+7hc1|{Rl8Q0QY6? z^DzBbH{1wRt(>83AN)~sepu5*ZY-vxCwKSOidL7^3yBeQe~&|M8GJ?2ZD$=MYwmCJ zcoR0Q%_b1JbSX**4dAMRlH0n|B)PU?~;~p*(s8VAGSL7`t`p>WAZDbuDh5c~leJ@XaKWIl|r_ zFy=3CdsGh0Iq>qO8b4UeE2khL^q&lkT+ z-ez+RYpPq8{&=X6f+8Y#EpF*;O}UnOPAtr=5oVf?_?Nc*=x-KmwQvc)+*@u>PQ+iY z7*~%w*!rl8!Ewgb)R!0FDotGP2n)^oK+wrt@sz^QwY?)b)TJ?10O6yj%_WJE9WL>w z0JYW7q?&Z6rVfRbQ@Y)(DPOE#NqljWj6S_R7QImb`FDhi;Ng@3A6b>6EM;|T1XJ~( zTSaMHYIs+LIwra+T%@vd1Xpxgd8>G{cuov9^x`|}8mrA6`@c2EF^Z8P`dwzXBNPZta~K^9sWWKW##vGwiXedtKPkvY0f{^>spsI7BInnYo}!cJ;e$F7 z9BJQQ%=g>K3)q6S|DCOl0Mpm zuY9<|OkSiBe-E7;Zk!wqV;s(83vLF}zuguQqVL*zJm9z8nY=!s@n6C0Rsea^hSeP4 z_~OFn1MMUk?j*eLJRNY~dGu(%R(pH(#zKH_AP++Gko3g9IV3hd*O~#z3U%`$4>CsG zp~RUF7oOh!0N^Lr5>yD{3|HLp@?4FC6Mhz0$${1h^2xp3781xo(QFi**^L z=>W}CKShF_w?9=3Ske?6gBx}g$4|pGLQh`KI)N!o0n)t|C*#O=qurjJp{&moohXIn zN(_VZymi?pS8s;XGG<03;VR3G<2^yv+@}{E$#gWe8@Y{(nd@8!d8KSQ4%& zm*3})^rWD1fq?a&fOAS51$m%_ceWs;L0U9#HnHj~S&2n5n1)IsI9_-g~)01)T zp;h5!MxhtgmL&>3CYlAbR#ik**QUq!`^(U2!GN1gxJZ*IDcKW#i+6|=g>L+;C#0hS zAzLvEyquSO{a<9gbCBk2yY=0ewr$&(wr$(CjcHudwmEIvwr$&*w#~Qi``Pt<`>9=( zq$;WWlT>mhYn{jOTgTCT70j6u7}BMIc9%0DPNf$R30hk+XXl<6$*ZI0#=NNN5Dniy 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�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

      I9p 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⁡U4mvt5N)Ux@TpLWtYN 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

      (7#Jj$Xj+CHESlII=N?TlKKQo@K(i- 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 Date: Thu, 21 Mar 2013 14:24:37 +0100 Subject: [PATCH 22/60] Use the Crouton library to display errors and success messages. --- core/project.properties | 1 + core/res/values/colors.xml | 2 + .../transdroid/core/gui/DetailsActivity.java | 48 +- .../transdroid/core/gui/TorrentsActivity.java | 92 +- .../core/gui/navigation/NavigationHelper.java | 23 +- external/Crouton/.gitignore | 41 + external/Crouton/LICENSE | 202 +++++ external/Crouton/README.markdown | 199 +++++ external/Crouton/build.gradle | 0 external/Crouton/library/.classpath | 8 + external/Crouton/library/.project | 33 + external/Crouton/library/AndroidManifest.xml | 25 + external/Crouton/library/build.xml | 92 ++ external/Crouton/library/pom.xml | 112 +++ external/Crouton/library/project.properties | 17 + .../android/widget/crouton/Crouton.java | 825 ++++++++++++++++++ .../crouton/DefaultAnimationsBuilder.java | 85 ++ .../widget/crouton/LifecycleCallback.java | 24 + .../android/widget/crouton/Manager.java | 403 +++++++++ .../android/widget/crouton/Style.java | 539 ++++++++++++ external/Crouton/pom.xml | 102 +++ 21 files changed, 2804 insertions(+), 69 deletions(-) create mode 100644 external/Crouton/.gitignore create mode 100644 external/Crouton/LICENSE create mode 100644 external/Crouton/README.markdown create mode 100644 external/Crouton/build.gradle create mode 100644 external/Crouton/library/.classpath create mode 100644 external/Crouton/library/.project create mode 100644 external/Crouton/library/AndroidManifest.xml create mode 100644 external/Crouton/library/build.xml create mode 100644 external/Crouton/library/pom.xml create mode 100644 external/Crouton/library/project.properties create mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java create mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java create mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java create mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java create mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java create mode 100644 external/Crouton/pom.xml diff --git a/core/project.properties b/core/project.properties index 90b3d809..2c3a9595 100644 --- a/core/project.properties +++ b/core/project.properties @@ -15,3 +15,4 @@ target=android-16 android.library.reference.1=../external/JakeWharton-ActionBarSherlock/library android.library.reference.2=../external/ColorPickerPreference android.library=true +android.library.reference.3=../external/Crouton/library diff --git a/core/res/values/colors.xml b/core/res/values/colors.xml index f4cdf7fa..5203dfd2 100644 --- a/core/res/values/colors.xml +++ b/core/res/values/colors.xml @@ -2,4 +2,6 @@ #8acc12 #7dbb21 + #c81113 + #aada62 diff --git a/core/src/org/transdroid/core/gui/DetailsActivity.java b/core/src/org/transdroid/core/gui/DetailsActivity.java index bf5974ca..f4b81872 100644 --- a/core/src/org/transdroid/core/gui/DetailsActivity.java +++ b/core/src/org/transdroid/core/gui/DetailsActivity.java @@ -17,6 +17,8 @@ import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.lists.LocalTorrent; +import org.transdroid.core.gui.log.Log; +import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.daemon.Daemon; import org.transdroid.daemon.IDaemonAdapter; import org.transdroid.daemon.Torrent; @@ -43,12 +45,13 @@ import org.transdroid.daemon.task.StopTask; import android.annotation.TargetApi; import android.content.Intent; import android.os.Build; -import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragmentActivity; -@EActivity(resName="activity_details") -@OptionsMenu(resName="activity_details") +import de.keyboardsurfer.android.widget.crouton.Crouton; + +@EActivity(resName = "activity_details") +@OptionsMenu(resName = "activity_details") public class DetailsActivity extends SherlockFragmentActivity implements TorrentTasksExecutor { @Extra @@ -57,11 +60,13 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent // Settings @Bean + protected NavigationHelper navigationHelper; + @Bean protected ApplicationSettings applicationSettings; private IDaemonAdapter currentConnection = null; - + // Details view components - @FragmentById(resName="torrent_details") + @FragmentById(resName = "torrent_details") protected DetailsFragment fragmentDetails; @AfterViews @@ -72,7 +77,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent finish(); return; } - + // Simple action bar with up, torrent name as title and refresh button getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(torrent.getName()); @@ -85,31 +90,32 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent fragmentDetails.updateTorrent(torrent); refreshTorrentDetails(); refreshTorrentFiles(); - + } - + @TargetApi(Build.VERSION_CODES.HONEYCOMB) @OptionsItem(android.R.id.home) protected void navigateUp() { TorrentsActivity_.intent(this).flags(Intent.FLAG_ACTIVITY_CLEAR_TOP).start(); } - - @OptionsItem(resName="action_refresh") + + @OptionsItem(resName = "action_refresh") protected void refreshScreen() { refreshTorrent(); refreshTorrentDetails(); refreshTorrentFiles(); } - + @Background protected void refreshTorrent() { fragmentDetails.updateIsLoading(true); DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); fragmentDetails.updateIsLoading(false); if (result instanceof RetrieveTaskSuccessResult) { - onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); + onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), + ((RetrieveTaskSuccessResult) result).getLabels()); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } @@ -121,7 +127,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent if (result instanceof GetTorrentDetailsTaskSuccessResult) { onTorrentDetailsRetrieved(((GetTorrentDetailsTaskSuccessResult) result).getTorrentDetails()); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } @@ -133,7 +139,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent if (result instanceof GetFileListTaskSuccessResult) { onTorrentFilesRetrieved(((GetFileListTaskSuccessResult) result).getFiles()); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } @@ -233,15 +239,15 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent @UiThread protected void onTaskSucceeded(DaemonTaskSuccessResult result, int successMessageId, String... messageParams) { - // TODO: Properly report this success - Toast.makeText(this, getString(successMessageId, (Object[]) messageParams), Toast.LENGTH_LONG).show(); + Crouton.showText(this, getString(successMessageId, (Object[]) messageParams), + navigationHelper.CROUTON_INFO_STYLE); } @UiThread protected void onCommunicationError(DaemonTaskFailureResult result) { - // TODO: Properly report this error - Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), - Toast.LENGTH_LONG).show(); + Log.i(this, result.getException().toString()); + Crouton.showText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), + navigationHelper.CROUTON_ERROR_STYLE); } @UiThread @@ -261,5 +267,5 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent // Update the details fragment with the newly retrieved list of files fragmentDetails.updateTorrentFiles(new ArrayList(torrentFiles)); } - + } diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index 2c29b439..17e0e8e1 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -21,7 +21,10 @@ import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.core.gui.log.Log; import org.transdroid.core.gui.navigation.*; +import org.transdroid.core.gui.navigation.NavigationFilter; +import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; +import org.transdroid.core.gui.navigation.StatusType; import org.transdroid.core.gui.settings.*; import org.transdroid.daemon.Daemon; import org.transdroid.daemon.IDaemonAdapter; @@ -51,7 +54,6 @@ import android.os.Build; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; -import android.widget.Toast; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.OnNavigationListener; @@ -61,9 +63,12 @@ import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.SherlockListView; import com.actionbarsherlock.widget.SearchView; -@EActivity(resName="activity_torrents") -@OptionsMenu(resName="activity_torrents") -public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener, TorrentTasksExecutor, NavigationFilterManager { +import de.keyboardsurfer.android.widget.crouton.Crouton; + +@EActivity(resName = "activity_torrents") +@OptionsMenu(resName = "activity_torrents") +public class TorrentsActivity extends SherlockFragmentActivity implements OnNavigationListener, TorrentTasksExecutor, + NavigationFilterManager { // Navigation components @Bean @@ -85,15 +90,15 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi protected NavigationFilter currentFilter = null; @InstanceState protected boolean turleModeEnabled = false; - + // Torrents list components - @FragmentById(resName="torrent_list") + @FragmentById(resName = "torrent_list") protected TorrentsFragment fragmentTorrents; - + // Details view components - @FragmentById(resName="torrent_details") + @FragmentById(resName = "torrent_details") protected DetailsFragment fragmentDetails; - + @AfterViews protected void init() { @@ -119,24 +124,24 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Connect to the last used server ServerSetting lastUsed = applicationSettings.getLastUsedServer(); if (lastUsed == null) { - // No server settings yet; + // No server settings yet; return; } // Set this as selection in the action bar spinner; we can use the server setting key since we have stable ids // TODO: Does this call the action bar item selection callback? And refreshes? getSupportActionBar().setSelectedNavigationItem(lastUsed.getOrder()); - + // Handle any start up intents if (firstStart) { handleStartIntent(); } - + } - + @Override protected void onResume() { super.onResume(); - + // Refresh server settings navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); ServerSetting lastUsed = applicationSettings.getLastUsedServer(); @@ -166,11 +171,11 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi } return true; } - + @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); - + // No connection yet; hide all menu options except settings if (currentConnection == null) { menu.findItem(R.id.action_add).setVisible(false); @@ -187,7 +192,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); return true; } - + // There is a connection (read: settings to some server known) menu.findItem(R.id.action_add).setVisible(true); menu.findItem(R.id.action_search).setVisible(navigationHelper.enableSearchUi()); @@ -205,7 +210,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi return true; } - + /** * Called when an item in the action bar navigation spinner was selected */ @@ -220,7 +225,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // A header was selected; no action return false; } - + // Handles clicks (selections) on the dedicated list of filter items (if it exists) // NOTE: Unfortunately we cannot use the @ItemSelect(R.id.filters_list) annotation as it throws NPE exceptions when // the list doesn't exist (read: on small screens) @@ -229,29 +234,30 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi public void onItemSelected(AdapterView parent, View view, int position, long id) { filterSelected((SimpleListItem) filtersList.getAdapter().getItem(position)); } + @Override public void onNothingSelected(AdapterView parent) { // TODO: Check if this happens } }; - + /** * A new filter was selected; update the view over the current data * @param selected True if the filter item was selected, false if it was deselected * @param item The touched filter item */ protected void filterSelected(SimpleListItem item) { - + // Server selection if (item instanceof ServerSetting) { ServerSetting server = (ServerSetting) item; - + if (currentConnection != null && server.equals(currentConnection.getSettings())) { // Already connected to this server; just ask for a refresh instead refreshTorrents(); return; } - + // Update connection to the newly selected server and refresh currentConnection = server.createServerAdapter(); applicationSettings.setLastUsedServer(server); @@ -261,8 +267,8 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi return; } - - // Status type or label selection - both of which are navigation filters + + // Status type or label selection - both of which are navigation filters if (item instanceof NavigationFilter) { currentFilter = (NavigationFilter) item; fragmentTorrents.applyFilter(currentFilter); @@ -271,7 +277,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi fragmentDetails.clear(); } } - + } @Override @@ -290,7 +296,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi */ private void updateFragmentVisibility(boolean hasServerSettings) { if (filtersList != null) - filtersList.setVisibility(hasServerSettings? View.VISIBLE: View.GONE); + filtersList.setVisibility(hasServerSettings ? View.VISIBLE : View.GONE); if (fragmentDetails != null) getSupportFragmentManager().beginTransaction().hide(fragmentDetails).commit(); } @@ -302,32 +308,32 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // TODO: Handle start intent } - @OptionsItem(resName="action_refresh") + @OptionsItem(resName = "action_refresh") protected void refreshScreen() { refreshTorrents(); getAdditionalStats(); } - @OptionsItem(resName="action_enableturtle") + @OptionsItem(resName = "action_enableturtle") protected void enableTurtleMode() { updateTurtleMode(true); } - @OptionsItem(resName="action_disableturtle") + @OptionsItem(resName = "action_disableturtle") protected void disableTurtleMode() { updateTurtleMode(false); } - @OptionsItem(resName="action_settings") + @OptionsItem(resName = "action_settings") protected void openSettings() { MainSettingsActivity_.intent(this).start(); } - @OptionsItem(resName="action_help") + @OptionsItem(resName = "action_help") protected void openHelp() { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.transdroid.org/download/"))); } - + private void clearScreens() { // Clear the currently shown list of torrent and perhaps the details fragmentTorrents.clear(); @@ -342,9 +348,10 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi DaemonTaskResult result = RetrieveTask.create(currentConnection).execute(); fragmentTorrents.updateIsLoading(false); if (result instanceof RetrieveTaskSuccessResult) { - onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), ((RetrieveTaskSuccessResult) result).getLabels()); + onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(), + ((RetrieveTaskSuccessResult) result).getLabels()); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } @@ -354,10 +361,10 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi if (result instanceof GetStatsTaskSuccessResult) { onTurtleModeRetrieved(((GetStatsTaskSuccessResult) result).isAlternativeModeEnabled()); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } - + @Background protected void updateTurtleMode(boolean enable) { DaemonTaskResult result = SetAlternativeModeTask.create(currentConnection, enable).execute(); @@ -365,7 +372,7 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Success; no need to retrieve it again - just update the visual indicator onTurtleModeRetrieved(enable); } else { - onCommunicationError((DaemonTaskFailureResult)result); + onCommunicationError((DaemonTaskFailureResult) result); } } @@ -465,16 +472,15 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @UiThread protected void onTaskSucceeded(DaemonTaskSuccessResult result, int successMessageId, String... messageParams) { - // TODO: Properly report this success - Toast.makeText(this, getString(successMessageId, (Object[]) messageParams), Toast.LENGTH_LONG).show(); + Crouton.showText(this, getString(successMessageId, (Object[]) messageParams), + navigationHelper.CROUTON_INFO_STYLE); } @UiThread protected void onCommunicationError(DaemonTaskFailureResult result) { Log.i(this, result.getException().toString()); - // TODO: Properly report this error - Toast.makeText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), - Toast.LENGTH_LONG).show(); + Crouton.showText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), + navigationHelper.CROUTON_ERROR_STYLE); } @UiThread diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java index 96d26edd..54025480 100644 --- a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java +++ b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -4,18 +4,31 @@ import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; import org.transdroid.core.R; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; +import de.keyboardsurfer.android.widget.crouton.Style; +/** + * Helper for activities to make navigation-related decisions, such as when a device can display a larger, tablet style + * layout or how to display errors. + * @author Eric Kok + */ +@SuppressLint("ResourceAsColor") @EBean public class NavigationHelper { @RootContext protected Context context; + public Style CROUTON_ERROR_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_error).setTextSize(13) + .build(); + public Style CROUTON_INFO_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_info).setTextSize(13) + .build(); + /** * Whether any search-related UI components should be shown in the interface. At the moment returns false only if we * run as Transdroid Lite version. @@ -32,8 +45,8 @@ public class NavigationHelper { } /** - * Returns whether the device is considered small (i.e. a phone) rather than large (i.e. a tablet). Can, for example, - * be used to determine if a dialog should be shown full screen. Currently is true if the device's smallest + * Returns whether the device is considered small (i.e. a phone) rather than large (i.e. a tablet). Can, for + * example, be used to determine if a dialog should be shown full screen. Currently is true if the device's smallest * dimension is 500 dip. * @return True if the app runs on a small device, false otherwise */ @@ -58,19 +71,19 @@ public class NavigationHelper { public boolean enableRssUi() { return !context.getPackageName().equals("org.transdroid.lite"); } - + /** * Whether the navigation of server types and labels as filter are shown in a separate fragment. * @return True if navigation is in a separate fragment, false if the items are shown in the action bar spinner */ @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public boolean showFiltersInFragment() { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { if (context.getResources().getConfiguration().screenWidthDp >= 600) { return true; } } return false; } - + } diff --git a/external/Crouton/.gitignore b/external/Crouton/.gitignore new file mode 100644 index 00000000..90705626 --- /dev/null +++ b/external/Crouton/.gitignore @@ -0,0 +1,41 @@ +# built application files +*.apk +*.ap_ +*.jar +gen-external-apklibs + +# keystore +*.keystore + +# files for the dex VM +*.dex + +# Java class files +*.class + +# generated files +bin/ +gen/ +target/ + +# Local configuration file (sdk path, etc) +local.properties + +# Eclipse project files +.classpath +.project +.metadata +.settings + +# IntelliJ files +.idea +*.iml + +# OSX files +.DS_Store + +#vi swap files +*.swp + +# maven target +target diff --git a/external/Crouton/LICENSE b/external/Crouton/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/external/Crouton/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/external/Crouton/README.markdown b/external/Crouton/README.markdown new file mode 100644 index 00000000..8d4a3d77 --- /dev/null +++ b/external/Crouton/README.markdown @@ -0,0 +1,199 @@ +# Crouton +![Crouton](https://raw.github.com/keyboardsurfer/Crouton/master/sample/res/drawable-xhdpi/ic_launcher.png "Crouton logo") + +Context sensitive notifications for Android + +## Overview + +**Crouton** is a class that can be used by Android developers that feel the need for an **alternative to the Context insensitive [Toast](http://developer.android.com/reference/android/widget/Toast.html)**. + +A Crouton will be displayed at the position the developer decides. +Standard will be the of an application window. +You can line up multiple Croutons for display, that will be shown one after another. + +You can check some features in the Crouton Demo. + + + Crouton Demo on Google Play + + +If you're already using Crouton and just want to download the latest version of the library, follow [this link](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.keyboardsurfer.android.widget%22). + +### Changelog +#### Current version: 1.7 + +####[1.7](https://github.com/keyboardsurfer/Crouton/tree/1.7) + +- `Crouton.setOnClickListener(OnClickListener)` has been introduced. +- Infinite display of Crouton is possible via `Style.setDuration(Style.DURATION_INFINITE)` +- Via `Crouton.hide(Crouton)` a Crouton can be hidden. + +####[1.6](https://github.com/keyboardsurfer/Crouton/tree/1.6) + +- Crouton now can be used on any Android device with **API level 4+**. +- Changes the package name to `de.keyboardsurfer.android.widget` +- Adds possibility to set a custom width +- Can now be added to any ViewGroup (@coreform) +- Integration with TalkBack (@coreform) +- Adds Accessibility features (@coreform) +- Fixes bug that got Crouton out of sync with reality (@coreform) +- New [LifecycleCallback](https://github.com/keyboardsurfer/Crouton/blob/master/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java) (@coreform) +- initializeCroutonView was refactored, to make it easier on the eyes +- removes redundant initialization within Style.Builder +- documentation improvments + +#### older versions + +Please see the `git log` + +## Usage + +The API is kept as simple as the Toast API: + +Create a Crouton for any CharSequence: + + Crouton.makeText(Activity, CharSequence, [Style]).show(); + +Create a Crouton with a String from your application's resources: + + Crouton.makeText(Activity, int, Style).show(); + +Further you can attach a Crouton to any view like this: + + Crouton.makeText(Activity, int, Style, int).show(); + +If you would like a more graphical introduction to Crouton check out [this presentation](https://speakerdeck.com/keyboardsurfer/crouton-devfest-berlin-2012). + +##Important! + +In your Activity.onDestroy() make sure to call + + Crouton.cancelAllCroutons(); + +to cancel cancel all scheduled Croutons. + +This is a workaround and further description is available in #24. + +## Basic Examples +Currently you can use the three different Style attributes displayed below out of the box: + +![Alert](https://github.com/keyboardsurfer/Crouton/raw/master/res/Alert.png "Example of Style.ALERT") + +![Confirm](https://github.com/keyboardsurfer/Crouton/raw/master/res/Confirm.png "Example of Style.CONFIRM") + +![Info](https://github.com/keyboardsurfer/Crouton/raw/master/res/Info.png "Example of Style.INFO") + +## Extension and Modification + +The whole design of a Crouton is defined by [Style](https://github.com/keyboardsurfer/Crouton/blob/master/library/src/de/keyboardsurfer/android/widget/crouton/Style.java). + +You can use one of the styles Crouton ships with: **Style.ALERT**, **Style.CONFIRM** and **Style.INFO**. Or you can create your own Style. + +In general you can modify + +- display duration +- dimension settings +- options for the text to display +- custom Views +- appearance & disappearance Animation +- displayed Image + +Since [Style](https://github.com/keyboardsurfer/Crouton/blob/master/library/src/de/keyboardsurfer/android/widget/crouton/Style.java) is the general entry point for tweaking Croutons, go and see for yourself what can be done with it. + + +## Maven + +### From maven central + +Crouton is available in the maven central repository. + +To use crouton simply add + +```xml + + crouton + 1.7 + de.keyboardsurfer.android.widget + +``` + +to your pom.xml + +If you also want the sources or javadoc add the respective classifier + +```xml + sources +``` + +or + +```xml + javadoc +``` +to the dependency. + +If you are referencing a newer version of the Android Support Library in your application, you might want to exclude Crouton's dependency like this: + +```xml + + crouton + ${crouton.version} + de.keyboardsurfer.android.widget + + + com.google.android + support-v4 + + + +``` + +### DIY + +The build requires Maven. Operations are very simple: + +* `mvn -f library/pom.xml clean package` will build a `jar` library; +* `mvn clean package` will build a `jar` library and the sample application `apk`; +* `mvn -f library/pom.xml clean install` will put Crouton in your local Maven repository. + +After putting Crouton in the repository you can add it as a dependency. + +```xml + + crouton + 1.6 + de.keyboardsurfer.android.widget + +``` + +## Contribution + +### Pull requests welcome + +Feel free to contribute to Crouton. + +Either you found a bug or have created a new and awesome feature, just create a pull request. + +If you want to start to create a new feature or have any other questions regarding Crouton, [file an issue](https://github.com/keyboardsurfer/Crouton/issues/new). +I'll try to answer as soon as I find the time. + +### Formatting + +For contributors using Eclipse there's a formatter available at the [download section](https://github.com/downloads/keyboardsurfer/Crouton/Crouton_Eclipseformatter.xml). + +In order to reduce merging pains on my end, please use this formatter or format your commit in a way similar to it's example. + +If you're using IDEA, the Eclipse Formatter plugin should allow you to use the formatter as well. + +## License + +* [Apache Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + +## Attributions + +The initial version was written by Benjamin Weiss at [Neofonie Mobile GmbH](http://mobile.neofonie.de). + +The name and the idea of [Crouton](https://github.com/keyboardsurfer/Crouton/blob/master/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java) originates in a [blog article](http://android.cyrilmottier.com/?p=773) by Cyril Mottier. + +The Crouton logo has been created by [Marie Schweiz](http://marie-schweiz.de). diff --git a/external/Crouton/build.gradle b/external/Crouton/build.gradle new file mode 100644 index 00000000..e69de29b diff --git a/external/Crouton/library/.classpath b/external/Crouton/library/.classpath new file mode 100644 index 00000000..a4763d1e --- /dev/null +++ b/external/Crouton/library/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/external/Crouton/library/.project b/external/Crouton/library/.project new file mode 100644 index 00000000..a5d8dde2 --- /dev/null +++ b/external/Crouton/library/.project @@ -0,0 +1,33 @@ + + + Crouton + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/external/Crouton/library/AndroidManifest.xml b/external/Crouton/library/AndroidManifest.xml new file mode 100644 index 00000000..5f62e486 --- /dev/null +++ b/external/Crouton/library/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/external/Crouton/library/build.xml b/external/Crouton/library/build.xml new file mode 100644 index 00000000..2f6f323a --- /dev/null +++ b/external/Crouton/library/build.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external/Crouton/library/pom.xml b/external/Crouton/library/pom.xml new file mode 100644 index 00000000..864bcce0 --- /dev/null +++ b/external/Crouton/library/pom.xml @@ -0,0 +1,112 @@ + + + + + + 4.0.0 + + Crouton + Context sensitive notifications for Android + https://github.com/keyboardsurfer/Crouton + crouton + de.keyboardsurfer.android.widget + 1.7 + jar + + + UTF-8 + 4.1.1.4 + 16 + + + + + keyboardsurfer + Benjamin Weiss + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + git@github.com:keyboardsurfer/Crouton.git + scm:git:git@github.com:keyboardsurfer/Crouton.git + scm:git:git@github.com:keyboardsurfer/Crouton.git + + + + + android + ${android.version} + com.google.android + provided + + + com.google.android + support-v4 + r11 + + + + + src + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9 + + + attach-javadocs + + jar + + + + + + com.jayway.maven.plugins.android.generation2 + android-maven-plugin + 3.5.0 + + + + + diff --git a/external/Crouton/library/project.properties b/external/Crouton/library/project.properties new file mode 100644 index 00000000..0b79b87b --- /dev/null +++ b/external/Crouton/library/project.properties @@ -0,0 +1,17 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. + +target=android-16 +android.library=true +android.library.reference.1=../../JakeWharton-ActionBarSherlock/library diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java new file mode 100644 index 00000000..4d9d95b8 --- /dev/null +++ b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java @@ -0,0 +1,825 @@ +/* + * Copyright 2012 - 2013 Benjamin Weiss + * Copyright 2012 Neofonie Mobile GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package de.keyboardsurfer.android.widget.crouton; + +import android.app.Activity; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Shader; +import android.graphics.Typeface; +import android.graphics.drawable.BitmapDrawable; +import android.util.TypedValue; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +/* + * Based on an article by Cyril Mottier (http://android.cyrilmottier.com/?p=773)
      + */ + + +/** + * Displays information in a non-invasive context related manner. Like + * {@link android.widget.Toast}, but better. + *

      + * Important: + * Call {@link Crouton#clearCroutonsForActivity(Activity)} within + * {@link android.app.Activity#onDestroy()} to avoid {@link Context} leaks. + */ +public final class Crouton { + private static final int IMAGE_ID = 0x100; + private static final int TEXT_ID = 0x101; + private final CharSequence text; + private final Style style; + private final View customView; + + private OnClickListener onClickListener; + + private Activity activity; + private ViewGroup viewGroup; + private FrameLayout croutonView; + private Animation inAnimation; + private Animation outAnimation; + private LifecycleCallback lifecycleCallback = null; + + /** + * Creates the {@link Crouton}. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + */ + private Crouton(Activity activity, CharSequence text, Style style) { + if ((activity == null) || (text == null) || (style == null)) { + throw new IllegalArgumentException("Null parameters are not accepted"); + } + + this.activity = activity; + this.viewGroup = null; + this.text = text; + this.style = style; + this.customView = null; + } + + /** + * Creates the {@link Crouton}. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + */ + private Crouton(Activity activity, CharSequence text, Style style, ViewGroup viewGroup) { + if ((activity == null) || (text == null) || (style == null)) { + throw new IllegalArgumentException("Null parameters are not accepted"); + } + + this.activity = activity; + this.text = text; + this.style = style; + this.viewGroup = viewGroup; + this.customView = null; + } + + /** + * Creates the {@link Crouton}. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param customView + * The custom {@link View} to display + */ + private Crouton(Activity activity, View customView) { + if ((activity == null) || (customView == null)) { + throw new IllegalArgumentException("Null parameters are not accepted"); + } + + this.activity = activity; + this.viewGroup = null; + this.customView = customView; + this.style = new Style.Builder().build(); + this.text = null; + } + + /** + * Creates the {@link Crouton}. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param customView + * The custom {@link View} to display + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + */ + private Crouton(Activity activity, View customView, ViewGroup viewGroup) { + if ((activity == null) || (customView == null)) { + throw new IllegalArgumentException("Null parameters are not accepted"); + } + + this.activity = activity; + this.customView = customView; + this.viewGroup = viewGroup; + this.style = new Style.Builder().build(); + this.text = null; + } + + /** + * Creates a {@link Crouton} with provided text and style for a given + * activity. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, CharSequence text, Style style) { + return new Crouton(activity, text, style); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, CharSequence text, Style style, ViewGroup viewGroup) { + return new Crouton(activity, text, style, viewGroup); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, CharSequence text, Style style, int viewGroupResId) { + return new Crouton(activity, text, style, (ViewGroup) activity.findViewById(viewGroupResId)); + } + + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, int textResourceId, Style style) { + return makeText(activity, activity.getString(textResourceId), style); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, int textResourceId, Style style, ViewGroup viewGroup) { + return makeText(activity, activity.getString(textResourceId), style, viewGroup); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton makeText(Activity activity, int textResourceId, Style style, int viewGroupResId) { + return makeText(activity, activity.getString(textResourceId), style, + (ViewGroup) activity.findViewById(viewGroupResId)); + } + + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param customView + * The custom {@link View} to display + * + * @return The created {@link Crouton}. + */ + public static Crouton make(Activity activity, View customView) { + return new Crouton(activity, customView); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param customView + * The custom {@link View} to display + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton make(Activity activity, View customView, ViewGroup viewGroup) { + return new Crouton(activity, customView, viewGroup); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param customView + * The custom {@link View} to display + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + * + * @return The created {@link Crouton}. + */ + public static Crouton make(Activity activity, View customView, int viewGroupResId) { + return new Crouton(activity, customView, (ViewGroup) activity.findViewById(viewGroupResId)); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link android.app.Activity} that the {@link Crouton} should + * be attached to. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + */ + public static void showText(Activity activity, CharSequence text, Style style) { + makeText(activity, text, style).show(); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void showText(Activity activity, CharSequence text, Style style, ViewGroup viewGroup) { + makeText(activity, text, style, viewGroup).show(); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param text + * The text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void showText(Activity activity, CharSequence text, Style style, int viewGroupResId) { + makeText(activity, text, style, (ViewGroup) activity.findViewById(viewGroupResId)).show(); + } + + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link android.app.Activity} that the {@link Crouton} should + * be attached to. + * @param customView + * The custom {@link View} to display + */ + public static void show(Activity activity, View customView) { + make(activity, customView).show(); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param customView + * The custom {@link View} to display + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void show(Activity activity, View customView, ViewGroup viewGroup) { + make(activity, customView, viewGroup).show(); + } + + /** + * Creates a {@link Crouton} with provided text and style for a given activity + * and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param customView + * The custom {@link View} to display + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void show(Activity activity, View customView, int viewGroupResId) { + make(activity, customView, viewGroupResId).show(); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity and displays it directly. + * + * @param activity + * The {@link Activity} that the {@link Crouton} should be attached + * to. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + */ + public static void showText(Activity activity, int textResourceId, Style style) { + showText(activity, activity.getString(textResourceId), style); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroup + * The {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void showText(Activity activity, int textResourceId, Style style, ViewGroup viewGroup) { + showText(activity, activity.getString(textResourceId), style, viewGroup); + } + + /** + * Creates a {@link Crouton} with provided text-resource and style for a given + * activity and displays it directly. + * + * @param activity + * The {@link Activity} that represents the context in which the Crouton should exist. + * @param textResourceId + * The resource id of the text you want to display. + * @param style + * The style that this {@link Crouton} should be created with. + * @param viewGroupResId + * The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to. + */ + public static void showText(Activity activity, int textResourceId, Style style, int viewGroupResId) { + showText(activity, activity.getString(textResourceId), style, viewGroupResId); + } + + /** + * Allows hiding of a previously displayed {@link Crouton}. + * @param crouton The {@link Crouton} you want to hide. + */ + public static void hide(Crouton crouton) { + Manager.getInstance().removeCrouton(crouton); + } + + /** + * Cancels all queued {@link Crouton}s. If there is a {@link Crouton} + * displayed currently, it will be the last one displayed. + */ + public static void cancelAllCroutons() { + Manager.getInstance().clearCroutonQueue(); + } + + /** + * Clears (and removes from {@link Activity}'s content view, if necessary) all + * croutons for the provided activity + * + * @param activity + * - The {@link Activity} to clear the croutons for. + */ + public static void clearCroutonsForActivity(Activity activity) { + Manager.getInstance().clearCroutonsForActivity(activity); + } + + /** + * Cancels a {@link Crouton} immediately. + */ + public void cancel() { + Manager manager = Manager.getInstance(); + manager.removeCroutonImmediately(this); + } + + /** + * Displays the {@link Crouton}. If there's another {@link Crouton} visible at + * the time, this {@link Crouton} will be displayed afterwards. + */ + public void show() { + Manager.getInstance().add(this); + } + + public Animation getInAnimation() { + if ((null == this.inAnimation) && (null != this.activity)) { + if (getStyle().inAnimationResId > 0) { + this.inAnimation = AnimationUtils.loadAnimation(getActivity(), getStyle().inAnimationResId); + } else { + this.inAnimation = DefaultAnimationsBuilder.buildDefaultSlideInDownAnimation(); + } + } + + return inAnimation; + } + + public Animation getOutAnimation() { + if ((null == this.outAnimation) && (null != this.activity)) { + if (getStyle().outAnimationResId > 0) { + this.outAnimation = AnimationUtils.loadAnimation(getActivity(), getStyle().outAnimationResId); + } else { + this.outAnimation = DefaultAnimationsBuilder.buildDefaultSlideOutUpAnimation(); + } + } + + return outAnimation; + } + + /** + * @param lifecycleCallback + * Callback object for notable events in the life of a Crouton. + */ + public void setLifecycleCallback(LifecycleCallback lifecycleCallback) { + this.lifecycleCallback = lifecycleCallback; + } + + /** + * Convenience method to get the license text for embedding within your application. + * @return + * The license text. + */ + public String getLicenseText() { + return "This application uses the Crouton library.\n\n" + + "Copyright 2012 - 2013 Benjamin Weiss \n" + + "Copyright 2012 Neofonie Mobile GmbH\n" + + "\n" + + "Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + "you may not use this file except in compliance with the License.\n" + + "You may obtain a copy of the License at\n" + + "\n" + + " http://www.apache.org/licenses/LICENSE-2.0\n" + + "\n" + + "Unless required by applicable law or agreed to in writing, software\n" + + "distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + "See the License for the specific language governing permissions and\n" + + "limitations under the License."; + } + + /** + * Allows setting of an {@link OnClickListener} directly to a {@link Crouton} without having to use a custom view. + * @param onClickListener The {@link OnClickListener} to set. + * @return this {@link Crouton}. + */ + public Crouton setOnClickListener(OnClickListener onClickListener){ + this.onClickListener = onClickListener; + return this; + } + + /** + * @return true if the {@link Crouton} is being displayed, else + * false. + */ + boolean isShowing() { + return (null != activity) && (null != croutonView) && (null != croutonView.getParent()); + } + + /** + * Removes the activity reference this {@link Crouton} is holding + */ + void detachActivity() { + activity = null; + } + + /** + * Removes the viewGroup reference this {@link Crouton} is holding + */ + void detachViewGroup() { + viewGroup = null; + } + + /** + * Removes the lifecycleCallback reference this {@link Crouton} is holding + */ + void detachLifecycleCallback() { + lifecycleCallback = null; + } + + /** + * @return the lifecycleCallback + */ + LifecycleCallback getLifecycleCallback() { + return lifecycleCallback; + } + + /** + * @return the style + */ + Style getStyle() { + return style; + } + + /** + * @return the activity + */ + Activity getActivity() { + return activity; + } + + /** + * @return the viewGroup + */ + ViewGroup getViewGroup() { + return viewGroup; + } + + /** + * @return the text + */ + CharSequence getText() { + return text; + } + + /** + * @return the view + */ + View getView() { + // return the custom view if one exists + if (null != this.customView) { + return this.customView; + } + + // if already setup return the view + if (null == this.croutonView) { + initializeCroutonView(); + } + + return croutonView; + } + + private void initializeCroutonView() { + Resources resources = this.activity.getResources(); + + this.croutonView = initializeCroutonViewGroup(resources); + + // create content view + RelativeLayout contentView = initializeContentView(resources); + this.croutonView.addView(contentView); + } + + private FrameLayout initializeCroutonViewGroup(Resources resources) { + FrameLayout croutonView = new FrameLayout(this.activity); + + if(null != onClickListener) + croutonView.setOnClickListener(onClickListener); + + final int height; + if (this.style.heightDimensionResId > 0) { + height = resources.getDimensionPixelSize(this.style.heightDimensionResId); + } else { + height = this.style.heightInPixels; + } + + final int width; + if (this.style.widthDimensionResId > 0) { + width = resources.getDimensionPixelSize(this.style.widthDimensionResId); + } else { + width = this.style.widthInPixels; + } + + croutonView.setLayoutParams( + new FrameLayout.LayoutParams(width != 0 ? width : FrameLayout.LayoutParams.MATCH_PARENT, height)); + + // set background + if (this.style.backgroundColorValue != -1) { + croutonView.setBackgroundColor(this.style.backgroundColorValue); + } else { + croutonView.setBackgroundColor(resources.getColor(this.style.backgroundColorResourceId)); + } + + // set the background drawable if set. This will override the background + // color. + if (this.style.backgroundDrawableResourceId != 0) { + Bitmap background = BitmapFactory.decodeResource(resources, this.style.backgroundDrawableResourceId); + BitmapDrawable drawable = new BitmapDrawable(resources, background); + if (this.style.isTileEnabled) { + drawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); + } + croutonView.setBackgroundDrawable(drawable); + } + return croutonView; + } + + private RelativeLayout initializeContentView(final Resources resources) { + RelativeLayout contentView = new RelativeLayout(this.activity); + contentView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT)); + + // set padding + int padding = this.style.paddingInPixels; + + // if a padding dimension has been set, this will overwrite any padding + // in pixels + if (this.style.paddingDimensionResId > 0) { + padding = resources.getDimensionPixelSize(this.style.paddingDimensionResId); + } + contentView.setPadding(padding, padding, padding, padding); + + // only setup image if one is requested + ImageView image = null; + if ((null != this.style.imageDrawable) || (0 != this.style.imageResId)) { + image = initializeImageView(); + contentView.addView(image, image.getLayoutParams()); + } + + TextView text = initializeTextView(resources); + + RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + if (null != image) { + textParams.addRule(RelativeLayout.RIGHT_OF, image.getId()); + } + contentView.addView(text, textParams); + return contentView; + } + + private TextView initializeTextView(final Resources resources) { + TextView text = new TextView(this.activity); + text.setId(TEXT_ID); + text.setText(this.text); + text.setTypeface(Typeface.DEFAULT_BOLD); + text.setGravity(this.style.gravity); + + // set the text color if set + if (this.style.textColorResourceId != 0) { + text.setTextColor(resources.getColor(this.style.textColorResourceId)); + } + + // Set the text size. If the user has set a text size and text + // appearance, the text size in the text appearance + // will override this. + if (this.style.textSize != 0) { + text.setTextSize(TypedValue.COMPLEX_UNIT_SP, this.style.textSize); + } + + // Setup the shadow if requested + if (this.style.textShadowColorResId != 0) { + initializeTextViewShadow(resources, text); + } + + // Set the text appearance + if (this.style.textAppearanceResId != 0) { + text.setTextAppearance(this.activity, this.style.textAppearanceResId); + } + return text; + } + + private void initializeTextViewShadow(final Resources resources, final TextView text) { + int textShadowColor = resources.getColor(this.style.textShadowColorResId); + float textShadowRadius = this.style.textShadowRadius; + float textShadowDx = this.style.textShadowDx; + float textShadowDy = this.style.textShadowDy; + text.setShadowLayer(textShadowRadius, textShadowDx, textShadowDy, textShadowColor); + } + + private ImageView initializeImageView() { + ImageView image; + image = new ImageView(this.activity); + image.setId(IMAGE_ID); + image.setAdjustViewBounds(true); + image.setScaleType(this.style.imageScaleType); + + // set the image drawable if not null + if (null != this.style.imageDrawable) { + image.setImageDrawable(this.style.imageDrawable); + } + + // set the image resource if not 0. This will overwrite the drawable + // if both are set + if (this.style.imageResId != 0) { + image.setImageResource(this.style.imageResId); + } + + RelativeLayout.LayoutParams imageParams = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.WRAP_CONTENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + imageParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); + imageParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE); + + image.setLayoutParams(imageParams); + + return image; + } + + @Override + public String toString() { + return "Crouton{" + + "text=" + text + + ", style=" + style + + ", customView=" + customView + + ", activity=" + activity + + ", viewGroup=" + viewGroup + + ", croutonView=" + croutonView + + ", inAnimation=" + inAnimation + + ", outAnimation=" + outAnimation + + ", lifecycleCallback=" + lifecycleCallback + + '}'; + } +} diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java new file mode 100644 index 00000000..b1109c86 --- /dev/null +++ b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java @@ -0,0 +1,85 @@ +/* + * Copyright 2012 - 2013 Benjamin Weiss + * Copyright 2012 Neofonie Mobile GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package de.keyboardsurfer.android.widget.crouton; + +import android.view.animation.Animation; +import android.view.animation.TranslateAnimation; + +/** + * Builds the default animations for showing and hiding a {@link Crouton}. + */ +final class DefaultAnimationsBuilder { + private static Animation slideInDownAnimation, slideOutUpAnimation; + + protected static final class SlideInDownAnimationParameters { + private SlideInDownAnimationParameters() { + /* no-op */ + } + + public static final float FROM_X_DELTA = 0; + public static final float TO_X_DELTA = 0; + public static final float FROM_Y_DELTA = -50; + public static final float TO_Y_DELTA = 0; + + public static final long DURATION = 400; + } + + protected static final class SlideOutUpAnimationParameters { + private SlideOutUpAnimationParameters() { + /* no-op */ + } + + public static final float FROM_X_DELTA = 0; + public static final float TO_X_DELTA = 0; + public static final float FROM_Y_DELTA = 0; + public static final float TO_Y_DELTA = -50; + + public static final long DURATION = 400; + } + + private DefaultAnimationsBuilder() { + /* no-op */ + } + + /** + * @return The default Animation for a showing {@link Crouton}. + */ + public static Animation buildDefaultSlideInDownAnimation() { + if (null == slideInDownAnimation) { + slideInDownAnimation = new TranslateAnimation(SlideInDownAnimationParameters.FROM_X_DELTA, + SlideInDownAnimationParameters.TO_X_DELTA, + SlideInDownAnimationParameters.FROM_Y_DELTA, SlideInDownAnimationParameters.TO_Y_DELTA); + slideInDownAnimation.setDuration(SlideInDownAnimationParameters.DURATION); + } + + return slideInDownAnimation; + } + + /** + * @return The default Animation for a hiding {@link Crouton}. + */ + public static Animation buildDefaultSlideOutUpAnimation() { + if (null == slideOutUpAnimation) { + slideOutUpAnimation = new TranslateAnimation(SlideOutUpAnimationParameters.FROM_X_DELTA, + SlideOutUpAnimationParameters.TO_X_DELTA, + SlideOutUpAnimationParameters.FROM_Y_DELTA, SlideOutUpAnimationParameters.TO_Y_DELTA); + slideOutUpAnimation.setDuration(SlideOutUpAnimationParameters.DURATION); + } + return slideOutUpAnimation; + } +} diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java new file mode 100644 index 00000000..a2ade574 --- /dev/null +++ b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java @@ -0,0 +1,24 @@ +/* + * Copyright 2012 - 2013 Benjamin Weiss + * Copyright 2012 Neofonie Mobile GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package de.keyboardsurfer.android.widget.crouton; + +public interface LifecycleCallback { + public void onDisplayed(); + public void onRemoved(); + //public void onCeasarDressing(); +} diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java new file mode 100644 index 00000000..0d462941 --- /dev/null +++ b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java @@ -0,0 +1,403 @@ +/* + * Copyright 2012 - 2013 Benjamin Weiss + * Copyright 2012 Neofonie Mobile GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package de.keyboardsurfer.android.widget.crouton; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.os.Handler; +import android.os.Message; +import android.support.v4.view.accessibility.AccessibilityEventCompat; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; +import android.widget.FrameLayout; +import java.util.Iterator; +import java.util.Queue; +import java.util.concurrent.LinkedBlockingQueue; + + +/** + * Manages the lifecycle of {@link Crouton}s. + */ +final class Manager extends Handler { + private static final class Messages { + private Messages() { /* no-op */ + } + + public static final int DISPLAY_CROUTON = 0xc2007; + public static final int ADD_CROUTON_TO_VIEW = 0xc20074dd; + public static final int REMOVE_CROUTON = 0xc2007de1; + } + + private static Manager INSTANCE; + + private Queue croutonQueue; + + private Manager() { + croutonQueue = new LinkedBlockingQueue(); + } + + /** + * @return The currently used instance of the {@link Manager}. + */ + static synchronized Manager getInstance() { + if (null == INSTANCE) { + INSTANCE = new Manager(); + } + + return INSTANCE; + } + + /** + * Inserts a {@link Crouton} to be displayed. + * + * @param crouton + * The {@link Crouton} to be displayed. + */ + void add(Crouton crouton) { + croutonQueue.add(crouton); + displayCrouton(); + } + + /** + * Displays the next {@link Crouton} within the queue. + */ + private void displayCrouton() { + if (croutonQueue.isEmpty()) { + return; + } + + // First peek whether the Crouton has an activity. + final Crouton currentCrouton = croutonQueue.peek(); + + // If the activity is null we poll the Crouton off the queue. + if (null == currentCrouton.getActivity()) { + croutonQueue.poll(); + } + + if (!currentCrouton.isShowing()) { + // Display the Crouton + sendMessage(currentCrouton, Messages.ADD_CROUTON_TO_VIEW); + if (null != currentCrouton.getLifecycleCallback()) { + currentCrouton.getLifecycleCallback().onDisplayed(); + } + } else { + sendMessageDelayed(currentCrouton, Messages.DISPLAY_CROUTON, calculateCroutonDuration(currentCrouton)); + } + } + + private long calculateCroutonDuration(Crouton crouton) { + long croutonDuration = crouton.getStyle().durationInMilliseconds; + croutonDuration += crouton.getInAnimation().getDuration(); + croutonDuration += crouton.getOutAnimation().getDuration(); + return croutonDuration; + } + + /** + * Sends a {@link Crouton} within a {@link Message}. + * + * @param crouton + * The {@link Crouton} that should be sent. + * @param messageId + * The {@link Message} id. + */ + private void sendMessage(Crouton crouton, final int messageId) { + final Message message = obtainMessage(messageId); + message.obj = crouton; + sendMessage(message); + } + + /** + * Sends a {@link Crouton} within a delayed {@link Message}. + * + * @param crouton + * The {@link Crouton} that should be sent. + * @param messageId + * The {@link Message} id. + * @param delay + * The delay in milliseconds. + */ + private void sendMessageDelayed(Crouton crouton, final int messageId, final long delay) { + Message message = obtainMessage(messageId); + message.obj = crouton; + sendMessageDelayed(message, delay); + } + + /* + * (non-Javadoc) + * + * @see android.os.Handler#handleMessage(android.os.Message) + */ + @Override + public void handleMessage(Message message) { + final Crouton crouton = (Crouton) message.obj; + + switch (message.what) { + case Messages.DISPLAY_CROUTON: { + displayCrouton(); + break; + } + + case Messages.ADD_CROUTON_TO_VIEW: { + addCroutonToView(crouton); + break; + } + + case Messages.REMOVE_CROUTON: { + removeCrouton(crouton); + if (null != crouton.getLifecycleCallback()) { + crouton.getLifecycleCallback().onRemoved(); + } + break; + } + + default: { + super.handleMessage(message); + break; + } + } + } + + /** + * Adds a {@link Crouton} to the {@link ViewParent} of it's {@link Activity}. + * + * @param crouton + * The {@link Crouton} that should be added. + */ + private void addCroutonToView(Crouton crouton) { + // don't add if it is already showing + if (crouton.isShowing()) { + return; + } + + View croutonView = crouton.getView(); + if (null == croutonView.getParent()) { + ViewGroup.LayoutParams params = croutonView.getLayoutParams(); + if (null == params) { + params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + } + // display Crouton in ViewGroup is it has been supplied + if (null != crouton.getViewGroup()) { + // TODO implement add to last position feature (need to align with how this will be requested for activity) + if (crouton.getViewGroup() instanceof FrameLayout) { + crouton.getViewGroup().addView(croutonView, params); + } else { + crouton.getViewGroup().addView(croutonView, 0, params); + } + } else { + Activity activity = crouton.getActivity(); + if (null == activity || activity.isFinishing()) { + return; + } + activity.addContentView(croutonView, params); + } + } + croutonView.startAnimation(crouton.getInAnimation()); + announceForAccessibilityCompat(crouton.getActivity(), crouton.getText()); + if (Style.DURATION_INFINITE != crouton.getStyle().durationInMilliseconds) { + sendMessageDelayed(crouton, Messages.REMOVE_CROUTON, + crouton.getStyle().durationInMilliseconds + crouton.getInAnimation().getDuration()); + } + } + + /** + * Removes the {@link Crouton}'s view after it's display + * durationInMilliseconds. + * + * @param crouton + * The {@link Crouton} added to a {@link ViewGroup} and should be + * removed. + */ + protected void removeCrouton(Crouton crouton) { + View croutonView = crouton.getView(); + ViewGroup croutonParentView = (ViewGroup) croutonView.getParent(); + + if (null != croutonParentView) { + croutonView.startAnimation(crouton.getOutAnimation()); + + // Remove the Crouton from the queue. + Crouton removed = croutonQueue.poll(); + + // Remove the crouton from the view's parent. + croutonParentView.removeView(croutonView); + if (null != removed) { + removed.detachActivity(); + removed.detachViewGroup(); + if (null != removed.getLifecycleCallback()) { + removed.getLifecycleCallback().onRemoved(); + } + removed.detachLifecycleCallback(); + } + + // Send a message to display the next crouton but delay it by the out + // animation duration to make sure it finishes + sendMessageDelayed(crouton, Messages.DISPLAY_CROUTON, crouton.getOutAnimation().getDuration()); + } + } + + /** + * Removes a {@link Crouton} immediately, even when it's currently being + * displayed. + * + * @param crouton + * The {@link Crouton} that should be removed. + */ + void removeCroutonImmediately(Crouton crouton) { + // if Crouton has already been displayed then it may not be in the queue (because it was popped). + // This ensures the displayed Crouton is removed from its parent immediately, whether another instance + // of it exists in the queue or not. + // Note: crouton.isShowing() is false here even if it really is showing, as croutonView object in + // Crouton seems to be out of sync with reality! + if (null != crouton.getActivity() && null != crouton.getView() && null != crouton.getView().getParent()) { + ((ViewGroup) crouton.getView().getParent()).removeView(crouton.getView()); + + // remove any messages pending for the crouton + removeAllMessagesForCrouton(crouton); + } + // remove any matching croutons from queue + if (null != croutonQueue) { + final Iterator croutonIterator = croutonQueue.iterator(); + while (croutonIterator.hasNext()) { + final Crouton c = croutonIterator.next(); + if (c.equals(crouton) && (null != c.getActivity())) { + // remove the crouton from the content view + if (crouton.isShowing()) { + ((ViewGroup) c.getView().getParent()).removeView(c.getView()); + } + + // remove any messages pending for the crouton + removeAllMessagesForCrouton(c); + + // remove the crouton from the queue + croutonIterator.remove(); + + // we have found our crouton so just break + break; + } + } + } + } + + /** + * Removes all {@link Crouton}s from the queue. + */ + void clearCroutonQueue() { + removeAllMessages(); + + if (null != croutonQueue) { + // remove any views that may already have been added to the activity's + // content view + for (Crouton crouton : croutonQueue) { + if (crouton.isShowing()) { + ((ViewGroup) crouton.getView().getParent()).removeView(crouton.getView()); + } + } + croutonQueue.clear(); + } + } + + /** + * Removes all {@link Crouton}s for the provided activity. This will remove + * crouton from {@link Activity}s content view immediately. + */ + void clearCroutonsForActivity(Activity activity) { + if (null != croutonQueue) { + Iterator croutonIterator = croutonQueue.iterator(); + while (croutonIterator.hasNext()) { + Crouton crouton = croutonIterator.next(); + if ((null != crouton.getActivity()) && crouton.getActivity().equals(activity)) { + // remove the crouton from the content view + if (crouton.isShowing()) { + ((ViewGroup) crouton.getView().getParent()).removeView(crouton.getView()); + } + + removeAllMessagesForCrouton(crouton); + + // remove the crouton from the queue + croutonIterator.remove(); + } + } + } + } + + private void removeAllMessages() { + removeMessages(Messages.ADD_CROUTON_TO_VIEW); + removeMessages(Messages.DISPLAY_CROUTON); + removeMessages(Messages.REMOVE_CROUTON); + } + + private void removeAllMessagesForCrouton(Crouton crouton) { + removeMessages(Messages.ADD_CROUTON_TO_VIEW, crouton); + removeMessages(Messages.DISPLAY_CROUTON, crouton); + removeMessages(Messages.REMOVE_CROUTON, crouton); + + } + + /** + * Generates and dispatches an SDK-specific spoken announcement. + *

      + * For backwards compatibility, we're constructing an event from scratch + * using the appropriate event type. If your application only targets SDK + * 16+, you can just call View.announceForAccessibility(CharSequence). + *

      + *

      + * note: AccessibilityManager is only available from API lvl 4. + *

      + * Adapted from https://http://eyes-free.googlecode.com/files/accessibility_codelab_demos_v2_src.zip + * via https://github.com/coreform/android-formidable-validation + * + * @param context + * Used to get {@link AccessibilityManager} + * @param text + * The text to announce. + */ + public static void announceForAccessibilityCompat(Context context, CharSequence text) { + if (Build.VERSION.SDK_INT >= 4) { + AccessibilityManager accessibilityManager = (AccessibilityManager) context.getSystemService( + Context.ACCESSIBILITY_SERVICE); + if (!accessibilityManager.isEnabled()) { + return; + } + + // Prior to SDK 16, announcements could only be made through FOCUSED + // events. Jelly Bean (SDK 16) added support for speaking text verbatim + // using the ANNOUNCEMENT event type. + final int eventType; + if (Build.VERSION.SDK_INT < 16) { + eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED; + } else { + eventType = AccessibilityEventCompat.TYPE_ANNOUNCEMENT; + } + + // Construct an accessibility event with the minimum recommended + // attributes. An event without a class name or package may be dropped. + final AccessibilityEvent event = AccessibilityEvent.obtain(eventType); + event.getText().add(text); + event.setClassName(Manager.class.getName()); + event.setPackageName(context.getPackageName()); + + // Sends the event directly through the accessibility manager. If your + // application only targets SDK 14+, you should just call + // getParent().requestSendAccessibilityEvent(this, event); + accessibilityManager.sendAccessibilityEvent(event); + } + } +} diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java new file mode 100644 index 00000000..28f2adaa --- /dev/null +++ b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java @@ -0,0 +1,539 @@ +/* + * Copyright 2012 - 2013 Benjamin Weiss + * Copyright 2012 Neofonie Mobile GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package de.keyboardsurfer.android.widget.crouton; + +import android.graphics.drawable.Drawable; +import android.view.Gravity; +import android.view.ViewGroup.LayoutParams; +import android.widget.ImageView; + + +/** + * The style for a {@link Crouton}. + */ + +public class Style { + + /** + * Display a {@link Crouton} for an infinite amount of time or + * until {@link de.keyboardsurfer.android.widget.crouton.Crouton#cancel()} has been called. + */ + public static final int DURATION_INFINITE = -1; + + /** + * Default style for alerting the user. + */ + public static final Style ALERT; + /** + * Default style for confirming an action. + */ + public static final Style CONFIRM; + /** + * Default style for general information. + */ + public static final Style INFO; + + public static final int holoRedLight = 0xffff4444; + public static final int holoGreenLight = 0xff99cc00; + public static final int holoBlueLight = 0xff33b5e5; + + static { + ALERT = new Builder().setDuration(5000).setBackgroundColorValue(holoRedLight).setHeight(LayoutParams.WRAP_CONTENT) + .build(); + CONFIRM = new Builder().setDuration(3000).setBackgroundColorValue(holoGreenLight).setHeight( + LayoutParams.WRAP_CONTENT).build(); + INFO = new Builder().setDuration(3000).setBackgroundColorValue(holoBlueLight).setHeight(LayoutParams.WRAP_CONTENT) + .build(); + } + + /** + * The durationInMilliseconds the {@link Crouton} will be displayed in + * milliseconds. + */ + final int durationInMilliseconds; + + /** + * The resource id of the backgroundResourceId. + *

      + * 0 for no backgroundResourceId. + */ + final int backgroundColorResourceId; + + /** + * The resource id of the backgroundDrawableResourceId. + *

      + * 0 for no backgroundDrawableResourceId. + */ + final int backgroundDrawableResourceId; + + /** + * The backgroundColorResourceValue's e.g. 0xffff4444; + *

      + * -1 for no value. + */ + final int backgroundColorValue; + + /** + * Whether we should isTileEnabled the backgroundResourceId or not. + */ + final boolean isTileEnabled; + + /** + * The text colorResourceId's resource id. + *

      + * 0 sets the text colorResourceId to the system theme default. + */ + final int textColorResourceId; + + /** + * The height of the {@link Crouton} in pixels. + */ + final int heightInPixels; + + /** + * Resource ID for the height of the {@link Crouton}. + */ + final int heightDimensionResId; + + /** + * The width of the {@link Crouton} in pixels. + */ + final int widthInPixels; + + /** + * Resource ID for the width of the {@link Crouton}. + */ + final int widthDimensionResId; + + /** + * The text's gravity as provided by {@link Gravity}. + */ + final int gravity; + + /** + * An additional image to display in the {@link Crouton}. + */ + final Drawable imageDrawable; + + /** + * An additional image to display in the {@link Crouton}. + */ + final int imageResId; + + /** + * The {@link ImageView.ScaleType} for the image to display in the + * {@link Crouton}. + */ + final ImageView.ScaleType imageScaleType; + + /** + * The text size in sp + *

      + * 0 sets the text size to the system theme default + */ + final int textSize; + + /** + * The text shadow color's resource id + */ + final int textShadowColorResId; + + /** + * The text shadow radius + */ + final float textShadowRadius; + + /** + * The text shadow vertical offset + */ + final float textShadowDy; + + /** + * The text shadow horizontal offset + */ + final float textShadowDx; + + /** + * The text appearance resource id for the text. + */ + final int textAppearanceResId; + + /** + * The resource id for the in animation + */ + final int inAnimationResId; + + /** + * The resource id for the out animation + */ + final int outAnimationResId; + + /** + * The padding for the crouton view content in pixels + */ + final int paddingInPixels; + + /** + * The resource id for the padding for the view content + */ + final int paddingDimensionResId; + + private Style(final Builder builder) { + this.durationInMilliseconds = builder.durationInMilliseconds; + this.backgroundColorResourceId = builder.backgroundColorResourceId; + this.backgroundDrawableResourceId = builder.backgroundDrawableResourceId; + this.isTileEnabled = builder.isTileEnabled; + this.textColorResourceId = builder.textColorResourceId; + this.heightInPixels = builder.heightInPixels; + this.heightDimensionResId = builder.heightDimensionResId; + this.widthInPixels = builder.widthInPixels; + this.widthDimensionResId = builder.widthDimensionResId; + this.gravity = builder.gravity; + this.imageDrawable = builder.imageDrawable; + this.textSize = builder.textSize; + this.textShadowColorResId = builder.textShadowColorResId; + this.textShadowRadius = builder.textShadowRadius; + this.textShadowDx = builder.textShadowDx; + this.textShadowDy = builder.textShadowDy; + this.textAppearanceResId = builder.textAppearanceResId; + this.inAnimationResId = builder.inAnimationResId; + this.outAnimationResId = builder.outAnimationResId; + this.imageResId = builder.imageResId; + this.imageScaleType = builder.imageScaleType; + this.paddingInPixels = builder.paddingInPixels; + this.paddingDimensionResId = builder.paddingDimensionResId; + this.backgroundColorValue = builder.backgroundColorValue; + } + + /** + * Builder for the {@link Style} object. + */ + public static class Builder { + private int durationInMilliseconds; + private int backgroundColorValue; + private int backgroundColorResourceId; + private int backgroundDrawableResourceId; + private boolean isTileEnabled; + private int textColorResourceId; + private int heightInPixels; + private int heightDimensionResId; + private int widthInPixels; + private int widthDimensionResId; + private int gravity; + private Drawable imageDrawable; + private int textSize; + private int textShadowColorResId; + private float textShadowRadius; + private float textShadowDx; + private float textShadowDy; + private int textAppearanceResId; + private int inAnimationResId; + private int outAnimationResId; + private int imageResId; + private ImageView.ScaleType imageScaleType; + private int paddingInPixels; + private int paddingDimensionResId; + + public Builder() { + durationInMilliseconds = 3000; + paddingInPixels = 10; + backgroundColorResourceId = android.R.color.holo_blue_light; + backgroundDrawableResourceId = 0; + backgroundColorValue = -1; + isTileEnabled = false; + textColorResourceId = android.R.color.white; + heightInPixels = LayoutParams.WRAP_CONTENT; + widthInPixels = LayoutParams.MATCH_PARENT; + gravity = Gravity.CENTER; + imageDrawable = null; + inAnimationResId = 0; + outAnimationResId = 0; + imageResId = 0; + imageScaleType = ImageView.ScaleType.FIT_XY; + } + + /** + * Set the durationInMilliseconds option of the {@link Crouton}. + * + * @param duration + * The durationInMilliseconds the crouton will be displayed + * {@link Crouton} in milliseconds. + * @return the {@link Builder}. + */ + public Builder setDuration(int duration) { + this.durationInMilliseconds = duration; + + return this; + } + + /** + * Set the backgroundColorResourceId option of the {@link Crouton}. + * + * @param backgroundColorResourceId + * The backgroundColorResourceId's resource id. + * @return the {@link Builder}. + */ + public Builder setBackgroundColor(int backgroundColorResourceId) { + this.backgroundColorResourceId = backgroundColorResourceId; + + return this; + } + + /** + * Set the backgroundColorResourceValue option of the {@link Crouton}. + * + * @param backgroundColorValue + * The backgroundColorResourceValue's e.g. 0xffff4444; + * @return the {@link Builder}. + */ + public Builder setBackgroundColorValue(int backgroundColorValue) { + this.backgroundColorValue = backgroundColorValue; + return this; + } + + /** + * Set the backgroundDrawableResourceId option for the {@link Crouton}. + * + * @param backgroundDrawableResourceId + * Resource ID of a backgroundDrawableResourceId image drawable. + * @return the {@link Builder}. + */ + public Builder setBackgroundDrawable(int backgroundDrawableResourceId) { + this.backgroundDrawableResourceId = backgroundDrawableResourceId; + + return this; + } + + /** + * Set the heightInPixels option for the {@link Crouton}. + * + * @param height + * The height of the {@link Crouton} in pixel. Can also be + * {@link LayoutParams#MATCH_PARENT} or + * {@link LayoutParams#WRAP_CONTENT}. + * @return the {@link Builder}. + */ + public Builder setHeight(int height) { + this.heightInPixels = height; + + return this; + } + + /** + * Set the resource id for the height option for the {@link Crouton}. + * + * @param heightDimensionResId + * Resource ID of a dimension for the height of the {@link Crouton}. + * @return the {@link Builder}. + */ + public Builder setHeightDimensionResId(int heightDimensionResId) { + this.heightDimensionResId = heightDimensionResId; + + return this; + } + + /** + * Set the widthInPixels option for the {@link Crouton}. + * + * @param width + * The width of the {@link Crouton} in pixel. Can also be + * {@link LayoutParams#MATCH_PARENT} or + * {@link LayoutParams#WRAP_CONTENT}. + * @return the {@link Builder}. + */ + public Builder setWidth(int width) { + this.widthInPixels = width; + + return this; + } + + /** + * Set the resource id for the width option for the {@link Crouton}. + * + * @param widthDimensionResId + * Resource ID of a dimension for the width of the {@link Crouton}. + * @return the {@link Builder}. + */ + public Builder setWidthDimensionResId(int widthDimensionResId) { + this.widthDimensionResId = widthDimensionResId; + + return this; + } + + /** + * Set the isTileEnabled option for the {@link Crouton}. + * + * @param isTileEnabled + * true if you want the backgroundResourceId to be + * tiled, else false. + * @return the {@link Builder}. + */ + public Builder setTileEnabled(boolean isTileEnabled) { + this.isTileEnabled = isTileEnabled; + + return this; + } + + /** + * Set the textColorResourceId option for the {@link Crouton}. + * + * @param textColor + * The resource id of the text colorResourceId. + * @return the {@link Builder}. + */ + public Builder setTextColor(int textColor) { + this.textColorResourceId = textColor; + + return this; + } + + /** + * Set the gravity option for the {@link Crouton}. + * + * @param gravity + * The text's gravity as provided by {@link Gravity}. + * @return the {@link Builder}. + */ + public Builder setGravity(int gravity) { + this.gravity = gravity; + + return this; + } + + /** + * Set the image option for the {@link Crouton}. + * + * @param imageDrawable + * An additional image to display in the {@link Crouton}. + * @return the {@link Builder}. + */ + public Builder setImageDrawable(Drawable imageDrawable) { + this.imageDrawable = imageDrawable; + + return this; + } + + /** + * Set the image resource option for the {@link Crouton}. + * + * @param imageResId + * An additional image to display in the {@link Crouton}. + * @return the {@link Builder}. + */ + public Builder setImageResource(int imageResId) { + this.imageResId = imageResId; + + return this; + } + + /** + * The text size in sp + */ + public Builder setTextSize(int textSize) { + this.textSize = textSize; + return this; + } + + /** + * The text shadow color's resource id + */ + public Builder setTextShadowColor(int textShadowColorResId) { + this.textShadowColorResId = textShadowColorResId; + return this; + } + + /** + * The text shadow radius + */ + public Builder setTextShadowRadius(float textShadowRadius) { + this.textShadowRadius = textShadowRadius; + return this; + } + + /** + * The text shadow horizontal offset + */ + public Builder setTextShadowDx(float textShadowDx) { + this.textShadowDx = textShadowDx; + return this; + } + + /** + * The text shadow vertical offset + */ + public Builder setTextShadowDy(float textShadowDy) { + this.textShadowDy = textShadowDy; + return this; + } + + /** + * The text appearance resource id for the text. + */ + public Builder setTextAppearance(int textAppearanceResId) { + this.textAppearanceResId = textAppearanceResId; + return this; + } + + /** + * The resource id for the in animation + */ + public Builder setInAnimation(int inAnimationResId) { + this.inAnimationResId = inAnimationResId; + return this; + } + + /** + * The resource id for the out animation + */ + public Builder setOutAnimation(int outAnimationResId) { + this.outAnimationResId = outAnimationResId; + return this; + } + + /** + * The {@link android.widget.ImageView.ScaleType} for the image + */ + public Builder setImageScaleType(ImageView.ScaleType imageScaleType) { + this.imageScaleType = imageScaleType; + return this; + } + + /** + * The padding for the crouton view's content in pixels + */ + public Builder setPaddingInPixels(int padding) { + this.paddingInPixels = padding; + return this; + } + + /** + * The resource id for the padding for the crouton view's content + */ + public Builder setPaddingDimensionResId(int paddingResId) { + this.paddingDimensionResId = paddingResId; + return this; + } + + /** + * @return a configured {@link Style} object. + */ + public Style build() { + return new Style(this); + } + } +} diff --git a/external/Crouton/pom.xml b/external/Crouton/pom.xml new file mode 100644 index 00000000..a56203e5 --- /dev/null +++ b/external/Crouton/pom.xml @@ -0,0 +1,102 @@ + + + + + + 4.0.0 + + Crouton Parent + crouton-parent + 1.7 + de.keyboardsurfer.android.widget + pom + + + + keyboardsurfer + Benjamin Weiss + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + git@github.com:keyboardsurfer/Crouton.git + scm:git:git@github.com:keyboardsurfer/Crouton.git + scm:git:git@github.com:keyboardsurfer/Crouton.git + + + + library + sample + + + + UTF-8 + 4.1.1.4 + 16 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.5.1 + + 1.6 + 1.6 + + + + org.apache.maven.plugins + maven-source-plugin + 2.2 + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9 + + + com.jayway.maven.plugins.android.generation2 + android-maven-plugin + 3.4.1 + true + + + ${android.version.platform} + + true + true + + + + + + + From b46bac998a9374ee591206ec76eeaa4251dae4e2 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 21 Mar 2013 16:35:15 +0100 Subject: [PATCH 23/60] Fix various layout issues. --- core/res/drawable/loading_progress.xml | 16 ++--- core/res/layout/dialog_about.xml | 4 +- core/res/layout/fragment_details.xml | 11 +-- core/res/layout/fragment_torrents.xml | 17 ++++- core/res/menu/activity_torrents.xml | 2 +- core/res/menu/fragment_details_file.xml | 12 ++-- core/res/values/strings.xml | 10 ++- core/res/xml/pref_system.xml | 8 +++ .../transdroid/core/gui/TorrentsActivity.java | 22 +++--- .../transdroid/core/gui/TorrentsFragment.java | 67 +++++++++++++------ .../core/gui/lists/TorrentDetailsView.java | 1 + .../core/gui/lists/TorrentFileView.java | 4 +- .../core/gui/navigation/NavigationHelper.java | 28 +++----- .../gui/settings/SystemSettingsActivity.java | 18 +++++ full/AndroidManifest.xml | 2 +- lite/AndroidManifest.xml | 2 +- 16 files changed, 138 insertions(+), 86 deletions(-) diff --git a/core/res/drawable/loading_progress.xml b/core/res/drawable/loading_progress.xml index 3ac28bc2..222cc87e 100644 --- a/core/res/drawable/loading_progress.xml +++ b/core/res/drawable/loading_progress.xml @@ -1,13 +1,5 @@ - - - - - - - \ No newline at end of file + diff --git a/core/res/layout/dialog_about.xml b/core/res/layout/dialog_about.xml index 8866f1f0..ce92e4a2 100644 --- a/core/res/layout/dialog_about.xml +++ b/core/res/layout/dialog_about.xml @@ -32,7 +32,7 @@ android:layout_marginTop="@dimen/margin_default" android:fontFamily="sans-serif-condensed" android:gravity="center" - android:text="@string/app_developer" + android:text="@string/system_developer" android:textColor="@android:color/white" android:textSize="18sp" /> @@ -43,6 +43,6 @@ android:layout_marginBottom="@dimen/margin_default" android:layout_marginTop="4dip" android:gravity="center" - android:text="@string/app_license" /> + android:text="@string/system_license" /> \ No newline at end of file diff --git a/core/res/layout/fragment_details.xml b/core/res/layout/fragment_details.xml index 1aaefcce..5992426c 100644 --- a/core/res/layout/fragment_details.xml +++ b/core/res/layout/fragment_details.xml @@ -8,9 +8,9 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:choiceMode="multipleChoiceModal" - android:listSelector="@drawable/selectable_background_transdroid" android:divider="@null" android:dividerHeight="0dip" + android:listSelector="@drawable/selectable_background_transdroid" android:visibility="gone" /> - + - + \ No newline at end of file diff --git a/core/res/layout/fragment_torrents.xml b/core/res/layout/fragment_torrents.xml index a72b0fe4..0b050e73 100644 --- a/core/res/layout/fragment_torrents.xml +++ b/core/res/layout/fragment_torrents.xml @@ -17,8 +17,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:indeterminate="true" - android:indeterminateOnly="true" android:indeterminateDrawable="@drawable/loading_progress" + android:indeterminateOnly="true" android:visibility="visible" /> + + diff --git a/core/res/menu/activity_torrents.xml b/core/res/menu/activity_torrents.xml index 1f081fe1..7f31ad68 100644 --- a/core/res/menu/activity_torrents.xml +++ b/core/res/menu/activity_torrents.xml @@ -15,7 +15,7 @@ android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:showAsAction="always" - android:title="@string/action_settings"/> + android:title="@string/action_search"/> \ No newline at end of file diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml index 12b0e1cb..21b63d75 100644 --- a/core/res/values/strings.xml +++ b/core/res/values/strings.xml @@ -52,7 +52,7 @@ Active Inactive - Status: %1%s + Status: %1$s Waiting to check… Verifying local data… Waiting to download %s @@ -103,7 +103,6 @@ Torrent search Search for torrents - Servers Add new server @@ -257,10 +256,9 @@ File does not seem to contain Transdroid settings There is no settings file found - Transdroid - \u00A9 Eric Kok, 2312 development - Published under GNU General Public License v3 + Transdroid + \u00A9 Eric Kok, 2312 development + Published under GNU General Public License v3 Manage your torrents from your Android device - LIBRARIES \ No newline at end of file diff --git a/core/res/xml/pref_system.xml b/core/res/xml/pref_system.xml index 8968dc62..27bea173 100644 --- a/core/res/xml/pref_system.xml +++ b/core/res/xml/pref_system.xml @@ -16,6 +16,14 @@ android:key="system_installhelp" android:title="@string/pref_installhelp" /> + + + + diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index 17e0e8e1..d6b007b6 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -261,7 +261,11 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi // Update connection to the newly selected server and refresh currentConnection = server.createServerAdapter(); applicationSettings.setLastUsedServer(server); - clearScreens(); + // Clear the currently shown list of torrent and perhaps the details + fragmentTorrents.clear(); + if (fragmentDetails != null) { + fragmentDetails.clear(); + } updateFragmentVisibility(true); refreshTorrents(); return; @@ -311,7 +315,8 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @OptionsItem(resName = "action_refresh") protected void refreshScreen() { refreshTorrents(); - getAdditionalStats(); + if (Daemon.supportsStats(currentConnection.getType())) + getAdditionalStats(); } @OptionsItem(resName = "action_enableturtle") @@ -334,14 +339,6 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.transdroid.org/download/"))); } - private void clearScreens() { - // Clear the currently shown list of torrent and perhaps the details - fragmentTorrents.clear(); - if (fragmentDetails != null) { - fragmentDetails.clear(); - } - } - @Background protected void refreshTorrents() { fragmentTorrents.updateIsLoading(true); @@ -479,8 +476,9 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @UiThread protected void onCommunicationError(DaemonTaskFailureResult result) { Log.i(this, result.getException().toString()); - Crouton.showText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())), - navigationHelper.CROUTON_ERROR_STYLE); + String error = getString(LocalTorrent.getResourceForDaemonException(result.getException())); + Crouton.showText(this, error, navigationHelper.CROUTON_ERROR_STYLE); + fragmentTorrents.updateError(error); } @UiThread diff --git a/core/src/org/transdroid/core/gui/TorrentsFragment.java b/core/src/org/transdroid/core/gui/TorrentsFragment.java index 0a046aad..050079c4 100644 --- a/core/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/core/src/org/transdroid/core/gui/TorrentsFragment.java @@ -25,7 +25,7 @@ import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.SherlockListView; import com.actionbarsherlock.view.SherlockListView.MultiChoiceModeListenerCompat; -@EFragment(resName="fragment_torrents") +@EFragment(resName = "fragment_torrents") public class TorrentsFragment extends SherlockFragment { // Local data @@ -36,16 +36,20 @@ public class TorrentsFragment extends SherlockFragment { @InstanceState protected boolean hasAConnection = false; @InstanceState - protected boolean isLoading = false; + protected boolean isLoading = true; + @InstanceState + protected String connectionErrorMessage = null; // Views - @ViewById(resName="torrent_list") + @ViewById(resName = "torrent_list") protected SherlockListView torrentsList; @ViewById protected TextView emptyText; @ViewById protected TextView nosettingsText; @ViewById + protected TextView errorText; + @ViewById protected ProgressBar loadingProgress; @AfterViews @@ -69,6 +73,7 @@ public class TorrentsFragment extends SherlockFragment { * Clear currently visible list of torrents */ public void clear() { + this.connectionErrorMessage = null; updateTorrents(null); } @@ -89,26 +94,26 @@ public class TorrentsFragment extends SherlockFragment { } updateViewVisibility(); } - + private MultiChoiceModeListenerCompat onTorrentsSelected = new MultiChoiceModeListenerCompat() { - + @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { // Show contextual action bar to start/stop/remove/etc. torrents in batch mode mode.getMenuInflater().inflate(R.menu.fragment_torrents_cab, menu); return true; } - + @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - + // Get checked torrents List checked = new ArrayList(); for (int i = 0; i < torrentsList.getCheckedItemPositions().size(); i++) { if (torrentsList.getCheckedItemPositions().get(i)) checked.add((Torrent) torrentsList.getAdapter().getItem(i)); } - + int itemId = item.getItemId(); if (itemId == R.id.action_resume) { for (Torrent torrent : checked) { @@ -142,7 +147,7 @@ public class TorrentsFragment extends SherlockFragment { return false; } } - + @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { // TODO: Update title or otherwise show number of selected torrents? @@ -152,14 +157,14 @@ public class TorrentsFragment extends SherlockFragment { public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } - + @Override public void onDestroyActionMode(ActionMode mode) { } - + }; - @ItemClick(resName="torrent_list") + @ItemClick(resName = "torrent_list") protected void torrentsListClicked(Torrent torrent) { DetailsActivity_.intent(getActivity()).torrent(torrent).start(); } @@ -171,8 +176,11 @@ public class TorrentsFragment extends SherlockFragment { */ public void updateConnectionStatus(boolean hasAConnection) { this.hasAConnection = hasAConnection; - if (!hasAConnection) - clear(); + if (!hasAConnection) { + clear(); // Indirectly also calls updateViewVisibility() + } else { + updateViewVisibility(); + } } /** @@ -181,8 +189,26 @@ public class TorrentsFragment extends SherlockFragment { */ public void updateIsLoading(boolean isLoading) { this.isLoading = isLoading; - if (isLoading) - clear(); + if (isLoading) { + clear(); // Indirectly also calls updateViewVisibility() + } else { + updateViewVisibility(); + } + } + + /** + * Updates the shown screen depending on whether a connection error occurred + * @param connectionErrorMessage The error message from the last failed connection attempt, or null to clear the + * visible error text + */ + public void updateError(String connectionErrorMessage) { + this.connectionErrorMessage = connectionErrorMessage; + errorText.setText(connectionErrorMessage); + if (connectionErrorMessage != null) { + clear(); // Indirectly also calls updateViewVisibility() + } else { + updateViewVisibility(); + } } @UiThread @@ -191,14 +217,17 @@ public class TorrentsFragment extends SherlockFragment { torrentsList.setVisibility(View.GONE); emptyText.setVisibility(View.GONE); loadingProgress.setVisibility(View.GONE); + errorText.setVisibility(View.GONE); nosettingsText.setVisibility(View.VISIBLE); return; } boolean isEmpty = torrents == null || torrentsList.getAdapter().isEmpty(); + boolean hasError = connectionErrorMessage == null; nosettingsText.setVisibility(View.GONE); - torrentsList.setVisibility(!isLoading && !isEmpty? View.GONE: View.VISIBLE); - loadingProgress.setVisibility(isLoading? View.VISIBLE: View.GONE); - emptyText.setVisibility(!isLoading && isEmpty? View.VISIBLE: View.GONE); + errorText.setVisibility(hasError? View.VISIBLE : View.GONE); + torrentsList.setVisibility(!hasError && !isLoading && !isEmpty ? View.GONE : View.VISIBLE); + loadingProgress.setVisibility(!hasError && isLoading ? View.VISIBLE : View.GONE); + emptyText.setVisibility(!hasError && !isLoading && isEmpty ? View.VISIBLE : View.GONE); } /** diff --git a/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java b/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java index 94b04601..61ce87d0 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java +++ b/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java @@ -63,6 +63,7 @@ public class TorrentDetailsView extends RelativeLayout { } else { dateaddedText.setVisibility(View.INVISIBLE); } + statusText.setText(getResources().getString(R.string.status_status, local.getProgressStatusEta(getResources()))); ratioText.setText(getResources().getString(R.string.status_ratio, local.getRatioString())); // TODO: Implement separate numbers of seeders and leechers diff --git a/core/src/org/transdroid/core/gui/lists/TorrentFileView.java b/core/src/org/transdroid/core/gui/lists/TorrentFileView.java index bf00cb0e..d4eab7ff 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentFileView.java +++ b/core/src/org/transdroid/core/gui/lists/TorrentFileView.java @@ -33,11 +33,11 @@ public class TorrentFileView extends CheckableRelativeLayout { switch (torrentFile.getPriority()) { case Off: priorityImage.setImageResource(R.drawable.ic_priority_off); - priorityImage.setContentDescription(getResources().getString(R.string.status_priority_low)); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_off)); break; case Low: priorityImage.setImageResource(R.drawable.ic_priority_low); - priorityImage.setContentDescription(getResources().getString(R.string.status_priority_normal)); + priorityImage.setContentDescription(getResources().getString(R.string.status_priority_low)); break; case Normal: priorityImage.setImageResource(R.drawable.ic_priority_normal); diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java index 54025480..431672d8 100644 --- a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java +++ b/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -5,11 +5,10 @@ import org.androidannotations.annotations.RootContext; import org.transdroid.core.R; import android.annotation.SuppressLint; -import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; -import android.os.Build; +import de.keyboardsurfer.android.widget.crouton.Crouton; import de.keyboardsurfer.android.widget.crouton.Style; /** @@ -24,10 +23,17 @@ public class NavigationHelper { @RootContext protected Context context; + /** + * Use with {@link Crouton#showText(android.app.Activity, int, Style)} (and variants) to display error messages. + */ public Style CROUTON_ERROR_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_error).setTextSize(13) - .build(); + .setDuration(2500).build(); + + /** + * Use with {@link Crouton#showText(android.app.Activity, int, Style)} (and variants) to display info messages. + */ public Style CROUTON_INFO_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_info).setTextSize(13) - .build(); + .setDuration(1500).build(); /** * Whether any search-related UI components should be shown in the interface. At the moment returns false only if we @@ -72,18 +78,4 @@ public class NavigationHelper { return !context.getPackageName().equals("org.transdroid.lite"); } - /** - * Whether the navigation of server types and labels as filter are shown in a separate fragment. - * @return True if navigation is in a separate fragment, false if the items are shown in the action bar spinner - */ - @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) - public boolean showFiltersInFragment() { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { - if (context.getResources().getConfiguration().screenWidthDp >= 600) { - return true; - } - } - return false; - } - } diff --git a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java index 61768852..494da615 100644 --- a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -40,6 +40,8 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { findPreference("system_sendlog").setOnPreferenceClickListener(onSendLogClick); findPreference("system_installhelp").setOnPreferenceClickListener(onInstallHelpClick); findPreference("system_changelog").setOnPreferenceClickListener(onChangeLogClick); + findPreference("system_importsettings").setOnPreferenceClickListener(onImportSettingsClick); + findPreference("system_exportsettings").setOnPreferenceClickListener(onExportSettingsClick); findPreference("system_about").setOnPreferenceClickListener(onAboutClick); } @@ -59,6 +61,22 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { } }; + private OnPreferenceClickListener onImportSettingsClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + // TODO: Allow import of settings + return true; + } + }; + + private OnPreferenceClickListener onExportSettingsClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + // TODO: Allow export of settings + return true; + } + }; + private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { @SuppressWarnings("deprecation") @Override diff --git a/full/AndroidManifest.xml b/full/AndroidManifest.xml index 356bca80..3622d5fc 100644 --- a/full/AndroidManifest.xml +++ b/full/AndroidManifest.xml @@ -24,7 +24,7 @@ diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index d504abea..cfa672f5 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -24,7 +24,7 @@ From bebf5e3d2e46b92a1a16ca5877221f69ba3c2efe Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 22 Mar 2013 16:46:22 +0100 Subject: [PATCH 24/60] Added removing and fixed updating of settings. --- ...by_size.png => ic_action_sort_by_size.png} | Bin core/res/drawable-xhdpi/loading_progress.xml | 5 + core/res/menu/activity_deleteableprefs.xml | 2 +- core/res/values/strings.xml | 7 +- core/res/xml/pref_server.xml | 13 +- core/res/xml/pref_system.xml | 3 +- .../app/settings/ApplicationSettings.java | 172 ++++++++++++++-- .../core/app/settings/RssfeedSetting.java | 16 +- .../core/app/settings/ServerSetting.java | 9 +- .../core/app/settings/WebsearchSetting.java | 14 +- .../settings/KeyBoundPreferencesActivity.java | 191 ++++++++++++++++++ .../gui/settings/MainSettingsActivity.java | 9 +- .../core/gui/settings/RssfeedPreference.java | 1 + .../gui/settings/RssfeedSettingsActivity.java | 42 ++-- .../core/gui/settings/ServerPreference.java | 3 +- .../gui/settings/ServerSettingsActivity.java | 120 +++++------ .../gui/settings/WebsearchPreference.java | 1 + .../settings/WebsearchSettingsActivity.java | 40 ++-- 18 files changed, 482 insertions(+), 166 deletions(-) rename core/res/drawable-xhdpi/{action_sort_by_size.png => ic_action_sort_by_size.png} (100%) create mode 100644 core/res/drawable-xhdpi/loading_progress.xml create mode 100644 core/src/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java diff --git a/core/res/drawable-xhdpi/action_sort_by_size.png b/core/res/drawable-xhdpi/ic_action_sort_by_size.png similarity index 100% rename from core/res/drawable-xhdpi/action_sort_by_size.png rename to core/res/drawable-xhdpi/ic_action_sort_by_size.png diff --git a/core/res/drawable-xhdpi/loading_progress.xml b/core/res/drawable-xhdpi/loading_progress.xml new file mode 100644 index 00000000..222cc87e --- /dev/null +++ b/core/res/drawable-xhdpi/loading_progress.xml @@ -0,0 +1,5 @@ + + diff --git a/core/res/menu/activity_deleteableprefs.xml b/core/res/menu/activity_deleteableprefs.xml index ad353807..0d3e970e 100644 --- a/core/res/menu/activity_deleteableprefs.xml +++ b/core/res/menu/activity_deleteableprefs.xml @@ -1,7 +1,7 @@

      diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml index 21b63d75..358ecd7f 100644 --- a/core/res/values/strings.xml +++ b/core/res/values/strings.xml @@ -131,7 +131,7 @@ Local IP or host When connected to the specified local network Local network - The server\'s local (wifi) network + The server\'s local network SSID Folder Usually empty SCGI mount point @@ -169,14 +169,15 @@ System Check for updates - Check transdroidorg for latest app version + Check transdroid.org for latest app version Import settings Export settings Send error log Get support or report a bug View install guides + Available at transdroid.org/download Recent changes - About + About Transdroid BitComet Bitflu 1.2+ diff --git a/core/res/xml/pref_server.xml b/core/res/xml/pref_server.xml index c415267a..453c06b1 100644 --- a/core/res/xml/pref_server.xml +++ b/core/res/xml/pref_server.xml @@ -15,10 +15,6 @@ android:key="server_address" android:title="@string/pref_address" android:inputType="textUri" /> - + - @@ -87,7 +87,8 @@ android:key="server_os" android:title="@string/pref_os" android:entries="@array/pref_os_types" - android:entryValues="@array/pref_os_values" /> + android:entryValues="@array/pref_os_values" + android:defaultValue="type_linux" /> + android:title="@string/pref_installhelp" + android:summary="@string/pref_installhelp_info" /> servers = applicationSettings.getServerSettings(); for (ServerSetting serverSetting : servers) { diff --git a/core/src/org/transdroid/core/gui/settings/RssfeedPreference.java b/core/src/org/transdroid/core/gui/settings/RssfeedPreference.java index 59d86415..b47e4772 100644 --- a/core/src/org/transdroid/core/gui/settings/RssfeedPreference.java +++ b/core/src/org/transdroid/core/gui/settings/RssfeedPreference.java @@ -29,6 +29,7 @@ public class RssfeedPreference extends Preference { public RssfeedPreference setRssfeedSetting(RssfeedSetting rssfeedSetting) { this.rssfeedSetting = rssfeedSetting; setTitle(rssfeedSetting.getName()); + setSummary(rssfeedSetting.getHumanReadableIdentifier()); setOrder(ORDER_START + rssfeedSetting.getOrder()); return this; } diff --git a/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java index 3d5d8f3a..5c7a472b 100644 --- a/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java @@ -1,16 +1,13 @@ package org.transdroid.core.gui.settings; -import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.transdroid.core.R; -import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings_; import android.os.Bundle; -import com.actionbarsherlock.app.SherlockPreferenceActivity; - /** * Activity that allows for a configuration of some RSS feed. The key can be supplied to update an * existing RSS feed setting instead of creating a new one. @@ -18,31 +15,24 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity; */ @EActivity @OptionsMenu(resName="activity_deleteableprefs") -public class RssfeedSettingsActivity extends SherlockPreferenceActivity { - - @Extra - protected int key = -1; - - @Bean - protected ApplicationSettings applicationSettings; - - @SuppressWarnings("deprecation") - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); +public class RssfeedSettingsActivity extends KeyBoundPreferencesActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // Load the raw preferences to show in this screen - addPreferencesFromResource(R.xml.pref_rssfeed); + init(R.xml.pref_rssfeed, ApplicationSettings_.getInstance_(this).getMaxRssfeed()); + initTextPreference("rssfeed_name"); + initTextPreference("rssfeed_url"); + initBooleanPreference("rssfeed_reqauth"); - // Bind the preferences to the correct storage key, e.g. the first RSS feed setting stores its URL in the - // 'rssfeed_url_0' shared preferences field - if (key < 0) { - key = applicationSettings.getMaxRssfeed() + 1; - } - findPreference("rssfeed_name").setKey("rssfeed_name_" + key); - findPreference("rssfeed_url").setKey("rssfeed_url_" + key); - findPreference("rssfeed_reqauth").setKey("rssfeed_reqauth_" + key); + } + @OptionsItem(resName = "action_removesettings") + protected void removeSettings() { + ApplicationSettings_.getInstance_(this).removeRssfeedSettings(key); + finish(); } } diff --git a/core/src/org/transdroid/core/gui/settings/ServerPreference.java b/core/src/org/transdroid/core/gui/settings/ServerPreference.java index 0aa0bbb2..01ab0402 100644 --- a/core/src/org/transdroid/core/gui/settings/ServerPreference.java +++ b/core/src/org/transdroid/core/gui/settings/ServerPreference.java @@ -28,7 +28,8 @@ public class ServerPreference extends Preference { */ public ServerPreference setServerSetting(ServerSetting serverSetting) { this.serverSetting = serverSetting; - setTitle(serverSetting.getHumanReadableIdentifier()); + setTitle(serverSetting.getName()); + setSummary(serverSetting.getHumanReadableIdentifier()); setOrder(ORDER_START + serverSetting.getOrder()); return this; } diff --git a/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java index 9e8cceb1..70508074 100644 --- a/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java @@ -1,99 +1,77 @@ package org.transdroid.core.gui.settings; -import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.daemon.Daemon; import org.transdroid.core.R; -import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings_; +import org.transdroid.daemon.Daemon; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.Preference; -import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.EditTextPreference; import android.preference.PreferenceManager; -import com.actionbarsherlock.app.SherlockPreferenceActivity; - /** * Activity that allows for a configuration of a server. The key can be supplied to update an existing server setting * instead of creating a new one. * @author Eric Kok */ @EActivity -@OptionsMenu(resName="activity_deleteableprefs") -public class ServerSettingsActivity extends SherlockPreferenceActivity { +@OptionsMenu(resName = "activity_deleteableprefs") +public class ServerSettingsActivity extends KeyBoundPreferencesActivity { - @Extra - protected int key = -1; + private EditTextPreference extraPass, folder, downloadDir; - @Bean - protected ApplicationSettings applicationSettings; - - @SuppressWarnings("deprecation") @Override - protected void onCreate(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the raw preferences to show in this screen - addPreferencesFromResource(R.xml.pref_server); - - // Bind the preferences to the correct storage key, e.g. the first server setting stores its address in the - // 'server_address_0' shared preferences field - if (key < 0) { - key = applicationSettings.getMaxWebsearch() + 1; - } - findPreference("server_name").setKey("server_name_" + key); - findPreference("server_type").setKey("server_type_" + key); - findPreference("server_address").setKey("server_address_" + key); - findPreference("server_port").setKey("server_port_" + key); - findPreference("server_user").setKey("server_user_" + key); - findPreference("server_pass").setKey("server_pass_" + key); - findPreference("server_extrapass").setKey("server_extrapass_" + key); - findPreference("server_localaddress").setKey("server_localaddress_" + key); - findPreference("server_localnetwork").setKey("server_localnetwork_" + key); - findPreference("server_folder").setKey("server_folder_" + key); - findPreference("server_timeout").setKey("server_timeout_" + key); - findPreference("server_alarmfinished").setKey("server_alarmfinished_" + key); - findPreference("server_alarmnew").setKey("server_alarmnew_" + key); - findPreference("server_os").setKey("server_os_" + key); - findPreference("server_downloaddir").setKey("server_downloaddir_" + key); - findPreference("server_ftpurl").setKey("server_ftpurl_" + key); - findPreference("server_ftppass").setKey("server_ftppass_" + key); - findPreference("server_sslenabled").setKey("server_sslenabled_" + key); - findPreference("server_ssltrustall").setKey("server_ssltrustall_" + key); - findPreference("server_ssltrustall_" + key).setDependency("server_sslenabled_" + key); - findPreference("server_ssltrustkey").setKey("server_ssltrustkey_" + key); - findPreference("server_ssltrustkey_" + key).setDependency("server_sslenabled_" + key); + init(R.xml.pref_server, ApplicationSettings_.getInstance_(this).getMaxServer()); + initTextPreference("server_name"); + initListPreference("server_type"); + initTextPreference("server_address"); + initTextPreference("server_port"); + initTextPreference("server_user"); + initTextPreference("server_pass"); + extraPass = initTextPreference("server_extrapass"); + initTextPreference("server_localaddress"); + initTextPreference("server_localnetwork"); + folder = initTextPreference("server_folder"); + initTextPreference("server_timeout", "8"); + initBooleanPreference("server_alarmfinished", true); + initBooleanPreference("server_alarmnew"); + initListPreference("server_os", "type_linux"); + downloadDir = initTextPreference("server_downloaddir"); + initTextPreference("server_ftpurl"); + initTextPreference("server_ftppass"); + initBooleanPreference("server_sslenabled"); + initBooleanPreference("server_ssltrustall", false, "server_sslenabled"); + initTextPreference("server_ssltrustkey", null, "server_sslenabled"); - // Monitor preference changes - getPreferenceScreen().setOnPreferenceChangeListener(onPreferenceChangeListener); } - private OnPreferenceChangeListener onPreferenceChangeListener = new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - // TODO: This doesn't get called - updatePreferenceAvailability(); - return true; - } - }; + @OptionsItem(resName = "action_removesettings") + protected void removeSettings() { + ApplicationSettings_.getInstance_(this).removeServerSettings(key); + finish(); + } + + @Override + protected void onPreferencesChanged() { - @SuppressWarnings("deprecation") - private void updatePreferenceAvailability() { - // Use daemon factory to see if the newly selected daemon supports the feature - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - Daemon daemonType = Daemon.fromCode(prefs.getString("server_type_" + key, null)); - findPreference("server_extrapass_" + key).setEnabled(Daemon.supportsExtraPassword(daemonType)); - findPreference("server_folder_" + key).setEnabled(daemonType == null? false: Daemon.supportsCustomFolder(daemonType)); - findPreference("server_downloaddir_" + key).setEnabled(daemonType == null? false: Daemon.needsManualPathSpecified(daemonType)); - //findPreference("server_ssltrustkey_" + key).setEnabled(sslValue && !sslTAValue); - - // Adjust title texts accordingly - findPreference("server_folder_" + key).setTitle(daemonType == Daemon.rTorrent? R.string.pref_scgifolder: R.string.pref_folder); - - } - + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + Daemon daemonType = Daemon.fromCode(prefs.getString("server_type_" + key, null)); + extraPass.setEnabled(Daemon.supportsExtraPassword(daemonType)); + folder.setEnabled(daemonType == null ? false : Daemon.supportsCustomFolder(daemonType)); + downloadDir.setEnabled(daemonType == null ? false : Daemon.needsManualPathSpecified(daemonType)); + // sslTrustKey.setEnabled(sslValue && !sslTAValue); + + // Adjust title texts accordingly + folder.setTitle(daemonType == Daemon.rTorrent ? R.string.pref_scgifolder : R.string.pref_folder); + + } + } diff --git a/core/src/org/transdroid/core/gui/settings/WebsearchPreference.java b/core/src/org/transdroid/core/gui/settings/WebsearchPreference.java index a4a5d173..63550f03 100644 --- a/core/src/org/transdroid/core/gui/settings/WebsearchPreference.java +++ b/core/src/org/transdroid/core/gui/settings/WebsearchPreference.java @@ -29,6 +29,7 @@ public class WebsearchPreference extends Preference { public WebsearchPreference setWebsearchSetting(WebsearchSetting websearchSetting) { this.websearchSetting = websearchSetting; setTitle(websearchSetting.getName()); + setSummary(websearchSetting.getHumanReadableIdentifier()); setOrder(ORDER_START + websearchSetting.getOrder()); return this; } diff --git a/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java index 6d1b02cb..93c0e040 100644 --- a/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java @@ -1,16 +1,13 @@ package org.transdroid.core.gui.settings; -import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; -import org.androidannotations.annotations.Extra; +import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.transdroid.core.R; -import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ApplicationSettings_; import android.os.Bundle; -import com.actionbarsherlock.app.SherlockPreferenceActivity; - /** * Activity that allows for a configuration of a web search site. The key can be supplied to update an existing web * search site setting instead of creating a new one. @@ -18,30 +15,23 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity; */ @EActivity @OptionsMenu(resName="activity_deleteableprefs") -public class WebsearchSettingsActivity extends SherlockPreferenceActivity { - - @Extra - protected int key = -1; - - @Bean - protected ApplicationSettings applicationSettings; +public class WebsearchSettingsActivity extends KeyBoundPreferencesActivity { - @SuppressWarnings("deprecation") - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); // Load the raw preferences to show in this screen - addPreferencesFromResource(R.xml.pref_websearch); - - // Bind the preferences to the correct storage key, e.g. the first site setting stores its URL in the - // 'websearch_baseurl_0' shared preferences field - if (key < 0) { - key = applicationSettings.getMaxWebsearch() + 1; - } - findPreference("websearch_name").setKey("websearch_name_" + key); - findPreference("websearch_baseurl").setKey("websearch_baseurl_" + key); + init(R.xml.pref_websearch, ApplicationSettings_.getInstance_(this).getMaxWebsearch()); + initTextPreference("websearch_name"); + initTextPreference("websearch_baseurl"); } + @OptionsItem(resName = "action_removesettings") + protected void removeSettings() { + ApplicationSettings_.getInstance_(this).removeWebsearchSettings(key); + finish(); + } + } From 847b1f826427618caa2c5b2d37467e14be4e6c33 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 22 Mar 2013 16:51:05 +0100 Subject: [PATCH 25/60] Fix removal of settings. --- .../org/transdroid/core/app/settings/ApplicationSettings.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/org/transdroid/core/app/settings/ApplicationSettings.java b/core/src/org/transdroid/core/app/settings/ApplicationSettings.java index eae9b0be..f8ab4c15 100644 --- a/core/src/org/transdroid/core/app/settings/ApplicationSettings.java +++ b/core/src/org/transdroid/core/app/settings/ApplicationSettings.java @@ -99,7 +99,7 @@ public class ApplicationSettings { // Copy all settings higher than the supplied order number to the previous spot Editor edit = prefs.edit(); - int max = getMaxWebsearch(); + int max = getMaxServer(); for (int i = order; i < max; i++) { edit.putString("server_name_" + i, prefs.getString("server_name_" + (i + 1), null)); edit.putString("server_type_" + i, prefs.getString("server_type_" + (i + 1), null)); @@ -305,7 +305,7 @@ public class ApplicationSettings { // Copy all settings higher than the supplied order number to the previous spot Editor edit = prefs.edit(); - int max = getMaxWebsearch(); + int max = getMaxRssfeed(); for (int i = order; i < max; i++) { edit.putString("rssfeed_name_" + i, prefs.getString("rssfeed_name_" + (i + 1), null)); edit.putString("rssfeed_url_" + i, prefs.getString("rssfeed_url_" + (i + 1), null)); From 85e03cc15ba655249a2ab81a9ed624febd28e1cb Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 22 Mar 2013 17:19:22 +0100 Subject: [PATCH 26/60] Added tutle mode action bar icons. --- .../drawable-hdpi/ic_action_turtle_disabled.png | Bin 0 -> 853 bytes .../drawable-hdpi/ic_action_turtle_enabled.png | Bin 0 -> 742 bytes .../drawable-mdpi/ic_action_turtle_disabled.png | Bin 0 -> 571 bytes .../drawable-mdpi/ic_action_turtle_enabled.png | Bin 0 -> 466 bytes .../drawable-xhdpi/ic_action_turtle_disabled.png | Bin 0 -> 1225 bytes .../drawable-xhdpi/ic_action_turtle_enabled.png | Bin 0 -> 1024 bytes core/res/menu/activity_torrents.xml | 2 ++ 7 files changed, 2 insertions(+) create mode 100644 core/res/drawable-hdpi/ic_action_turtle_disabled.png create mode 100644 core/res/drawable-hdpi/ic_action_turtle_enabled.png create mode 100644 core/res/drawable-mdpi/ic_action_turtle_disabled.png create mode 100644 core/res/drawable-mdpi/ic_action_turtle_enabled.png create mode 100644 core/res/drawable-xhdpi/ic_action_turtle_disabled.png create mode 100644 core/res/drawable-xhdpi/ic_action_turtle_enabled.png diff --git a/core/res/drawable-hdpi/ic_action_turtle_disabled.png b/core/res/drawable-hdpi/ic_action_turtle_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1532eb398d80a84ae002522cecc8dd7796c77a05 GIT binary patch literal 853 zcmV-b1FHOqP)k5p!op-SxvyTYAMPC^s8*|e zUa$9iKA*3f#oHFpB7X_;ei;dq`3B=tl}hDFsZ^@9$B4EJ27@EursfJh|L@Avy}+C3`m^u_8}$o?SLORhY} z?2=U+Qvt)n!Orq7vlNyphgjGMQf;NO)<R f>k7E-unhk zScpQfP!TMw5>RYJ2nvF~&+ot#Ve@upXXcF|Fbjv}?c96joO|E=WKB!_$(FeOret8T zJD56~1n0RcHiaw72{i0nZUv(*XQidG&$aIsOO4TnsV*`9TQI04>}` zJ%1rmg=I#Yz=49|%weG0+W_KwjQC}ZQtrqzje%2M1{PWTM?_D8v3l!8hDz6fS+G}$ zTkcq~knnFLPlIP>eS9q=D>Q(3ZIQQu>sIM2{u7D!!4s;j%2#^I3=G1suM$gmkg9zN z;h$Zp$_!kGtPSXH(}-=eNZSkpy+!|Vn<48tU`|Bs|NWrZMrg*huUolI>=ne{smQw^ ztm-5>WG2YoTrkl)zU$Wc9_YmU1y+FdK!;No*jbRd8VPKd^I&u@~$~*>in*J;j zfq9)DT2Cjzrd*u<`&ztSk4pzGGsAu}i|#Ypp+?Ju=M`aOBj1L=mU&|j;ke+Xo+K9o zr-|1kOX9CFsVeXM7!$hJ>@dkM;X2_=WD;BqY$N9e7-zy;z7r}B6Ki-K1G=OkxY+xSxlY!!+u4^P)M|P29h~B5d^)}>-CF7A`wBX-l`By0Y0B^ z1WDIHGOLyxLhj1t@^L1Ud6MItPUkrGMpLQOJ$~OCb2!T#V^OfhcF z#55J)a5yF~!~35q2??X3bG3@xZnqV<5Y{koS&Z93M-JfQKJ>#Tx)+lpT(Km>#be<( zZW-Sc(D9ue0SjR_Fq;1b-5_ac41b$YF;#y}s0+{?&>fIF@BvNlt08b+3Zno3002ov JPDHLkV1g=G`+xud literal 0 HcmV?d00001 diff --git a/core/res/drawable-mdpi/ic_action_turtle_enabled.png b/core/res/drawable-mdpi/ic_action_turtle_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..576931edfa6d1fc76a6d2ebf0ed94a54e902906f GIT binary patch literal 466 zcmV;@0WJQCP)rFLiHyn>Y7-@AvzC=e>7KF5_h~_Roa?p#z}<|EmMm+9~G7A{Yiw zpak}fF>+nk^6CJ_O{i~xnG}~7_71@@LF`Xcr~xqVMsyQQDB?HNw+L~UUj zV3hh%Or*%Q44Y3ajfT`TwH442@&6=1KVoMKptVs(rG&I!J*ViBP zcsyMMyt71r1;a4@%jI%^E-o$(jg5`HtOOCt3FzqP*hU~n3B1i}KoF6Dh|9xVR&`X# zDJ7t}xp_}bP0dN1+hx~5NSLQB2D900?|N2)Dgr#Mt*xKZ>pcYSw;TL&d5Cziw6t_{ zW@hHj#Kc5K0?Um~&Z?dY0u0Lj3k-fq*$d+;E-@d5Gnvd4sv%(p*wobIWuUer7e;R@ zm6T-uTpt)1cxI+sE&-nQ_VyzfImqobGiLWa!Mudj-efX4I5{~vUrZnSL4N-n*{05o%l z2g-?NopfJCqtWk`5g>xEt*!kU<{Q^309i9)h(5&6-yk5agn-7z#(>}NKVfHsBkO%R zdSZ9UeHTA(QT}N&EK4&W7!3LXfxroXBW8dVc%Q|uNoGTw=aad)xd-Fp$jWdJjNAA&LADoV@Js_D_`Mi71^5;j18bmDU;y9e0M$D( zGV&07u{ua!rUbCd`_XKFZ$ZH(+fni9~~)^-NQcVXCL7kmxmpEK3Z zf}2-`ZAyUnsF6ygHZx>=Y<@n#@ILNHsoj?<$BN<5_ZR8)n<{OX5>U(-C%>aq#UYE1 zq;Nb5VXwI7`8&^(hfxQ{CjQD=c=l)Wc7)+0- zni#|C9w)kK{x5n&1#1h(-#rZ4kC6#;7d=!#KpMPru~=-%Zjh_VOA)|a=)|GZCCc;> z@BT_85>cCj${h}egB)YUa{JLrY%p^W@G}I6vw*Toih$0}&JfOgyW9)0E{omQ?Cfk` zJRV<=^)M2NY+hJcI9B4Uag`zXyDWCmgvo%Bsoi8s95P%&|6O)2k)1ze@K)-)J9B&k zp?g=n8-##gRoHlsAyonN?M488z`-3Nc%IjB>?*%4sd6q93T9i}hcW00000NkvXXu0mjf4o^t_ literal 0 HcmV?d00001 diff --git a/core/res/drawable-xhdpi/ic_action_turtle_enabled.png b/core/res/drawable-xhdpi/ic_action_turtle_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bf572ee3689585df3ce230ca0f493d063bb78526 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU_S2Y;uum9_jX2Xhi{lJ?}YqqAIvWTuK&=L8PbMKjoW zm7YBQ_4l<;Z{d5}-)|zn$1UGn{#X9p&h+(PgJMa9?(sPRRYBvtlGLyr7SrvX{Zn(v*R<+^xnK@+_ngm2ovk5bD)G!>m-sGDw!~KKp@;y(FR~9fT z?o-*yIz8&y-;%l4(-{kH@TW^33=4Su%Ho;rTYjx}WtPRCG%Oz&Ob{1qW=-I!;Po^9 z9(m`E9jCzBKV@^)Fe)Y5hH&XFn41uy^q$=wrxx$pG9{_(;p?zLZ( z3#K2~9mBhmYlB?#*8?wW!=KmI_#c1dyVj(_=fW)s;r<&95r1b!*fO}OZi}18x$3?3 zgB@XW50qL}@QXA0CE32)@lox8;YX3;EBYdPBviLPS2`fs%9<~uzB7Bt70EouhUI;AbK^dXI+PcD{d=^{Y!&+g=8WZa!E0PyeOTAO=kPx0 z6tHIHrJ4IAt#|Rw=8b1``IaCkmKCGNSo^;C-ij;7jnl0H$}N{R{mg z4EE+{aXKPvUTqeg6kjW;)bee%?1F&xg*>;d{+(%C&tN4M?fAc=Gwiv+lXH;<-Bo?g zH!jI8dA_5o|E`$buG}A71|rPr2PzgkC=JOft&5oG%#z#p>&UX#<=ZcWf7p2bRQsC> z&IO$UB0H@L!anTnn#RQ@&lR(Dfq(2R*)z?{wC>FVdQ&MBb@00&LQhyVZp literal 0 HcmV?d00001 diff --git a/core/res/menu/activity_torrents.xml b/core/res/menu/activity_torrents.xml index 7f31ad68..b5405114 100644 --- a/core/res/menu/activity_torrents.xml +++ b/core/res/menu/activity_torrents.xml @@ -23,11 +23,13 @@ android:title="@string/action_rss"/> Date: Thu, 4 Apr 2013 14:20:03 +0200 Subject: [PATCH 27/60] Make action bar spinner navigation appear correctly. --- core/res/layout/list_item_filter.xml | 7 ++-- core/res/layout/list_item_navigation.xml | 14 +++++--- core/res/layout/list_item_separator.xml | 13 ++++--- core/res/menu/activity_torrents.xml | 4 +-- .../transdroid/core/gui/TorrentsActivity.java | 14 +++++--- .../core/gui/lists/SimpleListItemView.java | 4 +-- .../gui/navigation/FilterListAdapter.java | 19 ++-------- .../navigation/FilterListDropDownAdapter.java | 35 +++++++++++++++++++ .../gui/navigation/FilterSeparatorView.java | 8 +++-- full/AndroidManifest.xml | 25 +++++++------ 10 files changed, 89 insertions(+), 54 deletions(-) create mode 100644 core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java diff --git a/core/res/layout/list_item_filter.xml b/core/res/layout/list_item_filter.xml index 66f6ae72..d80263a3 100644 --- a/core/res/layout/list_item_filter.xml +++ b/core/res/layout/list_item_filter.xml @@ -2,15 +2,16 @@ + android:paddingRight="@dimen/margin_default" + android:paddingTop="@dimen/margin_half" > \ No newline at end of file diff --git a/core/res/layout/list_item_navigation.xml b/core/res/layout/list_item_navigation.xml index 38868e27..1a66c39c 100644 --- a/core/res/layout/list_item_navigation.xml +++ b/core/res/layout/list_item_navigation.xml @@ -2,8 +2,7 @@ @@ -11,12 +10,17 @@ android:id="@+id/filter_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textIsSelectable="false" /> + android:textColor="@android:color/primary_text_dark" + android:textIsSelectable="false" + android:textSize="17sp" /> - + android:layout_marginTop="-4dip" + android:textColor="@android:color/primary_text_dark" + android:textIsSelectable="false" + android:textSize="13sp" /> + \ No newline at end of file diff --git a/core/res/layout/list_item_separator.xml b/core/res/layout/list_item_separator.xml index 65389da3..c844caa6 100644 --- a/core/res/layout/list_item_separator.xml +++ b/core/res/layout/list_item_separator.xml @@ -1,16 +1,15 @@ - + android:paddingLeft="@dimen/margin_half" + android:paddingRight="@dimen/margin_half" > + android:textIsSelectable="false" /> - \ No newline at end of file + \ No newline at end of file diff --git a/core/res/menu/activity_torrents.xml b/core/res/menu/activity_torrents.xml index b5405114..4256c67d 100644 --- a/core/res/menu/activity_torrents.xml +++ b/core/res/menu/activity_torrents.xml @@ -3,7 +3,7 @@ @@ -14,7 +14,7 @@ ()); + filtersList.setAdapter(navigationListAdapter); filtersList.setOnItemSelectedListener(onFilterListItemSelected); } else { // Add status types directly to the action bar spinner navigationSpinnerAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); + // Add an empty labels list (which will be updated later, but the adapter needs to be created now) + navigationSpinnerAdapter.updateLabels(new ArrayList()); } + // Now that all items (or at least their adapters) have been added + getSupportActionBar().setListNavigationCallbacks(navigationSpinnerAdapter, this); currentFilter = StatusType.getShowAllType(this); // Connect to the last used server diff --git a/core/src/org/transdroid/core/gui/lists/SimpleListItemView.java b/core/src/org/transdroid/core/gui/lists/SimpleListItemView.java index 4c8c0e42..884bdbb0 100644 --- a/core/src/org/transdroid/core/gui/lists/SimpleListItemView.java +++ b/core/src/org/transdroid/core/gui/lists/SimpleListItemView.java @@ -4,7 +4,7 @@ import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import android.content.Context; -import android.widget.LinearLayout; +import android.widget.FrameLayout; import android.widget.TextView; /** @@ -12,7 +12,7 @@ import android.widget.TextView; * @author Eric Kok */ @EViewGroup(resName="list_item_filter") -public class SimpleListItemView extends LinearLayout { +public class SimpleListItemView extends FrameLayout { @ViewById protected TextView itemText; diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java b/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java index 98a365a9..4d74869f 100644 --- a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java +++ b/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java @@ -10,9 +10,6 @@ import org.transdroid.core.gui.lists.SimpleListItemAdapter; import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.SpinnerAdapter; import com.commonsware.cwac.merge.MergeAdapter; @@ -22,14 +19,14 @@ import com.commonsware.cwac.merge.MergeAdapter; * @author Eric Kok */ @EBean -public class FilterListAdapter extends MergeAdapter implements SpinnerAdapter { +public class FilterListAdapter extends MergeAdapter { @RootContext protected Context context; private SimpleListItemAdapter serverItems = null; private SimpleListItemAdapter statusTypeItems = null; private SimpleListItemAdapter labelItems = null; - private NavigationFilterManager navigationFilterManager; + protected NavigationFilterManager navigationFilterManager; /** * Stores which screen, or manager, handles navigation selection and display @@ -88,17 +85,5 @@ public class FilterListAdapter extends MergeAdapter implements SpinnerAdapter { this.labelItems = null; } } - - @Override - public View getDropDownView(int position, View convertView, ViewGroup parent) { - NavigationSelectionView filterItemView; - if (convertView == null || !(convertView instanceof NavigationSelectionView)) { - filterItemView = NavigationSelectionView_.build(context).setNavigationFilterManager(navigationFilterManager); - } else { - filterItemView = (NavigationSelectionView) convertView; - } - filterItemView.bind(); - return filterItemView; - } } diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java b/core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java new file mode 100644 index 00000000..cf6d5f66 --- /dev/null +++ b/core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java @@ -0,0 +1,35 @@ +package org.transdroid.core.gui.navigation; + +import org.androidannotations.annotations.EBean; + +import android.view.View; +import android.view.ViewGroup; + +/** + * List adapter that holds filter items, that is, servers, view types and labels and is displayed as content to a + * Spinner instead of a ListView. + * @author Eric Kok + */ +@EBean +public class FilterListDropDownAdapter extends FilterListAdapter { + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + // This returns the item shown in the spinner + NavigationSelectionView filterItemView; + if (convertView == null || !(convertView instanceof NavigationSelectionView)) { + filterItemView = NavigationSelectionView_.build(context).setNavigationFilterManager(navigationFilterManager); + } else { + filterItemView = (NavigationSelectionView) convertView; + } + filterItemView.bind(); + return filterItemView; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + // This returns the item to show in the drop down list + return super.getView(position, convertView, parent); + } + +} diff --git a/core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java b/core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java index 3efde9a4..2a831fd2 100644 --- a/core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java +++ b/core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java @@ -4,16 +4,16 @@ import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import android.content.Context; -import android.widget.LinearLayout; +import android.widget.AbsListView; +import android.widget.FrameLayout; import android.widget.TextView; /** * A list item that shows a sub header or separator (in underlined Holo style). - * * @author Eric Kok */ @EViewGroup(resName="list_item_separator") -public class FilterSeparatorView extends LinearLayout { +public class FilterSeparatorView extends FrameLayout { protected String text; @@ -31,6 +31,8 @@ public class FilterSeparatorView extends LinearLayout { */ public FilterSeparatorView setText(String text) { separatorText.setText(text); + setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, + AbsListView.LayoutParams.WRAP_CONTENT)); return this; } diff --git a/full/AndroidManifest.xml b/full/AndroidManifest.xml index 3622d5fc..df27dcf0 100644 --- a/full/AndroidManifest.xml +++ b/full/AndroidManifest.xml @@ -19,8 +19,11 @@ - - + + + + android:label="@string/app_name" + android:theme="@style/TransdroidTheme" + android:uiOptions="splitActionBarWhenNarrow" > @@ -45,13 +48,13 @@ + android:value="org.transdroid.core.gui.SearchActivity_" /> + android:theme="@style/TransdroidTheme" + android:uiOptions="splitActionBarWhenNarrow" > @@ -62,12 +65,12 @@ - + From fb9f19500f0929efef7b5ddf4d65d2d01f93003b Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Thu, 4 Apr 2013 15:20:05 +0200 Subject: [PATCH 28/60] rTorrent adapter should return the labels that it encountered during torrents retrieval. --- .../transdroid/core/gui/TorrentsActivity.java | 4 ++- .../gui/navigation/FilterListAdapter.java | 27 ++++++++++++++---- .../transdroid/core/gui/navigation/Label.java | 15 +++++++++- .../daemon/Rtorrent/RtorrentAdapter.java | 28 ++++++++++++++----- 4 files changed, 60 insertions(+), 14 deletions(-) diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index 500bd586..168e9024 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -109,8 +109,10 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi navigationSpinnerAdapter = FilterListDropDownAdapter_.getInstance_(this).setNavigationFilterManager(this); // Servers are always added to the action bar spinner navigationSpinnerAdapter.updateServers(applicationSettings.getServerSettings()); + + // Check if there was room for a dedicated filter list (i.e. on tablets) if (filtersList != null) { - // There was room for a dedicated filter list; create adapter and add the status types + // Create dedicated side list adapter and add the status types navigationListAdapter = FilterListAdapter_.getInstance_(this); navigationListAdapter.updateStatusTypes(StatusType.getAllStatusTypes(this)); // Add an empty labels list (which will be updated later, but the adapter needs to be created now) diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java b/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java index 4d74869f..5b904d2c 100644 --- a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java +++ b/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java @@ -10,6 +10,7 @@ import org.transdroid.core.gui.lists.SimpleListItemAdapter; import org.transdroid.core.gui.navigation.NavigationSelectionView.NavigationFilterManager; import android.content.Context; +import android.view.View; import com.commonsware.cwac.merge.MergeAdapter; @@ -27,6 +28,9 @@ public class FilterListAdapter extends MergeAdapter { private SimpleListItemAdapter statusTypeItems = null; private SimpleListItemAdapter labelItems = null; protected NavigationFilterManager navigationFilterManager; + private FilterSeparatorView statusTypeSeparator; + private FilterSeparatorView labelSeperator; + private FilterSeparatorView serverSeparator; /** * Stores which screen, or manager, handles navigation selection and display @@ -37,19 +41,23 @@ public class FilterListAdapter extends MergeAdapter { this.navigationFilterManager = manager; return this; } - + /** * Update the list of available servers * @param servers The new list of available servers */ public void updateServers(List servers) { if (this.serverItems == null && servers != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)), false); + serverSeparator = FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_servers)); + serverSeparator.setVisibility(serverItems.isEmpty()? View.GONE: View.VISIBLE); + addView(serverSeparator, false); this.serverItems = new SimpleListItemAdapter(context, servers); addAdapter(serverItems); } else if (this.serverItems != null && servers != null) { + serverSeparator.setVisibility(serverItems.isEmpty()? View.GONE: View.VISIBLE); this.serverItems.update(servers); } else { + serverSeparator.setVisibility(View.GONE); this.serverItems = null; } } @@ -60,12 +68,17 @@ public class FilterListAdapter extends MergeAdapter { */ public void updateStatusTypes(List statusTypes) { if (this.statusTypeItems == null && statusTypes != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_status)), false); + statusTypeSeparator = FilterSeparatorView_.build(context).setText( + context.getString(R.string.navigation_status)); + statusTypeSeparator.setVisibility(statusTypeItems.isEmpty()? View.GONE: View.VISIBLE); + addView(statusTypeSeparator, false); this.statusTypeItems = new SimpleListItemAdapter(context, statusTypes); addAdapter(statusTypeItems); } else if (this.statusTypeItems != null && statusTypes != null) { + statusTypeSeparator.setVisibility(statusTypeItems.isEmpty()? View.GONE: View.VISIBLE); this.statusTypeItems.update(statusTypes); } else { + statusTypeSeparator.setVisibility(View.GONE); this.statusTypeItems = null; } } @@ -76,14 +89,18 @@ public class FilterListAdapter extends MergeAdapter { */ public void updateLabels(List labels) { if (this.labelItems == null && labels != null) { - addView(FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)), false); + labelSeperator = FilterSeparatorView_.build(context).setText(context.getString(R.string.navigation_labels)); + labelSeperator.setVisibility(labelItems.isEmpty()? View.GONE: View.VISIBLE); + addView(labelSeperator, false); this.labelItems = new SimpleListItemAdapter(context, labels); addAdapter(labelItems); } else if (this.serverItems != null && labels != null) { + labelSeperator.setVisibility(labelItems.isEmpty()? View.GONE: View.VISIBLE); this.labelItems.update(labels); } else { + labelSeperator.setVisibility(View.GONE); this.labelItems = null; } } - + } diff --git a/core/src/org/transdroid/core/gui/navigation/Label.java b/core/src/org/transdroid/core/gui/navigation/Label.java index 748d3a7e..04154b7d 100644 --- a/core/src/org/transdroid/core/gui/navigation/Label.java +++ b/core/src/org/transdroid/core/gui/navigation/Label.java @@ -1,5 +1,8 @@ package org.transdroid.core.gui.navigation; +import java.util.ArrayList; +import java.util.List; + import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.daemon.Torrent; @@ -10,7 +13,7 @@ import android.os.Parcelable; * Represents some label that is active or available on the server. * @author Eric Kok */ -public class Label implements SimpleListItem, NavigationFilter { +public class Label extends org.transdroid.daemon.Label implements SimpleListItem, NavigationFilter { private final String name; @@ -28,6 +31,16 @@ public class Label implements SimpleListItem, NavigationFilter { return torrent.getLabelName() != null && torrent.getLabelName().equals(name); } + public static List

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%0DYsi_tDGLXD77?~ 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 z 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 Gy8i>d9Yb;e literal 0 HcmV?d00001 diff --git a/lite/libs/androidannotations-api-3.0-SNAPSHOT.jar b/lite/libs/androidannotations-api-3.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..bf0bfae584bfc41368267671fa0063c0c4bb87a2 GIT binary patch literal 43730 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 osO?>%6_kF4K&L`9r|n3#ts(U@pVoQ)(ZPc(6i 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 literal 0 HcmV?d00001 diff --git a/lite/res/drawable-xhdpi/ic_launcher.png b/lite/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..71c6d760f05183ef8a47c614d8d13380c8528499 GIT binary patch literal 14383 zcmV+~IMBz5P)>IR{Zx9EA~4K?jU8DyU!%BVu|c#=(H1 zIAFva(2=Yn8AKWhO=@Vm>As!A%_mpwu-+fLs?Ir051^0kZ=Q9(`cB=t=bYMm<@H-@ z?@QQC#}7(lHuiOKOg-hI-&yJQ@X z>38Dx`mgcs{{O@!m2+^EdNUPDF+a6!8!8*d@!BI^jeED=gH;btqEI5d{e*jVDP7bq z{q~MSBE(fsoQg6}7k95+Ji!s3$poDp-qlOkXAwnM{3JB1P1P!!MLkm@C24>Si7~v(J@mNzG-t<6(_#~IP~Z}QN`;~#%u^^ zBv=E1KsZ>EXwWhEA%MjWSj+&p1YiKMScFGKjPH_0g9QS9!hVpahud$BNHq6km8f&$y)VmTQ`qJPd+?0zVd*nDN_N;fDC>PCKgkkd- zF&a`~zS4LCy*S)Om}M0r157c%Vz&|}g=6?|;XWKwAQT*MxQ#H?lrYWC!I5q;pTUZZ zoF|S^mMxt;_qPCIXf(txX5a0Ww;uk~=vd{jwJXPI%UbvK`FqRT9{O`bUiO)BJM_2% z(XOY!tbcIB+EHv;)4J*BV9|&y5&#Sa0{{$SB&foHK?p!lAcP=9mJn^Q zEdF4f`u+CiwmYVjr%WuN^Du#n`yU&B^3IJzBL_Zu-$?zTyBfz|`{R*^-t)z|a`kd+ z3q1~f(k6y5Nm3x1Yb_kKdg+KYV*sjIe!V z{5>Bz^<6`n@li*u;}T2+4lyJ`2oxNk906cBFdVfoiU|zCpa} z1i&zeF@X)3#Clk0*p&E|Ev$2}*1}l_W2{Z$7(q~!&ar*`feE?ciQuhsm(q`Gl}fN+ z@eJbtu1z-J9Kjlg^G?2Vm(yjpIN`_LzXAXv^r3($xF(p5y?b9P1*F-Cr~YXsj=g)| zS$n>$x7f>y=ZgXCM@>wqVLVI>hXL%1sn{O{%!kA@0KEW80E%#MFwm*p_a{B zD)9ll)VtgP1B?cSF@g0+Q1@mB1{Ma^85pZ!tc5iO#u!-ZV6}xY4oPBJCzg_?K&wta zn%L5Rj?vAeG*Bm!j&+Mc0?>)WhhMvFm(gdJCt~yENoevA*5h{EDh@*#(_{(r%m&=? zu|e$lr34M$iU-{w?Joo(Y{qhgD4~QIkSM}}!O$?MLZbI-s18e=OF&ai&7-M0rh0zYyI+(=47^@pK8?@?t)yRhO zzs%pSswcJ+l9+kcqH%0n*9V;dpM3NE&pVBFsSjxAt=MWGLVz-sxL2ty_6bwL*y%l( z^9>+yo3UI7lth3j7{MAa0$2!WSj1?ejxkiQ4K<7-K?@ef2cKYAaNFUg(T{h&499@8 zfO7ildBY909A~mi5d(n62vetXrh7` z4HzV;U3Zyv?>JqX@EIcrL17PGz;pl_gtaW`qV2(}?K z7!zhaTCssiN~pzE)ZG|bt^v&&Iw!VCuMKp5YG@e$;~cE9-qBhIYucx?3~Lx{30fye zS{fl{!|4FcxRUz?fTWbfM0}x+#ep9=eVP@JqE)w;wWx(pTzXQP1!_hCDgS-E@^?9S!F42HJ_S_#uc_5Su zs5YV8=8;EdD(d~XBf)i7k@eOjOu}f!6L8G}mPQ{ykK7Z1=*K{C7^dQQG~*hqW*BXt zwShMNOtkjDYl9@w(22=Uqtnw^7;U{qm`pPmt+!FL;E8XQ{Y&G*#ZExj-eADv1EkRiA9p=HbW9mXn&pE zx6s<=(T*{$-anb}*Q^f2@NW}!Ypi#4-44eZ5;wFGR z2l-#ffa_PC34p;4_~V9Ch1H=Mop@k2T=ZsZ95ER2~w$V2Qwf@K~R83 zvJIQ6w*fXxCEOy(CETXcuAvj1GDN3@H|;ZhZ>JU*V<1q%=E-}pVf-!#5kQI%P6I0* zTLpFk*7~tCJ3&MYqC=<6ZM^c6Z@7>dv20Zp<}9uM?_~fH0U)$$1VND)+d76o^q=A^ zEr^rEHJg*7*_`x*)CPi!7_L8n$2VUEYYnzlmg6rQKZCm73TFhg)~N(r7^9)J_GT#Y z=E!J+L>qrUGe4>H>r4xD=7=p^O5i)6{5&4r@Eg=yoNE;R%JeoxjiXN3-XX0XM8Z3x+2kseod+K#}a>@yV^%M}^*#iQp1F zAst%zV+r1|H5(QIra@x@LRv&YFN9=BDFGr7sAH&E#DX-22b|;do=c^e;n;zlgR|aA zyY$*QZ{k|5CRq1iVqyY?LIkChclb`g8G$6Wu3oE&%0x0;uh6maSl?4UGb=(U=b9CT zAAD)W^Fp)dRRgSbAYouM5g5E}`|w<2-3dk;YPD)2(M=f5sbl0cDunQcOk3Ku&N5x^1FSJ=M3mZon=-*VILENo0tgU=eUPES)PX*zAoL7o z=^+bdICcU=mYo}9XOEjc^IkZoMNjft0EE-uvH$-*2E<7n^$EZlD+Y?kfE~ZUXxp14 zEf*&Z@EgTT(Y7k=$iK(SA|BR=ybI5Z(;@VwCMZ!$sa_=8wT7h@fN5QG4U zvlvfCab)odtTZ3MLn~IoCYzzuBK6l5SDPdEd-X-eRX!@EFbu5#2NG>lLPR;HL-}yh z`_wi&MC5}HqLgS1BLC{41#goav%lv!HA~s6mwsoR&nay7yEk7xf5)QejjzT(&AaOVO#?>xa{z!6%4qPn@N-<8|7}ThG@fYqze_s}1$89iq|O`10Jds> zYaEiem4=mV>361M;_0g=f=i>8)OmJ>lG;J1CPwF4k%DWP#OL>1TN^ShV9rgEXOi~~ zo@v>AmuiBAwT9R;XvwTawOIhrs)H{7(gpbBM@FC!BA{L{Kms92D$+oBAOK+VhGBg7 zc3)5U{+-ADeGFL39|7~7nBW-O`9f^QpHak8ybYhG0{W>$Q)!!B3u9_nx2~CC?^LgC zw{LpU1qHTp&{+jz9CbniodoVWt?PyotcB^iXFaoWV!JN0<83{suyab>OdC2+=C-z^ z*N%~DOvW?==a`rY)^SNHJ^KfD&w!Ai3aa?hC9_FWO<7cBACBb`&gR+lG2YO;P7w)N z$40Dvd?O~u8W0k=P_IuBrh5qCR6NJtRo;Uu{YcZwM}hWjy#XVYoCUvLpd zn?q7ah~9Dw)-ffue$<-Vr!$MGYy)F7V6=nL-sT&_xx^dO37}>6x)aZ_usS8a%cMPf zzwKh0F>OY;)b6|VyE8_(G-_&JBaQvN3G>W?H+4=hAT(PCWA*%fj=K_LBQ@Gqt;@M| z0ZT|@FlvE~(|`wNGT+_rM8!xctgZCX?71^U5PB0x1YCU0kH~j9c;9A zYgg6?07kd90N`nW-cG@|S^K;O3l@!{FPe@H@;ShX>*$mw_$j6^H?+9E=;4JzVe!A@_?7{ll9hUq1mbgaVweTVAJ>>5RxDy zfyg`1+@W^8a!MHF63fmz-L`Zicf>A}NqK&zoP2oG6*0z51&Nt7Xq#*6oY5hmlvF>Uo>Ti(<_Xtp)F~;ksPsCeiHJgq7 zn$5=R4m)V>q0WihPCt1@ef7GAsEk=IlmzNki#xB|p40kiCCT4D^jduClFfL-Sv@e^ zq6;hk={{Bbz?2dOzty0|8!a3{^g%#iL_dXUZG5(F%43_g;A~0i{de7X?|+~1_Lqu} z|7ndFoN~|&f4=+SEz(T;R$MDCC9*6F4U%CCGKx{`Arwmi!h%2$3aF4ga|D3|00Km= zqm;J_I=921Ib{Opzk;3UNYv8Prgq*kOu|TFhq%dTH7uHSz{U}59Kkd~#0`PT>R4;r z*3qB6=(O->fBDloG%$^<-m+w9!-M}_oKl}V(7!?8r*DX#7%u# zqiRa;J8#t~r@W!xW`h%=JMerO17z636 z>Mb-fJc&3q&`AQ4jHsXxMuey+Q78!%N`#<5P)Z>xNCcroSP&p$2q6&!5-MaMt^Vc| zPeWE~7&-y0wP4542_uOu;-<%xlGq|?IJ|60S##{G0sLlSv?cqe2e#FWpP2z*0cQeKM=O$hoZYsudfZqvbY?RiHsquN31R{S z0>CNg*igOhM72^+CdV655EMRErtjZ%@l}86Iq1lP-m}kvi!p0H>ql3u3HDgW*t#yn z)(sXTTY<6dEliBY7#@kytXt?9ND{yq_^zwxbnKYQFtUpAP7eV{38;XeLZDCx5EUhQ z`T~@D6^gwAJ^dOzQ=dY)M{-|ZKNTkJ85`G@zCy6ewr-p}R9j}CAtu5EK^OvzHZ~P& zv|0v9lWAf^^R`XRg8}?z+r}m>+`HE&c+bRu=EMLn8`!d8f@lwkiS6ouM!Z2XVnZZ} zg!InY5u5{zwn$nAjYgtc4ab!+w-}&k-kf6x*RNUKSE+8n)c*Nu!QvU%V{eOMG!^U^ z^=1XFra|0vXw`w*q(;4(pjowO)HLd~1dUpPxMh*F99k`pjQY$u%^949O_Q+9JP83v zMUYBBDFGFD^A;5(!h-Z#6%nF>M4==R6@+I-Kv03VcSd^?Rj)d7Y^-%mlES^`(fP~X z`^AHcjk>1VWK1eFkTUTo1_RDGXzjddYd9n=qGp}>?Ju|ouQ_`GKKQD?;zM6O@R=Fl zbO;b5X+)SoAHa`qeOsYf6CCRVQYe6QZgVrcYP3V#vZz-yRmNighLdVfZ>5UU7AU}H@0rcd5CEg?Gc!Pt!ZA}W!(}(TI#qBn!3=VaL7hz@xpV7?oe3bJ zdJa5tR(}-sRpORy7`8oOBALjM3)zi_o|!!u`^Dj6v?Eq9p-V)oXiw-F^3s( zGX_Y(8W2ebDg9`PDDC6-s_6;lnFH5NW$#Km9BhYhfe8eO#59oT7@;ad$pDTmIw`?u z19cu|KzBaC$g^SR+Cs(-IW&>YlaNb@;PybeXpvLjKQB`Nk&PJuv}<(Jc}K$MQ>Gn| z$j(4JpIye)lw2u7sf`AlXgf>mCCs`G>9a1yW_B=TopzMlh^Axq!)1v$X<=+~8x#*> z-jo->B!r2|b{Jy-R_(+sBeLrzen!~LbaDsrokMPDIlX2NOL%&ue{6q$N8;E;CZA#w zaXtGW05mJzGXFnoKn@VMO;}oV$|Z`snBY<(k#9wosn*!G84wn5zQ5Mn^z?hY4@jTm z+FIb!=Tn-Mwc{J2UW1DA?tu3mx$H*`L^tI?Z91X>{FLJiu_yR&#Cwa5{Qs25|buw&r+a zojE^m|EX=`vJ8(D3BP!vJblLWa-a&W_FxFPjn3@1OY0pXv$fncA!a}d1?L=MU4hmH z1LeJN+<~vh{tHh=Pia~%2s5VciBpgLERGs~6PB<3Z#=sGT1+;!BMM6hgJMd2(`B1G zCAU+_^WY|py4pS^P4t{`%*u!2sbEo;eeC!O-<3yz@6H1}2KFo(&|%a3@0C;vsQnCX zzb};*4=WJ>mMS1Aq-4&K#Y{ajtx0_W5yE!VDZ{PF;$ZANesHv+rAR|EeqT*t+X5T3LfYMTmlO%4pjaGG=pN&O+S| zMsyICJZwfp6nV*ZkR4H2Zk*HWP9M^FIM;pe=}?3SQi=9Bog~@tlSH0yWISNUd4!S) z2{Tyhn4Pu649X_!Z6KweNkh-{b0j3?N1!?Da?|o37v?^|T#kh>!=~ zUj1WZoFtOH{yC1AWgdBTa-i*yI|7N!S>st4(B@EHIuvcKXb&N-H!g^JRGvOpLO^F|o(F{~cf1z(-Y(%2 zIFgPtZS5lWj)P}*sTax1NZK z6_m6>1a0l;kd}PHOh`-<{iOw1IQT+b^!>Ns%y%A!>;Lc@z)46U(~gGc42^aj)>#k{ zq*SO^8~DLbzkyTE+zXfe_>0(Q?kSKc!dQdOfFf;8L=g0#RG6NVh#>LU(5>X0>7I92 zMvR=HnWJ{8>B(MgHx#t9k|bmL)J0xB0T3t#$Z?KMba1{SBkYj6Ac$1ZzS*5McNWBv zI^7xl2jC4SeG?a5a4qI7nTpSU`*k?yBQM2Wci-$WAt6#mSUlU20dUL=DJ1Ik27YtZ z6?oHm$KaAHK7gZ+J_J50^Tlr|C9HAy{Y_Wm zSJz&Qr#9b%Lk>I!A9>$ZIPS1hA%wtWWgPXYfeYFhaCd@5I}DR}-Npw)A_}u`)@SBf zCeUFOoC6R*$*?2(Nyp3G<9-?g-uR-+ap6y2;E_lGBs!em4){nH@zV)p4N&L`gR?9& zjhHe%r0_yBo&*3`XAr0eFFxu`IO@QE#!bt9u>+An5<56z-;4V+ z3C)tn6uTmcdOXoX5arHbvK_{DV2IPJub;JAZdhnw&H4z9oLyZGouSK;XW z-+;HA@nI}kvZw#7wZ4fLz+aZ#fh&IXpLlfbAF#(>3-G~rei<)1;*A*SpOrI>h;pE@ zv$&r})|o>S?SV3bo#j|c(FO&&61G&xkY&~kcs+I6#Ib+2;SSn7GXwg2r)496ps>M= zI)J{6xw$lVG9pt{-(^4mEC8FosUyiD+3mnOQBNO9wHYxubs^4t`4@4*p>M)X_kIW0 z-E;-s@$sMIWk;WbH=KSh7A{w#>;o zN+}=20uVx2fUFPAkcVM;5u`%}DXmsXNdiCuxOz6X9A4QWjN3`Jz5^qCb~|^*zIf{^ zFUE<7zZKWtekrcH;hVT^*_Bv4=TQ9h;Tth9vw#nr_bI&mgnz}%X^XogUW)&DJ$jCa zb_hSa)S|$*!XWiIl;xzkx8|JaT|&mlg{a+%p9M9~;sg94+Tj$7E=07WD$^DFrbJ@^ zLQ$!dt3y|I$UePy+>!P0(_-UpMx@zo%7}%t55c)-eiyGe;a&LNl^?^hzg~;ePk$rM zKI@AZoH{QhssWMABf0`z++;^%uafT zm}kV@W7=tFoDd?X4~aCx$`Gbbsofz=aE_UX5EY^V5rI2805Ubrq^%3YdJcIOrP;7! z3u85w%sm`0I^th2cX0`?dBr&xoH`H2Bw%(BLOm_xeERpbr8PgSc0 zr0O1Mra4`5n1OlOrSlwXW4=3LzdM_x5RhpK9)&%1BGf4j>pN?qS?2+zgUudntxx-; z2)ca*x79vpBA$~1>~JuMgl~&63@NEyxqA+u1%Otofkva|%@lX~HqL!nXVFPW!Oo>E z8qYB9_MAM(Xmr*vmc4e9e5VZPTpWQk3T~I&IOlYyA8l6$JpKQBskgK1zm0pelY8Fa2xLiE_7`ioC6%Bo zLCq`xfE~cb6q;iJfOQh3~E(;W$QhLqV%s3Q#Pd=|I0WrxYP z{m9>^18IQ$_kEnuZjVWCWOEWE(V?pVV488gW)ddnI+4hoJf5?%E5TXT8qyPXR6fXP4Cm>~aQT~4j z8T^cv|JtYelpFKR-nQA^q8;*?1Gx4Y8y>s7AOR5*)4CvSmvGFs)m^mjC_2 z(^0QKOGy#{nstk!801$Rf4EeYqKzB0-dRD;S!bQi2;DJ5z%e_c8F7>AI;QmiP>6aM zP{Dw2}f>-}+^|?~^CtC%^tW>h&t5^x5olDZ)IH8OjJRrNZ`+E%^H7pTOB4 zd>L-N`!^^Si@t^+(BX_TEXQM8k?IE=u~JgC^q7X}`E;Wy!Dc{(G*b)iw{X1QFST{U2Bp$xAj>lInhY-&J4ZZj7hcNxrSt!yX_njL)g!;Jp z>g0s@X9!sigGg)J63+QGw8juyExB0>s5)t7qvpPS)G;$3zWJ(ED3zw#vY7_s>hL=q zrZ@@OOS8egIcv$%`Pj5>3_rg56ZqrpKfxLQ{9e5L#s7k0v6xoT9Au8|WKMYJqMt1{ zl~O`Vh0(F?xcc`$!f&ttE+*@nF=N&M=Jw7(5F$lqvj*f8OUN-Sh7vun7E~w%4Anr= zto=$BsaTuTUo3}n=9Ef)Pq`#XP}3FY=A^WVS=WpwKODw;-F)t+PY{>?$6a=^au67d zD0&VWaLq68#@+YbjHm~0*#mbHK=(E)!CB+m-L~3jIdJv)GM*R|wb6c2AMKOX;j*et zkZ4rRw>Phz_>>b<6#yuyxWBvrf&yf%dU@1}4!a3PSYXUuI2DH;y#%U%8!r3R`|!R` zy#jx_?YACb71F~U&UK0W4l!1WfcmOfv(>=QfBS8md;ZDz@$Wu|zCn!x4q1qqb9+$g zZ!gH$5tO1GmOruMdZXE>UGVV_!3igw!xi=B@QK4?YtEmn4FA5>sy(W8^ATfOH&|Ey z=t%v+7dk_~?U`8<{pFbs0M32Wr6?9kxb5l<&#nRQIsbJ0||h!8Pz&|T}y%N2P2E8mafjyef|-+GMNnIb?L7UiI1 zfFy}=Q$4R`fm%d zeLdXL!=wW9DnY&f`RQ}6x@e!*Lrw1o?)omw`!76^ozqYe$-Va8!*1HR38%h&0bY3Q z3wNrmJJoNat{I(=7_D2kO@LaNTG1co!8*pkG&FK`~JDG;YJ*A=mN}`-3J*m zWI%rTQa}g-0j2!91V(2Ucsn`+$aisrw<2F zz(N2Z3n47#FPee<4w;4Z{yQXJ7XL(^U#w+TVe)CAma7wwnA&` zNEq|A-|fw(op>-#J7IrRDn~F0ZP*45>`>~nSTg+}%$dFiuDo<;r*wYCH0J#OJQcSt zy8(MI+7HD-8A53M*B9=`8RyO=Ye51bw22vE%&s;S);TO$v?mtru~68!=z`E3;AH*& zYP?n%H!6h827}nA{zB3uKmd>TzJ`AaMa-k;?_UkDrOJvbK_zCGqG zS_LkU%CBS;J1kY&ktmtD%F}%AScAn1!`rH8H4Wx0=*Pr(4Xvs`-_#<6wCM`TZ0%Xc zGcvoL<}P`1$bR{h)*8e`L~=G@3Z`1Es%^t-Rwx;~xY`;XE(e1!PIGm#g`0n~>A8^Z zS&zRHO5FLeeB0%??zeX$Dg6~Lp5Mj_)1LKZ3X`Rw+)CR1vh9DUz34tQm3ct0m>)7j`{o*_J`~IhWHtD(n@@Liu zIJfs&uKV^1Yquf(mfpYqG4sR>4^bYXo%SD_(3%E{zF1W8SQ#SnDmYJ(pMhr_w6?cnyrMj9+v}s zdu(OaS81acCULxf94EpU$AU`~1yd2KUJyrMr@*WL4&ZD`C|1a`X_f#Kh!uzeND4s| zK!^~6B1joRsRATLkTQax2!sL%5r`rXhX99Qr{J7|(*o8guu~3BS#4X=*qQ+8$AU0? z%kc2J-wEmyM;vj2tJfdHjVmfR<&b~DPcOaYd866$zIE{}*FTIGzIX zSQwP#o{JW_&%XCsocNlB*mrOaEXMKhJS=J!VWPSbjxDB7St7QL zuB38tx;^Q*vuECT>rYp09eupF+#7IM2&owLAPW0Y2>PH@(RW6BY|`UFWWjJCB1Z&H zyY$mMK&0y#gdk*#yJbgdwG)G~a8AS67>TZPyTsKTCFNtdIGT-hjvvsZUMqUN&zJUgsK2R0ZCC1 zp(;?IN))ORML~%IRiHvtLaA6rp-@B=MF^t+Dj*2u;JAf2nMAcViqX-n*tBs2#Cmj8MC|07kNe(W+0 z$d2>B{7TH3GaqB46PPl!k3R6`%lVJXzB~Q)yRLm=<*NIqwHlV2bwf$)7i*C4n`{J; zL=Z`Yp@32fg<=s>f%~VH?+-#XDM(EbLKcM}_Bn-O9lIrsMy+IxL!y&>3*#g+3ui(IzkR{wpI^Sq=(EfJ zhs>8gdL6#`%d_!+-uDZ9``70J0KzDAK_s|XR#1u%MgltBpTQ)))uh#MXjVDhhMo}x z7Ol8pbwj>u`8}KOKmH7arD@<0ply@je?RlTrd)mfFK>SA$p;T4NGAjdAMPrTiYf^y zebf|20x}?k5s_d{65FZ|&KR&O?p=+s%~NpjOCnS^7ZAtIT}pglH~kwcsnS&bTbS2@EKBEdP1Bn0PBgumxA@4T2xe)}9)BAIuB z`>yAoU4F-Iqsea3fD8i2@b^|SPErX{fj|_c8z~hf3h7zuktp^kL`5&LA_dWe^hEsn z$Nmbf8IB9+EzII`PP&GcF4?yZLL&v*Sf&}V3R3hl5(o|k;nk!v?nz)7gBm@m5MkF0!SIyT4SR6 z+ViGBn--t;wncE%0#EU+9-Y~5?gPSQ2=9tbG}TKf6@A2H8% z>^2`zES69#^kHb|N%;0vvVw?h+QdlA;B5aOmu_urvpO*#IYJ;E*ITP%1OTH9KtU?v z*PgPEWOhzU)d~W|5RQXTLInaUkRG&{{iLudV|?5HV-I`rAPkF$qB07F9z=z*D@46$ z#^V&*;ct_`q_IY9cqHcj8M~GKyEhZ=Db7bweU05~;Tkbz8g3t6MgPu>i~DmseyDp`}_M6@#}p zXMfV)Gjmp{)C=okM?$bv3W5}@WzneDMI{*#QpBGh-n{vHhaI+`KtbF6j_*gSx_c9W z-KGIj5=JH-!%=)57S4Ey+p=XuY#)2#8;yGF)x*PEme(qpgc(o)&r$);PznPIt{}8d zwiw%Ze^OlW?nYeT-o65yW$q~~M%-$`I*lZ0V%4fgU92aBl;S24Brj?tTYeNL6SXib zik{Md>?ux@g|Jr=gt4x5j}xuaO{4tjB}?}cebXhMwDcWVH#C7;ezj${GGLd((VfRt zk9-#Q-SPlV*!Ln_bI+U5)Z1lTW81Xb3Xz(2VlkR}Tp{XTq+}==Zd0OL_f1xZZYqaM z$80m8n72X(f|FK)sZ-~pS{cEdh5fK@9HXNXsMa@O!Mwwz3}Rcbi!oxB&F?QSIIdWj zx>(6VaVGmk*5<(bg6N3tnEv$EiVjmlm zKuU#5Wh;L1&Bp-%AN|S+IN+dtu>8SW;MiEQQXoi>G#VR3kNlOA0hCa%=}ubL{Rw#g z8>O^z*aor(V1b*ij4|}&n%zkb0KoqRbb1&ct<2Ko0000bbVXQnWMOn=I%9HWVRU5x zGB7bQEigGPGBQ*!IXW{kIx{jYFgH3dFsPDZ%m4rYC3HntbYx+4WjbwdWNBu305UK! pF)c7TEipD!FgH3fH###mEigAaFfey&@l*f+002ovPDHLkV1iQC3p)S+ literal 0 HcmV?d00001 diff --git a/lite/res/layout/activity_torrents.xml b/lite/res/layout/activity_torrents.xml new file mode 100644 index 00000000..02d672cc --- /dev/null +++ b/lite/res/layout/activity_torrents.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/lite/res/menu/torrents.xml b/lite/res/menu/torrents.xml new file mode 100644 index 00000000..a363b607 --- /dev/null +++ b/lite/res/menu/torrents.xml @@ -0,0 +1,9 @@ +

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�j+Q>jG_ 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