
Jezik 🇭🇷 Hrvatski
Dokumentacija
Početak
Upotreba
Autentifikacija
Konfiguracija
Dodajte komentare u svoju Android aplikaciju
Ovo je službena Android biblioteka za FastComments.
Widgeti za komentiranje FastComments za Android
Repozitorij
AI agenti za kodiranje 
Dajte svom programskom agentu FastComments kontekst koji mu je potreban – widgete, konfiguraciju, Secure SSO, REST API i SDK‑ove:
npx skills add fastcomments/skills
Radi s Claude Code, Codex, Cursor, Copilot, Gemini i svakim drugim agentom koji podržava skills CLI.
Značajke 
- 🔄 Komentiranje uživo s ažuriranjima u stvarnom vremenu
- 📱 Izvorne Android UI komponente
- 🧵 Ugniježdene rasprave s odgovorima
- 👤 Sigurna SSO autentikacija
- 👍 Sustav glasovanja s prilagodljivim stilovima
- 🔔 Obavijesti korisnika i prisutnost
- 🔍 Mogućnosti moderiranja komentara
- 📱 Integracija društvenog feeda
- ♾️ Beskonačno pomicanje (paginacija)
- 🎨 Sveobuhvatno prilagođavanje tema
Instalacija 
Add the FastComments SDK to your app's build.gradle.kts file:
dependencies {
implementation("com.fastcomments:sdk:2.0.0")
}
Make sure you have the Repsy repository in your project's settings.gradle.kts:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// ostali repozitoriji...
}
}
Osnovna upotreba 
1. Dodajte FastCommentsView u svoj layout
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Inicijalizirajte i konfigurirajte SDK
// Konfigurirajte SDK
val config = CommentWidgetConfig(
"your-tenant-id",
"page-url-id",
"Page Title",
"yourdomain.com",
"Site Name"
)
// Dodatne opcije konfiguracije
config.voteStyle = VoteStyle.UpDown // ili VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // za podršku tamnog načina
// Inicijalizirajte SDK
val sdk = FastCommentsSDK(config)
// Pronađite view za komentare u svom layoutu
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Postavite SDK instancu za view
commentsView.setSDK(sdk)
// Učitajte komentare
commentsView.load()
Sigurna SSO autentifikacija 
Implementirajte sigurnu autentifikaciju za svoje korisnike:
// Kreirajte korisničke podatke (idealno na vašem poslužitelju)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Generirajte SSO token (to bi trebalo napraviti na strani poslužitelja!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Dodajte u konfiguraciju
config.sso = token
Integracija feeda 
Prikaži feed u stilu društvenih mreža s komentarima:
// Konfiguriraj SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Inicijaliziraj Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Postavi prikaz feeda
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Postavi slušatelja interakcija
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Feed je uspješno učitan
}
@Override
public void onFeedError(String errorMessage) {
// Obradi pogreške
}
@Override
public void onPostSelected(FeedPost post) {
// Korisnik je odabrao objavu
}
@Override
public void onCommentsRequested(FeedPost post) {
// Prikaži komentare za objavu
CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
dialog.show();
}
});
// Učitaj feed
feedView.load();
Integracija live chata 
Dodajte sučelje za chat u stvarnom vremenu u vašu aplikaciju:
// Dodajte LiveChatView u svoj XML layout
// <com.fastcomments.sdk.LiveChatView
// android:id="@+id/liveChatView"
// android:layout_width="match_parent"
// android:layout_height="match_parent" />
// Kreirajte konfiguraciju za SDK
val config = CommentWidgetConfig().apply {
tenantId = "your-tenant-id"
urlId = "chat-room-identifier"
pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)
// Opcionalno: Dodajte autentikaciju korisnika
val userData = SimpleSSOUserData(
"User Name",
"user@example.com",
"https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()
// Inicijalizirajte SDK
val sdk = FastCommentsSDK().configure(config)
// Postavite prikaz chata uživo
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()
// Ne zaboravite rukovanje životnim ciklusom
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Primjeri projekata 
Pogledajte ove demo implementacije:
- Osnovni primjer komentara
- Implementacija sigurnog SSO
- Primjer integracije feeda
- Primjer chata uživo
- Primjer dijaloga komentara
Opcije konfiguracije 
SDK pruža mnogo opcija konfiguracije kroz klasu CommentWidgetConfig:
| Opcija | Opis |
|---|---|
tenantId | ID vašeg FastComments računa |
urlId | ID koji predstavlja trenutnu stranicu |
sso | SSO token za autentikaciju |
allowAnon | Dozvoli anonimno komentiranje |
voteStyle | Stil glasovanja (UpDown ili Heart) |
hideAvatars | Sakrij avatare korisnika |
hasDarkBackground | Označava tamni način rada |
customCSS | Prilagođeni CSS stilovi |
enableInfiniteScrolling | Omogući beskonačno pomicanje (infinite scroll) za paginaciju |
readonly | Onemogući komentiranje, ali prikaži komentare |
disableVoting | Onemogući glasovanje |
disableLiveCommenting | Onemogući ažuriranja u stvarnom vremenu |
Sveobuhvatna prilagodba tema 
Svi gumbi i UI elementi u FastComments SDK-u su prilagodljivi temom. Koristite FastCommentsTheme.Builder za potpunu kontrolu nad brendiranjem vaše aplikacije.
Programsko prilagođavanje teme (preporučeno)
val theme = FastCommentsTheme.Builder()
// Akcijski gumbi: Pošalji, glasaj, izbornik, gumbi sviđanja/dijeljenja
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Gumbi za odgovor: Gumbi za odgovaranje na komentare
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Preklopni gumbi: Gumbi za prikaz/sakrij odgovore
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// Gumbi 'učitaj više': gumbi za paginaciju
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Primijeni temu
sdk.setTheme(theme)
Brzo prepisivanje boja
Prepišite resurse boja u svom colors.xml za jednostavno brendiranje:
<!-- U res/values/colors.xml vaše aplikacije -->
<resources>
<!-- Promijenite sve primarne UI elemente -->
<color name="primary">#FF1976D2</color>
<!-- Ili prilagodite određene tipove gumba -->
<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>
Pokrivenost temiranih gumba
Svaki gumb u SDK-u podržava prilagodbu teme:
- Gumbi Pošalji, gumbi za glasanje, gumbi izbornika, gumbi za odgovor
- Gumbi za prikaz/sakrij odgovore, gumbi 'učitaj više'
- Akcijski gumbi u feedu (sviđa mi se, komentar, dijeli)
- Dialog gumbi (pošalji, otkaži, spremi)
- Dinamički gumbi zadataka u objavama feeda
Za detaljnu dokumentaciju o temiranju, pogledajte THEMING.md.
Upravljanje memorijom 
Sprječavanje curenja memorije
Da biste spriječili curenje memorije pri korištenju FastComments prikaza u aktivnostima ili fragmentima, uvijek pozovite cleanup() kada prikaz više nije potreban:
U aktivnostima:
@Override
protected void onDestroy() {
super.onDestroy();
// Očistite FastComments prikaze kako biste spriječili curenje memorije
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
U fragmentima:
@Override
public void onDestroyView() {
super.onDestroyView();
// Očistite FastComments prikaze kada se prikaz fragmenta uništi
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Dodatno čišćenje kada se fragment uništi
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
Prilikom prebacivanja fragmenta:
// Prije zamjene ili uklanjanja fragmenta koji sadrži FastComments prikaze
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Zatim nastavite s transakcijom fragmenta
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Važno: Uvijek pozovite cleanup() metode kako biste spriječili curenje memorije, osobito kada:
- aktivnosti se unište
- prikazi fragmenata se unište
- pri prebacivanju između fragmenata
- pri napuštanju zaslona koji sadrže FastComments komponente
Trebate pomoć?
Ako naiđete na bilo kakve probleme ili imate pitanja u vezi Android knjižnice, molimo:
Doprinos
Doprinosi su dobrodošli! Molimo posjetite GitHub repozitorij za smjernice za doprinos.