gitextract_cohzfmis/ ├── .firebaserc ├── .gitignore ├── .idea/ │ ├── assetWizardSettings.xml │ ├── caches/ │ │ └── build_file_checksums.ser │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── jarRepositories.xml │ ├── misc.xml │ ├── modules.xml │ ├── navEditor.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── app-debug.apk │ ├── build.gradle │ ├── google-services.json │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── gowtham/ │ │ └── letschat/ │ │ ├── FlowUtilAndroidTest.kt │ │ ├── HiltTestRunner.kt │ │ ├── LiveDataUtilAndroidTest.kt │ │ ├── db/ │ │ │ └── daos/ │ │ │ ├── ChatUserDaoTest.kt │ │ │ ├── GroupDaoTest.kt │ │ │ ├── GroupMessageDaoTest.kt │ │ │ └── MessageDaoTest.kt │ │ └── di/ │ │ └── TestAppModule.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── gowtham/ │ │ │ └── letschat/ │ │ │ ├── FirebasePush.kt │ │ │ ├── MApplication.kt │ │ │ ├── core/ │ │ │ │ ├── ChatHandler.kt │ │ │ │ ├── ChatUserProfileListener.kt │ │ │ │ ├── ChatUserUtil.kt │ │ │ │ ├── ContactsQuery.kt │ │ │ │ ├── GroupChatHandler.kt │ │ │ │ ├── GroupMsgSender.kt │ │ │ │ ├── GroupMsgStatusUpdater.kt │ │ │ │ ├── GroupQuery.kt │ │ │ │ ├── MessageSender.kt │ │ │ │ └── MessageStatusUpdater.kt │ │ │ ├── db/ │ │ │ │ ├── ChatUserDatabase.kt │ │ │ │ ├── DbRepository.kt │ │ │ │ ├── DefaultDbRepo.kt │ │ │ │ ├── TypeConverter.kt │ │ │ │ ├── daos/ │ │ │ │ │ ├── ChatUserDao.kt │ │ │ │ │ ├── GroupDao.kt │ │ │ │ │ ├── GroupMessageDao.kt │ │ │ │ │ └── MessageDao.kt │ │ │ │ └── data/ │ │ │ │ ├── ChatUser.kt │ │ │ │ ├── ChatUserWithMessages.kt │ │ │ │ ├── Group.kt │ │ │ │ ├── GroupMessage.kt │ │ │ │ ├── GroupWithMessages.kt │ │ │ │ └── Message.kt │ │ │ ├── di/ │ │ │ │ ├── AppModule.kt │ │ │ │ └── DbModule.kt │ │ │ ├── fragments/ │ │ │ │ ├── FAttachment.kt │ │ │ │ ├── FImageSrcSheet.kt │ │ │ │ ├── MainFragmentFactory.kt │ │ │ │ ├── add_group_members/ │ │ │ │ │ ├── AdAddMembers.kt │ │ │ │ │ ├── AdChip.kt │ │ │ │ │ ├── AddGroupViewModel.kt │ │ │ │ │ └── FAddGroupMembers.kt │ │ │ │ ├── contacts/ │ │ │ │ │ ├── AdContact.kt │ │ │ │ │ ├── ContactsViewModel.kt │ │ │ │ │ └── FContacts.kt │ │ │ │ ├── countries/ │ │ │ │ │ ├── AdCountries.kt │ │ │ │ │ └── FCountries.kt │ │ │ │ ├── create_group/ │ │ │ │ │ ├── CreateGroupViewModel.kt │ │ │ │ │ └── FCreateGroup.kt │ │ │ │ ├── group_chat/ │ │ │ │ │ ├── AdGroupChat.kt │ │ │ │ │ ├── FGroupChat.kt │ │ │ │ │ └── GroupChatViewModel.kt │ │ │ │ ├── group_chat_home/ │ │ │ │ │ ├── AdGroupChatHome.kt │ │ │ │ │ ├── FGroupChatHome.kt │ │ │ │ │ └── GroupChatHomeViewModel.kt │ │ │ │ ├── login/ │ │ │ │ │ ├── FLogin.kt │ │ │ │ │ ├── FVerify.kt │ │ │ │ │ ├── LogInViewModel.kt │ │ │ │ │ └── LoginRepo.kt │ │ │ │ ├── myprofile/ │ │ │ │ │ ├── FMyProfile.kt │ │ │ │ │ └── FMyProfileViewModel.kt │ │ │ │ ├── profile/ │ │ │ │ │ ├── FProfile.kt │ │ │ │ │ └── ProfileViewModel.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── FSearch.kt │ │ │ │ │ ├── FSearchViewModel.kt │ │ │ │ │ └── SearchRepo.kt │ │ │ │ ├── single_chat/ │ │ │ │ │ ├── AdChat.kt │ │ │ │ │ ├── FSingleChat.kt │ │ │ │ │ └── SingleChatViewModel.kt │ │ │ │ └── single_chat_home/ │ │ │ │ ├── AdSingleChatHome.kt │ │ │ │ ├── FSingleChatHome.kt │ │ │ │ └── SingleChatHomeViewModel.kt │ │ │ ├── models/ │ │ │ │ ├── Contact.kt │ │ │ │ ├── Country.kt │ │ │ │ ├── ModelDeviceDetails.kt │ │ │ │ ├── ModelMobile.kt │ │ │ │ ├── MyImage.kt │ │ │ │ ├── PushMsg.kt │ │ │ │ ├── UserProfile.kt │ │ │ │ └── UserStatus.kt │ │ │ ├── services/ │ │ │ │ ├── GroupUploadWorker.kt │ │ │ │ └── UploadWorker.kt │ │ │ ├── ui/ │ │ │ │ └── activities/ │ │ │ │ ├── ActBase.kt │ │ │ │ ├── ActSplash.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── SharedViewModel.kt │ │ │ ├── utils/ │ │ │ │ ├── BindingAdapters.kt │ │ │ │ ├── BottomSheetEvent.kt │ │ │ │ ├── ConnectionChangeEvent.kt │ │ │ │ ├── Constants.kt │ │ │ │ ├── Countries.kt │ │ │ │ ├── DataStorePreference.kt │ │ │ │ ├── DiffCallbackChatUser.kt │ │ │ │ ├── Event.kt │ │ │ │ ├── Events/ │ │ │ │ │ ├── EventAudioMsg.kt │ │ │ │ │ └── EventUpdateRecycleItem.kt │ │ │ │ ├── GroupMsgActionReceiver.kt │ │ │ │ ├── ImageUtils.kt │ │ │ │ ├── ItemClickListener.kt │ │ │ │ ├── LoadState.kt │ │ │ │ ├── LogInFailedState.kt │ │ │ │ ├── LogMessage.kt │ │ │ │ ├── MPreference.kt │ │ │ │ ├── NActionReceiver.kt │ │ │ │ ├── NotificationUtils.kt │ │ │ │ ├── OnSuccessListener.kt │ │ │ │ ├── ScreenState.kt │ │ │ │ ├── UserUtils.kt │ │ │ │ ├── Utils.kt │ │ │ │ ├── Validator.kt │ │ │ │ └── ViewUtils.kt │ │ │ └── views/ │ │ │ ├── CustomEditText.kt │ │ │ ├── CustomProgress.kt │ │ │ ├── CustomProgressView.kt │ │ │ ├── MainNavHostFragment.kt │ │ │ ├── PausableProgressBar.kt │ │ │ ├── PausableScaleAnimation.kt │ │ │ └── StoriesProgressView.kt │ │ └── res/ │ │ ├── anim/ │ │ │ ├── slide_in_right.xml │ │ │ └── slide_out_left.xml │ │ ├── drawable/ │ │ │ ├── ic_arrow_back.xml │ │ │ ├── ic_arrow_down.xml │ │ │ ├── ic_arrow_r8.xml │ │ │ ├── ic_clear.xml │ │ │ ├── ic_close_24px.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_menu_24px.xml │ │ │ ├── ic_search.xml │ │ │ ├── selector_menu.xml │ │ │ ├── shape_audio_bg.xml │ │ │ ├── shape_border_line.xml │ │ │ ├── shape_btn_bg.xml │ │ │ ├── shape_circle.xml │ │ │ ├── shape_circle_blue.xml │ │ │ ├── shape_contact_selected.xml │ │ │ ├── shape_divider.xml │ │ │ ├── shape_edit_bg.xml │ │ │ ├── shape_gradient.xml │ │ │ ├── shape_home_bg.xml │ │ │ ├── shape_menu_active.xml │ │ │ ├── shape_menu_non_active.xml │ │ │ ├── shape_msg_bg.xml │ │ │ ├── shape_radius.xml │ │ │ ├── shape_receive_msg.xml │ │ │ ├── shape_receive_msg_corned.xml │ │ │ ├── shape_send_msg.xml │ │ │ ├── shape_send_msg_corned.xml │ │ │ └── shape_unread_count.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── act_chat.xml │ │ │ ├── act_splash.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_main2.xml │ │ │ ├── alert_dialog.xml │ │ │ ├── alert_logout.xml │ │ │ ├── f_add_group_members.xml │ │ │ ├── f_attachment.xml │ │ │ ├── f_contacts.xml │ │ │ ├── f_countries.xml │ │ │ ├── f_create_group.xml │ │ │ ├── f_group_chat.xml │ │ │ ├── f_group_chat_home.xml │ │ │ ├── f_image_src_sheet.xml │ │ │ ├── f_login.xml │ │ │ ├── f_my_profile.xml │ │ │ ├── f_profile.xml │ │ │ ├── f_search.xml │ │ │ ├── f_single_chat.xml │ │ │ ├── f_single_chat_home.xml │ │ │ ├── f_verify.xml │ │ │ ├── load_state_footer.xml │ │ │ ├── pausable_progress.xml │ │ │ ├── progress_dialog.xml │ │ │ ├── row_add_member.xml │ │ │ ├── row_audio_receive.xml │ │ │ ├── row_audio_sent.xml │ │ │ ├── row_chat.xml │ │ │ ├── row_chip.xml │ │ │ ├── row_contact.xml │ │ │ ├── row_country.xml │ │ │ ├── row_group_audio_receive.xml │ │ │ ├── row_group_audio_sent.xml │ │ │ ├── row_group_chat.xml │ │ │ ├── row_group_image_receive.xml │ │ │ ├── row_group_image_sent.xml │ │ │ ├── row_group_sticker_receive.xml │ │ │ ├── row_group_sticker_sent.xml │ │ │ ├── row_group_txt_sent.xml │ │ │ ├── row_grp_txt_receive.xml │ │ │ ├── row_image_receive.xml │ │ │ ├── row_image_sent.xml │ │ │ ├── row_receive_message.xml │ │ │ ├── row_search_contact.xml │ │ │ ├── row_sent_message.xml │ │ │ ├── row_sticker_receive.xml │ │ │ ├── row_sticker_sent.xml │ │ │ ├── view_chat_btm.xml │ │ │ ├── view_chat_toolbar.xml │ │ │ ├── view_group_chat_btm.xml │ │ │ └── view_group_chat_toolbar.xml │ │ ├── menu/ │ │ │ ├── menu_btm_nav.xml │ │ │ ├── menu_contacts.xml │ │ │ ├── menu_option.xml │ │ │ └── menu_search.xml │ │ ├── navigation/ │ │ │ └── nav_graph.xml │ │ ├── raw/ │ │ │ ├── empty_state.json │ │ │ ├── lottie_send.json │ │ │ ├── lottie_tick.json │ │ │ └── lottie_voice.json │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimen.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── xml/ │ │ ├── network_security_config.xml │ │ └── provider_path.xml │ ├── release/ │ │ └── res/ │ │ └── values/ │ │ └── google_maps_api.xml │ └── test/ │ └── java/ │ └── com/ │ └── gowtham/ │ └── letschat/ │ ├── LiveDataUtilAndroid.kt │ ├── db/ │ │ └── DbRepositoryTest.kt │ ├── fragments/ │ │ └── single_chat_home/ │ │ └── SingleChatHomeViewModelTest.kt │ └── utils/ │ ├── MainCoroutineRule.kt │ └── ValidatorTest.kt ├── build.gradle ├── firebase.json ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle