From 01a37cdd37357d61b19bef747aba58ec7a77a5cb Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 17 Aug 2021 16:57:18 +0530 Subject: [PATCH] Add slack clone sample --- .idea/codeStyles/Project.xml | 9 - .idea/compiler.xml | 2 +- build.gradle | 1 + settings.gradle | 1 + slack-clone-sample/.gitignore | 1 + slack-clone-sample/build.gradle | 54 +++++ slack-clone-sample/proguard-rules.pro | 21 ++ .../src/main/AndroidManifest.xml | 25 +++ .../getstream/slackclonesample/AppConfig.kt | 125 +++++++++++ .../slackclonesample/ChatInitializer.kt | 22 ++ .../slackclonesample/SlackSampleApp.kt | 31 +++ .../slackclonesample/data/UserRepository.kt | 48 +++++ .../domain/user/SampleUser.kt | 14 ++ .../feature/chat/ChatFragment.kt | 202 ++++++++++++++++++ .../chat/CustomMessageInputViewBinding.kt | 41 ++++ .../CustomMessageListHeaderViewBinding.kt | 27 +++ .../viewholder/SlackDateDividerViewHolder.kt | 36 ++++ .../chat/viewholder/SlackGiphyViewHolder.kt | 56 +++++ .../SlackMessageViewHolderFactory.kt | 29 +++ .../viewholder/SlackPlainTextViewHolder.kt | 61 ++++++ .../feature/home/CustomChannelViewHolder.kt | 55 +++++ .../feature/home/HomeActivity.kt | 165 ++++++++++++++ .../feature/home/HomeViewModel.kt | 72 +++++++ .../home/channel/SlackChannelListAdapter.kt | 56 +++++ .../SlackChannelListItemDiffCallback.kt | 82 +++++++ .../home/channel/SlackChannelListItemType.kt | 9 + .../home/channel/SlackChannelListView.kt | 42 ++++ .../SlackChannelListViewModelBinding.kt | 50 +++++ .../home/channel/SnapToTopDataObserver.kt | 40 ++++ .../viewholder/ChannelItemViewHolder.kt | 43 ++++ .../viewholder/ChannelSectionViewHolder.kt | 24 +++ .../viewholder/SearchHeaderViewHolder.kt | 15 ++ .../slackclonesample/util/Extensions.kt | 30 +++ .../slackclonesample/util/Factory.kt | 6 + .../drawable-v24/ic_launcher_foreground.xml | 30 +++ .../src/main/res/drawable/bg_red_circle.xml | 5 + .../main/res/drawable/ic_baseline_send_24.xml | 11 + .../src/main/res/drawable/ic_delete.xml | 12 ++ .../res/drawable/ic_launcher_background.xml | 170 +++++++++++++++ .../ic_outline_add_circle_outline_24.xml | 10 + .../main/res/drawable/ic_round_menu_24.xml | 10 + .../main/res/drawable/ic_round_search_24.xml | 10 + slack-clone-sample/src/main/res/font/lato.xml | 7 + .../src/main/res/font/lato_bold.xml | 7 + .../src/main/res/layout/activity_main.xml | 31 +++ .../layout/confirmation_dialog_fragment.xml | 95 ++++++++ .../res/layout/custom_channel_list_item.xml | 44 ++++ .../main/res/layout/custom_message_input.xml | 63 ++++++ .../res/layout/custom_message_list_header.xml | 10 + .../src/main/res/layout/fragment_chat.xml | 59 +++++ .../src/main/res/layout/fragment_home.xml | 6 + .../main/res/layout/header_channel_list.xml | 6 + .../res/layout/item_channel_search_header.xml | 22 ++ .../layout/item_channel_section_header.xml | 30 +++ .../src/main/res/layout/item_date_divider.xml | 11 + .../main/res/layout/item_message_giphy.xml | 193 +++++++++++++++++ .../src/main/res/layout/item_message_list.xml | 57 +++++ .../main/res/layout/item_text_attachment.xml | 137 ++++++++++++ .../src/main/res/menu/menu_top_bar.xml | 18 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes .../src/main/res/values-night/themes.xml | 16 ++ .../src/main/res/values/colors.xml | 13 ++ .../src/main/res/values/font_certs.xml | 17 ++ .../src/main/res/values/preloaded_fonts.xml | 7 + .../src/main/res/values/strings.xml | 11 + .../src/main/res/values/styles.xml | 43 ++++ .../src/main/res/values/themes.xml | 18 ++ 78 files changed, 2674 insertions(+), 10 deletions(-) create mode 100644 slack-clone-sample/.gitignore create mode 100644 slack-clone-sample/build.gradle create mode 100644 slack-clone-sample/proguard-rules.pro create mode 100644 slack-clone-sample/src/main/AndroidManifest.xml create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/AppConfig.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/ChatInitializer.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/SlackSampleApp.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/data/UserRepository.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/domain/user/SampleUser.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/ChatFragment.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/CustomMessageInputViewBinding.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/CustomMessageListHeaderViewBinding.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/viewholder/SlackDateDividerViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/viewholder/SlackGiphyViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/viewholder/SlackMessageViewHolderFactory.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/chat/viewholder/SlackPlainTextViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/CustomChannelViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/HomeActivity.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/HomeViewModel.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SlackChannelListAdapter.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SlackChannelListItemDiffCallback.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SlackChannelListItemType.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SlackChannelListView.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SlackChannelListViewModelBinding.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/SnapToTopDataObserver.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/viewholder/ChannelItemViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/viewholder/ChannelSectionViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/feature/home/channel/viewholder/SearchHeaderViewHolder.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/util/Extensions.kt create mode 100644 slack-clone-sample/src/main/java/io/getstream/slackclonesample/util/Factory.kt create mode 100644 slack-clone-sample/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 slack-clone-sample/src/main/res/drawable/bg_red_circle.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_baseline_send_24.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_delete.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_launcher_background.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_outline_add_circle_outline_24.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_round_menu_24.xml create mode 100644 slack-clone-sample/src/main/res/drawable/ic_round_search_24.xml create mode 100644 slack-clone-sample/src/main/res/font/lato.xml create mode 100644 slack-clone-sample/src/main/res/font/lato_bold.xml create mode 100644 slack-clone-sample/src/main/res/layout/activity_main.xml create mode 100644 slack-clone-sample/src/main/res/layout/confirmation_dialog_fragment.xml create mode 100644 slack-clone-sample/src/main/res/layout/custom_channel_list_item.xml create mode 100644 slack-clone-sample/src/main/res/layout/custom_message_input.xml create mode 100644 slack-clone-sample/src/main/res/layout/custom_message_list_header.xml create mode 100644 slack-clone-sample/src/main/res/layout/fragment_chat.xml create mode 100644 slack-clone-sample/src/main/res/layout/fragment_home.xml create mode 100644 slack-clone-sample/src/main/res/layout/header_channel_list.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_channel_search_header.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_channel_section_header.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_date_divider.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_message_giphy.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_message_list.xml create mode 100644 slack-clone-sample/src/main/res/layout/item_text_attachment.xml create mode 100644 slack-clone-sample/src/main/res/menu/menu_top_bar.xml create mode 100644 slack-clone-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 slack-clone-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 slack-clone-sample/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 slack-clone-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 slack-clone-sample/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 slack-clone-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 slack-clone-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 slack-clone-sample/src/main/res/values-night/themes.xml create mode 100644 slack-clone-sample/src/main/res/values/colors.xml create mode 100644 slack-clone-sample/src/main/res/values/font_certs.xml create mode 100644 slack-clone-sample/src/main/res/values/preloaded_fonts.xml create mode 100644 slack-clone-sample/src/main/res/values/strings.xml create mode 100644 slack-clone-sample/src/main/res/values/styles.xml create mode 100644 slack-clone-sample/src/main/res/values/themes.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index fc17b63e..56dfabb5 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -8,15 +8,6 @@ -