
Langue 🇨🇦 Français (Canada)
Documentation
Premiers pas
Utilisation
Authentification
Configuration
FastComments Android Library
Il s'agit de la bibliothèque officielle Android pour FastComments.
Widgets de commentaires FastComments pour Android
Dépôt
Fonctionnalités 
- 🔄 Commentaires en direct avec mises à jour en temps réel
- 📱 Composants d'interface utilisateur natifs pour Android
- 🧵 Discussions organisées en fils avec réponses
- 👤 Authentification SSO sécurisée
- 👍 Système de vote avec styles personnalisables
- 🔔 Notifications et présence des utilisateurs
- 🔍 Fonctionnalités de modération des commentaires
- 📱 Intégration du fil social
- ♾️ Pagination à défilement infini
- 🎨 Personnalisation complète des thèmes
Installation 
Ajoutez le SDK FastComments au fichier build.gradle.kts de votre application :
dependencies {
implementation("com.fastcomments:sdk:0.0.1")
}
Assurez-vous d'avoir le dépôt Repsy dans le fichier settings.gradle.kts de votre projet :
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// other repositories...
}
}
Utilisation de base 
1. Ajouter FastCommentsView à votre mise en page
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Initialiser et configurer le SDK
// Configurer le SDK
val config = CommentWidgetConfig(
"your-tenant-id",
"page-url-id",
"Page Title",
"yourdomain.com",
"Site Name"
)
// Options de configuration supplémentaires
config.voteStyle = VoteStyle.UpDown // ou VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // pour la prise en charge du mode sombre
// Initialiser le SDK
val sdk = FastCommentsSDK(config)
// Trouver la vue des commentaires dans votre mise en page
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Associer l'instance du SDK à la vue
commentsView.setSDK(sdk)
// Charger les commentaires
commentsView.load()
Authentification SSO sécurisée 
Implémentez une authentification sécurisée pour vos utilisateurs :
// Créez les données utilisateur (idéalement sur votre serveur)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Générez le jeton SSO (doit être fait côté serveur !)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Ajoutez à la configuration
config.sso = token
Intégration de flux 
Afficher un fil de style réseau social avec des commentaires:
// Configurer le SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Initialiser le Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Configurer la vue du fil
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Définir le gestionnaire d'interactions
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Fil chargé avec succès
}
@Override
public void onFeedError(String errorMessage) {
// Gérer les erreurs
}
@Override
public void onPostSelected(FeedPost post) {
// L'utilisateur a sélectionné une publication
}
@Override
public void onCommentsRequested(FeedPost post) {
// Afficher les commentaires pour la publication
CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
dialog.show();
}
});
// Charger le fil
feedView.load();
Intégration du clavardage en direct 
Ajoutez une interface de chat en temps réel à votre application :
// Ajoutez LiveChatView à votre XML de mise en page
// <com.fastcomments.sdk.LiveChatView
// android:id="@+id/liveChatView"
// android:layout_width="match_parent"
// android:layout_height="match_parent" />
// Créez une configuration pour le SDK
val config = CommentWidgetConfig().apply {
tenantId = "your-tenant-id"
urlId = "chat-room-identifier"
pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)
// Optionnel : Ajoutez l'authentification utilisateur
val userData = SimpleSSOUserData(
"User Name",
"user@example.com",
"https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()
// Initialisez le SDK
val sdk = FastCommentsSDK().configure(config)
// Configurez la vue de chat en direct
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()
// N'oubliez pas la gestion du cycle de vie
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Projets d'exemple 
Consultez ces implémentations de démonstration :
- Exemple de commentaires de base
- Implémentation SSO sécurisée
- Exemple d'intégration de flux
- Exemple de chat en direct
- Exemple de boîte de dialogue de commentaires
Options de configuration 
Le SDK fournit de nombreuses options de configuration via la classe CommentWidgetConfig :
| Option | Description |
|---|---|
tenantId |
L'ID de votre compte FastComments |
urlId |
ID représentant la page courante |
sso |
Jeton SSO pour l'authentification |
allowAnon |
Autoriser les commentaires anonymes |
voteStyle |
Style de vote UpDown ou Heart |
hideAvatars |
Masquer les avatars des utilisateurs |
hasDarkBackground |
Indique le mode sombre |
customCSS |
Styles CSS personnalisés |
enableInfiniteScrolling |
Activer la pagination par défilement infini |
readonly |
Désactiver la possibilité de commenter mais afficher les commentaires |
disableVoting |
Désactiver la fonctionnalité de vote |
disableLiveCommenting |
Désactiver les mises à jour en temps réel |
Personnalisation complète du thème 
Tous les boutons et éléments de l'interface utilisateur du SDK FastComments sont personnalisables par thème. Utilisez le FastCommentsTheme.Builder pour un contrôle complet de l'image de marque de votre application.
Thématisation par programmation (recommandé)
val theme = FastCommentsTheme.Builder()
// Boutons d'action : Envoyer, voter, menu, boutons J'aime/Partager
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Boutons de réponse : Boutons de réponse aux commentaires
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Boutons bascule : Boutons Afficher/masquer les réponses
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// Boutons 'charger plus' : Boutons de pagination
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Appliquer le thème
sdk.setTheme(theme)
Remplacement rapide des couleurs
Remplacez les ressources de couleur dans votre colors.xml pour une personnalisation simple de la marque :
<!-- Dans le res/values/colors.xml de votre application -->
<resources>
<!-- Changer tous les éléments d'interface principaux -->
<color name="primary">#FF1976D2</color>
<!-- Ou personnaliser des types de boutons spécifiques -->
<color name="fastcomments_action_button_color">#FF1976D2</color>
<color name="fastcomments_reply_button_color">#FF4CAF50</color>
<color name="fastcomments_toggle_replies_button_color">#FFFF5722</color>
<color name="fastcomments_load_more_button_text_color">#FF9C27B0</color>
</resources>
Portée des boutons thématisés
Tous les boutons du SDK prennent en charge la thématisation :
- Boutons d'envoi, boutons de vote, boutons de menu, boutons de réponse
- Boutons Afficher/masquer les réponses, boutons 'charger plus'
- Boutons d'action du flux (j'aime, commentaire, partage)
- Boutons de dialogue (soumettre, annuler, enregistrer)
- Boutons de tâche dynamiques dans les publications du flux
Pour la documentation détaillée sur la thématisation, consultez THEMING.md.
Gestion de la mémoire 
Prévention des fuites de mémoire
Pour prévenir les fuites de mémoire lors de l'utilisation des vues FastComments dans Activities ou Fragments, appelez toujours cleanup() lorsque la vue n'est plus nécessaire :
In Activities:
@Override
protected void onDestroy() {
super.onDestroy();
// Nettoyer les vues FastComments pour prévenir les fuites de mémoire
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
In Fragments:
@Override
public void onDestroyView() {
super.onDestroyView();
// Nettoyer les vues FastComments lorsque la vue du fragment est détruite
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Nettoyage supplémentaire lorsque le fragment est détruit
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
When Switching Fragments:
// Avant de remplacer ou de supprimer un fragment contenant des vues FastComments
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Ensuite, procédez à la transaction de fragment
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Important : Appelez toujours les méthodes cleanup() pour prévenir les fuites de mémoire, en particulier lorsque :
- Les Activities sont détruites
- Les vues des Fragments sont détruites
- Lors du changement de Fragments
- Lorsqu'on navigue hors des écrans contenant des composants FastComments
Besoin d'aide ?
Si vous rencontrez des problèmes ou avez des questions concernant la bibliothèque Android, veuillez :
Contribuer
Les contributions sont les bienvenues ! Veuillez consulter le dépôt GitHub pour les consignes de contribution.