├── chat
├── consumer-rules.pro
├── .gitignore
├── src
│ └── main
│ │ ├── java
│ │ └── com
│ │ │ └── amity
│ │ │ └── socialcloud
│ │ │ └── uikit
│ │ │ └── chat
│ │ │ ├── messages
│ │ │ ├── viewModel
│ │ │ │ ├── AmityUnknownMsgViewModel.kt
│ │ │ │ └── AmityTextMessageViewModel.kt
│ │ │ ├── viewHolder
│ │ │ │ ├── AmityMessageItemListener.kt
│ │ │ │ └── AmityAudioPlayListener.kt
│ │ │ └── composebar
│ │ │ │ └── AmityChatRoomComposeBar.kt
│ │ │ ├── home
│ │ │ ├── callback
│ │ │ │ ├── AmityRecentChatItemClickListener.kt
│ │ │ │ ├── AmityDirectoryFragmentDelegate.kt
│ │ │ │ └── AmityRecentChatFragmentDelegate.kt
│ │ │ └── groupchat
│ │ │ │ └── AmityCreateGroupChatFragment.kt
│ │ │ ├── util
│ │ │ └── MessageType.kt
│ │ │ └── directory
│ │ │ └── fragment
│ │ │ └── AmityDirectoryFragment.kt
│ │ └── res
│ │ ├── menu
│ │ ├── amity_text_sender_menu.xml
│ │ ├── amity_chat_home.xml
│ │ └── amity_chat_list.xml
│ │ ├── layout
│ │ ├── amity_fragment_chat_room.xml
│ │ ├── amity_dialog_chat.xml
│ │ ├── amity_fragment_create_group_chat.xml
│ │ ├── amity_fragment_directory.xml
│ │ └── amity_activity_chat.xml
│ │ └── drawable
│ │ ├── amity_ic_arrow_down.xml
│ │ ├── amity_ic_check.xml
│ │ ├── amity_ic_count.xml
│ │ ├── amity_ic_play.xml
│ │ ├── amity_ic_image.xml
│ │ ├── amity_ic_default_avatar_direct_chat.xml
│ │ └── amity_ic_image_failed.xml
└── build.gradle
├── amity-uikit
├── .gitignore
├── consumer-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ └── java
│ └── com
│ └── amity
│ └── socialcloud
│ └── uikit
│ └── AmityUIKitClient.kt
├── common
├── .gitignore
└── src
│ └── main
│ ├── res
│ ├── values
│ │ └── integers.xml
│ ├── drawable
│ │ ├── amity_ic_star.png
│ │ ├── amity_ic_plus_white.png
│ │ ├── amity_empty.xml
│ │ ├── amity_exo_control_bg.xml
│ │ ├── amity_rounded_primary_color_bg.xml
│ │ ├── amity_bg_border.xml
│ │ ├── amity_arrow_upward.xml
│ │ ├── amity_ic_arrow_back.xml
│ │ ├── amity_ic_add.xml
│ │ ├── amity_ic_default_ring.xml
│ │ ├── amity_bg_search.xml
│ │ ├── amity_ic_close.xml
│ │ ├── amity_compose_bar_send_icon.xml
│ │ ├── amity_ic_avatar_placeholder.xml
│ │ ├── amity_bg_transparent_button.xml
│ │ ├── amity_ic_tick_green.xml
│ │ ├── amity_bg_bottom_naviation.xml
│ │ ├── amity_ic_baseline_dehaze.xml
│ │ ├── amity_v4_radio_button.xml
│ │ ├── amity_ic_photo.xml
│ │ ├── amity_ic_plus_button.xml
│ │ ├── amity_arrow_down.xml
│ │ ├── amity_ic_filled_cross.xml
│ │ ├── amity_ic_search.xml
│ │ ├── amity_ic_unblock_user.xml
│ │ ├── amity_ic_chevron_right.xml
│ │ ├── amity_ic_sponsor_badge.xml
│ │ ├── amity_ic_arrow.xml
│ │ ├── amity_ic_back.xml
│ │ ├── amity_ic_post_creation.xml
│ │ ├── amity_ic_attachment.xml
│ │ ├── amity_ic_circle.xml
│ │ ├── amity_ic_error.xml
│ │ ├── amity_ic_more_horiz.xml
│ │ ├── amity_ic_story_flash.xml
│ │ ├── amity_ic_add_black.xml
│ │ └── amity_ic_location.xml
│ ├── xml
│ │ └── amity_file_path.xml
│ ├── color
│ │ ├── material_btn_text_color_selector.xml
│ │ ├── material_btn_bg_color_selector.xml
│ │ ├── material_fab_bg_color_selector.xml
│ │ ├── material_fab_icon_text_color_selector.xml
│ │ ├── material_btn_stroke_color_selector.xml
│ │ ├── switch_btn_bg_selector.xml
│ │ └── radio_btn_bg_selector.xml
│ ├── layout
│ │ ├── amity_bottom_sheet_menu.xml
│ │ ├── amity_activity_camera.xml
│ │ ├── amity_view_radio_button.xml
│ │ ├── amity_item_image_preview.xml
│ │ └── amity_view_media_gallery_tab.xml
│ └── values-v27
│ │ └── shape.xml
│ └── java
│ └── com
│ └── amity
│ └── socialcloud
│ └── uikit
│ └── common
│ ├── components
│ ├── AmityCommunityHeader.kt
│ ├── AmityLongPressListener.kt
│ ├── AmityMessageListListener.kt
│ ├── AmityToolBarClickListener.kt
│ ├── AmityAudioRecorderListener.kt
│ ├── AmityChatComposeBarClickListener.kt
│ └── AmityStyleColorSpan.kt
│ ├── common
│ └── views
│ │ ├── AmityColorShade.kt
│ │ ├── avatar
│ │ └── AmityAvatarShape.kt
│ │ ├── button
│ │ └── AmityButtonType.kt
│ │ ├── bottomsheet
│ │ └── AmityMenuItemClickListener.kt
│ │ ├── dialog
│ │ └── bottomsheet
│ │ │ └── BottomSheetMenuItem.kt
│ │ └── list
│ │ └── AmityRecyclerView.kt
│ ├── utils
│ ├── AmityProvider.kt
│ ├── AmityFileDownloadStatus.kt
│ ├── AmityTagLogUtil.kt
│ ├── AmityNumberUtil.kt
│ ├── AmitySingleLiveData.kt
│ ├── AmityThemeUtil.kt
│ └── AmitySafeClickListener.kt
│ ├── linkpreview
│ └── models
│ │ ├── AmityPreviewMetadataException.kt
│ │ ├── AmityPreviewUrlCacheItem.kt
│ │ └── AmityPreviewMetadataCacheItem.kt
│ ├── imagepreview
│ └── AmityPreviewImage.kt
│ ├── model
│ ├── AmityEventType.kt
│ ├── AmityMenuItem.kt
│ ├── AmitySelectMemberItem.kt
│ ├── AmityReactionType.kt
│ ├── AmityMessageReactions.kt
│ └── AmitySocialReactions.kt
│ ├── base
│ ├── AmityViewHolder.kt
│ ├── FragmentStoreOwnerMap.kt
│ ├── FragmentStoreOwner.kt
│ └── AmityFragmentExtension.kt
│ ├── memberpicker
│ └── listener
│ │ ├── AmitySelectMemberListener.kt
│ │ ├── AmitySelectedMemberListener.kt
│ │ └── AmityAddedMemberClickListener.kt
│ └── camera
│ └── AmityCameraActivity.kt
├── logging
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── uikit_logging_config.xml
│ │ ├── java
│ │ └── com
│ │ │ └── amity
│ │ │ └── socialcloud
│ │ │ └── uikit
│ │ │ └── logging
│ │ │ ├── AmityLoggingConfig.kt
│ │ │ └── AmityExceptionHandler.kt
│ │ └── AndroidManifest.xml
└── build.gradle
├── sample
├── .gitignore
└── src
│ └── main
│ ├── res
│ ├── values
│ │ ├── dimens.xml
│ │ ├── uikit_logging_config.xml
│ │ ├── upstra_sdk_config.xml
│ │ ├── theme.xml
│ │ ├── amity_uikit_social_configs.xml
│ │ ├── styles.xml
│ │ └── colors.xml
│ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_adaptive_back.png
│ │ └── ic_launcher_adaptive_fore.png
│ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_adaptive_back.png
│ │ └── ic_launcher_adaptive_fore.png
│ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_adaptive_back.png
│ │ └── ic_launcher_adaptive_fore.png
│ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_adaptive_back.png
│ │ └── ic_launcher_adaptive_fore.png
│ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_adaptive_back.png
│ │ └── ic_launcher_adaptive_fore.png
│ ├── values-night
│ │ └── theme.xml
│ ├── drawable
│ │ ├── amity_live_chat_bottom_sheet_light.xml
│ │ ├── amity_live_chat_bottom_sheet_dark.xml
│ │ ├── amity_compose_bar_send_icon.xml
│ │ └── amity_bottom_sheet_handler.xml
│ ├── mipmap-anydpi-v26
│ │ └── ic_launcher.xml
│ └── layout
│ │ ├── amity_sample_activity_chat_home.xml
│ │ ├── amity_activity_recent_message_list.xml
│ │ ├── amity_activity_message_list_with_custom_ui.xml
│ │ └── amity_activity_live_chat_list.xml
│ └── java
│ └── com
│ └── amity
│ └── socialcloud
│ └── uikit
│ └── sample
│ ├── env
│ ├── Environment.kt
│ ├── SampleEnv.kt
│ ├── SampleUrl.kt
│ └── SampleBroker.kt
│ ├── AmityMyTextMsgViewModel.kt
│ └── AmityShareLinkToExternalApp.kt
├── social
├── .gitignore
├── consumer-rules.pro
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── amity
│ │ └── socialcloud
│ │ └── uikit
│ │ ├── community
│ │ ├── views
│ │ │ ├── AmityCommunityFeedView.kt
│ │ │ └── AmityTrendingChannelsView.kt
│ │ ├── newsfeed
│ │ │ ├── model
│ │ │ │ ├── AmityPostDummyItem.kt
│ │ │ │ ├── FileUploadState.kt
│ │ │ │ ├── AmityBasePostContentItem.kt
│ │ │ │ ├── AmityBasePostHeaderItem.kt
│ │ │ │ ├── AmityBasePostItem.kt
│ │ │ │ ├── AmityBasePostFooterItem.kt
│ │ │ │ └── AmityMediaGalleryTarget.kt
│ │ │ ├── events
│ │ │ │ ├── AmityFeedRefreshEvent.kt
│ │ │ │ ├── AmityCommentRefreshEvent.kt
│ │ │ │ ├── PostOptionClickEvent.kt
│ │ │ │ ├── CommentOptionClickEvent.kt
│ │ │ │ ├── AmityCommentReplyIntentEvent.kt
│ │ │ │ ├── PollVoteClickEvent.kt
│ │ │ │ ├── PostReviewClickEvent.kt
│ │ │ │ ├── PostGalleryClickEvent.kt
│ │ │ │ ├── CommentContentClickEvent.kt
│ │ │ │ ├── PostEngagementClickEvent.kt
│ │ │ │ ├── CommentEngagementClickEvent.kt
│ │ │ │ └── AmityFeedLoadStateEvent.kt
│ │ │ ├── listener
│ │ │ │ ├── AmityPostMediaClickListener.kt
│ │ │ │ ├── AmityPostActionShareListener.kt
│ │ │ │ ├── AmityPostActionLikeListener.kt
│ │ │ │ ├── AmityPostItemClickListener.kt
│ │ │ │ ├── AmityCreatePostButtonClickListener.kt
│ │ │ │ ├── AmityPostImageItemClickListener.kt
│ │ │ │ ├── AmityCreateCommunityClickListener.kt
│ │ │ │ ├── AmityExploreCommunityItemClickListener.kt
│ │ │ │ ├── AmityUserClickListener.kt
│ │ │ │ ├── AmityPostMoreOptionClickListener.kt
│ │ │ │ ├── AmityPostOptionClickListener.kt
│ │ │ │ ├── AmityPostActionAvatarClickListener.kt
│ │ │ │ ├── AmityCommunityClickListener.kt
│ │ │ │ ├── AmityPostLivestreamClickListener.kt
│ │ │ │ ├── AmityPostFileItemClickListener.kt
│ │ │ │ ├── AmityCreatePostImageActionListener.kt
│ │ │ │ ├── AmityPostActionCommunityClickListener.kt
│ │ │ │ ├── AmityPostCommentReplyClickListener.kt
│ │ │ │ ├── AmityCreatePostFileActionListener.kt
│ │ │ │ ├── AmityPostCommentShowAllReplyListener.kt
│ │ │ │ ├── AmityPostImageClickListener.kt
│ │ │ │ ├── AmityCreatePostCommunitySelectionListener.kt
│ │ │ │ ├── AmityPostCommentShowMoreActionListener.kt
│ │ │ │ ├── AmityPostItemListener.kt
│ │ │ │ ├── AmityPostVideoClickListener.kt
│ │ │ │ ├── AmityCommentItemListener.kt
│ │ │ │ ├── AmityPostCommentItemClickListener.kt
│ │ │ │ ├── AmityGlobalUserClickListener.kt
│ │ │ │ └── AmityUserClickListenerImpl.kt
│ │ │ ├── util
│ │ │ │ ├── AmityNewsFeedEvents.kt
│ │ │ │ └── AmityTimelineType.kt
│ │ │ ├── adapter
│ │ │ │ ├── AmityPostImageChildrenItem.kt
│ │ │ │ ├── AmityPostDummyViewHolder.kt
│ │ │ │ ├── AmityGalleryUnknownPostViewHolder.kt
│ │ │ │ ├── AmityPostFooterViewHolder.kt
│ │ │ │ └── AmityPostCountViewHolder.kt
│ │ │ ├── viewholder
│ │ │ │ ├── DeletedCommentViewHolder.kt
│ │ │ │ └── DeletedReplyCommentViewHolder.kt
│ │ │ ├── viewmodel
│ │ │ │ └── UserViewModel.kt
│ │ │ └── view
│ │ │ │ └── AmityBasePostView.kt
│ │ ├── utils
│ │ │ └── AmityShareType.kt
│ │ ├── data
│ │ │ ├── PostReviewBannerData.kt
│ │ │ ├── AmitySelectCategoryItem.kt
│ │ │ ├── CommunityProfileData.kt
│ │ │ └── AmitySelectMemberItem.kt
│ │ ├── profile
│ │ │ └── listener
│ │ │ │ ├── AmityEditUserProfileClickListener.kt
│ │ │ │ └── AmityFeedFragmentDelegate.kt
│ │ ├── explore
│ │ │ ├── viewmodel
│ │ │ │ └── AmityCategorySelectionViewModel.kt
│ │ │ └── listener
│ │ │ │ ├── AmityCommunityItemClickListener.kt
│ │ │ │ ├── AmityCategoryItemClickListener.kt
│ │ │ │ ├── AmityCategoryPreviewFragmentDelegate.kt
│ │ │ │ ├── AmityTrendingCommunityFragmentDelegate.kt
│ │ │ │ └── AmityRecommendedCommunityFragmentDelegate.kt
│ │ ├── detailpage
│ │ │ └── listener
│ │ │ │ ├── AmityMessageClickListener.kt
│ │ │ │ └── AmityEditCommunityProfileClickListener.kt
│ │ ├── members
│ │ │ └── AmityMemberClickListener.kt
│ │ ├── home
│ │ │ ├── listener
│ │ │ │ ├── AmityNewsFeedFragmentDelegate.kt
│ │ │ │ ├── AmityGlobalFeedFragmentDelegate.kt
│ │ │ │ ├── AmityExploreFragmentFragmentDelegate.kt
│ │ │ │ └── AmityMyCommunityListPreviewFragmentDelegate.kt
│ │ │ └── fragments
│ │ │ │ └── AmityCommunityHomeViewModel.kt
│ │ ├── mycommunity
│ │ │ ├── listener
│ │ │ │ └── AmityMyCommunityItemClickListener.kt
│ │ │ └── adapter
│ │ │ │ └── AmityBaseMyCommunityPreviewItemViewHolder.kt
│ │ ├── setting
│ │ │ ├── user
│ │ │ │ └── AmityUserSettingsMenuCreator.kt
│ │ │ ├── story
│ │ │ │ └── AmityStorySettingsMenuCreator.kt
│ │ │ └── postreview
│ │ │ │ └── AmityPostReviewSettingsMenuCreator.kt
│ │ └── notificationsettings
│ │ │ └── pushDetail
│ │ │ └── AmityPostMenuCreator.kt
│ │ └── feed
│ │ └── settings
│ │ ├── AmityPostSharingTarget.kt
│ │ ├── AmityPostRenderer.kt
│ │ └── AmityPostShareClickListener.kt
│ └── res
│ ├── values
│ ├── amity_uikit_social_configs.xml
│ ├── dimens.xml
│ ├── colors.xml
│ └── integers.xml
│ ├── drawable
│ ├── amity_view_image_post_placeholder.xml
│ ├── amity_bg_image_count.xml
│ ├── amity_btn_active.xml
│ ├── amity_item_comment_separator.xml
│ ├── amity_rounded_corner_red.xml
│ ├── amity_rounded_grey_color_bg.xml
│ ├── amity_rounded_primary_color_bg.xml
│ ├── amity_feed_item_separator.xml
│ ├── amity_bg_poll_draft_answer.xml
│ ├── amity_rounded_corner_translucent.xml
│ ├── amity_ic_dot.xml
│ ├── amity_ic_ellipse.xml
│ ├── amity_ic_like_selector.xml
│ ├── amity_ic_dot_base.xml
│ ├── amity_btn_inactive.xml
│ ├── amity_bg_view_replies.xml
│ ├── amity_bg_poll_add_draft_answer.xml
│ ├── amity_bg_avatar_overlay.xml
│ ├── amity_bg_poll_add_draft_answer_error.xml
│ ├── amity_bg_post_attachment_options.xml
│ ├── amity_bg_avatar_overlay_with_gradient.xml
│ ├── amity_ic_cross_black.xml
│ ├── amity_bg_comment_bubble.xml
│ ├── amity_ic_expand_comment_box.xml
│ ├── amity_bg_view_more_comments.xml
│ ├── amity_rounded_corner_border_line_white.xml
│ ├── amity_ic_filled_cross.xml
│ ├── amity_ic_more_horizontal.xml
│ ├── amity_ic_content_expand.xml
│ ├── amity_ic_create.xml
│ ├── amity_ic_push_comments.xml
│ └── amity_ic_ban.xml
│ ├── layout
│ ├── amity_item_post_dummy.xml
│ ├── amity_view_separator.xml
│ ├── amity_item_settings_margin.xml
│ ├── amity_item_community_category_list.xml
│ ├── amity_activity_edit_post.xml
│ ├── amity_item_separate_content.xml
│ ├── amity_user_follower_home_fragment.xml
│ ├── amity_fragment_comment_list.xml
│ ├── amity_item_settings_radio_content.xml
│ ├── amity_fragment_reaction_list.xml
│ ├── amity_item_footer_view_post_file.xml
│ ├── amity_item_post_attachment_option.xml
│ ├── amity_activity_reaction_list.xml
│ ├── amity_activity_user_profile.xml
│ ├── amity_activity_edit_user_profile.xml
│ ├── amity_activity_social_video_player.xml
│ ├── amity_item_settings_header.xml
│ ├── amity_activity_community_member_settings.xml
│ ├── amity_item_base_post.xml
│ ├── amity_activity_category_community_list.xml
│ ├── amity_activity_create_post_role_selection.xml
│ └── amity_fragment_community_member_settings.xml
│ ├── xml
│ └── network_security_config.xml
│ ├── color
│ └── amity_button_bg_selector.xml
│ ├── anim
│ ├── amity_animation_fade_in.xml
│ └── amity_animation_fade_out.xml
│ └── menu
│ ├── amity_poll.xml
│ ├── amity_community_member_report_user_menu.xml
│ ├── amity_reply_action_menu_report.xml
│ ├── amity_comment_action_menu_report.xml
│ ├── amity_feed_action_menu_report_post.xml
│ ├── amity_community_member_unreport_user_menu.xml
│ ├── amity_feed_action_menu_unreport_post.xml
│ ├── amity_reply_action_menu_unreport.xml
│ ├── amity_comment_action_menu_unreport.xml
│ ├── amity_pending_posts_action_menu_owner.xml
│ ├── amity_feed_action_menu_already_reported.xml
│ ├── amity_comment_action_menu_already_reported.xml
│ ├── amity_community_home.xml
│ ├── amity_feed_action_menu_owner.xml
│ ├── amity_reply_action_menu_reply_owner.xml
│ ├── amity_commnet_action_menu_comment_owner.xml
│ ├── amity_feed_action_menu_admin.xml
│ ├── amity_reply_action_menu_admin.xml
│ ├── amity_upload_profile_picture.xml
│ └── amity_commnet_action_menu_admin.xml
├── chat-compose
├── .gitignore
├── consumer-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── amity
│ │ └── socialcloud
│ │ └── uikit
│ │ └── chat
│ │ └── compose
│ │ ├── live
│ │ ├── elements
│ │ │ └── AmityAvatarType.kt
│ │ └── mention
│ │ │ └── AmityMentionSuggestion.kt
│ │ └── AmityChatBehaviorHelper.kt
│ └── res
│ └── layout
│ └── amity_fragment_live_chat.xml
├── common-compose
├── .gitignore
├── consumer-rules.pro
└── src
│ └── main
│ ├── res
│ └── values
│ │ └── strings.xml
│ └── java
│ └── com
│ └── amity
│ └── socialcloud
│ └── uikit
│ └── common
│ ├── behavior
│ ├── AmityBaseBehavior.kt
│ └── AmityBaseBehaviorContext.kt
│ ├── eventbus
│ └── NetworkConnectionEventBus.kt
│ ├── config
│ └── AmityUIKitTheme.kt
│ ├── infra
│ ├── db
│ │ └── entity
│ │ │ ├── AmityAdRecency.kt
│ │ │ ├── AmityNetworkConfig.kt
│ │ │ └── AmityAdAsset.kt
│ └── initializer
│ │ ├── AmityUIKitInitializer.kt
│ │ └── AmityAppContext.kt
│ ├── networkconfig
│ └── AmityNetworkConfigApi.kt
│ ├── utils
│ ├── AmityClientExt.kt
│ ├── AmityIntentExt.kt
│ └── AmityPostExt.kt
│ ├── reaction
│ ├── AmityReactionListPageAction.kt
│ └── AmityReactionListPageState.kt
│ └── ui
│ ├── theme
│ └── Shape.kt
│ └── elements
│ └── AmityNewsFeedDivider.kt
├── social-compose
├── .gitignore
├── consumer-rules.pro
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── amity
│ │ │ └── socialcloud
│ │ │ └── uikit
│ │ │ └── community
│ │ │ └── compose
│ │ │ ├── ui
│ │ │ └── components
│ │ │ │ ├── video
│ │ │ │ └── AmityVideoViewerActivity.kt
│ │ │ │ └── feed
│ │ │ │ └── user
│ │ │ │ └── AmityUserFeedType.kt
│ │ │ ├── post
│ │ │ ├── detail
│ │ │ │ ├── AmityPostDetailPageBehavior.kt
│ │ │ │ └── components
│ │ │ │ │ └── AmityPostContentComponentStyle.kt
│ │ │ ├── composer
│ │ │ │ └── AmityPostComposerPageBehavior.kt
│ │ │ └── model
│ │ │ │ └── AmityFileUploadState.kt
│ │ │ ├── search
│ │ │ └── global
│ │ │ │ └── AmitySocialGlobalSearchPageBehavior.kt
│ │ │ ├── user
│ │ │ └── relationship
│ │ │ │ └── AmityUserRelationshipPageTab.kt
│ │ │ ├── socialhome
│ │ │ └── AmitySocialHomePageTab.kt
│ │ │ ├── community
│ │ │ └── setup
│ │ │ │ ├── AmityCommunitySetupPrivacyMode.kt
│ │ │ │ └── AmityCommunitySetupPageMode.kt
│ │ │ ├── story
│ │ │ ├── draft
│ │ │ │ └── AmityStoryMediaType.kt
│ │ │ └── view
│ │ │ │ └── AmityViewStoryPageType.kt
│ │ │ ├── target
│ │ │ └── AmityPostTargetSelectionPageType.kt
│ │ │ └── utils
│ │ │ └── ShareNativeAndroidSheet.kt
│ └── res
│ │ ├── drawable
│ │ ├── gradient.xml
│ │ ├── amity_ic_play.xml
│ │ ├── amity_ic_story_ad_chevron_top.xml
│ │ ├── amity_ic_alt_check.xml
│ │ ├── amity_ic_post_target.xml
│ │ ├── amity_ic_lock.xml
│ │ ├── amity_ic_category_not_selected.xml
│ │ ├── amity_ic_play_v4.xml
│ │ ├── amity_ic_category_selection_disabled.xml
│ │ ├── amity_ic_community_edit.xml
│ │ └── amity_ic_story_comment_count.xml
│ │ └── layout
│ │ └── amity_exo_social_player.xml
│ └── test
│ └── java
│ └── com
│ └── amity
│ └── socialcloud
│ └── uikit
│ └── community
│ └── compose
│ └── ExampleUnitTest.kt
├── amity-sample-code
├── .gitignore
├── consumer-rules.pro
└── src
│ ├── main
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── amity
│ │ └── snipet
│ │ └── verifier
│ │ └── social
│ │ └── user
│ │ ├── blocked
│ │ └── AmityBlockedUsersPageSample.kt
│ │ └── edit
│ │ └── AmityEditUserProfilePageSample.kt
│ └── test
│ └── java
│ └── com
│ └── amity
│ └── snipet
│ └── verifier
│ └── ExampleUnitTest.kt
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── settings.gradle
└── README.md
/chat/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/amity-uikit/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/chat/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/common/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/logging/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/logging/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sample/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/social/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/social/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/amity-uikit/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chat-compose/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/chat-compose/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/common-compose/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/common-compose/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/social-compose/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/social-compose/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/amity-sample-code/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/amity-sample-code/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/amity-uikit/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/amity-sample-code/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/ui/components/video/AmityVideoViewerActivity.kt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/common-compose/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/sample/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 20sp
4 |
--------------------------------------------------------------------------------
/logging/src/main/res/values/uikit_logging_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 |
--------------------------------------------------------------------------------
/sample/src/main/res/values/uikit_logging_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 |
--------------------------------------------------------------------------------
/sample/src/main/res/values/upstra_sdk_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | sc-staging
4 |
--------------------------------------------------------------------------------
/common/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 180
4 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/behavior/AmityBaseBehavior.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.behavior
2 |
3 | open class AmityBaseBehavior
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/common/src/main/res/drawable/amity_ic_star.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityCommunityHeader.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | class AmityCommunityHeader {
4 | }
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/src/main/res/values/theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_plus_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/common/src/main/res/drawable/amity_ic_plus_white.png
--------------------------------------------------------------------------------
/sample/src/main/res/values-night/theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/views/AmityCommunityFeedView.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.views
2 |
3 | class AmityCommunityFeedView {
4 | }
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/views/AmityTrendingChannelsView.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.views
2 |
3 | class AmityTrendingChannelsView {
4 | }
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityPostDummyItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | class AmityPostDummyItem() {
4 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/AmityFeedRefreshEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | class AmityFeedRefreshEvent {
4 | }
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-hdpi/ic_launcher_adaptive_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_adaptive_back.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-hdpi/ic_launcher_adaptive_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_adaptive_fore.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-mdpi/ic_launcher_adaptive_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_adaptive_back.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-mdpi/ic_launcher_adaptive_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_adaptive_fore.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_back.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_fore.png
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/AmityCommentRefreshEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | class AmityCommentRefreshEvent {
4 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/utils/AmityShareType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.utils
2 |
3 | enum class AmityShareType {
4 | MY_TIMELINE, GROUP, EXTERNAL
5 | }
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_back.png
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmityCo/Amity-Social-Cloud-UIKit-Android-OpenSource/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostMediaClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityPostMediaClickListener
--------------------------------------------------------------------------------
/sample/src/main/res/values/amity_uikit_social_configs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/res/values/amity_uikit_social_configs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityLongPressListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | interface AmityLongPressListener {
4 |
5 | fun onLongPress()
6 | }
--------------------------------------------------------------------------------
/chat-compose/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/util/AmityNewsFeedEvents.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.util
2 |
3 | object AmityNewsFeedEvents {
4 | var newPostCreated = false
5 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_view_image_post_placeholder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/AmityColorShade.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views
2 |
3 | enum class AmityColorShade {
4 | DEFAULT, SHADE1, SHADE2, SHADE3, SHADE4
5 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/post/detail/AmityPostDetailPageBehavior.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.post.detail
2 |
3 | open class AmityPostDetailPageBehavior {
4 | }
--------------------------------------------------------------------------------
/chat-compose/src/main/java/com/amity/socialcloud/uikit/chat/compose/live/elements/AmityAvatarType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.compose.live.elements
2 |
3 | enum class AmityAvatarType {
4 | USER,
5 | MENTION_ALL
6 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/messages/viewModel/AmityUnknownMsgViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.messages.viewModel
2 |
3 | class AmityUnknownMsgViewModel : AmityChatMessageBaseViewModel() {
4 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityMessageListListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | interface AmityMessageListListener {
4 | fun onMessageClicked(position: Int)
5 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityProvider.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import androidx.core.content.FileProvider
4 |
5 | class AmityProvider : FileProvider() {
6 |
7 |
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/FileUploadState.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | enum class FileUploadState {
4 | PENDING, UPLOADING, COMPLETE, FAILED
5 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/linkpreview/models/AmityPreviewMetadataException.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.linkpreview.models
2 |
3 | class AmityPreviewMetadataException(val url: String) : Exception()
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_empty.xml:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/post/composer/AmityPostComposerPageBehavior.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.post.composer
2 |
3 | open class AmityPostComposerPageBehavior {
4 | }
--------------------------------------------------------------------------------
/social/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4dp
5 | 336dp
6 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/data/PostReviewBannerData.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.data
2 |
3 | data class PostReviewBannerData(val isReviewer: Boolean, val postCount: Int, val isVisible: Boolean)
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostActionShareListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityPostActionShareListener {
4 | fun onShareAction()
5 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/util/AmityTimelineType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.util
2 |
3 | enum class AmityTimelineType {
4 | COMMUNITY, GLOBAL, OTHER_USER, MY_TIMELINE, NONE
5 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/messages/viewHolder/AmityMessageItemListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.messages.viewHolder
2 |
3 | interface AmityMessageItemListener {
4 | fun onMessageItemClicked(position: Int)
5 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/search/global/AmitySocialGlobalSearchPageBehavior.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.search.global
2 |
3 | open class AmitySocialGlobalSearchPageBehavior {
4 |
5 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/feed/settings/AmityPostSharingTarget.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.feed.settings
2 |
3 | enum class AmityPostSharingTarget {
4 | OriginFeed, MyFeed, PublicCommunity, PrivateCommunity, External
5 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/home/callback/AmityRecentChatItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.home.callback
2 |
3 | interface AmityRecentChatItemClickListener {
4 | fun onRecentChatItemClick(channelId: String)
5 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityToolBarClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | interface AmityToolBarClickListener {
4 |
5 | fun leftIconClick()
6 |
7 | fun rightIconClick()
8 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_exo_control_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3 | distributionPath=wrapper/dists
4 | zipStorePath=wrapper/dists
5 | zipStoreBase=GRADLE_USER_HOME
6 |
7 |
--------------------------------------------------------------------------------
/logging/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../buildsystem/submodule.gradle"
2 | apply plugin: 'com.android.library'
3 |
4 | dependencies {
5 | implementation "com.jakewharton.timber:timber:4.7.1"
6 | implementation "org.jetbrains.kotlin:kotlin-reflect:1.4.21"
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostActionLikeListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityPostActionLikeListener {
4 | fun onLikeAction(liked: Boolean)
5 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityPostItemClickListener {
4 | fun onClickPostItem(postId: String)
5 | }
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_post_dummy.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/chat/src/main/res/menu/amity_text_sender_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/post/model/AmityFileUploadState.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.post.model
2 |
3 |
4 | enum class AmityFileUploadState {
5 | PENDING, UPLOADING, COMPLETE, FAILED
6 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCreatePostButtonClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityCreatePostButtonClickListener {
4 | fun onClickCreatePost()
5 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostImageItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityPostImageItemClickListener {
4 | fun onClickItem(position: Int)
5 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_image_count.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCreateCommunityClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityCreateCommunityClickListener {
4 | fun onClickCreateCommunity()
5 | }
--------------------------------------------------------------------------------
/sample/src/main/res/drawable/amity_live_chat_bottom_sheet_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
--------------------------------------------------------------------------------
/social/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #EBECEF
4 | #636878
5 | #898E9E
6 |
--------------------------------------------------------------------------------
/sample/src/main/res/drawable/amity_live_chat_bottom_sheet_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityExploreCommunityItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | interface AmityExploreCommunityItemClickListener {
4 | fun onClickExploreCommunity()
5 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/profile/listener/AmityEditUserProfileClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.profile.listener
2 |
3 | interface AmityEditUserProfileClickListener {
4 | fun onClickEditUserProfile(userId: String?)
5 | }
--------------------------------------------------------------------------------
/common/src/main/res/xml/amity_file_path.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/user/relationship/AmityUserRelationshipPageTab.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.user.relationship
2 |
3 | enum class AmityUserRelationshipPageTab {
4 | FOLLOWING,
5 | FOLLOWER;
6 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_btn_active.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_item_comment_separator.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/socialhome/AmitySocialHomePageTab.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.socialhome
2 |
3 | enum class AmitySocialHomePageTab {
4 | NEWSFEED,
5 | EXPLORE,
6 | CLIPS,
7 | MY_COMMUNITIES;
8 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/ui/components/feed/user/AmityUserFeedType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.ui.components.feed.user
2 |
3 | enum class AmityUserFeedType {
4 | POST,
5 | IMAGE,
6 | CLIP,
7 | VIDEO;
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/PostOptionClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | class PostOptionClickEvent(val post: AmityPost) {
6 |
7 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/imagepreview/AmityPreviewImage.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.imagepreview
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class AmityPreviewImage(val url: String) : Parcelable
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmityEventType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | /**
4 | * Data class for event type
5 | * @author sumitlakra
6 | * @date 06/01/2020
7 | */
8 | data class AmityEventType(val type: AmityEventIdentifier, val dataObj: Any)
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_rounded_primary_color_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_rounded_corner_red.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_rounded_grey_color_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_rounded_primary_color_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/messages/viewHolder/AmityAudioPlayListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.messages.viewHolder
2 |
3 | interface AmityAudioPlayListener {
4 |
5 | fun playAudio(vh: AmityAudioMsgBaseViewHolder)
6 |
7 | fun messageDeleted(msgId: String)
8 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/community/setup/AmityCommunitySetupPrivacyMode.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.community.setup
2 |
3 | enum class AmityCommunitySetupPrivacyMode {
4 | PUBLIC,
5 | PRIVATE_VISIBLE,
6 | PRIVATE_HIDDEN
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/CommentOptionClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 |
5 | class CommentOptionClickEvent(val comment: AmityComment) {
6 |
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_feed_item_separator.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/avatar/AmityAvatarShape.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views.avatar
2 |
3 |
4 | class AmityAvatarShape {
5 |
6 | companion object {
7 | const val Circle = 0
8 | const val Rectangle = 1
9 | }
10 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/button/AmityButtonType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views.button
2 |
3 |
4 | class AmityButtonType {
5 |
6 | companion object {
7 | const val Outlined = 0
8 | const val Solid = 1
9 | }
10 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityAudioRecorderListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | import java.io.File
4 |
5 | interface AmityAudioRecorderListener {
6 |
7 | fun onFileRecorded(audioFile: File?)
8 |
9 | fun showMessage()
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/adapter/AmityPostImageChildrenItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.adapter
2 |
3 | import com.amity.socialcloud.sdk.model.core.file.AmityImage
4 |
5 | class AmityPostImageChildrenItem(val images: List) {
6 |
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/AmityCommentReplyIntentEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 |
5 | class AmityCommentReplyIntentEvent(val comment: AmityComment) {
6 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/messages/composebar/AmityChatRoomComposeBar.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.messages.composebar
2 |
3 | sealed class AmityChatRoomComposeBar {
4 |
5 | object DEFAULT : AmityChatRoomComposeBar()
6 |
7 | object TEXT : AmityChatRoomComposeBar()
8 |
9 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/viewmodel/AmityCategorySelectionViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.viewmodel
2 |
3 | import com.amity.socialcloud.uikit.common.base.AmityBaseViewModel
4 |
5 | class AmityCategorySelectionViewModel : AmityBaseViewModel() {
6 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityUserClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
4 |
5 | interface AmityUserClickListener {
6 | fun onClickUser(user: AmityUser)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_poll_draft_answer.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_rounded_corner_translucent.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/social/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/chat/src/main/res/layout/amity_fragment_chat_room.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityChatComposeBarClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | interface AmityChatComposeBarClickListener {
4 |
5 | fun onCameraClicked()
6 | fun onAlbumClicked()
7 | fun onFileClicked()
8 | fun onLocationCLicked()
9 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_bg_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityBasePostContentItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | data class AmityBasePostContentItem(val post: AmityPost, var showFullContent: Boolean = false)
6 |
--------------------------------------------------------------------------------
/social/src/main/res/color/amity_button_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/base/AmityViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.base
2 |
3 | import android.view.View
4 | import androidx.recyclerview.widget.RecyclerView
5 |
6 | abstract class AmityViewHolder(view: View) : RecyclerView.ViewHolder(view) {
7 |
8 | abstract fun bind(data: T)
9 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityFileDownloadStatus.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import android.net.Uri
4 |
5 | interface AmityFileDownloadStatus {
6 | fun onDownloadComplete(fileUri: Uri)
7 | fun onError(error: String?)
8 | fun onProgressUpdate(progress: Int)
9 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostMoreOptionClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | interface AmityPostMoreOptionClickListener {
6 | fun onClickMoreOption(post:AmityPost)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostOptionClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | interface AmityPostOptionClickListener {
6 | fun onClickPostOption(post: AmityPost)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_view_separator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/chat/src/main/res/layout/amity_dialog_chat.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/color/material_btn_text_color_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chat-compose/src/main/java/com/amity/socialcloud/uikit/chat/compose/AmityChatBehaviorHelper.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.compose
2 |
3 | import com.amity.socialcloud.uikit.common.behavior.AmityGlobalBehavior
4 | object AmityChatBehaviorHelper {
5 |
6 | var globalBehavior: AmityGlobalBehavior =
7 | AmityGlobalBehavior()
8 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/home/callback/AmityDirectoryFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.home.callback
2 |
3 | import com.amity.socialcloud.uikit.chat.directory.fragment.AmityDirectoryFragment
4 |
5 | interface AmityDirectoryFragmentDelegate {
6 | fun directoryFragment(): AmityDirectoryFragment
7 | }
--------------------------------------------------------------------------------
/common/src/main/res/color/material_btn_bg_color_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/res/color/material_fab_bg_color_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/res/color/material_fab_icon_text_color_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostActionAvatarClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
4 |
5 | interface AmityPostActionAvatarClickListener {
6 | fun onClickUserAvatar(user: AmityUser)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/profile/listener/AmityFeedFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.profile.listener
2 |
3 | import com.amity.socialcloud.uikit.community.newsfeed.fragment.AmityFeedFragment
4 |
5 | interface AmityFeedFragmentDelegate {
6 | fun getFeedFragment(): AmityFeedFragment
7 | }
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/home/callback/AmityRecentChatFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.home.callback
2 |
3 | import com.amity.socialcloud.uikit.chat.recent.fragment.AmityRecentChatFragment
4 |
5 | interface AmityRecentChatFragmentDelegate {
6 | fun recentChatFragment(): AmityRecentChatFragment
7 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/memberpicker/listener/AmitySelectMemberListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.memberpicker.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
4 |
5 | interface AmitySelectMemberListener {
6 |
7 | fun onMemberClicked(member: AmityUser, position: Int)
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/detailpage/listener/AmityMessageClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.detailpage.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityMessageClickListener {
6 | fun onClickMessage(community: AmityCommunity?)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/members/AmityMemberClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.members
2 |
3 | import com.amity.socialcloud.sdk.model.social.member.AmityCommunityMember
4 |
5 | interface AmityMemberClickListener {
6 |
7 | fun onCommunityMembershipSelected(membership: AmityCommunityMember)
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/PollVoteClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | sealed class PollVoteClickEvent(val pollId: String, val answerIds: List) {
4 |
5 | class VOTE(pollId: String, answerIds: List) : PollVoteClickEvent(pollId, answerIds)
6 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCommunityClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityCommunityClickListener {
6 | fun onClickCommunity(community: AmityCommunity)
7 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/bottomsheet/AmityMenuItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views.bottomsheet
2 |
3 | import com.amity.socialcloud.uikit.common.model.AmityMenuItem
4 |
5 |
6 | interface AmityMenuItemClickListener {
7 |
8 | fun onMenuItemClicked(menuItem: AmityMenuItem)
9 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/dialog/bottomsheet/BottomSheetMenuItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views.dialog.bottomsheet
2 |
3 | data class BottomSheetMenuItem(
4 | val iconResId: Int? = null,
5 | val colorResId: Int? = null,
6 | val titleResId: Int,
7 | val action: () -> Unit
8 | )
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostLivestreamClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.video.stream.AmityStream
4 |
5 | interface AmityPostLivestreamClickListener {
6 | fun onClickLivestreamVideo(stream: AmityStream)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/anim/amity_animation_fade_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/social/src/main/res/anim/amity_animation_fade_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_dot.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_settings_margin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_poll.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmityMenuItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class AmityMenuItem(
8 | val id: Int,
9 | val title: String,
10 | var isAlertItem: Boolean = false
11 | ) : Parcelable
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/data/AmitySelectCategoryItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.data
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class AmitySelectCategoryItem(
8 | var categoryId: String = "",
9 | var name: String = ""
10 | ) : Parcelable
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/listener/AmityCommunityItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityCommunityItemClickListener {
6 | fun onClick(community: AmityCommunity, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/home/listener/AmityNewsFeedFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.home.listener
2 |
3 | import com.amity.socialcloud.uikit.community.newsfeed.fragment.AmityNewsFeedFragment
4 |
5 | interface AmityNewsFeedFragmentDelegate {
6 | fun getNewsFeedFragment(): AmityNewsFeedFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostFileItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.uikit.community.domain.model.AmityFileAttachment
4 |
5 | interface AmityPostFileItemClickListener {
6 | fun onClickFileItem(file: AmityFileAttachment)
7 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/memberpicker/listener/AmitySelectedMemberListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.memberpicker.listener
2 |
3 | import com.amity.socialcloud.uikit.common.model.AmitySelectMemberItem
4 |
5 | interface AmitySelectedMemberListener {
6 |
7 | fun onMemberRemoved(memberAmity: AmitySelectMemberItem)
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/listener/AmityCategoryItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.category.AmityCommunityCategory
4 |
5 | interface AmityCategoryItemClickListener {
6 | fun onCategorySelected(category: AmityCommunityCategory)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/home/listener/AmityGlobalFeedFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.home.listener
2 |
3 | import com.amity.socialcloud.uikit.community.newsfeed.fragment.AmityGlobalFeedFragment
4 |
5 | interface AmityGlobalFeedFragmentDelegate {
6 | fun getGlobalFeedFragment(): AmityGlobalFeedFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/mycommunity/listener/AmityMyCommunityItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.mycommunity.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityMyCommunityItemClickListener {
6 | fun onCommunitySelected(community: AmityCommunity?)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCreatePostImageActionListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.uikit.community.newsfeed.model.PostMedia
4 |
5 | interface AmityCreatePostImageActionListener {
6 | fun onRemoveImage(postMedia: PostMedia, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostActionCommunityClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityPostActionCommunityClickListener {
6 | fun onClickCommunity(community: AmityCommunity)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_ellipse.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/base/FragmentStoreOwnerMap.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.base
2 |
3 | import androidx.lifecycle.ViewModel
4 | import androidx.lifecycle.ViewModelStoreOwner
5 |
6 | class FragmentStoreOwnerMap: ViewModel() {
7 | val owners : HashMap = hashMapOf()
8 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostCommentReplyClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 |
5 | interface AmityPostCommentReplyClickListener {
6 | fun onClickCommentReply(comment: AmityComment, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_community_category_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common/src/main/res/color/material_btn_stroke_color_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/logging/src/main/java/com/amity/socialcloud/uikit/logging/AmityLoggingConfig.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.logging
2 |
3 | object AmityLoggingConfig {
4 | const val LOG_FOLDER_NAME = "UiKitLogs"
5 | const val VERBOSE = "VERBOSE"
6 | const val DEBUG = "DEBUG"
7 | const val INFO = "INFO"
8 | const val WARN = "WARN"
9 | const val ERROR = "ERROR"
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/data/CommunityProfileData.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.data
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | class CommunityProfileData(
6 | val community: AmityCommunity,
7 | val canEditCommunity: Boolean,
8 | val postReviewBanner: PostReviewBannerData,
9 | )
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCreatePostFileActionListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.uikit.community.domain.model.AmityFileAttachment
4 |
5 | interface AmityCreatePostFileActionListener {
6 | fun onRemoveFile(file: AmityFileAttachment, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostCommentShowAllReplyListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 |
5 | interface AmityPostCommentShowAllReplyListener {
6 | fun onClickShowAllReplies(comment: AmityComment, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostImageClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.file.AmityImage
4 |
5 | interface AmityPostImageClickListener : AmityPostMediaClickListener {
6 | fun onClickImage(images: List, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_like_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_community_member_report_user_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_reply_action_menu_report.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/env/Environment.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample.env
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class Environment(
8 | var apiKey: String,
9 | var httpUrl: String,
10 | var socketUrl: String,
11 | var mqttBroker: String,
12 | ) : Parcelable
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_dot_base.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_comment_action_menu_report.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_feed_action_menu_report_post.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/eventbus/NetworkConnectionEventBus.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.eventbus
2 |
3 | import com.amity.socialcloud.sdk.core.session.eventbus.BaseStateEventBus
4 | import com.amity.socialcloud.sdk.core.session.model.NetworkConnectionEvent
5 |
6 | object NetworkConnectionEventBus : BaseStateEventBus()
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/AmityMyTextMsgViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample
2 |
3 | import androidx.databinding.ObservableField
4 | import com.amity.socialcloud.uikit.chat.messages.viewModel.AmityChatMessageBaseViewModel
5 |
6 | class AmityMyTextMsgViewModel : AmityChatMessageBaseViewModel() {
7 |
8 | val text = ObservableField("")
9 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/detailpage/listener/AmityEditCommunityProfileClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.detailpage.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityEditCommunityProfileClickListener {
6 | fun onClickEditCommunityProfile(community: AmityCommunity?)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/home/listener/AmityExploreFragmentFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.home.listener
2 |
3 | import com.amity.socialcloud.uikit.community.explore.fragments.AmityCommunityExplorerFragment
4 |
5 | interface AmityExploreFragmentFragmentDelegate {
6 | fun getExploreFragment(): AmityCommunityExplorerFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_community_member_unreport_user_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_feed_action_menu_unreport_post.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_reply_action_menu_unreport.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCreatePostCommunitySelectionListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
4 |
5 | interface AmityCreatePostCommunitySelectionListener {
6 | fun onClickCommunity(community: AmityCommunity, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_btn_inactive.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_comment_action_menu_unreport.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_pending_posts_action_menu_owner.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/linkpreview/models/AmityPreviewUrlCacheItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.linkpreview.models
2 |
3 | import org.joda.time.DateTime
4 |
5 |
6 | open class AmityPreviewUrlCacheItem(
7 | val url: String,
8 | val editedAt: DateTime?
9 | )
10 |
11 | class AmityPreviewNoUrl : AmityPreviewUrlCacheItem("", DateTime.now())
12 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_arrow_upward.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostCommentShowMoreActionListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 |
5 | interface AmityPostCommentShowMoreActionListener {
6 | fun onClickNewsFeedCommentShowMoreAction(comment: AmityComment, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostItemListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import androidx.fragment.app.Fragment
4 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
5 |
6 | interface AmityPostItemListener {
7 |
8 | fun onClickComment(post: AmityPost, fragment: Fragment)
9 |
10 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_feed_action_menu_already_reported.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_view_replies.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/color/switch_btn_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/layout/amity_bottom_sheet_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/env/SampleEnv.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample.env
2 |
3 | object SampleEnv {
4 | const val LOCAL = "sc-local"
5 | const val DEV = "sc-dev"
6 | const val STAGING = "sc-staging"
7 | const val PRODUCTION_SG = "production-sg"
8 | const val PRODUCTION_US = "production-us"
9 | const val PRODUCTION_EU = "production-eu"
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/listener/AmityCategoryPreviewFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.listener
2 |
3 | import com.amity.socialcloud.uikit.community.explore.fragments.AmityCategoryPreviewFragment
4 |
5 | interface AmityCategoryPreviewFragmentDelegate {
6 | fun categoryPreviewCommunityFragment(): AmityCategoryPreviewFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/listener/AmityTrendingCommunityFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.listener
2 |
3 | import com.amity.socialcloud.uikit.community.explore.fragments.AmityTrendingCommunityFragment
4 |
5 | interface AmityTrendingCommunityFragmentDelegate {
6 | fun trendingCommunityFragment(): AmityTrendingCommunityFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostVideoClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.file.AmityImage
4 |
5 | interface AmityPostVideoClickListener : AmityPostMediaClickListener {
6 | fun onClickVideoThumbnail(parentPostId: String, images: List, position: Int)
7 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_comment_action_menu_already_reported.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/config/AmityUIKitTheme.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.config
2 |
3 | enum class AmityUIKitTheme(val key: String) {
4 | DEFAULT("default"),
5 | DARK("dark"),
6 | LIGHT("light");
7 |
8 | companion object {
9 | fun enumOf(value: String): AmityUIKitTheme = values().find { it.key == value } ?: DEFAULT
10 | }
11 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityCommentItemListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import androidx.fragment.app.Fragment
4 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
5 |
6 | interface AmityCommentItemListener {
7 |
8 | fun onClickReply(comment: AmityComment, fragment: Fragment)
9 |
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityBasePostHeaderItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | data class AmityBasePostHeaderItem(val post: AmityPost,
6 | val showTarget: Boolean,
7 | val showOptions: Boolean = true)
8 |
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_arrow_down.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/infra/db/entity/AmityAdRecency.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.infra.db.entity
2 |
3 | import androidx.room.Entity
4 | import androidx.room.PrimaryKey
5 | import org.joda.time.DateTime
6 |
7 | @Entity(tableName = "ad_recency")
8 | data class AmityAdRecency(
9 | @PrimaryKey
10 | val adId: String,
11 | val lastSeen: DateTime
12 | )
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/networkconfig/AmityNetworkConfigApi.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.networkconfig
2 |
3 | import com.google.gson.JsonObject
4 | import io.reactivex.rxjava3.core.Single
5 | import retrofit2.http.GET
6 |
7 | interface AmityNetworkConfigApi {
8 | @GET("api/v3/network-settings/uikit")
9 | fun getNetworkConfig(): Single
10 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/base/FragmentStoreOwner.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.base
2 |
3 | import androidx.lifecycle.ViewModelStore
4 | import androidx.lifecycle.ViewModelStoreOwner
5 |
6 | class FragmentStoreOwner: ViewModelStoreOwner {
7 | private val store = ViewModelStore()
8 |
9 | override val viewModelStore: ViewModelStore
10 | get() = store
11 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_arrow_back.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/color/radio_btn_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/explore/listener/AmityRecommendedCommunityFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.explore.listener
2 |
3 | import com.amity.socialcloud.uikit.community.explore.fragments.AmityRecommendedCommunityFragment
4 |
5 | interface AmityRecommendedCommunityFragmentDelegate {
6 | fun recommendedCommunityFragment(): AmityRecommendedCommunityFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/home/listener/AmityMyCommunityListPreviewFragmentDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.home.listener
2 |
3 | import com.amity.socialcloud.uikit.community.mycommunity.fragment.AmityMyCommunityPreviewFragment
4 |
5 | interface AmityMyCommunityListPreviewFragmentDelegate {
6 | fun getMyCommunityListPreviewFragment(): AmityMyCommunityPreviewFragment
7 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/setting/user/AmityUserSettingsMenuCreator.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.setting.user
2 |
3 | import com.amity.socialcloud.uikit.community.setting.AmitySettingsItem
4 |
5 | interface AmityUserSettingsMenuCreator {
6 |
7 | fun createBasicInfoHeader(): AmitySettingsItem.Header
8 | fun createEditProfileMenu(): AmitySettingsItem.NavigationContent
9 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/linkpreview/models/AmityPreviewMetadataCacheItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.linkpreview.models
2 |
3 | import org.joda.time.DateTime
4 |
5 |
6 | data class AmityPreviewMetadataCacheItem(
7 | val url: String = "",
8 | val domain: String = "",
9 | val title: String = "",
10 | val imageUrl: String = "",
11 | val timestamp: DateTime
12 | )
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_add.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/env/SampleUrl.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample.env
2 |
3 | import com.amity.socialcloud.sdk.api.core.endpoint.AmityEndpoint
4 |
5 | object SampleUrl {
6 |
7 | fun get(): String {
8 | return get(SampleEnv.PRODUCTION_SG)
9 | }
10 |
11 | fun get(environment: String): String {
12 | return AmityEndpoint.SG.httpEndpoint
13 | }
14 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/PostReviewClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | sealed class PostReviewClickEvent(val post: AmityPost) {
6 |
7 | class ACCEPT(post: AmityPost) : PostReviewClickEvent(post)
8 | class DECLINE(post: AmityPost) : PostReviewClickEvent(post)
9 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_default_ring.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/adapter/AmityPostDummyViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.adapter
2 |
3 | import androidx.recyclerview.widget.RecyclerView
4 | import com.amity.socialcloud.uikit.community.databinding.AmityItemPostDummyBinding
5 |
6 | class AmityPostDummyViewHolder(binding: AmityItemPostDummyBinding) : RecyclerView.ViewHolder(binding.root) {
7 |
8 |
9 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/PostGalleryClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | sealed class PostGalleryClickEvent {
6 |
7 |
8 | class Image(val post: AmityPost) : PostGalleryClickEvent()
9 |
10 | class Video(val post: AmityPost) : PostGalleryClickEvent()
11 |
12 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/setting/story/AmityStorySettingsMenuCreator.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.setting.story
2 |
3 | import com.amity.socialcloud.uikit.community.setting.AmitySettingsItem
4 | import io.reactivex.rxjava3.core.Flowable
5 |
6 | interface AmityStorySettingsMenuCreator {
7 | fun createAllowCommentMenu(isChecked: Flowable): AmitySettingsItem.ToggleContent
8 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_poll_add_draft_answer.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/chat/src/main/res/layout/amity_fragment_create_group_chat.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/infra/db/entity/AmityNetworkConfig.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.infra.db.entity
2 |
3 | import androidx.room.Entity
4 | import androidx.room.PrimaryKey
5 | import com.google.gson.JsonObject
6 |
7 |
8 | @Entity(tableName = "network_config")
9 | data class AmityNetworkConfig(
10 | @PrimaryKey
11 | var id: String,
12 | var config: JsonObject?
13 | )
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_check.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_count.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_bg_search.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | google()
4 | mavenCentral()
5 | gradlePluginPortal()
6 | }
7 | }
8 |
9 | include ':amity-uikit'
10 | rootProject.name = 'SocialPlusUIKit'
11 | include ':chat'
12 | include ':sample'
13 | include ':common'
14 | include ':social'
15 | include ':social-compose'
16 | include ':amity-sample-code'
17 | include ':chat-compose'
18 | include ':common-compose'
19 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_avatar_overlay.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_close.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/env/SampleBroker.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample.env
2 |
3 | import com.amity.socialcloud.sdk.api.core.endpoint.AmityEndpoint
4 |
5 |
6 | object SampleBroker {
7 |
8 | fun get(): String {
9 | return get(SampleEnv.PRODUCTION_SG)
10 | }
11 |
12 | fun get(environment: String): String {
13 | return AmityEndpoint.SG.mqttEndpoint
14 | }
15 |
16 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_poll_add_draft_answer_error.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_post_attachment_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/memberpicker/listener/AmityAddedMemberClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.memberpicker.listener
2 |
3 | import com.amity.socialcloud.uikit.common.model.AmitySelectMemberItem
4 |
5 | interface AmityAddedMemberClickListener {
6 |
7 | fun onMemberRemoved(itemAmity: AmitySelectMemberItem)
8 |
9 | fun onAddButtonClicked()
10 |
11 | fun onMemberCountClicked()
12 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_compose_bar_send_icon.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/viewholder/DeletedCommentViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.viewholder
2 |
3 | import androidx.recyclerview.widget.RecyclerView
4 | import com.amity.socialcloud.uikit.community.databinding.AmityItemDeletedRootCommentBinding
5 |
6 | class DeletedCommentViewHolder(binding: AmityItemDeletedRootCommentBinding) : RecyclerView.ViewHolder(binding.root) {
7 |
8 |
9 | }
--------------------------------------------------------------------------------
/chat/src/main/res/menu/amity_chat_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_avatar_placeholder.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/logging/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/sample/src/main/res/drawable/amity_compose_bar_send_icon.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/home/fragments/AmityCommunityHomeViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.home.fragments
2 |
3 | import androidx.databinding.ObservableBoolean
4 | import com.amity.socialcloud.uikit.common.base.AmityBaseViewModel
5 |
6 | class AmityCommunityHomeViewModel : AmityBaseViewModel() {
7 | var isSearchMode = ObservableBoolean(false)
8 | val emptySearchString = ObservableBoolean(true)
9 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/setting/postreview/AmityPostReviewSettingsMenuCreator.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.setting.postreview
2 |
3 | import com.amity.socialcloud.uikit.community.setting.AmitySettingsItem
4 | import io.reactivex.rxjava3.core.Flowable
5 |
6 | interface AmityPostReviewSettingsMenuCreator {
7 | fun createApproveMemberPostMenu(isChecked: Flowable): AmitySettingsItem.ToggleContent
8 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_avatar_overlay_with_gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_cross_black.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/chat/src/main/res/menu/amity_chat_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmitySelectMemberItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 |
7 | @Parcelize
8 | data class AmitySelectMemberItem(
9 | var id: String = "",
10 | var avatarUrl: String = "",
11 | var name: String = "",
12 | var subTitle: String = "",
13 | var isSelected: Boolean = false
14 | ) : Parcelable
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/CommentContentClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
5 |
6 | sealed class CommentContentClickEvent {
7 |
8 | class Text(val comment: AmityComment, val post: AmityPost?): CommentContentClickEvent()
9 |
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityBasePostItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | data class AmityBasePostItem(
6 | val post: AmityPost,
7 | val headerItems: List,
8 | val contentItems: List,
9 | val footerItems: List
10 | )
11 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_comment_bubble.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/infra/db/entity/AmityAdAsset.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.infra.db.entity
2 |
3 | import android.app.DownloadManager
4 | import androidx.room.Entity
5 | import androidx.room.PrimaryKey
6 |
7 |
8 | @Entity(tableName = "ad_asset")
9 | data class AmityAdAsset(
10 | @PrimaryKey
11 | val fileUrl: String,
12 | val downloadStatus: Int = -1,
13 | val downloadId: Long = -1L
14 | )
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/data/AmitySelectMemberItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.data
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 |
7 | @Parcelize
8 | data class AmitySelectMemberItem(
9 | var id: String = "",
10 | var avatarUrl: String = "",
11 | var name: String = "",
12 | var subTitle: String = "",
13 | var isSelected: Boolean = false
14 | ) : Parcelable
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_edit_post.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_expand_comment_box.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/story/draft/AmityStoryMediaType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.story.draft
2 |
3 | import android.net.Uri
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Parcelize
8 | sealed class AmityStoryMediaType : Parcelable {
9 | data class Image(val uri: Uri) : AmityStoryMediaType()
10 | data class Video(val uri: Uri) : AmityStoryMediaType()
11 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/adapter/AmityGalleryUnknownPostViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.adapter
2 |
3 | import androidx.recyclerview.widget.RecyclerView
4 | import com.amity.socialcloud.uikit.community.databinding.AmityItemGalleryPostUnknownBinding
5 |
6 | class AmityGalleryUnknownPostViewHolder constructor(
7 | binding: AmityItemGalleryPostUnknownBinding,
8 | ) : RecyclerView.ViewHolder(binding.root)
--------------------------------------------------------------------------------
/common/src/main/res/layout/amity_activity_camera.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/gradient.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/layout/amity_exo_social_player.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityPostCommentItemClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
4 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
5 |
6 |
7 | interface AmityPostCommentItemClickListener {
8 | fun onClickItem(comment: AmityComment, position: Int)
9 | fun onClickAvatar(user: AmityUser)
10 | }
--------------------------------------------------------------------------------
/sample/src/main/java/com/amity/socialcloud/uikit/sample/AmityShareLinkToExternalApp.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.sample
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 |
6 | fun Context.shareLinkToExternalApp(uri: String) {
7 | val shareIntent = Intent(Intent.ACTION_SEND)
8 | shareIntent.type = "text/plain"
9 | shareIntent.putExtra(Intent.EXTRA_TEXT, uri)
10 | startActivity(Intent.createChooser(shareIntent, "Share link using"))
11 | }
--------------------------------------------------------------------------------
/chat-compose/src/main/java/com/amity/socialcloud/uikit/chat/compose/live/mention/AmityMentionSuggestion.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.compose.live.mention
2 |
3 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
4 |
5 | sealed class AmityMentionSuggestion {
6 |
7 | class USER(
8 | val user: AmityUser
9 | ) : AmityMentionSuggestion()
10 |
11 | class CHANNEL(
12 | val channelId: String
13 | ) : AmityMentionSuggestion()
14 |
15 |
16 | }
--------------------------------------------------------------------------------
/amity-sample-code/src/test/java/com/amity/snipet/verifier/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.amity.snipet.verifier
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/story/view/AmityViewStoryPageType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.story.view
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | sealed class AmityViewStoryPageType : Parcelable {
8 | data class CommunityFeed(val communityId: String) : AmityViewStoryPageType()
9 | data class GlobalFeed(val communityId: String) : AmityViewStoryPageType()
10 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/viewmodel/UserViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.viewmodel
2 |
3 | import com.amity.socialcloud.sdk.api.core.AmityCoreClient
4 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
5 | import io.reactivex.rxjava3.core.Flowable
6 |
7 | interface UserViewModel {
8 |
9 | fun getCurrentUser(): Flowable {
10 | return AmityCoreClient.getCurrentUser()
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/infra/initializer/AmityUIKitInitializer.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.infra.initializer
2 |
3 | import android.content.Context
4 | import com.amity.socialcloud.uikit.common.ad.AmityAdEngine
5 | import com.amity.socialcloud.uikit.common.infra.db.AmityUIKitDB
6 |
7 |
8 | object AmityUIKitInitializer {
9 |
10 | @Synchronized
11 | fun init(context: Context) {
12 | AmityAppContext.init(context)
13 | }
14 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityTagLogUtil.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import timber.log.Timber
4 |
5 | fun getCurrentClassAndMethodNames(): String {
6 | val e = Thread.currentThread().stackTrace[3]
7 | val s = e.className
8 | return " " + s.substring(s.lastIndexOf('.') + 1, s.length) + "." + e.methodName
9 | }
10 |
11 | fun Throwable.logThrowable() {
12 | Timber.d("${getCurrentClassAndMethodNames()}$this")
13 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/camera/AmityCameraActivity.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.camera
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import com.amity.socialcloud.uikit.common.R
6 |
7 | class AmityCameraActivity : AppCompatActivity() {
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.amity_activity_camera)
11 | }
12 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_bg_transparent_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
9 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_tick_green.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_bg_bottom_naviation.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_separate_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_baseline_dehaze.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/sample/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_user_follower_home_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_v4_radio_button.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_play.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/post/detail/components/AmityPostContentComponentStyle.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.post.detail.components
2 |
3 | enum class AmityPostContentComponentStyle {
4 | FEED,
5 | DETAIL;
6 |
7 | fun fromString(style: String): AmityPostContentComponentStyle {
8 | return when (style) {
9 | "FEED" -> FEED
10 | "DETAIL" -> DETAIL
11 | else -> FEED
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/social-compose/src/test/java/com/amity/socialcloud/uikit/community/compose/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose
2 |
3 | import org.junit.Assert.assertEquals
4 | import org.junit.Test
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * See [testing documentation](http://d.android.com/tools/testing).
10 | */
11 | class ExampleUnitTest {
12 | @Test
13 | fun addition_isCorrect() {
14 | assertEquals(4, 2 + 2)
15 | }
16 | }
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityClientExt.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import com.amity.socialcloud.sdk.api.core.AmityCoreClient
4 | import com.amity.socialcloud.sdk.model.core.user.AmityUserType
5 |
6 | fun AmityCoreClient.isVisitor(): Boolean {
7 | return AmityCoreClient.getCurrentUserType() == AmityUserType.VISITOR
8 | }
9 |
10 | fun AmityCoreClient.isSignedIn(): Boolean {
11 | return AmityCoreClient.getCurrentUserType() == AmityUserType.SIGNED_IN
12 | }
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_play.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/adapter/AmityPostFooterViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.adapter
2 |
3 | import android.view.View
4 | import androidx.recyclerview.widget.RecyclerView
5 | import com.amity.socialcloud.uikit.community.newsfeed.model.AmityBasePostFooterItem
6 |
7 | open class AmityPostFooterViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
8 |
9 | open fun bind(data: AmityBasePostFooterItem, position: Int) {
10 |
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/feed/settings/AmityPostRenderer.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.feed.settings
2 |
3 | import android.view.View
4 | import com.amity.socialcloud.uikit.community.newsfeed.adapter.AmityPostContentViewHolder
5 |
6 | interface AmityPostRenderer {
7 |
8 | fun getDataType(): String
9 |
10 | fun getLayoutId(): Int
11 |
12 | fun createViewHolder(view: View): AmityPostContentViewHolder
13 |
14 | fun enableHeader(): Boolean
15 |
16 | fun enableFooter(): Boolean
17 |
18 | }
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_bg_view_more_comments.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_fragment_comment_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_community_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_image.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmityReactionType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | import androidx.annotation.DrawableRes
4 | import com.amity.socialcloud.uikit.common.R
5 |
6 | data class AmityReactionType(
7 | val name: String,
8 | @DrawableRes val icon: Int,
9 | ) {
10 | companion object {
11 | val UNKNOWN : AmityReactionType = AmityReactionType(
12 | name = "unknown",
13 | icon = R.drawable.amity_ic_reaction_like // Placeholder for unknown reaction icon
14 | )
15 | }
16 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_photo.xml:
--------------------------------------------------------------------------------
1 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/PostEngagementClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | sealed class PostEngagementClickEvent {
6 |
7 | class Reaction(val post: AmityPost, val isAdding: Boolean) : PostEngagementClickEvent()
8 |
9 | class Comment(val post: AmityPost) : PostEngagementClickEvent()
10 |
11 | class Sharing(val post: AmityPost) : PostEngagementClickEvent()
12 |
13 | }
--------------------------------------------------------------------------------
/logging/src/main/java/com/amity/socialcloud/uikit/logging/AmityExceptionHandler.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.logging
2 |
3 | class AmityExceptionHandler : Thread.UncaughtExceptionHandler {
4 | private var exceptionHandler: Thread.UncaughtExceptionHandler? = null
5 |
6 | init {
7 | exceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
8 | }
9 |
10 | override fun uncaughtException(t: Thread, e: Throwable) {
11 | LogHelper.ex(e)
12 | exceptionHandler?.uncaughtException(t, e)
13 | }
14 | }
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_story_ad_chevron_top.xml:
--------------------------------------------------------------------------------
1 |
6 |
13 |
14 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_settings_radio_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
13 |
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/messages/viewModel/AmityTextMessageViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.messages.viewModel
2 |
3 | import androidx.databinding.ObservableField
4 | import com.amity.socialcloud.uikit.chat.R
5 |
6 | class AmityTextMessageViewModel : AmitySelectableMessageViewModel() {
7 |
8 | val text = ObservableField()
9 | val senderFillColor = ObservableField(R.color.amityColorPrimary)
10 | val receiverFillColor = ObservableField(R.color.amityMessageBubbleInverse)
11 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_feed_action_menu_owner.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityIntentExt.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import android.content.Intent
4 | import android.os.Build
5 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
6 |
7 | fun Intent.getCommunity(key: String): AmityCommunity? {
8 | return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
9 | extras?.getParcelable(key, AmityCommunity::class.java)
10 | } else {
11 | extras?.getParcelable(key)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/social/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2
4 | 8
5 | 3
6 | 3
7 | 30
8 | 30
9 | 128
10 | 100
11 |
--------------------------------------------------------------------------------
/amity-uikit/src/main/java/com/amity/socialcloud/uikit/AmityUIKitClient.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit
2 |
3 | import com.amity.socialcloud.sdk.api.core.AmityCoreClient
4 | import com.amity.socialcloud.sdk.model.core.shareablelink.AmityShareableLinkConfiguration
5 | import com.amity.socialcloud.uikit.social.AmitySocialUISettings
6 | import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
7 | import io.reactivex.rxjava3.schedulers.Schedulers
8 |
9 |
10 | object AmityUIKitClient {
11 |
12 | val socialUISettings = AmitySocialUISettings
13 |
14 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/feed/settings/AmityPostShareClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.feed.settings
2 |
3 | import android.content.Context
4 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
5 |
6 | interface AmityPostShareClickListener {
7 |
8 | fun shareToMyTimeline(context: Context, post: AmityPost) {
9 |
10 | }
11 |
12 | fun shareToGroup(context: Context, post: AmityPost) {
13 |
14 | }
15 |
16 | fun shareToExternal(context: Context, post: AmityPost) {
17 |
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/community/setup/AmityCommunitySetupPageMode.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.community.setup
2 |
3 | import android.os.Parcelable
4 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Parcelize
8 | sealed class AmityCommunitySetupPageMode : Parcelable {
9 | object Create : AmityCommunitySetupPageMode()
10 |
11 | data class Edit(val community: AmityCommunity) : AmityCommunitySetupPageMode()
12 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_reply_action_menu_reply_owner.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/target/AmityPostTargetSelectionPageType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.target
2 |
3 | enum class AmityPostTargetSelectionPageType(val key: String) {
4 | POST("post_generic"),
5 | POLL("post_poll"),
6 | CLIP("post_clip"),
7 | LIVESTREAM("post_live_stream");
8 |
9 | companion object {
10 | fun enumOf(value: String?): AmityPostTargetSelectionPageType {
11 | return values().find { it.key == value } ?: POST
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_default_avatar_direct_chat.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityNumberUtil.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import java.math.RoundingMode
4 | import java.text.DecimalFormat
5 |
6 | object AmityNumberUtil {
7 | fun getNumberAbbreveation(number: Int): String {
8 | val format = DecimalFormat("#.#")
9 | format.roundingMode = RoundingMode.HALF_UP
10 | return when {
11 | number < 1000 -> number.toString()
12 | number < 1000000 -> "${format.format(number / 1000f)}K"
13 | else -> "${format.format(number / 1000000f)}M"
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/CommentEngagementClickEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
4 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
5 |
6 | sealed class CommentEngagementClickEvent {
7 |
8 | class Reaction(val comment: AmityComment, val isAdding: Boolean) : CommentEngagementClickEvent()
9 |
10 | class Reply(val comment: AmityComment, val post: AmityPost?) : CommentEngagementClickEvent()
11 |
12 | }
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_fragment_reaction_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_commnet_action_menu_comment_owner.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/chat-compose/src/main/res/layout/amity_fragment_live_chat.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_plus_button.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_arrow_down.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_rounded_corner_border_line_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_filled_cross.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/view/AmityBasePostView.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import androidx.recyclerview.widget.RecyclerView
6 |
7 | class AmityBasePostView : RecyclerView {
8 |
9 | constructor(context: Context) : super(context)
10 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
11 | constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_filled_cross.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_more_horizontal.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/viewholder/DeletedReplyCommentViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.viewholder
2 |
3 | import androidx.recyclerview.widget.RecyclerView
4 | import com.amity.socialcloud.sdk.model.social.comment.AmityComment
5 | import com.amity.socialcloud.uikit.community.databinding.AmityItemDeletedReplyCommentBinding
6 |
7 | class DeletedReplyCommentViewHolder(binding: AmityItemDeletedReplyCommentBinding) : RecyclerView.ViewHolder(binding.root) {
8 |
9 | fun bind(comment: AmityComment) {
10 |
11 |
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/reaction/AmityReactionListPageAction.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.reaction
2 |
3 | import com.amity.socialcloud.sdk.model.core.reaction.AmityReactionReferenceType
4 |
5 | sealed interface AmityReactionListPageAction {
6 |
7 | data class LoadData(val referenceType: AmityReactionReferenceType,
8 | val referenceId: String) : AmityReactionListPageAction
9 |
10 | data class GoToTab(val tabIndex: Int) : AmityReactionListPageAction
11 | data class RemoveReaction(val reactionName: String) : AmityReactionListPageAction
12 | }
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_footer_view_post_file.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_post_attachment_option.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/chat/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | id 'org.jetbrains.kotlin.android'
4 | id 'kotlin-parcelize'
5 | id 'org.jetbrains.kotlin.kapt'
6 | }
7 |
8 | apply from: "../buildsystem/activity.gradle"
9 |
10 | android {
11 | namespace 'com.amity.socialcloud.uikit.chat'
12 |
13 | packagingOptions {
14 | pickFirst("META-INF/*.kotlin_module")
15 | exclude 'META-INF/INDEX.LIST'
16 | exclude 'META-INF/io.netty.versions.properties'
17 | }
18 | }
19 |
20 | dependencies {
21 | api project(path: ':common')
22 | api project(path: ':chat-compose')
23 | }
24 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/ui/theme/Shape.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.ui.theme
2 |
3 | import androidx.compose.foundation.shape.RoundedCornerShape
4 | import androidx.compose.foundation.shape.ZeroCornerSize
5 | import androidx.compose.runtime.Immutable
6 | import androidx.compose.ui.graphics.Shape
7 |
8 | val AmityUIKitShapes = AmityShapes(
9 | component = RoundedCornerShape(ZeroCornerSize),
10 | surface = RoundedCornerShape(ZeroCornerSize)
11 | )
12 |
13 | @Immutable
14 | data class AmityShapes(
15 | val component: Shape,
16 | val surface: Shape
17 | )
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmitySingleLiveData.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import androidx.lifecycle.LifecycleOwner
4 | import androidx.lifecycle.MutableLiveData
5 | import androidx.lifecycle.Observer
6 |
7 | class AmitySingleLiveData : MutableLiveData() {
8 |
9 | override fun observe(owner: LifecycleOwner, observer: Observer) {
10 | super.observe(owner, Observer { t ->
11 | if (t != null) {
12 | observer.onChanged(t)
13 | postValue(null)
14 | }
15 | })
16 | }
17 | }
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_alt_check.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_post_target.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_lock.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmityMessageReactions.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | object AmityMessageReactions {
4 | private val reactions = mutableListOf()
5 |
6 | fun addReaction(reaction: AmityReactionType) {
7 | if (reactions.none { it.name == reaction.name }) {
8 | reactions.add(reaction)
9 | }
10 | }
11 |
12 | fun getList(): List {
13 | return reactions.toList()
14 | }
15 |
16 | fun toReaction(name: String): AmityReactionType? {
17 | return reactions.find { it.name == name } ?: reactions.firstOrNull()
18 | }
19 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_search.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_unblock_user.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/layout/amity_view_radio_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sample/src/main/res/layout/amity_sample_activity_chat_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_category_not_selected.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/mycommunity/adapter/AmityBaseMyCommunityPreviewItemViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.mycommunity.adapter
2 |
3 | import android.view.View
4 | import androidx.recyclerview.widget.RecyclerView
5 | import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
6 | import com.amity.socialcloud.uikit.common.base.AmityBaseRecyclerViewPagingDataAdapter
7 |
8 |
9 | abstract class AmityBaseMyCommunityPreviewItemViewHolder(
10 | itemView: View
11 | ) : RecyclerView.ViewHolder(itemView), AmityBaseRecyclerViewPagingDataAdapter.Binder
12 |
--------------------------------------------------------------------------------
/chat/src/main/res/layout/amity_fragment_directory.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_play_v4.xml:
--------------------------------------------------------------------------------
1 |
6 |
10 |
11 |
13 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_chevron_right.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_sponsor_badge.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_category_selection_disabled.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/adapter/AmityPostCountViewHolder.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.adapter
2 |
3 | import android.view.View
4 | import androidx.recyclerview.widget.RecyclerView
5 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
6 | import com.amity.socialcloud.uikit.common.base.AmityBaseRecyclerViewAdapter
7 |
8 | class AmityPostCountViewHolder constructor(itemView: View) : RecyclerView.ViewHolder(itemView),
9 | AmityBaseRecyclerViewAdapter.IBinder {
10 |
11 | override fun bind(data: AmityPost?, position: Int) {
12 |
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_reaction_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_user_profile.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/components/AmityStyleColorSpan.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.components
2 |
3 | import android.text.TextPaint
4 | import android.text.style.StyleSpan
5 | import androidx.annotation.ColorInt
6 |
7 | class AmityStyleColorSpan(@ColorInt private val color: Int, style: Int) : StyleSpan(style) {
8 |
9 | override fun updateDrawState(ds: TextPaint?) {
10 | super.updateDrawState(ds)
11 | ds?.color = color
12 | }
13 |
14 | override fun updateMeasureState(paint: TextPaint) {
15 | super.updateMeasureState(paint)
16 | paint.color = color
17 | }
18 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityThemeUtil.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import android.content.Context
4 | import com.amity.socialcloud.uikit.common.R
5 |
6 | object AmityThemeUtil {
7 |
8 | fun setCurrentTheme(context: Context) {
9 | val sharedPref = context.getSharedPreferences("AMITY_PREF", Context.MODE_PRIVATE)
10 | val currentTheme = sharedPref.getInt("THEME", 1)
11 | if (currentTheme == 1) {
12 | context.setTheme(R.style.AmityAppTheme1)
13 | } else {
14 | context.setTheme(R.style.AmityAppTheme2)
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_community_edit.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_content_expand.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_create.xml:
--------------------------------------------------------------------------------
1 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_edit_user_profile.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_social_video_player.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/behavior/AmityBaseBehaviorContext.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.behavior
2 |
3 | import android.content.Intent
4 | import androidx.activity.result.ActivityResultLauncher
5 |
6 | open class AmityBaseBehaviorContext(
7 | private val baseContext: android.content.Context,
8 | private val baseLauncher: ActivityResultLauncher? = null,
9 | ) {
10 | fun launchActivity(intent: Intent) {
11 | if (baseLauncher == null) {
12 | baseContext.startActivity(intent)
13 | } else {
14 | baseLauncher.launch(intent)
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/ui/elements/AmityNewsFeedDivider.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.ui.elements
2 |
3 | import androidx.compose.material3.HorizontalDivider
4 | import androidx.compose.runtime.Composable
5 | import androidx.compose.ui.Modifier
6 | import androidx.compose.ui.unit.dp
7 | import com.amity.socialcloud.uikit.common.ui.theme.AmityTheme
8 |
9 | @Composable
10 | fun AmityNewsFeedDivider(
11 | modifier: Modifier = Modifier,
12 | ) {
13 | HorizontalDivider(
14 | modifier = modifier,
15 | thickness = 8.dp,
16 | color = AmityTheme.colors.newsfeedDivider,
17 | )
18 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/model/AmitySocialReactions.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.model
2 |
3 | object AmitySocialReactions {
4 | private val reactions = mutableListOf()
5 |
6 | fun addReaction(reaction: AmityReactionType) {
7 | if (reactions.none { it.name == reaction.name }) {
8 | reactions.add(reaction)
9 | }
10 | }
11 |
12 | fun getList(): List {
13 | return reactions.toList()
14 | }
15 |
16 | fun toReaction(name: String): AmityReactionType {
17 | return reactions.find { it.name == name } ?: reactions.firstOrNull() ?: AmityReactionType.UNKNOWN
18 | }
19 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_arrow.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_settings_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/chat/src/main/res/layout/amity_activity_chat.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/res/values-v27/shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_community_member_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_item_base_post.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/infra/initializer/AmityAppContext.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.infra.initializer
2 |
3 | import android.annotation.SuppressLint
4 | import android.content.Context
5 |
6 |
7 | @SuppressLint("StaticFieldLeak")
8 | object AmityAppContext {
9 | private var context: Context? = null
10 |
11 | fun init(context: Context) {
12 | if (this.context == null) {
13 | this.context = context.applicationContext
14 | }
15 | }
16 |
17 | fun getContext(): Context {
18 | return context ?: throw IllegalStateException("Context is not initialized")
19 | }
20 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_back.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_post_creation.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_push_comments.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_category_community_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_activity_create_post_role_selection.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/base/AmityFragmentExtension.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.base
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 | import androidx.fragment.app.Fragment
5 | import androidx.lifecycle.ViewModel
6 | import androidx.lifecycle.ViewModelProvider
7 | import androidx.lifecycle.ViewModelStoreOwner
8 |
9 | fun Fragment.createViewModel(viewModelStoreOwner: ViewModelStoreOwner = (requireActivity() as AppCompatActivity).getFragmentViewModelStoreOwner(this),
10 | clazz: Class) : T {
11 | return ViewModelProvider(viewModelStoreOwner).get(clazz)
12 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/common/views/list/AmityRecyclerView.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.common.views.list
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import androidx.recyclerview.widget.RecyclerView
6 |
7 | class AmityRecyclerView : RecyclerView {
8 |
9 | constructor(context: Context) : super(context)
10 |
11 | constructor(context: Context, attributeSet: AttributeSet?) : super(context, attributeSet)
12 |
13 | constructor(context: Context, attributeSet: AttributeSet?, defStyle: Int) : super(
14 | context,
15 | attributeSet,
16 | defStyle
17 | )
18 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityBasePostFooterItem.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | sealed class AmityBasePostFooterItem(val post: AmityPost) {
6 |
7 | class POST_ENGAGEMENT(post: AmityPost,
8 | val isReadOnly: Boolean) : AmityBasePostFooterItem(post)
9 |
10 | class COMMENT_PREVIEW(post: AmityPost,
11 | val isReadOnly: Boolean) : AmityBasePostFooterItem(post)
12 |
13 | class POST_REVIEW(post: AmityPost) : AmityBasePostFooterItem(post)
14 |
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/model/AmityMediaGalleryTarget.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.model
2 |
3 | sealed class AmityMediaGalleryTarget(val id: String) {
4 | internal abstract fun getName(): String
5 | class USER(val userId: String) : AmityMediaGalleryTarget(userId) {
6 | override fun getName() = TARGET_USER
7 | }
8 |
9 | class COMMUNITY(val communityId: String) : AmityMediaGalleryTarget(communityId) {
10 | override fun getName() = TARGET_COMMUNITY
11 | }
12 | }
13 |
14 |
15 | internal const val TARGET_USER = "user"
16 | internal const val TARGET_COMMUNITY = "community"
--------------------------------------------------------------------------------
/common/src/main/java/com/amity/socialcloud/uikit/common/utils/AmitySafeClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import android.os.SystemClock
4 | import android.view.View
5 |
6 | class AmitySafeClickListener(
7 | private var defaultInterval: Int = 1000,
8 | private val onSafeCLick: (View) -> Unit
9 | ) : View.OnClickListener {
10 | private var lastTimeClicked: Long = 0
11 | override fun onClick(v: View) {
12 | if (SystemClock.elapsedRealtime() - lastTimeClicked < defaultInterval) {
13 | return
14 | }
15 | lastTimeClicked = SystemClock.elapsedRealtime()
16 | onSafeCLick(v)
17 | }
18 | }
--------------------------------------------------------------------------------
/common/src/main/res/layout/amity_item_image_preview.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
12 |
13 |
--------------------------------------------------------------------------------
/sample/src/main/res/layout/amity_activity_recent_message_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/social-compose/src/main/java/com/amity/socialcloud/uikit/community/compose/utils/ShareNativeAndroidSheet.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.compose.utils
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 |
6 | fun sharePost(context: Context, postLink: String) {
7 | val shareIntent = Intent().apply {
8 | action = Intent.ACTION_SEND
9 | type = "text/plain"
10 | putExtra(Intent.EXTRA_TEXT, postLink)
11 | putExtra(Intent.EXTRA_SUBJECT, "Check out this post")
12 | }
13 |
14 | val chooserIntent = Intent.createChooser(shareIntent, "Share post via")
15 | context.startActivity(chooserIntent)
16 | }
17 |
--------------------------------------------------------------------------------
/sample/src/main/res/layout/amity_activity_message_list_with_custom_ui.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/social-compose/src/main/res/drawable/amity_ic_story_comment_count.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/util/MessageType.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.util
2 |
3 | object MessageType {
4 | const val MESSAGE_ID_TEXT_SENDER = 1111
5 | const val MESSAGE_ID_TEXT_RECEIVER = 1112
6 | const val MESSAGE_ID_IMAGE_SENDER = 1113
7 | const val MESSAGE_ID_IMAGE_RECEIVER = 1114
8 | const val MESSAGE_ID_FILE_SENDER = 1115
9 | const val MESSAGE_ID_FILE_RECEIVER = 1116
10 | const val MESSAGE_ID_AUDIO_SENDER = 1117
11 | const val MESSAGE_ID_AUDIO_RECEIVER = 1118
12 | const val MESSAGE_ID_CUSTOM_SENDER = 1129
13 | const val MESSAGE_ID_CUSTOM_RECEIVER = 1130
14 | const val MESSAGE_ID_UNKNOWN = 2222
15 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_attachment.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_circle.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityGlobalUserClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import androidx.fragment.app.Fragment
4 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
5 | import com.amity.socialcloud.uikit.community.profile.activity.AmityUserProfileActivity
6 |
7 | @Deprecated("Beta usage")
8 | interface AmityGlobalUserClickListener {
9 | fun onClickUser(fragment: Fragment, user: AmityUser) {
10 | val intent = AmityUserProfileActivity.newIntent(fragment.requireContext(), user.getUserId())
11 | fragment.requireContext().startActivity(intent)
12 | }
13 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_error.xml:
--------------------------------------------------------------------------------
1 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_more_horiz.xml:
--------------------------------------------------------------------------------
1 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/sample/src/main/res/drawable/amity_bottom_sheet_handler.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/directory/fragment/AmityDirectoryFragment.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.directory.fragment
2 |
3 | import android.os.Bundle
4 | import android.view.LayoutInflater
5 | import android.view.View
6 | import android.view.ViewGroup
7 | import androidx.fragment.app.Fragment
8 | import com.amity.socialcloud.uikit.chat.R
9 |
10 | class AmityDirectoryFragment : Fragment() {
11 |
12 | override fun onCreateView(
13 | inflater: LayoutInflater, container: ViewGroup?,
14 | savedInstanceState: Bundle?
15 | ): View? {
16 | return inflater.inflate(R.layout.amity_fragment_directory, container, false)
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/events/AmityFeedLoadStateEvent.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.events
2 |
3 | import com.amity.socialcloud.sdk.model.core.error.AmityError
4 |
5 | sealed class AmityFeedLoadStateEvent {
6 |
7 | class LOADED(private val itemCount: Int) : AmityFeedLoadStateEvent() {
8 | fun getItemCount(): Int {
9 | return itemCount
10 | }
11 | }
12 |
13 | class ERROR(private val error: AmityError) : AmityFeedLoadStateEvent() {
14 | fun getError(): AmityError {
15 | return error
16 | }
17 | }
18 |
19 | object LOADING : AmityFeedLoadStateEvent()
20 | }
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/newsfeed/listener/AmityUserClickListenerImpl.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.newsfeed.listener
2 |
3 | import androidx.fragment.app.Fragment
4 | import com.amity.socialcloud.sdk.model.core.user.AmityUser
5 | import com.amity.socialcloud.uikit.community.profile.activity.AmityUserProfileActivity
6 |
7 | class AmityUserClickListenerImpl(private val fragment: Fragment) : AmityUserClickListener {
8 |
9 | override fun onClickUser(user: AmityUser) {
10 | val intent = AmityUserProfileActivity.newIntent(fragment.requireContext(), user.getUserId())
11 | fragment.requireContext().startActivity(intent)
12 | }
13 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Amity-Social-Cloud-UIKit-Android
2 | Our UI Kits include user interfaces to enable fast integration of standard
3 | Amity Chat and Amity Social features into new or existing applications.
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/utils/AmityPostExt.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.utils
2 |
3 | import com.amity.socialcloud.sdk.model.social.post.AmityPost
4 |
5 | fun AmityPost.isSupportedDataTypes(): Boolean {
6 | return getChildren().isEmpty() || getChildren().any { child ->
7 | val data = child.getData()
8 | return data is AmityPost.Data.TEXT
9 | || data is AmityPost.Data.IMAGE
10 | || data is AmityPost.Data.VIDEO
11 | || data is AmityPost.Data.CLIP
12 | || data is AmityPost.Data.LIVE_STREAM
13 | || data is AmityPost.Data.POLL
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/sample/src/main/res/layout/amity_activity_live_chat_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
15 |
16 |
--------------------------------------------------------------------------------
/chat/src/main/res/drawable/amity_ic_image_failed.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/social/src/main/res/drawable/amity_ic_ban.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/social/src/main/res/layout/amity_fragment_community_member_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_feed_action_menu_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_reply_action_menu_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
--------------------------------------------------------------------------------
/chat/src/main/java/com/amity/socialcloud/uikit/chat/home/groupchat/AmityCreateGroupChatFragment.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.chat.home.groupchat
2 |
3 | import android.os.Bundle
4 | import android.view.LayoutInflater
5 | import android.view.View
6 | import android.view.ViewGroup
7 | import androidx.fragment.app.Fragment
8 | import com.amity.socialcloud.uikit.chat.R
9 |
10 |
11 | class AmityCreateGroupChatFragment : Fragment() {
12 |
13 | override fun onCreateView(
14 | inflater: LayoutInflater, container: ViewGroup?,
15 | savedInstanceState: Bundle?
16 | ): View? {
17 | return inflater.inflate(R.layout.amity_fragment_create_group_chat, container, false)
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_story_flash.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/sample/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @color/upstraColorPrimary
4 | @color/upstraColorSecondary
5 | @color/upstraColorAlert
6 | @color/upstraColorHighlight
7 | @color/upstraColorBase
8 | @color/upstraColorBaseInverse
9 | @color/upstraMessageBubble
10 | @color/upstraMessageBubbleInverse
11 |
12 |
--------------------------------------------------------------------------------
/social/src/main/java/com/amity/socialcloud/uikit/community/notificationsettings/pushDetail/AmityPostMenuCreator.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.community.notificationsettings.pushDetail
2 |
3 | import com.amity.socialcloud.uikit.community.setting.AmitySettingsItem
4 |
5 | interface AmityPostMenuCreator {
6 | fun createReactPostMenu(communityId: String): AmitySettingsItem.TextContent
7 | fun createReactPostRadioMenu(communityId: String, choices: List>): AmitySettingsItem.RadioContent
8 | fun createNewPostMenu(communityId: String): AmitySettingsItem.TextContent
9 | fun createNewPostRadioMenu(communityId: String, choices: List>): AmitySettingsItem.RadioContent
10 | }
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_upload_profile_picture.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/common-compose/src/main/java/com/amity/socialcloud/uikit/common/reaction/AmityReactionListPageState.kt:
--------------------------------------------------------------------------------
1 | package com.amity.socialcloud.uikit.common.reaction
2 |
3 | import androidx.paging.PagingData
4 | import com.amity.socialcloud.sdk.model.core.reaction.AmityReaction
5 | import com.amity.socialcloud.sdk.model.core.reaction.AmityReactionReferenceType
6 | import kotlinx.coroutines.flow.Flow
7 | import kotlinx.coroutines.flow.emptyFlow
8 |
9 | data class AmityReactionListPageState (
10 | val referenceType : AmityReactionReferenceType = AmityReactionReferenceType.MESSAGE,
11 | val referenceId : String = "",
12 | val tabItems : List = listOf(ReactionTab("All", 0)),
13 | val currentIndex : Int = 0,
14 | )
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_add_black.xml:
--------------------------------------------------------------------------------
1 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/amity_ic_location.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/layout/amity_view_media_gallery_tab.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
--------------------------------------------------------------------------------
/social/src/main/res/menu/amity_commnet_action_menu_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
--------------------------------------------------------------------------------
/amity-sample-code/src/main/java/com/amity/snipet/verifier/social/user/blocked/AmityBlockedUsersPageSample.kt:
--------------------------------------------------------------------------------
1 | package com.amity.snipet.verifier.social.user.blocked
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.amity.socialcloud.uikit.community.compose.user.blocked.AmityBlockedUsersPage
5 |
6 | class AmityBlockedUsersPageSample {
7 | /* begin_sample_code
8 | gist_id: b6eab4bb39ea962fb5b997833f0bc890
9 | filename: AmityBlockedUsersPageSample.kt
10 | asc_page: https://docs.amity.co/amity-uikit/uikit-v4-beta/
11 | description: Blocked Users Page sample
12 | */
13 | @Composable
14 | fun composePage() {
15 | AmityBlockedUsersPage()
16 | }
17 | /* end_sample_code */
18 | }
--------------------------------------------------------------------------------
/amity-sample-code/src/main/java/com/amity/snipet/verifier/social/user/edit/AmityEditUserProfilePageSample.kt:
--------------------------------------------------------------------------------
1 | package com.amity.snipet.verifier.social.user.edit
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.amity.socialcloud.uikit.community.compose.user.edit.AmityEditUserProfilePage
5 |
6 | class AmityEditUserProfilePageSample {
7 | /* begin_sample_code
8 | gist_id: bae34848ea10320f9a4eb52d8e489702
9 | filename: AmityEditUserProfilePageSample.kt
10 | asc_page: https://docs.amity.co/amity-uikit/uikit-v4-beta/
11 | description: Edit User Page sample
12 | */
13 | @Composable
14 | fun composePage() {
15 | AmityEditUserProfilePage()
16 | }
17 | /* end_sample_code */
18 | }
--------------------------------------------------------------------------------