From bda024f4188b54c6645c16a8a3accfbcd609aaa2 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 24 Oct 2014 14:12:15 +0200 Subject: [PATCH] Upgraded to Gradle build system, with full and lite as flavours (rather than usign a library core project). Lib (Torrent Connect) is now integrated directly. Closes #148. --- .gitignore | 32 +- app/build.gradle | 61 ++ {full => app/src/full}/res/values/bools.xml | 0 {full => app/src/full}/res/values/strings.xml | 0 {lite => app/src/lite}/res/values/bools.xml | 0 {lite => app/src/lite}/res/values/strings.xml | 0 {full => app/src/main}/AndroidManifest.xml | 10 +- .../http/multipart/BitCometFilePart.java | 0 .../http/multipart/ByteArrayPartSource.java | 0 .../internalcopy/http/multipart/FilePart.java | 0 .../http/multipart/FilePartSource.java | 0 .../http/multipart/MultipartEntity.java | 0 .../internalcopy/http/multipart/Part.java | 0 .../internalcopy/http/multipart/PartBase.java | 0 .../http/multipart/PartSource.java | 0 .../http/multipart/StringPart.java | 0 .../http/multipart/Utf8StringPart.java | 0 .../main/java}/de/timroes/axmlrpc/Call.java | 0 .../de/timroes/axmlrpc/ResponseParser.java | 0 .../de/timroes/axmlrpc/XMLRPCCallback.java | 0 .../de/timroes/axmlrpc/XMLRPCClient.java | 0 .../de/timroes/axmlrpc/XMLRPCException.java | 0 .../axmlrpc/XMLRPCRuntimeException.java | 0 .../axmlrpc/XMLRPCServerException.java | 0 .../axmlrpc/XMLRPCTimeoutException.java | 0 .../java}/de/timroes/axmlrpc/XMLUtil.java | 0 .../axmlrpc/serializer/ArraySerializer.java | 0 .../axmlrpc/serializer/Base64Serializer.java | 0 .../axmlrpc/serializer/BooleanSerializer.java | 0 .../serializer/DateTimeSerializer.java | 0 .../axmlrpc/serializer/DoubleSerializer.java | 0 .../axmlrpc/serializer/IntSerializer.java | 0 .../axmlrpc/serializer/LongSerializer.java | 0 .../axmlrpc/serializer/NullSerializer.java | 0 .../axmlrpc/serializer/Serializer.java | 0 .../axmlrpc/serializer/SerializerHandler.java | 0 .../axmlrpc/serializer/StringSerializer.java | 0 .../axmlrpc/serializer/StructSerializer.java | 0 .../axmlrpc/xmlcreator/SimpleXMLCreator.java | 0 .../axmlrpc/xmlcreator/XmlElement.java | 0 .../main/java}/de/timroes/base64/Base64.java | 0 .../colorpicker/AlphaPatternDrawable.java | 8 +- .../colorpicker/ColorPickerDialog.java | 38 +- .../colorpicker/ColorPickerPanelView.java | 55 +- .../colorpicker/ColorPickerPreference.java | 251 +++-- .../colorpicker/ColorPickerView.java | 442 ++++---- .../openjpa/lib/util/Base16Encoder.java | 0 .../main/java}/org/base64/android/Base64.java | 0 .../GoogleWebSearchBarcodeResolver.java | 0 .../core/app/search/SearchHelper.java | 0 .../core/app/search/SearchResult.java | 0 .../core/app/search/SearchSite.java | 0 .../app/settings/ApplicationSettings.java | 0 .../app/settings/NotificationSettings.java | 2 +- .../core/app/settings/RssfeedSetting.java | 0 .../core/app/settings/ServerSetting.java | 0 .../app/settings/SettingsPersistence.java | 0 .../core/app/settings/SystemSettings.java | 0 .../core/app/settings/WebsearchSetting.java | 0 .../transdroid/core/gui/DetailsActivity.java | 2 +- .../transdroid/core/gui/DetailsFragment.java | 2 +- .../core/gui/FilterEntryDialog.java | 0 .../core/gui/ServerPickerDialog.java | 2 +- .../transdroid/core/gui/ServerStatusView.java | 2 +- .../core/gui/TorrentTasksExecutor.java | 0 .../transdroid/core/gui/TorrentsActivity.java | 2 +- .../transdroid/core/gui/TorrentsFragment.java | 2 +- .../core/gui/lists/DetailsAdapter.java | 2 +- .../core/gui/lists/LocalTorrent.java | 2 +- .../core/gui/lists/MergeAdapter.java | 0 .../lists/NoProgressHeaderTransformer.java | 2 +- .../core/gui/lists/SimpleListItem.java | 0 .../core/gui/lists/SimpleListItemAdapter.java | 0 .../lists/SimpleListItemSpinnerAdapter.java | 0 .../core/gui/lists/SimpleListItemView.java | 0 .../core/gui/lists/SortByListItem.java | 2 +- .../core/gui/lists/TorrentDetailsView.java | 2 +- .../gui/lists/TorrentFilePriorityLayout.java | 2 +- .../core/gui/lists/TorrentFileView.java | 0 .../core/gui/lists/TorrentProgressBar.java | 2 +- .../core/gui/lists/TorrentStatusLayout.java | 2 +- .../core/gui/lists/TorrentView.java | 0 .../core/gui/lists/TorrentsAdapter.java | 0 .../core/gui/lists/ViewHolderAdapter.java | 0 .../core/gui/log/DatabaseHelper.java | 0 .../core/gui/log/ErrorLogEntry.java | 0 .../core/gui/log/ErrorLogSender.java | 2 +- .../org/transdroid/core/gui/log/Log.java | 0 .../core/gui/navigation/DialogHelper.java | 0 .../gui/navigation/FilterListAdapter.java | 2 +- .../navigation/FilterListDropDownAdapter.java | 0 .../gui/navigation/FilterListItemAdapter.java | 0 .../gui/navigation/FilterListItemView.java | 0 .../gui/navigation/FilterSeparatorView.java | 0 .../transdroid/core/gui/navigation/Label.java | 0 .../core/gui/navigation/NavigationFilter.java | 0 .../core/gui/navigation/NavigationHelper.java | 69 +- .../navigation/NavigationSelectionView.java | 0 .../gui/navigation/RefreshableActivity.java | 0 .../gui/navigation/SelectionManagerMode.java | 0 .../SelectionModificationSpinner.java | 2 +- .../core/gui/navigation/SetLabelDialog.java | 2 +- .../navigation/SetStorageLocationDialog.java | 2 +- .../gui/navigation/SetTrackersDialog.java | 2 +- .../navigation/SetTransferRatesDialog.java | 2 +- .../core/gui/navigation/StatusType.java | 2 +- .../core/gui/rss/RssfeedLoader.java | 4 +- .../transdroid/core/gui/rss/RssfeedView.java | 2 +- .../core/gui/rss/RssfeedsActivity.java | 6 +- .../core/gui/rss/RssfeedsAdapter.java | 2 +- .../core/gui/rss/RssfeedsFragment.java | 2 +- .../core/gui/rss/RssitemStatusLayout.java | 0 .../transdroid/core/gui/rss/RssitemView.java | 2 +- .../core/gui/rss/RssitemsActivity.java | 4 +- .../core/gui/rss/RssitemsAdapter.java | 4 +- .../core/gui/rss/RssitemsFragment.java | 6 +- .../core/gui/search/BarcodeHelper.java | 2 +- .../core/gui/search/FilePickerHelper.java | 2 +- .../core/gui/search/SearchActivity.java | 2 +- .../gui/search/SearchHistoryProvider.java | 4 +- .../core/gui/search/SearchResultView.java | 2 +- .../core/gui/search/SearchResultsAdapter.java | 0 .../gui/search/SearchResultsFragment.java | 2 +- .../core/gui/search/SearchSetting.java | 0 .../search/SearchSettingSelectionView.java | 0 .../search/SearchSettingsDropDownAdapter.java | 0 .../core/gui/search/SearchSiteView.java | 0 .../core/gui/search/SearchSitesAdapter.java | 0 .../core/gui/search/SendIntentHelper.java | 0 .../core/gui/search/UrlEntryDialog.java | 0 .../core/gui/settings/AboutDialog.java | 2 +- .../core/gui/settings/ChangelogDialog.java | 2 +- .../gui/settings/HelpSettingsActivity.java | 2 +- .../settings/KeyBoundPreferencesActivity.java | 0 .../gui/settings/MainSettingsActivity.java | 2 +- .../NotificationSettingsActivity.java | 2 +- .../core/gui/settings/OverflowPreference.java | 2 +- .../core/gui/settings/RssfeedPreference.java | 0 .../gui/settings/RssfeedSettingsActivity.java | 2 +- .../core/gui/settings/ServerPreference.java | 0 .../gui/settings/ServerSettingsActivity.java | 2 +- .../gui/settings/SystemSettingsActivity.java | 2 +- .../gui/settings/WebsearchPreference.java | 0 .../settings/WebsearchSettingsActivity.java | 2 +- .../transdroid/core/rssparser/Channel.java | 2 +- .../transdroid/core/rssparser/HttpHelper.java | 2 +- .../org/transdroid/core/rssparser/Item.java | 2 +- .../transdroid/core/rssparser/RssParser.java | 2 +- .../core/seedbox/SeedboxPreference.java | 0 .../core/seedbox/SeedboxProvider.java | 0 .../core/seedbox/SeedboxSettings.java | 0 .../core/seedbox/SeedboxSettingsImpl.java | 0 .../core/seedbox/SeedstuffSettings.java | 0 .../seedbox/SeedstuffSettingsActivity.java | 2 +- .../core/seedbox/XirvikDediSettings.java | 0 .../seedbox/XirvikDediSettingsActivity.java | 2 +- .../core/seedbox/XirvikSemiSettings.java | 0 .../seedbox/XirvikSemiSettingsActivity.java | 2 +- .../core/seedbox/XirvikSharedSettings.java | 0 .../seedbox/XirvikSharedSettingsActivity.java | 2 +- .../core/service/AlarmReceiver.java | 0 .../core/service/AppUpdateService.java | 2 +- .../transdroid/core/service/BootReceiver.java | 0 .../core/service/ConnectivityHelper.java | 0 .../core/service/ControlService.java | 0 .../core/service/RssCheckerService.java | 6 +- .../core/service/ServerCheckerService.java | 2 +- .../core/widget/ListWidgetConfig.java | 0 .../core/widget/ListWidgetConfigActivity.java | 2 +- .../core/widget/ListWidgetPreviewAdapter.java | 2 +- .../core/widget/ListWidgetProvider.java | 2 +- .../core/widget/ListWidgetViewsService.java | 2 +- .../transdroid/daemon/AlphanumComparator.java | 0 .../daemon/Aria2c/Aria2Adapter.java | 0 .../daemon/BitComet/BitCometAdapter.java | 0 .../daemon/Bitflu/BitfluAdapter.java | 0 .../daemon/BuffaloNas/BuffaloNasAdapter.java | 0 .../DLinkRouterBT/DLinkRouterBTAdapter.java | 0 .../java}/org/transdroid/daemon/Daemon.java | 0 .../transdroid/daemon/DaemonException.java | 0 .../org/transdroid/daemon/DaemonMethod.java | 0 .../org/transdroid/daemon/DaemonSettings.java | 0 .../daemon/Deluge/DelugeAdapter.java | 0 .../org/transdroid/daemon/DummyAdapter.java | 0 .../org/transdroid/daemon/Finishable.java | 0 .../org/transdroid/daemon/IDaemonAdapter.java | 0 .../transdroid/daemon/IDaemonCallback.java | 0 .../daemon/Ktorrent/FileListParser.java | 0 .../daemon/Ktorrent/KtorrentAdapter.java | 0 .../daemon/Ktorrent/LoggedOutException.java | 0 .../daemon/Ktorrent/StatsParser.java | 0 .../java}/org/transdroid/daemon/Label.java | 0 .../main/java}/org/transdroid/daemon/OS.java | 0 .../java}/org/transdroid/daemon/Priority.java | 0 .../Qbittorrent/QbittorrentAdapter.java | 0 .../daemon/Rtorrent/RtorrentAdapter.java | 0 .../daemon/Synology/SynologyAdapter.java | 0 .../org/transdroid/daemon/TaskQueue.java | 0 .../transdroid/daemon/Tfb4rt/StatsParser.java | 0 .../daemon/Tfb4rt/Tfb4rtAdapter.java | 0 .../java}/org/transdroid/daemon/Torrent.java | 0 .../org/transdroid/daemon/TorrentDetails.java | 0 .../org/transdroid/daemon/TorrentFile.java | 0 .../daemon/TorrentFilesComparator.java | 0 .../transdroid/daemon/TorrentFilesSortBy.java | 0 .../org/transdroid/daemon/TorrentStatus.java | 0 .../transdroid/daemon/TorrentsComparator.java | 0 .../org/transdroid/daemon/TorrentsSortBy.java | 0 .../Transmission/TransmissionAdapter.java | 0 .../daemon/Utorrent/UtorrentAdapter.java | 0 .../transdroid/daemon/Vuze/VuzeAdapter.java | 0 .../daemon/Vuze/VuzeXmlOverHttpClient.java | 0 .../transdroid/daemon/task/AddByFileTask.java | 0 .../daemon/task/AddByMagnetUrlTask.java | 0 .../transdroid/daemon/task/AddByUrlTask.java | 0 .../transdroid/daemon/task/DaemonTask.java | 0 .../daemon/task/DaemonTaskFailureResult.java | 0 .../daemon/task/DaemonTaskResult.java | 0 .../daemon/task/DaemonTaskSuccessResult.java | 0 .../daemon/task/ForceRecheckTask.java | 0 .../daemon/task/GetFileListTask.java | 0 .../task/GetFileListTaskSuccessResult.java | 0 .../transdroid/daemon/task/GetStatsTask.java | 0 .../task/GetStatsTaskSuccessResult.java | 0 .../daemon/task/GetTorrentDetailsTask.java | 0 .../GetTorrentDetailsTaskSuccessResult.java | 0 .../transdroid/daemon/task/PauseAllTask.java | 0 .../org/transdroid/daemon/task/PauseTask.java | 0 .../transdroid/daemon/task/RemoveTask.java | 0 .../transdroid/daemon/task/ResumeAllTask.java | 0 .../transdroid/daemon/task/ResumeTask.java | 0 .../transdroid/daemon/task/RetrieveTask.java | 0 .../task/RetrieveTaskSuccessResult.java | 0 .../daemon/task/SetAlternativeModeTask.java | 0 .../daemon/task/SetDownloadLocationTask.java | 0 .../daemon/task/SetFilePriorityTask.java | 0 .../transdroid/daemon/task/SetLabelTask.java | 0 .../daemon/task/SetTrackersTask.java | 0 .../daemon/task/SetTransferRatesTask.java | 0 .../transdroid/daemon/task/StartAllTask.java | 0 .../org/transdroid/daemon/task/StartTask.java | 0 .../transdroid/daemon/task/StopAllTask.java | 0 .../org/transdroid/daemon/task/StopTask.java | 0 .../transdroid/daemon/util/Collections2.java | 0 .../org/transdroid/daemon/util/DLog.java | 0 .../daemon/util/FakeSocketFactory.java | 0 .../daemon/util/FakeTrustManager.java | 0 .../daemon/util/FileSizeConverter.java | 0 .../transdroid/daemon/util/HttpHelper.java | 0 .../org/transdroid/daemon/util/ITLogger.java | 0 .../org/transdroid/daemon/util/Pair.java | 0 .../daemon/util/TimespanConverter.java | 0 .../ab_bottom_solid_transdroid.9.png | Bin .../ab_bottom_solid_transdroid2.9.png | Bin .../drawable-hdpi/ab_solid_transdroid.9.png | Bin .../drawable-hdpi/ab_solid_transdroid2.9.png | Bin .../ab_stacked_solid_transdroid.9.png | Bin .../ab_stacked_solid_transdroid2.9.png | Bin .../ab_texture_tile_transdroid2.png | Bin .../ab_transparent_transdroid.9.png | Bin .../ab_transparent_transdroid2.9.png | Bin .../drawable-hdpi/abc_list_focused_holo.9.png | Bin .../abc_list_longpressed_holo.9.png | Bin .../abc_list_pressed_holo_dark.9.png | Bin .../abc_list_pressed_holo_light.9.png | Bin ...abc_list_selector_disabled_holo_dark.9.png | Bin ...bc_list_selector_disabled_holo_light.9.png | Bin .../btn_cab_done_default_transdroid2.9.png | Bin .../btn_cab_done_focused_transdroid2.9.png | Bin .../btn_cab_done_pressed_transdroid2.9.png | Bin .../cab_background_bottom_transdroid2.9.png | Bin .../cab_background_top_transdroid2.9.png | Bin .../drawable-hdpi/ic_action_discard_dark.png | Bin .../drawable-hdpi/ic_action_discard_light.png | Bin .../res/drawable-hdpi/ic_action_done_dark.png | Bin .../drawable-hdpi/ic_action_done_light.png | Bin .../drawable-hdpi/ic_action_filter_dark.png | Bin .../drawable-hdpi/ic_action_filter_light.png | Bin .../ic_action_forcerecheck_dark.png | Bin .../ic_action_forcerecheck_light.png | Bin .../res/drawable-hdpi/ic_action_info_dark.png | Bin .../drawable-hdpi/ic_action_info_light.png | Bin .../drawable-hdpi/ic_action_labels_dark.png | Bin .../drawable-hdpi/ic_action_labels_light.png | Bin .../res/drawable-hdpi/ic_action_new_dark.png | Bin .../res/drawable-hdpi/ic_action_new_light.png | Bin .../res/drawable-hdpi/ic_action_overflow.png | Bin .../drawable-hdpi/ic_action_pause_dark.png | Bin .../drawable-hdpi/ic_action_pause_light.png | Bin .../ic_action_priority_high_dark.png | Bin .../ic_action_priority_high_light.png | Bin .../ic_action_priority_low_dark.png | Bin .../ic_action_priority_low_light.png | Bin .../ic_action_priority_normal_dark.png | Bin .../ic_action_priority_normal_light.png | Bin .../ic_action_priority_off_dark.png | Bin .../ic_action_priority_off_light.png | Bin .../drawable-hdpi/ic_action_refresh_dark.png | Bin .../drawable-hdpi/ic_action_refresh_light.png | Bin .../drawable-hdpi/ic_action_remove_dark.png | Bin .../drawable-hdpi/ic_action_remove_light.png | Bin .../drawable-hdpi/ic_action_resume_dark.png | Bin .../drawable-hdpi/ic_action_resume_light.png | Bin .../res/drawable-hdpi/ic_action_rss_dark.png | Bin .../res/drawable-hdpi/ic_action_rss_light.png | Bin .../res/drawable-hdpi/ic_action_save_dark.png | Bin .../drawable-hdpi/ic_action_save_light.png | Bin .../drawable-hdpi/ic_action_search_dark.png | Bin .../drawable-hdpi/ic_action_search_light.png | Bin .../ic_action_sort_by_size_dark.png | Bin .../ic_action_sort_by_size_light.png | Bin .../drawable-hdpi/ic_action_start_dark.png | Bin .../drawable-hdpi/ic_action_start_light.png | Bin .../res/drawable-hdpi/ic_action_stop_dark.png | Bin .../drawable-hdpi/ic_action_stop_light.png | Bin .../drawable-hdpi/ic_action_trackers_dark.png | Bin .../ic_action_trackers_light.png | Bin .../ic_action_turtle_disabled_light.png | Bin .../ic_action_turtle_enabled.png | Bin .../drawable-hdpi/ic_action_website_dark.png | Bin .../drawable-hdpi/ic_action_website_light.png | Bin .../drawable-hdpi/ic_activity_torrents.png | Bin .../drawable-hdpi/ic_empty_details_dark.png | Bin .../drawable-hdpi/ic_empty_details_light.png | Bin .../main}/res/drawable-hdpi/ic_launcher.png | Bin .../drawable-hdpi/ic_stat_notification.png | Bin .../list_focused_transdroid.9.png | Bin .../list_focused_transdroid2.9.png | Bin .../menu_dropdown_panel_transdroid.9.png | Bin .../menu_dropdown_panel_transdroid2.9.png | Bin .../menu_hardkey_panel_transdroid.9.png | Bin .../progress_bg_transdroid.9.png | Bin .../progress_bg_transdroid2.9.png | Bin .../progress_primary_transdroid.9.png | Bin .../progress_primary_transdroid2.9.png | Bin .../progress_secondary_transdroid.9.png | Bin .../progress_secondary_transdroid2.9.png | Bin .../spinner_ab_default_transdroid.9.png | Bin .../spinner_ab_default_transdroid2.9.png | Bin .../spinner_ab_disabled_transdroid.9.png | Bin .../spinner_ab_disabled_transdroid2.9.png | Bin .../spinner_ab_focused_transdroid.9.png | Bin .../spinner_ab_focused_transdroid2.9.png | Bin .../spinner_ab_pressed_transdroid.9.png | Bin .../spinner_ab_pressed_transdroid2.9.png | Bin .../tab_selected_focused_transdroid.9.png | Bin .../tab_selected_focused_transdroid2.9.png | Bin .../tab_selected_pressed_transdroid.9.png | Bin .../tab_selected_pressed_transdroid2.9.png | Bin .../tab_selected_transdroid.9.png | Bin .../tab_selected_transdroid2.9.png | Bin .../tab_unselected_focused_transdroid.9.png | Bin .../tab_unselected_focused_transdroid2.9.png | Bin .../tab_unselected_pressed_transdroid.9.png | Bin .../tab_unselected_pressed_transdroid2.9.png | Bin .../tab_unselected_transdroid2.9.png | Bin .../res/drawable-hdpi/widget_preview.png | Bin .../ab_bottom_solid_transdroid.9.png | Bin .../ab_bottom_solid_transdroid2.9.png | Bin .../drawable-mdpi/ab_solid_transdroid.9.png | Bin .../drawable-mdpi/ab_solid_transdroid2.9.png | Bin .../ab_stacked_solid_transdroid.9.png | Bin .../ab_stacked_solid_transdroid2.9.png | Bin .../ab_texture_tile_transdroid2.png | Bin .../ab_transparent_transdroid.9.png | Bin .../ab_transparent_transdroid2.9.png | Bin .../drawable-mdpi/abc_list_focused_holo.9.png | Bin .../abc_list_longpressed_holo.9.png | Bin .../abc_list_pressed_holo_dark.9.png | Bin .../abc_list_pressed_holo_light.9.png | Bin ...abc_list_selector_disabled_holo_dark.9.png | Bin ...bc_list_selector_disabled_holo_light.9.png | Bin .../btn_cab_done_default_transdroid2.9.png | Bin .../btn_cab_done_focused_transdroid2.9.png | Bin .../btn_cab_done_pressed_transdroid2.9.png | Bin .../cab_background_bottom_transdroid2.9.png | Bin .../cab_background_top_transdroid2.9.png | Bin .../res/drawable-mdpi/ic_action_discard.png | Bin .../drawable-mdpi/ic_action_discard_light.png | Bin .../res/drawable-mdpi/ic_action_done_dark.png | Bin .../drawable-mdpi/ic_action_done_light.png | Bin .../drawable-mdpi/ic_action_filter_dark.png | Bin .../drawable-mdpi/ic_action_filter_light.png | Bin .../ic_action_forcerecheck_dark.png | Bin .../ic_action_forcerecheck_light.png | Bin .../res/drawable-mdpi/ic_action_info_dark.png | Bin .../drawable-mdpi/ic_action_info_light.png | Bin .../drawable-mdpi/ic_action_labels_dark.png | Bin .../drawable-mdpi/ic_action_labels_light.png | Bin .../res/drawable-mdpi/ic_action_new_dark.png | Bin .../res/drawable-mdpi/ic_action_new_light.png | Bin .../res/drawable-mdpi/ic_action_overflow.png | Bin .../drawable-mdpi/ic_action_pause_dark.png | Bin .../drawable-mdpi/ic_action_pause_light.png | Bin .../ic_action_priority_high_dark.png | Bin .../ic_action_priority_high_light.png | Bin .../ic_action_priority_low_dark.png | Bin .../ic_action_priority_low_light.png | Bin .../ic_action_priority_normal_dark.png | Bin .../ic_action_priority_normal_light.png | Bin .../ic_action_priority_off_dark.png | Bin .../ic_action_priority_off_light.png | Bin .../drawable-mdpi/ic_action_refresh_dark.png | Bin .../drawable-mdpi/ic_action_refresh_light.png | Bin .../drawable-mdpi/ic_action_remove_dark.png | Bin .../drawable-mdpi/ic_action_remove_light.png | Bin .../drawable-mdpi/ic_action_resume_dark.png | Bin .../drawable-mdpi/ic_action_resume_light.png | Bin .../res/drawable-mdpi/ic_action_rss_dark.png | Bin .../res/drawable-mdpi/ic_action_rss_light.png | Bin .../res/drawable-mdpi/ic_action_save_dark.png | Bin .../drawable-mdpi/ic_action_save_light.png | Bin .../drawable-mdpi/ic_action_search_dark.png | Bin .../drawable-mdpi/ic_action_search_light.png | Bin .../ic_action_sort_by_size_dark.png | Bin .../ic_action_sort_by_size_light.png | Bin .../drawable-mdpi/ic_action_start_dark.png | Bin .../drawable-mdpi/ic_action_start_light.png | Bin .../res/drawable-mdpi/ic_action_stop_dark.png | Bin .../drawable-mdpi/ic_action_stop_light.png | Bin .../drawable-mdpi/ic_action_trackers_dark.png | Bin .../ic_action_trackers_light.png | Bin .../ic_action_turtle_disabled.png | Bin .../ic_action_turtle_enabled.png | Bin .../drawable-mdpi/ic_action_website_dark.png | Bin .../drawable-mdpi/ic_action_website_light.png | Bin .../drawable-mdpi/ic_activity_torrents.png | Bin .../drawable-mdpi/ic_empty_details_dark.png | Bin .../drawable-mdpi/ic_empty_details_light.png | Bin .../main}/res/drawable-mdpi/ic_launcher.png | Bin .../drawable-mdpi/ic_stat_notification.png | Bin .../list_focused_transdroid.9.png | Bin .../list_focused_transdroid2.9.png | Bin .../menu_dropdown_panel_transdroid.9.png | Bin .../menu_dropdown_panel_transdroid2.9.png | Bin .../menu_hardkey_panel_transdroid.9.png | Bin .../progress_bg_transdroid.9.png | Bin .../progress_bg_transdroid2.9.png | Bin .../progress_primary_transdroid.9.png | Bin .../progress_primary_transdroid2.9.png | Bin .../progress_secondary_transdroid.9.png | Bin .../progress_secondary_transdroid2.9.png | Bin .../spinner_ab_default_transdroid.9.png | Bin .../spinner_ab_default_transdroid2.9.png | Bin .../spinner_ab_disabled_transdroid.9.png | Bin .../spinner_ab_disabled_transdroid2.9.png | Bin .../spinner_ab_focused_transdroid.9.png | Bin .../spinner_ab_focused_transdroid2.9.png | Bin .../spinner_ab_pressed_transdroid.9.png | Bin .../spinner_ab_pressed_transdroid2.9.png | Bin .../tab_selected_focused_transdroid.9.png | Bin .../tab_selected_focused_transdroid2.9.png | Bin .../tab_selected_pressed_transdroid.9.png | Bin .../tab_selected_pressed_transdroid2.9.png | Bin .../tab_selected_transdroid.9.png | Bin .../tab_selected_transdroid2.9.png | Bin .../tab_unselected_focused_transdroid.9.png | Bin .../tab_unselected_focused_transdroid2.9.png | Bin .../tab_unselected_pressed_transdroid.9.png | Bin .../tab_unselected_pressed_transdroid2.9.png | Bin .../tab_unselected_transdroid2.9.png | Bin .../ab_bottom_solid_transdroid.9.png | Bin .../ab_bottom_solid_transdroid2.9.png | Bin .../drawable-xhdpi/ab_solid_transdroid.9.png | Bin .../drawable-xhdpi/ab_solid_transdroid2.9.png | Bin .../ab_stacked_solid_transdroid.9.png | Bin .../ab_stacked_solid_transdroid2.9.png | Bin .../ab_texture_tile_transdroid2.png | Bin .../ab_transparent_transdroid.9.png | Bin .../ab_transparent_transdroid2.9.png | Bin .../abc_list_focused_holo.9.png | Bin .../abc_list_longpressed_holo.9.png | Bin .../abc_list_pressed_holo_dark.9.png | Bin .../abc_list_pressed_holo_light.9.png | Bin ...abc_list_selector_disabled_holo_dark.9.png | Bin ...bc_list_selector_disabled_holo_light.9.png | Bin .../btn_cab_done_default_transdroid2.9.png | Bin .../btn_cab_done_focused_transdroid2.9.png | Bin .../btn_cab_done_pressed_transdroid2.9.png | Bin .../cab_background_bottom_transdroid2.9.png | Bin .../cab_background_top_transdroid2.9.png | Bin .../drawable-xhdpi/ic_action_discard_dark.png | Bin .../ic_action_discard_light.png | Bin .../drawable-xhdpi/ic_action_done_dark.png | Bin .../drawable-xhdpi/ic_action_done_light.png | Bin .../drawable-xhdpi/ic_action_filter_dark.png | Bin .../drawable-xhdpi/ic_action_filter_light.png | Bin .../ic_action_forcerecheck_dark.png | Bin .../ic_action_forcerecheck_light.png | Bin .../drawable-xhdpi/ic_action_info_dark.png | Bin .../drawable-xhdpi/ic_action_info_light.png | Bin .../drawable-xhdpi/ic_action_labels_dark.png | Bin .../drawable-xhdpi/ic_action_labels_light.png | Bin .../res/drawable-xhdpi/ic_action_new_dark.png | Bin .../drawable-xhdpi/ic_action_new_light.png | Bin .../res/drawable-xhdpi/ic_action_overflow.png | Bin .../drawable-xhdpi/ic_action_pause_dark.png | Bin .../drawable-xhdpi/ic_action_pause_light.png | Bin .../ic_action_priority_high_dark.png | Bin .../ic_action_priority_high_light.png | Bin .../ic_action_priority_low_dark.png | Bin .../ic_action_priority_low_light.png | Bin .../ic_action_priority_normal_dark.png | Bin .../ic_action_priority_normal_light.png | Bin .../ic_action_priority_off_dark.png | Bin .../ic_action_priority_off_light.png | Bin .../drawable-xhdpi/ic_action_refresh_dark.png | Bin .../ic_action_refresh_light.png | Bin .../drawable-xhdpi/ic_action_remove_dark.png | Bin .../drawable-xhdpi/ic_action_remove_light.png | Bin .../drawable-xhdpi/ic_action_resume_dark.png | Bin .../drawable-xhdpi/ic_action_resume_light.png | Bin .../res/drawable-xhdpi/ic_action_rss_dark.png | Bin .../drawable-xhdpi/ic_action_rss_light.png | Bin .../drawable-xhdpi/ic_action_save_dark.png | Bin .../drawable-xhdpi/ic_action_save_light.png | Bin .../drawable-xhdpi/ic_action_search_dark.png | Bin .../drawable-xhdpi/ic_action_search_light.png | Bin .../ic_action_sort_by_size_light.png | Bin .../drawable-xhdpi/ic_action_start_dark.png | Bin .../drawable-xhdpi/ic_action_start_light.png | Bin .../drawable-xhdpi/ic_action_stop_dark.png | Bin .../drawable-xhdpi/ic_action_stop_light.png | Bin .../ic_action_trackers_dark.png | Bin .../ic_action_trackers_light.png | Bin .../ic_action_turtle_disabled.png | Bin .../ic_action_turtle_enabled.png | Bin .../drawable-xhdpi/ic_action_website_dark.png | Bin .../ic_action_website_light.png | Bin .../drawable-xhdpi/ic_activity_torrents.png | Bin .../drawable-xhdpi/ic_empty_details_dark.png | Bin .../drawable-xhdpi/ic_empty_details_light.png | Bin .../main}/res/drawable-xhdpi/ic_launcher.png | Bin .../drawable-xhdpi/ic_stat_notification.png | Bin .../list_focused_transdroid.9.png | Bin .../list_focused_transdroid2.9.png | Bin .../menu_dropdown_panel_transdroid.9.png | Bin .../menu_dropdown_panel_transdroid2.9.png | Bin .../menu_hardkey_panel_transdroid.9.png | Bin .../progress_bg_transdroid.9.png | Bin .../progress_bg_transdroid2.9.png | Bin .../progress_primary_transdroid.9.png | Bin .../progress_primary_transdroid2.9.png | Bin .../progress_secondary_transdroid.9.png | Bin .../progress_secondary_transdroid2.9.png | Bin .../spinner_ab_default_transdroid.9.png | Bin .../spinner_ab_default_transdroid2.9.png | Bin .../spinner_ab_disabled_transdroid.9.png | Bin .../spinner_ab_disabled_transdroid2.9.png | Bin .../spinner_ab_focused_transdroid.9.png | Bin .../spinner_ab_focused_transdroid2.9.png | Bin .../spinner_ab_pressed_transdroid.9.png | Bin .../spinner_ab_pressed_transdroid2.9.png | Bin .../tab_selected_focused_transdroid.9.png | Bin .../tab_selected_focused_transdroid2.9.png | Bin .../tab_selected_pressed_transdroid.9.png | Bin .../tab_selected_pressed_transdroid2.9.png | Bin .../tab_selected_transdroid.9.png | Bin .../tab_selected_transdroid2.9.png | Bin .../tab_unselected_focused_transdroid.9.png | Bin .../tab_unselected_focused_transdroid2.9.png | Bin .../tab_unselected_pressed_transdroid.9.png | Bin .../tab_unselected_pressed_transdroid2.9.png | Bin .../tab_unselected_transdroid2.9.png | Bin .../drawable-xxhdpi/ic_action_filter_dark.png | Bin .../ic_action_filter_light.png | Bin .../ic_action_forcerecheck_dark.png | Bin .../ic_action_forcerecheck_light.png | Bin .../drawable-xxhdpi/ic_action_info_dark.png | Bin .../drawable-xxhdpi/ic_action_info_light.png | Bin .../drawable-xxhdpi/ic_action_overflow.png | Bin .../drawable-xxhdpi/ic_action_save_dark.png | Bin .../drawable-xxhdpi/ic_action_save_light.png | Bin .../main}/res/drawable-xxhdpi/ic_launcher.png | Bin .../drawable-xxhdpi/ic_stat_notification.png | Bin .../ab_background_textured_transdroid2.xml | 0 ...lector_background_transition_holo_dark.xml | 0 ...ector_background_transition_holo_light.xml | 0 .../activatable_background_transdroid.xml | 0 .../activatable_background_transdroid2.xml | 0 .../res/drawable/btn_cab_done_transdroid2.xml | 0 .../drawable/details_list_background_dark.xml | 0 .../details_list_background_light.xml | 0 .../res/drawable/loading_progress_dark.xml | 0 .../res/drawable/loading_progress_light.xml | 0 .../pressed_background_transdroid.xml | 0 .../pressed_background_transdroid2.xml | 0 .../src/main}/res/drawable/section_header.xml | 0 .../selectable_background_holo_light.xml | 0 .../selectable_background_transdroid.xml | 0 .../selectable_background_transdroid2.xml | 0 .../spinner_background_ab_transdroid.xml | 0 .../spinner_background_ab_transdroid2.xml | 0 .../drawable/tab_indicator_ab_transdroid.xml | 0 .../drawable/tab_indicator_ab_transdroid2.xml | 0 .../res/layout-land/dialog_color_picker.xml | 0 .../res/layout-w600dp/activity_search.xml | 0 .../res/layout-w600dp/activity_torrents.xml | 0 .../res/layout-w900dp/activity_rssfeeds.xml | 0 .../res/layout-w900dp/activity_torrents.xml | 0 .../main}/res/layout/actionbar_donebutton.xml | 0 .../main}/res/layout/actionbar_navigation.xml | 0 .../main}/res/layout/actionbar_searchsite.xml | 0 .../res/layout/actionbar_serverstatus.xml | 0 .../src/main}/res/layout/activity_details.xml | 0 .../main}/res/layout/activity_rssfeeds.xml | 0 .../main}/res/layout/activity_rssitems.xml | 0 .../src/main}/res/layout/activity_search.xml | 0 .../main}/res/layout/activity_torrents.xml | 0 .../res/layout/activity_widgetconfig.xml | 0 .../src/main}/res/layout/dialog_about.xml | 0 .../src/main}/res/layout/dialog_changelog.xml | 0 .../main}/res/layout/dialog_color_picker.xml | 0 .../src/main}/res/layout/dialog_setlabel.xml | 0 .../res/layout/dialog_storagelocation.xml | 0 .../src/main}/res/layout/dialog_trackers.xml | 0 .../main}/res/layout/dialog_transferrates.xml | 0 .../src/main}/res/layout/fragment_details.xml | 0 .../res/layout/fragment_details_header.xml | 0 .../src/main}/res/layout/fragment_filters.xml | 0 .../main}/res/layout/fragment_rssfeeds.xml | 0 .../main}/res/layout/fragment_rssitems.xml | 0 .../res/layout/fragment_searchresults.xml | 0 .../main}/res/layout/fragment_torrents.xml | 0 .../src/main}/res/layout/list_item_filter.xml | 0 .../main}/res/layout/list_item_rssfeed.xml | 0 .../main}/res/layout/list_item_rssitem.xml | 0 .../res/layout/list_item_searchresult.xml | 0 .../main}/res/layout/list_item_searchsite.xml | 0 .../main}/res/layout/list_item_separator.xml | 0 .../src/main}/res/layout/list_item_simple.xml | 0 .../main}/res/layout/list_item_torrent.xml | 0 .../res/layout/list_item_torrentfile.xml | 0 .../res/layout/list_item_widget_dark.xml | 0 .../res/layout/list_item_widget_light.xml | 0 .../main}/res/layout/pref_withoverflow.xml | 0 .../main}/res/layout/widget_torrents_dark.xml | 0 .../res/layout/widget_torrents_light.xml | 0 .../res/menu/activity_deleteableprefs.xml | 0 .../src/main}/res/menu/activity_details.xml | 0 .../src/main}/res/menu/activity_search.xml | 0 .../src/main}/res/menu/activity_torrents.xml | 0 .../src/main}/res/menu/dialog_about.xml | 0 .../src/main}/res/menu/fragment_details.xml | 0 .../main}/res/menu/fragment_details_cab.xml | 0 .../src/main}/res/menu/fragment_rssfeeds.xml | 0 .../main}/res/menu/fragment_rssitems_cab.xml | 0 .../res/menu/fragment_searchresults_cab.xml | 0 .../main}/res/menu/fragment_torrents_cab.xml | 0 .../src/main}/res/values-cs/strings.xml | 0 .../src/main}/res/values-da/strings.xml | 0 .../src/main}/res/values-de/strings.xml | 0 .../src/main}/res/values-en/strings.xml | 0 .../src/main}/res/values-es/strings.xml | 0 .../src/main}/res/values-fa/strings.xml | 0 .../src/main}/res/values-fi/strings.xml | 0 .../src/main}/res/values-fr/strings.xml | 0 .../src/main}/res/values-h400dp/dimens.xml | 0 .../src/main}/res/values-h600dp/dimens.xml | 0 .../src/main}/res/values-hu/strings.xml | 0 .../src/main}/res/values-it/strings.xml | 0 .../src/main}/res/values-land/dimens.xml | 0 .../src/main}/res/values-nl/strings.xml | 0 .../src/main}/res/values-no-rNB/strings.xml | 0 .../src/main}/res/values-pt-rBR/strings.xml | 0 .../src/main}/res/values-pt/strings.xml | 0 .../src/main}/res/values-ru/strings.xml | 0 .../src/main}/res/values-sl/strings.xml | 0 .../src/main}/res/values-sv/strings.xml | 0 .../src/main}/res/values-sw500dp/bools.xml | 0 .../src/main}/res/values-sw600dp/dimens.xml | 0 .../src/main}/res/values-uk/strings.xml | 0 .../src/main}/res/values-v16/styles.xml | 0 .../src/main}/res/values-vi/strings.xml | 0 .../src/main}/res/values-zh-rCN/strings.xml | 0 {core => app/src/main}/res/values/attrs.xml | 0 {core => app/src/main}/res/values/bools.xml | 0 .../src/main}/res/values/changelog.xml | 2 + {core => app/src/main}/res/values/colors.xml | 0 .../res/values/colors_transdroid_dark.xml | 0 .../res/values/colors_transdroid_light.xml | 0 {core => app/src/main}/res/values/dimens.xml | 0 .../main/res/values/integer_colorpicker.xml | 0 {core => app/src/main}/res/values/strings.xml | 2 +- .../main/res/values/strings_colorpicker.xml | 0 {core => app/src/main}/res/values/styles.xml | 6 +- .../res/values/styles_transdroid_dark.xml | 2 - .../res/values/styles_transdroid_light.xml | 0 .../src/main}/res/xml/listwidget_info.xml | 0 {core => app/src/main}/res/xml/pref_help.xml | 0 {core => app/src/main}/res/xml/pref_main.xml | 0 .../src/main}/res/xml/pref_notifications.xml | 0 .../src/main}/res/xml/pref_rssfeed.xml | 0 .../main}/res/xml/pref_seedbox_seedstuff.xml | 0 .../main}/res/xml/pref_seedbox_xirvikdedi.xml | 0 .../main}/res/xml/pref_seedbox_xirviksemi.xml | 0 .../res/xml/pref_seedbox_xirvikshared.xml | 0 .../src/main}/res/xml/pref_server.xml | 0 .../src/main}/res/xml/pref_system.xml | 0 .../src/main}/res/xml/pref_websearch.xml | 0 {core => app/src/main}/res/xml/searchable.xml | 2 +- build.gradle | 16 + core/.classpath | 15 - core/.factorypath | 3 - core/.project | 33 - core/.settings/org.eclipse.jdt.apt.core.prefs | 4 - core/.settings/org.eclipse.jdt.core.prefs | 2 - core/AndroidManifest.xml | 27 - core/build.xml | 92 -- .../androidannotations-3.0-SNAPSHOT.jar | Bin 591631 -> 0 bytes core/custom_rules.xml | 92 -- core/libs/.gitignore | 1 - .../androidannotations-api-3.0-SNAPSHOT.jar | Bin 43730 -> 0 bytes core/libs/ormlite-android-4.24.jar | Bin 32707 -> 0 bytes core/libs/ormlite-core-4.24.jar | Bin 216486 -> 0 bytes core/libs/universal-image-loader-1.8.4.jar | Bin 122698 -> 0 bytes core/proguard-project.txt | 20 - core/project.properties | 18 - .../AndroidManifest.xml | 7 - external/ActionBar-PullToRefresh/build.gradle | 16 - external/ActionBar-PullToRefresh/build.xml | 92 -- .../ActionBar-PullToRefresh/gradle.properties | 3 - .../proguard-project.txt | 20 - .../project.properties | 15 - .../ptr_progress_primary_holo.9.png | Bin 257 -> 0 bytes .../ptr_progressbar_indeterminate_holo1.png | Bin 603 -> 0 bytes .../ptr_progressbar_indeterminate_holo2.png | Bin 725 -> 0 bytes .../ptr_progressbar_indeterminate_holo3.png | Bin 716 -> 0 bytes .../ptr_progressbar_indeterminate_holo4.png | Bin 761 -> 0 bytes .../ptr_progressbar_indeterminate_holo5.png | Bin 675 -> 0 bytes .../ptr_progressbar_indeterminate_holo6.png | Bin 761 -> 0 bytes .../ptr_progressbar_indeterminate_holo7.png | Bin 647 -> 0 bytes .../ptr_progressbar_indeterminate_holo8.png | Bin 692 -> 0 bytes .../ptr_progress_primary_holo.9.png | Bin 272 -> 0 bytes .../ptr_progressbar_indeterminate_holo1.png | Bin 602 -> 0 bytes .../ptr_progressbar_indeterminate_holo2.png | Bin 716 -> 0 bytes .../ptr_progressbar_indeterminate_holo3.png | Bin 778 -> 0 bytes .../ptr_progressbar_indeterminate_holo4.png | Bin 771 -> 0 bytes .../ptr_progressbar_indeterminate_holo5.png | Bin 722 -> 0 bytes .../ptr_progressbar_indeterminate_holo6.png | Bin 824 -> 0 bytes .../ptr_progressbar_indeterminate_holo7.png | Bin 721 -> 0 bytes .../ptr_progressbar_indeterminate_holo8.png | Bin 741 -> 0 bytes .../ptr_progress_horizontal_holo_center.xml | 27 - ...progress_indeterminate_horizontal_holo.xml | 45 - .../res/layout/default_header.xml | 45 - .../res/values-ar/pull_refresh_strings.xml | 21 - .../res/values-cs/pull_refresh_strings.xml | 21 - .../res/values-de/pull_refresh_strings.xml | 21 - .../res/values-es/pull_refresh_strings.xml | 22 - .../res/values-fi/pull_refresh_strings.xml | 21 - .../res/values-fr/pull_refresh_strings.xml | 21 - .../res/values-he/pull_refresh_strings.xml | 22 - .../res/values-it/pull_refresh_strings.xml | 21 - .../res/values-iw/pull_refresh_strings.xml | 21 - .../res/values-ja/pull_refresh_strings.xml | 22 - .../res/values-ko/pull_refresh_strings.xml | 22 - .../res/values-nl/pull_refresh_strings.xml | 21 - .../res/values-pl/pull_refresh_strings.xml | 21 - .../values-pt-rBR/pull_refresh_strings.xml | 22 - .../res/values-pt/pull_refresh_strings.xml | 21 - .../res/values-ro/pull_refresh_strings.xml | 21 - .../res/values-ru/pull_refresh_strings.xml | 21 - .../res/values-sv/pull_refresh_strings.xml | 23 - .../res/values-zh/pull_refresh_strings.xml | 22 - .../res/values/attrs.xml | 48 - .../res/values/ids.xml | 24 - .../res/values/pull_refresh_strings.xml | 23 - .../res/values/styles.xml | 29 - .../library/DefaultHeaderTransformer.java | 397 -------- .../library/InstanceCreationUtils.java | 91 -- .../library/PullToRefreshAttacher.java | 948 ----------------- .../library/PullToRefreshLayout.java | 133 --- .../library/platform/SDK11.java | 27 - .../viewdelegates/AbsListViewDelegate.java | 93 -- .../viewdelegates/ScrollYDelegate.java | 32 - .../viewdelegates/WebViewDelegate.java | 35 - external/ColorPickerPreference/.classpath | 9 - 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/ant.properties | 17 - external/ColorPickerPreference/build.xml | 92 -- .../proguard-project.txt | 20 - external/ColorPickerPreference/proguard.cfg | 34 - .../ColorPickerPreference/project.properties | 12 - .../res/drawable-hdpi/icon.png | Bin 4147 -> 0 bytes .../res/drawable-ldpi/icon.png | Bin 1723 -> 0 bytes .../res/drawable-mdpi/icon.png | Bin 2574 -> 0 bytes .../res/xml/settings.xml | 32 - external/ColorPickerPreference/screen_1.png | Bin 124593 -> 0 bytes external/ColorPickerPreference/screen_2.png | Bin 68429 -> 0 bytes .../preference/colorpicker/Test.java | 43 - external/Crouton/.gitignore | 41 - external/Crouton/LICENSE | 202 ---- external/Crouton/README.markdown | 199 ---- external/Crouton/build.gradle | 0 external/Crouton/library/.classpath | 9 - external/Crouton/library/.project | 33 - external/Crouton/library/AndroidManifest.xml | 23 - external/Crouton/library/ant.properties | 17 - external/Crouton/library/build.xml | 92 -- external/Crouton/library/project.properties | 16 - .../android/widget/crouton/Configuration.java | 130 --- .../android/widget/crouton/Crouton.java | 964 ------------------ .../crouton/DefaultAnimationsBuilder.java | 88 -- .../widget/crouton/LifecycleCallback.java | 28 - .../android/widget/crouton/Manager.java | 455 --------- .../android/widget/crouton/Style.java | 536 ---------- external/Crouton/pom.xml | 102 -- full/.classpath | 9 - full/.project | 33 - full/ant.properties | 2 - full/build.xml | 92 -- full/proguard-project.txt | 20 - full/project.properties | 15 - gradle.properties | 18 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 +++ gradlew.bat | 90 ++ lib/.classpath | 7 - lib/.project | 17 - lib/.settings/org.eclipse.jdt.core.prefs | 12 - lib/build.xml | 37 - lite/.classpath | 9 - lite/.project | 33 - lite/AndroidManifest.xml | 245 ----- lite/ant.properties | 2 - lite/build.xml | 92 -- lite/proguard-project.txt | 20 - lite/project.properties | 15 - settings.gradle | 1 + 836 files changed, 867 insertions(+), 7417 deletions(-) create mode 100644 app/build.gradle rename {full => app/src/full}/res/values/bools.xml (100%) rename {full => app/src/full}/res/values/strings.xml (100%) rename {lite => app/src/lite}/res/values/bools.xml (100%) rename {lite => app/src/lite}/res/values/strings.xml (100%) rename {full => app/src/main}/AndroidManifest.xml (97%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/BitCometFilePart.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/ByteArrayPartSource.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/FilePart.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/FilePartSource.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/MultipartEntity.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/Part.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/PartBase.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/PartSource.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/StringPart.java (100%) rename {lib/src => app/src/main/java}/com/android/internalcopy/http/multipart/Utf8StringPart.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/Call.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/ResponseParser.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCCallback.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCClient.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCException.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCRuntimeException.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCServerException.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLRPCTimeoutException.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/XMLUtil.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/ArraySerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/Base64Serializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/BooleanSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/DateTimeSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/DoubleSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/IntSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/LongSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/NullSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/Serializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/SerializerHandler.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/StringSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/serializer/StructSerializer.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/xmlcreator/SimpleXMLCreator.java (100%) rename {lib/src => app/src/main/java}/de/timroes/axmlrpc/xmlcreator/XmlElement.java (100%) rename {lib/src => app/src/main/java}/de/timroes/base64/Base64.java (100%) rename {external/ColorPickerPreference/src => app/src/main/java}/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java (96%) rename {external/ColorPickerPreference/src => app/src/main/java}/net/margaritov/preference/colorpicker/ColorPickerDialog.java (90%) rename {external/ColorPickerPreference/src => app/src/main/java}/net/margaritov/preference/colorpicker/ColorPickerPanelView.java (75%) rename {external/ColorPickerPreference/src => app/src/main/java}/net/margaritov/preference/colorpicker/ColorPickerPreference.java (50%) rename {external/ColorPickerPreference/src => app/src/main/java}/net/margaritov/preference/colorpicker/ColorPickerView.java (68%) rename {lib/src => app/src/main/java}/org/apache/openjpa/lib/util/Base16Encoder.java (100%) rename {lib/src => app/src/main/java}/org/base64/android/Base64.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/search/GoogleWebSearchBarcodeResolver.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/search/SearchHelper.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/search/SearchResult.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/search/SearchSite.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/ApplicationSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/NotificationSettings.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/RssfeedSetting.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/ServerSetting.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/SettingsPersistence.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/SystemSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/app/settings/WebsearchSetting.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/DetailsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/DetailsFragment.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/FilterEntryDialog.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/ServerPickerDialog.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/ServerStatusView.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/TorrentTasksExecutor.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/TorrentsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/TorrentsFragment.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/DetailsAdapter.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/LocalTorrent.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/MergeAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java (93%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/SimpleListItem.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/SimpleListItemAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/SimpleListItemSpinnerAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/SimpleListItemView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/SortByListItem.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentDetailsView.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentFileView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentProgressBar.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentStatusLayout.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/TorrentsAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/lists/ViewHolderAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/log/DatabaseHelper.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/log/ErrorLogEntry.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/log/ErrorLogSender.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/log/Log.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/DialogHelper.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/FilterListAdapter.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/FilterListItemAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/FilterListItemView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/FilterSeparatorView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/Label.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/NavigationFilter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/NavigationHelper.java (83%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/NavigationSelectionView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/RefreshableActivity.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SelectionManagerMode.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SetLabelDialog.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SetTrackersDialog.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/navigation/StatusType.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssfeedLoader.java (97%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssfeedView.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssfeedsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssfeedsAdapter.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssfeedsFragment.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssitemStatusLayout.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssitemView.java (97%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssitemsActivity.java (97%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssitemsAdapter.java (95%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/rss/RssitemsFragment.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/BarcodeHelper.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/FilePickerHelper.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchHistoryProvider.java (90%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchResultView.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchResultsAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchResultsFragment.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchSetting.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchSettingSelectionView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchSettingsDropDownAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchSiteView.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SearchSitesAdapter.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/SendIntentHelper.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/search/UrlEntryDialog.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/AboutDialog.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/ChangelogDialog.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/HelpSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/MainSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/NotificationSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/OverflowPreference.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/RssfeedPreference.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/ServerPreference.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/ServerSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/SystemSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/WebsearchPreference.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/rssparser/Channel.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/rssparser/HttpHelper.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/rssparser/Item.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/rssparser/RssParser.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedboxPreference.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedboxProvider.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedboxSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedboxSettingsImpl.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedstuffSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikDediSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikSemiSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java (98%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikSharedSettings.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/service/AlarmReceiver.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/service/AppUpdateService.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/service/BootReceiver.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/service/ConnectivityHelper.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/service/ControlService.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/service/RssCheckerService.java (97%) rename {core/src => app/src/main/java}/org/transdroid/core/service/ServerCheckerService.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/widget/ListWidgetConfig.java (100%) rename {core/src => app/src/main/java}/org/transdroid/core/widget/ListWidgetConfigActivity.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/widget/ListWidgetPreviewAdapter.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/widget/ListWidgetProvider.java (99%) rename {core/src => app/src/main/java}/org/transdroid/core/widget/ListWidgetViewsService.java (99%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/AlphanumComparator.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Aria2c/Aria2Adapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/BitComet/BitCometAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Bitflu/BitfluAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Daemon.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/DaemonException.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/DaemonMethod.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/DaemonSettings.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Deluge/DelugeAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/DummyAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Finishable.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/IDaemonAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/IDaemonCallback.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Ktorrent/FileListParser.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Ktorrent/KtorrentAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Ktorrent/LoggedOutException.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Ktorrent/StatsParser.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Label.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/OS.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Priority.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Synology/SynologyAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TaskQueue.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Tfb4rt/StatsParser.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Tfb4rt/Tfb4rtAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Torrent.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentDetails.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentFile.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentFilesComparator.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentFilesSortBy.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentStatus.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentsComparator.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/TorrentsSortBy.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Transmission/TransmissionAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Utorrent/UtorrentAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Vuze/VuzeAdapter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/Vuze/VuzeXmlOverHttpClient.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/AddByFileTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/AddByMagnetUrlTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/AddByUrlTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/DaemonTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/DaemonTaskFailureResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/DaemonTaskResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/DaemonTaskSuccessResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/ForceRecheckTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetFileListTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetFileListTaskSuccessResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetStatsTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetStatsTaskSuccessResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetTorrentDetailsTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/GetTorrentDetailsTaskSuccessResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/PauseAllTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/PauseTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/RemoveTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/ResumeAllTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/ResumeTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/RetrieveTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/RetrieveTaskSuccessResult.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetAlternativeModeTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetDownloadLocationTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetFilePriorityTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetLabelTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetTrackersTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/SetTransferRatesTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/StartAllTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/StartTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/StopAllTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/task/StopTask.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/Collections2.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/DLog.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/FakeSocketFactory.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/FakeTrustManager.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/FileSizeConverter.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/HttpHelper.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/ITLogger.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/Pair.java (100%) rename {lib/src => app/src/main/java}/org/transdroid/daemon/util/TimespanConverter.java (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_bottom_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_stacked_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_texture_tile_transdroid2.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_transparent_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ab_transparent_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_focused_holo.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_longpressed_holo.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_pressed_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/btn_cab_done_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/btn_cab_done_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/btn_cab_done_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/cab_background_bottom_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/cab_background_top_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_discard_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_discard_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_done_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_done_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_filter_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_filter_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_forcerecheck_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_forcerecheck_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_info_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_info_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_labels_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_labels_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_new_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_new_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_overflow.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_pause_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_pause_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_high_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_high_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_low_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_low_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_normal_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_normal_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_off_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_priority_off_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_refresh_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_refresh_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_remove_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_remove_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_resume_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_resume_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_rss_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_rss_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_save_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_save_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_search_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_search_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_sort_by_size_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_sort_by_size_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_start_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_start_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_stop_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_stop_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_trackers_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_trackers_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_turtle_disabled_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_turtle_enabled.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_website_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_action_website_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_activity_torrents.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_empty_details_dark.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_empty_details_light.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_launcher.png (100%) rename {core => app/src/main}/res/drawable-hdpi/ic_stat_notification.png (100%) rename {core => app/src/main}/res/drawable-hdpi/list_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/list_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/menu_dropdown_panel_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_bg_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_bg_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_primary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_primary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_secondary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/progress_secondary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_default_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_disabled_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/spinner_ab_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_selected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_unselected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_unselected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/tab_unselected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-hdpi/widget_preview.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_bottom_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_stacked_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_texture_tile_transdroid2.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_transparent_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ab_transparent_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_focused_holo.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_longpressed_holo.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_pressed_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/btn_cab_done_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/btn_cab_done_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/btn_cab_done_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/cab_background_bottom_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/cab_background_top_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_discard.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_discard_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_done_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_done_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_filter_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_filter_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_forcerecheck_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_forcerecheck_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_info_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_info_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_labels_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_labels_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_new_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_new_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_overflow.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_pause_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_pause_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_high_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_high_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_low_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_low_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_normal_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_normal_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_off_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_priority_off_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_refresh_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_refresh_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_remove_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_remove_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_resume_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_resume_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_rss_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_rss_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_save_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_save_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_search_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_search_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_sort_by_size_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_sort_by_size_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_start_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_start_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_stop_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_stop_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_trackers_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_trackers_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_turtle_disabled.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_turtle_enabled.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_website_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_action_website_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_activity_torrents.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_empty_details_dark.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_empty_details_light.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_launcher.png (100%) rename {core => app/src/main}/res/drawable-mdpi/ic_stat_notification.png (100%) rename {core => app/src/main}/res/drawable-mdpi/list_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/list_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/menu_dropdown_panel_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_bg_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_bg_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_primary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_primary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_secondary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/progress_secondary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_default_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_disabled_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/spinner_ab_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_selected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_unselected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_unselected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-mdpi/tab_unselected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_bottom_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_stacked_solid_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_texture_tile_transdroid2.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_transparent_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ab_transparent_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_focused_holo.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_longpressed_holo.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/btn_cab_done_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/btn_cab_done_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/btn_cab_done_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/cab_background_bottom_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/cab_background_top_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_discard_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_discard_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_done_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_done_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_filter_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_filter_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_forcerecheck_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_forcerecheck_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_info_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_info_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_labels_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_labels_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_new_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_new_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_overflow.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_pause_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_pause_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_high_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_high_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_low_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_low_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_normal_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_normal_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_off_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_priority_off_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_refresh_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_refresh_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_remove_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_remove_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_resume_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_resume_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_rss_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_rss_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_save_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_save_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_search_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_search_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_sort_by_size_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_start_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_start_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_stop_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_stop_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_trackers_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_trackers_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_turtle_disabled.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_turtle_enabled.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_website_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_action_website_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_activity_torrents.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_empty_details_dark.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_empty_details_light.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_launcher.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/ic_stat_notification.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/list_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/list_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/menu_dropdown_panel_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_bg_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_bg_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_primary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_primary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_secondary_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/progress_secondary_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_default_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_disabled_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/spinner_ab_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_selected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_unselected_focused_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_unselected_pressed_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xhdpi/tab_unselected_transdroid2.9.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_filter_dark.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_filter_light.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_forcerecheck_dark.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_forcerecheck_light.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_info_dark.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_info_light.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_overflow.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_save_dark.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_action_save_light.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_launcher.png (100%) rename {core => app/src/main}/res/drawable-xxhdpi/ic_stat_notification.png (100%) rename {core => app/src/main}/res/drawable/ab_background_textured_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/abc_list_selector_background_transition_holo_dark.xml (100%) rename {core => app/src/main}/res/drawable/abc_list_selector_background_transition_holo_light.xml (100%) rename {core => app/src/main}/res/drawable/activatable_background_transdroid.xml (100%) rename {core => app/src/main}/res/drawable/activatable_background_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/btn_cab_done_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/details_list_background_dark.xml (100%) rename {core => app/src/main}/res/drawable/details_list_background_light.xml (100%) rename {core => app/src/main}/res/drawable/loading_progress_dark.xml (100%) rename {core => app/src/main}/res/drawable/loading_progress_light.xml (100%) rename {core => app/src/main}/res/drawable/pressed_background_transdroid.xml (100%) rename {core => app/src/main}/res/drawable/pressed_background_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/section_header.xml (100%) rename {core => app/src/main}/res/drawable/selectable_background_holo_light.xml (100%) rename {core => app/src/main}/res/drawable/selectable_background_transdroid.xml (100%) rename {core => app/src/main}/res/drawable/selectable_background_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/spinner_background_ab_transdroid.xml (100%) rename {core => app/src/main}/res/drawable/spinner_background_ab_transdroid2.xml (100%) rename {core => app/src/main}/res/drawable/tab_indicator_ab_transdroid.xml (100%) rename {core => app/src/main}/res/drawable/tab_indicator_ab_transdroid2.xml (100%) rename {external/ColorPickerPreference => app/src/main}/res/layout-land/dialog_color_picker.xml (100%) rename {core => app/src/main}/res/layout-w600dp/activity_search.xml (100%) rename {core => app/src/main}/res/layout-w600dp/activity_torrents.xml (100%) rename {core => app/src/main}/res/layout-w900dp/activity_rssfeeds.xml (100%) rename {core => app/src/main}/res/layout-w900dp/activity_torrents.xml (100%) rename {core => app/src/main}/res/layout/actionbar_donebutton.xml (100%) rename {core => app/src/main}/res/layout/actionbar_navigation.xml (100%) rename {core => app/src/main}/res/layout/actionbar_searchsite.xml (100%) rename {core => app/src/main}/res/layout/actionbar_serverstatus.xml (100%) rename {core => app/src/main}/res/layout/activity_details.xml (100%) rename {core => app/src/main}/res/layout/activity_rssfeeds.xml (100%) rename {core => app/src/main}/res/layout/activity_rssitems.xml (100%) rename {core => app/src/main}/res/layout/activity_search.xml (100%) rename {core => app/src/main}/res/layout/activity_torrents.xml (100%) rename {core => app/src/main}/res/layout/activity_widgetconfig.xml (100%) rename {core => app/src/main}/res/layout/dialog_about.xml (100%) rename {core => app/src/main}/res/layout/dialog_changelog.xml (100%) rename {external/ColorPickerPreference => app/src/main}/res/layout/dialog_color_picker.xml (100%) rename {core => app/src/main}/res/layout/dialog_setlabel.xml (100%) rename {core => app/src/main}/res/layout/dialog_storagelocation.xml (100%) rename {core => app/src/main}/res/layout/dialog_trackers.xml (100%) rename {core => app/src/main}/res/layout/dialog_transferrates.xml (100%) rename {core => app/src/main}/res/layout/fragment_details.xml (100%) rename {core => app/src/main}/res/layout/fragment_details_header.xml (100%) rename {core => app/src/main}/res/layout/fragment_filters.xml (100%) rename {core => app/src/main}/res/layout/fragment_rssfeeds.xml (100%) rename {core => app/src/main}/res/layout/fragment_rssitems.xml (100%) rename {core => app/src/main}/res/layout/fragment_searchresults.xml (100%) rename {core => app/src/main}/res/layout/fragment_torrents.xml (100%) rename {core => app/src/main}/res/layout/list_item_filter.xml (100%) rename {core => app/src/main}/res/layout/list_item_rssfeed.xml (100%) rename {core => app/src/main}/res/layout/list_item_rssitem.xml (100%) rename {core => app/src/main}/res/layout/list_item_searchresult.xml (100%) rename {core => app/src/main}/res/layout/list_item_searchsite.xml (100%) rename {core => app/src/main}/res/layout/list_item_separator.xml (100%) rename {core => app/src/main}/res/layout/list_item_simple.xml (100%) rename {core => app/src/main}/res/layout/list_item_torrent.xml (100%) rename {core => app/src/main}/res/layout/list_item_torrentfile.xml (100%) rename {core => app/src/main}/res/layout/list_item_widget_dark.xml (100%) rename {core => app/src/main}/res/layout/list_item_widget_light.xml (100%) rename {core => app/src/main}/res/layout/pref_withoverflow.xml (100%) rename {core => app/src/main}/res/layout/widget_torrents_dark.xml (100%) rename {core => app/src/main}/res/layout/widget_torrents_light.xml (100%) rename {core => app/src/main}/res/menu/activity_deleteableprefs.xml (100%) rename {core => app/src/main}/res/menu/activity_details.xml (100%) rename {core => app/src/main}/res/menu/activity_search.xml (100%) rename {core => app/src/main}/res/menu/activity_torrents.xml (100%) rename {core => app/src/main}/res/menu/dialog_about.xml (100%) rename {core => app/src/main}/res/menu/fragment_details.xml (100%) rename {core => app/src/main}/res/menu/fragment_details_cab.xml (100%) rename {core => app/src/main}/res/menu/fragment_rssfeeds.xml (100%) rename {core => app/src/main}/res/menu/fragment_rssitems_cab.xml (100%) rename {core => app/src/main}/res/menu/fragment_searchresults_cab.xml (100%) rename {core => app/src/main}/res/menu/fragment_torrents_cab.xml (100%) rename {core => app/src/main}/res/values-cs/strings.xml (100%) rename {core => app/src/main}/res/values-da/strings.xml (100%) rename {core => app/src/main}/res/values-de/strings.xml (100%) rename {core => app/src/main}/res/values-en/strings.xml (100%) rename {core => app/src/main}/res/values-es/strings.xml (100%) rename {core => app/src/main}/res/values-fa/strings.xml (100%) rename {core => app/src/main}/res/values-fi/strings.xml (100%) rename {core => app/src/main}/res/values-fr/strings.xml (100%) rename {core => app/src/main}/res/values-h400dp/dimens.xml (100%) rename {core => app/src/main}/res/values-h600dp/dimens.xml (100%) rename {core => app/src/main}/res/values-hu/strings.xml (100%) rename {core => app/src/main}/res/values-it/strings.xml (100%) rename {core => app/src/main}/res/values-land/dimens.xml (100%) rename {core => app/src/main}/res/values-nl/strings.xml (100%) rename {core => app/src/main}/res/values-no-rNB/strings.xml (100%) rename {core => app/src/main}/res/values-pt-rBR/strings.xml (100%) rename {core => app/src/main}/res/values-pt/strings.xml (100%) rename {core => app/src/main}/res/values-ru/strings.xml (100%) rename {core => app/src/main}/res/values-sl/strings.xml (100%) rename {core => app/src/main}/res/values-sv/strings.xml (100%) rename {core => app/src/main}/res/values-sw500dp/bools.xml (100%) rename {core => app/src/main}/res/values-sw600dp/dimens.xml (100%) rename {core => app/src/main}/res/values-uk/strings.xml (100%) rename {core => app/src/main}/res/values-v16/styles.xml (100%) rename {core => app/src/main}/res/values-vi/strings.xml (100%) rename {core => app/src/main}/res/values-zh-rCN/strings.xml (100%) rename {core => app/src/main}/res/values/attrs.xml (100%) rename {core => app/src/main}/res/values/bools.xml (100%) rename {core => app/src/main}/res/values/changelog.xml (97%) rename {core => app/src/main}/res/values/colors.xml (100%) rename {core => app/src/main}/res/values/colors_transdroid_dark.xml (100%) rename {core => app/src/main}/res/values/colors_transdroid_light.xml (100%) rename {core => app/src/main}/res/values/dimens.xml (100%) rename external/ColorPickerPreference/res/values/integer.xml => app/src/main/res/values/integer_colorpicker.xml (100%) rename {core => app/src/main}/res/values/strings.xml (99%) rename external/ColorPickerPreference/res/values/strings.xml => app/src/main/res/values/strings_colorpicker.xml (100%) rename {core => app/src/main}/res/values/styles.xml (97%) rename {core => app/src/main}/res/values/styles_transdroid_dark.xml (96%) rename {core => app/src/main}/res/values/styles_transdroid_light.xml (100%) rename {core => app/src/main}/res/xml/listwidget_info.xml (100%) rename {core => app/src/main}/res/xml/pref_help.xml (100%) rename {core => app/src/main}/res/xml/pref_main.xml (100%) rename {core => app/src/main}/res/xml/pref_notifications.xml (100%) rename {core => app/src/main}/res/xml/pref_rssfeed.xml (100%) rename {core => app/src/main}/res/xml/pref_seedbox_seedstuff.xml (100%) rename {core => app/src/main}/res/xml/pref_seedbox_xirvikdedi.xml (100%) rename {core => app/src/main}/res/xml/pref_seedbox_xirviksemi.xml (100%) rename {core => app/src/main}/res/xml/pref_seedbox_xirvikshared.xml (100%) rename {core => app/src/main}/res/xml/pref_server.xml (100%) rename {core => app/src/main}/res/xml/pref_system.xml (100%) rename {core => app/src/main}/res/xml/pref_websearch.xml (100%) rename {core => app/src/main}/res/xml/searchable.xml (91%) create mode 100644 build.gradle delete mode 100644 core/.classpath delete mode 100644 core/.factorypath delete mode 100644 core/.project delete mode 100644 core/.settings/org.eclipse.jdt.apt.core.prefs delete mode 100644 core/.settings/org.eclipse.jdt.core.prefs delete mode 100644 core/AndroidManifest.xml delete mode 100644 core/build.xml delete mode 100644 core/compile-libs/androidannotations-3.0-SNAPSHOT.jar delete mode 100644 core/custom_rules.xml delete mode 100644 core/libs/.gitignore delete mode 100644 core/libs/androidannotations-api-3.0-SNAPSHOT.jar delete mode 100644 core/libs/ormlite-android-4.24.jar delete mode 100644 core/libs/ormlite-core-4.24.jar delete mode 100644 core/libs/universal-image-loader-1.8.4.jar delete mode 100644 core/proguard-project.txt delete mode 100644 core/project.properties delete mode 100644 external/ActionBar-PullToRefresh/AndroidManifest.xml delete mode 100644 external/ActionBar-PullToRefresh/build.gradle delete mode 100644 external/ActionBar-PullToRefresh/build.xml delete mode 100644 external/ActionBar-PullToRefresh/gradle.properties delete mode 100644 external/ActionBar-PullToRefresh/proguard-project.txt delete mode 100644 external/ActionBar-PullToRefresh/project.properties delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progress_primary_holo.9.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo1.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo2.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo3.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo4.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo5.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo6.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo7.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-hdpi/ptr_progressbar_indeterminate_holo8.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progress_primary_holo.9.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo1.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo2.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo3.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo4.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo5.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo6.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo7.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable-xhdpi/ptr_progressbar_indeterminate_holo8.png delete mode 100644 external/ActionBar-PullToRefresh/res/drawable/ptr_progress_horizontal_holo_center.xml delete mode 100644 external/ActionBar-PullToRefresh/res/drawable/ptr_progress_indeterminate_horizontal_holo.xml delete mode 100644 external/ActionBar-PullToRefresh/res/layout/default_header.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values-ar/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-cs/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-de/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-es/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-fi/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-fr/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values-he/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-it/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values-iw/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values-ja/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-ko/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-nl/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-pl/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-pt-rBR/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-pt/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values-ro/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-ru/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-sv/pull_refresh_strings.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values-zh/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values/attrs.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values/ids.xml delete mode 100755 external/ActionBar-PullToRefresh/res/values/pull_refresh_strings.xml delete mode 100644 external/ActionBar-PullToRefresh/res/values/styles.xml delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/DefaultHeaderTransformer.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/InstanceCreationUtils.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshAttacher.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshLayout.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/platform/SDK11.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/AbsListViewDelegate.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/ScrollYDelegate.java delete mode 100644 external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/WebViewDelegate.java delete mode 100644 external/ColorPickerPreference/.classpath delete mode 100644 external/ColorPickerPreference/.gitattributes delete mode 100644 external/ColorPickerPreference/.gitignore delete mode 100644 external/ColorPickerPreference/.project delete mode 100644 external/ColorPickerPreference/AndroidManifest.xml delete mode 100644 external/ColorPickerPreference/CHANGELOG.rst delete mode 100644 external/ColorPickerPreference/LICENSE delete mode 100644 external/ColorPickerPreference/README.rst delete mode 100644 external/ColorPickerPreference/ant.properties delete mode 100644 external/ColorPickerPreference/build.xml delete mode 100644 external/ColorPickerPreference/proguard-project.txt delete mode 100644 external/ColorPickerPreference/proguard.cfg delete mode 100644 external/ColorPickerPreference/project.properties delete mode 100644 external/ColorPickerPreference/res/drawable-hdpi/icon.png delete mode 100644 external/ColorPickerPreference/res/drawable-ldpi/icon.png delete mode 100644 external/ColorPickerPreference/res/drawable-mdpi/icon.png delete mode 100644 external/ColorPickerPreference/res/xml/settings.xml delete mode 100644 external/ColorPickerPreference/screen_1.png delete mode 100644 external/ColorPickerPreference/screen_2.png delete mode 100644 external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java delete mode 100644 external/Crouton/.gitignore delete mode 100644 external/Crouton/LICENSE delete mode 100644 external/Crouton/README.markdown delete mode 100644 external/Crouton/build.gradle delete mode 100644 external/Crouton/library/.classpath delete mode 100644 external/Crouton/library/.project delete mode 100644 external/Crouton/library/AndroidManifest.xml delete mode 100644 external/Crouton/library/ant.properties delete mode 100644 external/Crouton/library/build.xml delete mode 100644 external/Crouton/library/project.properties delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Configuration.java delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java delete mode 100644 external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java delete mode 100644 external/Crouton/pom.xml delete mode 100644 full/.classpath delete mode 100644 full/.project delete mode 100644 full/ant.properties delete mode 100644 full/build.xml delete mode 100644 full/proguard-project.txt delete mode 100644 full/project.properties create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat delete mode 100644 lib/.classpath delete mode 100644 lib/.project delete mode 100644 lib/.settings/org.eclipse.jdt.core.prefs delete mode 100644 lib/build.xml delete mode 100644 lite/.classpath delete mode 100644 lite/.project delete mode 100644 lite/AndroidManifest.xml delete mode 100644 lite/ant.properties delete mode 100644 lite/build.xml delete mode 100644 lite/proguard-project.txt delete mode 100644 lite/project.properties create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 416fd592..462b229e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1,16 @@ -# built application files -*.apk -*.ap_ +# ignore Gradle files +.gradle/ +build/ -# files for the dex VM -*.dex - -# Java class files -*.class - -# generated files -bin/ -gen/ -.apt_generated/ - -# Local configuration file (sdk path, etc) +# local configuration file (sdk path, etc) local.properties +signing.gradle -# Eclipse project files -.classpath -.project -.settings/ -.local.properties +# IntelliJ +*.iml +*.ipr +*.iws +.idea -# OS temp files +# Mac .DS_Store diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 00000000..622a9fa6 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,61 @@ +apply plugin: 'com.android.application' +apply plugin: 'android-apt' +apply from: '../signing.gradle' + +android { + compileSdkVersion 19 + buildToolsVersion '20.0.0' + + defaultConfig { + minSdkVersion 15 + targetSdkVersion 19 + versionCode 216 + versionName '2.3.0' + resValue "string", "search_history_authority", applicationId + ".search.SearchHistoryProvider" + } + signingConfigs { + release { + storeFile STORE_FILE + storePassword STORE_PASSWORD + keyAlias KEY_ALIAS + keyPassword KEY_PASSWORD + } + } + buildTypes { + release { + runProguard false + signingConfig signingConfigs.release + } + } + productFlavors { + full { + applicationId 'org.transdroid.full' + } + lite { + applicationId 'org.transdroid.lite' + } + } + lintOptions { + disable 'MissingTranslation', 'ExtraTranslation' + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'org.androidannotations:androidannotations-api:3.1' + compile 'com.j256.ormlite:ormlite-core:4.48' + compile 'com.j256.ormlite:ormlite-android:4.48' + compile 'com.github.chrisbanes.actionbarpulltorefresh:library:0.8' + compile 'de.keyboardsurfer.android.widget:crouton:1.8.+' + compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.+' + apt "org.androidannotations:androidannotations:3.1" +} + +apt { + arguments { + androidManifestFile variant.processResources.manifestFile + resourcePackageName 'org.transdroid' + //logLevel 'INFO' + //logFile '/Users/erickok/Dev/transdroid/transdroid/app/build/aa-log.txt' + } +} diff --git a/full/res/values/bools.xml b/app/src/full/res/values/bools.xml similarity index 100% rename from full/res/values/bools.xml rename to app/src/full/res/values/bools.xml diff --git a/full/res/values/strings.xml b/app/src/full/res/values/strings.xml similarity index 100% rename from full/res/values/strings.xml rename to app/src/full/res/values/strings.xml diff --git a/lite/res/values/bools.xml b/app/src/lite/res/values/bools.xml similarity index 100% rename from lite/res/values/bools.xml rename to app/src/lite/res/values/bools.xml diff --git a/lite/res/values/strings.xml b/app/src/lite/res/values/strings.xml similarity index 100% rename from lite/res/values/strings.xml rename to app/src/lite/res/values/strings.xml diff --git a/full/AndroidManifest.xml b/app/src/main/AndroidManifest.xml similarity index 97% rename from full/AndroidManifest.xml rename to app/src/main/AndroidManifest.xml index 2c5feef7..ff92f30d 100644 --- a/full/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,13 +17,9 @@ --> + package="org.transdroid" > - + diff --git a/lib/src/com/android/internalcopy/http/multipart/BitCometFilePart.java b/app/src/main/java/com/android/internalcopy/http/multipart/BitCometFilePart.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/BitCometFilePart.java rename to app/src/main/java/com/android/internalcopy/http/multipart/BitCometFilePart.java diff --git a/lib/src/com/android/internalcopy/http/multipart/ByteArrayPartSource.java b/app/src/main/java/com/android/internalcopy/http/multipart/ByteArrayPartSource.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/ByteArrayPartSource.java rename to app/src/main/java/com/android/internalcopy/http/multipart/ByteArrayPartSource.java diff --git a/lib/src/com/android/internalcopy/http/multipart/FilePart.java b/app/src/main/java/com/android/internalcopy/http/multipart/FilePart.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/FilePart.java rename to app/src/main/java/com/android/internalcopy/http/multipart/FilePart.java diff --git a/lib/src/com/android/internalcopy/http/multipart/FilePartSource.java b/app/src/main/java/com/android/internalcopy/http/multipart/FilePartSource.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/FilePartSource.java rename to app/src/main/java/com/android/internalcopy/http/multipart/FilePartSource.java diff --git a/lib/src/com/android/internalcopy/http/multipart/MultipartEntity.java b/app/src/main/java/com/android/internalcopy/http/multipart/MultipartEntity.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/MultipartEntity.java rename to app/src/main/java/com/android/internalcopy/http/multipart/MultipartEntity.java diff --git a/lib/src/com/android/internalcopy/http/multipart/Part.java b/app/src/main/java/com/android/internalcopy/http/multipart/Part.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/Part.java rename to app/src/main/java/com/android/internalcopy/http/multipart/Part.java diff --git a/lib/src/com/android/internalcopy/http/multipart/PartBase.java b/app/src/main/java/com/android/internalcopy/http/multipart/PartBase.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/PartBase.java rename to app/src/main/java/com/android/internalcopy/http/multipart/PartBase.java diff --git a/lib/src/com/android/internalcopy/http/multipart/PartSource.java b/app/src/main/java/com/android/internalcopy/http/multipart/PartSource.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/PartSource.java rename to app/src/main/java/com/android/internalcopy/http/multipart/PartSource.java diff --git a/lib/src/com/android/internalcopy/http/multipart/StringPart.java b/app/src/main/java/com/android/internalcopy/http/multipart/StringPart.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/StringPart.java rename to app/src/main/java/com/android/internalcopy/http/multipart/StringPart.java diff --git a/lib/src/com/android/internalcopy/http/multipart/Utf8StringPart.java b/app/src/main/java/com/android/internalcopy/http/multipart/Utf8StringPart.java similarity index 100% rename from lib/src/com/android/internalcopy/http/multipart/Utf8StringPart.java rename to app/src/main/java/com/android/internalcopy/http/multipart/Utf8StringPart.java diff --git a/lib/src/de/timroes/axmlrpc/Call.java b/app/src/main/java/de/timroes/axmlrpc/Call.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/Call.java rename to app/src/main/java/de/timroes/axmlrpc/Call.java diff --git a/lib/src/de/timroes/axmlrpc/ResponseParser.java b/app/src/main/java/de/timroes/axmlrpc/ResponseParser.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/ResponseParser.java rename to app/src/main/java/de/timroes/axmlrpc/ResponseParser.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCCallback.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCCallback.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCCallback.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCCallback.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCClient.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCClient.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCClient.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCClient.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCException.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCException.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCException.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCException.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCRuntimeException.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCRuntimeException.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCRuntimeException.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCRuntimeException.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCServerException.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCServerException.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCServerException.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCServerException.java diff --git a/lib/src/de/timroes/axmlrpc/XMLRPCTimeoutException.java b/app/src/main/java/de/timroes/axmlrpc/XMLRPCTimeoutException.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLRPCTimeoutException.java rename to app/src/main/java/de/timroes/axmlrpc/XMLRPCTimeoutException.java diff --git a/lib/src/de/timroes/axmlrpc/XMLUtil.java b/app/src/main/java/de/timroes/axmlrpc/XMLUtil.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/XMLUtil.java rename to app/src/main/java/de/timroes/axmlrpc/XMLUtil.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/ArraySerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/ArraySerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/ArraySerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/ArraySerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/Base64Serializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/Base64Serializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/Base64Serializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/Base64Serializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/BooleanSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/BooleanSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/BooleanSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/BooleanSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/DateTimeSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/DateTimeSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/DateTimeSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/DateTimeSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/DoubleSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/DoubleSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/DoubleSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/DoubleSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/IntSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/IntSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/IntSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/IntSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/LongSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/LongSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/LongSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/LongSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/NullSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/NullSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/NullSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/NullSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/Serializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/Serializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/Serializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/Serializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/SerializerHandler.java b/app/src/main/java/de/timroes/axmlrpc/serializer/SerializerHandler.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/SerializerHandler.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/SerializerHandler.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/StringSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/StringSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/StringSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/StringSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/serializer/StructSerializer.java b/app/src/main/java/de/timroes/axmlrpc/serializer/StructSerializer.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/serializer/StructSerializer.java rename to app/src/main/java/de/timroes/axmlrpc/serializer/StructSerializer.java diff --git a/lib/src/de/timroes/axmlrpc/xmlcreator/SimpleXMLCreator.java b/app/src/main/java/de/timroes/axmlrpc/xmlcreator/SimpleXMLCreator.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/xmlcreator/SimpleXMLCreator.java rename to app/src/main/java/de/timroes/axmlrpc/xmlcreator/SimpleXMLCreator.java diff --git a/lib/src/de/timroes/axmlrpc/xmlcreator/XmlElement.java b/app/src/main/java/de/timroes/axmlrpc/xmlcreator/XmlElement.java similarity index 100% rename from lib/src/de/timroes/axmlrpc/xmlcreator/XmlElement.java rename to app/src/main/java/de/timroes/axmlrpc/xmlcreator/XmlElement.java diff --git a/lib/src/de/timroes/base64/Base64.java b/app/src/main/java/de/timroes/base64/Base64.java similarity index 100% rename from lib/src/de/timroes/base64/Base64.java rename to app/src/main/java/de/timroes/base64/Base64.java diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java b/app/src/main/java/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java similarity index 96% rename from external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java rename to app/src/main/java/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java index ff9c3c84..dbd04276 100644 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java +++ b/app/src/main/java/net/margaritov/preference/colorpicker/AlphaPatternDrawable.java @@ -44,7 +44,7 @@ public class AlphaPatternDrawable extends Drawable { /** * Bitmap in which the pattern will be cahched. */ - private Bitmap mBitmap; + private Bitmap mBitmap; public AlphaPatternDrawable(int rectangleSize) { mRectangleSize = rectangleSize; @@ -93,12 +93,12 @@ public class AlphaPatternDrawable extends Drawable { * recreate it each time draw() is called since it * takes a few milliseconds. */ - private void generatePatternBitmap(){ + private void generatePatternBitmap() { - if(getBounds().width() <= 0 || getBounds().height() <= 0){ + if (getBounds().width() <= 0 || getBounds().height() <= 0) { return; } - + mBitmap = Bitmap.createBitmap(getBounds().width(), getBounds().height(), Config.ARGB_8888); Canvas canvas = new Canvas(mBitmap); diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerDialog.java similarity index 90% rename from external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java rename to app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerDialog.java index a63d48c3..fddf6984 100644 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java +++ b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerDialog.java @@ -24,12 +24,9 @@ import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; -public class ColorPickerDialog - extends - Dialog - implements - ColorPickerView.OnColorChangedListener, - View.OnClickListener { +import org.transdroid.R; + +public class ColorPickerDialog extends Dialog implements ColorPickerView.OnColorChangedListener, View.OnClickListener { private ColorPickerView mColorPicker; @@ -41,7 +38,7 @@ public class ColorPickerDialog public interface OnColorChangedListener { public void onColorChanged(int color); } - + public ColorPickerDialog(Context context, int initialColor) { super(context); @@ -57,26 +54,23 @@ public class ColorPickerDialog } 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 - ); - + + ((LinearLayout) mOldColor.getParent()) + .setPadding(Math.round(mColorPicker.getDrawingOffset()), 0, Math.round(mColorPicker.getDrawingOffset()), + 0); + mOldColor.setOnClickListener(this); mNewColor.setOnClickListener(this); mColorPicker.setOnColorChangedListener(this); @@ -101,13 +95,13 @@ public class ColorPickerDialog 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){ + public void setOnColorChangedListener(OnColorChangedListener listener) { mListener = listener; } @@ -124,7 +118,7 @@ public class ColorPickerDialog } dismiss(); } - + @Override public Bundle onSaveInstanceState() { Bundle state = super.onSaveInstanceState(); @@ -132,7 +126,7 @@ public class ColorPickerDialog state.putInt("new_color", mNewColor.getColor()); return state; } - + @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPanelView.java similarity index 75% rename from external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java rename to app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPanelView.java index b0003662..4b305793 100644 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPanelView.java +++ b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPanelView.java @@ -28,7 +28,6 @@ import android.view.View; * 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 { @@ -36,27 +35,27 @@ 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 final static float BORDER_WIDTH_PX = 1; private float mDensity = 1f; - private int mBorderColor = 0xff6E6E6E; - private int mColor = 0xff000000; + private int mBorderColor = 0xff6E6E6E; + private int mColor = 0xff000000; - private Paint mBorderPaint; - private Paint mColorPaint; + private Paint mBorderPaint; + private Paint mColorPaint; - private RectF mDrawingRect; - private RectF mColorRect; + private RectF mDrawingRect; + private RectF mColorRect; private AlphaPatternDrawable mAlphaPattern; - public ColorPickerPanelView(Context context){ + public ColorPickerPanelView(Context context) { this(context, null); } - public ColorPickerPanelView(Context context, AttributeSet attrs){ + public ColorPickerPanelView(Context context, AttributeSet attrs) { this(context, attrs, 0); } @@ -65,7 +64,7 @@ public class ColorPickerPanelView extends View { init(); } - private void init(){ + private void init() { mBorderPaint = new Paint(); mColorPaint = new Paint(); mDensity = getContext().getResources().getDisplayMetrics().density; @@ -75,14 +74,14 @@ public class ColorPickerPanelView extends View { @Override protected void onDraw(Canvas canvas) { - final RectF rect = mColorRect; + final RectF rect = mColorRect; - if(BORDER_WIDTH_PX > 0){ + if (BORDER_WIDTH_PX > 0) { mBorderPaint.setColor(mBorderColor); canvas.drawRect(mDrawingRect, mBorderPaint); } - if(mAlphaPattern != null){ + if (mAlphaPattern != null) { mAlphaPattern.draw(canvas); } @@ -105,8 +104,8 @@ public class ColorPickerPanelView extends View { super.onSizeChanged(w, h, oldw, oldh); mDrawingRect = new RectF(); - mDrawingRect.left = getPaddingLeft(); - mDrawingRect.right = w - getPaddingRight(); + mDrawingRect.left = getPaddingLeft(); + mDrawingRect.right = w - getPaddingRight(); mDrawingRect.top = getPaddingTop(); mDrawingRect.bottom = h - getPaddingBottom(); @@ -114,24 +113,20 @@ public class ColorPickerPanelView extends View { } - private void setUpColorRect(){ - final RectF dRect = mDrawingRect; + 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); + mColorRect = new RectF(left, top, right, bottom); - mAlphaPattern = new AlphaPatternDrawable((int)(5 * mDensity)); + mAlphaPattern = new AlphaPatternDrawable((int) (5 * mDensity)); - mAlphaPattern.setBounds( - Math.round(mColorRect.left), - Math.round(mColorRect.top), - Math.round(mColorRect.right), - Math.round(mColorRect.bottom) - ); + mAlphaPattern.setBounds(Math.round(mColorRect.left), Math.round(mColorRect.top), Math.round(mColorRect.right), + Math.round(mColorRect.bottom)); } @@ -139,7 +134,7 @@ public class ColorPickerPanelView extends View { * Set the color that should be shown by this view. * @param color */ - public void setColor(int color){ + public void setColor(int color) { mColor = color; invalidate(); } @@ -148,7 +143,7 @@ public class ColorPickerPanelView extends View { * Get the color currently show by this view. * @return */ - public int getColor(){ + public int getColor() { return mColor; } @@ -156,7 +151,7 @@ public class ColorPickerPanelView extends View { * Set the color of the border surrounding the panel. * @param color */ - public void setBorderColor(int color){ + public void setBorderColor(int color) { mBorderColor = color; invalidate(); } @@ -164,7 +159,7 @@ public class ColorPickerPanelView extends View { /** * Get the color of the border surrounding the panel. */ - public int getBorderColor(){ + public int getBorderColor() { return mBorderColor; } diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPreference.java similarity index 50% rename from external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java rename to app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPreference.java index 8dded67a..da9a50fe 100644 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerPreference.java +++ b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerPreference.java @@ -34,12 +34,8 @@ 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 { +public class ColorPickerPreference extends Preference + implements Preference.OnPreferenceClickListener, ColorPickerDialog.OnColorChangedListener { View mView; ColorPickerDialog mDialog; @@ -88,17 +84,18 @@ public class ColorPickerPreference } private void setPreviewColor() { - if (mView == null) return; + if (mView == null) { + return; + } ImageView iView = new ImageView(getContext()); - LinearLayout widgetFrameView = ((LinearLayout)mView.findViewById(android.R.id.widget_frame)); - if (widgetFrameView == null) return; + 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() - ); + widgetFrameView + .setPadding(widgetFrameView.getPaddingLeft(), widgetFrameView.getPaddingTop(), (int) (mDensity * 8), + widgetFrameView.getPaddingBottom()); // remove already create preview image int count = widgetFrameView.getChildCount(); if (count > 0) { @@ -106,7 +103,7 @@ public class ColorPickerPreference } widgetFrameView.addView(iView); widgetFrameView.setMinimumWidth(0); - iView.setBackgroundDrawable(new AlphaPatternDrawable((int)(5 * mDensity))); + iView.setBackgroundDrawable(new AlphaPatternDrawable((int) (5 * mDensity))); iView.setImageBitmap(getPreviewBitmap()); } @@ -119,7 +116,7 @@ public class ColorPickerPreference 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; + 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); @@ -148,7 +145,7 @@ public class ColorPickerPreference showDialog(null); return false; } - + protected void showDialog(Bundle state) { mDialog = new ColorPickerDialog(getContext(), mValue); mDialog.setOnColorChangedListener(this); @@ -174,114 +171,112 @@ public class ColorPickerPreference * @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]; - } - }; - } + 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/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerView.java similarity index 68% rename from external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java rename to app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerView.java index c0ec0531..48d18d61 100644 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/ColorPickerView.java +++ b/app/src/main/java/net/margaritov/preference/colorpicker/ColorPickerView.java @@ -22,12 +22,12 @@ import android.graphics.Color; import android.graphics.ComposeShader; import android.graphics.LinearGradient; import android.graphics.Paint; +import android.graphics.Paint.Align; +import android.graphics.Paint.Style; 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; @@ -42,103 +42,103 @@ import android.view.View; */ 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; + 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; + private final static float BORDER_WIDTH_PX = 1; /** * The width in dp of the hue panel. */ - private float HUE_PANEL_WIDTH = 30f; + private float HUE_PANEL_WIDTH = 30f; /** * The height in dp of the alpha panel */ - private float ALPHA_PANEL_HEIGHT = 20f; + private float ALPHA_PANEL_HEIGHT = 20f; /** * The distance in dp between the different * color panels. */ - private float PANEL_SPACING = 10f; + private float PANEL_SPACING = 10f; /** * The radius in dp of the color palette tracker circle. */ - private float PALETTE_CIRCLE_TRACKER_RADIUS = 5f; + 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 RECTANGLE_TRACKER_OFFSET = 2f; - private float mDensity = 1f; + private float mDensity = 1f; - private OnColorChangedListener mListener; + private OnColorChangedListener mListener; - private Paint mSatValPaint; - private Paint mSatValTrackerPaint; + private Paint mSatValPaint; + private Paint mSatValTrackerPaint; - private Paint mHuePaint; - private Paint mHueTrackerPaint; + private Paint mHuePaint; + private Paint mHueTrackerPaint; - private Paint mAlphaPaint; - private Paint mAlphaTextPaint; + private Paint mAlphaPaint; + private Paint mAlphaTextPaint; - private Paint mBorderPaint; + private Paint mBorderPaint; - private Shader mValShader; - private Shader mSatShader; - private Shader mHueShader; - private Shader mAlphaShader; + 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 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; + 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; + 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; + private float mDrawingOffset; /* * Distance form the edges of the view * of where we are allowed to draw. */ - private RectF mDrawingRect; + private RectF mDrawingRect; - private RectF mSatValRect; - private RectF mHueRect; - private RectF mAlphaRect; + private RectF mSatValRect; + private RectF mHueRect; + private RectF mAlphaRect; - private AlphaPatternDrawable mAlphaPattern; + private AlphaPatternDrawable mAlphaPattern; - private Point mStartTouchPoint = null; + private Point mStartTouchPoint = null; public interface OnColorChangedListener { public void onColorChanged(int color); } - public ColorPickerView(Context context){ + public ColorPickerView(Context context) { this(context, null); } @@ -151,7 +151,7 @@ public class ColorPickerView extends View { init(); } - private void init(){ + private void init() { mDensity = getContext().getResources().getDisplayMetrics().density; PALETTE_CIRCLE_TRACKER_RADIUS *= mDensity; RECTANGLE_TRACKER_OFFSET *= mDensity; @@ -168,7 +168,7 @@ public class ColorPickerView extends View { setFocusableInTouchMode(true); } - private void initPaintTools(){ + private void initPaintTools() { mSatValPaint = new Paint(); mSatValTrackerPaint = new Paint(); @@ -197,19 +197,19 @@ public class ColorPickerView extends View { } - private float calculateRequiredOffset(){ + 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(){ + private int[] buildHueColorArray() { int[] hue = new int[361]; int count = 0; - for(int i = hue.length -1; i >= 0; i--, count++){ + for (int i = hue.length - 1; i >= 0; i--, count++) { hue[count] = Color.HSVToColor(new float[]{i, 1f, 1f}); } @@ -220,7 +220,9 @@ public class ColorPickerView extends View { @Override protected void onDraw(Canvas canvas) { - if(mDrawingRect.width() <= 0 || mDrawingRect.height() <= 0) return; + if (mDrawingRect.width() <= 0 || mDrawingRect.height() <= 0) { + return; + } drawSatValPanel(canvas); drawHuePanel(canvas); @@ -228,24 +230,24 @@ public class ColorPickerView extends View { } - private void drawSatValPanel(Canvas canvas){ + private void drawSatValPanel(Canvas canvas) { - final RectF rect = mSatValRect; + final RectF rect = mSatValRect; - if(BORDER_WIDTH_PX > 0){ + 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); + 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); + mValShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, 0xffffffff, 0xff000000, + TileMode.CLAMP); } - int rgb = Color.HSVToColor(new float[]{mHue,1f,1f}); + int rgb = Color.HSVToColor(new float[]{mHue, 1f, 1f}); - mSatShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, - 0xffffffff, rgb, TileMode.CLAMP); + 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); @@ -261,21 +263,19 @@ public class ColorPickerView extends View { } - private void drawHuePanel(Canvas canvas){ + private void drawHuePanel(Canvas canvas) { final RectF rect = mHueRect; - if(BORDER_WIDTH_PX > 0){ + 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); + 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); + mHueShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, buildHueColorArray(), null, + TileMode.CLAMP); mHuePaint.setShader(mHueShader); } @@ -296,37 +296,35 @@ public class ColorPickerView extends View { } - private void drawAlphaPanel(Canvas canvas){ + private void drawAlphaPanel(Canvas canvas) { - if(!mShowAlphaPanel || mAlphaRect == null || mAlphaPattern == null) return; + if (!mShowAlphaPanel || mAlphaRect == null || mAlphaPattern == null) { + return; + } final RectF rect = mAlphaRect; - if(BORDER_WIDTH_PX > 0){ + 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); + 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}; + 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); + 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!= ""){ + if (mAlphaSliderText != null && mAlphaSliderText != "") { canvas.drawText(mAlphaSliderText, rect.centerX(), rect.centerY() + 4 * mDensity, mAlphaTextPaint); } @@ -345,7 +343,7 @@ public class ColorPickerView extends View { } - private Point hueToPoint(float hue){ + private Point hueToPoint(float hue) { final RectF rect = mHueRect; final float height = rect.height(); @@ -358,7 +356,7 @@ public class ColorPickerView extends View { return p; } - private Point satValToPoint(float sat, float val){ + private Point satValToPoint(float sat, float val) { final RectF rect = mSatValRect; final float height = rect.height(); @@ -372,7 +370,7 @@ public class ColorPickerView extends View { return p; } - private Point alphaToPoint(int alpha){ + private Point alphaToPoint(int alpha) { final RectF rect = mAlphaRect; final float width = rect.width(); @@ -386,7 +384,7 @@ public class ColorPickerView extends View { } - private float[] pointToSatVal(float x, float y){ + private float[] pointToSatVal(float x, float y) { final RectF rect = mSatValRect; float[] result = new float[2]; @@ -394,23 +392,19 @@ public class ColorPickerView extends View { float width = rect.width(); float height = rect.height(); - if (x < rect.left){ + if (x < rect.left) { x = 0f; - } - else if(x > rect.right){ + } else if (x > rect.right) { x = width; - } - else{ + } else { x = x - rect.left; } - if (y < rect.top){ + if (y < rect.top) { y = 0f; - } - else if(y > rect.bottom){ + } else if (y > rect.bottom) { y = height; - } - else{ + } else { y = y - rect.top; } @@ -421,38 +415,34 @@ public class ColorPickerView extends View { return result; } - private float pointToHue(float y){ + private float pointToHue(float y) { final RectF rect = mHueRect; float height = rect.height(); - if (y < rect.top){ + if (y < rect.top) { y = 0f; - } - else if(y > rect.bottom){ + } else if (y > rect.bottom) { y = height; - } - else{ + } else { y = y - rect.top; } return 360f - (y * 360f / height); } - private int pointToAlpha(int x){ + private int pointToAlpha(int x) { final RectF rect = mAlphaRect; final int width = (int) rect.width(); - if(x < rect.left){ + if (x < rect.left) { x = 0; - } - else if(x > rect.right){ + } else if (x > rect.right) { x = width; - } - else{ - x = x - (int)rect.left; + } else { + x = x - (int) rect.left; } return 0xff - (x * 0xff / width); @@ -469,87 +459,82 @@ public class ColorPickerView extends View { boolean update = false; - if(event.getAction() == MotionEvent.ACTION_MOVE){ + if (event.getAction() == MotionEvent.ACTION_MOVE) { - switch(mLastTouchedPanel){ + switch (mLastTouchedPanel) { - case PANEL_SAT_VAL: + case PANEL_SAT_VAL: - float sat, val; + float sat, val; - sat = mSat + x/50f; - val = mVal - y/50f; + sat = mSat + x / 50f; + val = mVal - y / 50f; - if(sat < 0f){ - sat = 0f; - } - else if(sat > 1f){ - sat = 1f; - } + if (sat < 0f) { + sat = 0f; + } else if (sat > 1f) { + sat = 1f; + } - if(val < 0f){ - val = 0f; - } - else if(val > 1f){ - val = 1f; - } + if (val < 0f) { + val = 0f; + } else if (val > 1f) { + val = 1f; + } - mSat = sat; - mVal = val; + mSat = sat; + mVal = val; - update = true; + update = true; - break; + break; - case PANEL_HUE: + case PANEL_HUE: - float hue = mHue - y * 10f; + float hue = mHue - y * 10f; - if(hue < 0f){ - hue = 0f; - } - else if(hue > 360f){ - hue = 360f; - } + if (hue < 0f) { + hue = 0f; + } else if (hue > 360f) { + hue = 360f; + } - mHue = hue; + mHue = hue; - update = true; + update = true; - break; + break; - case PANEL_ALPHA: + case PANEL_ALPHA: - if(!mShowAlphaPanel || mAlphaRect == null){ - update = false; - } - else{ + if (!mShowAlphaPanel || mAlphaRect == null) { + update = false; + } else { - int alpha = (int) (mAlpha - x*10); + int alpha = (int) (mAlpha - x * 10); - if(alpha < 0){ - alpha = 0; - } - else if(alpha > 0xff){ - alpha = 0xff; - } + if (alpha < 0) { + alpha = 0; + } else if (alpha > 0xff) { + alpha = 0xff; + } - mAlpha = alpha; + mAlpha = alpha; - update = true; - } + update = true; + } - break; + break; } } - if(update){ + if (update) { - if(mListener != null){ + if (mListener != null) { mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); } @@ -566,35 +551,35 @@ public class ColorPickerView extends View { boolean update = false; - switch(event.getAction()){ + switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_DOWN: - mStartTouchPoint = new Point((int)event.getX(), (int)event.getY()); + mStartTouchPoint = new Point((int) event.getX(), (int) event.getY()); - update = moveTrackersIfNeeded(event); + update = moveTrackersIfNeeded(event); - break; + break; - case MotionEvent.ACTION_MOVE: + case MotionEvent.ACTION_MOVE: - update = moveTrackersIfNeeded(event); + update = moveTrackersIfNeeded(event); - break; + break; - case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_UP: - mStartTouchPoint = null; + mStartTouchPoint = null; - update = moveTrackersIfNeeded(event); + update = moveTrackersIfNeeded(event); - break; + break; } - if(update){ + if (update) { - if(mListener != null){ + if (mListener != null) { mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); } @@ -606,9 +591,11 @@ public class ColorPickerView extends View { return super.onTouchEvent(event); } - private boolean moveTrackersIfNeeded(MotionEvent event){ + private boolean moveTrackersIfNeeded(MotionEvent event) { - if(mStartTouchPoint == null) return false; + if (mStartTouchPoint == null) { + return false; + } boolean update = false; @@ -616,14 +603,13 @@ public class ColorPickerView extends View { int startY = mStartTouchPoint.y; - if(mHueRect.contains(startX, startY)){ + if (mHueRect.contains(startX, startY)) { mLastTouchedPanel = PANEL_HUE; mHue = pointToHue(event.getY()); update = true; - } - else if(mSatValRect.contains(startX, startY)){ + } else if (mSatValRect.contains(startX, startY)) { mLastTouchedPanel = PANEL_SAT_VAL; @@ -633,12 +619,11 @@ public class ColorPickerView extends View { mVal = result[1]; update = true; - } - else if(mAlphaRect != null && mAlphaRect.contains(startX, startY)){ + } else if (mAlphaRect != null && mAlphaRect.contains(startX, startY)) { mLastTouchedPanel = PANEL_ALPHA; - mAlpha = pointToAlpha((int)event.getX()); + mAlpha = pointToAlpha((int) event.getX()); update = true; } @@ -652,47 +637,44 @@ public class ColorPickerView extends View { 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){ - + + 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")) { + if (height > heightAllowed || getTag().equals("landscape")) { height = heightAllowed; width = (int) (height + PANEL_SPACING + HUE_PANEL_WIDTH); - } - else{ + } else { width = widthAllowed; } - } - else{ + } else { width = (int) (heightAllowed - ALPHA_PANEL_HEIGHT + HUE_PANEL_WIDTH); - if(width > widthAllowed){ + if (width > widthAllowed) { width = widthAllowed; height = (int) (widthAllowed - HUE_PANEL_WIDTH + ALPHA_PANEL_HEIGHT); - } - else{ + } else { height = heightAllowed; } } - + setMeasuredDimension(width, height); } - private int chooseWidth(int mode, int size){ + private int chooseWidth(int mode, int size) { if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { return size; } else { // (mode == MeasureSpec.UNSPECIFIED) @@ -700,7 +682,7 @@ public class ColorPickerView extends View { } } - private int chooseHeight(int mode, int size){ + private int chooseHeight(int mode, int size) { if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) { return size; } else { // (mode == MeasureSpec.UNSPECIFIED) @@ -708,11 +690,11 @@ public class ColorPickerView extends View { } } - private int getPrefferedWidth(){ + private int getPrefferedWidth() { int width = getPrefferedHeight(); - if(mShowAlphaPanel){ + if (mShowAlphaPanel) { width -= (PANEL_SPACING + ALPHA_PANEL_HEIGHT); } @@ -721,11 +703,11 @@ public class ColorPickerView extends View { } - private int getPrefferedHeight(){ + private int getPrefferedHeight() { - int height = (int)(200 * mDensity); + int height = (int) (200 * mDensity); - if(mShowAlphaPanel){ + if (mShowAlphaPanel) { height += PANEL_SPACING + ALPHA_PANEL_HEIGHT; } @@ -733,14 +715,13 @@ public class ColorPickerView extends View { } - @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.right = w - mDrawingOffset - getPaddingRight(); mDrawingRect.top = mDrawingOffset + getPaddingTop(); mDrawingRect.bottom = h - mDrawingOffset - getPaddingBottom(); @@ -749,12 +730,12 @@ public class ColorPickerView extends View { setUpAlphaRect(); } - private void setUpSatValRect(){ + private void setUpSatValRect() { - final RectF dRect = mDrawingRect; + final RectF dRect = mDrawingRect; float panelSide = dRect.height() - BORDER_WIDTH_PX * 2; - if(mShowAlphaPanel){ + if (mShowAlphaPanel) { panelSide -= PANEL_SPACING + ALPHA_PANEL_HEIGHT; } @@ -763,11 +744,11 @@ public class ColorPickerView extends View { float bottom = top + panelSide; float right = left + panelSide; - mSatValRect = new RectF(left,top, right, bottom); + mSatValRect = new RectF(left, top, right, bottom); } - private void setUpHueRect(){ - final RectF dRect = mDrawingRect; + private void setUpHueRect() { + final RectF dRect = mDrawingRect; float left = dRect.right - HUE_PANEL_WIDTH + BORDER_WIDTH_PX; float top = dRect.top + BORDER_WIDTH_PX; @@ -779,9 +760,11 @@ public class ColorPickerView extends View { private void setUpAlphaRect() { - if(!mShowAlphaPanel) return; + if (!mShowAlphaPanel) { + return; + } - final RectF dRect = mDrawingRect; + final RectF dRect = mDrawingRect; float left = dRect.left + BORDER_WIDTH_PX; float top = dRect.bottom - ALPHA_PANEL_HEIGHT + BORDER_WIDTH_PX; @@ -791,12 +774,8 @@ public class ColorPickerView extends View { 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) - ); + mAlphaPattern.setBounds(Math.round(mAlphaRect.left), Math.round(mAlphaRect.top), Math.round(mAlphaRect.right), + Math.round(mAlphaRect.bottom)); } @@ -806,7 +785,7 @@ public class ColorPickerView extends View { * selected by the user has changed. * @param listener */ - public void setOnColorChangedListener(OnColorChangedListener listener){ + public void setOnColorChangedListener(OnColorChangedListener listener) { mListener = listener; } @@ -814,7 +793,7 @@ public class ColorPickerView extends View { * Set the color of the border surrounding all panels. * @param color */ - public void setBorderColor(int color){ + public void setBorderColor(int color) { mBorderColor = color; invalidate(); } @@ -822,7 +801,7 @@ public class ColorPickerView extends View { /** * Get the color of the border surrounding all panels. */ - public int getBorderColor(){ + public int getBorderColor() { return mBorderColor; } @@ -830,15 +809,15 @@ public class ColorPickerView extends View { * Get the current color this view is showing. * @return the current color. */ - public int getColor(){ - return Color.HSVToColor(mAlpha, new float[]{mHue,mSat,mVal}); + 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){ + public void setColor(int color) { setColor(color, false); } @@ -848,7 +827,7 @@ public class ColorPickerView extends View { * @param callback If you want to get a callback to * your OnColorChangedListener. */ - public void setColor(int color, boolean callback){ + public void setColor(int color, boolean callback) { int alpha = Color.alpha(color); int red = Color.red(color); @@ -864,7 +843,7 @@ public class ColorPickerView extends View { mSat = hsv[1]; mVal = hsv[2]; - if(callback && mListener != null){ + if (callback && mListener != null) { mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal})); } @@ -879,7 +858,7 @@ public class ColorPickerView extends View { * the currently selected color and want to align it perfectly. * @return The offset in pixels. */ - public float getDrawingOffset(){ + public float getDrawingOffset() { return mDrawingOffset; } @@ -888,9 +867,9 @@ public class ColorPickerView extends View { * If it is set to false no alpha will be set. * @param visible */ - public void setAlphaSliderVisible(boolean visible){ + public void setAlphaSliderVisible(boolean visible) { - if(mShowAlphaPanel != visible){ + if (mShowAlphaPanel != visible) { mShowAlphaPanel = visible; /* @@ -901,14 +880,15 @@ public class ColorPickerView extends View { mValShader = null; mSatShader = null; mHueShader = null; - mAlphaShader = null;; + mAlphaShader = null; + ; requestLayout(); } } - public void setSliderTrackerColor(int color){ + public void setSliderTrackerColor(int color) { mSliderTrackerColor = color; mHueTrackerPaint.setColor(mSliderTrackerColor); @@ -916,7 +896,7 @@ public class ColorPickerView extends View { invalidate(); } - public int getSliderTrackerColor(){ + public int getSliderTrackerColor() { return mSliderTrackerColor; } @@ -925,7 +905,7 @@ public class ColorPickerView extends View { * alpha slider. Set to null to disable text. * @param res string resource id. */ - public void setAlphaSliderText(int res){ + public void setAlphaSliderText(int res) { String text = getContext().getString(res); setAlphaSliderText(text); } @@ -935,7 +915,7 @@ public class ColorPickerView extends View { * alpha slider. Set to null to disable text. * @param text Text that should be shown. */ - public void setAlphaSliderText(String text){ + public void setAlphaSliderText(String text) { mAlphaSliderText = text; invalidate(); } @@ -946,7 +926,7 @@ public class ColorPickerView extends View { * slider. * @return */ - public String getAlphaSliderText(){ + public String getAlphaSliderText() { return mAlphaSliderText; } } \ No newline at end of file diff --git a/lib/src/org/apache/openjpa/lib/util/Base16Encoder.java b/app/src/main/java/org/apache/openjpa/lib/util/Base16Encoder.java similarity index 100% rename from lib/src/org/apache/openjpa/lib/util/Base16Encoder.java rename to app/src/main/java/org/apache/openjpa/lib/util/Base16Encoder.java diff --git a/lib/src/org/base64/android/Base64.java b/app/src/main/java/org/base64/android/Base64.java similarity index 100% rename from lib/src/org/base64/android/Base64.java rename to app/src/main/java/org/base64/android/Base64.java diff --git a/core/src/org/transdroid/core/app/search/GoogleWebSearchBarcodeResolver.java b/app/src/main/java/org/transdroid/core/app/search/GoogleWebSearchBarcodeResolver.java similarity index 100% rename from core/src/org/transdroid/core/app/search/GoogleWebSearchBarcodeResolver.java rename to app/src/main/java/org/transdroid/core/app/search/GoogleWebSearchBarcodeResolver.java diff --git a/core/src/org/transdroid/core/app/search/SearchHelper.java b/app/src/main/java/org/transdroid/core/app/search/SearchHelper.java similarity index 100% rename from core/src/org/transdroid/core/app/search/SearchHelper.java rename to app/src/main/java/org/transdroid/core/app/search/SearchHelper.java diff --git a/core/src/org/transdroid/core/app/search/SearchResult.java b/app/src/main/java/org/transdroid/core/app/search/SearchResult.java similarity index 100% rename from core/src/org/transdroid/core/app/search/SearchResult.java rename to app/src/main/java/org/transdroid/core/app/search/SearchResult.java diff --git a/core/src/org/transdroid/core/app/search/SearchSite.java b/app/src/main/java/org/transdroid/core/app/search/SearchSite.java similarity index 100% rename from core/src/org/transdroid/core/app/search/SearchSite.java rename to app/src/main/java/org/transdroid/core/app/search/SearchSite.java diff --git a/core/src/org/transdroid/core/app/settings/ApplicationSettings.java b/app/src/main/java/org/transdroid/core/app/settings/ApplicationSettings.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/ApplicationSettings.java rename to app/src/main/java/org/transdroid/core/app/settings/ApplicationSettings.java diff --git a/core/src/org/transdroid/core/app/settings/NotificationSettings.java b/app/src/main/java/org/transdroid/core/app/settings/NotificationSettings.java similarity index 99% rename from core/src/org/transdroid/core/app/settings/NotificationSettings.java rename to app/src/main/java/org/transdroid/core/app/settings/NotificationSettings.java index 2f2cfbbe..28d5d0cf 100644 --- a/core/src/org/transdroid/core/app/settings/NotificationSettings.java +++ b/app/src/main/java/org/transdroid/core/app/settings/NotificationSettings.java @@ -19,7 +19,7 @@ package org.transdroid.core.app.settings; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.EBean.Scope; import org.androidannotations.annotations.RootContext; -import org.transdroid.core.R; +import org.transdroid.R; import android.content.Context; import android.content.SharedPreferences; diff --git a/core/src/org/transdroid/core/app/settings/RssfeedSetting.java b/app/src/main/java/org/transdroid/core/app/settings/RssfeedSetting.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/RssfeedSetting.java rename to app/src/main/java/org/transdroid/core/app/settings/RssfeedSetting.java diff --git a/core/src/org/transdroid/core/app/settings/ServerSetting.java b/app/src/main/java/org/transdroid/core/app/settings/ServerSetting.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/ServerSetting.java rename to app/src/main/java/org/transdroid/core/app/settings/ServerSetting.java diff --git a/core/src/org/transdroid/core/app/settings/SettingsPersistence.java b/app/src/main/java/org/transdroid/core/app/settings/SettingsPersistence.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/SettingsPersistence.java rename to app/src/main/java/org/transdroid/core/app/settings/SettingsPersistence.java diff --git a/core/src/org/transdroid/core/app/settings/SystemSettings.java b/app/src/main/java/org/transdroid/core/app/settings/SystemSettings.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/SystemSettings.java rename to app/src/main/java/org/transdroid/core/app/settings/SystemSettings.java diff --git a/core/src/org/transdroid/core/app/settings/WebsearchSetting.java b/app/src/main/java/org/transdroid/core/app/settings/WebsearchSetting.java similarity index 100% rename from core/src/org/transdroid/core/app/settings/WebsearchSetting.java rename to app/src/main/java/org/transdroid/core/app/settings/WebsearchSetting.java diff --git a/core/src/org/transdroid/core/gui/DetailsActivity.java b/app/src/main/java/org/transdroid/core/gui/DetailsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/DetailsActivity.java rename to app/src/main/java/org/transdroid/core/gui/DetailsActivity.java index 65021523..6d2f559f 100644 --- a/core/src/org/transdroid/core/gui/DetailsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/DetailsActivity.java @@ -29,7 +29,7 @@ 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.R; import org.transdroid.core.app.settings.*; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.lists.NoProgressHeaderTransformer; diff --git a/core/src/org/transdroid/core/gui/DetailsFragment.java b/app/src/main/java/org/transdroid/core/gui/DetailsFragment.java similarity index 99% rename from core/src/org/transdroid/core/gui/DetailsFragment.java rename to app/src/main/java/org/transdroid/core/gui/DetailsFragment.java index b17d0d57..3da8d9dc 100644 --- a/core/src/org/transdroid/core/gui/DetailsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/DetailsFragment.java @@ -28,7 +28,7 @@ import org.androidannotations.annotations.ItemClick; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.app.settings.SystemSettings_; import org.transdroid.core.gui.lists.DetailsAdapter; diff --git a/core/src/org/transdroid/core/gui/FilterEntryDialog.java b/app/src/main/java/org/transdroid/core/gui/FilterEntryDialog.java similarity index 100% rename from core/src/org/transdroid/core/gui/FilterEntryDialog.java rename to app/src/main/java/org/transdroid/core/gui/FilterEntryDialog.java diff --git a/core/src/org/transdroid/core/gui/ServerPickerDialog.java b/app/src/main/java/org/transdroid/core/gui/ServerPickerDialog.java similarity index 98% rename from core/src/org/transdroid/core/gui/ServerPickerDialog.java rename to app/src/main/java/org/transdroid/core/gui/ServerPickerDialog.java index c1f12920..8525018c 100644 --- a/core/src/org/transdroid/core/gui/ServerPickerDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/ServerPickerDialog.java @@ -2,7 +2,7 @@ package org.transdroid.core.gui; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ServerSetting; import android.app.AlertDialog; diff --git a/core/src/org/transdroid/core/gui/ServerStatusView.java b/app/src/main/java/org/transdroid/core/gui/ServerStatusView.java similarity index 99% rename from core/src/org/transdroid/core/gui/ServerStatusView.java rename to app/src/main/java/org/transdroid/core/gui/ServerStatusView.java index 63817073..6361ac00 100644 --- a/core/src/org/transdroid/core/gui/ServerStatusView.java +++ b/app/src/main/java/org/transdroid/core/gui/ServerStatusView.java @@ -20,7 +20,7 @@ import java.util.List; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.navigation.SetTransferRatesDialog; import org.transdroid.core.gui.navigation.SetTransferRatesDialog.OnRatesPickedListener; diff --git a/core/src/org/transdroid/core/gui/TorrentTasksExecutor.java b/app/src/main/java/org/transdroid/core/gui/TorrentTasksExecutor.java similarity index 100% rename from core/src/org/transdroid/core/gui/TorrentTasksExecutor.java rename to app/src/main/java/org/transdroid/core/gui/TorrentTasksExecutor.java diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/app/src/main/java/org/transdroid/core/gui/TorrentsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/TorrentsActivity.java rename to app/src/main/java/org/transdroid/core/gui/TorrentsActivity.java index 3d6bd178..6b2ebc7a 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/TorrentsActivity.java @@ -43,7 +43,7 @@ import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.cookie.BasicClientCookie; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.search.*; import org.transdroid.core.app.settings.*; import org.transdroid.core.gui.lists.LocalTorrent; diff --git a/core/src/org/transdroid/core/gui/TorrentsFragment.java b/app/src/main/java/org/transdroid/core/gui/TorrentsFragment.java similarity index 99% rename from core/src/org/transdroid/core/gui/TorrentsFragment.java rename to app/src/main/java/org/transdroid/core/gui/TorrentsFragment.java index 11fdf3a9..cc63a66c 100644 --- a/core/src/org/transdroid/core/gui/TorrentsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/TorrentsFragment.java @@ -28,7 +28,7 @@ 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.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.SystemSettings; import org.transdroid.core.gui.lists.TorrentsAdapter; diff --git a/core/src/org/transdroid/core/gui/lists/DetailsAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/DetailsAdapter.java similarity index 99% rename from core/src/org/transdroid/core/gui/lists/DetailsAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/DetailsAdapter.java index f1145813..68093301 100644 --- a/core/src/org/transdroid/core/gui/lists/DetailsAdapter.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/DetailsAdapter.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.lists; import java.util.ArrayList; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.navigation.FilterSeparatorView_; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentFile; diff --git a/core/src/org/transdroid/core/gui/lists/LocalTorrent.java b/app/src/main/java/org/transdroid/core/gui/lists/LocalTorrent.java similarity index 99% rename from core/src/org/transdroid/core/gui/lists/LocalTorrent.java rename to app/src/main/java/org/transdroid/core/gui/lists/LocalTorrent.java index b72f0833..e5357bc6 100644 --- a/core/src/org/transdroid/core/gui/lists/LocalTorrent.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/LocalTorrent.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.lists; import java.util.Locale; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.daemon.DaemonException; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.TorrentStatus; diff --git a/core/src/org/transdroid/core/gui/lists/MergeAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/MergeAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/MergeAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/MergeAdapter.java diff --git a/core/src/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java b/app/src/main/java/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java similarity index 93% rename from core/src/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java rename to app/src/main/java/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java index 1758aab9..d3632169 100644 --- a/core/src/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/NoProgressHeaderTransformer.java @@ -1,6 +1,6 @@ package org.transdroid.core.gui.lists; -import org.transdroid.core.R; +import org.transdroid.R; import uk.co.senab.actionbarpulltorefresh.library.DefaultHeaderTransformer; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/lists/SimpleListItem.java b/app/src/main/java/org/transdroid/core/gui/lists/SimpleListItem.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/SimpleListItem.java rename to app/src/main/java/org/transdroid/core/gui/lists/SimpleListItem.java diff --git a/core/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/SimpleListItemAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemAdapter.java diff --git a/core/src/org/transdroid/core/gui/lists/SimpleListItemSpinnerAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemSpinnerAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/SimpleListItemSpinnerAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemSpinnerAdapter.java diff --git a/core/src/org/transdroid/core/gui/lists/SimpleListItemView.java b/app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemView.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/SimpleListItemView.java rename to app/src/main/java/org/transdroid/core/gui/lists/SimpleListItemView.java diff --git a/core/src/org/transdroid/core/gui/lists/SortByListItem.java b/app/src/main/java/org/transdroid/core/gui/lists/SortByListItem.java similarity index 98% rename from core/src/org/transdroid/core/gui/lists/SortByListItem.java rename to app/src/main/java/org/transdroid/core/gui/lists/SortByListItem.java index 90e6110d..9ac2525b 100644 --- a/core/src/org/transdroid/core/gui/lists/SortByListItem.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/SortByListItem.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.lists; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.daemon.TorrentsSortBy; import android.content.Context; diff --git a/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentDetailsView.java similarity index 99% rename from core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentDetailsView.java index a8e0a55c..4a6de94a 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentDetailsView.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/TorrentDetailsView.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.lists; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.daemon.Daemon; import org.transdroid.daemon.Torrent; import org.transdroid.daemon.util.FileSizeConverter; diff --git a/core/src/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java similarity index 98% rename from core/src/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java index c53ba957..7e0252e4 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/TorrentFilePriorityLayout.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.lists; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.daemon.Priority; import android.content.Context; diff --git a/core/src/org/transdroid/core/gui/lists/TorrentFileView.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentFileView.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/TorrentFileView.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentFileView.java diff --git a/core/src/org/transdroid/core/gui/lists/TorrentProgressBar.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentProgressBar.java similarity index 99% rename from core/src/org/transdroid/core/gui/lists/TorrentProgressBar.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentProgressBar.java index 4347f679..d5da5884 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentProgressBar.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/TorrentProgressBar.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.lists; -import org.transdroid.core.R; +import org.transdroid.R; import android.content.Context; import android.content.res.TypedArray; diff --git a/core/src/org/transdroid/core/gui/lists/TorrentStatusLayout.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentStatusLayout.java similarity index 99% rename from core/src/org/transdroid/core/gui/lists/TorrentStatusLayout.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentStatusLayout.java index ea2cfedd..c3931ea9 100644 --- a/core/src/org/transdroid/core/gui/lists/TorrentStatusLayout.java +++ b/app/src/main/java/org/transdroid/core/gui/lists/TorrentStatusLayout.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.lists; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.daemon.TorrentStatus; import android.content.Context; diff --git a/core/src/org/transdroid/core/gui/lists/TorrentView.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentView.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/TorrentView.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentView.java diff --git a/core/src/org/transdroid/core/gui/lists/TorrentsAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/TorrentsAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/TorrentsAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/TorrentsAdapter.java diff --git a/core/src/org/transdroid/core/gui/lists/ViewHolderAdapter.java b/app/src/main/java/org/transdroid/core/gui/lists/ViewHolderAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/lists/ViewHolderAdapter.java rename to app/src/main/java/org/transdroid/core/gui/lists/ViewHolderAdapter.java diff --git a/core/src/org/transdroid/core/gui/log/DatabaseHelper.java b/app/src/main/java/org/transdroid/core/gui/log/DatabaseHelper.java similarity index 100% rename from core/src/org/transdroid/core/gui/log/DatabaseHelper.java rename to app/src/main/java/org/transdroid/core/gui/log/DatabaseHelper.java diff --git a/core/src/org/transdroid/core/gui/log/ErrorLogEntry.java b/app/src/main/java/org/transdroid/core/gui/log/ErrorLogEntry.java similarity index 100% rename from core/src/org/transdroid/core/gui/log/ErrorLogEntry.java rename to app/src/main/java/org/transdroid/core/gui/log/ErrorLogEntry.java diff --git a/core/src/org/transdroid/core/gui/log/ErrorLogSender.java b/app/src/main/java/org/transdroid/core/gui/log/ErrorLogSender.java similarity index 99% rename from core/src/org/transdroid/core/gui/log/ErrorLogSender.java rename to app/src/main/java/org/transdroid/core/gui/log/ErrorLogSender.java index 21274a85..2102e66d 100644 --- a/core/src/org/transdroid/core/gui/log/ErrorLogSender.java +++ b/app/src/main/java/org/transdroid/core/gui/log/ErrorLogSender.java @@ -22,7 +22,7 @@ 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.R; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.navigation.NavigationHelper; diff --git a/core/src/org/transdroid/core/gui/log/Log.java b/app/src/main/java/org/transdroid/core/gui/log/Log.java similarity index 100% rename from core/src/org/transdroid/core/gui/log/Log.java rename to app/src/main/java/org/transdroid/core/gui/log/Log.java diff --git a/core/src/org/transdroid/core/gui/navigation/DialogHelper.java b/app/src/main/java/org/transdroid/core/gui/navigation/DialogHelper.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/DialogHelper.java rename to app/src/main/java/org/transdroid/core/gui/navigation/DialogHelper.java diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java b/app/src/main/java/org/transdroid/core/gui/navigation/FilterListAdapter.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java rename to app/src/main/java/org/transdroid/core/gui/navigation/FilterListAdapter.java index cb0b10b9..a021a1c6 100644 --- a/core/src/org/transdroid/core/gui/navigation/FilterListAdapter.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/FilterListAdapter.java @@ -20,7 +20,7 @@ import java.util.List; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.lists.MergeAdapter; import org.transdroid.core.gui.lists.ViewHolderAdapter; diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java b/app/src/main/java/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java rename to app/src/main/java/org/transdroid/core/gui/navigation/FilterListDropDownAdapter.java diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListItemAdapter.java b/app/src/main/java/org/transdroid/core/gui/navigation/FilterListItemAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/FilterListItemAdapter.java rename to app/src/main/java/org/transdroid/core/gui/navigation/FilterListItemAdapter.java diff --git a/core/src/org/transdroid/core/gui/navigation/FilterListItemView.java b/app/src/main/java/org/transdroid/core/gui/navigation/FilterListItemView.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/FilterListItemView.java rename to app/src/main/java/org/transdroid/core/gui/navigation/FilterListItemView.java diff --git a/core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java b/app/src/main/java/org/transdroid/core/gui/navigation/FilterSeparatorView.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/FilterSeparatorView.java rename to app/src/main/java/org/transdroid/core/gui/navigation/FilterSeparatorView.java diff --git a/core/src/org/transdroid/core/gui/navigation/Label.java b/app/src/main/java/org/transdroid/core/gui/navigation/Label.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/Label.java rename to app/src/main/java/org/transdroid/core/gui/navigation/Label.java diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationFilter.java b/app/src/main/java/org/transdroid/core/gui/navigation/NavigationFilter.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/NavigationFilter.java rename to app/src/main/java/org/transdroid/core/gui/navigation/NavigationFilter.java diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java b/app/src/main/java/org/transdroid/core/gui/navigation/NavigationHelper.java similarity index 83% rename from core/src/org/transdroid/core/gui/navigation/NavigationHelper.java rename to app/src/main/java/org/transdroid/core/gui/navigation/NavigationHelper.java index 8b7b8914..1fd7326d 100644 --- a/core/src/org/transdroid/core/gui/navigation/NavigationHelper.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/NavigationHelper.java @@ -16,10 +16,6 @@ */ package org.transdroid.core.gui.navigation; -import org.androidannotations.annotations.EBean; -import org.androidannotations.annotations.RootContext; -import org.transdroid.core.R; - import android.annotation.SuppressLint; import android.content.Context; import android.content.pm.ApplicationInfo; @@ -30,7 +26,7 @@ import android.text.Spannable; import android.text.SpannableString; import android.text.style.TypefaceSpan; -import com.nostra13.universalimageloader.cache.disc.impl.FileCountLimitedDiscCache; +import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; import com.nostra13.universalimageloader.core.DisplayImageOptions; @@ -38,6 +34,12 @@ import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration.Builder; import com.nostra13.universalimageloader.core.assist.ImageScaleType; +import org.androidannotations.annotations.EBean; +import org.androidannotations.annotations.RootContext; +import org.transdroid.R; + +import java.io.IOException; + import de.keyboardsurfer.android.widget.crouton.Crouton; import de.keyboardsurfer.android.widget.crouton.Style; @@ -58,14 +60,14 @@ public class NavigationHelper { /** * Use with {@link Crouton#showText(android.app.Activity, int, Style)} (and variants) to display error messages. */ - public static Style CROUTON_ERROR_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_error) - .setTextSize(13).build(); + public static Style CROUTON_ERROR_STYLE = + new Style.Builder().setBackgroundColor(R.color.crouton_error).setTextSize(13).build(); /** * Use with {@link Crouton#showText(android.app.Activity, int, Style)} (and variants) to display info messages. */ - public static Style CROUTON_INFO_STYLE = new Style.Builder().setBackgroundColor(R.color.crouton_info) - .setTextSize(13).build(); + public static Style CROUTON_INFO_STYLE = + new Style.Builder().setBackgroundColor(R.color.crouton_info).setTextSize(13).build(); /** * Returns (and initialises, if needed) an image cache that uses memory and (1MB) local storage. @@ -73,22 +75,25 @@ public class NavigationHelper { */ public ImageLoader getImageCache() { if (imageCache == null) { - // @formatter:off imageCache = ImageLoader.getInstance(); - Builder imageCacheBuilder = new Builder(context) - .defaultDisplayImageOptions( - new DisplayImageOptions.Builder() - .cacheInMemory() - .cacheOnDisc() - .imageScaleType(ImageScaleType.IN_SAMPLE_INT) - .showImageForEmptyUri(R.drawable.ic_launcher) - .build()) - .memoryCache( - new UsingFreqLimitedMemoryCache(1024 * 1024)) - .discCache( - new FileCountLimitedDiscCache(context.getCacheDir(), new Md5FileNameGenerator(), 25)); - imageCache.init(imageCacheBuilder.build()); + try { + LruDiscCache diskCache = + new LruDiscCache(context.getCacheDir(), null, new Md5FileNameGenerator(), 640000, 25); + // @formatter:off + Builder imageCacheBuilder = new Builder(context) + .defaultDisplayImageOptions( + new DisplayImageOptions.Builder() + .cacheInMemory() + .cacheOnDisc() + .imageScaleType(ImageScaleType.IN_SAMPLE_INT) + .showImageForEmptyUri(R.drawable.ic_launcher).build()) + .memoryCache(new UsingFreqLimitedMemoryCache(1024 * 1024)) + .discCache(diskCache); + imageCache.init(imageCacheBuilder.build()); // @formatter:on + } catch (IOException e) { + // The cache directory is always available on Android; ignore this exception + } } return imageCache; } @@ -154,7 +159,7 @@ public class NavigationHelper { } /** - * Returns whether any seedbox-related components should be shown in the interface; specifically the option to add + * Returns whether any seedbox-related components should be shown in the interface; specifically the option to add * server settings via easy seedbox-specific screens. * @return True if seedbox settings should be shown, false otherwise */ @@ -165,7 +170,7 @@ public class NavigationHelper { /** * Whether the custom app update checker should be used to check for new app and search module versions. * @return True if it should be checked against transdroid.org if there are app updates (as opposed to using the - * Play Store for updates, for example), false otherwise + * Play Store for updates, for example), false otherwise */ public boolean enableUpdateChecker() { return context.getResources().getBoolean(R.bool.updatecheck_available); @@ -175,11 +180,12 @@ public class NavigationHelper { * Converts a string into a {@link Spannable} that displays the string in the Roboto Condensed font * @param string A plain text {@link String} * @return A {@link Spannable} that can be applied to supporting views (such as the action bar title) so that the - * input string will be displayed using the Roboto Condensed font (if the OS has this) + * input string will be displayed using the Roboto Condensed font (if the OS has this) */ public static SpannableString buildCondensedFontString(String string) { - if (string == null) + if (string == null) { return null; + } SpannableString s = new SpannableString(string); s.setSpan(new TypefaceSpan("sans-serif-condensed"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return s; @@ -200,19 +206,22 @@ public class NavigationHelper { if (rawTorrentUri.getScheme().equals("magnet")) { // Magnet links might have a dn (display name) parameter String dn = getQueryParameter(rawTorrentUri, "dn"); - if (dn != null && !dn.equals("")) + if (dn != null && !dn.equals("")) { return dn; + } // If not, try to return the hash that is specified as xt (exact topci) String xt = getQueryParameter(rawTorrentUri, "xt"); - if (xt != null && !xt.equals("")) + if (xt != null && !xt.equals("")) { return xt; + } } if (rawTorrentUri.isHierarchical()) { String path = rawTorrentUri.getPath(); if (path != null) { - if (path.contains("/")) + if (path.contains("/")) { path = path.substring(path.lastIndexOf("/")); + } return path; } } diff --git a/core/src/org/transdroid/core/gui/navigation/NavigationSelectionView.java b/app/src/main/java/org/transdroid/core/gui/navigation/NavigationSelectionView.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/NavigationSelectionView.java rename to app/src/main/java/org/transdroid/core/gui/navigation/NavigationSelectionView.java diff --git a/core/src/org/transdroid/core/gui/navigation/RefreshableActivity.java b/app/src/main/java/org/transdroid/core/gui/navigation/RefreshableActivity.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/RefreshableActivity.java rename to app/src/main/java/org/transdroid/core/gui/navigation/RefreshableActivity.java diff --git a/core/src/org/transdroid/core/gui/navigation/SelectionManagerMode.java b/app/src/main/java/org/transdroid/core/gui/navigation/SelectionManagerMode.java similarity index 100% rename from core/src/org/transdroid/core/gui/navigation/SelectionManagerMode.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SelectionManagerMode.java diff --git a/core/src/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java b/app/src/main/java/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java index db24ecfc..e66ea1a2 100644 --- a/core/src/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/SelectionModificationSpinner.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.navigation; -import org.transdroid.core.R; +import org.transdroid.R; import android.content.Context; import android.view.View; diff --git a/core/src/org/transdroid/core/gui/navigation/SetLabelDialog.java b/app/src/main/java/org/transdroid/core/gui/navigation/SetLabelDialog.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/SetLabelDialog.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SetLabelDialog.java index 5a9232d2..54f28962 100644 --- a/core/src/org/transdroid/core/gui/navigation/SetLabelDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/SetLabelDialog.java @@ -20,7 +20,7 @@ import java.security.InvalidParameterException; import java.util.Iterator; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.lists.SimpleListItem; import android.app.AlertDialog; diff --git a/core/src/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java b/app/src/main/java/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java index e933f4c3..b4a3dfed 100644 --- a/core/src/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/SetStorageLocationDialog.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.navigation; import java.security.InvalidParameterException; -import org.transdroid.core.R; +import org.transdroid.R; import android.app.AlertDialog; import android.app.Dialog; diff --git a/core/src/org/transdroid/core/gui/navigation/SetTrackersDialog.java b/app/src/main/java/org/transdroid/core/gui/navigation/SetTrackersDialog.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/SetTrackersDialog.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SetTrackersDialog.java index ba8cb0fb..78d232dd 100644 --- a/core/src/org/transdroid/core/gui/navigation/SetTrackersDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/SetTrackersDialog.java @@ -20,7 +20,7 @@ import java.security.InvalidParameterException; import java.util.Arrays; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import android.app.AlertDialog; import android.app.Dialog; diff --git a/core/src/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java b/app/src/main/java/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java rename to app/src/main/java/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java index b029cbbd..95508349 100644 --- a/core/src/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/SetTransferRatesDialog.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.navigation; import java.security.InvalidParameterException; -import org.transdroid.core.R; +import org.transdroid.R; import android.app.Dialog; import android.app.DialogFragment; diff --git a/core/src/org/transdroid/core/gui/navigation/StatusType.java b/app/src/main/java/org/transdroid/core/gui/navigation/StatusType.java similarity index 99% rename from core/src/org/transdroid/core/gui/navigation/StatusType.java rename to app/src/main/java/org/transdroid/core/gui/navigation/StatusType.java index 15403543..f97b8cd9 100644 --- a/core/src/org/transdroid/core/gui/navigation/StatusType.java +++ b/app/src/main/java/org/transdroid/core/gui/navigation/StatusType.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.navigation; import java.util.Arrays; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.lists.SimpleListItem; import org.transdroid.daemon.Torrent; diff --git a/core/src/org/transdroid/core/gui/rss/RssfeedLoader.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedLoader.java similarity index 97% rename from core/src/org/transdroid/core/gui/rss/RssfeedLoader.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssfeedLoader.java index b6007d58..adab8722 100644 --- a/core/src/org/transdroid/core/gui/rss/RssfeedLoader.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedLoader.java @@ -22,8 +22,8 @@ import java.util.Date; import java.util.List; import org.transdroid.core.app.settings.RssfeedSetting; -import org.transdroid.core.rssparser.Channel; -import org.transdroid.core.rssparser.Item; +import org.transdroid.Rssparser.Channel; +import org.transdroid.Rssparser.Item; /** * A container class that holds RSS feed settings and, after they have been retrieved, the contents as {@link Channel}, diff --git a/core/src/org/transdroid/core/gui/rss/RssfeedView.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedView.java similarity index 98% rename from core/src/org/transdroid/core/gui/rss/RssfeedView.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssfeedView.java index 23569cc8..70403220 100644 --- a/core/src/org/transdroid/core/gui/rss/RssfeedView.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedView.java @@ -21,7 +21,7 @@ import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import org.transdroid.core.app.settings.RssfeedSetting; import org.transdroid.core.gui.navigation.NavigationHelper; -import org.transdroid.core.rssparser.Channel; +import org.transdroid.Rssparser.Channel; import android.content.Context; import android.view.View; diff --git a/core/src/org/transdroid/core/gui/rss/RssfeedsActivity.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java similarity index 98% rename from core/src/org/transdroid/core/gui/rss/RssfeedsActivity.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java index 15dd8112..9415a669 100644 --- a/core/src/org/transdroid/core/gui/rss/RssfeedsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java @@ -27,13 +27,13 @@ import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.FragmentById; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.UiThread; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import org.transdroid.core.gui.*; import org.transdroid.core.gui.log.Log; import org.transdroid.core.gui.navigation.NavigationHelper; -import org.transdroid.core.rssparser.Channel; -import org.transdroid.core.rssparser.RssParser; +import org.transdroid.Rssparser.Channel; +import org.transdroid.Rssparser.RssParser; import android.annotation.TargetApi; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/rss/RssfeedsAdapter.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsAdapter.java similarity index 98% rename from core/src/org/transdroid/core/gui/rss/RssfeedsAdapter.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssfeedsAdapter.java index 85cb8b7a..ff6f6777 100644 --- a/core/src/org/transdroid/core/gui/rss/RssfeedsAdapter.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsAdapter.java @@ -21,7 +21,7 @@ import java.util.List; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; import org.transdroid.core.app.settings.RssfeedSetting; -import org.transdroid.core.rssparser.Channel; +import org.transdroid.Rssparser.Channel; import android.content.Context; import android.view.View; diff --git a/core/src/org/transdroid/core/gui/rss/RssfeedsFragment.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java similarity index 99% rename from core/src/org/transdroid/core/gui/rss/RssfeedsFragment.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java index 955653f4..3eef3ac3 100644 --- a/core/src/org/transdroid/core/gui/rss/RssfeedsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java @@ -25,7 +25,7 @@ import org.androidannotations.annotations.ItemClick; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.settings.MainSettingsActivity_; import android.app.Fragment; diff --git a/core/src/org/transdroid/core/gui/rss/RssitemStatusLayout.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemStatusLayout.java similarity index 100% rename from core/src/org/transdroid/core/gui/rss/RssitemStatusLayout.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssitemStatusLayout.java diff --git a/core/src/org/transdroid/core/gui/rss/RssitemView.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemView.java similarity index 97% rename from core/src/org/transdroid/core/gui/rss/RssitemView.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssitemView.java index ba121a0d..b6e8ee92 100644 --- a/core/src/org/transdroid/core/gui/rss/RssitemView.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssitemView.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.rss; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.rssparser.Item; +import org.transdroid.Rssparser.Item; import android.content.Context; import android.text.format.DateUtils; diff --git a/core/src/org/transdroid/core/gui/rss/RssitemsActivity.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsActivity.java similarity index 97% rename from core/src/org/transdroid/core/gui/rss/RssitemsActivity.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssitemsActivity.java index 30125d7e..8de1bbce 100644 --- a/core/src/org/transdroid/core/gui/rss/RssitemsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsActivity.java @@ -21,11 +21,11 @@ import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.androidannotations.annotations.FragmentById; import org.androidannotations.annotations.OptionsItem; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import org.transdroid.core.gui.*; import org.transdroid.core.gui.navigation.NavigationHelper; -import org.transdroid.core.rssparser.Channel; +import org.transdroid.Rssparser.Channel; import android.annotation.TargetApi; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/rss/RssitemsAdapter.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsAdapter.java similarity index 95% rename from core/src/org/transdroid/core/gui/rss/RssitemsAdapter.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssitemsAdapter.java index f70f7006..216d5796 100644 --- a/core/src/org/transdroid/core/gui/rss/RssitemsAdapter.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsAdapter.java @@ -18,8 +18,8 @@ package org.transdroid.core.gui.rss; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.RootContext; -import org.transdroid.core.rssparser.Channel; -import org.transdroid.core.rssparser.Item; +import org.transdroid.Rssparser.Channel; +import org.transdroid.Rssparser.Item; import android.content.Context; import android.view.View; diff --git a/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java similarity index 98% rename from core/src/org/transdroid/core/gui/rss/RssitemsFragment.java rename to app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java index 5688a9fa..be5607ad 100644 --- a/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java @@ -25,13 +25,13 @@ 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.R; import org.transdroid.core.gui.TorrentsActivity_; import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.navigation.SelectionManagerMode; import org.transdroid.core.gui.search.SearchActivity_; -import org.transdroid.core.rssparser.Channel; -import org.transdroid.core.rssparser.Item; +import org.transdroid.Rssparser.Channel; +import org.transdroid.Rssparser.Item; import android.app.AlertDialog; import android.app.Dialog; diff --git a/core/src/org/transdroid/core/gui/search/BarcodeHelper.java b/app/src/main/java/org/transdroid/core/gui/search/BarcodeHelper.java similarity index 99% rename from core/src/org/transdroid/core/gui/search/BarcodeHelper.java rename to app/src/main/java/org/transdroid/core/gui/search/BarcodeHelper.java index d5fcce4f..39cbf425 100644 --- a/core/src/org/transdroid/core/gui/search/BarcodeHelper.java +++ b/app/src/main/java/org/transdroid/core/gui/search/BarcodeHelper.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.search; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.search.GoogleWebSearchBarcodeResolver; import android.annotation.SuppressLint; diff --git a/core/src/org/transdroid/core/gui/search/FilePickerHelper.java b/app/src/main/java/org/transdroid/core/gui/search/FilePickerHelper.java similarity index 99% rename from core/src/org/transdroid/core/gui/search/FilePickerHelper.java rename to app/src/main/java/org/transdroid/core/gui/search/FilePickerHelper.java index 54660c2c..f6b91ced 100644 --- a/core/src/org/transdroid/core/gui/search/FilePickerHelper.java +++ b/app/src/main/java/org/transdroid/core/gui/search/FilePickerHelper.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.search; -import org.transdroid.core.R; +import org.transdroid.R; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/search/SearchActivity.java b/app/src/main/java/org/transdroid/core/gui/search/SearchActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/search/SearchActivity.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchActivity.java index 1ffb3ea7..b950abc5 100644 --- a/core/src/org/transdroid/core/gui/search/SearchActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/search/SearchActivity.java @@ -26,7 +26,7 @@ import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.SystemService; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.search.SearchHelper; import org.transdroid.core.app.search.SearchSite; import org.transdroid.core.app.settings.ApplicationSettings; diff --git a/core/src/org/transdroid/core/gui/search/SearchHistoryProvider.java b/app/src/main/java/org/transdroid/core/gui/search/SearchHistoryProvider.java similarity index 90% rename from core/src/org/transdroid/core/gui/search/SearchHistoryProvider.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchHistoryProvider.java index 546531fa..930472df 100644 --- a/core/src/org/transdroid/core/gui/search/SearchHistoryProvider.java +++ b/app/src/main/java/org/transdroid/core/gui/search/SearchHistoryProvider.java @@ -20,13 +20,15 @@ import android.content.Context; import android.content.SearchRecentSuggestionsProvider; import android.provider.SearchRecentSuggestions; +import org.transdroid.BuildConfig; + /** * Provides search suggestions by simply returning previous user entries. * @author Eric Kok */ public class SearchHistoryProvider extends SearchRecentSuggestionsProvider { - public final static String AUTHORITY = "org.transdroid.core.gui.search.SearchHistoryProvider"; + public final static String AUTHORITY = BuildConfig.PACKAGE_NAME + ".search.SearchHistoryProvider"; public final static int MODE = DATABASE_MODE_QUERIES; public SearchHistoryProvider() { diff --git a/core/src/org/transdroid/core/gui/search/SearchResultView.java b/app/src/main/java/org/transdroid/core/gui/search/SearchResultView.java similarity index 98% rename from core/src/org/transdroid/core/gui/search/SearchResultView.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchResultView.java index 6f2a2ad1..cdfd7c6a 100644 --- a/core/src/org/transdroid/core/gui/search/SearchResultView.java +++ b/app/src/main/java/org/transdroid/core/gui/search/SearchResultView.java @@ -18,7 +18,7 @@ package org.transdroid.core.gui.search; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.search.SearchResult; import android.content.Context; diff --git a/core/src/org/transdroid/core/gui/search/SearchResultsAdapter.java b/app/src/main/java/org/transdroid/core/gui/search/SearchResultsAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchResultsAdapter.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchResultsAdapter.java diff --git a/core/src/org/transdroid/core/gui/search/SearchResultsFragment.java b/app/src/main/java/org/transdroid/core/gui/search/SearchResultsFragment.java similarity index 99% rename from core/src/org/transdroid/core/gui/search/SearchResultsFragment.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchResultsFragment.java index 0db513fa..a1d27d27 100644 --- a/core/src/org/transdroid/core/gui/search/SearchResultsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/search/SearchResultsFragment.java @@ -27,7 +27,7 @@ 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.R; import org.transdroid.core.app.search.SearchHelper; import org.transdroid.core.app.search.SearchHelper.SearchSortOrder; import org.transdroid.core.app.search.SearchResult; diff --git a/core/src/org/transdroid/core/gui/search/SearchSetting.java b/app/src/main/java/org/transdroid/core/gui/search/SearchSetting.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchSetting.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchSetting.java diff --git a/core/src/org/transdroid/core/gui/search/SearchSettingSelectionView.java b/app/src/main/java/org/transdroid/core/gui/search/SearchSettingSelectionView.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchSettingSelectionView.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchSettingSelectionView.java diff --git a/core/src/org/transdroid/core/gui/search/SearchSettingsDropDownAdapter.java b/app/src/main/java/org/transdroid/core/gui/search/SearchSettingsDropDownAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchSettingsDropDownAdapter.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchSettingsDropDownAdapter.java diff --git a/core/src/org/transdroid/core/gui/search/SearchSiteView.java b/app/src/main/java/org/transdroid/core/gui/search/SearchSiteView.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchSiteView.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchSiteView.java diff --git a/core/src/org/transdroid/core/gui/search/SearchSitesAdapter.java b/app/src/main/java/org/transdroid/core/gui/search/SearchSitesAdapter.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SearchSitesAdapter.java rename to app/src/main/java/org/transdroid/core/gui/search/SearchSitesAdapter.java diff --git a/core/src/org/transdroid/core/gui/search/SendIntentHelper.java b/app/src/main/java/org/transdroid/core/gui/search/SendIntentHelper.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/SendIntentHelper.java rename to app/src/main/java/org/transdroid/core/gui/search/SendIntentHelper.java diff --git a/core/src/org/transdroid/core/gui/search/UrlEntryDialog.java b/app/src/main/java/org/transdroid/core/gui/search/UrlEntryDialog.java similarity index 100% rename from core/src/org/transdroid/core/gui/search/UrlEntryDialog.java rename to app/src/main/java/org/transdroid/core/gui/search/UrlEntryDialog.java diff --git a/core/src/org/transdroid/core/gui/settings/AboutDialog.java b/app/src/main/java/org/transdroid/core/gui/settings/AboutDialog.java similarity index 98% rename from core/src/org/transdroid/core/gui/settings/AboutDialog.java rename to app/src/main/java/org/transdroid/core/gui/settings/AboutDialog.java index 64638d5f..a48b23a8 100644 --- a/core/src/org/transdroid/core/gui/settings/AboutDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/AboutDialog.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.settings; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.navigation.DialogHelper; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/settings/ChangelogDialog.java b/app/src/main/java/org/transdroid/core/gui/settings/ChangelogDialog.java similarity index 98% rename from core/src/org/transdroid/core/gui/settings/ChangelogDialog.java rename to app/src/main/java/org/transdroid/core/gui/settings/ChangelogDialog.java index 8dea0c1d..0f7a375e 100644 --- a/core/src/org/transdroid/core/gui/settings/ChangelogDialog.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/ChangelogDialog.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.settings; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.navigation.DialogHelper; import android.app.Activity; diff --git a/core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/HelpSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/HelpSettingsActivity.java index fd3663a9..525cfdab 100644 --- a/core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/HelpSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.SettingsPersistence; import org.transdroid.core.gui.log.ErrorLogSender; diff --git a/core/src/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java similarity index 100% rename from core/src/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java diff --git a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/MainSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/MainSettingsActivity.java index 765245ba..289a0e54 100644 --- a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/MainSettingsActivity.java @@ -22,7 +22,7 @@ import java.util.List; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.search.SearchHelper; import org.transdroid.core.app.search.SearchSite; import org.transdroid.core.app.settings.ApplicationSettings; diff --git a/core/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/NotificationSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/NotificationSettingsActivity.java index c43e8ec6..72e7971d 100644 --- a/core/src/org/transdroid/core/gui/settings/NotificationSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/NotificationSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.NotificationSettings; import org.transdroid.core.service.BootReceiver; diff --git a/core/src/org/transdroid/core/gui/settings/OverflowPreference.java b/app/src/main/java/org/transdroid/core/gui/settings/OverflowPreference.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/OverflowPreference.java rename to app/src/main/java/org/transdroid/core/gui/settings/OverflowPreference.java index 44b76333..e8659918 100644 --- a/core/src/org/transdroid/core/gui/settings/OverflowPreference.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/OverflowPreference.java @@ -1,6 +1,6 @@ package org.transdroid.core.gui.settings; -import org.transdroid.core.R; +import org.transdroid.R; import android.content.Context; import android.preference.Preference; diff --git a/core/src/org/transdroid/core/gui/settings/RssfeedPreference.java b/app/src/main/java/org/transdroid/core/gui/settings/RssfeedPreference.java similarity index 100% rename from core/src/org/transdroid/core/gui/settings/RssfeedPreference.java rename to app/src/main/java/org/transdroid/core/gui/settings/RssfeedPreference.java diff --git a/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java similarity index 98% rename from core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java index 218b52d9..22444793 100644 --- a/core/src/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/RssfeedSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import android.annotation.TargetApi; diff --git a/core/src/org/transdroid/core/gui/settings/ServerPreference.java b/app/src/main/java/org/transdroid/core/gui/settings/ServerPreference.java similarity index 100% rename from core/src/org/transdroid/core/gui/settings/ServerPreference.java rename to app/src/main/java/org/transdroid/core/gui/settings/ServerPreference.java diff --git a/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/ServerSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/ServerSettingsActivity.java index 5864b329..e6a88591 100644 --- a/core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/ServerSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import org.transdroid.daemon.Daemon; diff --git a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/SystemSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/SystemSettingsActivity.java index 6edfc915..03b2f5d0 100644 --- a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -23,7 +23,7 @@ import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.json.JSONException; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.SettingsPersistence; import org.transdroid.core.gui.log.ErrorLogSender; diff --git a/core/src/org/transdroid/core/gui/settings/WebsearchPreference.java b/app/src/main/java/org/transdroid/core/gui/settings/WebsearchPreference.java similarity index 100% rename from core/src/org/transdroid/core/gui/settings/WebsearchPreference.java rename to app/src/main/java/org/transdroid/core/gui/settings/WebsearchPreference.java diff --git a/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java b/app/src/main/java/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java similarity index 98% rename from core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java rename to app/src/main/java/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java index fa5406ba..3dbe1e81 100644 --- a/core/src/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/settings/WebsearchSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.gui.settings; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import android.annotation.TargetApi; diff --git a/core/src/org/transdroid/core/rssparser/Channel.java b/app/src/main/java/org/transdroid/core/rssparser/Channel.java similarity index 98% rename from core/src/org/transdroid/core/rssparser/Channel.java rename to app/src/main/java/org/transdroid/core/rssparser/Channel.java index 68d105ed..b55eb9f4 100644 --- a/core/src/org/transdroid/core/rssparser/Channel.java +++ b/app/src/main/java/org/transdroid/core/rssparser/Channel.java @@ -2,7 +2,7 @@ * Taken from the 'Learning Android' project, released as Public Domain software at * http://github.com/digitalspaghetti/learning-android and modified heavily for Transdroid */ -package org.transdroid.core.rssparser; +package org.transdroid.Rssparser; import java.util.ArrayList; import java.util.Date; diff --git a/core/src/org/transdroid/core/rssparser/HttpHelper.java b/app/src/main/java/org/transdroid/core/rssparser/HttpHelper.java similarity index 99% rename from core/src/org/transdroid/core/rssparser/HttpHelper.java rename to app/src/main/java/org/transdroid/core/rssparser/HttpHelper.java index 9baf4f52..ecef9115 100644 --- a/core/src/org/transdroid/core/rssparser/HttpHelper.java +++ b/app/src/main/java/org/transdroid/core/rssparser/HttpHelper.java @@ -16,7 +16,7 @@ * You should have received a copy of the GNU Lesser General Public * License along with Transdroid. If not, see . */ -package org.transdroid.core.rssparser; +package org.transdroid.Rssparser; import java.io.BufferedReader; import java.io.IOException; diff --git a/core/src/org/transdroid/core/rssparser/Item.java b/app/src/main/java/org/transdroid/core/rssparser/Item.java similarity index 98% rename from core/src/org/transdroid/core/rssparser/Item.java rename to app/src/main/java/org/transdroid/core/rssparser/Item.java index 42f80ea9..20fe13b0 100644 --- a/core/src/org/transdroid/core/rssparser/Item.java +++ b/app/src/main/java/org/transdroid/core/rssparser/Item.java @@ -2,7 +2,7 @@ * Taken from the 'Learning Android' project, released as Public Domain software at * http://github.com/digitalspaghetti/learning-android and modified heavily for Transdroid */ -package org.transdroid.core.rssparser; +package org.transdroid.Rssparser; import java.util.Date; diff --git a/core/src/org/transdroid/core/rssparser/RssParser.java b/app/src/main/java/org/transdroid/core/rssparser/RssParser.java similarity index 99% rename from core/src/org/transdroid/core/rssparser/RssParser.java rename to app/src/main/java/org/transdroid/core/rssparser/RssParser.java index c589082c..ef628d02 100644 --- a/core/src/org/transdroid/core/rssparser/RssParser.java +++ b/app/src/main/java/org/transdroid/core/rssparser/RssParser.java @@ -2,7 +2,7 @@ * Taken from the 'Learning Android' project, released as Public Domain software at * http://github.com/digitalspaghetti/learning-android and modified heavily for Transdroid */ -package org.transdroid.core.rssparser; +package org.transdroid.Rssparser; import java.io.IOException; import java.util.Date; diff --git a/core/src/org/transdroid/core/seedbox/SeedboxPreference.java b/app/src/main/java/org/transdroid/core/seedbox/SeedboxPreference.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/SeedboxPreference.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedboxPreference.java diff --git a/core/src/org/transdroid/core/seedbox/SeedboxProvider.java b/app/src/main/java/org/transdroid/core/seedbox/SeedboxProvider.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/SeedboxProvider.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedboxProvider.java diff --git a/core/src/org/transdroid/core/seedbox/SeedboxSettings.java b/app/src/main/java/org/transdroid/core/seedbox/SeedboxSettings.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/SeedboxSettings.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedboxSettings.java diff --git a/core/src/org/transdroid/core/seedbox/SeedboxSettingsImpl.java b/app/src/main/java/org/transdroid/core/seedbox/SeedboxSettingsImpl.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/SeedboxSettingsImpl.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedboxSettingsImpl.java diff --git a/core/src/org/transdroid/core/seedbox/SeedstuffSettings.java b/app/src/main/java/org/transdroid/core/seedbox/SeedstuffSettings.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/SeedstuffSettings.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedstuffSettings.java diff --git a/core/src/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java b/app/src/main/java/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java similarity index 98% rename from core/src/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java rename to app/src/main/java/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java index e28a916d..17433b8f 100644 --- a/core/src/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/seedbox/SeedstuffSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.seedbox; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.settings.*; import android.annotation.TargetApi; diff --git a/core/src/org/transdroid/core/seedbox/XirvikDediSettings.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikDediSettings.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/XirvikDediSettings.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikDediSettings.java diff --git a/core/src/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java similarity index 98% rename from core/src/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java index e62822d3..429fc0e8 100644 --- a/core/src/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/seedbox/XirvikDediSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.seedbox; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.settings.*; import android.annotation.TargetApi; diff --git a/core/src/org/transdroid/core/seedbox/XirvikSemiSettings.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikSemiSettings.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/XirvikSemiSettings.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikSemiSettings.java diff --git a/core/src/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java similarity index 98% rename from core/src/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java index 2ed2d9fd..79cd7ff3 100644 --- a/core/src/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/seedbox/XirvikSemiSettingsActivity.java @@ -19,7 +19,7 @@ package org.transdroid.core.seedbox; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.settings.*; import android.annotation.TargetApi; diff --git a/core/src/org/transdroid/core/seedbox/XirvikSharedSettings.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikSharedSettings.java similarity index 100% rename from core/src/org/transdroid/core/seedbox/XirvikSharedSettings.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikSharedSettings.java diff --git a/core/src/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java b/app/src/main/java/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java similarity index 99% rename from core/src/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java rename to app/src/main/java/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java index 6b8e04ec..4c3b5be7 100644 --- a/core/src/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java +++ b/app/src/main/java/org/transdroid/core/seedbox/XirvikSharedSettingsActivity.java @@ -24,7 +24,7 @@ import org.androidannotations.annotations.OptionsMenu; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.log.Log; import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.settings.KeyBoundPreferencesActivity; diff --git a/core/src/org/transdroid/core/service/AlarmReceiver.java b/app/src/main/java/org/transdroid/core/service/AlarmReceiver.java similarity index 100% rename from core/src/org/transdroid/core/service/AlarmReceiver.java rename to app/src/main/java/org/transdroid/core/service/AlarmReceiver.java diff --git a/core/src/org/transdroid/core/service/AppUpdateService.java b/app/src/main/java/org/transdroid/core/service/AppUpdateService.java similarity index 99% rename from core/src/org/transdroid/core/service/AppUpdateService.java rename to app/src/main/java/org/transdroid/core/service/AppUpdateService.java index e1537734..76a78e04 100644 --- a/core/src/org/transdroid/core/service/AppUpdateService.java +++ b/app/src/main/java/org/transdroid/core/service/AppUpdateService.java @@ -30,7 +30,7 @@ import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.AbstractHttpClient; import org.apache.http.impl.client.DefaultHttpClient; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.NotificationSettings; import org.transdroid.core.app.settings.SystemSettings; import org.transdroid.core.gui.log.Log; diff --git a/core/src/org/transdroid/core/service/BootReceiver.java b/app/src/main/java/org/transdroid/core/service/BootReceiver.java similarity index 100% rename from core/src/org/transdroid/core/service/BootReceiver.java rename to app/src/main/java/org/transdroid/core/service/BootReceiver.java diff --git a/core/src/org/transdroid/core/service/ConnectivityHelper.java b/app/src/main/java/org/transdroid/core/service/ConnectivityHelper.java similarity index 100% rename from core/src/org/transdroid/core/service/ConnectivityHelper.java rename to app/src/main/java/org/transdroid/core/service/ConnectivityHelper.java diff --git a/core/src/org/transdroid/core/service/ControlService.java b/app/src/main/java/org/transdroid/core/service/ControlService.java similarity index 100% rename from core/src/org/transdroid/core/service/ControlService.java rename to app/src/main/java/org/transdroid/core/service/ControlService.java diff --git a/core/src/org/transdroid/core/service/RssCheckerService.java b/app/src/main/java/org/transdroid/core/service/RssCheckerService.java similarity index 97% rename from core/src/org/transdroid/core/service/RssCheckerService.java rename to app/src/main/java/org/transdroid/core/service/RssCheckerService.java index 9c4d0881..ec56b8b2 100644 --- a/core/src/org/transdroid/core/service/RssCheckerService.java +++ b/app/src/main/java/org/transdroid/core/service/RssCheckerService.java @@ -22,14 +22,14 @@ import java.util.Set; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EService; import org.androidannotations.annotations.SystemService; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.NotificationSettings; import org.transdroid.core.app.settings.RssfeedSetting; import org.transdroid.core.gui.log.Log; import org.transdroid.core.gui.rss.RssfeedsActivity_; -import org.transdroid.core.rssparser.Item; -import org.transdroid.core.rssparser.RssParser; +import org.transdroid.Rssparser.Item; +import org.transdroid.Rssparser.RssParser; import org.transdroid.daemon.util.Collections2; import android.app.IntentService; diff --git a/core/src/org/transdroid/core/service/ServerCheckerService.java b/app/src/main/java/org/transdroid/core/service/ServerCheckerService.java similarity index 99% rename from core/src/org/transdroid/core/service/ServerCheckerService.java rename to app/src/main/java/org/transdroid/core/service/ServerCheckerService.java index 4d0f5de4..22334832 100644 --- a/core/src/org/transdroid/core/service/ServerCheckerService.java +++ b/app/src/main/java/org/transdroid/core/service/ServerCheckerService.java @@ -25,7 +25,7 @@ import org.androidannotations.annotations.SystemService; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.NotificationSettings; import org.transdroid.core.app.settings.ServerSetting; diff --git a/core/src/org/transdroid/core/widget/ListWidgetConfig.java b/app/src/main/java/org/transdroid/core/widget/ListWidgetConfig.java similarity index 100% rename from core/src/org/transdroid/core/widget/ListWidgetConfig.java rename to app/src/main/java/org/transdroid/core/widget/ListWidgetConfig.java diff --git a/core/src/org/transdroid/core/widget/ListWidgetConfigActivity.java b/app/src/main/java/org/transdroid/core/widget/ListWidgetConfigActivity.java similarity index 99% rename from core/src/org/transdroid/core/widget/ListWidgetConfigActivity.java rename to app/src/main/java/org/transdroid/core/widget/ListWidgetConfigActivity.java index 7688c41a..0083c95e 100644 --- a/core/src/org/transdroid/core/widget/ListWidgetConfigActivity.java +++ b/app/src/main/java/org/transdroid/core/widget/ListWidgetConfigActivity.java @@ -27,7 +27,7 @@ import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.ItemSelect; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.app.settings.SystemSettings; diff --git a/core/src/org/transdroid/core/widget/ListWidgetPreviewAdapter.java b/app/src/main/java/org/transdroid/core/widget/ListWidgetPreviewAdapter.java similarity index 99% rename from core/src/org/transdroid/core/widget/ListWidgetPreviewAdapter.java rename to app/src/main/java/org/transdroid/core/widget/ListWidgetPreviewAdapter.java index b42d694d..28f2d646 100644 --- a/core/src/org/transdroid/core/widget/ListWidgetPreviewAdapter.java +++ b/app/src/main/java/org/transdroid/core/widget/ListWidgetPreviewAdapter.java @@ -18,7 +18,7 @@ package org.transdroid.core.widget; import java.util.List; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.daemon.Torrent; diff --git a/core/src/org/transdroid/core/widget/ListWidgetProvider.java b/app/src/main/java/org/transdroid/core/widget/ListWidgetProvider.java similarity index 99% rename from core/src/org/transdroid/core/widget/ListWidgetProvider.java rename to app/src/main/java/org/transdroid/core/widget/ListWidgetProvider.java index 89fd7d56..2684d677 100644 --- a/core/src/org/transdroid/core/widget/ListWidgetProvider.java +++ b/app/src/main/java/org/transdroid/core/widget/ListWidgetProvider.java @@ -18,7 +18,7 @@ package org.transdroid.core.widget; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EReceiver; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import org.transdroid.core.app.settings.ServerSetting; import org.transdroid.core.gui.*; diff --git a/core/src/org/transdroid/core/widget/ListWidgetViewsService.java b/app/src/main/java/org/transdroid/core/widget/ListWidgetViewsService.java similarity index 99% rename from core/src/org/transdroid/core/widget/ListWidgetViewsService.java rename to app/src/main/java/org/transdroid/core/widget/ListWidgetViewsService.java index 668096c8..19d7bd73 100644 --- a/core/src/org/transdroid/core/widget/ListWidgetViewsService.java +++ b/app/src/main/java/org/transdroid/core/widget/ListWidgetViewsService.java @@ -21,7 +21,7 @@ import java.util.Collections; import java.util.List; import org.androidannotations.annotations.EService; -import org.transdroid.core.R; +import org.transdroid.R; import org.transdroid.core.app.settings.*; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.log.Log; diff --git a/lib/src/org/transdroid/daemon/AlphanumComparator.java b/app/src/main/java/org/transdroid/daemon/AlphanumComparator.java similarity index 100% rename from lib/src/org/transdroid/daemon/AlphanumComparator.java rename to app/src/main/java/org/transdroid/daemon/AlphanumComparator.java diff --git a/lib/src/org/transdroid/daemon/Aria2c/Aria2Adapter.java b/app/src/main/java/org/transdroid/daemon/Aria2c/Aria2Adapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Aria2c/Aria2Adapter.java rename to app/src/main/java/org/transdroid/daemon/Aria2c/Aria2Adapter.java diff --git a/lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java b/app/src/main/java/org/transdroid/daemon/BitComet/BitCometAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/BitComet/BitCometAdapter.java rename to app/src/main/java/org/transdroid/daemon/BitComet/BitCometAdapter.java diff --git a/lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java b/app/src/main/java/org/transdroid/daemon/Bitflu/BitfluAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Bitflu/BitfluAdapter.java rename to app/src/main/java/org/transdroid/daemon/Bitflu/BitfluAdapter.java diff --git a/lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java b/app/src/main/java/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java rename to app/src/main/java/org/transdroid/daemon/BuffaloNas/BuffaloNasAdapter.java diff --git a/lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java b/app/src/main/java/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java rename to app/src/main/java/org/transdroid/daemon/DLinkRouterBT/DLinkRouterBTAdapter.java diff --git a/lib/src/org/transdroid/daemon/Daemon.java b/app/src/main/java/org/transdroid/daemon/Daemon.java similarity index 100% rename from lib/src/org/transdroid/daemon/Daemon.java rename to app/src/main/java/org/transdroid/daemon/Daemon.java diff --git a/lib/src/org/transdroid/daemon/DaemonException.java b/app/src/main/java/org/transdroid/daemon/DaemonException.java similarity index 100% rename from lib/src/org/transdroid/daemon/DaemonException.java rename to app/src/main/java/org/transdroid/daemon/DaemonException.java diff --git a/lib/src/org/transdroid/daemon/DaemonMethod.java b/app/src/main/java/org/transdroid/daemon/DaemonMethod.java similarity index 100% rename from lib/src/org/transdroid/daemon/DaemonMethod.java rename to app/src/main/java/org/transdroid/daemon/DaemonMethod.java diff --git a/lib/src/org/transdroid/daemon/DaemonSettings.java b/app/src/main/java/org/transdroid/daemon/DaemonSettings.java similarity index 100% rename from lib/src/org/transdroid/daemon/DaemonSettings.java rename to app/src/main/java/org/transdroid/daemon/DaemonSettings.java diff --git a/lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java b/app/src/main/java/org/transdroid/daemon/Deluge/DelugeAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Deluge/DelugeAdapter.java rename to app/src/main/java/org/transdroid/daemon/Deluge/DelugeAdapter.java diff --git a/lib/src/org/transdroid/daemon/DummyAdapter.java b/app/src/main/java/org/transdroid/daemon/DummyAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/DummyAdapter.java rename to app/src/main/java/org/transdroid/daemon/DummyAdapter.java diff --git a/lib/src/org/transdroid/daemon/Finishable.java b/app/src/main/java/org/transdroid/daemon/Finishable.java similarity index 100% rename from lib/src/org/transdroid/daemon/Finishable.java rename to app/src/main/java/org/transdroid/daemon/Finishable.java diff --git a/lib/src/org/transdroid/daemon/IDaemonAdapter.java b/app/src/main/java/org/transdroid/daemon/IDaemonAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/IDaemonAdapter.java rename to app/src/main/java/org/transdroid/daemon/IDaemonAdapter.java diff --git a/lib/src/org/transdroid/daemon/IDaemonCallback.java b/app/src/main/java/org/transdroid/daemon/IDaemonCallback.java similarity index 100% rename from lib/src/org/transdroid/daemon/IDaemonCallback.java rename to app/src/main/java/org/transdroid/daemon/IDaemonCallback.java diff --git a/lib/src/org/transdroid/daemon/Ktorrent/FileListParser.java b/app/src/main/java/org/transdroid/daemon/Ktorrent/FileListParser.java similarity index 100% rename from lib/src/org/transdroid/daemon/Ktorrent/FileListParser.java rename to app/src/main/java/org/transdroid/daemon/Ktorrent/FileListParser.java diff --git a/lib/src/org/transdroid/daemon/Ktorrent/KtorrentAdapter.java b/app/src/main/java/org/transdroid/daemon/Ktorrent/KtorrentAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Ktorrent/KtorrentAdapter.java rename to app/src/main/java/org/transdroid/daemon/Ktorrent/KtorrentAdapter.java diff --git a/lib/src/org/transdroid/daemon/Ktorrent/LoggedOutException.java b/app/src/main/java/org/transdroid/daemon/Ktorrent/LoggedOutException.java similarity index 100% rename from lib/src/org/transdroid/daemon/Ktorrent/LoggedOutException.java rename to app/src/main/java/org/transdroid/daemon/Ktorrent/LoggedOutException.java diff --git a/lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java b/app/src/main/java/org/transdroid/daemon/Ktorrent/StatsParser.java similarity index 100% rename from lib/src/org/transdroid/daemon/Ktorrent/StatsParser.java rename to app/src/main/java/org/transdroid/daemon/Ktorrent/StatsParser.java diff --git a/lib/src/org/transdroid/daemon/Label.java b/app/src/main/java/org/transdroid/daemon/Label.java similarity index 100% rename from lib/src/org/transdroid/daemon/Label.java rename to app/src/main/java/org/transdroid/daemon/Label.java diff --git a/lib/src/org/transdroid/daemon/OS.java b/app/src/main/java/org/transdroid/daemon/OS.java similarity index 100% rename from lib/src/org/transdroid/daemon/OS.java rename to app/src/main/java/org/transdroid/daemon/OS.java diff --git a/lib/src/org/transdroid/daemon/Priority.java b/app/src/main/java/org/transdroid/daemon/Priority.java similarity index 100% rename from lib/src/org/transdroid/daemon/Priority.java rename to app/src/main/java/org/transdroid/daemon/Priority.java diff --git a/lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java b/app/src/main/java/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java rename to app/src/main/java/org/transdroid/daemon/Qbittorrent/QbittorrentAdapter.java diff --git a/lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java b/app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java rename to app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java diff --git a/lib/src/org/transdroid/daemon/Synology/SynologyAdapter.java b/app/src/main/java/org/transdroid/daemon/Synology/SynologyAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Synology/SynologyAdapter.java rename to app/src/main/java/org/transdroid/daemon/Synology/SynologyAdapter.java diff --git a/lib/src/org/transdroid/daemon/TaskQueue.java b/app/src/main/java/org/transdroid/daemon/TaskQueue.java similarity index 100% rename from lib/src/org/transdroid/daemon/TaskQueue.java rename to app/src/main/java/org/transdroid/daemon/TaskQueue.java diff --git a/lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java b/app/src/main/java/org/transdroid/daemon/Tfb4rt/StatsParser.java similarity index 100% rename from lib/src/org/transdroid/daemon/Tfb4rt/StatsParser.java rename to app/src/main/java/org/transdroid/daemon/Tfb4rt/StatsParser.java diff --git a/lib/src/org/transdroid/daemon/Tfb4rt/Tfb4rtAdapter.java b/app/src/main/java/org/transdroid/daemon/Tfb4rt/Tfb4rtAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Tfb4rt/Tfb4rtAdapter.java rename to app/src/main/java/org/transdroid/daemon/Tfb4rt/Tfb4rtAdapter.java diff --git a/lib/src/org/transdroid/daemon/Torrent.java b/app/src/main/java/org/transdroid/daemon/Torrent.java similarity index 100% rename from lib/src/org/transdroid/daemon/Torrent.java rename to app/src/main/java/org/transdroid/daemon/Torrent.java diff --git a/lib/src/org/transdroid/daemon/TorrentDetails.java b/app/src/main/java/org/transdroid/daemon/TorrentDetails.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentDetails.java rename to app/src/main/java/org/transdroid/daemon/TorrentDetails.java diff --git a/lib/src/org/transdroid/daemon/TorrentFile.java b/app/src/main/java/org/transdroid/daemon/TorrentFile.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentFile.java rename to app/src/main/java/org/transdroid/daemon/TorrentFile.java diff --git a/lib/src/org/transdroid/daemon/TorrentFilesComparator.java b/app/src/main/java/org/transdroid/daemon/TorrentFilesComparator.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentFilesComparator.java rename to app/src/main/java/org/transdroid/daemon/TorrentFilesComparator.java diff --git a/lib/src/org/transdroid/daemon/TorrentFilesSortBy.java b/app/src/main/java/org/transdroid/daemon/TorrentFilesSortBy.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentFilesSortBy.java rename to app/src/main/java/org/transdroid/daemon/TorrentFilesSortBy.java diff --git a/lib/src/org/transdroid/daemon/TorrentStatus.java b/app/src/main/java/org/transdroid/daemon/TorrentStatus.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentStatus.java rename to app/src/main/java/org/transdroid/daemon/TorrentStatus.java diff --git a/lib/src/org/transdroid/daemon/TorrentsComparator.java b/app/src/main/java/org/transdroid/daemon/TorrentsComparator.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentsComparator.java rename to app/src/main/java/org/transdroid/daemon/TorrentsComparator.java diff --git a/lib/src/org/transdroid/daemon/TorrentsSortBy.java b/app/src/main/java/org/transdroid/daemon/TorrentsSortBy.java similarity index 100% rename from lib/src/org/transdroid/daemon/TorrentsSortBy.java rename to app/src/main/java/org/transdroid/daemon/TorrentsSortBy.java diff --git a/lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java b/app/src/main/java/org/transdroid/daemon/Transmission/TransmissionAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Transmission/TransmissionAdapter.java rename to app/src/main/java/org/transdroid/daemon/Transmission/TransmissionAdapter.java diff --git a/lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java b/app/src/main/java/org/transdroid/daemon/Utorrent/UtorrentAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Utorrent/UtorrentAdapter.java rename to app/src/main/java/org/transdroid/daemon/Utorrent/UtorrentAdapter.java diff --git a/lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java b/app/src/main/java/org/transdroid/daemon/Vuze/VuzeAdapter.java similarity index 100% rename from lib/src/org/transdroid/daemon/Vuze/VuzeAdapter.java rename to app/src/main/java/org/transdroid/daemon/Vuze/VuzeAdapter.java diff --git a/lib/src/org/transdroid/daemon/Vuze/VuzeXmlOverHttpClient.java b/app/src/main/java/org/transdroid/daemon/Vuze/VuzeXmlOverHttpClient.java similarity index 100% rename from lib/src/org/transdroid/daemon/Vuze/VuzeXmlOverHttpClient.java rename to app/src/main/java/org/transdroid/daemon/Vuze/VuzeXmlOverHttpClient.java diff --git a/lib/src/org/transdroid/daemon/task/AddByFileTask.java b/app/src/main/java/org/transdroid/daemon/task/AddByFileTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/AddByFileTask.java rename to app/src/main/java/org/transdroid/daemon/task/AddByFileTask.java diff --git a/lib/src/org/transdroid/daemon/task/AddByMagnetUrlTask.java b/app/src/main/java/org/transdroid/daemon/task/AddByMagnetUrlTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/AddByMagnetUrlTask.java rename to app/src/main/java/org/transdroid/daemon/task/AddByMagnetUrlTask.java diff --git a/lib/src/org/transdroid/daemon/task/AddByUrlTask.java b/app/src/main/java/org/transdroid/daemon/task/AddByUrlTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/AddByUrlTask.java rename to app/src/main/java/org/transdroid/daemon/task/AddByUrlTask.java diff --git a/lib/src/org/transdroid/daemon/task/DaemonTask.java b/app/src/main/java/org/transdroid/daemon/task/DaemonTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/DaemonTask.java rename to app/src/main/java/org/transdroid/daemon/task/DaemonTask.java diff --git a/lib/src/org/transdroid/daemon/task/DaemonTaskFailureResult.java b/app/src/main/java/org/transdroid/daemon/task/DaemonTaskFailureResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/DaemonTaskFailureResult.java rename to app/src/main/java/org/transdroid/daemon/task/DaemonTaskFailureResult.java diff --git a/lib/src/org/transdroid/daemon/task/DaemonTaskResult.java b/app/src/main/java/org/transdroid/daemon/task/DaemonTaskResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/DaemonTaskResult.java rename to app/src/main/java/org/transdroid/daemon/task/DaemonTaskResult.java diff --git a/lib/src/org/transdroid/daemon/task/DaemonTaskSuccessResult.java b/app/src/main/java/org/transdroid/daemon/task/DaemonTaskSuccessResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/DaemonTaskSuccessResult.java rename to app/src/main/java/org/transdroid/daemon/task/DaemonTaskSuccessResult.java diff --git a/lib/src/org/transdroid/daemon/task/ForceRecheckTask.java b/app/src/main/java/org/transdroid/daemon/task/ForceRecheckTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/ForceRecheckTask.java rename to app/src/main/java/org/transdroid/daemon/task/ForceRecheckTask.java diff --git a/lib/src/org/transdroid/daemon/task/GetFileListTask.java b/app/src/main/java/org/transdroid/daemon/task/GetFileListTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetFileListTask.java rename to app/src/main/java/org/transdroid/daemon/task/GetFileListTask.java diff --git a/lib/src/org/transdroid/daemon/task/GetFileListTaskSuccessResult.java b/app/src/main/java/org/transdroid/daemon/task/GetFileListTaskSuccessResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetFileListTaskSuccessResult.java rename to app/src/main/java/org/transdroid/daemon/task/GetFileListTaskSuccessResult.java diff --git a/lib/src/org/transdroid/daemon/task/GetStatsTask.java b/app/src/main/java/org/transdroid/daemon/task/GetStatsTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetStatsTask.java rename to app/src/main/java/org/transdroid/daemon/task/GetStatsTask.java diff --git a/lib/src/org/transdroid/daemon/task/GetStatsTaskSuccessResult.java b/app/src/main/java/org/transdroid/daemon/task/GetStatsTaskSuccessResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetStatsTaskSuccessResult.java rename to app/src/main/java/org/transdroid/daemon/task/GetStatsTaskSuccessResult.java diff --git a/lib/src/org/transdroid/daemon/task/GetTorrentDetailsTask.java b/app/src/main/java/org/transdroid/daemon/task/GetTorrentDetailsTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetTorrentDetailsTask.java rename to app/src/main/java/org/transdroid/daemon/task/GetTorrentDetailsTask.java diff --git a/lib/src/org/transdroid/daemon/task/GetTorrentDetailsTaskSuccessResult.java b/app/src/main/java/org/transdroid/daemon/task/GetTorrentDetailsTaskSuccessResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/GetTorrentDetailsTaskSuccessResult.java rename to app/src/main/java/org/transdroid/daemon/task/GetTorrentDetailsTaskSuccessResult.java diff --git a/lib/src/org/transdroid/daemon/task/PauseAllTask.java b/app/src/main/java/org/transdroid/daemon/task/PauseAllTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/PauseAllTask.java rename to app/src/main/java/org/transdroid/daemon/task/PauseAllTask.java diff --git a/lib/src/org/transdroid/daemon/task/PauseTask.java b/app/src/main/java/org/transdroid/daemon/task/PauseTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/PauseTask.java rename to app/src/main/java/org/transdroid/daemon/task/PauseTask.java diff --git a/lib/src/org/transdroid/daemon/task/RemoveTask.java b/app/src/main/java/org/transdroid/daemon/task/RemoveTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/RemoveTask.java rename to app/src/main/java/org/transdroid/daemon/task/RemoveTask.java diff --git a/lib/src/org/transdroid/daemon/task/ResumeAllTask.java b/app/src/main/java/org/transdroid/daemon/task/ResumeAllTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/ResumeAllTask.java rename to app/src/main/java/org/transdroid/daemon/task/ResumeAllTask.java diff --git a/lib/src/org/transdroid/daemon/task/ResumeTask.java b/app/src/main/java/org/transdroid/daemon/task/ResumeTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/ResumeTask.java rename to app/src/main/java/org/transdroid/daemon/task/ResumeTask.java diff --git a/lib/src/org/transdroid/daemon/task/RetrieveTask.java b/app/src/main/java/org/transdroid/daemon/task/RetrieveTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/RetrieveTask.java rename to app/src/main/java/org/transdroid/daemon/task/RetrieveTask.java diff --git a/lib/src/org/transdroid/daemon/task/RetrieveTaskSuccessResult.java b/app/src/main/java/org/transdroid/daemon/task/RetrieveTaskSuccessResult.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/RetrieveTaskSuccessResult.java rename to app/src/main/java/org/transdroid/daemon/task/RetrieveTaskSuccessResult.java diff --git a/lib/src/org/transdroid/daemon/task/SetAlternativeModeTask.java b/app/src/main/java/org/transdroid/daemon/task/SetAlternativeModeTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetAlternativeModeTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetAlternativeModeTask.java diff --git a/lib/src/org/transdroid/daemon/task/SetDownloadLocationTask.java b/app/src/main/java/org/transdroid/daemon/task/SetDownloadLocationTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetDownloadLocationTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetDownloadLocationTask.java diff --git a/lib/src/org/transdroid/daemon/task/SetFilePriorityTask.java b/app/src/main/java/org/transdroid/daemon/task/SetFilePriorityTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetFilePriorityTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetFilePriorityTask.java diff --git a/lib/src/org/transdroid/daemon/task/SetLabelTask.java b/app/src/main/java/org/transdroid/daemon/task/SetLabelTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetLabelTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetLabelTask.java diff --git a/lib/src/org/transdroid/daemon/task/SetTrackersTask.java b/app/src/main/java/org/transdroid/daemon/task/SetTrackersTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetTrackersTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetTrackersTask.java diff --git a/lib/src/org/transdroid/daemon/task/SetTransferRatesTask.java b/app/src/main/java/org/transdroid/daemon/task/SetTransferRatesTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/SetTransferRatesTask.java rename to app/src/main/java/org/transdroid/daemon/task/SetTransferRatesTask.java diff --git a/lib/src/org/transdroid/daemon/task/StartAllTask.java b/app/src/main/java/org/transdroid/daemon/task/StartAllTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/StartAllTask.java rename to app/src/main/java/org/transdroid/daemon/task/StartAllTask.java diff --git a/lib/src/org/transdroid/daemon/task/StartTask.java b/app/src/main/java/org/transdroid/daemon/task/StartTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/StartTask.java rename to app/src/main/java/org/transdroid/daemon/task/StartTask.java diff --git a/lib/src/org/transdroid/daemon/task/StopAllTask.java b/app/src/main/java/org/transdroid/daemon/task/StopAllTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/StopAllTask.java rename to app/src/main/java/org/transdroid/daemon/task/StopAllTask.java diff --git a/lib/src/org/transdroid/daemon/task/StopTask.java b/app/src/main/java/org/transdroid/daemon/task/StopTask.java similarity index 100% rename from lib/src/org/transdroid/daemon/task/StopTask.java rename to app/src/main/java/org/transdroid/daemon/task/StopTask.java diff --git a/lib/src/org/transdroid/daemon/util/Collections2.java b/app/src/main/java/org/transdroid/daemon/util/Collections2.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/Collections2.java rename to app/src/main/java/org/transdroid/daemon/util/Collections2.java diff --git a/lib/src/org/transdroid/daemon/util/DLog.java b/app/src/main/java/org/transdroid/daemon/util/DLog.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/DLog.java rename to app/src/main/java/org/transdroid/daemon/util/DLog.java diff --git a/lib/src/org/transdroid/daemon/util/FakeSocketFactory.java b/app/src/main/java/org/transdroid/daemon/util/FakeSocketFactory.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/FakeSocketFactory.java rename to app/src/main/java/org/transdroid/daemon/util/FakeSocketFactory.java diff --git a/lib/src/org/transdroid/daemon/util/FakeTrustManager.java b/app/src/main/java/org/transdroid/daemon/util/FakeTrustManager.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/FakeTrustManager.java rename to app/src/main/java/org/transdroid/daemon/util/FakeTrustManager.java diff --git a/lib/src/org/transdroid/daemon/util/FileSizeConverter.java b/app/src/main/java/org/transdroid/daemon/util/FileSizeConverter.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/FileSizeConverter.java rename to app/src/main/java/org/transdroid/daemon/util/FileSizeConverter.java diff --git a/lib/src/org/transdroid/daemon/util/HttpHelper.java b/app/src/main/java/org/transdroid/daemon/util/HttpHelper.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/HttpHelper.java rename to app/src/main/java/org/transdroid/daemon/util/HttpHelper.java diff --git a/lib/src/org/transdroid/daemon/util/ITLogger.java b/app/src/main/java/org/transdroid/daemon/util/ITLogger.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/ITLogger.java rename to app/src/main/java/org/transdroid/daemon/util/ITLogger.java diff --git a/lib/src/org/transdroid/daemon/util/Pair.java b/app/src/main/java/org/transdroid/daemon/util/Pair.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/Pair.java rename to app/src/main/java/org/transdroid/daemon/util/Pair.java diff --git a/lib/src/org/transdroid/daemon/util/TimespanConverter.java b/app/src/main/java/org/transdroid/daemon/util/TimespanConverter.java similarity index 100% rename from lib/src/org/transdroid/daemon/util/TimespanConverter.java rename to app/src/main/java/org/transdroid/daemon/util/TimespanConverter.java diff --git a/core/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png b/app/src/main/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png rename to app/src/main/res/drawable-hdpi/ab_bottom_solid_transdroid.9.png diff --git a/core/res/drawable-hdpi/ab_bottom_solid_transdroid2.9.png b/app/src/main/res/drawable-hdpi/ab_bottom_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_bottom_solid_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/ab_bottom_solid_transdroid2.9.png diff --git a/core/res/drawable-hdpi/ab_solid_transdroid.9.png b/app/src/main/res/drawable-hdpi/ab_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_solid_transdroid.9.png rename to app/src/main/res/drawable-hdpi/ab_solid_transdroid.9.png diff --git a/core/res/drawable-hdpi/ab_solid_transdroid2.9.png b/app/src/main/res/drawable-hdpi/ab_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_solid_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/ab_solid_transdroid2.9.png diff --git a/core/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png b/app/src/main/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png rename to app/src/main/res/drawable-hdpi/ab_stacked_solid_transdroid.9.png diff --git a/core/res/drawable-hdpi/ab_stacked_solid_transdroid2.9.png b/app/src/main/res/drawable-hdpi/ab_stacked_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_stacked_solid_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/ab_stacked_solid_transdroid2.9.png diff --git a/core/res/drawable-hdpi/ab_texture_tile_transdroid2.png b/app/src/main/res/drawable-hdpi/ab_texture_tile_transdroid2.png similarity index 100% rename from core/res/drawable-hdpi/ab_texture_tile_transdroid2.png rename to app/src/main/res/drawable-hdpi/ab_texture_tile_transdroid2.png diff --git a/core/res/drawable-hdpi/ab_transparent_transdroid.9.png b/app/src/main/res/drawable-hdpi/ab_transparent_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_transparent_transdroid.9.png rename to app/src/main/res/drawable-hdpi/ab_transparent_transdroid.9.png diff --git a/core/res/drawable-hdpi/ab_transparent_transdroid2.9.png b/app/src/main/res/drawable-hdpi/ab_transparent_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/ab_transparent_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/ab_transparent_transdroid2.9.png diff --git a/core/res/drawable-hdpi/abc_list_focused_holo.9.png b/app/src/main/res/drawable-hdpi/abc_list_focused_holo.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_focused_holo.9.png rename to app/src/main/res/drawable-hdpi/abc_list_focused_holo.9.png diff --git a/core/res/drawable-hdpi/abc_list_longpressed_holo.9.png b/app/src/main/res/drawable-hdpi/abc_list_longpressed_holo.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_longpressed_holo.9.png rename to app/src/main/res/drawable-hdpi/abc_list_longpressed_holo.9.png diff --git a/core/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png b/app/src/main/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png rename to app/src/main/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png diff --git a/core/res/drawable-hdpi/abc_list_pressed_holo_light.9.png b/app/src/main/res/drawable-hdpi/abc_list_pressed_holo_light.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_pressed_holo_light.9.png rename to app/src/main/res/drawable-hdpi/abc_list_pressed_holo_light.9.png diff --git a/core/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png b/app/src/main/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png rename to app/src/main/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png diff --git a/core/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png b/app/src/main/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png similarity index 100% rename from core/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png rename to app/src/main/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png diff --git a/core/res/drawable-hdpi/btn_cab_done_default_transdroid2.9.png b/app/src/main/res/drawable-hdpi/btn_cab_done_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/btn_cab_done_default_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/btn_cab_done_default_transdroid2.9.png diff --git a/core/res/drawable-hdpi/btn_cab_done_focused_transdroid2.9.png b/app/src/main/res/drawable-hdpi/btn_cab_done_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/btn_cab_done_focused_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/btn_cab_done_focused_transdroid2.9.png diff --git a/core/res/drawable-hdpi/btn_cab_done_pressed_transdroid2.9.png b/app/src/main/res/drawable-hdpi/btn_cab_done_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/btn_cab_done_pressed_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/btn_cab_done_pressed_transdroid2.9.png diff --git a/core/res/drawable-hdpi/cab_background_bottom_transdroid2.9.png b/app/src/main/res/drawable-hdpi/cab_background_bottom_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/cab_background_bottom_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/cab_background_bottom_transdroid2.9.png diff --git a/core/res/drawable-hdpi/cab_background_top_transdroid2.9.png b/app/src/main/res/drawable-hdpi/cab_background_top_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/cab_background_top_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/cab_background_top_transdroid2.9.png diff --git a/core/res/drawable-hdpi/ic_action_discard_dark.png b/app/src/main/res/drawable-hdpi/ic_action_discard_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_discard_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_discard_dark.png diff --git a/core/res/drawable-hdpi/ic_action_discard_light.png b/app/src/main/res/drawable-hdpi/ic_action_discard_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_discard_light.png rename to app/src/main/res/drawable-hdpi/ic_action_discard_light.png diff --git a/core/res/drawable-hdpi/ic_action_done_dark.png b/app/src/main/res/drawable-hdpi/ic_action_done_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_done_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_done_dark.png diff --git a/core/res/drawable-hdpi/ic_action_done_light.png b/app/src/main/res/drawable-hdpi/ic_action_done_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_done_light.png rename to app/src/main/res/drawable-hdpi/ic_action_done_light.png diff --git a/core/res/drawable-hdpi/ic_action_filter_dark.png b/app/src/main/res/drawable-hdpi/ic_action_filter_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_filter_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_filter_dark.png diff --git a/core/res/drawable-hdpi/ic_action_filter_light.png b/app/src/main/res/drawable-hdpi/ic_action_filter_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_filter_light.png rename to app/src/main/res/drawable-hdpi/ic_action_filter_light.png diff --git a/core/res/drawable-hdpi/ic_action_forcerecheck_dark.png b/app/src/main/res/drawable-hdpi/ic_action_forcerecheck_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_forcerecheck_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_forcerecheck_dark.png diff --git a/core/res/drawable-hdpi/ic_action_forcerecheck_light.png b/app/src/main/res/drawable-hdpi/ic_action_forcerecheck_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_forcerecheck_light.png rename to app/src/main/res/drawable-hdpi/ic_action_forcerecheck_light.png diff --git a/core/res/drawable-hdpi/ic_action_info_dark.png b/app/src/main/res/drawable-hdpi/ic_action_info_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_info_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_info_dark.png diff --git a/core/res/drawable-hdpi/ic_action_info_light.png b/app/src/main/res/drawable-hdpi/ic_action_info_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_info_light.png rename to app/src/main/res/drawable-hdpi/ic_action_info_light.png diff --git a/core/res/drawable-hdpi/ic_action_labels_dark.png b/app/src/main/res/drawable-hdpi/ic_action_labels_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_labels_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_labels_dark.png diff --git a/core/res/drawable-hdpi/ic_action_labels_light.png b/app/src/main/res/drawable-hdpi/ic_action_labels_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_labels_light.png rename to app/src/main/res/drawable-hdpi/ic_action_labels_light.png diff --git a/core/res/drawable-hdpi/ic_action_new_dark.png b/app/src/main/res/drawable-hdpi/ic_action_new_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_new_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_new_dark.png diff --git a/core/res/drawable-hdpi/ic_action_new_light.png b/app/src/main/res/drawable-hdpi/ic_action_new_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_new_light.png rename to app/src/main/res/drawable-hdpi/ic_action_new_light.png diff --git a/core/res/drawable-hdpi/ic_action_overflow.png b/app/src/main/res/drawable-hdpi/ic_action_overflow.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_overflow.png rename to app/src/main/res/drawable-hdpi/ic_action_overflow.png diff --git a/core/res/drawable-hdpi/ic_action_pause_dark.png b/app/src/main/res/drawable-hdpi/ic_action_pause_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_pause_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_pause_dark.png diff --git a/core/res/drawable-hdpi/ic_action_pause_light.png b/app/src/main/res/drawable-hdpi/ic_action_pause_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_pause_light.png rename to app/src/main/res/drawable-hdpi/ic_action_pause_light.png diff --git a/core/res/drawable-hdpi/ic_action_priority_high_dark.png b/app/src/main/res/drawable-hdpi/ic_action_priority_high_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_high_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_high_dark.png diff --git a/core/res/drawable-hdpi/ic_action_priority_high_light.png b/app/src/main/res/drawable-hdpi/ic_action_priority_high_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_high_light.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_high_light.png diff --git a/core/res/drawable-hdpi/ic_action_priority_low_dark.png b/app/src/main/res/drawable-hdpi/ic_action_priority_low_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_low_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_low_dark.png diff --git a/core/res/drawable-hdpi/ic_action_priority_low_light.png b/app/src/main/res/drawable-hdpi/ic_action_priority_low_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_low_light.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_low_light.png diff --git a/core/res/drawable-hdpi/ic_action_priority_normal_dark.png b/app/src/main/res/drawable-hdpi/ic_action_priority_normal_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_normal_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_normal_dark.png diff --git a/core/res/drawable-hdpi/ic_action_priority_normal_light.png b/app/src/main/res/drawable-hdpi/ic_action_priority_normal_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_normal_light.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_normal_light.png diff --git a/core/res/drawable-hdpi/ic_action_priority_off_dark.png b/app/src/main/res/drawable-hdpi/ic_action_priority_off_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_off_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_off_dark.png diff --git a/core/res/drawable-hdpi/ic_action_priority_off_light.png b/app/src/main/res/drawable-hdpi/ic_action_priority_off_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_priority_off_light.png rename to app/src/main/res/drawable-hdpi/ic_action_priority_off_light.png diff --git a/core/res/drawable-hdpi/ic_action_refresh_dark.png b/app/src/main/res/drawable-hdpi/ic_action_refresh_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_refresh_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_refresh_dark.png diff --git a/core/res/drawable-hdpi/ic_action_refresh_light.png b/app/src/main/res/drawable-hdpi/ic_action_refresh_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_refresh_light.png rename to app/src/main/res/drawable-hdpi/ic_action_refresh_light.png diff --git a/core/res/drawable-hdpi/ic_action_remove_dark.png b/app/src/main/res/drawable-hdpi/ic_action_remove_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_remove_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_remove_dark.png diff --git a/core/res/drawable-hdpi/ic_action_remove_light.png b/app/src/main/res/drawable-hdpi/ic_action_remove_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_remove_light.png rename to app/src/main/res/drawable-hdpi/ic_action_remove_light.png diff --git a/core/res/drawable-hdpi/ic_action_resume_dark.png b/app/src/main/res/drawable-hdpi/ic_action_resume_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_resume_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_resume_dark.png diff --git a/core/res/drawable-hdpi/ic_action_resume_light.png b/app/src/main/res/drawable-hdpi/ic_action_resume_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_resume_light.png rename to app/src/main/res/drawable-hdpi/ic_action_resume_light.png diff --git a/core/res/drawable-hdpi/ic_action_rss_dark.png b/app/src/main/res/drawable-hdpi/ic_action_rss_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_rss_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_rss_dark.png diff --git a/core/res/drawable-hdpi/ic_action_rss_light.png b/app/src/main/res/drawable-hdpi/ic_action_rss_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_rss_light.png rename to app/src/main/res/drawable-hdpi/ic_action_rss_light.png diff --git a/core/res/drawable-hdpi/ic_action_save_dark.png b/app/src/main/res/drawable-hdpi/ic_action_save_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_save_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_save_dark.png diff --git a/core/res/drawable-hdpi/ic_action_save_light.png b/app/src/main/res/drawable-hdpi/ic_action_save_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_save_light.png rename to app/src/main/res/drawable-hdpi/ic_action_save_light.png diff --git a/core/res/drawable-hdpi/ic_action_search_dark.png b/app/src/main/res/drawable-hdpi/ic_action_search_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_search_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_search_dark.png diff --git a/core/res/drawable-hdpi/ic_action_search_light.png b/app/src/main/res/drawable-hdpi/ic_action_search_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_search_light.png rename to app/src/main/res/drawable-hdpi/ic_action_search_light.png diff --git a/core/res/drawable-hdpi/ic_action_sort_by_size_dark.png b/app/src/main/res/drawable-hdpi/ic_action_sort_by_size_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_sort_by_size_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_sort_by_size_dark.png diff --git a/core/res/drawable-hdpi/ic_action_sort_by_size_light.png b/app/src/main/res/drawable-hdpi/ic_action_sort_by_size_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_sort_by_size_light.png rename to app/src/main/res/drawable-hdpi/ic_action_sort_by_size_light.png diff --git a/core/res/drawable-hdpi/ic_action_start_dark.png b/app/src/main/res/drawable-hdpi/ic_action_start_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_start_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_start_dark.png diff --git a/core/res/drawable-hdpi/ic_action_start_light.png b/app/src/main/res/drawable-hdpi/ic_action_start_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_start_light.png rename to app/src/main/res/drawable-hdpi/ic_action_start_light.png diff --git a/core/res/drawable-hdpi/ic_action_stop_dark.png b/app/src/main/res/drawable-hdpi/ic_action_stop_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_stop_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_stop_dark.png diff --git a/core/res/drawable-hdpi/ic_action_stop_light.png b/app/src/main/res/drawable-hdpi/ic_action_stop_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_stop_light.png rename to app/src/main/res/drawable-hdpi/ic_action_stop_light.png diff --git a/core/res/drawable-hdpi/ic_action_trackers_dark.png b/app/src/main/res/drawable-hdpi/ic_action_trackers_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_trackers_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_trackers_dark.png diff --git a/core/res/drawable-hdpi/ic_action_trackers_light.png b/app/src/main/res/drawable-hdpi/ic_action_trackers_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_trackers_light.png rename to app/src/main/res/drawable-hdpi/ic_action_trackers_light.png diff --git a/core/res/drawable-hdpi/ic_action_turtle_disabled_light.png b/app/src/main/res/drawable-hdpi/ic_action_turtle_disabled_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_turtle_disabled_light.png rename to app/src/main/res/drawable-hdpi/ic_action_turtle_disabled_light.png diff --git a/core/res/drawable-hdpi/ic_action_turtle_enabled.png b/app/src/main/res/drawable-hdpi/ic_action_turtle_enabled.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_turtle_enabled.png rename to app/src/main/res/drawable-hdpi/ic_action_turtle_enabled.png diff --git a/core/res/drawable-hdpi/ic_action_website_dark.png b/app/src/main/res/drawable-hdpi/ic_action_website_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_website_dark.png rename to app/src/main/res/drawable-hdpi/ic_action_website_dark.png diff --git a/core/res/drawable-hdpi/ic_action_website_light.png b/app/src/main/res/drawable-hdpi/ic_action_website_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_action_website_light.png rename to app/src/main/res/drawable-hdpi/ic_action_website_light.png diff --git a/core/res/drawable-hdpi/ic_activity_torrents.png b/app/src/main/res/drawable-hdpi/ic_activity_torrents.png similarity index 100% rename from core/res/drawable-hdpi/ic_activity_torrents.png rename to app/src/main/res/drawable-hdpi/ic_activity_torrents.png diff --git a/core/res/drawable-hdpi/ic_empty_details_dark.png b/app/src/main/res/drawable-hdpi/ic_empty_details_dark.png similarity index 100% rename from core/res/drawable-hdpi/ic_empty_details_dark.png rename to app/src/main/res/drawable-hdpi/ic_empty_details_dark.png diff --git a/core/res/drawable-hdpi/ic_empty_details_light.png b/app/src/main/res/drawable-hdpi/ic_empty_details_light.png similarity index 100% rename from core/res/drawable-hdpi/ic_empty_details_light.png rename to app/src/main/res/drawable-hdpi/ic_empty_details_light.png diff --git a/core/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from core/res/drawable-hdpi/ic_launcher.png rename to app/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/core/res/drawable-hdpi/ic_stat_notification.png b/app/src/main/res/drawable-hdpi/ic_stat_notification.png similarity index 100% rename from core/res/drawable-hdpi/ic_stat_notification.png rename to app/src/main/res/drawable-hdpi/ic_stat_notification.png diff --git a/core/res/drawable-hdpi/list_focused_transdroid.9.png b/app/src/main/res/drawable-hdpi/list_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/list_focused_transdroid.9.png rename to app/src/main/res/drawable-hdpi/list_focused_transdroid.9.png diff --git a/core/res/drawable-hdpi/list_focused_transdroid2.9.png b/app/src/main/res/drawable-hdpi/list_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/list_focused_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/list_focused_transdroid2.9.png diff --git a/core/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png b/app/src/main/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png rename to app/src/main/res/drawable-hdpi/menu_dropdown_panel_transdroid.9.png diff --git a/core/res/drawable-hdpi/menu_dropdown_panel_transdroid2.9.png b/app/src/main/res/drawable-hdpi/menu_dropdown_panel_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/menu_dropdown_panel_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/menu_dropdown_panel_transdroid2.9.png diff --git a/core/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png b/app/src/main/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png rename to app/src/main/res/drawable-hdpi/menu_hardkey_panel_transdroid.9.png diff --git a/core/res/drawable-hdpi/progress_bg_transdroid.9.png b/app/src/main/res/drawable-hdpi/progress_bg_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_bg_transdroid.9.png rename to app/src/main/res/drawable-hdpi/progress_bg_transdroid.9.png diff --git a/core/res/drawable-hdpi/progress_bg_transdroid2.9.png b/app/src/main/res/drawable-hdpi/progress_bg_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_bg_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/progress_bg_transdroid2.9.png diff --git a/core/res/drawable-hdpi/progress_primary_transdroid.9.png b/app/src/main/res/drawable-hdpi/progress_primary_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_primary_transdroid.9.png rename to app/src/main/res/drawable-hdpi/progress_primary_transdroid.9.png diff --git a/core/res/drawable-hdpi/progress_primary_transdroid2.9.png b/app/src/main/res/drawable-hdpi/progress_primary_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_primary_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/progress_primary_transdroid2.9.png diff --git a/core/res/drawable-hdpi/progress_secondary_transdroid.9.png b/app/src/main/res/drawable-hdpi/progress_secondary_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_secondary_transdroid.9.png rename to app/src/main/res/drawable-hdpi/progress_secondary_transdroid.9.png diff --git a/core/res/drawable-hdpi/progress_secondary_transdroid2.9.png b/app/src/main/res/drawable-hdpi/progress_secondary_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/progress_secondary_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/progress_secondary_transdroid2.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_default_transdroid.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_default_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_default_transdroid.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_default_transdroid.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_default_transdroid2.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_default_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_default_transdroid2.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_disabled_transdroid.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_disabled_transdroid2.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_disabled_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_disabled_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_disabled_transdroid2.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_focused_transdroid.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_focused_transdroid2.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_focused_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_focused_transdroid2.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_pressed_transdroid.9.png diff --git a/core/res/drawable-hdpi/spinner_ab_pressed_transdroid2.9.png b/app/src/main/res/drawable-hdpi/spinner_ab_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/spinner_ab_pressed_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/spinner_ab_pressed_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_selected_focused_transdroid.9.png b/app/src/main/res/drawable-hdpi/tab_selected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_focused_transdroid.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_focused_transdroid.9.png diff --git a/core/res/drawable-hdpi/tab_selected_focused_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_selected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_focused_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_focused_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png b/app/src/main/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_pressed_transdroid.9.png diff --git a/core/res/drawable-hdpi/tab_selected_pressed_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_selected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_pressed_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_selected_transdroid.9.png b/app/src/main/res/drawable-hdpi/tab_selected_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_transdroid.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_transdroid.9.png diff --git a/core/res/drawable-hdpi/tab_selected_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_selected_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_selected_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_selected_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png b/app/src/main/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png rename to app/src/main/res/drawable-hdpi/tab_unselected_focused_transdroid.9.png diff --git a/core/res/drawable-hdpi/tab_unselected_focused_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_unselected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_unselected_focused_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_unselected_focused_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png b/app/src/main/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png rename to app/src/main/res/drawable-hdpi/tab_unselected_pressed_transdroid.9.png diff --git a/core/res/drawable-hdpi/tab_unselected_pressed_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_unselected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_unselected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_unselected_pressed_transdroid2.9.png diff --git a/core/res/drawable-hdpi/tab_unselected_transdroid2.9.png b/app/src/main/res/drawable-hdpi/tab_unselected_transdroid2.9.png similarity index 100% rename from core/res/drawable-hdpi/tab_unselected_transdroid2.9.png rename to app/src/main/res/drawable-hdpi/tab_unselected_transdroid2.9.png diff --git a/core/res/drawable-hdpi/widget_preview.png b/app/src/main/res/drawable-hdpi/widget_preview.png similarity index 100% rename from core/res/drawable-hdpi/widget_preview.png rename to app/src/main/res/drawable-hdpi/widget_preview.png diff --git a/core/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png b/app/src/main/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png rename to app/src/main/res/drawable-mdpi/ab_bottom_solid_transdroid.9.png diff --git a/core/res/drawable-mdpi/ab_bottom_solid_transdroid2.9.png b/app/src/main/res/drawable-mdpi/ab_bottom_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_bottom_solid_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/ab_bottom_solid_transdroid2.9.png diff --git a/core/res/drawable-mdpi/ab_solid_transdroid.9.png b/app/src/main/res/drawable-mdpi/ab_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_solid_transdroid.9.png rename to app/src/main/res/drawable-mdpi/ab_solid_transdroid.9.png diff --git a/core/res/drawable-mdpi/ab_solid_transdroid2.9.png b/app/src/main/res/drawable-mdpi/ab_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_solid_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/ab_solid_transdroid2.9.png diff --git a/core/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png b/app/src/main/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png rename to app/src/main/res/drawable-mdpi/ab_stacked_solid_transdroid.9.png diff --git a/core/res/drawable-mdpi/ab_stacked_solid_transdroid2.9.png b/app/src/main/res/drawable-mdpi/ab_stacked_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_stacked_solid_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/ab_stacked_solid_transdroid2.9.png diff --git a/core/res/drawable-mdpi/ab_texture_tile_transdroid2.png b/app/src/main/res/drawable-mdpi/ab_texture_tile_transdroid2.png similarity index 100% rename from core/res/drawable-mdpi/ab_texture_tile_transdroid2.png rename to app/src/main/res/drawable-mdpi/ab_texture_tile_transdroid2.png diff --git a/core/res/drawable-mdpi/ab_transparent_transdroid.9.png b/app/src/main/res/drawable-mdpi/ab_transparent_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_transparent_transdroid.9.png rename to app/src/main/res/drawable-mdpi/ab_transparent_transdroid.9.png diff --git a/core/res/drawable-mdpi/ab_transparent_transdroid2.9.png b/app/src/main/res/drawable-mdpi/ab_transparent_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/ab_transparent_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/ab_transparent_transdroid2.9.png diff --git a/core/res/drawable-mdpi/abc_list_focused_holo.9.png b/app/src/main/res/drawable-mdpi/abc_list_focused_holo.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_focused_holo.9.png rename to app/src/main/res/drawable-mdpi/abc_list_focused_holo.9.png diff --git a/core/res/drawable-mdpi/abc_list_longpressed_holo.9.png b/app/src/main/res/drawable-mdpi/abc_list_longpressed_holo.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_longpressed_holo.9.png rename to app/src/main/res/drawable-mdpi/abc_list_longpressed_holo.9.png diff --git a/core/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png b/app/src/main/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png rename to app/src/main/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png diff --git a/core/res/drawable-mdpi/abc_list_pressed_holo_light.9.png b/app/src/main/res/drawable-mdpi/abc_list_pressed_holo_light.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_pressed_holo_light.9.png rename to app/src/main/res/drawable-mdpi/abc_list_pressed_holo_light.9.png diff --git a/core/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png b/app/src/main/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png rename to app/src/main/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png diff --git a/core/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png b/app/src/main/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png similarity index 100% rename from core/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png rename to app/src/main/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png diff --git a/core/res/drawable-mdpi/btn_cab_done_default_transdroid2.9.png b/app/src/main/res/drawable-mdpi/btn_cab_done_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/btn_cab_done_default_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/btn_cab_done_default_transdroid2.9.png diff --git a/core/res/drawable-mdpi/btn_cab_done_focused_transdroid2.9.png b/app/src/main/res/drawable-mdpi/btn_cab_done_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/btn_cab_done_focused_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/btn_cab_done_focused_transdroid2.9.png diff --git a/core/res/drawable-mdpi/btn_cab_done_pressed_transdroid2.9.png b/app/src/main/res/drawable-mdpi/btn_cab_done_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/btn_cab_done_pressed_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/btn_cab_done_pressed_transdroid2.9.png diff --git a/core/res/drawable-mdpi/cab_background_bottom_transdroid2.9.png b/app/src/main/res/drawable-mdpi/cab_background_bottom_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/cab_background_bottom_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/cab_background_bottom_transdroid2.9.png diff --git a/core/res/drawable-mdpi/cab_background_top_transdroid2.9.png b/app/src/main/res/drawable-mdpi/cab_background_top_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/cab_background_top_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/cab_background_top_transdroid2.9.png diff --git a/core/res/drawable-mdpi/ic_action_discard.png b/app/src/main/res/drawable-mdpi/ic_action_discard.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_discard.png rename to app/src/main/res/drawable-mdpi/ic_action_discard.png diff --git a/core/res/drawable-mdpi/ic_action_discard_light.png b/app/src/main/res/drawable-mdpi/ic_action_discard_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_discard_light.png rename to app/src/main/res/drawable-mdpi/ic_action_discard_light.png diff --git a/core/res/drawable-mdpi/ic_action_done_dark.png b/app/src/main/res/drawable-mdpi/ic_action_done_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_done_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_done_dark.png diff --git a/core/res/drawable-mdpi/ic_action_done_light.png b/app/src/main/res/drawable-mdpi/ic_action_done_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_done_light.png rename to app/src/main/res/drawable-mdpi/ic_action_done_light.png diff --git a/core/res/drawable-mdpi/ic_action_filter_dark.png b/app/src/main/res/drawable-mdpi/ic_action_filter_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_filter_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_filter_dark.png diff --git a/core/res/drawable-mdpi/ic_action_filter_light.png b/app/src/main/res/drawable-mdpi/ic_action_filter_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_filter_light.png rename to app/src/main/res/drawable-mdpi/ic_action_filter_light.png diff --git a/core/res/drawable-mdpi/ic_action_forcerecheck_dark.png b/app/src/main/res/drawable-mdpi/ic_action_forcerecheck_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_forcerecheck_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_forcerecheck_dark.png diff --git a/core/res/drawable-mdpi/ic_action_forcerecheck_light.png b/app/src/main/res/drawable-mdpi/ic_action_forcerecheck_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_forcerecheck_light.png rename to app/src/main/res/drawable-mdpi/ic_action_forcerecheck_light.png diff --git a/core/res/drawable-mdpi/ic_action_info_dark.png b/app/src/main/res/drawable-mdpi/ic_action_info_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_info_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_info_dark.png diff --git a/core/res/drawable-mdpi/ic_action_info_light.png b/app/src/main/res/drawable-mdpi/ic_action_info_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_info_light.png rename to app/src/main/res/drawable-mdpi/ic_action_info_light.png diff --git a/core/res/drawable-mdpi/ic_action_labels_dark.png b/app/src/main/res/drawable-mdpi/ic_action_labels_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_labels_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_labels_dark.png diff --git a/core/res/drawable-mdpi/ic_action_labels_light.png b/app/src/main/res/drawable-mdpi/ic_action_labels_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_labels_light.png rename to app/src/main/res/drawable-mdpi/ic_action_labels_light.png diff --git a/core/res/drawable-mdpi/ic_action_new_dark.png b/app/src/main/res/drawable-mdpi/ic_action_new_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_new_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_new_dark.png diff --git a/core/res/drawable-mdpi/ic_action_new_light.png b/app/src/main/res/drawable-mdpi/ic_action_new_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_new_light.png rename to app/src/main/res/drawable-mdpi/ic_action_new_light.png diff --git a/core/res/drawable-mdpi/ic_action_overflow.png b/app/src/main/res/drawable-mdpi/ic_action_overflow.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_overflow.png rename to app/src/main/res/drawable-mdpi/ic_action_overflow.png diff --git a/core/res/drawable-mdpi/ic_action_pause_dark.png b/app/src/main/res/drawable-mdpi/ic_action_pause_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_pause_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_pause_dark.png diff --git a/core/res/drawable-mdpi/ic_action_pause_light.png b/app/src/main/res/drawable-mdpi/ic_action_pause_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_pause_light.png rename to app/src/main/res/drawable-mdpi/ic_action_pause_light.png diff --git a/core/res/drawable-mdpi/ic_action_priority_high_dark.png b/app/src/main/res/drawable-mdpi/ic_action_priority_high_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_high_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_high_dark.png diff --git a/core/res/drawable-mdpi/ic_action_priority_high_light.png b/app/src/main/res/drawable-mdpi/ic_action_priority_high_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_high_light.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_high_light.png diff --git a/core/res/drawable-mdpi/ic_action_priority_low_dark.png b/app/src/main/res/drawable-mdpi/ic_action_priority_low_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_low_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_low_dark.png diff --git a/core/res/drawable-mdpi/ic_action_priority_low_light.png b/app/src/main/res/drawable-mdpi/ic_action_priority_low_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_low_light.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_low_light.png diff --git a/core/res/drawable-mdpi/ic_action_priority_normal_dark.png b/app/src/main/res/drawable-mdpi/ic_action_priority_normal_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_normal_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_normal_dark.png diff --git a/core/res/drawable-mdpi/ic_action_priority_normal_light.png b/app/src/main/res/drawable-mdpi/ic_action_priority_normal_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_normal_light.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_normal_light.png diff --git a/core/res/drawable-mdpi/ic_action_priority_off_dark.png b/app/src/main/res/drawable-mdpi/ic_action_priority_off_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_off_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_off_dark.png diff --git a/core/res/drawable-mdpi/ic_action_priority_off_light.png b/app/src/main/res/drawable-mdpi/ic_action_priority_off_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_priority_off_light.png rename to app/src/main/res/drawable-mdpi/ic_action_priority_off_light.png diff --git a/core/res/drawable-mdpi/ic_action_refresh_dark.png b/app/src/main/res/drawable-mdpi/ic_action_refresh_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_refresh_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_refresh_dark.png diff --git a/core/res/drawable-mdpi/ic_action_refresh_light.png b/app/src/main/res/drawable-mdpi/ic_action_refresh_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_refresh_light.png rename to app/src/main/res/drawable-mdpi/ic_action_refresh_light.png diff --git a/core/res/drawable-mdpi/ic_action_remove_dark.png b/app/src/main/res/drawable-mdpi/ic_action_remove_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_remove_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_remove_dark.png diff --git a/core/res/drawable-mdpi/ic_action_remove_light.png b/app/src/main/res/drawable-mdpi/ic_action_remove_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_remove_light.png rename to app/src/main/res/drawable-mdpi/ic_action_remove_light.png diff --git a/core/res/drawable-mdpi/ic_action_resume_dark.png b/app/src/main/res/drawable-mdpi/ic_action_resume_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_resume_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_resume_dark.png diff --git a/core/res/drawable-mdpi/ic_action_resume_light.png b/app/src/main/res/drawable-mdpi/ic_action_resume_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_resume_light.png rename to app/src/main/res/drawable-mdpi/ic_action_resume_light.png diff --git a/core/res/drawable-mdpi/ic_action_rss_dark.png b/app/src/main/res/drawable-mdpi/ic_action_rss_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_rss_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_rss_dark.png diff --git a/core/res/drawable-mdpi/ic_action_rss_light.png b/app/src/main/res/drawable-mdpi/ic_action_rss_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_rss_light.png rename to app/src/main/res/drawable-mdpi/ic_action_rss_light.png diff --git a/core/res/drawable-mdpi/ic_action_save_dark.png b/app/src/main/res/drawable-mdpi/ic_action_save_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_save_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_save_dark.png diff --git a/core/res/drawable-mdpi/ic_action_save_light.png b/app/src/main/res/drawable-mdpi/ic_action_save_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_save_light.png rename to app/src/main/res/drawable-mdpi/ic_action_save_light.png diff --git a/core/res/drawable-mdpi/ic_action_search_dark.png b/app/src/main/res/drawable-mdpi/ic_action_search_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_search_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_search_dark.png diff --git a/core/res/drawable-mdpi/ic_action_search_light.png b/app/src/main/res/drawable-mdpi/ic_action_search_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_search_light.png rename to app/src/main/res/drawable-mdpi/ic_action_search_light.png diff --git a/core/res/drawable-mdpi/ic_action_sort_by_size_dark.png b/app/src/main/res/drawable-mdpi/ic_action_sort_by_size_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_sort_by_size_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_sort_by_size_dark.png diff --git a/core/res/drawable-mdpi/ic_action_sort_by_size_light.png b/app/src/main/res/drawable-mdpi/ic_action_sort_by_size_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_sort_by_size_light.png rename to app/src/main/res/drawable-mdpi/ic_action_sort_by_size_light.png diff --git a/core/res/drawable-mdpi/ic_action_start_dark.png b/app/src/main/res/drawable-mdpi/ic_action_start_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_start_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_start_dark.png diff --git a/core/res/drawable-mdpi/ic_action_start_light.png b/app/src/main/res/drawable-mdpi/ic_action_start_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_start_light.png rename to app/src/main/res/drawable-mdpi/ic_action_start_light.png diff --git a/core/res/drawable-mdpi/ic_action_stop_dark.png b/app/src/main/res/drawable-mdpi/ic_action_stop_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_stop_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_stop_dark.png diff --git a/core/res/drawable-mdpi/ic_action_stop_light.png b/app/src/main/res/drawable-mdpi/ic_action_stop_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_stop_light.png rename to app/src/main/res/drawable-mdpi/ic_action_stop_light.png diff --git a/core/res/drawable-mdpi/ic_action_trackers_dark.png b/app/src/main/res/drawable-mdpi/ic_action_trackers_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_trackers_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_trackers_dark.png diff --git a/core/res/drawable-mdpi/ic_action_trackers_light.png b/app/src/main/res/drawable-mdpi/ic_action_trackers_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_trackers_light.png rename to app/src/main/res/drawable-mdpi/ic_action_trackers_light.png diff --git a/core/res/drawable-mdpi/ic_action_turtle_disabled.png b/app/src/main/res/drawable-mdpi/ic_action_turtle_disabled.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_turtle_disabled.png rename to app/src/main/res/drawable-mdpi/ic_action_turtle_disabled.png diff --git a/core/res/drawable-mdpi/ic_action_turtle_enabled.png b/app/src/main/res/drawable-mdpi/ic_action_turtle_enabled.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_turtle_enabled.png rename to app/src/main/res/drawable-mdpi/ic_action_turtle_enabled.png diff --git a/core/res/drawable-mdpi/ic_action_website_dark.png b/app/src/main/res/drawable-mdpi/ic_action_website_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_website_dark.png rename to app/src/main/res/drawable-mdpi/ic_action_website_dark.png diff --git a/core/res/drawable-mdpi/ic_action_website_light.png b/app/src/main/res/drawable-mdpi/ic_action_website_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_action_website_light.png rename to app/src/main/res/drawable-mdpi/ic_action_website_light.png diff --git a/core/res/drawable-mdpi/ic_activity_torrents.png b/app/src/main/res/drawable-mdpi/ic_activity_torrents.png similarity index 100% rename from core/res/drawable-mdpi/ic_activity_torrents.png rename to app/src/main/res/drawable-mdpi/ic_activity_torrents.png diff --git a/core/res/drawable-mdpi/ic_empty_details_dark.png b/app/src/main/res/drawable-mdpi/ic_empty_details_dark.png similarity index 100% rename from core/res/drawable-mdpi/ic_empty_details_dark.png rename to app/src/main/res/drawable-mdpi/ic_empty_details_dark.png diff --git a/core/res/drawable-mdpi/ic_empty_details_light.png b/app/src/main/res/drawable-mdpi/ic_empty_details_light.png similarity index 100% rename from core/res/drawable-mdpi/ic_empty_details_light.png rename to app/src/main/res/drawable-mdpi/ic_empty_details_light.png diff --git a/core/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from core/res/drawable-mdpi/ic_launcher.png rename to app/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/core/res/drawable-mdpi/ic_stat_notification.png b/app/src/main/res/drawable-mdpi/ic_stat_notification.png similarity index 100% rename from core/res/drawable-mdpi/ic_stat_notification.png rename to app/src/main/res/drawable-mdpi/ic_stat_notification.png diff --git a/core/res/drawable-mdpi/list_focused_transdroid.9.png b/app/src/main/res/drawable-mdpi/list_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/list_focused_transdroid.9.png rename to app/src/main/res/drawable-mdpi/list_focused_transdroid.9.png diff --git a/core/res/drawable-mdpi/list_focused_transdroid2.9.png b/app/src/main/res/drawable-mdpi/list_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/list_focused_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/list_focused_transdroid2.9.png diff --git a/core/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png b/app/src/main/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png rename to app/src/main/res/drawable-mdpi/menu_dropdown_panel_transdroid.9.png diff --git a/core/res/drawable-mdpi/menu_dropdown_panel_transdroid2.9.png b/app/src/main/res/drawable-mdpi/menu_dropdown_panel_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/menu_dropdown_panel_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/menu_dropdown_panel_transdroid2.9.png diff --git a/core/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png b/app/src/main/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png rename to app/src/main/res/drawable-mdpi/menu_hardkey_panel_transdroid.9.png diff --git a/core/res/drawable-mdpi/progress_bg_transdroid.9.png b/app/src/main/res/drawable-mdpi/progress_bg_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_bg_transdroid.9.png rename to app/src/main/res/drawable-mdpi/progress_bg_transdroid.9.png diff --git a/core/res/drawable-mdpi/progress_bg_transdroid2.9.png b/app/src/main/res/drawable-mdpi/progress_bg_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_bg_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/progress_bg_transdroid2.9.png diff --git a/core/res/drawable-mdpi/progress_primary_transdroid.9.png b/app/src/main/res/drawable-mdpi/progress_primary_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_primary_transdroid.9.png rename to app/src/main/res/drawable-mdpi/progress_primary_transdroid.9.png diff --git a/core/res/drawable-mdpi/progress_primary_transdroid2.9.png b/app/src/main/res/drawable-mdpi/progress_primary_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_primary_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/progress_primary_transdroid2.9.png diff --git a/core/res/drawable-mdpi/progress_secondary_transdroid.9.png b/app/src/main/res/drawable-mdpi/progress_secondary_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_secondary_transdroid.9.png rename to app/src/main/res/drawable-mdpi/progress_secondary_transdroid.9.png diff --git a/core/res/drawable-mdpi/progress_secondary_transdroid2.9.png b/app/src/main/res/drawable-mdpi/progress_secondary_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/progress_secondary_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/progress_secondary_transdroid2.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_default_transdroid.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_default_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_default_transdroid.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_default_transdroid.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_default_transdroid2.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_default_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_default_transdroid2.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_disabled_transdroid.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_disabled_transdroid2.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_disabled_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_disabled_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_disabled_transdroid2.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_focused_transdroid.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_focused_transdroid2.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_focused_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_focused_transdroid2.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_pressed_transdroid.9.png diff --git a/core/res/drawable-mdpi/spinner_ab_pressed_transdroid2.9.png b/app/src/main/res/drawable-mdpi/spinner_ab_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/spinner_ab_pressed_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/spinner_ab_pressed_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_selected_focused_transdroid.9.png b/app/src/main/res/drawable-mdpi/tab_selected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_focused_transdroid.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_focused_transdroid.9.png diff --git a/core/res/drawable-mdpi/tab_selected_focused_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_selected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_focused_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_focused_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png b/app/src/main/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_pressed_transdroid.9.png diff --git a/core/res/drawable-mdpi/tab_selected_pressed_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_selected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_pressed_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_selected_transdroid.9.png b/app/src/main/res/drawable-mdpi/tab_selected_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_transdroid.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_transdroid.9.png diff --git a/core/res/drawable-mdpi/tab_selected_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_selected_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_selected_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_selected_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png b/app/src/main/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png rename to app/src/main/res/drawable-mdpi/tab_unselected_focused_transdroid.9.png diff --git a/core/res/drawable-mdpi/tab_unselected_focused_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_unselected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_unselected_focused_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_unselected_focused_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png b/app/src/main/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png rename to app/src/main/res/drawable-mdpi/tab_unselected_pressed_transdroid.9.png diff --git a/core/res/drawable-mdpi/tab_unselected_pressed_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_unselected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_unselected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_unselected_pressed_transdroid2.9.png diff --git a/core/res/drawable-mdpi/tab_unselected_transdroid2.9.png b/app/src/main/res/drawable-mdpi/tab_unselected_transdroid2.9.png similarity index 100% rename from core/res/drawable-mdpi/tab_unselected_transdroid2.9.png rename to app/src/main/res/drawable-mdpi/tab_unselected_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png b/app/src/main/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/ab_bottom_solid_transdroid.9.png diff --git a/core/res/drawable-xhdpi/ab_bottom_solid_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/ab_bottom_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_bottom_solid_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/ab_bottom_solid_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/ab_solid_transdroid.9.png b/app/src/main/res/drawable-xhdpi/ab_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_solid_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/ab_solid_transdroid.9.png diff --git a/core/res/drawable-xhdpi/ab_solid_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/ab_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_solid_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/ab_solid_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png b/app/src/main/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/ab_stacked_solid_transdroid.9.png diff --git a/core/res/drawable-xhdpi/ab_stacked_solid_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/ab_stacked_solid_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_stacked_solid_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/ab_stacked_solid_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/ab_texture_tile_transdroid2.png b/app/src/main/res/drawable-xhdpi/ab_texture_tile_transdroid2.png similarity index 100% rename from core/res/drawable-xhdpi/ab_texture_tile_transdroid2.png rename to app/src/main/res/drawable-xhdpi/ab_texture_tile_transdroid2.png diff --git a/core/res/drawable-xhdpi/ab_transparent_transdroid.9.png b/app/src/main/res/drawable-xhdpi/ab_transparent_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_transparent_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/ab_transparent_transdroid.9.png diff --git a/core/res/drawable-xhdpi/ab_transparent_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/ab_transparent_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/ab_transparent_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/ab_transparent_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/abc_list_focused_holo.9.png b/app/src/main/res/drawable-xhdpi/abc_list_focused_holo.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_focused_holo.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_focused_holo.9.png diff --git a/core/res/drawable-xhdpi/abc_list_longpressed_holo.9.png b/app/src/main/res/drawable-xhdpi/abc_list_longpressed_holo.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_longpressed_holo.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_longpressed_holo.9.png diff --git a/core/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png b/app/src/main/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png diff --git a/core/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png b/app/src/main/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png diff --git a/core/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png b/app/src/main/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png diff --git a/core/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png b/app/src/main/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png similarity index 100% rename from core/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png rename to app/src/main/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png diff --git a/core/res/drawable-xhdpi/btn_cab_done_default_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/btn_cab_done_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/btn_cab_done_default_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/btn_cab_done_default_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/btn_cab_done_focused_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/btn_cab_done_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/btn_cab_done_focused_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/btn_cab_done_focused_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/btn_cab_done_pressed_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/btn_cab_done_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/btn_cab_done_pressed_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/btn_cab_done_pressed_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/cab_background_bottom_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/cab_background_bottom_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/cab_background_bottom_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/cab_background_bottom_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/cab_background_top_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/cab_background_top_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/cab_background_top_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/cab_background_top_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/ic_action_discard_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_discard_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_discard_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_discard_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_discard_light.png b/app/src/main/res/drawable-xhdpi/ic_action_discard_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_discard_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_discard_light.png diff --git a/core/res/drawable-xhdpi/ic_action_done_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_done_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_done_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_done_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_done_light.png b/app/src/main/res/drawable-xhdpi/ic_action_done_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_done_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_done_light.png diff --git a/core/res/drawable-xhdpi/ic_action_filter_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_filter_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_filter_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_filter_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_filter_light.png b/app/src/main/res/drawable-xhdpi/ic_action_filter_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_filter_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_filter_light.png diff --git a/core/res/drawable-xhdpi/ic_action_forcerecheck_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_forcerecheck_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_forcerecheck_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_forcerecheck_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_forcerecheck_light.png b/app/src/main/res/drawable-xhdpi/ic_action_forcerecheck_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_forcerecheck_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_forcerecheck_light.png diff --git a/core/res/drawable-xhdpi/ic_action_info_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_info_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_info_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_info_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_info_light.png b/app/src/main/res/drawable-xhdpi/ic_action_info_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_info_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_info_light.png diff --git a/core/res/drawable-xhdpi/ic_action_labels_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_labels_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_labels_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_labels_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_labels_light.png b/app/src/main/res/drawable-xhdpi/ic_action_labels_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_labels_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_labels_light.png diff --git a/core/res/drawable-xhdpi/ic_action_new_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_new_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_new_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_new_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_new_light.png b/app/src/main/res/drawable-xhdpi/ic_action_new_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_new_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_new_light.png diff --git a/core/res/drawable-xhdpi/ic_action_overflow.png b/app/src/main/res/drawable-xhdpi/ic_action_overflow.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_overflow.png rename to app/src/main/res/drawable-xhdpi/ic_action_overflow.png diff --git a/core/res/drawable-xhdpi/ic_action_pause_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_pause_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_pause_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_pause_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_pause_light.png b/app/src/main/res/drawable-xhdpi/ic_action_pause_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_pause_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_pause_light.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_high_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_high_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_high_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_high_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_high_light.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_high_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_high_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_high_light.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_low_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_low_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_low_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_low_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_low_light.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_low_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_low_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_low_light.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_normal_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_normal_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_normal_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_normal_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_normal_light.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_normal_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_normal_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_normal_light.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_off_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_off_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_off_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_off_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_priority_off_light.png b/app/src/main/res/drawable-xhdpi/ic_action_priority_off_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_priority_off_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_priority_off_light.png diff --git a/core/res/drawable-xhdpi/ic_action_refresh_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_refresh_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_refresh_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_refresh_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_refresh_light.png b/app/src/main/res/drawable-xhdpi/ic_action_refresh_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_refresh_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_refresh_light.png diff --git a/core/res/drawable-xhdpi/ic_action_remove_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_remove_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_remove_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_remove_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_remove_light.png b/app/src/main/res/drawable-xhdpi/ic_action_remove_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_remove_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_remove_light.png diff --git a/core/res/drawable-xhdpi/ic_action_resume_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_resume_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_resume_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_resume_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_resume_light.png b/app/src/main/res/drawable-xhdpi/ic_action_resume_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_resume_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_resume_light.png diff --git a/core/res/drawable-xhdpi/ic_action_rss_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_rss_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_rss_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_rss_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_rss_light.png b/app/src/main/res/drawable-xhdpi/ic_action_rss_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_rss_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_rss_light.png diff --git a/core/res/drawable-xhdpi/ic_action_save_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_save_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_save_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_save_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_save_light.png b/app/src/main/res/drawable-xhdpi/ic_action_save_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_save_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_save_light.png diff --git a/core/res/drawable-xhdpi/ic_action_search_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_search_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_search_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_search_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_search_light.png b/app/src/main/res/drawable-xhdpi/ic_action_search_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_search_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_search_light.png diff --git a/core/res/drawable-xhdpi/ic_action_sort_by_size_light.png b/app/src/main/res/drawable-xhdpi/ic_action_sort_by_size_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_sort_by_size_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_sort_by_size_light.png diff --git a/core/res/drawable-xhdpi/ic_action_start_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_start_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_start_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_start_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_start_light.png b/app/src/main/res/drawable-xhdpi/ic_action_start_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_start_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_start_light.png diff --git a/core/res/drawable-xhdpi/ic_action_stop_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_stop_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_stop_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_stop_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_stop_light.png b/app/src/main/res/drawable-xhdpi/ic_action_stop_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_stop_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_stop_light.png diff --git a/core/res/drawable-xhdpi/ic_action_trackers_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_trackers_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_trackers_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_trackers_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_trackers_light.png b/app/src/main/res/drawable-xhdpi/ic_action_trackers_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_trackers_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_trackers_light.png diff --git a/core/res/drawable-xhdpi/ic_action_turtle_disabled.png b/app/src/main/res/drawable-xhdpi/ic_action_turtle_disabled.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_turtle_disabled.png rename to app/src/main/res/drawable-xhdpi/ic_action_turtle_disabled.png diff --git a/core/res/drawable-xhdpi/ic_action_turtle_enabled.png b/app/src/main/res/drawable-xhdpi/ic_action_turtle_enabled.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_turtle_enabled.png rename to app/src/main/res/drawable-xhdpi/ic_action_turtle_enabled.png diff --git a/core/res/drawable-xhdpi/ic_action_website_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_website_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_website_dark.png rename to app/src/main/res/drawable-xhdpi/ic_action_website_dark.png diff --git a/core/res/drawable-xhdpi/ic_action_website_light.png b/app/src/main/res/drawable-xhdpi/ic_action_website_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_action_website_light.png rename to app/src/main/res/drawable-xhdpi/ic_action_website_light.png diff --git a/core/res/drawable-xhdpi/ic_activity_torrents.png b/app/src/main/res/drawable-xhdpi/ic_activity_torrents.png similarity index 100% rename from core/res/drawable-xhdpi/ic_activity_torrents.png rename to app/src/main/res/drawable-xhdpi/ic_activity_torrents.png diff --git a/core/res/drawable-xhdpi/ic_empty_details_dark.png b/app/src/main/res/drawable-xhdpi/ic_empty_details_dark.png similarity index 100% rename from core/res/drawable-xhdpi/ic_empty_details_dark.png rename to app/src/main/res/drawable-xhdpi/ic_empty_details_dark.png diff --git a/core/res/drawable-xhdpi/ic_empty_details_light.png b/app/src/main/res/drawable-xhdpi/ic_empty_details_light.png similarity index 100% rename from core/res/drawable-xhdpi/ic_empty_details_light.png rename to app/src/main/res/drawable-xhdpi/ic_empty_details_light.png diff --git a/core/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from core/res/drawable-xhdpi/ic_launcher.png rename to app/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/core/res/drawable-xhdpi/ic_stat_notification.png b/app/src/main/res/drawable-xhdpi/ic_stat_notification.png similarity index 100% rename from core/res/drawable-xhdpi/ic_stat_notification.png rename to app/src/main/res/drawable-xhdpi/ic_stat_notification.png diff --git a/core/res/drawable-xhdpi/list_focused_transdroid.9.png b/app/src/main/res/drawable-xhdpi/list_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/list_focused_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/list_focused_transdroid.9.png diff --git a/core/res/drawable-xhdpi/list_focused_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/list_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/list_focused_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/list_focused_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png b/app/src/main/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/menu_dropdown_panel_transdroid.9.png diff --git a/core/res/drawable-xhdpi/menu_dropdown_panel_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/menu_dropdown_panel_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/menu_dropdown_panel_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/menu_dropdown_panel_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png b/app/src/main/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/menu_hardkey_panel_transdroid.9.png diff --git a/core/res/drawable-xhdpi/progress_bg_transdroid.9.png b/app/src/main/res/drawable-xhdpi/progress_bg_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_bg_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/progress_bg_transdroid.9.png diff --git a/core/res/drawable-xhdpi/progress_bg_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/progress_bg_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_bg_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/progress_bg_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/progress_primary_transdroid.9.png b/app/src/main/res/drawable-xhdpi/progress_primary_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_primary_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/progress_primary_transdroid.9.png diff --git a/core/res/drawable-xhdpi/progress_primary_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/progress_primary_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_primary_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/progress_primary_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/progress_secondary_transdroid.9.png b/app/src/main/res/drawable-xhdpi/progress_secondary_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_secondary_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/progress_secondary_transdroid.9.png diff --git a/core/res/drawable-xhdpi/progress_secondary_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/progress_secondary_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/progress_secondary_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/progress_secondary_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_default_transdroid.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_default_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_default_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_default_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_default_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_disabled_transdroid.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_disabled_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_disabled_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_disabled_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_disabled_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_focused_transdroid.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_focused_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_focused_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_focused_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_pressed_transdroid.9.png diff --git a/core/res/drawable-xhdpi/spinner_ab_pressed_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/spinner_ab_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/spinner_ab_pressed_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/spinner_ab_pressed_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_focused_transdroid.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_focused_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_focused_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_focused_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_pressed_transdroid.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_pressed_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_pressed_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_transdroid.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_transdroid.9.png diff --git a/core/res/drawable-xhdpi/tab_selected_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_selected_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_selected_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_selected_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png b/app/src/main/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/tab_unselected_focused_transdroid.9.png diff --git a/core/res/drawable-xhdpi/tab_unselected_focused_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_unselected_focused_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_unselected_focused_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_unselected_focused_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png b/app/src/main/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png rename to app/src/main/res/drawable-xhdpi/tab_unselected_pressed_transdroid.9.png diff --git a/core/res/drawable-xhdpi/tab_unselected_pressed_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_unselected_pressed_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_unselected_pressed_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_unselected_pressed_transdroid2.9.png diff --git a/core/res/drawable-xhdpi/tab_unselected_transdroid2.9.png b/app/src/main/res/drawable-xhdpi/tab_unselected_transdroid2.9.png similarity index 100% rename from core/res/drawable-xhdpi/tab_unselected_transdroid2.9.png rename to app/src/main/res/drawable-xhdpi/tab_unselected_transdroid2.9.png diff --git a/core/res/drawable-xxhdpi/ic_action_filter_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_filter_dark.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_filter_dark.png rename to app/src/main/res/drawable-xxhdpi/ic_action_filter_dark.png diff --git a/core/res/drawable-xxhdpi/ic_action_filter_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_filter_light.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_filter_light.png rename to app/src/main/res/drawable-xxhdpi/ic_action_filter_light.png diff --git a/core/res/drawable-xxhdpi/ic_action_forcerecheck_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_forcerecheck_dark.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_forcerecheck_dark.png rename to app/src/main/res/drawable-xxhdpi/ic_action_forcerecheck_dark.png diff --git a/core/res/drawable-xxhdpi/ic_action_forcerecheck_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_forcerecheck_light.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_forcerecheck_light.png rename to app/src/main/res/drawable-xxhdpi/ic_action_forcerecheck_light.png diff --git a/core/res/drawable-xxhdpi/ic_action_info_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_info_dark.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_info_dark.png rename to app/src/main/res/drawable-xxhdpi/ic_action_info_dark.png diff --git a/core/res/drawable-xxhdpi/ic_action_info_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_info_light.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_info_light.png rename to app/src/main/res/drawable-xxhdpi/ic_action_info_light.png diff --git a/core/res/drawable-xxhdpi/ic_action_overflow.png b/app/src/main/res/drawable-xxhdpi/ic_action_overflow.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_overflow.png rename to app/src/main/res/drawable-xxhdpi/ic_action_overflow.png diff --git a/core/res/drawable-xxhdpi/ic_action_save_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_save_dark.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_save_dark.png rename to app/src/main/res/drawable-xxhdpi/ic_action_save_dark.png diff --git a/core/res/drawable-xxhdpi/ic_action_save_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_save_light.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_action_save_light.png rename to app/src/main/res/drawable-xxhdpi/ic_action_save_light.png diff --git a/core/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_launcher.png rename to app/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/core/res/drawable-xxhdpi/ic_stat_notification.png b/app/src/main/res/drawable-xxhdpi/ic_stat_notification.png similarity index 100% rename from core/res/drawable-xxhdpi/ic_stat_notification.png rename to app/src/main/res/drawable-xxhdpi/ic_stat_notification.png diff --git a/core/res/drawable/ab_background_textured_transdroid2.xml b/app/src/main/res/drawable/ab_background_textured_transdroid2.xml similarity index 100% rename from core/res/drawable/ab_background_textured_transdroid2.xml rename to app/src/main/res/drawable/ab_background_textured_transdroid2.xml diff --git a/core/res/drawable/abc_list_selector_background_transition_holo_dark.xml b/app/src/main/res/drawable/abc_list_selector_background_transition_holo_dark.xml similarity index 100% rename from core/res/drawable/abc_list_selector_background_transition_holo_dark.xml rename to app/src/main/res/drawable/abc_list_selector_background_transition_holo_dark.xml diff --git a/core/res/drawable/abc_list_selector_background_transition_holo_light.xml b/app/src/main/res/drawable/abc_list_selector_background_transition_holo_light.xml similarity index 100% rename from core/res/drawable/abc_list_selector_background_transition_holo_light.xml rename to app/src/main/res/drawable/abc_list_selector_background_transition_holo_light.xml diff --git a/core/res/drawable/activatable_background_transdroid.xml b/app/src/main/res/drawable/activatable_background_transdroid.xml similarity index 100% rename from core/res/drawable/activatable_background_transdroid.xml rename to app/src/main/res/drawable/activatable_background_transdroid.xml diff --git a/core/res/drawable/activatable_background_transdroid2.xml b/app/src/main/res/drawable/activatable_background_transdroid2.xml similarity index 100% rename from core/res/drawable/activatable_background_transdroid2.xml rename to app/src/main/res/drawable/activatable_background_transdroid2.xml diff --git a/core/res/drawable/btn_cab_done_transdroid2.xml b/app/src/main/res/drawable/btn_cab_done_transdroid2.xml similarity index 100% rename from core/res/drawable/btn_cab_done_transdroid2.xml rename to app/src/main/res/drawable/btn_cab_done_transdroid2.xml diff --git a/core/res/drawable/details_list_background_dark.xml b/app/src/main/res/drawable/details_list_background_dark.xml similarity index 100% rename from core/res/drawable/details_list_background_dark.xml rename to app/src/main/res/drawable/details_list_background_dark.xml diff --git a/core/res/drawable/details_list_background_light.xml b/app/src/main/res/drawable/details_list_background_light.xml similarity index 100% rename from core/res/drawable/details_list_background_light.xml rename to app/src/main/res/drawable/details_list_background_light.xml diff --git a/core/res/drawable/loading_progress_dark.xml b/app/src/main/res/drawable/loading_progress_dark.xml similarity index 100% rename from core/res/drawable/loading_progress_dark.xml rename to app/src/main/res/drawable/loading_progress_dark.xml diff --git a/core/res/drawable/loading_progress_light.xml b/app/src/main/res/drawable/loading_progress_light.xml similarity index 100% rename from core/res/drawable/loading_progress_light.xml rename to app/src/main/res/drawable/loading_progress_light.xml diff --git a/core/res/drawable/pressed_background_transdroid.xml b/app/src/main/res/drawable/pressed_background_transdroid.xml similarity index 100% rename from core/res/drawable/pressed_background_transdroid.xml rename to app/src/main/res/drawable/pressed_background_transdroid.xml diff --git a/core/res/drawable/pressed_background_transdroid2.xml b/app/src/main/res/drawable/pressed_background_transdroid2.xml similarity index 100% rename from core/res/drawable/pressed_background_transdroid2.xml rename to app/src/main/res/drawable/pressed_background_transdroid2.xml diff --git a/core/res/drawable/section_header.xml b/app/src/main/res/drawable/section_header.xml similarity index 100% rename from core/res/drawable/section_header.xml rename to app/src/main/res/drawable/section_header.xml diff --git a/core/res/drawable/selectable_background_holo_light.xml b/app/src/main/res/drawable/selectable_background_holo_light.xml similarity index 100% rename from core/res/drawable/selectable_background_holo_light.xml rename to app/src/main/res/drawable/selectable_background_holo_light.xml diff --git a/core/res/drawable/selectable_background_transdroid.xml b/app/src/main/res/drawable/selectable_background_transdroid.xml similarity index 100% rename from core/res/drawable/selectable_background_transdroid.xml rename to app/src/main/res/drawable/selectable_background_transdroid.xml diff --git a/core/res/drawable/selectable_background_transdroid2.xml b/app/src/main/res/drawable/selectable_background_transdroid2.xml similarity index 100% rename from core/res/drawable/selectable_background_transdroid2.xml rename to app/src/main/res/drawable/selectable_background_transdroid2.xml diff --git a/core/res/drawable/spinner_background_ab_transdroid.xml b/app/src/main/res/drawable/spinner_background_ab_transdroid.xml similarity index 100% rename from core/res/drawable/spinner_background_ab_transdroid.xml rename to app/src/main/res/drawable/spinner_background_ab_transdroid.xml diff --git a/core/res/drawable/spinner_background_ab_transdroid2.xml b/app/src/main/res/drawable/spinner_background_ab_transdroid2.xml similarity index 100% rename from core/res/drawable/spinner_background_ab_transdroid2.xml rename to app/src/main/res/drawable/spinner_background_ab_transdroid2.xml diff --git a/core/res/drawable/tab_indicator_ab_transdroid.xml b/app/src/main/res/drawable/tab_indicator_ab_transdroid.xml similarity index 100% rename from core/res/drawable/tab_indicator_ab_transdroid.xml rename to app/src/main/res/drawable/tab_indicator_ab_transdroid.xml diff --git a/core/res/drawable/tab_indicator_ab_transdroid2.xml b/app/src/main/res/drawable/tab_indicator_ab_transdroid2.xml similarity index 100% rename from core/res/drawable/tab_indicator_ab_transdroid2.xml rename to app/src/main/res/drawable/tab_indicator_ab_transdroid2.xml diff --git a/external/ColorPickerPreference/res/layout-land/dialog_color_picker.xml b/app/src/main/res/layout-land/dialog_color_picker.xml similarity index 100% rename from external/ColorPickerPreference/res/layout-land/dialog_color_picker.xml rename to app/src/main/res/layout-land/dialog_color_picker.xml diff --git a/core/res/layout-w600dp/activity_search.xml b/app/src/main/res/layout-w600dp/activity_search.xml similarity index 100% rename from core/res/layout-w600dp/activity_search.xml rename to app/src/main/res/layout-w600dp/activity_search.xml diff --git a/core/res/layout-w600dp/activity_torrents.xml b/app/src/main/res/layout-w600dp/activity_torrents.xml similarity index 100% rename from core/res/layout-w600dp/activity_torrents.xml rename to app/src/main/res/layout-w600dp/activity_torrents.xml diff --git a/core/res/layout-w900dp/activity_rssfeeds.xml b/app/src/main/res/layout-w900dp/activity_rssfeeds.xml similarity index 100% rename from core/res/layout-w900dp/activity_rssfeeds.xml rename to app/src/main/res/layout-w900dp/activity_rssfeeds.xml diff --git a/core/res/layout-w900dp/activity_torrents.xml b/app/src/main/res/layout-w900dp/activity_torrents.xml similarity index 100% rename from core/res/layout-w900dp/activity_torrents.xml rename to app/src/main/res/layout-w900dp/activity_torrents.xml diff --git a/core/res/layout/actionbar_donebutton.xml b/app/src/main/res/layout/actionbar_donebutton.xml similarity index 100% rename from core/res/layout/actionbar_donebutton.xml rename to app/src/main/res/layout/actionbar_donebutton.xml diff --git a/core/res/layout/actionbar_navigation.xml b/app/src/main/res/layout/actionbar_navigation.xml similarity index 100% rename from core/res/layout/actionbar_navigation.xml rename to app/src/main/res/layout/actionbar_navigation.xml diff --git a/core/res/layout/actionbar_searchsite.xml b/app/src/main/res/layout/actionbar_searchsite.xml similarity index 100% rename from core/res/layout/actionbar_searchsite.xml rename to app/src/main/res/layout/actionbar_searchsite.xml diff --git a/core/res/layout/actionbar_serverstatus.xml b/app/src/main/res/layout/actionbar_serverstatus.xml similarity index 100% rename from core/res/layout/actionbar_serverstatus.xml rename to app/src/main/res/layout/actionbar_serverstatus.xml diff --git a/core/res/layout/activity_details.xml b/app/src/main/res/layout/activity_details.xml similarity index 100% rename from core/res/layout/activity_details.xml rename to app/src/main/res/layout/activity_details.xml diff --git a/core/res/layout/activity_rssfeeds.xml b/app/src/main/res/layout/activity_rssfeeds.xml similarity index 100% rename from core/res/layout/activity_rssfeeds.xml rename to app/src/main/res/layout/activity_rssfeeds.xml diff --git a/core/res/layout/activity_rssitems.xml b/app/src/main/res/layout/activity_rssitems.xml similarity index 100% rename from core/res/layout/activity_rssitems.xml rename to app/src/main/res/layout/activity_rssitems.xml diff --git a/core/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml similarity index 100% rename from core/res/layout/activity_search.xml rename to app/src/main/res/layout/activity_search.xml diff --git a/core/res/layout/activity_torrents.xml b/app/src/main/res/layout/activity_torrents.xml similarity index 100% rename from core/res/layout/activity_torrents.xml rename to app/src/main/res/layout/activity_torrents.xml diff --git a/core/res/layout/activity_widgetconfig.xml b/app/src/main/res/layout/activity_widgetconfig.xml similarity index 100% rename from core/res/layout/activity_widgetconfig.xml rename to app/src/main/res/layout/activity_widgetconfig.xml diff --git a/core/res/layout/dialog_about.xml b/app/src/main/res/layout/dialog_about.xml similarity index 100% rename from core/res/layout/dialog_about.xml rename to app/src/main/res/layout/dialog_about.xml diff --git a/core/res/layout/dialog_changelog.xml b/app/src/main/res/layout/dialog_changelog.xml similarity index 100% rename from core/res/layout/dialog_changelog.xml rename to app/src/main/res/layout/dialog_changelog.xml diff --git a/external/ColorPickerPreference/res/layout/dialog_color_picker.xml b/app/src/main/res/layout/dialog_color_picker.xml similarity index 100% rename from external/ColorPickerPreference/res/layout/dialog_color_picker.xml rename to app/src/main/res/layout/dialog_color_picker.xml diff --git a/core/res/layout/dialog_setlabel.xml b/app/src/main/res/layout/dialog_setlabel.xml similarity index 100% rename from core/res/layout/dialog_setlabel.xml rename to app/src/main/res/layout/dialog_setlabel.xml diff --git a/core/res/layout/dialog_storagelocation.xml b/app/src/main/res/layout/dialog_storagelocation.xml similarity index 100% rename from core/res/layout/dialog_storagelocation.xml rename to app/src/main/res/layout/dialog_storagelocation.xml diff --git a/core/res/layout/dialog_trackers.xml b/app/src/main/res/layout/dialog_trackers.xml similarity index 100% rename from core/res/layout/dialog_trackers.xml rename to app/src/main/res/layout/dialog_trackers.xml diff --git a/core/res/layout/dialog_transferrates.xml b/app/src/main/res/layout/dialog_transferrates.xml similarity index 100% rename from core/res/layout/dialog_transferrates.xml rename to app/src/main/res/layout/dialog_transferrates.xml diff --git a/core/res/layout/fragment_details.xml b/app/src/main/res/layout/fragment_details.xml similarity index 100% rename from core/res/layout/fragment_details.xml rename to app/src/main/res/layout/fragment_details.xml diff --git a/core/res/layout/fragment_details_header.xml b/app/src/main/res/layout/fragment_details_header.xml similarity index 100% rename from core/res/layout/fragment_details_header.xml rename to app/src/main/res/layout/fragment_details_header.xml diff --git a/core/res/layout/fragment_filters.xml b/app/src/main/res/layout/fragment_filters.xml similarity index 100% rename from core/res/layout/fragment_filters.xml rename to app/src/main/res/layout/fragment_filters.xml diff --git a/core/res/layout/fragment_rssfeeds.xml b/app/src/main/res/layout/fragment_rssfeeds.xml similarity index 100% rename from core/res/layout/fragment_rssfeeds.xml rename to app/src/main/res/layout/fragment_rssfeeds.xml diff --git a/core/res/layout/fragment_rssitems.xml b/app/src/main/res/layout/fragment_rssitems.xml similarity index 100% rename from core/res/layout/fragment_rssitems.xml rename to app/src/main/res/layout/fragment_rssitems.xml diff --git a/core/res/layout/fragment_searchresults.xml b/app/src/main/res/layout/fragment_searchresults.xml similarity index 100% rename from core/res/layout/fragment_searchresults.xml rename to app/src/main/res/layout/fragment_searchresults.xml diff --git a/core/res/layout/fragment_torrents.xml b/app/src/main/res/layout/fragment_torrents.xml similarity index 100% rename from core/res/layout/fragment_torrents.xml rename to app/src/main/res/layout/fragment_torrents.xml diff --git a/core/res/layout/list_item_filter.xml b/app/src/main/res/layout/list_item_filter.xml similarity index 100% rename from core/res/layout/list_item_filter.xml rename to app/src/main/res/layout/list_item_filter.xml diff --git a/core/res/layout/list_item_rssfeed.xml b/app/src/main/res/layout/list_item_rssfeed.xml similarity index 100% rename from core/res/layout/list_item_rssfeed.xml rename to app/src/main/res/layout/list_item_rssfeed.xml diff --git a/core/res/layout/list_item_rssitem.xml b/app/src/main/res/layout/list_item_rssitem.xml similarity index 100% rename from core/res/layout/list_item_rssitem.xml rename to app/src/main/res/layout/list_item_rssitem.xml diff --git a/core/res/layout/list_item_searchresult.xml b/app/src/main/res/layout/list_item_searchresult.xml similarity index 100% rename from core/res/layout/list_item_searchresult.xml rename to app/src/main/res/layout/list_item_searchresult.xml diff --git a/core/res/layout/list_item_searchsite.xml b/app/src/main/res/layout/list_item_searchsite.xml similarity index 100% rename from core/res/layout/list_item_searchsite.xml rename to app/src/main/res/layout/list_item_searchsite.xml diff --git a/core/res/layout/list_item_separator.xml b/app/src/main/res/layout/list_item_separator.xml similarity index 100% rename from core/res/layout/list_item_separator.xml rename to app/src/main/res/layout/list_item_separator.xml diff --git a/core/res/layout/list_item_simple.xml b/app/src/main/res/layout/list_item_simple.xml similarity index 100% rename from core/res/layout/list_item_simple.xml rename to app/src/main/res/layout/list_item_simple.xml diff --git a/core/res/layout/list_item_torrent.xml b/app/src/main/res/layout/list_item_torrent.xml similarity index 100% rename from core/res/layout/list_item_torrent.xml rename to app/src/main/res/layout/list_item_torrent.xml diff --git a/core/res/layout/list_item_torrentfile.xml b/app/src/main/res/layout/list_item_torrentfile.xml similarity index 100% rename from core/res/layout/list_item_torrentfile.xml rename to app/src/main/res/layout/list_item_torrentfile.xml diff --git a/core/res/layout/list_item_widget_dark.xml b/app/src/main/res/layout/list_item_widget_dark.xml similarity index 100% rename from core/res/layout/list_item_widget_dark.xml rename to app/src/main/res/layout/list_item_widget_dark.xml diff --git a/core/res/layout/list_item_widget_light.xml b/app/src/main/res/layout/list_item_widget_light.xml similarity index 100% rename from core/res/layout/list_item_widget_light.xml rename to app/src/main/res/layout/list_item_widget_light.xml diff --git a/core/res/layout/pref_withoverflow.xml b/app/src/main/res/layout/pref_withoverflow.xml similarity index 100% rename from core/res/layout/pref_withoverflow.xml rename to app/src/main/res/layout/pref_withoverflow.xml diff --git a/core/res/layout/widget_torrents_dark.xml b/app/src/main/res/layout/widget_torrents_dark.xml similarity index 100% rename from core/res/layout/widget_torrents_dark.xml rename to app/src/main/res/layout/widget_torrents_dark.xml diff --git a/core/res/layout/widget_torrents_light.xml b/app/src/main/res/layout/widget_torrents_light.xml similarity index 100% rename from core/res/layout/widget_torrents_light.xml rename to app/src/main/res/layout/widget_torrents_light.xml diff --git a/core/res/menu/activity_deleteableprefs.xml b/app/src/main/res/menu/activity_deleteableprefs.xml similarity index 100% rename from core/res/menu/activity_deleteableprefs.xml rename to app/src/main/res/menu/activity_deleteableprefs.xml diff --git a/core/res/menu/activity_details.xml b/app/src/main/res/menu/activity_details.xml similarity index 100% rename from core/res/menu/activity_details.xml rename to app/src/main/res/menu/activity_details.xml diff --git a/core/res/menu/activity_search.xml b/app/src/main/res/menu/activity_search.xml similarity index 100% rename from core/res/menu/activity_search.xml rename to app/src/main/res/menu/activity_search.xml diff --git a/core/res/menu/activity_torrents.xml b/app/src/main/res/menu/activity_torrents.xml similarity index 100% rename from core/res/menu/activity_torrents.xml rename to app/src/main/res/menu/activity_torrents.xml diff --git a/core/res/menu/dialog_about.xml b/app/src/main/res/menu/dialog_about.xml similarity index 100% rename from core/res/menu/dialog_about.xml rename to app/src/main/res/menu/dialog_about.xml diff --git a/core/res/menu/fragment_details.xml b/app/src/main/res/menu/fragment_details.xml similarity index 100% rename from core/res/menu/fragment_details.xml rename to app/src/main/res/menu/fragment_details.xml diff --git a/core/res/menu/fragment_details_cab.xml b/app/src/main/res/menu/fragment_details_cab.xml similarity index 100% rename from core/res/menu/fragment_details_cab.xml rename to app/src/main/res/menu/fragment_details_cab.xml diff --git a/core/res/menu/fragment_rssfeeds.xml b/app/src/main/res/menu/fragment_rssfeeds.xml similarity index 100% rename from core/res/menu/fragment_rssfeeds.xml rename to app/src/main/res/menu/fragment_rssfeeds.xml diff --git a/core/res/menu/fragment_rssitems_cab.xml b/app/src/main/res/menu/fragment_rssitems_cab.xml similarity index 100% rename from core/res/menu/fragment_rssitems_cab.xml rename to app/src/main/res/menu/fragment_rssitems_cab.xml diff --git a/core/res/menu/fragment_searchresults_cab.xml b/app/src/main/res/menu/fragment_searchresults_cab.xml similarity index 100% rename from core/res/menu/fragment_searchresults_cab.xml rename to app/src/main/res/menu/fragment_searchresults_cab.xml diff --git a/core/res/menu/fragment_torrents_cab.xml b/app/src/main/res/menu/fragment_torrents_cab.xml similarity index 100% rename from core/res/menu/fragment_torrents_cab.xml rename to app/src/main/res/menu/fragment_torrents_cab.xml diff --git a/core/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml similarity index 100% rename from core/res/values-cs/strings.xml rename to app/src/main/res/values-cs/strings.xml diff --git a/core/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml similarity index 100% rename from core/res/values-da/strings.xml rename to app/src/main/res/values-da/strings.xml diff --git a/core/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml similarity index 100% rename from core/res/values-de/strings.xml rename to app/src/main/res/values-de/strings.xml diff --git a/core/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml similarity index 100% rename from core/res/values-en/strings.xml rename to app/src/main/res/values-en/strings.xml diff --git a/core/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml similarity index 100% rename from core/res/values-es/strings.xml rename to app/src/main/res/values-es/strings.xml diff --git a/core/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml similarity index 100% rename from core/res/values-fa/strings.xml rename to app/src/main/res/values-fa/strings.xml diff --git a/core/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml similarity index 100% rename from core/res/values-fi/strings.xml rename to app/src/main/res/values-fi/strings.xml diff --git a/core/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml similarity index 100% rename from core/res/values-fr/strings.xml rename to app/src/main/res/values-fr/strings.xml diff --git a/core/res/values-h400dp/dimens.xml b/app/src/main/res/values-h400dp/dimens.xml similarity index 100% rename from core/res/values-h400dp/dimens.xml rename to app/src/main/res/values-h400dp/dimens.xml diff --git a/core/res/values-h600dp/dimens.xml b/app/src/main/res/values-h600dp/dimens.xml similarity index 100% rename from core/res/values-h600dp/dimens.xml rename to app/src/main/res/values-h600dp/dimens.xml diff --git a/core/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml similarity index 100% rename from core/res/values-hu/strings.xml rename to app/src/main/res/values-hu/strings.xml diff --git a/core/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml similarity index 100% rename from core/res/values-it/strings.xml rename to app/src/main/res/values-it/strings.xml diff --git a/core/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml similarity index 100% rename from core/res/values-land/dimens.xml rename to app/src/main/res/values-land/dimens.xml diff --git a/core/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml similarity index 100% rename from core/res/values-nl/strings.xml rename to app/src/main/res/values-nl/strings.xml diff --git a/core/res/values-no-rNB/strings.xml b/app/src/main/res/values-no-rNB/strings.xml similarity index 100% rename from core/res/values-no-rNB/strings.xml rename to app/src/main/res/values-no-rNB/strings.xml diff --git a/core/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml similarity index 100% rename from core/res/values-pt-rBR/strings.xml rename to app/src/main/res/values-pt-rBR/strings.xml diff --git a/core/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml similarity index 100% rename from core/res/values-pt/strings.xml rename to app/src/main/res/values-pt/strings.xml diff --git a/core/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml similarity index 100% rename from core/res/values-ru/strings.xml rename to app/src/main/res/values-ru/strings.xml diff --git a/core/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml similarity index 100% rename from core/res/values-sl/strings.xml rename to app/src/main/res/values-sl/strings.xml diff --git a/core/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml similarity index 100% rename from core/res/values-sv/strings.xml rename to app/src/main/res/values-sv/strings.xml diff --git a/core/res/values-sw500dp/bools.xml b/app/src/main/res/values-sw500dp/bools.xml similarity index 100% rename from core/res/values-sw500dp/bools.xml rename to app/src/main/res/values-sw500dp/bools.xml diff --git a/core/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml similarity index 100% rename from core/res/values-sw600dp/dimens.xml rename to app/src/main/res/values-sw600dp/dimens.xml diff --git a/core/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml similarity index 100% rename from core/res/values-uk/strings.xml rename to app/src/main/res/values-uk/strings.xml diff --git a/core/res/values-v16/styles.xml b/app/src/main/res/values-v16/styles.xml similarity index 100% rename from core/res/values-v16/styles.xml rename to app/src/main/res/values-v16/styles.xml diff --git a/core/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml similarity index 100% rename from core/res/values-vi/strings.xml rename to app/src/main/res/values-vi/strings.xml diff --git a/core/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml similarity index 100% rename from core/res/values-zh-rCN/strings.xml rename to app/src/main/res/values-zh-rCN/strings.xml diff --git a/core/res/values/attrs.xml b/app/src/main/res/values/attrs.xml similarity index 100% rename from core/res/values/attrs.xml rename to app/src/main/res/values/attrs.xml diff --git a/core/res/values/bools.xml b/app/src/main/res/values/bools.xml similarity index 100% rename from core/res/values/bools.xml rename to app/src/main/res/values/bools.xml diff --git a/core/res/values/changelog.xml b/app/src/main/res/values/changelog.xml similarity index 97% rename from core/res/values/changelog.xml rename to app/src/main/res/values/changelog.xml index c3f65cdf..2c486afe 100644 --- a/core/res/values/changelog.xml +++ b/app/src/main/res/values/changelog.xml @@ -19,6 +19,8 @@ Transdroid 2.3.0\n - Aria2 support\n +- Fixed server checker when one is unavailable\n +- Fixed Deluge magnet links from Chrome\n \n Transdroid 2.2.0\n - Dropped legacy Android support; Android 4.0.3 is the new minimum\n diff --git a/core/res/values/colors.xml b/app/src/main/res/values/colors.xml similarity index 100% rename from core/res/values/colors.xml rename to app/src/main/res/values/colors.xml diff --git a/core/res/values/colors_transdroid_dark.xml b/app/src/main/res/values/colors_transdroid_dark.xml similarity index 100% rename from core/res/values/colors_transdroid_dark.xml rename to app/src/main/res/values/colors_transdroid_dark.xml diff --git a/core/res/values/colors_transdroid_light.xml b/app/src/main/res/values/colors_transdroid_light.xml similarity index 100% rename from core/res/values/colors_transdroid_light.xml rename to app/src/main/res/values/colors_transdroid_light.xml diff --git a/core/res/values/dimens.xml b/app/src/main/res/values/dimens.xml similarity index 100% rename from core/res/values/dimens.xml rename to app/src/main/res/values/dimens.xml diff --git a/external/ColorPickerPreference/res/values/integer.xml b/app/src/main/res/values/integer_colorpicker.xml similarity index 100% rename from external/ColorPickerPreference/res/values/integer.xml rename to app/src/main/res/values/integer_colorpicker.xml diff --git a/core/res/values/strings.xml b/app/src/main/res/values/strings.xml similarity index 99% rename from core/res/values/strings.xml rename to app/src/main/res/values/strings.xml index d2491257..ecd592e3 100644 --- a/core/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,7 +16,7 @@ along with Transdroid. If not, see . --> - + Add Add all From file diff --git a/external/ColorPickerPreference/res/values/strings.xml b/app/src/main/res/values/strings_colorpicker.xml similarity index 100% rename from external/ColorPickerPreference/res/values/strings.xml rename to app/src/main/res/values/strings_colorpicker.xml diff --git a/core/res/values/styles.xml b/app/src/main/res/values/styles.xml similarity index 97% rename from core/res/values/styles.xml rename to app/src/main/res/values/styles.xml index 56ba4c3e..6f662670 100644 --- a/core/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -99,11 +99,7 @@ - - - + - - \ No newline at end of file diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/DefaultHeaderTransformer.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/DefaultHeaderTransformer.java deleted file mode 100644 index d5989de4..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/DefaultHeaderTransformer.java +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.app.Activity; -import android.content.Context; -import android.content.res.Configuration; -import android.content.res.TypedArray; -import android.graphics.PixelFormat; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.os.Build; -import android.util.TypedValue; -import android.view.View; -import android.view.ViewGroup; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.Interpolator; -import android.widget.ProgressBar; -import android.widget.TextView; - -import uk.co.senab.actionbarpulltorefresh.library.platform.SDK11; - -/** - * Default Header Transformer. - */ -public class DefaultHeaderTransformer extends PullToRefreshAttacher.HeaderTransformer { - - private View mHeaderView; - private ViewGroup mContentLayout; - private TextView mHeaderTextView; - private ProgressBar mHeaderProgressBar; - - private CharSequence mPullRefreshLabel, mRefreshingLabel, mReleaseLabel; - - private boolean mUseCustomProgressColor = false; - private int mProgressDrawableColor; - private long mAnimationDuration; - - private final Interpolator mInterpolator = new AccelerateInterpolator(); - - protected DefaultHeaderTransformer() { - final int min = getMinimumApiLevel(); - if (Build.VERSION.SDK_INT < min) { - throw new IllegalStateException("This HeaderTransformer is designed to run on SDK " - + min - + "+. If using ActionBarSherlock or ActionBarCompat you should use the appropriate provided extra."); - } - } - - @Override - public void onViewCreated(Activity activity, View headerView) { - mHeaderView = headerView; - - // Get ProgressBar and TextView - mHeaderProgressBar = (ProgressBar) headerView.findViewById(R.id.ptr_progress); - mHeaderTextView = (TextView) headerView.findViewById(R.id.ptr_text); - mContentLayout = (ViewGroup) headerView.findViewById(R.id.ptr_content); - - // Default Labels to display - mPullRefreshLabel = activity.getString(R.string.pull_to_refresh_pull_label); - mRefreshingLabel = activity.getString(R.string.pull_to_refresh_refreshing_label); - mReleaseLabel = activity.getString(R.string.pull_to_refresh_release_label); - - mAnimationDuration = activity.getResources() - .getInteger(android.R.integer.config_shortAnimTime); - - // Setup the View styles - setupViewsFromStyles(activity, headerView); - - // Apply any custom ProgressBar colors - applyProgressBarColor(); - - // FIXME: I do not like this call here - onReset(); - } - - @Override - public void onConfigurationChanged(Activity activity, Configuration newConfig) { - setupViewsFromStyles(activity, getHeaderView()); - } - - @Override - public void onReset() { - // Reset Progress Bar - if (mHeaderProgressBar != null) { - mHeaderProgressBar.setVisibility(View.GONE); - mHeaderProgressBar.setProgress(0); - mHeaderProgressBar.setIndeterminate(false); - } - - // Reset Text View - if (mHeaderTextView != null) { - mHeaderTextView.setVisibility(View.VISIBLE); - mHeaderTextView.setText(mPullRefreshLabel); - } - - // Reset the Content Layout - if (mContentLayout != null) { - mContentLayout.setVisibility(View.VISIBLE); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - SDK11.setAlpha(mContentLayout, 1f); - } - } - } - - @Override - public void onPulled(float percentagePulled) { - if (mHeaderProgressBar != null) { - mHeaderProgressBar.setVisibility(View.VISIBLE); - final float progress = mInterpolator.getInterpolation(percentagePulled); - mHeaderProgressBar.setProgress(Math.round(mHeaderProgressBar.getMax() * progress)); - } - } - - @Override - public void onRefreshStarted() { - if (mHeaderTextView != null) { - mHeaderTextView.setText(mRefreshingLabel); - } - if (mHeaderProgressBar != null) { - mHeaderProgressBar.setVisibility(View.VISIBLE); - mHeaderProgressBar.setIndeterminate(true); - } - } - - @Override - public void onReleaseToRefresh() { - if (mHeaderTextView != null) { - mHeaderTextView.setText(mReleaseLabel); - } - if (mHeaderProgressBar != null) { - mHeaderProgressBar.setProgress(mHeaderProgressBar.getMax()); - } - } - - @Override - public void onRefreshMinimized() { - // Here we fade out most of the header, leaving just the progress bar - if (mContentLayout != null) { - ObjectAnimator.ofFloat(mContentLayout, "alpha", 1f, 0f).start(); - } - } - - public View getHeaderView() { - return mHeaderView; - } - - @Override - public boolean showHeaderView() { - final boolean changeVis = mHeaderView.getVisibility() != View.VISIBLE; - - if (changeVis) { - mHeaderView.setVisibility(View.VISIBLE); - AnimatorSet animSet = new AnimatorSet(); - ObjectAnimator transAnim = ObjectAnimator.ofFloat(mContentLayout, "translationY", - -mContentLayout.getHeight(), 0f); - ObjectAnimator alphaAnim = ObjectAnimator.ofFloat(mHeaderView, "alpha", 0f, 1f); - animSet.playTogether(transAnim, alphaAnim); - animSet.setDuration(mAnimationDuration); - animSet.start(); - } - - return changeVis; - } - - @Override - public boolean hideHeaderView() { - final boolean changeVis = mHeaderView.getVisibility() != View.GONE; - - if (changeVis) { - Animator animator; - if (mContentLayout.getAlpha() >= 0.5f) { - // If the content layout is showing, translate and fade out - animator = new AnimatorSet(); - ObjectAnimator transAnim = ObjectAnimator.ofFloat(mContentLayout, "translationY", - 0f, -mContentLayout.getHeight()); - ObjectAnimator alphaAnim = ObjectAnimator.ofFloat(mHeaderView, "alpha", 1f, 0f); - ((AnimatorSet) animator).playTogether(transAnim, alphaAnim); - } else { - // If the content layout isn't showing (minimized), just fade out - animator = ObjectAnimator.ofFloat(mHeaderView, "alpha", 1f, 0f); - } - animator.setDuration(mAnimationDuration); - animator.addListener(new HideAnimationCallback()); - animator.start(); - } - - return changeVis; - } - - /** - * Set color to apply to the progress bar. Automatically enables usage of the custom color. Use - * {@link #setProgressBarColorEnabled(boolean)} to disable and re-enable the custom color usage. - *

- * The best way to apply a color is to load the color from resources: {@code - * setProgressBarColor(getResources().getColor(R.color.your_color_name))}. - * - * @param color The color to use. - */ - public void setProgressBarColor(int color) { - mProgressDrawableColor = color; - setProgressBarColorEnabled(true); - } - - /** - * Enable or disable the use of a custom progress bar color. You can set what color to use with - * {@link #setProgressBarColor(int)}, which also automatically enables custom color usage. - */ - public void setProgressBarColorEnabled(boolean enabled) { - mUseCustomProgressColor = enabled; - applyProgressBarColor(); - } - - - /** - * Set Text to show to prompt the user is pull (or keep pulling). - * - * @param pullText - Text to display. - */ - public void setPullText(CharSequence pullText) { - mPullRefreshLabel = pullText; - if (mHeaderTextView != null) { - mHeaderTextView.setText(mPullRefreshLabel); - } - } - - /** - * Set Text to show to tell the user that a refresh is currently in progress. - * - * @param refreshingText - Text to display. - */ - public void setRefreshingText(CharSequence refreshingText) { - mRefreshingLabel = refreshingText; - } - - /** - * Set Text to show to tell the user has scrolled enough to refresh. - * - * @param releaseText - Text to display. - */ - public void setReleaseText(CharSequence releaseText) { - mReleaseLabel = releaseText; - } - - private void setupViewsFromStyles(Activity activity, View headerView) { - final TypedArray styleAttrs = obtainStyledAttrsFromThemeAttr(activity, - R.attr.ptrHeaderStyle, R.styleable.PullToRefreshHeader); - - // Retrieve the Action Bar size from the app theme or the Action Bar's style - if (mContentLayout != null) { - final int height = styleAttrs - .getDimensionPixelSize(R.styleable.PullToRefreshHeader_ptrHeaderHeight, - getActionBarSize(activity)); - mContentLayout.getLayoutParams().height = height; - mContentLayout.requestLayout(); - } - - // Retrieve the Action Bar background from the app theme or the Action Bar's style (see #93) - Drawable bg = styleAttrs.hasValue(R.styleable.PullToRefreshHeader_ptrHeaderBackground) - ? styleAttrs.getDrawable(R.styleable.PullToRefreshHeader_ptrHeaderBackground) - : getActionBarBackground(activity); - if (bg != null) { - mHeaderTextView.setBackgroundDrawable(bg); - - // If we have an opaque background we can remove the background from the content layout - if (mContentLayout != null && bg.getOpacity() == PixelFormat.OPAQUE) { - mContentLayout.setBackgroundResource(0); - } - } - - // Retrieve the Action Bar Title Style from the app theme or the Action Bar's style - Context abContext = headerView.getContext(); - final int titleTextStyle = styleAttrs - .getResourceId(R.styleable.PullToRefreshHeader_ptrHeaderTitleTextAppearance, - getActionBarTitleStyle(abContext)); - if (titleTextStyle != 0) { - mHeaderTextView.setTextAppearance(abContext, titleTextStyle); - } - - // Retrieve the Progress Bar Color the style - if (styleAttrs.hasValue(R.styleable.PullToRefreshHeader_ptrProgressBarColor)) { - mUseCustomProgressColor = true; - mProgressDrawableColor = styleAttrs - .getColor(R.styleable.PullToRefreshHeader_ptrProgressBarColor, 0); - } - - // Retrieve the text strings from the style (if they're set) - if (styleAttrs.hasValue(R.styleable.PullToRefreshHeader_ptrPullText)) { - mPullRefreshLabel = styleAttrs.getString(R.styleable.PullToRefreshHeader_ptrPullText); - } - if (styleAttrs.hasValue(R.styleable.PullToRefreshHeader_ptrRefreshingText)) { - mRefreshingLabel = styleAttrs - .getString(R.styleable.PullToRefreshHeader_ptrRefreshingText); - } - if (styleAttrs.hasValue(R.styleable.PullToRefreshHeader_ptrReleaseText)) { - mReleaseLabel = styleAttrs.getString(R.styleable.PullToRefreshHeader_ptrReleaseText); - } - - styleAttrs.recycle(); - } - - private void applyProgressBarColor() { - if (mHeaderProgressBar != null) { - if (mUseCustomProgressColor) { - mHeaderProgressBar.getProgressDrawable() - .setColorFilter(mProgressDrawableColor, PorterDuff.Mode.SRC_ATOP); - mHeaderProgressBar.getIndeterminateDrawable() - .setColorFilter(mProgressDrawableColor, PorterDuff.Mode.SRC_ATOP); - } else { - mHeaderProgressBar.getProgressDrawable().clearColorFilter(); - mHeaderProgressBar.getIndeterminateDrawable().clearColorFilter(); - } - } - } - - protected Drawable getActionBarBackground(Context context) { - int[] android_styleable_ActionBar = {android.R.attr.background}; - - // Now get the action bar style values... - TypedArray abStyle = obtainStyledAttrsFromThemeAttr(context, android.R.attr.actionBarStyle, - android_styleable_ActionBar); - try { - // background is the first attr in the array above so it's index is 0. - return abStyle.getDrawable(0); - } finally { - abStyle.recycle(); - } - } - - protected int getActionBarSize(Context context) { - int[] attrs = {android.R.attr.actionBarSize}; - TypedArray values = context.getTheme().obtainStyledAttributes(attrs); - try { - return values.getDimensionPixelSize(0, 0); - } finally { - values.recycle(); - } - } - - protected int getActionBarTitleStyle(Context context) { - int[] android_styleable_ActionBar = {android.R.attr.titleTextStyle}; - - // Now get the action bar style values... - TypedArray abStyle = obtainStyledAttrsFromThemeAttr(context, android.R.attr.actionBarStyle, - android_styleable_ActionBar); - try { - // titleTextStyle is the first attr in the array above so it's index is 0. - return abStyle.getResourceId(0, 0); - } finally { - abStyle.recycle(); - } - } - - protected int getMinimumApiLevel() { - return Build.VERSION_CODES.ICE_CREAM_SANDWICH; - } - - class HideAnimationCallback extends AnimatorListenerAdapter { - @Override - public void onAnimationEnd(Animator animation) { - View headerView = getHeaderView(); - if (headerView != null) { - headerView.setVisibility(View.GONE); - } - onReset(); - } - } - - protected static TypedArray obtainStyledAttrsFromThemeAttr(Context context, int themeAttr, - int[] styleAttrs) { - // Need to get resource id of style pointed to from the theme attr - TypedValue outValue = new TypedValue(); - context.getTheme().resolveAttribute(themeAttr, outValue, true); - final int styleResId = outValue.resourceId; - - // Now return the values (from styleAttrs) from the style - return context.obtainStyledAttributes(styleResId, styleAttrs); - } -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/InstanceCreationUtils.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/InstanceCreationUtils.java deleted file mode 100644 index 77766f8a..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/InstanceCreationUtils.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library; - -import android.content.Context; -import android.util.Log; -import android.view.View; - -import java.lang.reflect.Constructor; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import uk.co.senab.actionbarpulltorefresh.library.viewdelegates.AbsListViewDelegate; -import uk.co.senab.actionbarpulltorefresh.library.viewdelegates.ScrollYDelegate; -import uk.co.senab.actionbarpulltorefresh.library.viewdelegates.WebViewDelegate; - -class InstanceCreationUtils { - - private static final String LOG_TAG = "InstanceCreationUtils"; - - private static final Class[] VIEW_DELEGATE_CONSTRUCTOR_SIGNATURE = new Class[]{}; - private static final Class[] TRANSFORMER_CONSTRUCTOR_SIGNATURE = new Class[]{}; - - private static final HashMap BUILT_IN_DELEGATES; - static { - BUILT_IN_DELEGATES = new HashMap(); - BUILT_IN_DELEGATES.put(AbsListViewDelegate.SUPPORTED_VIEW_CLASS, AbsListViewDelegate.class); - BUILT_IN_DELEGATES.put(WebViewDelegate.SUPPORTED_VIEW_CLASS, WebViewDelegate.class); - } - - static PullToRefreshAttacher.ViewDelegate getBuiltInViewDelegate(final View view) { - final Set> entries = BUILT_IN_DELEGATES.entrySet(); - for (final Map.Entry entry : entries) { - if (entry.getKey().isInstance(view)) { - return InstanceCreationUtils.newInstance(view.getContext(), - entry.getValue(), VIEW_DELEGATE_CONSTRUCTOR_SIGNATURE, null); - } - } - - // Default is the ScrollYDelegate - return InstanceCreationUtils.newInstance(view.getContext(), - ScrollYDelegate.class, VIEW_DELEGATE_CONSTRUCTOR_SIGNATURE, null); - } - - static T instantiateViewDelegate(Context context, String className, Object[] arguments) { - try { - Class clazz = context.getClassLoader().loadClass(className); - return newInstance(context, clazz, VIEW_DELEGATE_CONSTRUCTOR_SIGNATURE, arguments); - } catch (Exception e) { - Log.w(LOG_TAG, "Cannot instantiate class: " + className, e); - } - return null; - } - - static T instantiateTransformer(Context context, String className, Object[] arguments) { - try { - Class clazz = context.getClassLoader().loadClass(className); - return newInstance(context, clazz, TRANSFORMER_CONSTRUCTOR_SIGNATURE, arguments); - } catch (Exception e) { - Log.w(LOG_TAG, "Cannot instantiate class: " + className, e); - } - return null; - } - - private static T newInstance(Context context, Class clazz, Class[] constructorSig, - Object[] arguments) { - try { - Constructor constructor = clazz.getConstructor(constructorSig); - return (T) constructor.newInstance(arguments); - } catch (Exception e) { - Log.w(LOG_TAG, "Cannot instantiate class: " + clazz.getName(), e); - } - return null; - } - -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshAttacher.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshAttacher.java deleted file mode 100644 index 5b344be1..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshAttacher.java +++ /dev/null @@ -1,948 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library; - -import android.app.Activity; -import android.content.Context; -import android.content.res.Configuration; -import android.graphics.Rect; -import android.os.Build; -import android.os.Handler; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.widget.FrameLayout; - -import java.util.Set; -import java.util.WeakHashMap; - -/** - * FIXME - */ -public class PullToRefreshAttacher implements View.OnTouchListener { - - /* Default configuration values */ - private static final int DEFAULT_HEADER_LAYOUT = R.layout.default_header; - private static final float DEFAULT_REFRESH_SCROLL_DISTANCE = 0.5f; - private static final boolean DEFAULT_REFRESH_ON_UP = false; - private static final int DEFAULT_REFRESH_MINIMIZED_DELAY = 1 * 1000; - private static final boolean DEFAULT_REFRESH_MINIMIZE = true; - - private static final boolean DEBUG = false; - private static final String LOG_TAG = "PullToRefreshAttacher"; - - /* Member Variables */ - - private final EnvironmentDelegate mEnvironmentDelegate; - private final HeaderTransformer mHeaderTransformer; - - private final Activity mActivity; - private final View mHeaderView; - private HeaderViewListener mHeaderViewListener; - - private final int mTouchSlop; - private final float mRefreshScrollDistance; - - private int mInitialMotionY, mLastMotionY, mPullBeginY; - private boolean mIsBeingDragged, mIsRefreshing, mHandlingTouchEventFromDown; - - private final WeakHashMap mRefreshableViews; - - private boolean mEnabled = true; - private final boolean mRefreshOnUp; - private final int mRefreshMinimizeDelay; - private final boolean mRefreshMinimize; - - private final Handler mHandler = new Handler(); - - /** - * Get a PullToRefreshAttacher for this Activity. If there is already a - * PullToRefreshAttacher attached to the Activity, the existing one is - * returned, otherwise a new instance is created. This version of the method - * will use default configuration options for everything. - * - * @param activity - * Activity to attach to. - * @return PullToRefresh attached to the Activity. - */ - public static PullToRefreshAttacher get(Activity activity) { - return get(activity, new Options()); - } - - /** - * Get a PullToRefreshAttacher for this Activity. If there is already a - * PullToRefreshAttacher attached to the Activity, the existing one is - * returned, otherwise a new instance is created. - * - * @param activity - * Activity to attach to. - * @param options - * Options used when creating the PullToRefreshAttacher. - * @return PullToRefresh attached to the Activity. - */ - public static PullToRefreshAttacher get(Activity activity, Options options) { - return new PullToRefreshAttacher(activity, options); - } - - protected PullToRefreshAttacher(Activity activity, Options options) { - if (options == null) { - Log.i(LOG_TAG, "Given null options so using default options."); - options = new Options(); - } - - mActivity = activity; - mRefreshableViews = new WeakHashMap(); - - // Copy necessary values from options - mRefreshScrollDistance = options.refreshScrollDistance; - mRefreshOnUp = options.refreshOnUp; - mRefreshMinimizeDelay = options.refreshMinimizeDelay; - mRefreshMinimize = options.refreshMinimize; - - // EnvironmentDelegate - mEnvironmentDelegate = options.environmentDelegate != null ? options.environmentDelegate - : createDefaultEnvironmentDelegate(); - - // Header Transformer - mHeaderTransformer = options.headerTransformer != null ? options.headerTransformer - : createDefaultHeaderTransformer(); - - // Get touch slop for use later - mTouchSlop = ViewConfiguration.get(activity).getScaledTouchSlop(); - - // Get Window Decor View - final ViewGroup decorView = (ViewGroup) activity.getWindow() - .getDecorView(); - - // Check to see if there is already a Attacher view installed - if (decorView.getChildCount() == 1 - && decorView.getChildAt(0) instanceof DecorChildLayout) { - throw new IllegalStateException( - "You should only create one PullToRefreshAttacher per Activity"); - } - - // Create Header view and then add to Decor View - mHeaderView = LayoutInflater.from( - mEnvironmentDelegate.getContextForInflater(activity)).inflate( - options.headerLayout, decorView, false); - if (mHeaderView == null) { - throw new IllegalArgumentException( - "Must supply valid layout id for header."); - } - // Make Header View invisible so it still gets a layout pass - mHeaderView.setVisibility(View.INVISIBLE); - - // Create DecorChildLayout which will move all of the system's decor - // view's children + the - // Header View to itself. See DecorChildLayout for more info. - DecorChildLayout decorContents = new DecorChildLayout(activity, - decorView, mHeaderView); - - // Now add the DecorChildLayout to the decor view - decorView.addView(decorContents, ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT); - - // Notify transformer - mHeaderTransformer.onViewCreated(activity, mHeaderView); - // TODO Remove the follow deprecated method call before v1.0 - mHeaderTransformer.onViewCreated(mHeaderView); - } - - /** - * Add a view which will be used to initiate refresh requests and a listener - * to be invoked when a refresh is started. This version of the method will - * try to find a handler for the view from the built-in view delegates. - * - * @param view - * View which will be used to initiate refresh requests. - * @param refreshListener - * Listener to be invoked when a refresh is started. - */ - public void addRefreshableView(View view, OnRefreshListener refreshListener) { - addRefreshableView(view, null, refreshListener); - } - - /** - * Add a view which will be used to initiate refresh requests, along with a - * delegate which knows how to handle the given view, and a listener to be - * invoked when a refresh is started. - * - * @param view - * View which will be used to initiate refresh requests. - * @param viewDelegate - * delegate which knows how to handle view. - * @param refreshListener - * Listener to be invoked when a refresh is started. - */ - public void addRefreshableView(View view, ViewDelegate viewDelegate, - OnRefreshListener refreshListener) { - addRefreshableView(view, viewDelegate, refreshListener, true); - } - - /** - * Add a view which will be used to initiate refresh requests, along with a - * delegate which knows how to handle the given view, and a listener to be - * invoked when a refresh is started. - * - * @param view - * View which will be used to initiate refresh requests. - * @param viewDelegate - * delegate which knows how to handle view. - * @param refreshListener - * Listener to be invoked when a refresh is started. - * @param setTouchListener - * Whether to set this as the - * {@link android.view.View.OnTouchListener}. - */ - void addRefreshableView(View view, ViewDelegate viewDelegate, - OnRefreshListener refreshListener, final boolean setTouchListener) { - // Check to see if view is null - if (view == null) { - Log.i(LOG_TAG, "Refreshable View is null."); - return; - } - - if (refreshListener == null) { - throw new IllegalArgumentException( - "OnRefreshListener not given. Please provide one."); - } - - // ViewDelegate - if (viewDelegate == null) { - viewDelegate = InstanceCreationUtils.getBuiltInViewDelegate(view); - if (viewDelegate == null) { - throw new IllegalArgumentException( - "No view handler found. Please provide one."); - } - } - - // View to detect refreshes for - mRefreshableViews.put(view, new ViewParams(viewDelegate, refreshListener)); - if (setTouchListener) { - view.setOnTouchListener(this); - } - } - - /** - * Remove a view which was previously used to initiate refresh requests. - * - * @param view - * - View which will be used to initiate refresh requests. - */ - public void removeRefreshableView(View view) { - if (mRefreshableViews.containsKey(view)) { - mRefreshableViews.remove(view); - view.setOnTouchListener(null); - } - } - - /** - * Clear all views which were previously used to initiate refresh requests. - */ - public void clearRefreshableViews() { - Set views = mRefreshableViews.keySet(); - for (View view : views) { - view.setOnTouchListener(null); - } - mRefreshableViews.clear(); - } - - /** - * This method should be called by your Activity's or Fragment's - * onConfigurationChanged method. - * - * @param newConfig The new configuration - */ - public void onConfigurationChanged(Configuration newConfig) { - mHeaderTransformer.onConfigurationChanged(mActivity, newConfig); - } - - /** - * Manually set this Attacher's refreshing state. The header will be - * displayed or hidden as requested. - * - * @param refreshing - * - Whether the attacher should be in a refreshing state, - */ - public final void setRefreshing(boolean refreshing) { - setRefreshingInt(null, refreshing, false); - } - - /** - * @return true if this Attacher is currently in a refreshing state. - */ - public final boolean isRefreshing() { - return mIsRefreshing; - } - - /** - * @return true if this PullToRefresh is currently enabled (defaults to - * true) - */ - public boolean isEnabled() { - return mEnabled; - } - - /** - * Allows the enable/disable of this PullToRefreshAttacher. If disabled when - * refreshing then the UI is automatically reset. - * - * @param enabled - * - Whether this PullToRefreshAttacher is enabled. - */ - public void setEnabled(boolean enabled) { - mEnabled = enabled; - - if (!enabled) { - // If we're not enabled, reset any touch handling - resetTouch(); - - // If we're currently refreshing, reset the ptr UI - if (mIsRefreshing) { - reset(false); - } - } - } - - /** - * Call this when your refresh is complete and this view should reset itself - * (header view will be hidden). - * - * This is the equivalent of calling setRefreshing(false). - */ - public final void setRefreshComplete() { - setRefreshingInt(null, false, false); - } - - /** - * Set a {@link HeaderViewListener} which is called when the visibility - * state of the Header View has changed. - * - * @param listener - */ - public final void setHeaderViewListener(HeaderViewListener listener) { - mHeaderViewListener = listener; - } - - /** - * @return The Header View which is displayed when the user is pulling, or - * we are refreshing. - */ - public final View getHeaderView() { - return mHeaderView; - } - - /** - * @return The HeaderTransformer currently used by this Attacher. - */ - public HeaderTransformer getHeaderTransformer() { - return mHeaderTransformer; - } - - @Override - public final boolean onTouch(final View view, final MotionEvent event) { - // Just call onTouchEvent. It now handles the proper calling of onInterceptTouchEvent - onTouchEvent(view, event); - // Always return false as we only want to observe events - return false; - } - - final boolean onInterceptTouchEvent(View view, MotionEvent event) { - if (DEBUG) { - Log.d(LOG_TAG, "onInterceptTouchEvent: " + event.toString()); - } - - // If we're not enabled or currently refreshing don't handle any touch - // events - if (!isEnabled() || isRefreshing()) { - return false; - } - - final ViewParams params = mRefreshableViews.get(view); - if (params == null) { - return false; - } - - if (DEBUG) Log.d(LOG_TAG, "onInterceptTouchEvent. Got ViewParams. " + view.toString()); - - switch (event.getAction()) { - case MotionEvent.ACTION_MOVE: { - // We're not currently being dragged so check to see if the user has - // scrolled enough - if (!mIsBeingDragged && mInitialMotionY > 0) { - final int y = (int) event.getY(); - final int yDiff = y - mInitialMotionY; - - if (yDiff > mTouchSlop) { - mIsBeingDragged = true; - onPullStarted(y); - } else if (yDiff < -mTouchSlop) { - resetTouch(); - } - } - break; - } - - case MotionEvent.ACTION_DOWN: { - // If we're already refreshing, ignore - if (canRefresh(true, params.onRefreshListener) - && params.viewDelegate.isReadyForPull(view, event.getX(), event.getY())) { - mInitialMotionY = (int) event.getY(); - } - break; - } - - case MotionEvent.ACTION_CANCEL: - case MotionEvent.ACTION_UP: { - resetTouch(); - break; - } - } - - if (DEBUG) Log.d(LOG_TAG, "onInterceptTouchEvent. Returning " + mIsBeingDragged); - - return mIsBeingDragged; - } - - final boolean onTouchEvent(View view, MotionEvent event) { - if (DEBUG) { - Log.d(LOG_TAG, "onTouchEvent: " + event.toString()); - } - - // If we're not enabled or currently refreshing don't handle any touch - // events - if (!isEnabled()) { - return false; - } - - final ViewParams params = mRefreshableViews.get(view); - if (params == null) { - Log.i(LOG_TAG, "View does not have ViewParams"); - return false; - } - - // Record whether our handling is started from ACTION_DOWN - if (event.getAction() == MotionEvent.ACTION_DOWN) { - mHandlingTouchEventFromDown = true; - } - - // If we're being called from ACTION_DOWN then we must call through to - // onInterceptTouchEvent until it sets mIsBeingDragged - if (mHandlingTouchEventFromDown && !mIsBeingDragged) { - onInterceptTouchEvent(view, event); - return true; - } - - switch (event.getAction()) { - case MotionEvent.ACTION_MOVE: { - // If we're already refreshing ignore it - if (isRefreshing()) { - return false; - } - - final int y = (int) event.getY(); - - if (mIsBeingDragged && y != mLastMotionY) { - final int yDx = y - mLastMotionY; - - /** - * Check to see if the user is scrolling the right direction - * (down). We allow a small scroll up which is the check against - * negative touch slop. - */ - if (yDx >= -mTouchSlop) { - onPull(view, y); - // Only record the y motion if the user has scrolled down. - if (yDx > 0) { - mLastMotionY = y; - } - } else { - onPullEnded(); - resetTouch(); - } - } - break; - } - - case MotionEvent.ACTION_CANCEL: - case MotionEvent.ACTION_UP: { - checkScrollForRefresh(view); - if (mIsBeingDragged) { - onPullEnded(); - } - resetTouch(); - break; - } - } - - return true; - } - - void resetTouch() { - mIsBeingDragged = false; - mHandlingTouchEventFromDown = false; - mInitialMotionY = mLastMotionY = mPullBeginY = -1; - } - - void onPullStarted(int y) { - if (DEBUG) { - Log.d(LOG_TAG, "onPullStarted"); - } - showHeaderView(); - mPullBeginY = y; - } - - void onPull(View view, int y) { - if (DEBUG) { - Log.d(LOG_TAG, "onPull"); - } - - final float pxScrollForRefresh = getScrollNeededForRefresh(view); - final int scrollLength = y - mPullBeginY; - - if (scrollLength < pxScrollForRefresh) { - mHeaderTransformer.onPulled(scrollLength / pxScrollForRefresh); - } else { - if (mRefreshOnUp) { - mHeaderTransformer.onReleaseToRefresh(); - } else { - setRefreshingInt(view, true, true); - } - } - } - - void onPullEnded() { - if (DEBUG) { - Log.d(LOG_TAG, "onPullEnded"); - } - if (!mIsRefreshing) { - reset(true); - } - } - - void showHeaderView() { - if (mHeaderTransformer.showHeaderView()) { - if (mHeaderViewListener != null) { - mHeaderViewListener.onStateChanged(mHeaderView, - HeaderViewListener.STATE_VISIBLE); - } - } - } - - void hideHeaderView() { - if (mHeaderTransformer.hideHeaderView()) { - if (mHeaderViewListener != null) { - mHeaderViewListener.onStateChanged(mHeaderView, - HeaderViewListener.STATE_HIDDEN); - } - } - } - - protected EnvironmentDelegate createDefaultEnvironmentDelegate() { - return new EnvironmentDelegate(); - } - - protected HeaderTransformer createDefaultHeaderTransformer() { - return new DefaultHeaderTransformer(); - } - - private boolean checkScrollForRefresh(View view) { - if (mIsBeingDragged && mRefreshOnUp && view != null) { - if (mLastMotionY - mPullBeginY >= getScrollNeededForRefresh(view)) { - setRefreshingInt(view, true, true); - return true; - } - } - return false; - } - - private void setRefreshingInt(View view, boolean refreshing, boolean fromTouch) { - if (DEBUG) { - Log.d(LOG_TAG, "setRefreshingInt: " + refreshing); - } - // Check to see if we need to do anything - if (mIsRefreshing == refreshing) { - return; - } - - resetTouch(); - - if (refreshing && canRefresh(fromTouch, getRefreshListenerForView(view))) { - startRefresh(view, fromTouch); - } else { - reset(fromTouch); - } - } - - private OnRefreshListener getRefreshListenerForView(View view) { - if (view != null) { - ViewParams params = mRefreshableViews.get(view); - if (params != null) { - return params.onRefreshListener; - } - } - return null; - } - - /** - * @param fromTouch - * - Whether this is being invoked from a touch event - * @return true if we're currently in a state where a refresh can be - * started. - */ - private boolean canRefresh(boolean fromTouch, OnRefreshListener listener) { - return !mIsRefreshing && (!fromTouch || listener != null); - } - - private float getScrollNeededForRefresh(View view) { - return view.getHeight() * mRefreshScrollDistance; - } - - private void reset(boolean fromTouch) { - // Update isRefreshing state - mIsRefreshing = false; - - // Remove any minimize callbacks - if (mRefreshMinimize) { - mHandler.removeCallbacks(mRefreshMinimizeRunnable); - } - - // Hide Header View - hideHeaderView(); - } - - private void startRefresh(View view, boolean fromTouch) { - // Update isRefreshing state - mIsRefreshing = true; - - // Call OnRefreshListener if this call has originated from a touch event - if (fromTouch) { - OnRefreshListener listener = getRefreshListenerForView(view); - if (listener != null) { - listener.onRefreshStarted(view); - } - } - - // Call Transformer - mHeaderTransformer.onRefreshStarted(); - - // Show Header View - showHeaderView(); - - // Post a runnable to minimize the refresh header - if (mRefreshMinimize) { - if (mRefreshMinimizeDelay > 0) { - mHandler.postDelayed(mRefreshMinimizeRunnable, mRefreshMinimizeDelay); - } else { - mHandler.post(mRefreshMinimizeRunnable); - } - } - } - - /** - * Simple Listener to listen for any callbacks to Refresh. - */ - public interface OnRefreshListener { - /** - * Called when the user has initiated a refresh by pulling. - * - * @param view - * - View which the user has started the refresh from. - */ - public void onRefreshStarted(View view); - } - - public interface HeaderViewListener { - /** - * The state when the header view is completely visible. - */ - public static int STATE_VISIBLE = 0; - - /** - * The state when the header view is minimized. By default this means - * that the progress bar is still visible, but the rest of the view is - * hidden, showing the Action Bar behind. - *

- * This will not be called in header minimization is disabled. - */ - public static int STATE_MINIMIZED = 1; - - /** - * The state when the header view is completely hidden. - */ - public static int STATE_HIDDEN = 2; - - /** - * Called when the visibility state of the Header View has changed. - * - * @param headerView - * HeaderView who's state has changed. - * @param state - * The new state. One of {@link #STATE_VISIBLE}, - * {@link #STATE_MINIMIZED} and {@link #STATE_HIDDEN} - */ - public void onStateChanged(View headerView, int state); - } - - /** - * HeaderTransformers are what controls and update the Header View to reflect the current state - * of the pull-to-refresh interaction. They are responsible for showing and hiding the header - * view, as well as update the state. - */ - public static abstract class HeaderTransformer { - - /** - * Called whether the header view has been inflated from the resources - * defined in {@link Options#headerLayout}. - * - * @param activity The {@link Activity} that the header view is attached to. - * @param headerView The inflated header view. - */ - public void onViewCreated(Activity activity, View headerView) {} - - /** - * @deprecated This will be removed before v1.0. Override - * {@link #onViewCreated(android.app.Activity, android.view.View)} instead. - */ - public void onViewCreated(View headerView) {} - - /** - * Called when the header should be reset. You should update any child - * views to reflect this. - *

- * You should not change the visibility of the header - * view. - */ - public void onReset() {} - - /** - * Called the user has pulled on the scrollable view. - * - * @param percentagePulled value between 0.0f and 1.0f depending on how far the - * user has pulled. - */ - public void onPulled(float percentagePulled) {} - - /** - * Called when a refresh has begun. Theoretically this call is similar - * to that provided from {@link OnRefreshListener} but is more suitable - * for header view updates. - */ - public void onRefreshStarted() {} - - /** - * Called when a refresh can be initiated when the user ends the touch - * event. This is only called when {@link Options#refreshOnUp} is set to - * true. - */ - public void onReleaseToRefresh() {} - - /** - * Called when the current refresh has taken longer than the time - * specified in {@link Options#refreshMinimizeDelay}. - */ - public void onRefreshMinimized() {} - - /** - * Called when the Header View should be made visible, usually with an animation. - * - * @return true if the visibility has changed. - */ - public abstract boolean showHeaderView(); - - /** - * Called when the Header View should be made invisible, usually with an animation. - * - * @return true if the visibility has changed. - */ - public abstract boolean hideHeaderView(); - - /** - * Called when the Activity's configuration has changed. - * - * @param activity The {@link Activity} that the header view is attached to. - * @param newConfig New configuration. - * - * @see android.app.Activity#onConfigurationChanged(android.content.res.Configuration) - */ - public void onConfigurationChanged(Activity activity, Configuration newConfig) {} - } - - /** - * ViewDelegates are what are used to de-couple the Attacher from the different types of - * scrollable views. - */ - public static abstract class ViewDelegate { - - /** - * Allows you to provide support for View which do not have built-in - * support. In this method you should cast view to it's - * native class, and check if it is scrolled to the top. - * - * @param view - * The view which has should be checked against. - * @param x The X co-ordinate of the touch event - * @param y The Y co-ordinate of the touch event - * @return true if view is scrolled to the top. - */ - public abstract boolean isReadyForPull(View view, float x, float y); - } - - /** - * This is used to provide platform and environment specific functionality for the Attacher. - */ - public static class EnvironmentDelegate { - - /** - * @return Context which should be used for inflating the header layout - */ - public Context getContextForInflater(Activity activity) { - if (Build.VERSION.SDK_INT >= 14) { - return activity.getActionBar().getThemedContext(); - } else { - return activity; - } - } - } - - /** - * Allows you to specify a number of configuration options when instantiating a - * {@link PullToRefreshAttacher}. Used with {@link #get(Activity, Options) get()}. - */ - public static class Options { - - /** - * EnvironmentDelegate instance which will be used. If null, we will - * create an instance of the default class. - */ - public EnvironmentDelegate environmentDelegate = null; - - /** - * The layout resource ID which should be inflated to be displayed above - * the Action Bar - */ - public int headerLayout = DEFAULT_HEADER_LAYOUT; - - /** - * The header transformer to be used to transfer the header view. If - * null, an instance of {@link DefaultHeaderTransformer} will be used. - */ - public HeaderTransformer headerTransformer = null; - - /** - * The percentage of the refreshable view that needs to be scrolled - * before a refresh is initiated. - */ - public float refreshScrollDistance = DEFAULT_REFRESH_SCROLL_DISTANCE; - - /** - * Whether a refresh should only be initiated when the user has finished - * the touch event. - */ - public boolean refreshOnUp = DEFAULT_REFRESH_ON_UP; - - /** - * The delay after a refresh is started in which the header should be - * 'minimized'. By default, most of the header is faded out, leaving - * only the progress bar signifying that a refresh is taking place. - */ - public int refreshMinimizeDelay = DEFAULT_REFRESH_MINIMIZED_DELAY; - - /** - * Enable or disable the header 'minimization', which by default means that the majority of - * the header is hidden, leaving only the progress bar still showing. - *

- * If set to true, the header will be minimized after the delay set in - * {@link #refreshMinimizeDelay}. If set to false then the whole header will be displayed - * until the refresh is finished. - */ - public boolean refreshMinimize = DEFAULT_REFRESH_MINIMIZE; - } - - /** - * This class allows us to insert a layer in between the system decor view - * and the actual decor. (e.g. Action Bar views). This is needed so we can - * receive a call to fitSystemWindows(Rect) so we can adjust the header view - * to fit the system windows too. - */ - final static class DecorChildLayout extends FrameLayout { - private final ViewGroup mHeaderViewWrapper; - - DecorChildLayout(Context context, ViewGroup systemDecorView, - View headerView) { - super(context); - - // Move all children from decor view to here - for (int i = 0, z = systemDecorView.getChildCount(); i < z; i++) { - View child = systemDecorView.getChildAt(i); - systemDecorView.removeView(child); - addView(child); - } - - /** - * Wrap the Header View in a FrameLayout and add it to this view. It - * is wrapped so any inset changes do not affect the actual header - * view. - */ - mHeaderViewWrapper = new FrameLayout(context); - mHeaderViewWrapper.addView(headerView); - addView(mHeaderViewWrapper, ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - } - - @Override - protected boolean fitSystemWindows(Rect insets) { - if (DEBUG) { - Log.d(LOG_TAG, "fitSystemWindows: " + insets.toString()); - } - - // Adjust the Header View's padding to take the insets into account - mHeaderViewWrapper.setPadding(insets.left, insets.top, - insets.right, insets.bottom); - - // Call return super so that the rest of the - return super.fitSystemWindows(insets); - } - } - - private static final class ViewParams { - final OnRefreshListener onRefreshListener; - final ViewDelegate viewDelegate; - - ViewParams(ViewDelegate _viewDelegate, - OnRefreshListener _onRefreshListener) { - onRefreshListener = _onRefreshListener; - viewDelegate = _viewDelegate; - } - } - - private final Runnable mRefreshMinimizeRunnable = new Runnable() { - @Override - public void run() { - mHeaderTransformer.onRefreshMinimized(); - - if (mHeaderViewListener != null) { - mHeaderViewListener.onStateChanged(mHeaderView, - HeaderViewListener.STATE_MINIMIZED); - } - } - }; - -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshLayout.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshLayout.java deleted file mode 100644 index 296a44f0..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshLayout.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library; - -import android.content.Context; -import android.content.res.Configuration; -import android.util.AttributeSet; -import android.util.Log; -import android.view.MotionEvent; -import android.view.View; -import android.widget.FrameLayout; - -/** - * FIXME - */ -public class PullToRefreshLayout extends FrameLayout { - - private static final boolean DEBUG = false; - private static final String LOG_TAG = "PullToRefreshLayout"; - - private PullToRefreshAttacher mPullToRefreshAttacher; - private View mCurrentTouchTarget; - - public PullToRefreshLayout(Context context) { - this(context, null); - } - - public PullToRefreshLayout(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public PullToRefreshLayout(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - } - - /** - * Set the {@link PullToRefreshAttacher} to be used with this layout. The view which is added - * to this layout will automatically be added as a refreshable-view in the attacher. - */ - public void setPullToRefreshAttacher(PullToRefreshAttacher attacher, - PullToRefreshAttacher.OnRefreshListener refreshListener) { - View view; - for (int i = 0, z = getChildCount(); i < z; i++) { - view = getChildAt(i); - - if (mPullToRefreshAttacher != null) { - mPullToRefreshAttacher.removeRefreshableView(view); - } - - if (attacher != null) { - if (DEBUG) Log.d(LOG_TAG, "Adding View to Attacher: " + view); - attacher.addRefreshableView(view, null, refreshListener, false); - } - } - - mPullToRefreshAttacher = attacher; - } - - @Override - public boolean onInterceptTouchEvent(MotionEvent event) { - if (DEBUG) Log.d(LOG_TAG, "onInterceptTouchEvent. " + event.toString()); - - if (mPullToRefreshAttacher != null && getChildCount() > 0) { - View target = getChildForTouchEvent(event); - if (target != null && mPullToRefreshAttacher.onInterceptTouchEvent(target, event)) { - mCurrentTouchTarget = target; - return true; - } - } - // Reset Current Touch Target - mCurrentTouchTarget = null; - return false; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (DEBUG) Log.d(LOG_TAG, "onTouchEvent. " + event.toString()); - - if (mPullToRefreshAttacher != null) { - // This is an edge-case. If the ViewGroup does not contain a valid touch target then - // Android calls onTouchEvent after onInterceptTouchEvent with ACTION_DOWN event. - // If that happens then we need to find the visible view and pass it to the attacher as - // usual. - if (mCurrentTouchTarget == null && event.getAction() == MotionEvent.ACTION_DOWN) { - mCurrentTouchTarget = getChildForTouchEvent(event); - } - - if (mCurrentTouchTarget != null) { - return mPullToRefreshAttacher.onTouchEvent(mCurrentTouchTarget, event); - } - } - // Reset Current Touch Target - mCurrentTouchTarget = null; - return super.onTouchEvent(event); - } - - @Override - protected void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - - if (mPullToRefreshAttacher != null) { - mPullToRefreshAttacher.onConfigurationChanged(newConfig); - } - } - - private View getChildForTouchEvent(MotionEvent event) { - final float x = event.getX(), y = event.getY(); - View child; - for (int z = getChildCount() - 1; z >= 0 ; z--) { - child = getChildAt(z); - if (child.isShown() && x >= child.getLeft() && x <= child.getRight() - && y >= child.getTop() && y <= child.getBottom()) { - if (DEBUG) Log.d(LOG_TAG, "Got Child for Touch Event: " + child); - return child; - } - } - return null; - } -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/platform/SDK11.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/platform/SDK11.java deleted file mode 100644 index da55ebb6..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/platform/SDK11.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library.platform; - -import android.view.View; - -public class SDK11 { - - public static void setAlpha(View view, float alpha) { - view.setAlpha(alpha); - } - -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/AbsListViewDelegate.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/AbsListViewDelegate.java deleted file mode 100644 index 8276e146..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/AbsListViewDelegate.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library.viewdelegates; - -import android.annotation.TargetApi; -import android.os.Build; -import android.view.View; -import android.widget.AbsListView; - -import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher; - -/** - * FIXME - */ -public class AbsListViewDelegate - extends PullToRefreshAttacher.ViewDelegate { - - public static final Class SUPPORTED_VIEW_CLASS = AbsListView.class; - - @Override - public boolean isReadyForPull(View view, final float x, final float y) { - boolean ready = false; - - // First we check whether we're scrolled to the top - AbsListView absListView = (AbsListView) view; - if (absListView.getCount() == 0) { - ready = true; - } else if (absListView.getFirstVisiblePosition() == 0) { - final View firstVisibleChild = absListView.getChildAt(0); - ready = firstVisibleChild != null && firstVisibleChild.getTop() >= 0; - } - - // Then we have to check whether the fas scroller is enabled, and check we're not starting - // the gesture from the scroller - if (ready && absListView.isFastScrollEnabled() && isFastScrollAlwaysVisible(absListView)) { - switch (getVerticalScrollbarPosition(absListView)) { - case View.SCROLLBAR_POSITION_RIGHT: - ready = x < absListView.getRight() - absListView.getVerticalScrollbarWidth(); - break; - case View.SCROLLBAR_POSITION_LEFT: - ready = x > absListView.getVerticalScrollbarWidth(); - break; - } - } - - return ready; - } - - int getVerticalScrollbarPosition(AbsListView absListView) { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? - CompatV11.getVerticalScrollbarPosition(absListView) : - Compat.getVerticalScrollbarPosition(absListView); - } - - boolean isFastScrollAlwaysVisible(AbsListView absListView) { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? - CompatV11.isFastScrollAlwaysVisible(absListView) : - Compat.isFastScrollAlwaysVisible(absListView); - } - - static class Compat { - static int getVerticalScrollbarPosition(AbsListView absListView) { - return View.SCROLLBAR_POSITION_RIGHT; - } - static boolean isFastScrollAlwaysVisible(AbsListView absListView) { - return false; - } - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - static class CompatV11 { - static int getVerticalScrollbarPosition(AbsListView absListView) { - return absListView.getVerticalScrollbarPosition(); - } - static boolean isFastScrollAlwaysVisible(AbsListView absListView) { - return absListView.isFastScrollAlwaysVisible(); - } - } -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/ScrollYDelegate.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/ScrollYDelegate.java deleted file mode 100644 index a38885d0..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/ScrollYDelegate.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library.viewdelegates; - -import android.view.View; - -import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher; - -/** - * FIXME - */ -public class ScrollYDelegate extends PullToRefreshAttacher.ViewDelegate { - - @Override - public boolean isReadyForPull(View view, float x, float y) { - return view.getScrollY() <= 0; - } -} diff --git a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/WebViewDelegate.java b/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/WebViewDelegate.java deleted file mode 100644 index 80c6a83d..00000000 --- a/external/ActionBar-PullToRefresh/src/uk/co/senab/actionbarpulltorefresh/library/viewdelegates/WebViewDelegate.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2013 Chris Banes - * - * 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 uk.co.senab.actionbarpulltorefresh.library.viewdelegates; - -import android.view.View; -import android.webkit.WebView; - -import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher; - -/** - * FIXME - */ -public class WebViewDelegate extends PullToRefreshAttacher.ViewDelegate { - - public static final Class SUPPORTED_VIEW_CLASS = WebView.class; - - @Override - public boolean isReadyForPull(View view, float x, float y) { - return view.getScrollY() <= 0; - } -} diff --git a/external/ColorPickerPreference/.classpath b/external/ColorPickerPreference/.classpath deleted file mode 100644 index 7bc01d9a..00000000 --- a/external/ColorPickerPreference/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/external/ColorPickerPreference/.gitattributes b/external/ColorPickerPreference/.gitattributes deleted file mode 100644 index dfe07704..00000000 --- a/external/ColorPickerPreference/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/external/ColorPickerPreference/.gitignore b/external/ColorPickerPreference/.gitignore deleted file mode 100644 index 4b1a60ae..00000000 --- a/external/ColorPickerPreference/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/bin -/gen -.classpath -.project \ No newline at end of file diff --git a/external/ColorPickerPreference/.project b/external/ColorPickerPreference/.project deleted file mode 100644 index b3e7744d..00000000 --- a/external/ColorPickerPreference/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - 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 deleted file mode 100644 index e09215a9..00000000 --- a/external/ColorPickerPreference/AndroidManifest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/external/ColorPickerPreference/CHANGELOG.rst b/external/ColorPickerPreference/CHANGELOG.rst deleted file mode 100644 index 5342d2ac..00000000 --- a/external/ColorPickerPreference/CHANGELOG.rst +++ /dev/null @@ -1,26 +0,0 @@ -================================ -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 deleted file mode 100644 index da9cd5cb..00000000 --- a/external/ColorPickerPreference/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -/* - * 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 deleted file mode 100644 index bffa417a..00000000 --- a/external/ColorPickerPreference/README.rst +++ /dev/null @@ -1,47 +0,0 @@ -===================== -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/ant.properties b/external/ColorPickerPreference/ant.properties deleted file mode 100644 index b0971e89..00000000 --- a/external/ColorPickerPreference/ant.properties +++ /dev/null @@ -1,17 +0,0 @@ -# This file is used to override default values used by the Ant build system. -# -# This file must be checked into Version Control Systems, as it is -# integral to the build system of your project. - -# This file is only used by the Ant script. - -# You can use this to override default values such as -# 'source.dir' for the location of your java source folder and -# 'out.dir' for the location of your output folder. - -# You can also use it define how the release builds are signed by declaring -# the following properties: -# 'key.store' for the location of your keystore and -# 'key.alias' for the name of the key to use. -# The password will be asked during the build when you use the 'release' target. - diff --git a/external/ColorPickerPreference/build.xml b/external/ColorPickerPreference/build.xml deleted file mode 100644 index c575c550..00000000 --- a/external/ColorPickerPreference/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/ColorPickerPreference/proguard-project.txt b/external/ColorPickerPreference/proguard-project.txt deleted file mode 100644 index f2fe1559..00000000 --- a/external/ColorPickerPreference/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/external/ColorPickerPreference/proguard.cfg b/external/ColorPickerPreference/proguard.cfg deleted file mode 100644 index 8ad7d335..00000000 --- a/external/ColorPickerPreference/proguard.cfg +++ /dev/null @@ -1,34 +0,0 @@ --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 deleted file mode 100644 index 6905bdf0..00000000 --- a/external/ColorPickerPreference/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# 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-18 diff --git a/external/ColorPickerPreference/res/drawable-hdpi/icon.png b/external/ColorPickerPreference/res/drawable-hdpi/icon.png deleted file mode 100644 index 8074c4c571b8cd19e27f4ee5545df367420686d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4147 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 diff --git a/external/ColorPickerPreference/res/drawable-ldpi/icon.png b/external/ColorPickerPreference/res/drawable-ldpi/icon.png deleted file mode 100644 index 1095584ec21f71cd0afc9e0993aa2209671b590c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1723 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 - - - - - - - - \ No newline at end of file diff --git a/external/ColorPickerPreference/screen_1.png b/external/ColorPickerPreference/screen_1.png deleted file mode 100644 index 4798dae717ac258baec0c388b218221f258415b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124593 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∋XWxe#A7 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 diff --git a/external/ColorPickerPreference/screen_2.png b/external/ColorPickerPreference/screen_2.png deleted file mode 100644 index 3bb2d671930d3c5e8557bcda386bb0f0146d3c24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68429 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 z 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 Z5vG4mEL+W+cOig(veHT~izJN${}25Pibwze diff --git a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java b/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java deleted file mode 100644 index e5e167d9..00000000 --- a/external/ColorPickerPreference/src/net/margaritov/preference/colorpicker/Test.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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/external/Crouton/.gitignore b/external/Crouton/.gitignore deleted file mode 100644 index 90705626..00000000 --- a/external/Crouton/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -# 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 deleted file mode 100644 index d6456956..00000000 --- a/external/Crouton/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - 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 deleted file mode 100644 index 8d4a3d77..00000000 --- a/external/Crouton/README.markdown +++ /dev/null @@ -1,199 +0,0 @@ -# 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 deleted file mode 100644 index e69de29b..00000000 diff --git a/external/Crouton/library/.classpath b/external/Crouton/library/.classpath deleted file mode 100644 index 7bc01d9a..00000000 --- a/external/Crouton/library/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/external/Crouton/library/.project b/external/Crouton/library/.project deleted file mode 100644 index a5d8dde2..00000000 --- a/external/Crouton/library/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - 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 deleted file mode 100644 index 14d01dea..00000000 --- a/external/Crouton/library/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/external/Crouton/library/ant.properties b/external/Crouton/library/ant.properties deleted file mode 100644 index b0971e89..00000000 --- a/external/Crouton/library/ant.properties +++ /dev/null @@ -1,17 +0,0 @@ -# This file is used to override default values used by the Ant build system. -# -# This file must be checked into Version Control Systems, as it is -# integral to the build system of your project. - -# This file is only used by the Ant script. - -# You can use this to override default values such as -# 'source.dir' for the location of your java source folder and -# 'out.dir' for the location of your output folder. - -# You can also use it define how the release builds are signed by declaring -# the following properties: -# 'key.store' for the location of your keystore and -# 'key.alias' for the name of the key to use. -# The password will be asked during the build when you use the 'release' target. - diff --git a/external/Crouton/library/build.xml b/external/Crouton/library/build.xml deleted file mode 100644 index 5ecd4a3a..00000000 --- a/external/Crouton/library/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/Crouton/library/project.properties b/external/Crouton/library/project.properties deleted file mode 100644 index d9aef210..00000000 --- a/external/Crouton/library/project.properties +++ /dev/null @@ -1,16 +0,0 @@ -# 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-19 -android.library=true diff --git a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Configuration.java b/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Configuration.java deleted file mode 100644 index 4464988a..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Configuration.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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; - -/** - * Allows configuring a {@link Crouton}s behaviour aside from the actual view, - * which is defined via {@link Style}. - *

- * This allows to re-use a {@link Style} while modifying parameters that only have to be applied - * when the {@link Crouton} is being displayed. - * - * @author chris - * @since 1.8 - */ -public class Configuration { - - - /** - * 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; - /** The default short display duration of a {@link Crouton}. */ - public static final int DURATION_SHORT = 3000; - /** The default long display duration of a {@link Crouton}. */ - public static final int DURATION_LONG = 5000; - - /** The default {@link Configuration} of a {@link Crouton}. */ - public static final Configuration DEFAULT; - - static { - DEFAULT = new Builder().setDuration(DURATION_SHORT).build(); - } - - /** The durationInMilliseconds the {@link Crouton} will be displayed in milliseconds. */ - final int durationInMilliseconds; - /** The resource id for the in animation. */ - final int inAnimationResId; - /** The resource id for the out animation. */ - final int outAnimationResId; - - private Configuration(Builder builder) { - this.durationInMilliseconds = builder.durationInMilliseconds; - this.inAnimationResId = builder.inAnimationResId; - this.outAnimationResId = builder.outAnimationResId; - } - - /** Creates a {@link Builder} to build a {@link Configuration} upon. */ - public static class Builder { - private int durationInMilliseconds = DURATION_SHORT; - private int inAnimationResId = 0; - private int outAnimationResId = 0; - - /** - * 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(final int duration) { - this.durationInMilliseconds = duration; - - return this; - } - - /** - * The resource id for the in animation. - * - * @param inAnimationResId - * The resource identifier for the animation that's being shown - * when the {@link Crouton} is going to be displayed. - * - * @return the {@link Builder}. - */ - public Builder setInAnimation(final int inAnimationResId) { - this.inAnimationResId = inAnimationResId; - - return this; - } - - /** - * The resource id for the out animation - * - * @param outAnimationResId - * The resource identifier for the animation that's being shown - * when the {@link Crouton} is going to be removed. - * - * @return the {@link Builder}. - */ - public Builder setOutAnimation(final int outAnimationResId) { - this.outAnimationResId = outAnimationResId; - - return this; - } - - /** - * Builds the {@link Configuration}. - * - * @return The built {@link Configuration}. - */ - public Configuration build() { - return new Configuration(this); - } - } - - @Override - public String toString() { - return "Configuration{" + - "durationInMilliseconds=" + durationInMilliseconds + - ", inAnimationResId=" + inAnimationResId + - ", outAnimationResId=" + outAnimationResId + - '}'; - } -} \ No newline at end of file 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 deleted file mode 100644 index 7986014a..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Crouton.java +++ /dev/null @@ -1,964 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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.Gravity; -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 String NULL_PARAMETERS_ARE_NOT_ACCEPTED = "Null parameters are not accepted"; - private static final int IMAGE_ID = 0x100; - private static final int TEXT_ID = 0x101; - private final CharSequence text; - private final Style style; - private Configuration configuration = null; - 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) { - this(activity, customView, viewGroup, Configuration.DEFAULT); - } - - /** - * 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. - * @param configuration - * The {@link Configuration} for this {@link Crouton}. - */ - private Crouton(final Activity activity, final View customView, final ViewGroup viewGroup, - final Configuration configuration) { - 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; - this.configuration = configuration; - } - - /** - * 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-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. - * @param configuration - * The configuration for this crouton. - * - * @return The created {@link Crouton}. - */ - public static Crouton make(Activity activity, View customView, int viewGroupResId, - final Configuration configuration) { - return new Crouton(activity, customView, (ViewGroup) activity.findViewById(viewGroupResId), configuration); - } - - /** - * 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 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. - * @param configuration - * The configuration for this Crouton. - */ - public static void showText(Activity activity, CharSequence text, Style style, int viewGroupResId, - final Configuration configuration) { - makeText(activity, text, style, (ViewGroup) activity.findViewById(viewGroupResId)).setConfiguration(configuration) - .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) { - crouton.hide(); - } - - /** - * 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 (getConfiguration().inAnimationResId > 0) { - this.inAnimation = AnimationUtils.loadAnimation(getActivity(), getConfiguration().inAnimationResId); - } else { - measureCroutonView(); - this.inAnimation = DefaultAnimationsBuilder.buildDefaultSlideInDownAnimation(getView()); - } - } - - return inAnimation; - } - - public Animation getOutAnimation() { - if ((null == this.outAnimation) && (null != this.activity)) { - if (getConfiguration().outAnimationResId > 0) { - this.outAnimation = AnimationUtils.loadAnimation(getActivity(), getConfiguration().outAnimationResId); - } else { - this.outAnimation = DefaultAnimationsBuilder.buildDefaultSlideOutUpAnimation(getView()); - } - } - - return outAnimation; - } - - /** - * @param lifecycleCallback - * Callback object for notable events in the life of a Crouton. - */ - public void setLifecycleCallback(LifecycleCallback lifecycleCallback) { - this.lifecycleCallback = lifecycleCallback; - } - - /** - * Removes this {@link Crouton}. - * - * @since 1.9 - */ - public void hide() { - Manager.getInstance().removeCrouton(this); - } - - /** - * 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; - } - - /** - * Set the {@link Configuration} on this {@link Crouton}, prior to showing it. - * - * @param configuration - * a {@link Configuration} built using the {@link Configuration.Builder}. - * - * @return this {@link Crouton}. - */ - public Crouton setConfiguration(final Configuration configuration) { - this.configuration = configuration; - return this; - } - - @Override - public String toString() { - return "Crouton{" + - "text=" + text + - ", style=" + style + - ", configuration=" + configuration + - ", customView=" + customView + - ", onClickListener=" + onClickListener + - ", activity=" + activity + - ", viewGroup=" + viewGroup + - ", croutonView=" + croutonView + - ", inAnimation=" + inAnimation + - ", outAnimation=" + outAnimation + - ", lifecycleCallback=" + lifecycleCallback + - '}'; - } - - /** - * Convenience method to get the license text for embedding within your application. - * - * @return The license text. - */ - public static String getLicenseText() { - return "This application uses the Crouton library.\n\n" + - "Copyright 2012 - 2013 Benjamin Weiss \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."; - } - - ////////////////////////////////////////////////////////////////////////////////////// - // You have reached the internal API of Crouton. - // If you do not plan to develop for Crouton there is nothing of interest below here. - ////////////////////////////////////////////////////////////////////////////////////// - - /** - * @return true if the {@link Crouton} is being displayed, else - * false. - */ - boolean isShowing() { - return (null != activity) && (isCroutonViewNotNull() || isCustomViewNotNull()); - } - - private boolean isCroutonViewNotNull() { - return (null != croutonView) && (null != croutonView.getParent()); - } - - private boolean isCustomViewNotNull() { - return (null != customView) && (null != customView.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 this croutons configuration - */ - Configuration getConfiguration() { - if (null == configuration) { - configuration = getStyle().configuration; - } - return configuration; - } - - /** - * @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 measureCroutonView() { - View view = getView(); - int widthSpec; - if (viewGroup != null) { - widthSpec = View.MeasureSpec.makeMeasureSpec(viewGroup.getMeasuredWidth(), View.MeasureSpec.AT_MOST); - } else { - widthSpec = View.MeasureSpec.makeMeasureSpec(activity.getWindow().getDecorView().getMeasuredWidth(), - View.MeasureSpec.AT_MOST); - } - - view.measure(widthSpec, View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); - } - - private void initializeCroutonView() { - Resources resources = this.activity.getResources(); - - this.croutonView = initializeCroutonViewGroup(resources); - - // create content view - RelativeLayout contentView = initializeContentView(resources); - this.croutonView.addView(contentView); - } - - @SuppressWarnings("deprecation") - 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 != Style.NOT_SET) { - 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.MATCH_PARENT)); - - // 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()); - } - - if ((this.style.gravity & Gravity.CENTER) != 0) { - textParams.addRule(RelativeLayout.CENTER_IN_PARENT); - } else if ((this.style.gravity & Gravity.CENTER_VERTICAL) != 0) { - textParams.addRule(RelativeLayout.CENTER_VERTICAL); - } else if ((this.style.gravity & Gravity.CENTER_HORIZONTAL) != 0) { - textParams.addRule(RelativeLayout.CENTER_HORIZONTAL); - } - - 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.textColorValue != Style.NOT_SET) { - text.setTextColor(this.style.textColorValue); - } else 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; - } -} 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 deleted file mode 100644 index 0e52d498..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/DefaultAnimationsBuilder.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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.View; -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 final long DURATION = 400; - private static Animation slideInDownAnimation, slideOutUpAnimation; - private static int lastInAnimationHeight, lastOutAnimationHeight; - - private DefaultAnimationsBuilder() { - /* no-op */ - } - - /** - * @param croutonView - * The croutonView which gets animated. - * - * @return The default Animation for a showing {@link Crouton}. - */ - static Animation buildDefaultSlideInDownAnimation(View croutonView) { - if (!areLastMeasuredInAnimationHeightAndCurrentEqual(croutonView) || (null == slideInDownAnimation)) { - slideInDownAnimation = new TranslateAnimation( - 0, 0, // X: from, to - -croutonView.getMeasuredHeight(), 0 // Y: from, to - ); - slideInDownAnimation.setDuration(DURATION); - setLastInAnimationHeight(croutonView.getMeasuredHeight()); - } - return slideInDownAnimation; - } - - /** - * @param croutonView - * The croutonView which gets animated. - * - * @return The default Animation for a hiding {@link Crouton}. - */ - static Animation buildDefaultSlideOutUpAnimation(View croutonView) { - if (!areLastMeasuredOutAnimationHeightAndCurrentEqual(croutonView) || (null == slideOutUpAnimation)) { - slideOutUpAnimation = new TranslateAnimation( - 0, 0, // X: from, to - 0, -croutonView.getMeasuredHeight() // Y: from, to - ); - slideOutUpAnimation.setDuration(DURATION); - setLastOutAnimationHeight(croutonView.getMeasuredHeight()); - } - return slideOutUpAnimation; - } - - private static boolean areLastMeasuredInAnimationHeightAndCurrentEqual(View croutonView) { - return areLastMeasuredAnimationHeightAndCurrentEqual(lastInAnimationHeight, croutonView); - } - - private static boolean areLastMeasuredOutAnimationHeightAndCurrentEqual(View croutonView) { - return areLastMeasuredAnimationHeightAndCurrentEqual(lastOutAnimationHeight, croutonView); - } - - private static boolean areLastMeasuredAnimationHeightAndCurrentEqual(int lastHeight, View croutonView) { - return lastHeight == croutonView.getMeasuredHeight(); - } - - private static void setLastInAnimationHeight(int lastInAnimationHeight) { - DefaultAnimationsBuilder.lastInAnimationHeight = lastInAnimationHeight; - } - - private static void setLastOutAnimationHeight(int lastOutAnimationHeight) { - DefaultAnimationsBuilder.lastOutAnimationHeight = lastOutAnimationHeight; - } -} 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 deleted file mode 100644 index a55f734b..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/LifecycleCallback.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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; - -/** Provides callback methods on major lifecycle events of a {@link Crouton}. */ -public interface LifecycleCallback { - /** Will be called when your Crouton has been displayed. */ - public void onDisplayed(); - - /** Will be called when your {@link Crouton} has been removed. */ - 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 deleted file mode 100644 index 2faf2987..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Manager.java +++ /dev/null @@ -1,455 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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.annotation.SuppressLint; -import android.annotation.TargetApi; -import android.app.Activity; -import android.content.Context; -import android.content.res.Resources; -import android.os.Build; -import android.os.Handler; -import android.os.Message; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewParent; -import android.view.ViewTreeObserver; -import android.view.WindowManager; -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 final 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.getConfiguration().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; - if (null == crouton) { - return; - } - 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(final Crouton crouton) { - // don't add if it is already showing - if (crouton.isShowing()) { - return; - } - - final View croutonView = crouton.getView(); - if (null == croutonView.getParent()) { - ViewGroup.LayoutParams params = croutonView.getLayoutParams(); - if (null == params) { - params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 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; - } - handleTranslucentActionBar((ViewGroup.MarginLayoutParams) params, activity); - - activity.addContentView(croutonView, params); - } - } - - croutonView.requestLayout(); // This is needed so the animation can use the measured with/height - ViewTreeObserver observer = croutonView.getViewTreeObserver(); - if (null != observer) { - observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @SuppressWarnings("deprecation") - @Override - @TargetApi(16) - public void onGlobalLayout() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { - croutonView.getViewTreeObserver().removeGlobalOnLayoutListener(this); - } else { - croutonView.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } - - croutonView.startAnimation(crouton.getInAnimation()); - announceForAccessibilityCompat(crouton.getActivity(), crouton.getText()); - if (Configuration.DURATION_INFINITE != crouton.getConfiguration().durationInMilliseconds) { - sendMessageDelayed(crouton, Messages.REMOVE_CROUTON, - crouton.getConfiguration().durationInMilliseconds + crouton.getInAnimation().getDuration()); - } - } - }); - } - } - - @TargetApi(19) - private void handleTranslucentActionBar(ViewGroup.MarginLayoutParams params, Activity activity) { - // Translucent status is only available as of Android 4.4 Kit Kat. - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - final int flags = activity.getWindow().getAttributes().flags; - final int translucentStatusFlag = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; - /* Checks whether translucent status is enabled for this window. - * If true, sets the top margin to show the crouton just below the action bar. */ - if ((flags & translucentStatusFlag) == translucentStatusFlag) { - final int actionBarContainerId = Resources.getSystem().getIdentifier("action_bar_container", "id", "android"); - final View actionBarContainer = activity.findViewById(actionBarContainerId); - // The action bar is present: the app is using a Holo theme. - if (actionBarContainer != null) { - final ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) params; - marginParams.topMargin = actionBarContainer.getBottom(); - } - } - } - } - - /** - * 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 - 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 - removeCroutonFromViewParent(crouton); - - // 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(); - - // remove any views that may already have been added to the activity's - // content view - for (Crouton crouton : croutonQueue) { - removeCroutonFromViewParent(crouton); - } - 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) { - 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 - removeCroutonFromViewParent(crouton); - - removeAllMessagesForCrouton(crouton); - - // remove the crouton from the queue - croutonIterator.remove(); - } - } - } - - private void removeCroutonFromViewParent(Crouton crouton) { - if (crouton.isShowing()) { - ViewGroup parent = (ViewGroup) crouton.getView().getParent(); - if (null != parent) { - parent.removeView(crouton.getView()); - } - } - } - - 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. - */ - @SuppressLint("InlinedApi") - @TargetApi(Build.VERSION_CODES.DONUT) - public static void announceForAccessibilityCompat(Context context, CharSequence text) { - if (Build.VERSION.SDK_INT >= 4) { - AccessibilityManager accessibilityManager = null; - if (null != context) { - accessibilityManager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE); - } - if (null == accessibilityManager || !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 = AccessibilityEvent.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); - } - } - - @Override - public String toString() { - return "Manager{" + - "croutonQueue=" + croutonQueue + - '}'; - } -} 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 deleted file mode 100644 index 38109236..00000000 --- a/external/Crouton/library/src/de/keyboardsurfer/android/widget/crouton/Style.java +++ /dev/null @@ -1,536 +0,0 @@ -/* - * Copyright 2012 - 2014 Benjamin Weiss - * - * 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 { - - public static final int NOT_SET = -1; - - public static final int holoRedLight = 0xffff4444; - public static final int holoGreenLight = 0xff99cc00; - public static final int holoBlueLight = 0xff33b5e5; - - /** 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; - - static { - ALERT = new Builder() - .setBackgroundColorValue(holoRedLight) - .build(); - CONFIRM = new Builder() - .setBackgroundColorValue(holoGreenLight) - .build(); - INFO = new Builder() - .setBackgroundColorValue(holoBlueLight) - .build(); - } - - /** - * The {@link Configuration} for this {@link Style}. - * It can be overridden via {@link Crouton#setConfiguration(Configuration)}. - */ - final Configuration configuration; - - /** - * 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; - *

- * NOT_SET 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 textColorResourceValue's e.g. 0xffff4444; - *

- * NOT_SET for no value. - */ - final int textColorValue; - - /** 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 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.configuration = builder.configuration; - this.backgroundColorResourceId = builder.backgroundColorResourceId; - this.backgroundDrawableResourceId = builder.backgroundDrawableResourceId; - this.isTileEnabled = builder.isTileEnabled; - this.textColorResourceId = builder.textColorResourceId; - this.textColorValue = builder.textColorValue; - 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.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 Configuration configuration; - private int backgroundColorValue; - private int backgroundColorResourceId; - private int backgroundDrawableResourceId; - private boolean isTileEnabled; - private int textColorResourceId; - private int textColorValue; - 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 imageResId; - private ImageView.ScaleType imageScaleType; - private int paddingInPixels; - private int paddingDimensionResId; - - /** Creates a {@link Builder} to build a {@link Style} upon. */ - public Builder() { - configuration = Configuration.DEFAULT; - paddingInPixels = 10; - backgroundColorResourceId = android.R.color.holo_blue_light; - backgroundDrawableResourceId = 0; - backgroundColorValue = NOT_SET; - isTileEnabled = false; - textColorResourceId = android.R.color.white; - textColorValue = NOT_SET; - heightInPixels = LayoutParams.WRAP_CONTENT; - widthInPixels = LayoutParams.MATCH_PARENT; - gravity = Gravity.CENTER; - imageDrawable = null; - imageResId = 0; - imageScaleType = ImageView.ScaleType.FIT_XY; - } - - /** - * Creates a {@link Builder} to build a {@link Style} upon. - * - * @param baseStyle - * The base {@link Style} to use for this {@link Style}. - */ - public Builder(final Style baseStyle) { - configuration = baseStyle.configuration; - backgroundColorValue = baseStyle.backgroundColorValue; - backgroundColorResourceId = baseStyle.backgroundColorResourceId; - backgroundDrawableResourceId = baseStyle.backgroundDrawableResourceId; - isTileEnabled = baseStyle.isTileEnabled; - textColorResourceId = baseStyle.textColorResourceId; - textColorValue = baseStyle.textColorValue; - heightInPixels = baseStyle.heightInPixels; - heightDimensionResId = baseStyle.heightDimensionResId; - widthInPixels = baseStyle.widthInPixels; - widthDimensionResId = baseStyle.widthDimensionResId; - gravity = baseStyle.gravity; - imageDrawable = baseStyle.imageDrawable; - textSize = baseStyle.textSize; - textShadowColorResId = baseStyle.textShadowColorResId; - textShadowRadius = baseStyle.textShadowRadius; - textShadowDx = baseStyle.textShadowDx; - textShadowDy = baseStyle.textShadowDy; - textAppearanceResId = baseStyle.textAppearanceResId; - imageResId = baseStyle.imageResId; - imageScaleType = baseStyle.imageScaleType; - paddingInPixels = baseStyle.paddingInPixels; - paddingDimensionResId = baseStyle.paddingDimensionResId; - } - /** - * Set the {@link Configuration} option of the {@link Crouton}. - * - * @param configuration - * The {@link Configuration}. - * - * @return the {@link Builder}. - */ - public Builder setConfiguration(Configuration configuration) { - this.configuration = configuration; - 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 textColorResourceValue option of the {@link Crouton}. - * - * @param textColorValue - * The textColorResourceValue's e.g. 0xffff4444; - * - * @return the {@link Builder}. - */ - public Builder setTextColorValue(int textColorValue) { - this.textColorValue = textColorValue; - 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 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 {@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); - } - } - - @Override - public String toString() { - return "Style{" + - "configuration=" + configuration + - ", backgroundColorResourceId=" + backgroundColorResourceId + - ", backgroundDrawableResourceId=" + backgroundDrawableResourceId + - ", backgroundColorValue=" + backgroundColorValue + - ", isTileEnabled=" + isTileEnabled + - ", textColorResourceId=" + textColorResourceId + - ", textColorValue=" + textColorValue + - ", heightInPixels=" + heightInPixels + - ", heightDimensionResId=" + heightDimensionResId + - ", widthInPixels=" + widthInPixels + - ", widthDimensionResId=" + widthDimensionResId + - ", gravity=" + gravity + - ", imageDrawable=" + imageDrawable + - ", imageResId=" + imageResId + - ", imageScaleType=" + imageScaleType + - ", textSize=" + textSize + - ", textShadowColorResId=" + textShadowColorResId + - ", textShadowRadius=" + textShadowRadius + - ", textShadowDy=" + textShadowDy + - ", textShadowDx=" + textShadowDx + - ", textAppearanceResId=" + textAppearanceResId + - ", paddingInPixels=" + paddingInPixels + - ", paddingDimensionResId=" + paddingDimensionResId + - '}'; - } -} diff --git a/external/Crouton/pom.xml b/external/Crouton/pom.xml deleted file mode 100644 index a56203e5..00000000 --- a/external/Crouton/pom.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - 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 - - - - - - - diff --git a/full/.classpath b/full/.classpath deleted file mode 100644 index 7bc01d9a..00000000 --- a/full/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/full/.project b/full/.project deleted file mode 100644 index a91e6ae4..00000000 --- a/full/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - Transdroid Full - - - - - - 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/full/ant.properties b/full/ant.properties deleted file mode 100644 index bc0328fa..00000000 --- a/full/ant.properties +++ /dev/null @@ -1,2 +0,0 @@ -key.store=../..//erickok.keystore -key.alias=transdroid diff --git a/full/build.xml b/full/build.xml deleted file mode 100644 index 5fc86b9f..00000000 --- a/full/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/full/proguard-project.txt b/full/proguard-project.txt deleted file mode 100644 index f2fe1559..00000000 --- a/full/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/full/project.properties b/full/project.properties deleted file mode 100644 index 4bc32995..00000000 --- a/full/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# 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-18 -android.library.reference.1=../core diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..5d08ba75 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Settings specified in this file will override any Gradle settings +# configured through the IDE. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd GIT binary patch literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..aec99730 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/.classpath b/lib/.classpath deleted file mode 100644 index 4970aef8..00000000 --- a/lib/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/lib/.project b/lib/.project deleted file mode 100644 index b2f8c896..00000000 --- a/lib/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Transdroid Torrent Connect - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/lib/.settings/org.eclipse.jdt.core.prefs b/lib/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index fb48e955..00000000 --- a/lib/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Fri Oct 15 20:05:09 EDT 2010 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/lib/build.xml b/lib/build.xml deleted file mode 100644 index 2a50aacb..00000000 --- a/lib/build.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lite/.classpath b/lite/.classpath deleted file mode 100644 index 7bc01d9a..00000000 --- a/lite/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/lite/.project b/lite/.project deleted file mode 100644 index e65b9dd2..00000000 --- a/lite/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - Transdroid Lite - - - - - - 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/AndroidManifest.xml b/lite/AndroidManifest.xml deleted file mode 100644 index 40c2c1ad..00000000 --- a/lite/AndroidManifest.xml +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/lite/ant.properties b/lite/ant.properties deleted file mode 100644 index 5931745c..00000000 --- a/lite/ant.properties +++ /dev/null @@ -1,2 +0,0 @@ -key.store=../../erickok.keystore -key.alias=transdroid diff --git a/lite/build.xml b/lite/build.xml deleted file mode 100644 index d3518816..00000000 --- a/lite/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lite/proguard-project.txt b/lite/proguard-project.txt deleted file mode 100644 index f2fe1559..00000000 --- a/lite/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/lite/project.properties b/lite/project.properties deleted file mode 100644 index 4bc32995..00000000 --- a/lite/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# 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-18 -android.library.reference.1=../core diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..e7b4def4 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app'