
Sprache 🇩🇪 Deutsch
Dokumentation
Erste Schritte
Verwendung
Authentifizierung
Konfiguration
FastComments Android Library
Dies ist die offizielle Android-Bibliothek für FastComments.
FastComments-Kommentar-Widgets für Android
Repository
Funktionen 
- 🔄 Live-Kommentare mit Echtzeit-Updates
- 📱 Native Android UI-Komponenten
- 🧵 Thread-basierte Diskussionen mit Antworten
- 👤 Sichere SSO-Authentifizierung
- 👍 Abstimmungssystem mit anpassbaren Stilen
- 🔔 Benutzerbenachrichtigungen und Präsenz
- 🔍 Moderationsfunktionen für Kommentare
- 📱 Integration sozialer Feeds
- ♾️ Unendliche Scroll-Paginierung
- 🎨 Umfassendes Theming
Installation 
Fügen Sie das FastComments SDK zur build.gradle.kts-Datei Ihrer App hinzu:
dependencies {
implementation("com.fastcomments:sdk:0.0.1")
}
Stellen Sie sicher, dass Sie das Repsy-Repository in der settings.gradle.kts-Datei Ihres Projekts haben:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// weitere Repositories...
}
}
Grundlegende Nutzung 
1. Fügen Sie FastCommentsView zu Ihrem Layout hinzu
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Initialisieren und konfigurieren Sie das SDK
// SDK konfigurieren
val config = CommentWidgetConfig(
"your-tenant-id",
"page-url-id",
"Page Title",
"yourdomain.com",
"Site Name"
)
// Zusätzliche Konfigurationsoptionen
config.voteStyle = VoteStyle.UpDown // oder VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // zur Unterstützung des Dunkelmodus
// SDK initialisieren
val sdk = FastCommentsSDK(config)
// Kommentaransicht in Ihrem Layout finden
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// SDK-Instanz für die Ansicht setzen
commentsView.setSDK(sdk)
// Kommentare laden
commentsView.load()
Sichere SSO-Authentifizierung 
Implementieren Sie eine sichere Authentifizierung für Ihre Benutzer:
// Benutzerdaten erstellen (idealerweise auf Ihrem Server)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// SSO-Token generieren (sollte serverseitig erfolgen!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Zur Konfiguration hinzufügen
config.sso = token
Feed-Integration 
Einen Social-Media-ähnlichen Feed mit Kommentaren anzeigen:
// SDK konfigurieren
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Feed-SDK initialisieren
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Feed-Ansicht einrichten
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Interaktions-Listener festlegen
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Feed erfolgreich geladen
}
@Override
public void onFeedError(String errorMessage) {
// Fehler behandeln
}
@Override
public void onPostSelected(FeedPost post) {
// Benutzer hat einen Beitrag ausgewählt
}
@Override
public void onCommentsRequested(FeedPost post) {
// Kommentare für den Beitrag anzeigen
CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
dialog.show();
}
});
// Feed laden
feedView.load();
Live-Chat-Integration 
Fügen Sie Ihrer App eine Echtzeit-Chat-Schnittstelle hinzu:
// Fügen Sie LiveChatView zu Ihrem Layout-XML hinzu
// <com.fastcomments.sdk.LiveChatView
// android:id="@+id/liveChatView"
// android:layout_width="match_parent"
// android:layout_height="match_parent" />
// Erstellen Sie eine Konfiguration für das SDK
val config = CommentWidgetConfig().apply {
tenantId = "your-tenant-id"
urlId = "chat-room-identifier"
pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)
// Optional: Benutzer-Authentifizierung hinzufügen
val userData = SimpleSSOUserData(
"User Name",
"user@example.com",
"https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()
// Initialisieren Sie das SDK
val sdk = FastCommentsSDK().configure(config)
// Richten Sie die LiveChatView ein
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()
// Vergessen Sie nicht die Lebenszyklusbehandlung
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Konfigurationsoptionen 
Das SDK bietet viele Konfigurationsoptionen über die Klasse CommentWidgetConfig:
| Option | Beschreibung |
|---|---|
tenantId |
Ihre FastComments-Konto-ID |
urlId |
ID, die die aktuelle Seite repräsentiert |
sso |
SSO-Token zur Authentifizierung |
allowAnon |
Anonyme Kommentare erlauben |
voteStyle |
Voting-Stil: UpDown oder Heart |
hideAvatars |
Benutzer-Avatare ausblenden |
hasDarkBackground |
Gibt an, dass Dunkelmodus aktiv ist |
customCSS |
Benutzerdefinierte CSS-Stile |
enableInfiniteScrolling |
Unendliches Scrollen (Paginierung) aktivieren |
readonly |
Kommentieren deaktivieren, aber Kommentare anzeigen |
disableVoting |
Voting-Funktionalität deaktivieren |
disableLiveCommenting |
Echtzeit-Updates deaktivieren |
Umfassende Anpassung des Designs 
Alle Schaltflächen und UI-Elemente im FastComments SDK sind themenfähig. Verwenden Sie FastCommentsTheme.Builder für vollständige Kontrolle über das Branding Ihrer App.
Programmgesteuerte Themenanpassung (empfohlen)
val theme = FastCommentsTheme.Builder()
// Aktionsschaltflächen: Senden, Abstimmen, Menü, Like/Teilen-Schaltflächen
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Antwort-Schaltflächen: Kommentar-Antwort-Schaltflächen
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Umschalt-Schaltflächen: Schaltflächen zum Anzeigen/Verbergen von Antworten
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// "Load more"-Schaltflächen: Paginierungs-Schaltflächen
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Theme anwenden
sdk.setTheme(theme)
Schnelles Überschreiben von Farben
Override von Farbressourcen in Ihrer colors.xml für einfaches Branding:
<!-- In Ihrer App: res/values/colors.xml -->
<resources>
<!-- Alle primären UI-Elemente ändern -->
<color name="primary">#FF1976D2</color>
<!-- Oder spezifische Schaltflächentypen anpassen -->
<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>
Abdeckung thematisierter Schaltflächen
Jede Schaltfläche im SDK unterstützt Themes:
- Sende-Schaltflächen, Abstimm-Schaltflächen, Menü-Schaltflächen, Antwort-Schaltflächen
- Schaltflächen zum Anzeigen/Verbergen von Antworten, "Load more"-Schaltflächen
- Feed-Aktionsschaltflächen (Gefällt mir, Kommentar, Teilen)
- Dialogschaltflächen (Absenden, Abbrechen, Speichern)
- Dynamische Aufgaben-Schaltflächen in Feed-Beiträgen
Für ausführliche Dokumentation zur Themenanpassung siehe THEMING.md.
Speicherverwaltung 
Vermeidung von Speicherlecks
Um Speicherlecks zu vermeiden, rufen Sie beim Verwenden von FastComments-Views in Activities oder Fragments immer cleanup() auf, wenn die View nicht mehr benötigt wird:
In Activities:
@Override
protected void onDestroy() {
super.onDestroy();
// FastComments-Views bereinigen, um Speicherlecks zu verhindern
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
In Fragments:
@Override
public void onDestroyView() {
super.onDestroyView();
// FastComments-Views bereinigen, wenn die Fragment-View zerstört wird
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Zusätzliche Bereinigung, wenn das Fragment zerstört wird
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
When Switching Fragments:
// Vor dem Ersetzen oder Entfernen eines Fragments, das FastComments-Views enthält
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Dann mit der Fragment-Transaktion fortfahren
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Wichtig: Rufen Sie immer die cleanup()-Methoden auf, um Speicherlecks zu verhindern, insbesondere wenn:
- Activities zerstört werden
- Fragment-Views zerstört werden
- Zwischen Fragments gewechselt wird
- Beim Verlassen von Bildschirmen, die FastComments-Komponenten enthalten
Benötigen Sie Hilfe?
Wenn Sie auf Probleme stoßen oder Fragen zur Android-Bibliothek haben, bitte:
Mitwirken
Beiträge sind willkommen! Bitte besuchen Sie das GitHub-Repository für Beitragsrichtlinien.