From 6062beb5c2939646ae21fc5abae0036935c7f42f Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Wed, 9 Oct 2019 10:47:09 +0200 Subject: [PATCH] Initial work on refactoring Signed-off-by: Mario Danic --- .idea/modules.xml | 4 +- data/src/main/res/values/strings.xml | 23 + .../com/nextcloud/data/ExampleUnitTest.kt | 37 + domain/.gitignore | 1 + domain/build.gradle | 56 ++ domain/consumer-rules.pro | 0 domain/proguard-rules.pro | 21 + .../domain/ExampleInstrumentedTest.kt | 44 ++ domain/src/main/AndroidManifest.xml | 22 + domain/src/main/res/values/strings.xml | 23 + .../com/nextcloud/domain/ExampleUnitTest.kt | 37 + presentation/.gitignore | 1 + {app => presentation}/build.gradle | 54 +- {app => presentation}/gplay.gradle | 0 .../gplay/release/output.json | 0 presentation/proguard-rules.pro | 21 + .../talk/ExampleInstrumentedTest.java | 0 .../android/tr-TR/full_description.txt | 0 .../talk/utils/ClosedInterfaceImpl.java | 0 .../src/gplay/AndroidManifest.xml | 0 .../MagicFirebaseMessagingService.java | 0 .../talk/utils/ClosedInterfaceImpl.java | 0 .../src/main/AndroidManifest.xml | 0 .../src/main/ic_launcher-web.png | Bin .../nextcloud/talk/activities/BaseActivity.kt | 0 .../talk/activities/MagicCallActivity.kt | 0 .../nextcloud/talk/activities/MainActivity.kt | 0 .../talk/adapters/items/AdvancedUserItem.java | 2 +- .../talk/adapters/items/AppItem.java | 0 .../talk/adapters/items/CallItem.java | 5 +- .../talk/adapters/items/ConversationItem.java | 4 +- .../adapters/items/GenericTextHeaderItem.java | 0 .../items/MentionAutocompleteItem.java | 0 .../talk/adapters/items/MenuItem.java | 0 .../adapters/items/NotificationSoundItem.java | 0 .../talk/adapters/items/ProgressItem.java | 0 .../talk/adapters/items/UserItem.java | 4 +- .../MagicIncomingTextMessageViewHolder.java | 3 +- .../MagicOutcomingTextMessageViewHolder.java | 2 +- .../MagicPreviewMessageViewHolder.java | 3 +- .../MagicSystemMessageViewHolder.java | 0 .../MagicUnreadNoticeMessageViewHolder.java | 1 - .../java/com/nextcloud/talk/api/NcApi.java | 26 +- .../application/NextcloudTalkApplication.kt | 0 .../MentionAutocompleteCallback.java | 4 +- .../adapters/items/BrowserFileItem.java | 0 .../controllers/BrowserController.java | 2 +- .../interfaces/ListingInterface.java | 0 .../filebrowser/models/BrowserFile.java | 0 .../filebrowser/models/DavResponse.java | 0 .../models/properties/NCEncrypted.java | 0 .../models/properties/NCPreview.java | 0 .../models/properties/OCFavorite.java | 0 .../filebrowser/models/properties/OCId.java | 0 .../filebrowser/models/properties/OCSize.java | 0 .../filebrowser/operations/DavListing.java | 0 .../operations/ListingAbstractClass.java | 0 .../filebrowser/webdav/DavUtils.java | 0 .../webdav/ReadFilesystemOperation.java | 0 .../AccountVerificationController.java | 10 +- .../talk/controllers/CallController.java | 24 +- .../CallNotificationController.java | 13 +- .../talk/controllers/ChatController.kt | 14 +- .../talk/controllers/ContactsController.java | 18 +- .../controllers/ConversationInfoController.kt | 14 +- .../ConversationsListController.java | 8 +- .../talk/controllers/LockedController.java | 0 .../RingtoneSelectionController.java | 4 +- .../ServerSelectionController.java | 0 .../talk/controllers/SettingsController.java | 5 +- .../controllers/SwitchAccountController.java | 6 +- .../controllers/WebViewLoginController.java | 6 +- .../talk/controllers/base/BaseController.java | 12 +- .../controllers/base/ButterKnifeController.kt | 0 .../base/providers/ActionBarProvider.java | 0 .../bottomsheet/CallMenuController.java | 8 +- .../bottomsheet/EntryMenuController.java | 5 +- .../bottomsheet/OperationsMenuController.java | 16 +- .../items/BasicListItemWithImage.kt | 0 .../items/ListIconDialogAdapter.kt | 0 .../bottomsheet/items/MagicBottomSheets.kt | 0 .../talk/dagger/modules/BusModule.java | 0 .../talk/dagger/modules/ContextModule.java | 0 .../talk/dagger/modules/DatabaseModule.java | 0 .../talk/dagger/modules/RestModule.java | 0 .../talk/events/BottomSheetLockEvent.java | 0 .../talk/events/CertificateEvent.java | 0 .../talk/events/ConfigurationChangeEvent.java | 0 .../nextcloud/talk/events/EventStatus.java | 0 .../talk/events/MediaStreamEvent.java | 0 .../talk/events/MoreMenuClickEvent.java | 2 +- .../nextcloud/talk/events/NetworkEvent.java | 0 .../talk/events/PeerConnectionEvent.java | 0 .../events/SessionDescriptionSendEvent.java | 2 +- .../talk/events/UserMentionClickEvent.java | 0 .../events/WebSocketCommunicationEvent.java | 0 .../ConversationsListContract.kt | 26 +- .../talk/interfaces/ClosedInterface.kt | 0 .../interfaces/ConversationMenuInterface.kt | 0 .../talk/interfaces/SelectionInterface.kt | 0 .../talk/jobs/AccountRemovalWorker.java | 6 +- .../jobs/AddParticipantsToConversation.java | 4 +- .../talk/jobs/CapabilitiesWorker.java | 2 +- .../talk/jobs/DeleteConversationWorker.java | 2 +- .../talk/jobs/LeaveConversationWorker.java | 2 +- .../talk/jobs/NotificationWorker.java | 18 +- .../talk/jobs/PushRegistrationWorker.java | 0 .../talk/jobs/ShareOperationWorker.java | 0 .../talk/jobs/SignalingSettingsWorker.java | 4 +- .../talk/jobs/WebsocketConnectionsWorker.java | 2 +- .../models/database/ArbitraryStorage.java | 0 .../database/ArbitraryStorageEntity.java | 287 ++++++++ .../talk/models/database/Models.java | 17 + .../nextcloud/talk/models/database/User.java | 2 +- .../talk/models/database/UserEntity.java | 674 ++++++++++++++++++ .../talk/models/json/chat/ChatMessage.kt | 249 +++++++ .../talk/models/json/chat/ChatOCS.kt | 34 + .../talk/models/json/chat/ChatOverall.kt | 19 +- .../talk/models/json/chat/ChatUtils.kt | 43 ++ .../com/nextcloud/talk/mvp/BaseMvpView.kt | 47 ++ .../com/nextcloud/talk/mvp/BasePresenter.kt | 42 ++ .../com/nextcloud/talk/mvp/MvpPresenter.kt | 26 + .../MentionAutocompletePresenter.java | 4 +- .../talk/receivers/PackageReplacedReceiver.kt | 0 .../com/nextcloud/talk/utils/AccountUtils.kt | 2 +- .../com/nextcloud/talk/utils/ApiUtils.java | 2 +- .../talk/utils/ConductorRemapping.kt | 0 .../com/nextcloud/talk/utils/DateUtils.kt | 0 .../com/nextcloud/talk/utils/DeviceUtils.java | 0 .../nextcloud/talk/utils/DisplayUtils.java | 0 .../nextcloud/talk/utils/DoNotDisturbUtils.kt | 0 .../com/nextcloud/talk/utils/DrawableUtils.kt | 0 .../talk/utils/EmojiTextInputEditText.java | 0 .../utils/FABAwareScrollingViewBehavior.java | 0 .../nextcloud/talk/utils/KeyboardUtils.java | 0 .../com/nextcloud/talk/utils/LoggingUtils.kt | 0 .../nextcloud/talk/utils/MagicCharPolicy.java | 0 .../java/com/nextcloud/talk/utils/MagicMap.kt | 0 .../nextcloud/talk/utils/NotificationUtils.kt | 0 .../utils/OkHttpNetworkFetcherWithCache.java | 0 .../com/nextcloud/talk/utils/PushUtils.java | 6 +- .../nextcloud/talk/utils/SecurityUtils.java | 0 .../com/nextcloud/talk/utils/ShareUtils.java | 2 +- .../nextcloud/talk/utils/TextMatchers.java | 0 .../talk/utils/animations/PulseAnimation.java | 0 .../animations/SharedElementTransition.java | 0 .../ViewHidingBehaviourAnimation.java | 0 .../nextcloud/talk/utils/bundle/BundleKeys.kt | 0 .../ArbitraryStorageModule.java | 0 .../ArbitraryStorageUtils.java | 0 .../talk/utils/database/user/UserModule.java | 0 .../talk/utils/database/user/UserUtils.java | 0 .../talk/utils/power/PowerManagerUtils.java | 0 .../talk/utils/power/ProximityLock.java | 0 .../utils/preferences/AppPreferences.java | 0 .../preferences/MagicUserInputModule.java | 0 .../DatabaseStorageFactory.java | 0 .../DatabaseStorageModule.java | 2 +- .../ApplicationWideCurrentRoomHolder.java | 0 .../ApplicationWideMessageHolder.java | 0 .../singletons/AvatarStatusCodeHolder.java | 0 .../talk/utils/ssl/MagicKeyManager.java | 0 .../talk/utils/ssl/MagicTrustManager.java | 0 .../talk/utils/ssl/SSLSocketFactoryCompat.kt | 0 .../com/nextcloud/talk/utils/text/Spans.java | 0 ...terialPreferenceCategoryWithRightLink.java | 0 .../talk/webrtc/MagicAudioManager.java | 0 .../talk/webrtc/MagicBluetoothManager.java | 0 .../webrtc/MagicPeerConnectionWrapper.java | 6 +- .../talk/webrtc/MagicProximitySensor.java | 0 .../talk/webrtc/MagicWebRTCUtils.java | 0 .../talk/webrtc/MagicWebSocketInstance.java | 8 +- .../webrtc/WebSocketConnectionHelper.java | 4 +- .../src/main/res/drawable/accent_circle.xml | 0 .../res/drawable/asl_password_visibility.xml | 0 .../main/res/drawable/avd_hide_password.xml | 0 .../main/res/drawable/avd_show_password.xml | 0 .../res/drawable/bubble_circle_unread.xml | 0 .../drawable/bubble_circle_unread_mention.xml | 0 .../main/res/drawable/ic_add_grey600_24px.xml | 0 .../main/res/drawable/ic_add_white_24px.xml | 0 .../res/drawable/ic_arrow_back_black_24dp.xml | 0 .../drawable/ic_arrow_forward_white_24px.xml | 0 .../res/drawable/ic_av_timer_timer_24dp.xml | 0 .../ic_baseline_arrow_downward_24px.xml | 0 .../main/res/drawable/ic_call_black_24dp.xml | 0 .../res/drawable/ic_call_end_white_24px.xml | 0 .../res/drawable/ic_call_grey_600_24dp.xml | 0 .../main/res/drawable/ic_call_white_24dp.xml | 0 .../res/drawable/ic_cancel_black_24dp.xml | 0 .../main/res/drawable/ic_chat_black_24dp.xml | 0 .../main/res/drawable/ic_check_black_24dp.xml | 0 .../drawable/ic_check_circle_black_24dp.xml | 0 .../res/drawable/ic_close_grey600_24dp.xml | 0 .../res/drawable/ic_delete_black_24dp.xml | 0 .../res/drawable/ic_delete_grey600_24dp.xml | 0 .../drawable/ic_exit_to_app_black_24dp.xml | 0 .../src/main/res/drawable/ic_file_icon.xml | 0 .../res/drawable/ic_file_icon_black_24h.xml | 0 .../res/drawable/ic_file_password_request.xml | 0 .../res/drawable/ic_group_grey600_24px.xml | 0 .../main/res/drawable/ic_info_white_24dp.xml | 0 .../ic_insert_emoticon_black_24dp.xml | 0 .../res/drawable/ic_launcher_background.xml | 0 .../res/drawable/ic_launcher_foreground.xml | 0 .../main/res/drawable/ic_link_black_24px.xml | 0 .../res/drawable/ic_link_grey600_24px.xml | 0 .../main/res/drawable/ic_link_white_24px.xml | 0 .../res/drawable/ic_lock_grey600_24px.xml | 0 .../drawable/ic_lock_open_grey600_24dp.xml | 0 .../drawable/ic_lock_plus_grey600_24dp.xml | 0 .../main/res/drawable/ic_lock_white_24px.xml | 0 .../src/main/res/drawable/ic_logo.xml | 0 .../res/drawable/ic_mic_grey_600_24dp.xml | 0 .../res/drawable/ic_mic_off_white_24px.xml | 0 .../main/res/drawable/ic_mic_white_24px.xml | 0 .../res/drawable/ic_mimetype_application.xml | 0 .../drawable/ic_mimetype_application_pdf.xml | 0 .../main/res/drawable/ic_mimetype_audio.xml | 0 .../main/res/drawable/ic_mimetype_file.xml | 0 .../main/res/drawable/ic_mimetype_folder.xml | 0 .../ic_mimetype_folder_drag_accept.xml | 0 .../drawable/ic_mimetype_folder_encrypted.xml | 0 .../drawable/ic_mimetype_folder_external.xml | 0 .../drawable/ic_mimetype_folder_public.xml | 0 .../drawable/ic_mimetype_folder_shared.xml | 0 .../drawable/ic_mimetype_folder_starred.xml | 0 .../main/res/drawable/ic_mimetype_image.xml | 0 .../main/res/drawable/ic_mimetype_link.xml | 0 .../res/drawable/ic_mimetype_location.xml | 0 .../ic_mimetype_package_x_generic.xml | 0 .../main/res/drawable/ic_mimetype_text.xml | 0 .../drawable/ic_mimetype_text_calendar.xml | 0 .../res/drawable/ic_mimetype_text_code.xml | 0 .../res/drawable/ic_mimetype_text_vcard.xml | 0 .../main/res/drawable/ic_mimetype_video.xml | 0 .../ic_mimetype_x_office_document.xml | 0 .../ic_mimetype_x_office_presentation.xml | 0 .../ic_mimetype_x_office_spreadsheet.xml | 0 .../res/drawable/ic_more_horiz_black_24dp.xml | 0 .../main/res/drawable/ic_password_masked.xml | 0 .../main/res/drawable/ic_password_visible.xml | 0 .../res/drawable/ic_pencil_grey600_24dp.xml | 0 .../drawable/ic_people_group_black_24px.xml | 0 .../drawable/ic_people_group_white_24px.xml | 0 .../ic_play_circle_outline_white_24dp.xml | 0 .../res/drawable/ic_public_black_24px.xml | 0 .../res/drawable/ic_refresh_black_24dp.xml | 0 .../drawable/ic_room_service_black_24dp.xml | 0 .../res/drawable/ic_search_white_24dp.xml | 0 .../res/drawable/ic_security_white_24dp.xml | 0 .../res/drawable/ic_settings_white_24dp.xml | 0 .../ic_signal_wifi_off_white_24dp.xml | 0 .../main/res/drawable/ic_star_black_24dp.xml | 0 .../drawable/ic_star_border_black_24dp.xml | 0 .../main/res/drawable/ic_stop_white_24dp.xml | 0 .../drawable/ic_switch_video_white_24px.xml | 0 .../main/res/drawable/ic_timer_black_24dp.xml | 0 .../drawable/ic_videocam_grey_600_24dp.xml | 0 .../drawable/ic_videocam_off_white_24px.xml | 0 .../res/drawable/ic_videocam_white_24px.xml | 0 .../drawable/ic_volume_mute_white_24dp.xml | 0 .../res/drawable/ic_volume_up_white_24dp.xml | 0 .../main/res/drawable/incoming_gradient.xml | 0 .../src/main/res/drawable/mention_chip.xml | 0 .../main/res/drawable/shape_call_bubble.xml | 0 .../res/drawable/shape_favorite_bubble.xml | 0 .../shape_grouped_incoming_message.xml | 0 .../shape_grouped_outcoming_message.xml | 0 .../res/drawable/shape_incoming_message.xml | 0 .../main/res/drawable/shape_lock_bubble.xml | 0 .../res/drawable/shape_outcoming_message.xml | 0 .../main/res/drawable/shape_video_bubble.xml | 0 .../main/res/drawable/shape_voice_bubble.xml | 0 .../main/res/layout/activity_magic_call.xml | 0 .../src/main/res/layout/activity_main.xml | 0 .../src/main/res/layout/bottom_sheet.xml | 0 .../src/main/res/layout/call_item.xml | 0 .../src/main/res/layout/call_states.xml | 0 .../res/layout/category_with_right_action.xml | 0 .../controller_account_verification.xml | 0 .../main/res/layout/controller_browser.xml | 0 .../src/main/res/layout/controller_call.xml | 0 .../main/res/layout/controller_call_menu.xml | 0 .../layout/controller_call_notification.xml | 0 .../src/main/res/layout/controller_chat.xml | 0 .../res/layout/controller_contacts_rv.xml | 0 .../layout/controller_conversation_info.xml | 0 .../layout/controller_conversations_rv.xml | 0 .../main/res/layout/controller_entry_menu.xml | 0 .../main/res/layout/controller_generic_rv.xml | 0 .../src/main/res/layout/controller_locked.xml | 0 .../res/layout/controller_operations_menu.xml | 0 .../layout/controller_server_selection.xml | 0 .../main/res/layout/controller_settings.xml | 0 .../res/layout/controller_web_view_login.xml | 0 .../layout/conversation_privacy_toggle.xml | 0 .../src/main/res/layout/dialog_standard.xml | 0 .../res/layout/dialog_standard_vertical.xml | 0 .../src/main/res/layout/emoji_view.xml | 0 .../src/main/res/layout/fast_scroller.xml | 0 .../item_custom_incoming_preview_message.xml | 0 .../item_custom_incoming_text_message.xml | 0 .../item_custom_outcoming_preview_message.xml | 0 .../item_custom_outcoming_text_message.xml | 0 .../main/res/layout/item_system_message.xml | 0 .../res/layout/join_conversation_via_link.xml | 0 .../layout/library_fast_scroller_layout.xml | 0 .../src/main/res/layout/lobby_view.xml | 0 .../src/main/res/layout/menu_item_sheet.xml | 0 .../res/layout/notification_settings_item.xml | 0 .../src/main/res/layout/progress_layout.xml | 0 .../src/main/res/layout/rv_item_app.xml | 0 .../main/res/layout/rv_item_browser_file.xml | 0 .../src/main/res/layout/rv_item_contact.xml | 0 .../main/res/layout/rv_item_conversation.xml | 0 .../rv_item_conversation_info_participant.xml | 0 ...rv_item_conversation_with_last_message.xml | 0 .../src/main/res/layout/rv_item_mention.xml | 0 .../src/main/res/layout/rv_item_menu.xml | 0 .../res/layout/rv_item_notification_sound.xml | 0 .../src/main/res/layout/rv_item_progress.xml | 0 .../main/res/layout/rv_item_title_header.xml | 0 .../main/res/layout/view_message_input.xml | 0 .../src/main/res/layout/webinar_info_item.xml | 0 .../src/main/res/menu/file_browser_bottom.xml | 0 .../src/main/res/menu/file_browser_path.xml | 0 .../src/main/res/menu/menu_contacts.xml | 0 .../src/main/res/menu/menu_conversation.xml | 0 .../menu/menu_conversation_plus_filter.xml | 0 .../src/main/res/menu/menu_share_files.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../res/raw/librem_by_feandesign_call.ogg | Bin .../res/raw/librem_by_feandesign_message.ogg | Bin .../src/main/res/values-b+en+001/strings.xml | 0 .../src/main/res/values-ca/strings.xml | 0 .../src/main/res/values-cs-rCZ/strings.xml | 0 .../src/main/res/values-da/strings.xml | 0 .../src/main/res/values-de/strings.xml | 0 .../src/main/res/values-el/strings.xml | 0 .../src/main/res/values-es/strings.xml | 0 .../src/main/res/values-fi-rFI/strings.xml | 0 .../src/main/res/values-fr/strings.xml | 0 .../src/main/res/values-gl/strings.xml | 0 .../src/main/res/values-hr/strings.xml | 0 .../src/main/res/values-hu-rHU/strings.xml | 0 .../src/main/res/values-is/strings.xml | 0 .../src/main/res/values-it/strings.xml | 0 .../src/main/res/values-iw/strings.xml | 0 .../src/main/res/values-ja-rJP/strings.xml | 0 .../src/main/res/values-ko/strings.xml | 0 .../src/main/res/values-land/dimens.xml | 0 .../src/main/res/values-lt-rLT/strings.xml | 0 .../src/main/res/values-nb-rNO/strings.xml | 0 .../src/main/res/values-night/colors.xml | 0 .../src/main/res/values-nl/strings.xml | 0 .../src/main/res/values-pl/strings.xml | 0 .../src/main/res/values-pt-rBR/strings.xml | 0 .../src/main/res/values-pt-rPT/strings.xml | 0 .../src/main/res/values-ru/strings.xml | 0 .../src/main/res/values-sk-rSK/strings.xml | 0 .../src/main/res/values-sl/strings.xml | 0 .../src/main/res/values-sr/strings.xml | 0 .../src/main/res/values-sv/strings.xml | 0 .../src/main/res/values-sw600dp/dimens.xml | 0 .../src/main/res/values-tr/strings.xml | 0 .../src/main/res/values-v28/arrays.xml | 0 .../src/main/res/values-v28/defaults.xml | 0 .../src/main/res/values-vi/strings.xml | 0 .../src/main/res/values-w820dp/dimens.xml | 0 .../src/main/res/values-zh-rCN/strings.xml | 0 .../src/main/res/values-zh-rTW/strings.xml | 0 .../src/main/res/values/arrays.xml | 0 .../src/main/res/values/attrs.xml | 0 .../src/main/res/values/bool.xml | 0 .../src/main/res/values/colors.xml | 0 .../src/main/res/values/defaults.xml | 0 .../src/main/res/values/dimens.xml | 0 .../src/main/res/values/setup.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 .../src/main/res/xml/backup_config.xml | 0 .../src/main/res/xml/chip_others.xml | 0 .../src/main/res/xml/chip_you.xml | 0 .../src/main/res/xml/file_provider_paths.xml | 0 .../main/res/xml/network_security_config.xml | 0 .../talk/utils/DoNotDisturbUtilsTest.java | 0 .../nextcloud/talk/utils/ShareUtilsTest.java | 2 +- .../talk/utils/TextMatchersTest.java | 0 settings.gradle | 2 +- 395 files changed, 1896 insertions(+), 217 deletions(-) create mode 100644 data/src/main/res/values/strings.xml create mode 100644 data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt create mode 100644 domain/.gitignore create mode 100644 domain/build.gradle create mode 100644 domain/consumer-rules.pro create mode 100644 domain/proguard-rules.pro create mode 100644 domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt create mode 100644 domain/src/main/AndroidManifest.xml create mode 100644 domain/src/main/res/values/strings.xml create mode 100644 domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt create mode 100644 presentation/.gitignore rename {app => presentation}/build.gradle (88%) rename {app => presentation}/gplay.gradle (100%) rename {app => presentation}/gplay/release/output.json (100%) create mode 100644 presentation/proguard-rules.pro rename {app => presentation}/src/androidTest/java/com/nextcloud/talk/ExampleInstrumentedTest.java (100%) rename {app => presentation}/src/generic/fastlane/metadata/android/tr-TR/full_description.txt (100%) rename {app => presentation}/src/generic/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java (100%) rename {app => presentation}/src/gplay/AndroidManifest.xml (100%) rename {app => presentation}/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.java (100%) rename {app => presentation}/src/gplay/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java (100%) rename {app => presentation}/src/main/AndroidManifest.xml (100%) rename {app => presentation}/src/main/ic_launcher-web.png (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/activities/MainActivity.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java (96%) rename {app => presentation}/src/main/java/com/nextcloud/talk/api/NcApi.java (93%) rename {app => presentation}/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java (96%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/interfaces/ListingInterface.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/DavResponse.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/operations/ListingAbstractClass.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/CallController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/ChatController.kt (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/ContactsController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/LockedController.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/SettingsController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java (97%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/base/providers/ActionBarProvider.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/BasicListItemWithImage.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/MagicBottomSheets.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/dagger/modules/ContextModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/BottomSheetLockEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/CertificateEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/ConfigurationChangeEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/EventStatus.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/MediaStreamEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java (94%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/NetworkEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/PeerConnectionEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java (96%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/UserMentionClickEvent.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java (100%) rename app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java => presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt (65%) rename {app => presentation}/src/main/java/com/nextcloud/talk/interfaces/ClosedInterface.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/interfaces/ConversationMenuInterface.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/interfaces/SelectionInterface.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java (97%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/PushRegistrationWorker.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java (100%) create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/database/Models.java rename {app => presentation}/src/main/java/com/nextcloud/talk/models/database/User.java (98%) create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt rename app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java => presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt (73%) create mode 100644 presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.kt create mode 100644 presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt create mode 100644 presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt create mode 100644 presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt rename {app => presentation}/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ApiUtils.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/DateUtils.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/DoNotDisturbUtils.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/DrawableUtils.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/KeyboardUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/MagicMap.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/PushUtils.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ShareUtils.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/TextMatchers.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/animations/PulseAnimation.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/animations/ViewHidingBehaviourAnimation.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageFactory.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java (99%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideCurrentRoomHolder.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideMessageHolder.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/singletons/AvatarStatusCodeHolder.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/text/Spans.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicProximitySensor.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java (100%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java (98%) rename {app => presentation}/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java (98%) rename {app => presentation}/src/main/res/drawable/accent_circle.xml (100%) rename {app => presentation}/src/main/res/drawable/asl_password_visibility.xml (100%) rename {app => presentation}/src/main/res/drawable/avd_hide_password.xml (100%) rename {app => presentation}/src/main/res/drawable/avd_show_password.xml (100%) rename {app => presentation}/src/main/res/drawable/bubble_circle_unread.xml (100%) rename {app => presentation}/src/main/res/drawable/bubble_circle_unread_mention.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_add_grey600_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_add_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_arrow_back_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_arrow_forward_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_av_timer_timer_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_baseline_arrow_downward_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_call_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_call_end_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_call_grey_600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_call_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_cancel_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_chat_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_check_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_check_circle_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_close_grey600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_delete_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_delete_grey600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_exit_to_app_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_file_icon.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_file_icon_black_24h.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_file_password_request.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_group_grey600_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_info_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_insert_emoticon_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_launcher_background.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_link_black_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_link_grey600_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_link_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_lock_grey600_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_lock_open_grey600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_lock_plus_grey600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_lock_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_logo.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mic_grey_600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mic_off_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mic_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_application.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_application_pdf.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_audio.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_file.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_drag_accept.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_encrypted.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_external.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_public.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_shared.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_folder_starred.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_image.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_link.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_location.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_package_x_generic.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_text.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_text_calendar.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_text_code.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_text_vcard.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_video.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_x_office_document.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_x_office_presentation.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_mimetype_x_office_spreadsheet.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_more_horiz_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_password_masked.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_password_visible.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_pencil_grey600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_people_group_black_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_people_group_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_play_circle_outline_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_public_black_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_refresh_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_room_service_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_search_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_security_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_settings_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_signal_wifi_off_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_star_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_star_border_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_stop_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_switch_video_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_timer_black_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_videocam_grey_600_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_videocam_off_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_videocam_white_24px.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_volume_mute_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/ic_volume_up_white_24dp.xml (100%) rename {app => presentation}/src/main/res/drawable/incoming_gradient.xml (100%) rename {app => presentation}/src/main/res/drawable/mention_chip.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_call_bubble.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_favorite_bubble.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_grouped_incoming_message.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_grouped_outcoming_message.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_incoming_message.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_lock_bubble.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_outcoming_message.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_video_bubble.xml (100%) rename {app => presentation}/src/main/res/drawable/shape_voice_bubble.xml (100%) rename {app => presentation}/src/main/res/layout/activity_magic_call.xml (100%) rename {app => presentation}/src/main/res/layout/activity_main.xml (100%) rename {app => presentation}/src/main/res/layout/bottom_sheet.xml (100%) rename {app => presentation}/src/main/res/layout/call_item.xml (100%) rename {app => presentation}/src/main/res/layout/call_states.xml (100%) rename {app => presentation}/src/main/res/layout/category_with_right_action.xml (100%) rename {app => presentation}/src/main/res/layout/controller_account_verification.xml (100%) rename {app => presentation}/src/main/res/layout/controller_browser.xml (100%) rename {app => presentation}/src/main/res/layout/controller_call.xml (100%) rename {app => presentation}/src/main/res/layout/controller_call_menu.xml (100%) rename {app => presentation}/src/main/res/layout/controller_call_notification.xml (100%) rename {app => presentation}/src/main/res/layout/controller_chat.xml (100%) rename {app => presentation}/src/main/res/layout/controller_contacts_rv.xml (100%) rename {app => presentation}/src/main/res/layout/controller_conversation_info.xml (100%) rename {app => presentation}/src/main/res/layout/controller_conversations_rv.xml (100%) rename {app => presentation}/src/main/res/layout/controller_entry_menu.xml (100%) rename {app => presentation}/src/main/res/layout/controller_generic_rv.xml (100%) rename {app => presentation}/src/main/res/layout/controller_locked.xml (100%) rename {app => presentation}/src/main/res/layout/controller_operations_menu.xml (100%) rename {app => presentation}/src/main/res/layout/controller_server_selection.xml (100%) rename {app => presentation}/src/main/res/layout/controller_settings.xml (100%) rename {app => presentation}/src/main/res/layout/controller_web_view_login.xml (100%) rename {app => presentation}/src/main/res/layout/conversation_privacy_toggle.xml (100%) rename {app => presentation}/src/main/res/layout/dialog_standard.xml (100%) rename {app => presentation}/src/main/res/layout/dialog_standard_vertical.xml (100%) rename {app => presentation}/src/main/res/layout/emoji_view.xml (100%) rename {app => presentation}/src/main/res/layout/fast_scroller.xml (100%) rename {app => presentation}/src/main/res/layout/item_custom_incoming_preview_message.xml (100%) rename {app => presentation}/src/main/res/layout/item_custom_incoming_text_message.xml (100%) rename {app => presentation}/src/main/res/layout/item_custom_outcoming_preview_message.xml (100%) rename {app => presentation}/src/main/res/layout/item_custom_outcoming_text_message.xml (100%) rename {app => presentation}/src/main/res/layout/item_system_message.xml (100%) rename {app => presentation}/src/main/res/layout/join_conversation_via_link.xml (100%) rename {app => presentation}/src/main/res/layout/library_fast_scroller_layout.xml (100%) rename {app => presentation}/src/main/res/layout/lobby_view.xml (100%) rename {app => presentation}/src/main/res/layout/menu_item_sheet.xml (100%) rename {app => presentation}/src/main/res/layout/notification_settings_item.xml (100%) rename {app => presentation}/src/main/res/layout/progress_layout.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_app.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_browser_file.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_contact.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_conversation.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_conversation_info_participant.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_conversation_with_last_message.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_mention.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_menu.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_notification_sound.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_progress.xml (100%) rename {app => presentation}/src/main/res/layout/rv_item_title_header.xml (100%) rename {app => presentation}/src/main/res/layout/view_message_input.xml (100%) rename {app => presentation}/src/main/res/layout/webinar_info_item.xml (100%) rename {app => presentation}/src/main/res/menu/file_browser_bottom.xml (100%) rename {app => presentation}/src/main/res/menu/file_browser_path.xml (100%) rename {app => presentation}/src/main/res/menu/menu_contacts.xml (100%) rename {app => presentation}/src/main/res/menu/menu_conversation.xml (100%) rename {app => presentation}/src/main/res/menu/menu_conversation_plus_filter.xml (100%) rename {app => presentation}/src/main/res/menu/menu_share_files.xml (100%) rename {app => presentation}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {app => presentation}/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {app => presentation}/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {app => presentation}/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {app => presentation}/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {app => presentation}/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%) rename {app => presentation}/src/main/res/raw/librem_by_feandesign_call.ogg (100%) rename {app => presentation}/src/main/res/raw/librem_by_feandesign_message.ogg (100%) rename {app => presentation}/src/main/res/values-b+en+001/strings.xml (100%) rename {app => presentation}/src/main/res/values-ca/strings.xml (100%) rename {app => presentation}/src/main/res/values-cs-rCZ/strings.xml (100%) rename {app => presentation}/src/main/res/values-da/strings.xml (100%) rename {app => presentation}/src/main/res/values-de/strings.xml (100%) rename {app => presentation}/src/main/res/values-el/strings.xml (100%) rename {app => presentation}/src/main/res/values-es/strings.xml (100%) rename {app => presentation}/src/main/res/values-fi-rFI/strings.xml (100%) rename {app => presentation}/src/main/res/values-fr/strings.xml (100%) rename {app => presentation}/src/main/res/values-gl/strings.xml (100%) rename {app => presentation}/src/main/res/values-hr/strings.xml (100%) rename {app => presentation}/src/main/res/values-hu-rHU/strings.xml (100%) rename {app => presentation}/src/main/res/values-is/strings.xml (100%) rename {app => presentation}/src/main/res/values-it/strings.xml (100%) rename {app => presentation}/src/main/res/values-iw/strings.xml (100%) rename {app => presentation}/src/main/res/values-ja-rJP/strings.xml (100%) rename {app => presentation}/src/main/res/values-ko/strings.xml (100%) rename {app => presentation}/src/main/res/values-land/dimens.xml (100%) rename {app => presentation}/src/main/res/values-lt-rLT/strings.xml (100%) rename {app => presentation}/src/main/res/values-nb-rNO/strings.xml (100%) rename {app => presentation}/src/main/res/values-night/colors.xml (100%) rename {app => presentation}/src/main/res/values-nl/strings.xml (100%) rename {app => presentation}/src/main/res/values-pl/strings.xml (100%) rename {app => presentation}/src/main/res/values-pt-rBR/strings.xml (100%) rename {app => presentation}/src/main/res/values-pt-rPT/strings.xml (100%) rename {app => presentation}/src/main/res/values-ru/strings.xml (100%) rename {app => presentation}/src/main/res/values-sk-rSK/strings.xml (100%) rename {app => presentation}/src/main/res/values-sl/strings.xml (100%) rename {app => presentation}/src/main/res/values-sr/strings.xml (100%) rename {app => presentation}/src/main/res/values-sv/strings.xml (100%) rename {app => presentation}/src/main/res/values-sw600dp/dimens.xml (100%) rename {app => presentation}/src/main/res/values-tr/strings.xml (100%) rename {app => presentation}/src/main/res/values-v28/arrays.xml (100%) rename {app => presentation}/src/main/res/values-v28/defaults.xml (100%) rename {app => presentation}/src/main/res/values-vi/strings.xml (100%) rename {app => presentation}/src/main/res/values-w820dp/dimens.xml (100%) rename {app => presentation}/src/main/res/values-zh-rCN/strings.xml (100%) rename {app => presentation}/src/main/res/values-zh-rTW/strings.xml (100%) rename {app => presentation}/src/main/res/values/arrays.xml (100%) rename {app => presentation}/src/main/res/values/attrs.xml (100%) rename {app => presentation}/src/main/res/values/bool.xml (100%) rename {app => presentation}/src/main/res/values/colors.xml (100%) rename {app => presentation}/src/main/res/values/defaults.xml (100%) rename {app => presentation}/src/main/res/values/dimens.xml (100%) rename {app => presentation}/src/main/res/values/setup.xml (100%) rename {app => presentation}/src/main/res/values/strings.xml (100%) rename {app => presentation}/src/main/res/values/styles.xml (100%) rename {app => presentation}/src/main/res/xml/backup_config.xml (100%) rename {app => presentation}/src/main/res/xml/chip_others.xml (100%) rename {app => presentation}/src/main/res/xml/chip_you.xml (100%) rename {app => presentation}/src/main/res/xml/file_provider_paths.xml (100%) rename {app => presentation}/src/main/res/xml/network_security_config.xml (100%) rename {app => presentation}/src/test/java/com/nextcloud/talk/utils/DoNotDisturbUtilsTest.java (100%) rename {app => presentation}/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java (98%) rename {app => presentation}/src/test/java/com/nextcloud/talk/utils/TextMatchersTest.java (100%) diff --git a/.idea/modules.xml b/.idea/modules.xml index a4d92409c..1e0573a53 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,9 @@ - + + + diff --git a/data/src/main/res/values/strings.xml b/data/src/main/res/values/strings.xml new file mode 100644 index 000000000..2a05ffeda --- /dev/null +++ b/data/src/main/res/values/strings.xml @@ -0,0 +1,23 @@ + + + + data + diff --git a/data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt b/data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt new file mode 100644 index 000000000..37e9b45e8 --- /dev/null +++ b/data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt @@ -0,0 +1,37 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.data + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/domain/.gitignore b/domain/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/domain/.gitignore @@ -0,0 +1 @@ +/build diff --git a/domain/build.gradle b/domain/build.gradle new file mode 100644 index 000000000..4e035bf70 --- /dev/null +++ b/domain/build.gradle @@ -0,0 +1,56 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +android { + compileSdkVersion 29 + buildToolsVersion "29.0.2" + + + defaultConfig { + minSdkVersion 21 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.core:core-ktx:1.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' +} diff --git a/domain/consumer-rules.pro b/domain/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/domain/proguard-rules.pro b/domain/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/domain/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt b/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt new file mode 100644 index 000000000..bcee65ff1 --- /dev/null +++ b/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt @@ -0,0 +1,44 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.domain + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.nextcloud.domain.test", appContext.packageName) + } +} diff --git a/domain/src/main/AndroidManifest.xml b/domain/src/main/AndroidManifest.xml new file mode 100644 index 000000000..5c6dbc4e8 --- /dev/null +++ b/domain/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + diff --git a/domain/src/main/res/values/strings.xml b/domain/src/main/res/values/strings.xml new file mode 100644 index 000000000..0171f1daf --- /dev/null +++ b/domain/src/main/res/values/strings.xml @@ -0,0 +1,23 @@ + + + + domain + diff --git a/domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt b/domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt new file mode 100644 index 000000000..c8fcd1d0e --- /dev/null +++ b/domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt @@ -0,0 +1,37 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.domain + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/presentation/.gitignore b/presentation/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/presentation/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/presentation/build.gradle similarity index 88% rename from app/build.gradle rename to presentation/build.gradle index 77ee0c70e..c3c73614c 100644 --- a/app/build.gradle +++ b/presentation/build.gradle @@ -19,10 +19,10 @@ */ apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' apply plugin: 'findbugs' -apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' apply plugin: 'realm-android' def taskRequest = getGradle().getStartParameter().getTaskRequests().toString() @@ -31,13 +31,13 @@ if (taskRequest.contains("Gplay") || taskRequest.contains("findbugs") || taskReq } android { - compileSdkVersion 28 - buildToolsVersion '28.0.3' + compileSdkVersion 29 + buildToolsVersion '29.0.2' defaultConfig { applicationId "com.nextcloud.talk2" versionName version minSdkVersion 21 - targetSdkVersion 28 + targetSdkVersion 29 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" versionCode 119 @@ -144,8 +144,11 @@ configurations.all { dependencies { implementation fileTree(include: ['*'], dir: 'libs') + implementation project(':data') + implementation project(':domain') + implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.1.0-alpha10' + implementation 'com.google.android.material:material:1.1.0-beta01' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' implementation 'com.github.vanniktech:Emoji:0.6.0' implementation group: 'androidx.emoji', name: 'emoji-bundled', version: '1.0.0' @@ -159,7 +162,6 @@ dependencies { }) implementation 'org.conscrypt:conscrypt-android:2.2.1' - implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' implementation 'androidx.biometric:biometric:1.0.0-beta02' @@ -170,22 +172,18 @@ dependencies { implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation "io.reactivex.rxjava2:rxjava:2.2.11" - implementation 'com.bluelinelabs:conductor:3.0.0-rc1' - implementation 'com.bluelinelabs:conductor-support:3.0.0-rc1' - implementation 'com.bluelinelabs:conductor-archlifecycle:3.0.0-rc1' - implementation 'com.bluelinelabs:conductor-rxlifecycle2:3.0.0-rc1' - implementation 'com.bluelinelabs:conductor-autodispose:3.0.0-rc1' + implementation 'com.bluelinelabs:conductor:3.0.0-rc2' + implementation 'com.bluelinelabs:conductor-support:3.0.0-rc2' + implementation 'com.bluelinelabs:conductor-archlifecycle:3.0.0-rc2' + implementation 'com.bluelinelabs:conductor-rxlifecycle2:3.0.0-rc2' + implementation 'com.bluelinelabs:conductor-autodispose:3.0.0-rc2' - implementation 'com.squareup.okhttp3:okhttp:3.14.2' - implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.14.2' - implementation 'com.squareup.okhttp3:logging-interceptor:3.14.2' + implementation 'com.squareup.okhttp3:okhttp:4.2.2' + implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.2.2' + implementation 'com.squareup.okhttp3:logging-interceptor:4.2.2' - implementation 'com.bluelinelabs:logansquare:1.3.7' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.0.pr1' - kapt 'com.bluelinelabs:logansquare-compiler:1.3.7' - - implementation 'com.squareup.retrofit2:retrofit:2.6.1' - implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.1' + implementation 'com.squareup.retrofit2:retrofit:2.6.2' + implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2' implementation 'com.github.aurae.retrofit2:converter-logansquare:1.4.1' implementation 'com.google.dagger:dagger:2.24' @@ -199,18 +197,15 @@ dependencies { implementation 'io.requery:requery-android:1.5.1' implementation 'net.zetetic:android-database-sqlcipher:3.5.9' kapt 'io.requery:requery-processor:1.5.1' - implementation 'org.parceler:parceler-api:1.1.12' - kapt 'org.parceler:parceler:1.1.12' implementation 'net.orange-box.storebox:storebox-lib:1.4.0' - compileOnly 'org.projectlombok:lombok:1.18.8' - annotationProcessor "org.projectlombok:lombok:1.18.8" + compileOnly 'org.projectlombok:lombok:1.18.10' + annotationProcessor 'org.projectlombok:lombok:1.18.10' implementation 'com.jakewharton:butterknife:10.2.0' kapt 'com.jakewharton:butterknife-compiler:10.2.0' implementation 'com.github.HITGIF:TextFieldBoxes:1.4.5' implementation 'eu.davidea:flexible-adapter:5.1.0' implementation 'eu.davidea:flexible-adapter-ui:1.0.0' implementation 'org.webrtc:google-webrtc:1.0.23295' - implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}" implementation 'com.yarolegovich:lovely-dialog:1.1.0' implementation 'com.yarolegovich:lovelyinput:1.0.9' implementation 'com.yarolegovich:mp:1.0.9' @@ -226,7 +221,6 @@ dependencies { implementation 'com.github.mario.fresco:webpsupport:111' implementation 'com.github.mario.fresco:animated-gif:111' implementation 'com.github.mario.fresco:imagepipeline-okhttp3:111' - implementation group: 'joda-time', name: 'joda-time', version: '2.10.3' implementation 'com.github.natario1:Autocomplete:v1.1.0' @@ -244,13 +238,17 @@ dependencies { implementation 'com.afollestad.material-dialogs:bottomsheets:3.1.0' implementation 'com.afollestad.material-dialogs:lifecycle:3.1.0' + implementation 'org.parceler:parceler-api:1.1.12' + kapt 'org.parceler:parceler:1.1.12' + testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:3.0.0' testImplementation 'org.powermock:powermock-core:2.0.2' testImplementation 'org.powermock:powermock-module-junit4:2.0.2' testImplementation 'org.powermock:powermock-api-mockito2:2.0.2' - androidTestImplementation ('androidx.test.espresso:espresso-core:3.1.0-alpha4', { + + androidTestImplementation ('androidx.test.espresso:espresso-core:3.3.0-alpha02', { exclude group: 'com.android.support', module: 'support-annotations' }) findbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.9.0' diff --git a/app/gplay.gradle b/presentation/gplay.gradle similarity index 100% rename from app/gplay.gradle rename to presentation/gplay.gradle diff --git a/app/gplay/release/output.json b/presentation/gplay/release/output.json similarity index 100% rename from app/gplay/release/output.json rename to presentation/gplay/release/output.json diff --git a/presentation/proguard-rules.pro b/presentation/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/presentation/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/com/nextcloud/talk/ExampleInstrumentedTest.java b/presentation/src/androidTest/java/com/nextcloud/talk/ExampleInstrumentedTest.java similarity index 100% rename from app/src/androidTest/java/com/nextcloud/talk/ExampleInstrumentedTest.java rename to presentation/src/androidTest/java/com/nextcloud/talk/ExampleInstrumentedTest.java diff --git a/app/src/generic/fastlane/metadata/android/tr-TR/full_description.txt b/presentation/src/generic/fastlane/metadata/android/tr-TR/full_description.txt similarity index 100% rename from app/src/generic/fastlane/metadata/android/tr-TR/full_description.txt rename to presentation/src/generic/fastlane/metadata/android/tr-TR/full_description.txt diff --git a/app/src/generic/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java b/presentation/src/generic/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java similarity index 100% rename from app/src/generic/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java rename to presentation/src/generic/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java diff --git a/app/src/gplay/AndroidManifest.xml b/presentation/src/gplay/AndroidManifest.xml similarity index 100% rename from app/src/gplay/AndroidManifest.xml rename to presentation/src/gplay/AndroidManifest.xml diff --git a/app/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.java b/presentation/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.java similarity index 100% rename from app/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.java rename to presentation/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.java diff --git a/app/src/gplay/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java b/presentation/src/gplay/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java similarity index 100% rename from app/src/gplay/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java rename to presentation/src/gplay/java/com/nextcloud/talk/utils/ClosedInterfaceImpl.java diff --git a/app/src/main/AndroidManifest.xml b/presentation/src/main/AndroidManifest.xml similarity index 100% rename from app/src/main/AndroidManifest.xml rename to presentation/src/main/AndroidManifest.xml diff --git a/app/src/main/ic_launcher-web.png b/presentation/src/main/ic_launcher-web.png similarity index 100% rename from app/src/main/ic_launcher-web.png rename to presentation/src/main/ic_launcher-web.png diff --git a/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt b/presentation/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt rename to presentation/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt diff --git a/app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt b/presentation/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt rename to presentation/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/presentation/src/main/java/com/nextcloud/talk/activities/MainActivity.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt rename to presentation/src/main/java/com/nextcloud/talk/activities/MainActivity.kt diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java index 951592a10..ae21c4774 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java @@ -34,7 +34,7 @@ import com.facebook.drawee.view.SimpleDraweeView; import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.participants.Participant; +import com.nextcloud.data.models.json.participants.Participant; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import eu.davidea.flexibleadapter.FlexibleAdapter; diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java index 0bee85c0c..71ce47574 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java @@ -26,7 +26,6 @@ import android.text.format.DateUtils; import android.view.View; import android.widget.ImageButton; import android.widget.ImageView; -import android.widget.TextView; import androidx.emoji.widget.EmojiTextView; @@ -39,7 +38,7 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.MoreMenuClickEvent; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import eu.davidea.flexibleadapter.FlexibleAdapter; @@ -115,7 +114,7 @@ public class CallItem extends AbstractFlexibleItem System.currentTimeMillis(), 0, DateUtils.FORMAT_ABBREV_RELATIVE)); } - if (conversation.hasPassword) { + if (conversation.getHasPassword()) { holder.passwordProtectedImageView.setVisibility(View.VISIBLE); } else { holder.passwordProtectedImageView.setVisibility(View.GONE); diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java index 07f0752a1..1da4814b9 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java @@ -34,7 +34,7 @@ import androidx.emoji.widget.EmojiTextView; import butterknife.BindView; import butterknife.ButterKnife; -import com.amulyakhare.textdrawable.TextDrawable; + import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; @@ -42,7 +42,7 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.models.json.chat.ChatMessage; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import eu.davidea.flexibleadapter.FlexibleAdapter; diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java index 33fc8fb05..0a829a032 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java @@ -32,8 +32,8 @@ import com.facebook.drawee.view.SimpleDraweeView; import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.converters.EnumParticipantTypeConverter; -import com.nextcloud.talk.models.json.participants.Participant; +import com.nextcloud.data.models.json.converters.EnumParticipantTypeConverter; +import com.nextcloud.data.models.json.participants.Participant; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java index 9855e8dfb..ec8edc80d 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java @@ -49,7 +49,6 @@ import com.nextcloud.talk.utils.TextMatchers; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.stfalcon.chatkit.messages.MessageHolders; -import com.vanniktech.emoji.emoji.Emoji; import javax.inject.Inject; import java.util.HashMap; @@ -136,7 +135,7 @@ public class MagicIncomingTextMessageViewHolder int bubbleResource = R.drawable.shape_incoming_message; - if (message.isGrouped) { + if (message.getIsGrouped()) { bubbleResource = R.drawable.shape_grouped_incoming_message; } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java index aa91bfc27..ab543ff33 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java @@ -120,7 +120,7 @@ public class MagicOutcomingTextMessageViewHolder extends MessageHolders.Outcomin } Resources resources = NextcloudTalkApplication.Companion.getSharedApplication().getResources(); - if (message.isGrouped) { + if (message.getIsGrouped()) { Drawable bubbleDrawable = DisplayUtils.getMessageSelector(resources.getColor(R.color.bg_message_list_outcoming_bubble), resources.getColor(R.color.transparent), diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java index 455ca5375..f6b7c4a38 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java @@ -29,7 +29,6 @@ import android.graphics.drawable.LayerDrawable; import android.net.Uri; import android.os.Handler; import android.view.View; -import android.widget.TextView; import androidx.emoji.widget.EmojiTextView; @@ -81,7 +80,7 @@ public class MagicPreviewMessageViewHolder extends MessageHolders.IncomingImageM public void onBind(ChatMessage message) { super.onBind(message); if (userAvatar != null) { - if (message.isGrouped || message.isOneToOneConversation()) { + if (message.getIsGrouped() || message.isOneToOneConversation()) { if (message.isOneToOneConversation()) { userAvatar.setVisibility(View.GONE); } else { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java similarity index 96% rename from app/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java rename to presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java index 5e309e978..aac615f2c 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java +++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java @@ -23,7 +23,6 @@ package com.nextcloud.talk.adapters.messages; import android.view.View; import com.nextcloud.talk.models.json.chat.ChatMessage; -import com.stfalcon.chatkit.commons.ViewHolder; import com.stfalcon.chatkit.messages.MessageHolders; public class MagicUnreadNoticeMessageViewHolder extends MessageHolders.SystemMessageViewHolder { diff --git a/app/src/main/java/com/nextcloud/talk/api/NcApi.java b/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java similarity index 93% rename from app/src/main/java/com/nextcloud/talk/api/NcApi.java rename to presentation/src/main/java/com/nextcloud/talk/api/NcApi.java index b7c3ef603..d91b9d577 100644 --- a/app/src/main/java/com/nextcloud/talk/api/NcApi.java +++ b/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java @@ -21,20 +21,20 @@ package com.nextcloud.talk.api; import androidx.annotation.Nullable; -import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall; +import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall; import com.nextcloud.talk.models.json.chat.ChatOverall; -import com.nextcloud.talk.models.json.generic.GenericOverall; -import com.nextcloud.talk.models.json.generic.Status; -import com.nextcloud.talk.models.json.mention.MentionOverall; -import com.nextcloud.talk.models.json.notifications.NotificationOverall; -import com.nextcloud.talk.models.json.participants.AddParticipantOverall; -import com.nextcloud.talk.models.json.participants.ParticipantsOverall; -import com.nextcloud.talk.models.json.push.PushRegistrationOverall; -import com.nextcloud.talk.models.json.conversations.RoomOverall; -import com.nextcloud.talk.models.json.conversations.RoomsOverall; -import com.nextcloud.talk.models.json.signaling.SignalingOverall; -import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall; -import com.nextcloud.talk.models.json.userprofile.UserProfileOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.generic.Status; +import com.nextcloud.data.models.json.mention.MentionOverall; +import com.nextcloud.data.models.json.notifications.NotificationOverall; +import com.nextcloud.data.models.json.participants.AddParticipantOverall; +import com.nextcloud.data.models.json.participants.ParticipantsOverall; +import com.nextcloud.data.models.json.push.PushRegistrationOverall; +import com.nextcloud.data.models.json.conversations.RoomOverall; +import com.nextcloud.data.models.json.conversations.RoomsOverall; +import com.nextcloud.data.models.json.signaling.SignalingOverall; +import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall; +import com.nextcloud.data.models.json.userprofile.UserProfileOverall; import io.reactivex.Observable; import okhttp3.ResponseBody; import retrofit2.Response; diff --git a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt b/presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt rename to presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt diff --git a/app/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java b/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java similarity index 96% rename from app/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java rename to presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java index 8e1d21501..9f32ea1bf 100644 --- a/app/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java +++ b/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java @@ -25,12 +25,10 @@ import android.text.Editable; import android.text.Spanned; import android.widget.EditText; -import androidx.emoji.text.EmojiCompat; - import com.facebook.widget.text.span.BetterImageSpan; import com.nextcloud.talk.R; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.mention.Mention; +import com.nextcloud.data.models.json.mention.Mention; import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.MagicCharPolicy; import com.nextcloud.talk.utils.text.Spans; diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java index 7c8f19e3c..765a0ac44 100644 --- a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java +++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java @@ -92,7 +92,7 @@ public class BrowserController extends BaseController implements ListingInterfac private String roomToken; public BrowserController(Bundle args) { - super(args); + super(); setHasOptionsMenu(true); NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); browserType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_BROWSER_TYPE())); diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/interfaces/ListingInterface.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/interfaces/ListingInterface.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/interfaces/ListingInterface.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/interfaces/ListingInterface.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/DavResponse.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/DavResponse.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/DavResponse.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/DavResponse.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/operations/ListingAbstractClass.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/ListingAbstractClass.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/operations/ListingAbstractClass.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/ListingAbstractClass.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java rename to presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java diff --git a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java index 224342a2f..65295a837 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java @@ -45,9 +45,9 @@ import com.nextcloud.talk.jobs.CapabilitiesWorker; import com.nextcloud.talk.jobs.PushRegistrationWorker; import com.nextcloud.talk.jobs.SignalingSettingsWorker; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.generic.Status; -import com.nextcloud.talk.models.json.conversations.RoomsOverall; -import com.nextcloud.talk.models.json.userprofile.UserProfileOverall; +import com.nextcloud.data.models.json.generic.Status; +import com.nextcloud.data.models.json.conversations.RoomsOverall; +import com.nextcloud.data.models.json.userprofile.UserProfileOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ClosedInterfaceImpl; import com.nextcloud.talk.utils.bundle.BundleKeys; @@ -67,8 +67,6 @@ import org.greenrobot.eventbus.ThreadMode; import javax.inject.Inject; import java.net.CookieManager; -import java.util.ArrayList; -import java.util.List; @AutoInjector(NextcloudTalkApplication.class) @@ -103,7 +101,7 @@ public class AccountVerificationController extends BaseController { private String originalProtocol; public AccountVerificationController(Bundle args) { - super(args); + super(); if (args != null) { baseUrl = args.getString(BundleKeys.INSTANCE.getKEY_BASE_URL()); username = args.getString(BundleKeys.INSTANCE.getKEY_USERNAME()); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/CallController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java index 7e2a1f97c..5d6a61778 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -56,18 +56,18 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.events.*; -import com.nextcloud.talk.models.ExternalSignalingServer; +import com.nextcloud.data.models.ExternalSignalingServer; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall; -import com.nextcloud.talk.models.json.conversations.RoomOverall; -import com.nextcloud.talk.models.json.generic.GenericOverall; -import com.nextcloud.talk.models.json.participants.Participant; -import com.nextcloud.talk.models.json.participants.ParticipantsOverall; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.conversations.RoomsOverall; -import com.nextcloud.talk.models.json.signaling.*; -import com.nextcloud.talk.models.json.signaling.settings.IceServer; -import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall; +import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall; +import com.nextcloud.data.models.json.conversations.RoomOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.participants.Participant; +import com.nextcloud.data.models.json.participants.ParticipantsOverall; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.RoomsOverall; +import com.nextcloud.data.models.json.signaling.*; +import com.nextcloud.data.models.json.signaling.settings.IceServer; +import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.NotificationUtils; @@ -227,7 +227,7 @@ public class CallController extends BaseController { } public CallController(Bundle args) { - super(args); + super(); NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); roomId = args.getString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), ""); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java index 13254c108..2b15f52d4 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java @@ -62,12 +62,12 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.events.ConfigurationChangeEvent; -import com.nextcloud.talk.models.RingtoneSettings; +import com.nextcloud.data.models.RingtoneSettings; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.participants.Participant; -import com.nextcloud.talk.models.json.participants.ParticipantsOverall; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.conversations.RoomsOverall; +import com.nextcloud.data.models.json.participants.Participant; +import com.nextcloud.data.models.json.participants.ParticipantsOverall; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.RoomsOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.DoNotDisturbUtils; @@ -90,7 +90,6 @@ import org.parceler.Parcels; import javax.annotation.Nullable; import javax.inject.Inject; import java.io.IOException; -import java.util.ArrayList; import java.util.List; @AutoInjector(NextcloudTalkApplication.class) @@ -143,7 +142,7 @@ public class CallNotificationController extends BaseController { private Handler handler; public CallNotificationController(Bundle args) { - super(args); + super(); NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); this.roomId = args.getString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), ""); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 61c191b1f..3ce27ac39 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -67,11 +67,11 @@ import com.nextcloud.talk.events.WebSocketCommunicationEvent import com.nextcloud.talk.models.database.UserEntity import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatOverall -import com.nextcloud.talk.models.json.conversations.Conversation -import com.nextcloud.talk.models.json.conversations.RoomOverall -import com.nextcloud.talk.models.json.conversations.RoomsOverall -import com.nextcloud.talk.models.json.generic.GenericOverall -import com.nextcloud.talk.models.json.mention.Mention +import com.nextcloud.data.models.json.conversations.Conversation +import com.nextcloud.data.models.json.conversations.RoomOverall +import com.nextcloud.data.models.json.conversations.RoomsOverall +import com.nextcloud.data.models.json.generic.GenericOverall +import com.nextcloud.data.models.json.mention.Mention import com.nextcloud.talk.presenters.MentionAutocompletePresenter import com.nextcloud.talk.utils.* import com.nextcloud.talk.utils.bundle.BundleKeys @@ -107,7 +107,7 @@ import java.util.concurrent.TimeUnit import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) -class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter +class ChatController(args: Bundle) : BaseController(), MessagesListAdapter .OnLoadMoreListener, MessagesListAdapter.Formatter, MessagesListAdapter .OnMessageLongClickListener, MessageHolders.ContentChecker { @@ -984,7 +984,7 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter private fun processMessages(response: Response<*>, isFromTheFuture: Boolean, timeout: Int) { val xChatLastGivenHeader: String? = response.headers().get("X-Chat-Last-Given") - if (response.headers().size() > 0 && !TextUtils.isEmpty(xChatLastGivenHeader)) { + if (response.headers().size > 0 && !TextUtils.isEmpty(xChatLastGivenHeader)) { val header = Integer.parseInt(xChatLastGivenHeader!!) if (header > 0) { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java index 1574d0482..6544463e3 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java @@ -55,15 +55,15 @@ import com.nextcloud.talk.controllers.bottomsheet.EntryMenuController; import com.nextcloud.talk.controllers.bottomsheet.OperationsMenuController; import com.nextcloud.talk.events.BottomSheetLockEvent; import com.nextcloud.talk.jobs.AddParticipantsToConversation; -import com.nextcloud.talk.models.RetrofitBucket; +import com.nextcloud.data.models.RetrofitBucket; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall; -import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.conversations.RoomOverall; -import com.nextcloud.talk.models.json.participants.Participant; -import com.nextcloud.talk.models.json.sharees.Sharee; -import com.nextcloud.talk.models.json.sharees.ShareesOverall; +import com.nextcloud.data.models.json.autocomplete.AutocompleteOverall; +import com.nextcloud.data.models.json.autocomplete.AutocompleteUser; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.RoomOverall; +import com.nextcloud.data.models.json.participants.Participant; +import com.nextcloud.data.models.json.sharees.Sharee; +import com.nextcloud.data.models.json.sharees.ShareesOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ConductorRemapping; import com.nextcloud.talk.utils.KeyboardUtils; @@ -190,7 +190,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ } public ContactsController(Bundle args) { - super(args); + super(); setHasOptionsMenu(true); if (args.containsKey(BundleKeys.INSTANCE.getKEY_NEW_CONVERSATION())) { isNewConversationView = true; diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt index 3837fa7f4..edbaa873e 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt @@ -59,12 +59,12 @@ import com.nextcloud.talk.events.EventStatus import com.nextcloud.talk.jobs.DeleteConversationWorker import com.nextcloud.talk.jobs.LeaveConversationWorker import com.nextcloud.talk.models.database.UserEntity -import com.nextcloud.talk.models.json.conversations.Conversation -import com.nextcloud.talk.models.json.conversations.RoomOverall -import com.nextcloud.talk.models.json.converters.EnumNotificationLevelConverter -import com.nextcloud.talk.models.json.generic.GenericOverall -import com.nextcloud.talk.models.json.participants.Participant -import com.nextcloud.talk.models.json.participants.ParticipantsOverall +import com.nextcloud.data.models.json.conversations.Conversation +import com.nextcloud.data.models.json.conversations.RoomOverall +import com.nextcloud.data.models.json.converters.EnumNotificationLevelConverter +import com.nextcloud.data.models.json.generic.GenericOverall +import com.nextcloud.data.models.json.participants.Participant +import com.nextcloud.data.models.json.participants.ParticipantsOverall import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DisplayUtils @@ -89,7 +89,7 @@ import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) -class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleAdapter.OnItemClickListener { +class ConversationInfoController(args: Bundle) : BaseController(), FlexibleAdapter.OnItemClickListener { @BindView(R.id.notification_settings) lateinit var notificationsPreferenceScreen: MaterialPreferenceScreen diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java index fb202b313..47963886a 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java @@ -80,8 +80,8 @@ import com.nextcloud.talk.events.MoreMenuClickEvent; import com.nextcloud.talk.interfaces.ConversationMenuInterface; import com.nextcloud.talk.jobs.DeleteConversationWorker; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.participants.Participant; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.participants.Participant; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ConductorRemapping; import com.nextcloud.talk.utils.DisplayUtils; @@ -606,8 +606,8 @@ public class ConversationsListController extends BaseController implements Searc bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken()); bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), conversation.getRoomId()); - if (conversation.hasPassword && (conversation.participantType.equals(Participant.ParticipantType.GUEST) || - conversation.participantType.equals(Participant.ParticipantType.USER_FOLLOWING_LINK))) { + if (conversation.getHasPassword() && (conversation.getParticipantType().equals(Participant.ParticipantType.GUEST) || + conversation.getParticipantType().equals(Participant.ParticipantType.USER_FOLLOWING_LINK))) { bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), 99); prepareAndShowBottomSheetWithBundle(bundle, false); } else { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/LockedController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/LockedController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java diff --git a/app/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java index f5edc8cf9..c728e57b1 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java @@ -44,7 +44,7 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.adapters.items.NotificationSoundItem; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; -import com.nextcloud.talk.models.RingtoneSettings; +import com.nextcloud.data.models.RingtoneSettings; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.preferences.AppPreferences; import eu.davidea.flexibleadapter.FlexibleAdapter; @@ -83,7 +83,7 @@ public class RingtoneSelectionController extends BaseController implements Flexi private Handler cancelMediaPlayerHandler; public RingtoneSelectionController(Bundle args) { - super(args); + super(); setHasOptionsMenu(true); this.callNotificationSounds = args.getBoolean(BundleKeys.INSTANCE.getKEY_ARE_CALL_SOUNDS(), false); } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java index 2428185b7..436270889 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java @@ -38,7 +38,6 @@ import android.view.WindowManager; import android.widget.Checkable; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.core.view.ViewCompat; import androidx.emoji.widget.EmojiTextView; import androidx.work.OneTimeWorkRequest; @@ -59,7 +58,7 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.jobs.AccountRemovalWorker; -import com.nextcloud.talk.models.RingtoneSettings; +import com.nextcloud.data.models.RingtoneSettings; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.utils.*; import com.nextcloud.talk.utils.bundle.BundleKeys; @@ -72,10 +71,8 @@ import com.yarolegovich.lovelydialog.LovelySaveStateHandler; import com.yarolegovich.lovelydialog.LovelyStandardDialog; import com.yarolegovich.mp.*; import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener; -import org.greenrobot.eventbus.EventBus; import javax.inject.Inject; import java.io.IOException; diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java index 1543f76ad..af7781ac0 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java @@ -41,9 +41,9 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.adapters.items.AdvancedUserItem; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; -import com.nextcloud.talk.models.ImportAccount; +import com.nextcloud.data.models.ImportAccount; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.participants.Participant; +import com.nextcloud.data.models.json.participants.Participant; import com.nextcloud.talk.utils.AccountUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; @@ -137,7 +137,7 @@ public class SwitchAccountController extends BaseController { } public SwitchAccountController(Bundle args) { - super(args); + super(); setHasOptionsMenu(true); if (args.containsKey(BundleKeys.INSTANCE.getKEY_IS_ACCOUNT_IMPORT())) { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java index 75bcbc399..672e9fa22 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java @@ -48,7 +48,7 @@ import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.events.CertificateEvent; import com.nextcloud.talk.jobs.PushRegistrationWorker; -import com.nextcloud.talk.models.LoginData; +import com.nextcloud.data.models.LoginData; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; @@ -131,10 +131,6 @@ public class WebViewLoginController extends BaseController { this.password = password; } - public WebViewLoginController(Bundle args) { - super(args); - } - private String getWebLoginUserAgent() { return Build.MANUFACTURER.substring(0, 1).toUpperCase(Locale.getDefault()) + Build.MANUFACTURER.substring(1).toLowerCase(Locale.getDefault()) + " " + Build.MODEL + " (" diff --git a/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java similarity index 97% rename from app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java index fcc118137..7ccc317e1 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java @@ -59,12 +59,10 @@ public abstract class BaseController extends ButterKnifeController { @Inject Context context; - protected BaseController() { - cleanTempCertPreference(); - } - - protected BaseController(Bundle args) { - super(args); + @Override + protected void onContextAvailable(Context context) { + super.onContextAvailable(context); + NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); cleanTempCertPreference(); } @@ -80,8 +78,6 @@ public abstract class BaseController extends ButterKnifeController { } private void cleanTempCertPreference() { - NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); - List temporaryClassNames = new ArrayList<>(); temporaryClassNames.add(ServerSelectionController.class.getName()); temporaryClassNames.add(AccountVerificationController.class.getName()); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt diff --git a/app/src/main/java/com/nextcloud/talk/controllers/base/providers/ActionBarProvider.java b/presentation/src/main/java/com/nextcloud/talk/controllers/base/providers/ActionBarProvider.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/base/providers/ActionBarProvider.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/base/providers/ActionBarProvider.java diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java index 1925c4d89..c19f77601 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java @@ -49,7 +49,7 @@ import com.nextcloud.talk.events.BottomSheetLockEvent; import com.nextcloud.talk.interfaces.ConversationMenuInterface; import com.nextcloud.talk.jobs.LeaveConversationWorker; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.ShareUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; @@ -86,7 +86,7 @@ public class CallMenuController extends BaseController implements FlexibleAdapte private ConversationMenuInterface conversationMenuInterface; public CallMenuController(Bundle args) { - super(args); + super(); this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM())); if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) { this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE())); @@ -94,7 +94,7 @@ public class CallMenuController extends BaseController implements FlexibleAdapte } public CallMenuController(Bundle args, @Nullable ConversationMenuInterface conversationMenuInterface) { - super(args); + super(); this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM())); if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) { this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE())); @@ -268,7 +268,7 @@ public class CallMenuController extends BaseController implements FlexibleAdapte } else if (menuType.equals(MenuType.SHARE) && position != 0) { AppItem appItem = (AppItem) adapter.getItem(position); if (appItem != null && getActivity() != null) { - if (!conversation.hasPassword) { + if (!conversation.getHasPassword()) { shareIntent.putExtra(Intent.EXTRA_TEXT, ShareUtils.getStringForIntent(getActivity(), null, userUtils, conversation)); Intent intent = new Intent(shareIntent); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java index 07efaa4eb..20960591a 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java @@ -41,13 +41,12 @@ import butterknife.BindView; import butterknife.OnClick; import com.bluelinelabs.conductor.RouterTransaction; import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler; -import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.events.BottomSheetLockEvent; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.EmojiTextInputEditText; import com.nextcloud.talk.utils.ShareUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; @@ -99,7 +98,7 @@ public class EntryMenuController extends BaseController { private Bundle originalBundle; public EntryMenuController(Bundle args) { - super(args); + super(); originalBundle = args; this.operationCode = args.getInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE()); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java index fd2eeb9d4..47696affe 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java +++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java @@ -48,14 +48,14 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.events.BottomSheetLockEvent; -import com.nextcloud.talk.models.RetrofitBucket; +import com.nextcloud.data.models.RetrofitBucket; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.capabilities.Capabilities; -import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.conversations.RoomOverall; -import com.nextcloud.talk.models.json.generic.GenericOverall; -import com.nextcloud.talk.models.json.participants.AddParticipantOverall; +import com.nextcloud.data.models.json.capabilities.Capabilities; +import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.RoomOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.participants.AddParticipantOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ConductorRemapping; import com.nextcloud.talk.utils.DisplayUtils; @@ -127,7 +127,7 @@ public class OperationsMenuController extends BaseController { private String conversationName; public OperationsMenuController(Bundle args) { - super(args); + super(); this.operationCode = args.getInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE()); if (args.containsKey(BundleKeys.INSTANCE.getKEY_ROOM())) { this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM())); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/BasicListItemWithImage.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/BasicListItemWithImage.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/BasicListItemWithImage.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/BasicListItemWithImage.kt diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/MagicBottomSheets.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/MagicBottomSheets.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/MagicBottomSheets.kt rename to presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/MagicBottomSheets.kt diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java rename to presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/ContextModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/ContextModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/dagger/modules/ContextModule.java rename to presentation/src/main/java/com/nextcloud/talk/dagger/modules/ContextModule.java diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java rename to presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java rename to presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java diff --git a/app/src/main/java/com/nextcloud/talk/events/BottomSheetLockEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/BottomSheetLockEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/BottomSheetLockEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/BottomSheetLockEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/CertificateEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/CertificateEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/ConfigurationChangeEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/ConfigurationChangeEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/ConfigurationChangeEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/ConfigurationChangeEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/EventStatus.java b/presentation/src/main/java/com/nextcloud/talk/events/EventStatus.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/EventStatus.java rename to presentation/src/main/java/com/nextcloud/talk/events/EventStatus.java diff --git a/app/src/main/java/com/nextcloud/talk/events/MediaStreamEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/MediaStreamEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/MediaStreamEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/MediaStreamEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java similarity index 94% rename from app/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java index bca88d9e4..f35fac1f9 100644 --- a/app/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java +++ b/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java @@ -20,7 +20,7 @@ package com.nextcloud.talk.events; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import lombok.Data; @Data diff --git a/app/src/main/java/com/nextcloud/talk/events/NetworkEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/NetworkEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/NetworkEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/NetworkEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/PeerConnectionEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/PeerConnectionEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/PeerConnectionEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/PeerConnectionEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java similarity index 96% rename from app/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java index 4fd81563f..2669f244f 100644 --- a/app/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java +++ b/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java @@ -21,7 +21,7 @@ package com.nextcloud.talk.events; import androidx.annotation.Nullable; -import com.nextcloud.talk.models.json.signaling.NCIceCandidate; +import com.nextcloud.data.models.json.signaling.NCIceCandidate; import lombok.Data; import org.webrtc.SessionDescription; diff --git a/app/src/main/java/com/nextcloud/talk/events/UserMentionClickEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/UserMentionClickEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/UserMentionClickEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/UserMentionClickEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java rename to presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java diff --git a/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java b/presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt similarity index 65% rename from app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java rename to presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt index ab09d45ca..fbba22a99 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java +++ b/presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt @@ -18,23 +18,17 @@ * along with this program. If not, see . */ -package com.nextcloud.talk.models.json.push; +package com.nextcloud.talk.features.conversationsList -import com.bluelinelabs.logansquare.annotation.JsonField; -import com.bluelinelabs.logansquare.annotation.JsonObject; -import lombok.Data; -import org.parceler.Parcel; +import com.nextcloud.data.models.json.conversations.Conversation -@Data -@Parcel -@JsonObject -public class NotificationUser { - @JsonField(name = "type") - String type; +class ConversationsListContract { + interface View { + fun onLoadConversationsSuccess(conversations: List) + fun onLoadConversationsFailure(throwable: Throwable) + } - @JsonField(name = "id") - String id; - - @JsonField(name = "name") - String name; + interface Presenter { + fun loadConversations() + } } diff --git a/app/src/main/java/com/nextcloud/talk/interfaces/ClosedInterface.kt b/presentation/src/main/java/com/nextcloud/talk/interfaces/ClosedInterface.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/interfaces/ClosedInterface.kt rename to presentation/src/main/java/com/nextcloud/talk/interfaces/ClosedInterface.kt diff --git a/app/src/main/java/com/nextcloud/talk/interfaces/ConversationMenuInterface.kt b/presentation/src/main/java/com/nextcloud/talk/interfaces/ConversationMenuInterface.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/interfaces/ConversationMenuInterface.kt rename to presentation/src/main/java/com/nextcloud/talk/interfaces/ConversationMenuInterface.kt diff --git a/app/src/main/java/com/nextcloud/talk/interfaces/SelectionInterface.kt b/presentation/src/main/java/com/nextcloud/talk/interfaces/SelectionInterface.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/interfaces/SelectionInterface.kt rename to presentation/src/main/java/com/nextcloud/talk/interfaces/SelectionInterface.kt diff --git a/app/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java index aec901033..5472faf13 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java @@ -35,8 +35,8 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.generic.GenericOverall; -import com.nextcloud.talk.models.json.push.PushConfigurationState; +import com.nextcloud.data.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.push.PushConfigurationState; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageUtils; import com.nextcloud.talk.utils.database.user.UserUtils; @@ -110,7 +110,7 @@ public class AccountRemovalWorker extends Worker { if (genericOverall.getOcs().getMeta().getStatusCode() == 200 || genericOverall.getOcs().getMeta().getStatusCode() == 202) { HashMap queryMap = new HashMap<>(); - queryMap.put("deviceIdentifier", finalPushConfigurationState.deviceIdentifier); + queryMap.put("deviceIdentifier", finalPushConfigurationState.getDeviceIdentifier()); queryMap.put("userPublicKey", finalPushConfigurationState.getUserPublicKey()); queryMap.put("deviceIdentifierSignature", finalPushConfigurationState.getDeviceIdentifierSignature()); diff --git a/app/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java b/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java similarity index 97% rename from app/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java index cb2d8cb4d..7242d6492 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java @@ -25,7 +25,7 @@ import android.content.Context; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; -import com.nextcloud.talk.models.RetrofitBucket; +import com.nextcloud.data.models.RetrofitBucket; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; @@ -33,8 +33,6 @@ import com.nextcloud.talk.utils.database.user.UserUtils; import org.greenrobot.eventbus.EventBus; -import java.util.ArrayList; - import javax.inject.Inject; import androidx.annotation.NonNull; diff --git a/app/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java index 779a1cf94..2278eeb37 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java @@ -32,7 +32,7 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall; +import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; diff --git a/app/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java index 0bde3e7ac..3b8f4e1eb 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java @@ -30,7 +30,7 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; diff --git a/app/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java index c1a59096f..b1b61e29b 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java @@ -30,7 +30,7 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; diff --git a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java index 36fb25aa5..fa263475d 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java @@ -65,16 +65,16 @@ import com.nextcloud.talk.activities.MagicCallActivity; import com.nextcloud.talk.activities.MainActivity; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; -import com.nextcloud.talk.models.RingtoneSettings; -import com.nextcloud.talk.models.SignatureVerification; +import com.nextcloud.data.models.RingtoneSettings; +import com.nextcloud.data.models.SignatureVerification; import com.nextcloud.talk.models.database.ArbitraryStorageEntity; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.models.json.chat.ChatUtils; -import com.nextcloud.talk.models.json.conversations.Conversation; -import com.nextcloud.talk.models.json.conversations.RoomOverall; -import com.nextcloud.talk.models.json.notifications.NotificationOverall; -import com.nextcloud.talk.models.json.push.DecryptedPushMessage; -import com.nextcloud.talk.models.json.push.NotificationUser; +import com.nextcloud.data.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.RoomOverall; +import com.nextcloud.data.models.json.notifications.NotificationOverall; +import com.nextcloud.data.models.json.push.DecryptedPushMessage; +import com.nextcloud.data.models.json.push.NotificationUser; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.DoNotDisturbUtils; @@ -213,12 +213,12 @@ public class NotificationWorker extends Worker { @Override public void onNext(NotificationOverall notificationOverall) { - com.nextcloud.talk.models.json.notifications.Notification notification = + com.nextcloud.data.models.json.notifications.Notification notification = notificationOverall.getOcs().getNotification(); if (notification.getMessageRichParameters() != null && notification.getMessageRichParameters().size() > 0) { - decryptedPushMessage.setText(ChatUtils.getParsedMessage(notification.getMessageRich(), + decryptedPushMessage.setText(ChatUtils.INSTANCE.getParsedMessage(notification.getMessageRich(), notification.getMessageRichParameters())); } else { decryptedPushMessage.setText(notification.getMessage()); diff --git a/app/src/main/java/com/nextcloud/talk/jobs/PushRegistrationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/PushRegistrationWorker.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/jobs/PushRegistrationWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/PushRegistrationWorker.java diff --git a/app/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java diff --git a/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java index 7bf50c724..fa674aee9 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java @@ -29,9 +29,9 @@ import com.bluelinelabs.logansquare.LoganSquare; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; -import com.nextcloud.talk.models.ExternalSignalingServer; +import com.nextcloud.data.models.ExternalSignalingServer; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall; +import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; diff --git a/app/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java rename to presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java index 82813e537..55c789c56 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java +++ b/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java @@ -30,7 +30,7 @@ import androidx.work.WorkerParameters; import autodagger.AutoInjector; import com.bluelinelabs.logansquare.LoganSquare; import com.nextcloud.talk.application.NextcloudTalkApplication; -import com.nextcloud.talk.models.ExternalSignalingServer; +import com.nextcloud.data.models.ExternalSignalingServer; import com.nextcloud.talk.models.database.UserEntity; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.webrtc.WebSocketConnectionHelper; diff --git a/app/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java rename to presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java new file mode 100644 index 000000000..f9fcd425e --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java @@ -0,0 +1,287 @@ +// Generated file do not edit, generated by io.requery.processor.EntityProcessor +package com.nextcloud.talk.models.database; + +import android.os.Parcel; +import android.os.Parcelable; + +import io.requery.Persistable; +import io.requery.android.EntityParceler; +import io.requery.meta.AttributeBuilder; +import io.requery.meta.NumericAttribute; +import io.requery.meta.StringAttribute; +import io.requery.meta.Type; +import io.requery.meta.TypeBuilder; +import io.requery.proxy.EntityProxy; +import io.requery.proxy.LongProperty; +import io.requery.proxy.Property; +import io.requery.proxy.PropertyState; +import io.requery.util.function.Function; +import io.requery.util.function.Supplier; +import java.lang.Long; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import javax.annotation.Generated; + +@Generated("io.requery.processor.EntityProcessor") +public class ArbitraryStorageEntity implements ArbitraryStorage, Persistable, Parcelable { + public static final NumericAttribute ACCOUNT_IDENTIFIER = + new AttributeBuilder("accountIdentifier", long.class) + .setProperty(new LongProperty() { + @Override + public Long get(ArbitraryStorageEntity entity) { + return entity.accountIdentifier; + } + + @Override + public void set(ArbitraryStorageEntity entity, Long value) { + entity.accountIdentifier = value; + } + + @Override + public long getLong(ArbitraryStorageEntity entity) { + return entity.accountIdentifier; + } + + @Override + public void setLong(ArbitraryStorageEntity entity, long value) { + entity.accountIdentifier = value; + } + }) + .setPropertyName("getAccountIdentifier") + .setPropertyState(new Property() { + @Override + public PropertyState get(ArbitraryStorageEntity entity) { + return entity.$accountIdentifier_state; + } + + @Override + public void set(ArbitraryStorageEntity entity, PropertyState value) { + entity.$accountIdentifier_state = value; + } + }) + .setKey(true) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(false) + .setUnique(false) + .buildNumeric(); + + public static final StringAttribute KEY = + new AttributeBuilder("key", String.class) + .setProperty(new Property() { + @Override + public String get(ArbitraryStorageEntity entity) { + return entity.key; + } + + @Override + public void set(ArbitraryStorageEntity entity, String value) { + entity.key = value; + } + }) + .setPropertyName("getKey") + .setPropertyState(new Property() { + @Override + public PropertyState get(ArbitraryStorageEntity entity) { + return entity.$key_state; + } + + @Override + public void set(ArbitraryStorageEntity entity, PropertyState value) { + entity.$key_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute OBJECT = + new AttributeBuilder("object", String.class) + .setProperty(new Property() { + @Override + public String get(ArbitraryStorageEntity entity) { + return entity.object; + } + + @Override + public void set(ArbitraryStorageEntity entity, String value) { + entity.object = value; + } + }) + .setPropertyName("getObject") + .setPropertyState(new Property() { + @Override + public PropertyState get(ArbitraryStorageEntity entity) { + return entity.$object_state; + } + + @Override + public void set(ArbitraryStorageEntity entity, PropertyState value) { + entity.$object_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute VALUE = + new AttributeBuilder("value", String.class) + .setProperty(new Property() { + @Override + public String get(ArbitraryStorageEntity entity) { + return entity.value; + } + + @Override + public void set(ArbitraryStorageEntity entity, String value) { + entity.value = value; + } + }) + .setPropertyName("getValue") + .setPropertyState(new Property() { + @Override + public PropertyState get(ArbitraryStorageEntity entity) { + return entity.$value_state; + } + + @Override + public void set(ArbitraryStorageEntity entity, PropertyState value) { + entity.$value_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final Type $TYPE = new TypeBuilder(ArbitraryStorageEntity.class, "ArbitraryStorage") + .setBaseType(ArbitraryStorage.class) + .setCacheable(true) + .setImmutable(false) + .setReadOnly(false) + .setStateless(false) + .setView(false) + .setFactory(new Supplier() { + @Override + public ArbitraryStorageEntity get() { + return new ArbitraryStorageEntity(); + } + }) + .setProxyProvider(new Function>() { + @Override + public EntityProxy apply(ArbitraryStorageEntity entity) { + return entity.$proxy; + } + }) + .addAttribute(ACCOUNT_IDENTIFIER) + .addAttribute(VALUE) + .addAttribute(OBJECT) + .addAttribute(KEY) + .build(); + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public ArbitraryStorageEntity createFromParcel(Parcel source) { + return PARCELER.readFromParcel(source); + } + + @Override + public ArbitraryStorageEntity[] newArray(int size) { + return new ArbitraryStorageEntity[size]; + } + }; + + static final EntityParceler PARCELER = new EntityParceler($TYPE); + + private PropertyState $accountIdentifier_state; + + private PropertyState $key_state; + + private PropertyState $object_state; + + private PropertyState $value_state; + + private long accountIdentifier; + + private String key; + + private String object; + + private String value; + + private final transient EntityProxy $proxy = new EntityProxy(this, $TYPE); + + public ArbitraryStorageEntity() { + } + + @Override + public long getAccountIdentifier() { + return $proxy.get(ACCOUNT_IDENTIFIER); + } + + public void setAccountIdentifier(long accountIdentifier) { + $proxy.set(ACCOUNT_IDENTIFIER, accountIdentifier); + } + + @Override + public String getKey() { + return $proxy.get(KEY); + } + + public void setKey(String key) { + $proxy.set(KEY, key); + } + + @Override + public String getObject() { + return $proxy.get(OBJECT); + } + + public void setObject(String object) { + $proxy.set(OBJECT, object); + } + + @Override + public String getValue() { + return $proxy.get(VALUE); + } + + public void setValue(String value) { + $proxy.set(VALUE, value); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof ArbitraryStorageEntity && ((ArbitraryStorageEntity)obj).$proxy.equals(this.$proxy); + } + + @Override + public int hashCode() { + return $proxy.hashCode(); + } + + @Override + public String toString() { + return $proxy.toString(); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + PARCELER.writeToParcel(this, dest); + } +} diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java b/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java new file mode 100644 index 000000000..e7444aa53 --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java @@ -0,0 +1,17 @@ +// Generated file do not edit, generated by io.requery.processor.EntityProcessor +package com.nextcloud.talk.models.database; + +import io.requery.meta.EntityModel; +import io.requery.meta.EntityModelBuilder; +import javax.annotation.Generated; + +@Generated("io.requery.processor.EntityProcessor") +public class Models { + public static final EntityModel DEFAULT = new EntityModelBuilder("default") + .addType(UserEntity.$TYPE) + .addType(ArbitraryStorageEntity.$TYPE) + .build(); + + private Models() { + } +} diff --git a/app/src/main/java/com/nextcloud/talk/models/database/User.java b/presentation/src/main/java/com/nextcloud/talk/models/database/User.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/models/database/User.java rename to presentation/src/main/java/com/nextcloud/talk/models/database/User.java index 2bd028c8f..0bafe3f5f 100644 --- a/app/src/main/java/com/nextcloud/talk/models/database/User.java +++ b/presentation/src/main/java/com/nextcloud/talk/models/database/User.java @@ -22,7 +22,7 @@ package com.nextcloud.talk.models.database; import android.os.Parcelable; import android.util.Log; import com.bluelinelabs.logansquare.LoganSquare; -import com.nextcloud.talk.models.json.capabilities.Capabilities; +import com.nextcloud.data.models.json.capabilities.Capabilities; import io.requery.Entity; import io.requery.Generated; import io.requery.Key; diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java b/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java new file mode 100644 index 000000000..939de13bb --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java @@ -0,0 +1,674 @@ +// Generated file do not edit, generated by io.requery.processor.EntityProcessor +package com.nextcloud.talk.models.database; + +import android.os.Parcel; +import android.os.Parcelable; + +import io.requery.Persistable; +import io.requery.android.EntityParceler; +import io.requery.meta.AttributeBuilder; +import io.requery.meta.NumericAttribute; +import io.requery.meta.QueryAttribute; +import io.requery.meta.StringAttribute; +import io.requery.meta.Type; +import io.requery.meta.TypeBuilder; +import io.requery.proxy.BooleanProperty; +import io.requery.proxy.EntityProxy; +import io.requery.proxy.LongProperty; +import io.requery.proxy.Property; +import io.requery.proxy.PropertyState; +import io.requery.util.function.Function; +import io.requery.util.function.Supplier; +import java.lang.Boolean; +import java.lang.Long; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import javax.annotation.Generated; + +@Generated("io.requery.processor.EntityProcessor") +public class UserEntity implements User, Persistable, Parcelable { + public static final NumericAttribute ID = + new AttributeBuilder("id", long.class) + .setProperty(new LongProperty() { + @Override + public Long get(UserEntity entity) { + return entity.id; + } + + @Override + public void set(UserEntity entity, Long value) { + entity.id = value; + } + + @Override + public long getLong(UserEntity entity) { + return entity.id; + } + + @Override + public void setLong(UserEntity entity, long value) { + entity.id = value; + } + }) + .setPropertyName("getId") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$id_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$id_state = value; + } + }) + .setKey(true) + .setGenerated(true) + .setReadOnly(true) + .setLazy(false) + .setNullable(false) + .setUnique(false) + .buildNumeric(); + + public static final StringAttribute USER_ID = + new AttributeBuilder("userId", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.userId; + } + + @Override + public void set(UserEntity entity, String value) { + entity.userId = value; + } + }) + .setPropertyName("getUserId") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$userId_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$userId_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute USERNAME = + new AttributeBuilder("username", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.username; + } + + @Override + public void set(UserEntity entity, String value) { + entity.username = value; + } + }) + .setPropertyName("getUsername") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$username_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$username_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute BASE_URL = + new AttributeBuilder("baseUrl", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.baseUrl; + } + + @Override + public void set(UserEntity entity, String value) { + entity.baseUrl = value; + } + }) + .setPropertyName("getBaseUrl") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$baseUrl_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$baseUrl_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute TOKEN = + new AttributeBuilder("token", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.token; + } + + @Override + public void set(UserEntity entity, String value) { + entity.token = value; + } + }) + .setPropertyName("getToken") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$token_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$token_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute DISPLAY_NAME = + new AttributeBuilder("displayName", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.displayName; + } + + @Override + public void set(UserEntity entity, String value) { + entity.displayName = value; + } + }) + .setPropertyName("getDisplayName") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$displayName_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$displayName_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute PUSH_CONFIGURATION_STATE = + new AttributeBuilder("pushConfigurationState", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.pushConfigurationState; + } + + @Override + public void set(UserEntity entity, String value) { + entity.pushConfigurationState = value; + } + }) + .setPropertyName("getPushConfigurationState") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$pushConfigurationState_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$pushConfigurationState_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute CAPABILITIES = + new AttributeBuilder("capabilities", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.capabilities; + } + + @Override + public void set(UserEntity entity, String value) { + entity.capabilities = value; + } + }) + .setPropertyName("getCapabilities") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$capabilities_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$capabilities_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute CLIENT_CERTIFICATE = + new AttributeBuilder("clientCertificate", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.clientCertificate; + } + + @Override + public void set(UserEntity entity, String value) { + entity.clientCertificate = value; + } + }) + .setPropertyName("getClientCertificate") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$clientCertificate_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$clientCertificate_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final StringAttribute EXTERNAL_SIGNALING_SERVER = + new AttributeBuilder("externalSignalingServer", String.class) + .setProperty(new Property() { + @Override + public String get(UserEntity entity) { + return entity.externalSignalingServer; + } + + @Override + public void set(UserEntity entity, String value) { + entity.externalSignalingServer = value; + } + }) + .setPropertyName("getExternalSignalingServer") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$externalSignalingServer_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$externalSignalingServer_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .buildString(); + + public static final QueryAttribute CURRENT = + new AttributeBuilder("current", boolean.class) + .setProperty(new BooleanProperty() { + @Override + public Boolean get(UserEntity entity) { + return entity.current; + } + + @Override + public void set(UserEntity entity, Boolean value) { + entity.current = value; + } + + @Override + public boolean getBoolean(UserEntity entity) { + return entity.current; + } + + @Override + public void setBoolean(UserEntity entity, boolean value) { + entity.current = value; + } + }) + .setPropertyName("getCurrent") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$current_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$current_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(false) + .setUnique(false) + .build(); + + public static final QueryAttribute SCHEDULED_FOR_DELETION = + new AttributeBuilder("scheduledForDeletion", boolean.class) + .setProperty(new BooleanProperty() { + @Override + public Boolean get(UserEntity entity) { + return entity.scheduledForDeletion; + } + + @Override + public void set(UserEntity entity, Boolean value) { + entity.scheduledForDeletion = value; + } + + @Override + public boolean getBoolean(UserEntity entity) { + return entity.scheduledForDeletion; + } + + @Override + public void setBoolean(UserEntity entity, boolean value) { + entity.scheduledForDeletion = value; + } + }) + .setPropertyName("getScheduledForDeletion") + .setPropertyState(new Property() { + @Override + public PropertyState get(UserEntity entity) { + return entity.$scheduledForDeletion_state; + } + + @Override + public void set(UserEntity entity, PropertyState value) { + entity.$scheduledForDeletion_state = value; + } + }) + .setGenerated(false) + .setReadOnly(false) + .setLazy(false) + .setNullable(false) + .setUnique(false) + .build(); + + public static final Type $TYPE = new TypeBuilder(UserEntity.class, "User") + .setBaseType(User.class) + .setCacheable(true) + .setImmutable(false) + .setReadOnly(false) + .setStateless(false) + .setView(false) + .setFactory(new Supplier() { + @Override + public UserEntity get() { + return new UserEntity(); + } + }) + .setProxyProvider(new Function>() { + @Override + public EntityProxy apply(UserEntity entity) { + return entity.$proxy; + } + }) + .addAttribute(PUSH_CONFIGURATION_STATE) + .addAttribute(CAPABILITIES) + .addAttribute(USER_ID) + .addAttribute(USERNAME) + .addAttribute(ID) + .addAttribute(CLIENT_CERTIFICATE) + .addAttribute(EXTERNAL_SIGNALING_SERVER) + .addAttribute(BASE_URL) + .addAttribute(TOKEN) + .addAttribute(DISPLAY_NAME) + .addAttribute(CURRENT) + .addAttribute(SCHEDULED_FOR_DELETION) + .build(); + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public UserEntity createFromParcel(Parcel source) { + return PARCELER.readFromParcel(source); + } + + @Override + public UserEntity[] newArray(int size) { + return new UserEntity[size]; + } + }; + + static final EntityParceler PARCELER = new EntityParceler($TYPE); + + private PropertyState $id_state; + + private PropertyState $userId_state; + + private PropertyState $username_state; + + private PropertyState $baseUrl_state; + + private PropertyState $token_state; + + private PropertyState $displayName_state; + + private PropertyState $pushConfigurationState_state; + + private PropertyState $capabilities_state; + + private PropertyState $clientCertificate_state; + + private PropertyState $externalSignalingServer_state; + + private PropertyState $current_state; + + private PropertyState $scheduledForDeletion_state; + + private long id; + + private String userId; + + private String username; + + private String baseUrl; + + private String token; + + private String displayName; + + private String pushConfigurationState; + + private String capabilities; + + private String clientCertificate; + + private String externalSignalingServer; + + private boolean current; + + private boolean scheduledForDeletion; + + private final transient EntityProxy $proxy = new EntityProxy(this, $TYPE); + + public UserEntity() { + } + + @Override + public long getId() { + return $proxy.get(ID); + } + + @Override + public String getUserId() { + return $proxy.get(USER_ID); + } + + public void setUserId(String userId) { + $proxy.set(USER_ID, userId); + } + + @Override + public String getUsername() { + return $proxy.get(USERNAME); + } + + public void setUsername(String username) { + $proxy.set(USERNAME, username); + } + + @Override + public String getBaseUrl() { + return $proxy.get(BASE_URL); + } + + public void setBaseUrl(String baseUrl) { + $proxy.set(BASE_URL, baseUrl); + } + + @Override + public String getToken() { + return $proxy.get(TOKEN); + } + + public void setToken(String token) { + $proxy.set(TOKEN, token); + } + + @Override + public String getDisplayName() { + return $proxy.get(DISPLAY_NAME); + } + + public void setDisplayName(String displayName) { + $proxy.set(DISPLAY_NAME, displayName); + } + + @Override + public String getPushConfigurationState() { + return $proxy.get(PUSH_CONFIGURATION_STATE); + } + + public void setPushConfigurationState(String pushConfigurationState) { + $proxy.set(PUSH_CONFIGURATION_STATE, pushConfigurationState); + } + + @Override + public String getCapabilities() { + return $proxy.get(CAPABILITIES); + } + + public void setCapabilities(String capabilities) { + $proxy.set(CAPABILITIES, capabilities); + } + + @Override + public String getClientCertificate() { + return $proxy.get(CLIENT_CERTIFICATE); + } + + public void setClientCertificate(String clientCertificate) { + $proxy.set(CLIENT_CERTIFICATE, clientCertificate); + } + + @Override + public String getExternalSignalingServer() { + return $proxy.get(EXTERNAL_SIGNALING_SERVER); + } + + public void setExternalSignalingServer(String externalSignalingServer) { + $proxy.set(EXTERNAL_SIGNALING_SERVER, externalSignalingServer); + } + + @Override + public boolean getCurrent() { + return $proxy.get(CURRENT); + } + + public void setCurrent(boolean current) { + $proxy.set(CURRENT, current); + } + + @Override + public boolean getScheduledForDeletion() { + return $proxy.get(SCHEDULED_FOR_DELETION); + } + + public void setScheduledForDeletion(boolean scheduledForDeletion) { + $proxy.set(SCHEDULED_FOR_DELETION, scheduledForDeletion); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof UserEntity && ((UserEntity)obj).$proxy.equals(this.$proxy); + } + + @Override + public int hashCode() { + return $proxy.hashCode(); + } + + @Override + public String toString() { + return $proxy.toString(); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + PARCELER.writeToParcel(this, dest); + } +} diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt new file mode 100644 index 000000000..66e9db07b --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.kt @@ -0,0 +1,249 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2018 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.nextcloud.talk.models.json.chat + +import android.text.TextUtils +import com.bluelinelabs.logansquare.annotation.JsonField +import com.bluelinelabs.logansquare.annotation.JsonIgnore +import com.bluelinelabs.logansquare.annotation.JsonObject +import com.nextcloud.data.models.json.converters.EnumSystemMessageTypeConverter +import com.nextcloud.talk.R +import com.nextcloud.talk.application.NextcloudTalkApplication +import com.nextcloud.talk.database.UserEntity +import com.nextcloud.talk.models.database.UserEntity +import com.nextcloud.talk.utils.ApiUtils +import com.nextcloud.talk.utils.TextMatchers +import com.stfalcon.chatkit.commons.models.IMessage +import com.stfalcon.chatkit.commons.models.IUser +import com.stfalcon.chatkit.commons.models.MessageContentType +import org.apache.commons.lang3.exception.ExceptionUtils.getMessage +import org.parceler.Parcel +import java.util.* + +@Parcel +@JsonObject +class ChatMessage : IMessage, MessageContentType, MessageContentType.Image { + @JsonIgnore + var isGrouped: Boolean = false + @JsonIgnore + var isOneToOneConversation: Boolean = false + @JsonIgnore + var activeUser: UserEntity? = null + @JsonIgnore + var selectedIndividualHashMap: Map? = null + @JsonIgnore + var isLinkPreviewAllowed: Boolean = false + internal var messageTypesToIgnore = Arrays.asList(MessageType.REGULAR_TEXT_MESSAGE, + MessageType.SYSTEM_MESSAGE, MessageType.SINGLE_LINK_VIDEO_MESSAGE, + MessageType.SINGLE_LINK_AUDIO_MESSAGE, MessageType.SINGLE_LINK_MESSAGE) + @JsonField(name = ["id"]) + var jsonMessageId: Int = 0 + @JsonField(name = ["token"]) + var token: String? = null + // guests or users + @JsonField(name = ["actorType"]) + var actorType: String? = null + @JsonField(name = ["actorId"]) + var actorId: String? = null + // send when crafting a message + @JsonField(name = ["actorDisplayName"]) + var actorDisplayName: String? = null + @JsonField(name = ["timestamp"]) + var timestamp: Long = 0 + // send when crafting a message, max 1000 lines + @JsonField(name = ["message"]) + var message: String? = null + @JsonField(name = ["messageParameters"]) + var messageParameters: HashMap>? = null + @JsonField(name = ["systemMessage"], typeConverter = EnumSystemMessageTypeConverter::class) + var systemMessageType: SystemMessageType? = null + + val imageUrl: String? + get() { + if (messageParameters != null && messageParameters!!.size > 0) { + for (key in messageParameters!!.keys) { + val individualHashMap = messageParameters!![key] + if (individualHashMap!!["type"] == "file") { + selectedIndividualHashMap = individualHashMap + return NextcloudTalkApplication.sharedApplication?.resources?.getDimensionPixelSize(R.dimen.maximum_file_preview_size)?.let{maxPreviewSize : Int -> + ApiUtils.getUrlForFilePreviewWithFileId(activeUser!!.getBaseUrl(), individualHashMap["id"], maxPreviewSize) + } + } + } + } + + return if (!messageTypesToIgnore.contains(messageType) && isLinkPreviewAllowed) { + message!!.trim({ it <= ' ' }) + } else null + + } + + val messageType: MessageType + get() { + if (!TextUtils.isEmpty(systemMessage)) { + return MessageType.SYSTEM_MESSAGE + } + + return if (hasFileAttachment()) { + MessageType.SINGLE_NC_ATTACHMENT_MESSAGE + } else TextMatchers.getMessageTypeFromString(text) + + } + + val id: String + get() = Integer.toString(jsonMessageId) + + val text: String + get() = ChatUtils.getParsedMessage(getMessage(), getMessageParameters()) + + val lastMessageDisplayText: String + get() { + if (messageType == MessageType.REGULAR_TEXT_MESSAGE || messageType == MessageType.SYSTEM_MESSAGE) { + return text + } else { + if (messageType == MessageType.SINGLE_LINK_GIPHY_MESSAGE + || messageType == MessageType.SINGLE_LINK_TENOR_MESSAGE + || messageType == MessageType.SINGLE_LINK_GIF_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_a_gif_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_a_gif), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } else if (messageType == MessageType.SINGLE_NC_ATTACHMENT_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_an_attachment_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_an_attachment), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } else if (messageType == MessageType.SINGLE_LINK_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_a_link_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_a_link), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } else if (messageType == MessageType.SINGLE_LINK_AUDIO_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_an_audio_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_an_audio), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } else if (messageType == MessageType.SINGLE_LINK_VIDEO_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_a_video_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_a_video), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } else if (messageType == MessageType.SINGLE_LINK_IMAGE_MESSAGE) { + return if (getActorId() == getActiveUser()!!.getUserId()) { + NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_sent_an_image_you) + } else { + String.format(NextcloudTalkApplication.Companion.getSharedApplication().getResources().getString(R.string.nc_sent_an_image), + if (!TextUtils.isEmpty(getActorDisplayName())) getActorDisplayName() else NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest)) + } + } + } + + return "" + } + + val user: IUser + get() = object : IUser() { + val id: String? + get() = actorId + + val name: String? + get() = actorDisplayName + + val avatar: String? + get() { + if (getActorType() == "users") { + return ApiUtils.getUrlForAvatarWithName(getActiveUser()!!.getBaseUrl(), actorId, R.dimen.avatar_size) + } else if (getActorType() == "guests") { + var apiId = NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest) + + if (!TextUtils.isEmpty(getActorDisplayName())) { + apiId = getActorDisplayName() + } + return ApiUtils.getUrlForAvatarWithNameForGuests(getActiveUser()!!.getBaseUrl(), apiId, R.dimen.avatar_size) + } else { + return null + } + } + } + + val createdAt: Date + get() = Date(timestamp * 1000L) + + val systemMessage: String + get() = EnumSystemMessageTypeConverter().convertToString(getSystemMessageType()) + + private fun hasFileAttachment(): Boolean { + if (messageParameters != null && messageParameters!!.size > 0) { + for (key in messageParameters!!.keys) { + val individualHashMap = messageParameters!![key] + if (individualHashMap!!["type"] == "file") { + return true + } + } + } + + return false + } + + enum class MessageType { + REGULAR_TEXT_MESSAGE, + SYSTEM_MESSAGE, + SINGLE_LINK_GIPHY_MESSAGE, + SINGLE_LINK_TENOR_MESSAGE, + SINGLE_LINK_GIF_MESSAGE, + SINGLE_LINK_MESSAGE, + SINGLE_LINK_VIDEO_MESSAGE, + SINGLE_LINK_IMAGE_MESSAGE, + SINGLE_LINK_AUDIO_MESSAGE, + SINGLE_NC_ATTACHMENT_MESSAGE + } + + enum class SystemMessageType { + DUMMY, + CONVERSATION_CREATED, + CONVERSATION_RENAMED, + CALL_STARTED, + CALL_JOINED, + CALL_LEFT, + CALL_ENDED, + GUESTS_ALLOWED, + GUESTS_DISALLOWED, + PASSWORD_SET, + PASSWORD_REMOVED, + USER_ADDED, + USER_REMOVED, + MODERATOR_PROMOTED, + MODERATOR_DEMOTED, + FILE_SHARED, + LOBBY_NONE, + LOBBY_NON_MODERATORS, + LOBBY_OPEN_TO_EVERYONE + } +} diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt new file mode 100644 index 000000000..dd5ccb3a3 --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.kt @@ -0,0 +1,34 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2018 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.nextcloud.talk.models.json.chat + +import com.bluelinelabs.logansquare.annotation.JsonField +import com.bluelinelabs.logansquare.annotation.JsonObject +import com.nextcloud.data.models.json.generic.GenericOCS + +import org.parceler.Parcel + + +@Parcel +@JsonObject +class ChatOCS : GenericOCS { + @JsonField(name = ["data"]) + var data: List? = null +} diff --git a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt similarity index 73% rename from app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java rename to presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt index 46bcd828d..756488e37 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java +++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOverall.kt @@ -17,15 +17,18 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.nextcloud.talk.models.json.notifications; -import com.bluelinelabs.logansquare.annotation.JsonField; -import com.bluelinelabs.logansquare.annotation.JsonObject; -import lombok.Data; +package com.nextcloud.talk.models.json.chat -@Data +import com.bluelinelabs.logansquare.annotation.JsonField +import com.bluelinelabs.logansquare.annotation.JsonObject + +import org.parceler.Parcel + + +@Parcel @JsonObject -public class NotificationOverall { - @JsonField(name = "ocs") - NotificationOCS ocs; +class ChatOverall { + @JsonField(name = ["ocs"]) + var ocs: ChatOCS? = null } diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.kt new file mode 100644 index 000000000..58920de29 --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.kt @@ -0,0 +1,43 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2018 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.talk.models.json.chat + +import java.util.* + +object ChatUtils { + + fun getParsedMessage(message: String, messageParameters: HashMap>?): String { + var message = message + if (messageParameters != null && messageParameters.size > 0) { + for (key in messageParameters.keys) { + val individualHashMap = messageParameters[key] + if (individualHashMap!!["type"] == "user" || individualHashMap["type"] == "guest" || individualHashMap["type"] == "call") { + message = message.replace("\\{$key\\}".toRegex(), "@" + messageParameters[key]!!["name"]!!) + } else if (individualHashMap["type"] == "file") { + message = message.replace("\\{$key\\}".toRegex(), messageParameters[key]!!["name"]) + } + } + } + + + return message + } +} diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt b/presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt new file mode 100644 index 000000000..10a7969ab --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt @@ -0,0 +1,47 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.talk.mvp + +import android.content.Context +import android.view.View +import androidx.annotation.LayoutRes +import autodagger.AutoInjector +import com.nextcloud.talk.application.NextcloudTalkApplication +import com.nextcloud.talk.controllers.base.BaseController + +@AutoInjector(NextcloudTalkApplication::class) +abstract class BaseView : BaseController() { + + override fun onDetach(view: View) { + super.onDetach(view) + getPresenter().stop() + } + + override fun onDestroy() { + getPresenter().destroy() + super.onDestroy() + } + + @LayoutRes + protected abstract fun getLayoutId(): Int + + protected abstract fun getPresenter(): MvpPresenter +} \ No newline at end of file diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt b/presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt new file mode 100644 index 000000000..71f9e595e --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt @@ -0,0 +1,42 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.talk.mvp + +import io.reactivex.disposables.CompositeDisposable + +abstract class BasePresenter : MvpPresenter { + + protected val disposables: CompositeDisposable = CompositeDisposable() + protected var view: V? = null + private set + + fun start(view: V) { + this.view = view + } + + override fun stop() { + this.view = null + } + + override fun destroy() { + disposables.clear() + } +} \ No newline at end of file diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt b/presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt new file mode 100644 index 000000000..45c0c29fb --- /dev/null +++ b/presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt @@ -0,0 +1,26 @@ +/* + * Nextcloud Talk application + * + * @author Mario Danic + * Copyright (C) 2017-2019 Mario Danic + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.nextcloud.talk.mvp + +interface MvpPresenter { + fun stop() + fun destroy() +} \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java b/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java rename to presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java index 22d18e705..d26a19baa 100644 --- a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java +++ b/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java @@ -29,8 +29,8 @@ import com.nextcloud.talk.adapters.items.MentionAutocompleteItem; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.mention.Mention; -import com.nextcloud.talk.models.json.mention.MentionOverall; +import com.nextcloud.data.models.json.mention.Mention; +import com.nextcloud.data.models.json.mention.MentionOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.database.user.UserUtils; import com.otaliastudios.autocomplete.RecyclerViewPresenter; diff --git a/app/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt b/presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt rename to presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt similarity index 99% rename from app/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt index 83e12c9df..e2173ed2a 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt +++ b/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt @@ -30,7 +30,7 @@ import android.content.pm.PackageManager import android.util.Log import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication -import com.nextcloud.talk.models.ImportAccount +import com.nextcloud.data.models.ImportAccount import com.nextcloud.talk.models.database.UserEntity import java.util.* diff --git a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java index c83b53b1e..ec967b016 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java +++ b/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java @@ -25,7 +25,7 @@ import androidx.annotation.DimenRes; import com.nextcloud.talk.BuildConfig; import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; -import com.nextcloud.talk.models.RetrofitBucket; +import com.nextcloud.data.models.RetrofitBucket; import okhttp3.Credentials; import javax.annotation.Nullable; diff --git a/app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt b/presentation/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/DateUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/DateUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/DoNotDisturbUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/DoNotDisturbUtils.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/DoNotDisturbUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/DoNotDisturbUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/DrawableUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/DrawableUtils.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/DrawableUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/DrawableUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java b/presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java rename to presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java b/presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java rename to presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/KeyboardUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/KeyboardUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/KeyboardUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/KeyboardUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java b/presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java rename to presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/MagicMap.kt b/presentation/src/main/java/com/nextcloud/talk/utils/MagicMap.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/MagicMap.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/MagicMap.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java b/presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java rename to presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/utils/PushUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java index 65a72f8d9..194291900 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java +++ b/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java @@ -30,10 +30,10 @@ import com.nextcloud.talk.R; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.EventStatus; -import com.nextcloud.talk.models.SignatureVerification; +import com.nextcloud.data.models.SignatureVerification; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.push.PushConfigurationState; -import com.nextcloud.talk.models.json.push.PushRegistrationOverall; +import com.nextcloud.data.models.json.push.PushConfigurationState; +import com.nextcloud.data.models.json.push.PushRegistrationOverall; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import io.reactivex.Observer; diff --git a/app/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/utils/ShareUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java index 815f26cd3..dfe8a680b 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.java +++ b/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java @@ -33,7 +33,7 @@ import androidx.annotation.Nullable; import com.kennyc.bottomsheet.adapters.AppAdapter; import com.nextcloud.talk.R; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.database.user.UserUtils; import java.util.ArrayList; diff --git a/app/src/main/java/com/nextcloud/talk/utils/TextMatchers.java b/presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/TextMatchers.java rename to presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/animations/PulseAnimation.java b/presentation/src/main/java/com/nextcloud/talk/utils/animations/PulseAnimation.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/animations/PulseAnimation.java rename to presentation/src/main/java/com/nextcloud/talk/utils/animations/PulseAnimation.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java b/presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java rename to presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/animations/ViewHidingBehaviourAnimation.java b/presentation/src/main/java/com/nextcloud/talk/utils/animations/ViewHidingBehaviourAnimation.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/animations/ViewHidingBehaviourAnimation.java rename to presentation/src/main/java/com/nextcloud/talk/utils/animations/ViewHidingBehaviourAnimation.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt b/presentation/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java rename to presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java rename to presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java rename to presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java b/presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java rename to presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java rename to presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java rename to presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageFactory.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageFactory.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageFactory.java rename to presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageFactory.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java similarity index 99% rename from app/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java rename to presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java index 61f127a95..d7a64f0c3 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java +++ b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java @@ -27,7 +27,7 @@ import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.ArbitraryStorageEntity; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.generic.GenericOverall; +import com.nextcloud.data.models.json.generic.GenericOverall; import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageUtils; import com.yarolegovich.mp.io.StorageModule; diff --git a/app/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideCurrentRoomHolder.java b/presentation/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideCurrentRoomHolder.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideCurrentRoomHolder.java rename to presentation/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideCurrentRoomHolder.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideMessageHolder.java b/presentation/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideMessageHolder.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideMessageHolder.java rename to presentation/src/main/java/com/nextcloud/talk/utils/singletons/ApplicationWideMessageHolder.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/singletons/AvatarStatusCodeHolder.java b/presentation/src/main/java/com/nextcloud/talk/utils/singletons/AvatarStatusCodeHolder.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/singletons/AvatarStatusCodeHolder.java rename to presentation/src/main/java/com/nextcloud/talk/utils/singletons/AvatarStatusCodeHolder.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java rename to presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java rename to presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt rename to presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/text/Spans.java b/presentation/src/main/java/com/nextcloud/talk/utils/text/Spans.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/text/Spans.java rename to presentation/src/main/java/com/nextcloud/talk/utils/text/Spans.java diff --git a/app/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java b/presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java rename to presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java index a63e92695..c8ec7fce9 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java +++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java @@ -33,9 +33,9 @@ import com.nextcloud.talk.events.MediaStreamEvent; import com.nextcloud.talk.events.PeerConnectionEvent; import com.nextcloud.talk.events.SessionDescriptionSendEvent; import com.nextcloud.talk.events.WebSocketCommunicationEvent; -import com.nextcloud.talk.models.json.signaling.DataChannelMessage; -import com.nextcloud.talk.models.json.signaling.DataChannelMessageNick; -import com.nextcloud.talk.models.json.signaling.NCIceCandidate; +import com.nextcloud.data.models.json.signaling.DataChannelMessage; +import com.nextcloud.data.models.json.signaling.DataChannelMessageNick; +import com.nextcloud.data.models.json.signaling.NCIceCandidate; import com.nextcloud.talk.utils.LoggingUtils; import org.greenrobot.eventbus.EventBus; import org.webrtc.*; diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicProximitySensor.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicProximitySensor.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicProximitySensor.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicProximitySensor.java diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java similarity index 100% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java index 7c2b83a15..d3257cea5 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java +++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java @@ -30,10 +30,10 @@ import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.events.NetworkEvent; import com.nextcloud.talk.events.WebSocketCommunicationEvent; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.participants.Participant; -import com.nextcloud.talk.models.json.signaling.NCMessageWrapper; -import com.nextcloud.talk.models.json.signaling.NCSignalingMessage; -import com.nextcloud.talk.models.json.websocket.*; +import com.nextcloud.data.models.json.participants.Participant; +import com.nextcloud.data.models.json.signaling.NCMessageWrapper; +import com.nextcloud.data.models.json.signaling.NCSignalingMessage; +import com.nextcloud.data.models.json.websocket.*; import com.nextcloud.talk.utils.LoggingUtils; import com.nextcloud.talk.utils.MagicMap; import com.nextcloud.talk.utils.bundle.BundleKeys; diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java similarity index 98% rename from app/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java rename to presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java index 40f8d0ee7..cb5358b47 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java +++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java @@ -23,8 +23,8 @@ package com.nextcloud.talk.webrtc; import autodagger.AutoInjector; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.signaling.NCMessageWrapper; -import com.nextcloud.talk.models.json.websocket.*; +import com.nextcloud.data.models.json.signaling.NCMessageWrapper; +import com.nextcloud.data.models.json.websocket.*; import com.nextcloud.talk.utils.ApiUtils; import okhttp3.OkHttpClient; diff --git a/app/src/main/res/drawable/accent_circle.xml b/presentation/src/main/res/drawable/accent_circle.xml similarity index 100% rename from app/src/main/res/drawable/accent_circle.xml rename to presentation/src/main/res/drawable/accent_circle.xml diff --git a/app/src/main/res/drawable/asl_password_visibility.xml b/presentation/src/main/res/drawable/asl_password_visibility.xml similarity index 100% rename from app/src/main/res/drawable/asl_password_visibility.xml rename to presentation/src/main/res/drawable/asl_password_visibility.xml diff --git a/app/src/main/res/drawable/avd_hide_password.xml b/presentation/src/main/res/drawable/avd_hide_password.xml similarity index 100% rename from app/src/main/res/drawable/avd_hide_password.xml rename to presentation/src/main/res/drawable/avd_hide_password.xml diff --git a/app/src/main/res/drawable/avd_show_password.xml b/presentation/src/main/res/drawable/avd_show_password.xml similarity index 100% rename from app/src/main/res/drawable/avd_show_password.xml rename to presentation/src/main/res/drawable/avd_show_password.xml diff --git a/app/src/main/res/drawable/bubble_circle_unread.xml b/presentation/src/main/res/drawable/bubble_circle_unread.xml similarity index 100% rename from app/src/main/res/drawable/bubble_circle_unread.xml rename to presentation/src/main/res/drawable/bubble_circle_unread.xml diff --git a/app/src/main/res/drawable/bubble_circle_unread_mention.xml b/presentation/src/main/res/drawable/bubble_circle_unread_mention.xml similarity index 100% rename from app/src/main/res/drawable/bubble_circle_unread_mention.xml rename to presentation/src/main/res/drawable/bubble_circle_unread_mention.xml diff --git a/app/src/main/res/drawable/ic_add_grey600_24px.xml b/presentation/src/main/res/drawable/ic_add_grey600_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_add_grey600_24px.xml rename to presentation/src/main/res/drawable/ic_add_grey600_24px.xml diff --git a/app/src/main/res/drawable/ic_add_white_24px.xml b/presentation/src/main/res/drawable/ic_add_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_add_white_24px.xml rename to presentation/src/main/res/drawable/ic_add_white_24px.xml diff --git a/app/src/main/res/drawable/ic_arrow_back_black_24dp.xml b/presentation/src/main/res/drawable/ic_arrow_back_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_arrow_back_black_24dp.xml rename to presentation/src/main/res/drawable/ic_arrow_back_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_arrow_forward_white_24px.xml b/presentation/src/main/res/drawable/ic_arrow_forward_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_arrow_forward_white_24px.xml rename to presentation/src/main/res/drawable/ic_arrow_forward_white_24px.xml diff --git a/app/src/main/res/drawable/ic_av_timer_timer_24dp.xml b/presentation/src/main/res/drawable/ic_av_timer_timer_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_av_timer_timer_24dp.xml rename to presentation/src/main/res/drawable/ic_av_timer_timer_24dp.xml diff --git a/app/src/main/res/drawable/ic_baseline_arrow_downward_24px.xml b/presentation/src/main/res/drawable/ic_baseline_arrow_downward_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_baseline_arrow_downward_24px.xml rename to presentation/src/main/res/drawable/ic_baseline_arrow_downward_24px.xml diff --git a/app/src/main/res/drawable/ic_call_black_24dp.xml b/presentation/src/main/res/drawable/ic_call_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_call_black_24dp.xml rename to presentation/src/main/res/drawable/ic_call_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_call_end_white_24px.xml b/presentation/src/main/res/drawable/ic_call_end_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_call_end_white_24px.xml rename to presentation/src/main/res/drawable/ic_call_end_white_24px.xml diff --git a/app/src/main/res/drawable/ic_call_grey_600_24dp.xml b/presentation/src/main/res/drawable/ic_call_grey_600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_call_grey_600_24dp.xml rename to presentation/src/main/res/drawable/ic_call_grey_600_24dp.xml diff --git a/app/src/main/res/drawable/ic_call_white_24dp.xml b/presentation/src/main/res/drawable/ic_call_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_call_white_24dp.xml rename to presentation/src/main/res/drawable/ic_call_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_cancel_black_24dp.xml b/presentation/src/main/res/drawable/ic_cancel_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_cancel_black_24dp.xml rename to presentation/src/main/res/drawable/ic_cancel_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_chat_black_24dp.xml b/presentation/src/main/res/drawable/ic_chat_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_chat_black_24dp.xml rename to presentation/src/main/res/drawable/ic_chat_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_check_black_24dp.xml b/presentation/src/main/res/drawable/ic_check_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_check_black_24dp.xml rename to presentation/src/main/res/drawable/ic_check_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_check_circle_black_24dp.xml b/presentation/src/main/res/drawable/ic_check_circle_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_check_circle_black_24dp.xml rename to presentation/src/main/res/drawable/ic_check_circle_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_close_grey600_24dp.xml b/presentation/src/main/res/drawable/ic_close_grey600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_close_grey600_24dp.xml rename to presentation/src/main/res/drawable/ic_close_grey600_24dp.xml diff --git a/app/src/main/res/drawable/ic_delete_black_24dp.xml b/presentation/src/main/res/drawable/ic_delete_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_delete_black_24dp.xml rename to presentation/src/main/res/drawable/ic_delete_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_delete_grey600_24dp.xml b/presentation/src/main/res/drawable/ic_delete_grey600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_delete_grey600_24dp.xml rename to presentation/src/main/res/drawable/ic_delete_grey600_24dp.xml diff --git a/app/src/main/res/drawable/ic_exit_to_app_black_24dp.xml b/presentation/src/main/res/drawable/ic_exit_to_app_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_exit_to_app_black_24dp.xml rename to presentation/src/main/res/drawable/ic_exit_to_app_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_file_icon.xml b/presentation/src/main/res/drawable/ic_file_icon.xml similarity index 100% rename from app/src/main/res/drawable/ic_file_icon.xml rename to presentation/src/main/res/drawable/ic_file_icon.xml diff --git a/app/src/main/res/drawable/ic_file_icon_black_24h.xml b/presentation/src/main/res/drawable/ic_file_icon_black_24h.xml similarity index 100% rename from app/src/main/res/drawable/ic_file_icon_black_24h.xml rename to presentation/src/main/res/drawable/ic_file_icon_black_24h.xml diff --git a/app/src/main/res/drawable/ic_file_password_request.xml b/presentation/src/main/res/drawable/ic_file_password_request.xml similarity index 100% rename from app/src/main/res/drawable/ic_file_password_request.xml rename to presentation/src/main/res/drawable/ic_file_password_request.xml diff --git a/app/src/main/res/drawable/ic_group_grey600_24px.xml b/presentation/src/main/res/drawable/ic_group_grey600_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_group_grey600_24px.xml rename to presentation/src/main/res/drawable/ic_group_grey600_24px.xml diff --git a/app/src/main/res/drawable/ic_info_white_24dp.xml b/presentation/src/main/res/drawable/ic_info_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_info_white_24dp.xml rename to presentation/src/main/res/drawable/ic_info_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_insert_emoticon_black_24dp.xml b/presentation/src/main/res/drawable/ic_insert_emoticon_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_insert_emoticon_black_24dp.xml rename to presentation/src/main/res/drawable/ic_insert_emoticon_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/presentation/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_background.xml rename to presentation/src/main/res/drawable/ic_launcher_background.xml diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/presentation/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_foreground.xml rename to presentation/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/main/res/drawable/ic_link_black_24px.xml b/presentation/src/main/res/drawable/ic_link_black_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_link_black_24px.xml rename to presentation/src/main/res/drawable/ic_link_black_24px.xml diff --git a/app/src/main/res/drawable/ic_link_grey600_24px.xml b/presentation/src/main/res/drawable/ic_link_grey600_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_link_grey600_24px.xml rename to presentation/src/main/res/drawable/ic_link_grey600_24px.xml diff --git a/app/src/main/res/drawable/ic_link_white_24px.xml b/presentation/src/main/res/drawable/ic_link_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_link_white_24px.xml rename to presentation/src/main/res/drawable/ic_link_white_24px.xml diff --git a/app/src/main/res/drawable/ic_lock_grey600_24px.xml b/presentation/src/main/res/drawable/ic_lock_grey600_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_lock_grey600_24px.xml rename to presentation/src/main/res/drawable/ic_lock_grey600_24px.xml diff --git a/app/src/main/res/drawable/ic_lock_open_grey600_24dp.xml b/presentation/src/main/res/drawable/ic_lock_open_grey600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_lock_open_grey600_24dp.xml rename to presentation/src/main/res/drawable/ic_lock_open_grey600_24dp.xml diff --git a/app/src/main/res/drawable/ic_lock_plus_grey600_24dp.xml b/presentation/src/main/res/drawable/ic_lock_plus_grey600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_lock_plus_grey600_24dp.xml rename to presentation/src/main/res/drawable/ic_lock_plus_grey600_24dp.xml diff --git a/app/src/main/res/drawable/ic_lock_white_24px.xml b/presentation/src/main/res/drawable/ic_lock_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_lock_white_24px.xml rename to presentation/src/main/res/drawable/ic_lock_white_24px.xml diff --git a/app/src/main/res/drawable/ic_logo.xml b/presentation/src/main/res/drawable/ic_logo.xml similarity index 100% rename from app/src/main/res/drawable/ic_logo.xml rename to presentation/src/main/res/drawable/ic_logo.xml diff --git a/app/src/main/res/drawable/ic_mic_grey_600_24dp.xml b/presentation/src/main/res/drawable/ic_mic_grey_600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_mic_grey_600_24dp.xml rename to presentation/src/main/res/drawable/ic_mic_grey_600_24dp.xml diff --git a/app/src/main/res/drawable/ic_mic_off_white_24px.xml b/presentation/src/main/res/drawable/ic_mic_off_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_mic_off_white_24px.xml rename to presentation/src/main/res/drawable/ic_mic_off_white_24px.xml diff --git a/app/src/main/res/drawable/ic_mic_white_24px.xml b/presentation/src/main/res/drawable/ic_mic_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_mic_white_24px.xml rename to presentation/src/main/res/drawable/ic_mic_white_24px.xml diff --git a/app/src/main/res/drawable/ic_mimetype_application.xml b/presentation/src/main/res/drawable/ic_mimetype_application.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_application.xml rename to presentation/src/main/res/drawable/ic_mimetype_application.xml diff --git a/app/src/main/res/drawable/ic_mimetype_application_pdf.xml b/presentation/src/main/res/drawable/ic_mimetype_application_pdf.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_application_pdf.xml rename to presentation/src/main/res/drawable/ic_mimetype_application_pdf.xml diff --git a/app/src/main/res/drawable/ic_mimetype_audio.xml b/presentation/src/main/res/drawable/ic_mimetype_audio.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_audio.xml rename to presentation/src/main/res/drawable/ic_mimetype_audio.xml diff --git a/app/src/main/res/drawable/ic_mimetype_file.xml b/presentation/src/main/res/drawable/ic_mimetype_file.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_file.xml rename to presentation/src/main/res/drawable/ic_mimetype_file.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder.xml b/presentation/src/main/res/drawable/ic_mimetype_folder.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_drag_accept.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_drag_accept.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_drag_accept.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_drag_accept.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_encrypted.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_encrypted.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_encrypted.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_encrypted.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_external.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_external.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_external.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_external.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_public.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_public.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_public.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_public.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_shared.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_shared.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_shared.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_shared.xml diff --git a/app/src/main/res/drawable/ic_mimetype_folder_starred.xml b/presentation/src/main/res/drawable/ic_mimetype_folder_starred.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_folder_starred.xml rename to presentation/src/main/res/drawable/ic_mimetype_folder_starred.xml diff --git a/app/src/main/res/drawable/ic_mimetype_image.xml b/presentation/src/main/res/drawable/ic_mimetype_image.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_image.xml rename to presentation/src/main/res/drawable/ic_mimetype_image.xml diff --git a/app/src/main/res/drawable/ic_mimetype_link.xml b/presentation/src/main/res/drawable/ic_mimetype_link.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_link.xml rename to presentation/src/main/res/drawable/ic_mimetype_link.xml diff --git a/app/src/main/res/drawable/ic_mimetype_location.xml b/presentation/src/main/res/drawable/ic_mimetype_location.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_location.xml rename to presentation/src/main/res/drawable/ic_mimetype_location.xml diff --git a/app/src/main/res/drawable/ic_mimetype_package_x_generic.xml b/presentation/src/main/res/drawable/ic_mimetype_package_x_generic.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_package_x_generic.xml rename to presentation/src/main/res/drawable/ic_mimetype_package_x_generic.xml diff --git a/app/src/main/res/drawable/ic_mimetype_text.xml b/presentation/src/main/res/drawable/ic_mimetype_text.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_text.xml rename to presentation/src/main/res/drawable/ic_mimetype_text.xml diff --git a/app/src/main/res/drawable/ic_mimetype_text_calendar.xml b/presentation/src/main/res/drawable/ic_mimetype_text_calendar.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_text_calendar.xml rename to presentation/src/main/res/drawable/ic_mimetype_text_calendar.xml diff --git a/app/src/main/res/drawable/ic_mimetype_text_code.xml b/presentation/src/main/res/drawable/ic_mimetype_text_code.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_text_code.xml rename to presentation/src/main/res/drawable/ic_mimetype_text_code.xml diff --git a/app/src/main/res/drawable/ic_mimetype_text_vcard.xml b/presentation/src/main/res/drawable/ic_mimetype_text_vcard.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_text_vcard.xml rename to presentation/src/main/res/drawable/ic_mimetype_text_vcard.xml diff --git a/app/src/main/res/drawable/ic_mimetype_video.xml b/presentation/src/main/res/drawable/ic_mimetype_video.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_video.xml rename to presentation/src/main/res/drawable/ic_mimetype_video.xml diff --git a/app/src/main/res/drawable/ic_mimetype_x_office_document.xml b/presentation/src/main/res/drawable/ic_mimetype_x_office_document.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_x_office_document.xml rename to presentation/src/main/res/drawable/ic_mimetype_x_office_document.xml diff --git a/app/src/main/res/drawable/ic_mimetype_x_office_presentation.xml b/presentation/src/main/res/drawable/ic_mimetype_x_office_presentation.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_x_office_presentation.xml rename to presentation/src/main/res/drawable/ic_mimetype_x_office_presentation.xml diff --git a/app/src/main/res/drawable/ic_mimetype_x_office_spreadsheet.xml b/presentation/src/main/res/drawable/ic_mimetype_x_office_spreadsheet.xml similarity index 100% rename from app/src/main/res/drawable/ic_mimetype_x_office_spreadsheet.xml rename to presentation/src/main/res/drawable/ic_mimetype_x_office_spreadsheet.xml diff --git a/app/src/main/res/drawable/ic_more_horiz_black_24dp.xml b/presentation/src/main/res/drawable/ic_more_horiz_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_more_horiz_black_24dp.xml rename to presentation/src/main/res/drawable/ic_more_horiz_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_password_masked.xml b/presentation/src/main/res/drawable/ic_password_masked.xml similarity index 100% rename from app/src/main/res/drawable/ic_password_masked.xml rename to presentation/src/main/res/drawable/ic_password_masked.xml diff --git a/app/src/main/res/drawable/ic_password_visible.xml b/presentation/src/main/res/drawable/ic_password_visible.xml similarity index 100% rename from app/src/main/res/drawable/ic_password_visible.xml rename to presentation/src/main/res/drawable/ic_password_visible.xml diff --git a/app/src/main/res/drawable/ic_pencil_grey600_24dp.xml b/presentation/src/main/res/drawable/ic_pencil_grey600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_pencil_grey600_24dp.xml rename to presentation/src/main/res/drawable/ic_pencil_grey600_24dp.xml diff --git a/app/src/main/res/drawable/ic_people_group_black_24px.xml b/presentation/src/main/res/drawable/ic_people_group_black_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_people_group_black_24px.xml rename to presentation/src/main/res/drawable/ic_people_group_black_24px.xml diff --git a/app/src/main/res/drawable/ic_people_group_white_24px.xml b/presentation/src/main/res/drawable/ic_people_group_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_people_group_white_24px.xml rename to presentation/src/main/res/drawable/ic_people_group_white_24px.xml diff --git a/app/src/main/res/drawable/ic_play_circle_outline_white_24dp.xml b/presentation/src/main/res/drawable/ic_play_circle_outline_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_play_circle_outline_white_24dp.xml rename to presentation/src/main/res/drawable/ic_play_circle_outline_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_public_black_24px.xml b/presentation/src/main/res/drawable/ic_public_black_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_public_black_24px.xml rename to presentation/src/main/res/drawable/ic_public_black_24px.xml diff --git a/app/src/main/res/drawable/ic_refresh_black_24dp.xml b/presentation/src/main/res/drawable/ic_refresh_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_refresh_black_24dp.xml rename to presentation/src/main/res/drawable/ic_refresh_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_room_service_black_24dp.xml b/presentation/src/main/res/drawable/ic_room_service_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_room_service_black_24dp.xml rename to presentation/src/main/res/drawable/ic_room_service_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_search_white_24dp.xml b/presentation/src/main/res/drawable/ic_search_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_search_white_24dp.xml rename to presentation/src/main/res/drawable/ic_search_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_security_white_24dp.xml b/presentation/src/main/res/drawable/ic_security_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_security_white_24dp.xml rename to presentation/src/main/res/drawable/ic_security_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_settings_white_24dp.xml b/presentation/src/main/res/drawable/ic_settings_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_settings_white_24dp.xml rename to presentation/src/main/res/drawable/ic_settings_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_signal_wifi_off_white_24dp.xml b/presentation/src/main/res/drawable/ic_signal_wifi_off_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_signal_wifi_off_white_24dp.xml rename to presentation/src/main/res/drawable/ic_signal_wifi_off_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_star_black_24dp.xml b/presentation/src/main/res/drawable/ic_star_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_star_black_24dp.xml rename to presentation/src/main/res/drawable/ic_star_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_star_border_black_24dp.xml b/presentation/src/main/res/drawable/ic_star_border_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_star_border_black_24dp.xml rename to presentation/src/main/res/drawable/ic_star_border_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_stop_white_24dp.xml b/presentation/src/main/res/drawable/ic_stop_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_stop_white_24dp.xml rename to presentation/src/main/res/drawable/ic_stop_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_switch_video_white_24px.xml b/presentation/src/main/res/drawable/ic_switch_video_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_switch_video_white_24px.xml rename to presentation/src/main/res/drawable/ic_switch_video_white_24px.xml diff --git a/app/src/main/res/drawable/ic_timer_black_24dp.xml b/presentation/src/main/res/drawable/ic_timer_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_timer_black_24dp.xml rename to presentation/src/main/res/drawable/ic_timer_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_videocam_grey_600_24dp.xml b/presentation/src/main/res/drawable/ic_videocam_grey_600_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_videocam_grey_600_24dp.xml rename to presentation/src/main/res/drawable/ic_videocam_grey_600_24dp.xml diff --git a/app/src/main/res/drawable/ic_videocam_off_white_24px.xml b/presentation/src/main/res/drawable/ic_videocam_off_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_videocam_off_white_24px.xml rename to presentation/src/main/res/drawable/ic_videocam_off_white_24px.xml diff --git a/app/src/main/res/drawable/ic_videocam_white_24px.xml b/presentation/src/main/res/drawable/ic_videocam_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_videocam_white_24px.xml rename to presentation/src/main/res/drawable/ic_videocam_white_24px.xml diff --git a/app/src/main/res/drawable/ic_volume_mute_white_24dp.xml b/presentation/src/main/res/drawable/ic_volume_mute_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_volume_mute_white_24dp.xml rename to presentation/src/main/res/drawable/ic_volume_mute_white_24dp.xml diff --git a/app/src/main/res/drawable/ic_volume_up_white_24dp.xml b/presentation/src/main/res/drawable/ic_volume_up_white_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_volume_up_white_24dp.xml rename to presentation/src/main/res/drawable/ic_volume_up_white_24dp.xml diff --git a/app/src/main/res/drawable/incoming_gradient.xml b/presentation/src/main/res/drawable/incoming_gradient.xml similarity index 100% rename from app/src/main/res/drawable/incoming_gradient.xml rename to presentation/src/main/res/drawable/incoming_gradient.xml diff --git a/app/src/main/res/drawable/mention_chip.xml b/presentation/src/main/res/drawable/mention_chip.xml similarity index 100% rename from app/src/main/res/drawable/mention_chip.xml rename to presentation/src/main/res/drawable/mention_chip.xml diff --git a/app/src/main/res/drawable/shape_call_bubble.xml b/presentation/src/main/res/drawable/shape_call_bubble.xml similarity index 100% rename from app/src/main/res/drawable/shape_call_bubble.xml rename to presentation/src/main/res/drawable/shape_call_bubble.xml diff --git a/app/src/main/res/drawable/shape_favorite_bubble.xml b/presentation/src/main/res/drawable/shape_favorite_bubble.xml similarity index 100% rename from app/src/main/res/drawable/shape_favorite_bubble.xml rename to presentation/src/main/res/drawable/shape_favorite_bubble.xml diff --git a/app/src/main/res/drawable/shape_grouped_incoming_message.xml b/presentation/src/main/res/drawable/shape_grouped_incoming_message.xml similarity index 100% rename from app/src/main/res/drawable/shape_grouped_incoming_message.xml rename to presentation/src/main/res/drawable/shape_grouped_incoming_message.xml diff --git a/app/src/main/res/drawable/shape_grouped_outcoming_message.xml b/presentation/src/main/res/drawable/shape_grouped_outcoming_message.xml similarity index 100% rename from app/src/main/res/drawable/shape_grouped_outcoming_message.xml rename to presentation/src/main/res/drawable/shape_grouped_outcoming_message.xml diff --git a/app/src/main/res/drawable/shape_incoming_message.xml b/presentation/src/main/res/drawable/shape_incoming_message.xml similarity index 100% rename from app/src/main/res/drawable/shape_incoming_message.xml rename to presentation/src/main/res/drawable/shape_incoming_message.xml diff --git a/app/src/main/res/drawable/shape_lock_bubble.xml b/presentation/src/main/res/drawable/shape_lock_bubble.xml similarity index 100% rename from app/src/main/res/drawable/shape_lock_bubble.xml rename to presentation/src/main/res/drawable/shape_lock_bubble.xml diff --git a/app/src/main/res/drawable/shape_outcoming_message.xml b/presentation/src/main/res/drawable/shape_outcoming_message.xml similarity index 100% rename from app/src/main/res/drawable/shape_outcoming_message.xml rename to presentation/src/main/res/drawable/shape_outcoming_message.xml diff --git a/app/src/main/res/drawable/shape_video_bubble.xml b/presentation/src/main/res/drawable/shape_video_bubble.xml similarity index 100% rename from app/src/main/res/drawable/shape_video_bubble.xml rename to presentation/src/main/res/drawable/shape_video_bubble.xml diff --git a/app/src/main/res/drawable/shape_voice_bubble.xml b/presentation/src/main/res/drawable/shape_voice_bubble.xml similarity index 100% rename from app/src/main/res/drawable/shape_voice_bubble.xml rename to presentation/src/main/res/drawable/shape_voice_bubble.xml diff --git a/app/src/main/res/layout/activity_magic_call.xml b/presentation/src/main/res/layout/activity_magic_call.xml similarity index 100% rename from app/src/main/res/layout/activity_magic_call.xml rename to presentation/src/main/res/layout/activity_magic_call.xml diff --git a/app/src/main/res/layout/activity_main.xml b/presentation/src/main/res/layout/activity_main.xml similarity index 100% rename from app/src/main/res/layout/activity_main.xml rename to presentation/src/main/res/layout/activity_main.xml diff --git a/app/src/main/res/layout/bottom_sheet.xml b/presentation/src/main/res/layout/bottom_sheet.xml similarity index 100% rename from app/src/main/res/layout/bottom_sheet.xml rename to presentation/src/main/res/layout/bottom_sheet.xml diff --git a/app/src/main/res/layout/call_item.xml b/presentation/src/main/res/layout/call_item.xml similarity index 100% rename from app/src/main/res/layout/call_item.xml rename to presentation/src/main/res/layout/call_item.xml diff --git a/app/src/main/res/layout/call_states.xml b/presentation/src/main/res/layout/call_states.xml similarity index 100% rename from app/src/main/res/layout/call_states.xml rename to presentation/src/main/res/layout/call_states.xml diff --git a/app/src/main/res/layout/category_with_right_action.xml b/presentation/src/main/res/layout/category_with_right_action.xml similarity index 100% rename from app/src/main/res/layout/category_with_right_action.xml rename to presentation/src/main/res/layout/category_with_right_action.xml diff --git a/app/src/main/res/layout/controller_account_verification.xml b/presentation/src/main/res/layout/controller_account_verification.xml similarity index 100% rename from app/src/main/res/layout/controller_account_verification.xml rename to presentation/src/main/res/layout/controller_account_verification.xml diff --git a/app/src/main/res/layout/controller_browser.xml b/presentation/src/main/res/layout/controller_browser.xml similarity index 100% rename from app/src/main/res/layout/controller_browser.xml rename to presentation/src/main/res/layout/controller_browser.xml diff --git a/app/src/main/res/layout/controller_call.xml b/presentation/src/main/res/layout/controller_call.xml similarity index 100% rename from app/src/main/res/layout/controller_call.xml rename to presentation/src/main/res/layout/controller_call.xml diff --git a/app/src/main/res/layout/controller_call_menu.xml b/presentation/src/main/res/layout/controller_call_menu.xml similarity index 100% rename from app/src/main/res/layout/controller_call_menu.xml rename to presentation/src/main/res/layout/controller_call_menu.xml diff --git a/app/src/main/res/layout/controller_call_notification.xml b/presentation/src/main/res/layout/controller_call_notification.xml similarity index 100% rename from app/src/main/res/layout/controller_call_notification.xml rename to presentation/src/main/res/layout/controller_call_notification.xml diff --git a/app/src/main/res/layout/controller_chat.xml b/presentation/src/main/res/layout/controller_chat.xml similarity index 100% rename from app/src/main/res/layout/controller_chat.xml rename to presentation/src/main/res/layout/controller_chat.xml diff --git a/app/src/main/res/layout/controller_contacts_rv.xml b/presentation/src/main/res/layout/controller_contacts_rv.xml similarity index 100% rename from app/src/main/res/layout/controller_contacts_rv.xml rename to presentation/src/main/res/layout/controller_contacts_rv.xml diff --git a/app/src/main/res/layout/controller_conversation_info.xml b/presentation/src/main/res/layout/controller_conversation_info.xml similarity index 100% rename from app/src/main/res/layout/controller_conversation_info.xml rename to presentation/src/main/res/layout/controller_conversation_info.xml diff --git a/app/src/main/res/layout/controller_conversations_rv.xml b/presentation/src/main/res/layout/controller_conversations_rv.xml similarity index 100% rename from app/src/main/res/layout/controller_conversations_rv.xml rename to presentation/src/main/res/layout/controller_conversations_rv.xml diff --git a/app/src/main/res/layout/controller_entry_menu.xml b/presentation/src/main/res/layout/controller_entry_menu.xml similarity index 100% rename from app/src/main/res/layout/controller_entry_menu.xml rename to presentation/src/main/res/layout/controller_entry_menu.xml diff --git a/app/src/main/res/layout/controller_generic_rv.xml b/presentation/src/main/res/layout/controller_generic_rv.xml similarity index 100% rename from app/src/main/res/layout/controller_generic_rv.xml rename to presentation/src/main/res/layout/controller_generic_rv.xml diff --git a/app/src/main/res/layout/controller_locked.xml b/presentation/src/main/res/layout/controller_locked.xml similarity index 100% rename from app/src/main/res/layout/controller_locked.xml rename to presentation/src/main/res/layout/controller_locked.xml diff --git a/app/src/main/res/layout/controller_operations_menu.xml b/presentation/src/main/res/layout/controller_operations_menu.xml similarity index 100% rename from app/src/main/res/layout/controller_operations_menu.xml rename to presentation/src/main/res/layout/controller_operations_menu.xml diff --git a/app/src/main/res/layout/controller_server_selection.xml b/presentation/src/main/res/layout/controller_server_selection.xml similarity index 100% rename from app/src/main/res/layout/controller_server_selection.xml rename to presentation/src/main/res/layout/controller_server_selection.xml diff --git a/app/src/main/res/layout/controller_settings.xml b/presentation/src/main/res/layout/controller_settings.xml similarity index 100% rename from app/src/main/res/layout/controller_settings.xml rename to presentation/src/main/res/layout/controller_settings.xml diff --git a/app/src/main/res/layout/controller_web_view_login.xml b/presentation/src/main/res/layout/controller_web_view_login.xml similarity index 100% rename from app/src/main/res/layout/controller_web_view_login.xml rename to presentation/src/main/res/layout/controller_web_view_login.xml diff --git a/app/src/main/res/layout/conversation_privacy_toggle.xml b/presentation/src/main/res/layout/conversation_privacy_toggle.xml similarity index 100% rename from app/src/main/res/layout/conversation_privacy_toggle.xml rename to presentation/src/main/res/layout/conversation_privacy_toggle.xml diff --git a/app/src/main/res/layout/dialog_standard.xml b/presentation/src/main/res/layout/dialog_standard.xml similarity index 100% rename from app/src/main/res/layout/dialog_standard.xml rename to presentation/src/main/res/layout/dialog_standard.xml diff --git a/app/src/main/res/layout/dialog_standard_vertical.xml b/presentation/src/main/res/layout/dialog_standard_vertical.xml similarity index 100% rename from app/src/main/res/layout/dialog_standard_vertical.xml rename to presentation/src/main/res/layout/dialog_standard_vertical.xml diff --git a/app/src/main/res/layout/emoji_view.xml b/presentation/src/main/res/layout/emoji_view.xml similarity index 100% rename from app/src/main/res/layout/emoji_view.xml rename to presentation/src/main/res/layout/emoji_view.xml diff --git a/app/src/main/res/layout/fast_scroller.xml b/presentation/src/main/res/layout/fast_scroller.xml similarity index 100% rename from app/src/main/res/layout/fast_scroller.xml rename to presentation/src/main/res/layout/fast_scroller.xml diff --git a/app/src/main/res/layout/item_custom_incoming_preview_message.xml b/presentation/src/main/res/layout/item_custom_incoming_preview_message.xml similarity index 100% rename from app/src/main/res/layout/item_custom_incoming_preview_message.xml rename to presentation/src/main/res/layout/item_custom_incoming_preview_message.xml diff --git a/app/src/main/res/layout/item_custom_incoming_text_message.xml b/presentation/src/main/res/layout/item_custom_incoming_text_message.xml similarity index 100% rename from app/src/main/res/layout/item_custom_incoming_text_message.xml rename to presentation/src/main/res/layout/item_custom_incoming_text_message.xml diff --git a/app/src/main/res/layout/item_custom_outcoming_preview_message.xml b/presentation/src/main/res/layout/item_custom_outcoming_preview_message.xml similarity index 100% rename from app/src/main/res/layout/item_custom_outcoming_preview_message.xml rename to presentation/src/main/res/layout/item_custom_outcoming_preview_message.xml diff --git a/app/src/main/res/layout/item_custom_outcoming_text_message.xml b/presentation/src/main/res/layout/item_custom_outcoming_text_message.xml similarity index 100% rename from app/src/main/res/layout/item_custom_outcoming_text_message.xml rename to presentation/src/main/res/layout/item_custom_outcoming_text_message.xml diff --git a/app/src/main/res/layout/item_system_message.xml b/presentation/src/main/res/layout/item_system_message.xml similarity index 100% rename from app/src/main/res/layout/item_system_message.xml rename to presentation/src/main/res/layout/item_system_message.xml diff --git a/app/src/main/res/layout/join_conversation_via_link.xml b/presentation/src/main/res/layout/join_conversation_via_link.xml similarity index 100% rename from app/src/main/res/layout/join_conversation_via_link.xml rename to presentation/src/main/res/layout/join_conversation_via_link.xml diff --git a/app/src/main/res/layout/library_fast_scroller_layout.xml b/presentation/src/main/res/layout/library_fast_scroller_layout.xml similarity index 100% rename from app/src/main/res/layout/library_fast_scroller_layout.xml rename to presentation/src/main/res/layout/library_fast_scroller_layout.xml diff --git a/app/src/main/res/layout/lobby_view.xml b/presentation/src/main/res/layout/lobby_view.xml similarity index 100% rename from app/src/main/res/layout/lobby_view.xml rename to presentation/src/main/res/layout/lobby_view.xml diff --git a/app/src/main/res/layout/menu_item_sheet.xml b/presentation/src/main/res/layout/menu_item_sheet.xml similarity index 100% rename from app/src/main/res/layout/menu_item_sheet.xml rename to presentation/src/main/res/layout/menu_item_sheet.xml diff --git a/app/src/main/res/layout/notification_settings_item.xml b/presentation/src/main/res/layout/notification_settings_item.xml similarity index 100% rename from app/src/main/res/layout/notification_settings_item.xml rename to presentation/src/main/res/layout/notification_settings_item.xml diff --git a/app/src/main/res/layout/progress_layout.xml b/presentation/src/main/res/layout/progress_layout.xml similarity index 100% rename from app/src/main/res/layout/progress_layout.xml rename to presentation/src/main/res/layout/progress_layout.xml diff --git a/app/src/main/res/layout/rv_item_app.xml b/presentation/src/main/res/layout/rv_item_app.xml similarity index 100% rename from app/src/main/res/layout/rv_item_app.xml rename to presentation/src/main/res/layout/rv_item_app.xml diff --git a/app/src/main/res/layout/rv_item_browser_file.xml b/presentation/src/main/res/layout/rv_item_browser_file.xml similarity index 100% rename from app/src/main/res/layout/rv_item_browser_file.xml rename to presentation/src/main/res/layout/rv_item_browser_file.xml diff --git a/app/src/main/res/layout/rv_item_contact.xml b/presentation/src/main/res/layout/rv_item_contact.xml similarity index 100% rename from app/src/main/res/layout/rv_item_contact.xml rename to presentation/src/main/res/layout/rv_item_contact.xml diff --git a/app/src/main/res/layout/rv_item_conversation.xml b/presentation/src/main/res/layout/rv_item_conversation.xml similarity index 100% rename from app/src/main/res/layout/rv_item_conversation.xml rename to presentation/src/main/res/layout/rv_item_conversation.xml diff --git a/app/src/main/res/layout/rv_item_conversation_info_participant.xml b/presentation/src/main/res/layout/rv_item_conversation_info_participant.xml similarity index 100% rename from app/src/main/res/layout/rv_item_conversation_info_participant.xml rename to presentation/src/main/res/layout/rv_item_conversation_info_participant.xml diff --git a/app/src/main/res/layout/rv_item_conversation_with_last_message.xml b/presentation/src/main/res/layout/rv_item_conversation_with_last_message.xml similarity index 100% rename from app/src/main/res/layout/rv_item_conversation_with_last_message.xml rename to presentation/src/main/res/layout/rv_item_conversation_with_last_message.xml diff --git a/app/src/main/res/layout/rv_item_mention.xml b/presentation/src/main/res/layout/rv_item_mention.xml similarity index 100% rename from app/src/main/res/layout/rv_item_mention.xml rename to presentation/src/main/res/layout/rv_item_mention.xml diff --git a/app/src/main/res/layout/rv_item_menu.xml b/presentation/src/main/res/layout/rv_item_menu.xml similarity index 100% rename from app/src/main/res/layout/rv_item_menu.xml rename to presentation/src/main/res/layout/rv_item_menu.xml diff --git a/app/src/main/res/layout/rv_item_notification_sound.xml b/presentation/src/main/res/layout/rv_item_notification_sound.xml similarity index 100% rename from app/src/main/res/layout/rv_item_notification_sound.xml rename to presentation/src/main/res/layout/rv_item_notification_sound.xml diff --git a/app/src/main/res/layout/rv_item_progress.xml b/presentation/src/main/res/layout/rv_item_progress.xml similarity index 100% rename from app/src/main/res/layout/rv_item_progress.xml rename to presentation/src/main/res/layout/rv_item_progress.xml diff --git a/app/src/main/res/layout/rv_item_title_header.xml b/presentation/src/main/res/layout/rv_item_title_header.xml similarity index 100% rename from app/src/main/res/layout/rv_item_title_header.xml rename to presentation/src/main/res/layout/rv_item_title_header.xml diff --git a/app/src/main/res/layout/view_message_input.xml b/presentation/src/main/res/layout/view_message_input.xml similarity index 100% rename from app/src/main/res/layout/view_message_input.xml rename to presentation/src/main/res/layout/view_message_input.xml diff --git a/app/src/main/res/layout/webinar_info_item.xml b/presentation/src/main/res/layout/webinar_info_item.xml similarity index 100% rename from app/src/main/res/layout/webinar_info_item.xml rename to presentation/src/main/res/layout/webinar_info_item.xml diff --git a/app/src/main/res/menu/file_browser_bottom.xml b/presentation/src/main/res/menu/file_browser_bottom.xml similarity index 100% rename from app/src/main/res/menu/file_browser_bottom.xml rename to presentation/src/main/res/menu/file_browser_bottom.xml diff --git a/app/src/main/res/menu/file_browser_path.xml b/presentation/src/main/res/menu/file_browser_path.xml similarity index 100% rename from app/src/main/res/menu/file_browser_path.xml rename to presentation/src/main/res/menu/file_browser_path.xml diff --git a/app/src/main/res/menu/menu_contacts.xml b/presentation/src/main/res/menu/menu_contacts.xml similarity index 100% rename from app/src/main/res/menu/menu_contacts.xml rename to presentation/src/main/res/menu/menu_contacts.xml diff --git a/app/src/main/res/menu/menu_conversation.xml b/presentation/src/main/res/menu/menu_conversation.xml similarity index 100% rename from app/src/main/res/menu/menu_conversation.xml rename to presentation/src/main/res/menu/menu_conversation.xml diff --git a/app/src/main/res/menu/menu_conversation_plus_filter.xml b/presentation/src/main/res/menu/menu_conversation_plus_filter.xml similarity index 100% rename from app/src/main/res/menu/menu_conversation_plus_filter.xml rename to presentation/src/main/res/menu/menu_conversation_plus_filter.xml diff --git a/app/src/main/res/menu/menu_share_files.xml b/presentation/src/main/res/menu/menu_share_files.xml similarity index 100% rename from app/src/main/res/menu/menu_share_files.xml rename to presentation/src/main/res/menu/menu_share_files.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/presentation/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to presentation/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/presentation/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.png rename to presentation/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/presentation/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.png rename to presentation/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/presentation/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to presentation/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/presentation/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to presentation/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/presentation/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to presentation/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/raw/librem_by_feandesign_call.ogg b/presentation/src/main/res/raw/librem_by_feandesign_call.ogg similarity index 100% rename from app/src/main/res/raw/librem_by_feandesign_call.ogg rename to presentation/src/main/res/raw/librem_by_feandesign_call.ogg diff --git a/app/src/main/res/raw/librem_by_feandesign_message.ogg b/presentation/src/main/res/raw/librem_by_feandesign_message.ogg similarity index 100% rename from app/src/main/res/raw/librem_by_feandesign_message.ogg rename to presentation/src/main/res/raw/librem_by_feandesign_message.ogg diff --git a/app/src/main/res/values-b+en+001/strings.xml b/presentation/src/main/res/values-b+en+001/strings.xml similarity index 100% rename from app/src/main/res/values-b+en+001/strings.xml rename to presentation/src/main/res/values-b+en+001/strings.xml diff --git a/app/src/main/res/values-ca/strings.xml b/presentation/src/main/res/values-ca/strings.xml similarity index 100% rename from app/src/main/res/values-ca/strings.xml rename to presentation/src/main/res/values-ca/strings.xml diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/presentation/src/main/res/values-cs-rCZ/strings.xml similarity index 100% rename from app/src/main/res/values-cs-rCZ/strings.xml rename to presentation/src/main/res/values-cs-rCZ/strings.xml diff --git a/app/src/main/res/values-da/strings.xml b/presentation/src/main/res/values-da/strings.xml similarity index 100% rename from app/src/main/res/values-da/strings.xml rename to presentation/src/main/res/values-da/strings.xml diff --git a/app/src/main/res/values-de/strings.xml b/presentation/src/main/res/values-de/strings.xml similarity index 100% rename from app/src/main/res/values-de/strings.xml rename to presentation/src/main/res/values-de/strings.xml diff --git a/app/src/main/res/values-el/strings.xml b/presentation/src/main/res/values-el/strings.xml similarity index 100% rename from app/src/main/res/values-el/strings.xml rename to presentation/src/main/res/values-el/strings.xml diff --git a/app/src/main/res/values-es/strings.xml b/presentation/src/main/res/values-es/strings.xml similarity index 100% rename from app/src/main/res/values-es/strings.xml rename to presentation/src/main/res/values-es/strings.xml diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/presentation/src/main/res/values-fi-rFI/strings.xml similarity index 100% rename from app/src/main/res/values-fi-rFI/strings.xml rename to presentation/src/main/res/values-fi-rFI/strings.xml diff --git a/app/src/main/res/values-fr/strings.xml b/presentation/src/main/res/values-fr/strings.xml similarity index 100% rename from app/src/main/res/values-fr/strings.xml rename to presentation/src/main/res/values-fr/strings.xml diff --git a/app/src/main/res/values-gl/strings.xml b/presentation/src/main/res/values-gl/strings.xml similarity index 100% rename from app/src/main/res/values-gl/strings.xml rename to presentation/src/main/res/values-gl/strings.xml diff --git a/app/src/main/res/values-hr/strings.xml b/presentation/src/main/res/values-hr/strings.xml similarity index 100% rename from app/src/main/res/values-hr/strings.xml rename to presentation/src/main/res/values-hr/strings.xml diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/presentation/src/main/res/values-hu-rHU/strings.xml similarity index 100% rename from app/src/main/res/values-hu-rHU/strings.xml rename to presentation/src/main/res/values-hu-rHU/strings.xml diff --git a/app/src/main/res/values-is/strings.xml b/presentation/src/main/res/values-is/strings.xml similarity index 100% rename from app/src/main/res/values-is/strings.xml rename to presentation/src/main/res/values-is/strings.xml diff --git a/app/src/main/res/values-it/strings.xml b/presentation/src/main/res/values-it/strings.xml similarity index 100% rename from app/src/main/res/values-it/strings.xml rename to presentation/src/main/res/values-it/strings.xml diff --git a/app/src/main/res/values-iw/strings.xml b/presentation/src/main/res/values-iw/strings.xml similarity index 100% rename from app/src/main/res/values-iw/strings.xml rename to presentation/src/main/res/values-iw/strings.xml diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/presentation/src/main/res/values-ja-rJP/strings.xml similarity index 100% rename from app/src/main/res/values-ja-rJP/strings.xml rename to presentation/src/main/res/values-ja-rJP/strings.xml diff --git a/app/src/main/res/values-ko/strings.xml b/presentation/src/main/res/values-ko/strings.xml similarity index 100% rename from app/src/main/res/values-ko/strings.xml rename to presentation/src/main/res/values-ko/strings.xml diff --git a/app/src/main/res/values-land/dimens.xml b/presentation/src/main/res/values-land/dimens.xml similarity index 100% rename from app/src/main/res/values-land/dimens.xml rename to presentation/src/main/res/values-land/dimens.xml diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/presentation/src/main/res/values-lt-rLT/strings.xml similarity index 100% rename from app/src/main/res/values-lt-rLT/strings.xml rename to presentation/src/main/res/values-lt-rLT/strings.xml diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/presentation/src/main/res/values-nb-rNO/strings.xml similarity index 100% rename from app/src/main/res/values-nb-rNO/strings.xml rename to presentation/src/main/res/values-nb-rNO/strings.xml diff --git a/app/src/main/res/values-night/colors.xml b/presentation/src/main/res/values-night/colors.xml similarity index 100% rename from app/src/main/res/values-night/colors.xml rename to presentation/src/main/res/values-night/colors.xml diff --git a/app/src/main/res/values-nl/strings.xml b/presentation/src/main/res/values-nl/strings.xml similarity index 100% rename from app/src/main/res/values-nl/strings.xml rename to presentation/src/main/res/values-nl/strings.xml diff --git a/app/src/main/res/values-pl/strings.xml b/presentation/src/main/res/values-pl/strings.xml similarity index 100% rename from app/src/main/res/values-pl/strings.xml rename to presentation/src/main/res/values-pl/strings.xml diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/presentation/src/main/res/values-pt-rBR/strings.xml similarity index 100% rename from app/src/main/res/values-pt-rBR/strings.xml rename to presentation/src/main/res/values-pt-rBR/strings.xml diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/presentation/src/main/res/values-pt-rPT/strings.xml similarity index 100% rename from app/src/main/res/values-pt-rPT/strings.xml rename to presentation/src/main/res/values-pt-rPT/strings.xml diff --git a/app/src/main/res/values-ru/strings.xml b/presentation/src/main/res/values-ru/strings.xml similarity index 100% rename from app/src/main/res/values-ru/strings.xml rename to presentation/src/main/res/values-ru/strings.xml diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/presentation/src/main/res/values-sk-rSK/strings.xml similarity index 100% rename from app/src/main/res/values-sk-rSK/strings.xml rename to presentation/src/main/res/values-sk-rSK/strings.xml diff --git a/app/src/main/res/values-sl/strings.xml b/presentation/src/main/res/values-sl/strings.xml similarity index 100% rename from app/src/main/res/values-sl/strings.xml rename to presentation/src/main/res/values-sl/strings.xml diff --git a/app/src/main/res/values-sr/strings.xml b/presentation/src/main/res/values-sr/strings.xml similarity index 100% rename from app/src/main/res/values-sr/strings.xml rename to presentation/src/main/res/values-sr/strings.xml diff --git a/app/src/main/res/values-sv/strings.xml b/presentation/src/main/res/values-sv/strings.xml similarity index 100% rename from app/src/main/res/values-sv/strings.xml rename to presentation/src/main/res/values-sv/strings.xml diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/presentation/src/main/res/values-sw600dp/dimens.xml similarity index 100% rename from app/src/main/res/values-sw600dp/dimens.xml rename to presentation/src/main/res/values-sw600dp/dimens.xml diff --git a/app/src/main/res/values-tr/strings.xml b/presentation/src/main/res/values-tr/strings.xml similarity index 100% rename from app/src/main/res/values-tr/strings.xml rename to presentation/src/main/res/values-tr/strings.xml diff --git a/app/src/main/res/values-v28/arrays.xml b/presentation/src/main/res/values-v28/arrays.xml similarity index 100% rename from app/src/main/res/values-v28/arrays.xml rename to presentation/src/main/res/values-v28/arrays.xml diff --git a/app/src/main/res/values-v28/defaults.xml b/presentation/src/main/res/values-v28/defaults.xml similarity index 100% rename from app/src/main/res/values-v28/defaults.xml rename to presentation/src/main/res/values-v28/defaults.xml diff --git a/app/src/main/res/values-vi/strings.xml b/presentation/src/main/res/values-vi/strings.xml similarity index 100% rename from app/src/main/res/values-vi/strings.xml rename to presentation/src/main/res/values-vi/strings.xml diff --git a/app/src/main/res/values-w820dp/dimens.xml b/presentation/src/main/res/values-w820dp/dimens.xml similarity index 100% rename from app/src/main/res/values-w820dp/dimens.xml rename to presentation/src/main/res/values-w820dp/dimens.xml diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/presentation/src/main/res/values-zh-rCN/strings.xml similarity index 100% rename from app/src/main/res/values-zh-rCN/strings.xml rename to presentation/src/main/res/values-zh-rCN/strings.xml diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/presentation/src/main/res/values-zh-rTW/strings.xml similarity index 100% rename from app/src/main/res/values-zh-rTW/strings.xml rename to presentation/src/main/res/values-zh-rTW/strings.xml diff --git a/app/src/main/res/values/arrays.xml b/presentation/src/main/res/values/arrays.xml similarity index 100% rename from app/src/main/res/values/arrays.xml rename to presentation/src/main/res/values/arrays.xml diff --git a/app/src/main/res/values/attrs.xml b/presentation/src/main/res/values/attrs.xml similarity index 100% rename from app/src/main/res/values/attrs.xml rename to presentation/src/main/res/values/attrs.xml diff --git a/app/src/main/res/values/bool.xml b/presentation/src/main/res/values/bool.xml similarity index 100% rename from app/src/main/res/values/bool.xml rename to presentation/src/main/res/values/bool.xml diff --git a/app/src/main/res/values/colors.xml b/presentation/src/main/res/values/colors.xml similarity index 100% rename from app/src/main/res/values/colors.xml rename to presentation/src/main/res/values/colors.xml diff --git a/app/src/main/res/values/defaults.xml b/presentation/src/main/res/values/defaults.xml similarity index 100% rename from app/src/main/res/values/defaults.xml rename to presentation/src/main/res/values/defaults.xml diff --git a/app/src/main/res/values/dimens.xml b/presentation/src/main/res/values/dimens.xml similarity index 100% rename from app/src/main/res/values/dimens.xml rename to presentation/src/main/res/values/dimens.xml diff --git a/app/src/main/res/values/setup.xml b/presentation/src/main/res/values/setup.xml similarity index 100% rename from app/src/main/res/values/setup.xml rename to presentation/src/main/res/values/setup.xml diff --git a/app/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml similarity index 100% rename from app/src/main/res/values/strings.xml rename to presentation/src/main/res/values/strings.xml diff --git a/app/src/main/res/values/styles.xml b/presentation/src/main/res/values/styles.xml similarity index 100% rename from app/src/main/res/values/styles.xml rename to presentation/src/main/res/values/styles.xml diff --git a/app/src/main/res/xml/backup_config.xml b/presentation/src/main/res/xml/backup_config.xml similarity index 100% rename from app/src/main/res/xml/backup_config.xml rename to presentation/src/main/res/xml/backup_config.xml diff --git a/app/src/main/res/xml/chip_others.xml b/presentation/src/main/res/xml/chip_others.xml similarity index 100% rename from app/src/main/res/xml/chip_others.xml rename to presentation/src/main/res/xml/chip_others.xml diff --git a/app/src/main/res/xml/chip_you.xml b/presentation/src/main/res/xml/chip_you.xml similarity index 100% rename from app/src/main/res/xml/chip_you.xml rename to presentation/src/main/res/xml/chip_you.xml diff --git a/app/src/main/res/xml/file_provider_paths.xml b/presentation/src/main/res/xml/file_provider_paths.xml similarity index 100% rename from app/src/main/res/xml/file_provider_paths.xml rename to presentation/src/main/res/xml/file_provider_paths.xml diff --git a/app/src/main/res/xml/network_security_config.xml b/presentation/src/main/res/xml/network_security_config.xml similarity index 100% rename from app/src/main/res/xml/network_security_config.xml rename to presentation/src/main/res/xml/network_security_config.xml diff --git a/app/src/test/java/com/nextcloud/talk/utils/DoNotDisturbUtilsTest.java b/presentation/src/test/java/com/nextcloud/talk/utils/DoNotDisturbUtilsTest.java similarity index 100% rename from app/src/test/java/com/nextcloud/talk/utils/DoNotDisturbUtilsTest.java rename to presentation/src/test/java/com/nextcloud/talk/utils/DoNotDisturbUtilsTest.java diff --git a/app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java b/presentation/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java similarity index 98% rename from app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java rename to presentation/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java index ef71397db..bdaa4c412 100644 --- a/app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java +++ b/presentation/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.java @@ -26,7 +26,7 @@ import android.text.TextUtils; import com.nextcloud.talk.R; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.models.json.conversations.Conversation; +import com.nextcloud.data.models.json.conversations.Conversation; import com.nextcloud.talk.utils.database.user.UserUtils; import org.junit.Before; diff --git a/app/src/test/java/com/nextcloud/talk/utils/TextMatchersTest.java b/presentation/src/test/java/com/nextcloud/talk/utils/TextMatchersTest.java similarity index 100% rename from app/src/test/java/com/nextcloud/talk/utils/TextMatchersTest.java rename to presentation/src/test/java/com/nextcloud/talk/utils/TextMatchersTest.java diff --git a/settings.gradle b/settings.gradle index ba06f867c..f160f7db5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,4 +18,4 @@ * along with this program. If not, see . */ -include ':app' +include ':presentation', ':data', ':domain'