
Jezik 🇷🇸 Srpski (Latinica)
Dokumentacija
Početak
Upotreba
Autentifikacija
Konfiguracija
Dodajte komentare u vašu Android aplikaciju
Ovo je zvanična Android biblioteka za FastComments.
FastComments vidžeti za komentare na Androidu
Repozitorijum
AI agenti za kodiranje 
Obezbedite svom kodirajućem agentu FastComments kontekst koji mu je potreban – vidžeti, konfiguracija, Secure SSO, REST API i SDK‑ovi:
npx skills add fastcomments/skills
Radi sa Claude Code, Codex, Cursor, Copilot, Gemini i svakim drugim agentom koji podržava skills CLI.
Karakteristike 
- 🔄 Komentarisanje uživo sa ažuriranjima u realnom vremenu
- 📱 Nativne Android UI komponente
- 🧵 Nitaste diskusije sa odgovorima
- 👤 Sigurna SSO autentifikacija
- 👍 Sistem glasanja sa prilagodljivim stilovima
- 🔔 Obaveštenja i prisutnost korisnika
- 🔍 Mogućnosti moderacije komentara
- 📱 Integracija društvenog feeda
- ♾️ Paginacija sa beskonačnim skrolovanjem
- 🎨 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 repozitorijumi...
}
}
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. Inicijalizujte i konfigurišite SDK
// Konfigurišite 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 tamnom režimu
// Inicijalizujte SDK
val sdk = FastCommentsSDK(config)
// Pronađite comments view u svom layoutu
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Postavite instancu SDK-a za view
commentsView.setSDK(sdk)
// Učitajte komentare
commentsView.load()
Sigurna SSO autentifikacija 
Implementirajte sigurnu autentifikaciju za vaše korisnike:
// Kreirajte podatke o korisniku (idealno na vašem serveru)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Generišite SSO token (trebalo bi da se radi na serverskoj strani!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Dodajte u konfiguraciju
config.sso = token
Integracija feed-a 
Prikaži feed u stilu društvenih mreža sa komentarima:
// Konfiguriši SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";
// Inicijalizuj Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);
// Podesi prikaz feeda
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);
// Postavi listener za interakcije
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
@Override
public void onFeedLoaded(List<FeedPost> posts) {
// Feed je uspešno učitan
}
@Override
public void onFeedError(String errorMessage) {
// Obradi greške
}
@Override
public void onPostSelected(FeedPost post) {
// Korisnik je izabrao 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 chat-a 
Dodajte interfejs za chat u realnom vremenu u vašu aplikaciju:
// Dodajte LiveChatView u vaš layout XML
// <com.fastcomments.sdk.LiveChatView
// android:id="@+id/liveChatView"
// android:layout_width="match_parent"
// android:layout_height="match_parent" />
// Napravite konfiguraciju za SDK
val config = CommentWidgetConfig().apply {
tenantId = "your-tenant-id"
urlId = "chat-room-identifier"
pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)
// Opcionalno: Dodajte autentifikaciju korisnika
val userData = SimpleSSOUserData(
"User Name",
"user@example.com",
"https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()
// Inicijalizujte SDK
val sdk = FastCommentsSDK().configure(config)
// Podesite LiveChatView
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()
// Ne zaboravite upravljanje životnim ciklusom
override fun onResume() {
super.onResume()
sdk.refreshLiveEvents()
}
override fun onDestroy() {
super.onDestroy()
sdk.cleanup()
}
Primer projekata 
Pogledajte ove demo implementacije:
- Osnovni primer komentara
- Sigurna SSO implementacija
- Primer integracije feeda
- Primer Live chata
- Primer dijaloga komentara
Opcije konfiguracije 
SDK pruža mnogo opcija konfiguracije kroz klasu CommentWidgetConfig:
| Opcija | Opis |
|---|---|
tenantId | ID vašeg FastComments naloga |
urlId | ID koji predstavlja trenutnu stranicu |
sso | SSO token za autentifikaciju |
allowAnon | Dozvoli anonimno komentarisanje |
voteStyle | Stil glasanja UpDown ili Heart |
hideAvatars | Sakrij avatare korisnika |
hasDarkBackground | Označava tamnu pozadinu |
customCSS | Prilagođeni CSS stilovi |
enableInfiniteScrolling | Omogući beskonačno skrolovanje |
readonly | Onemogući komentarisanje, ali prikaži komentare |
disableVoting | Onemogući glasanje |
disableLiveCommenting | Onemogući ažuriranja u realnom vremenu |
Sveobuhvatno prilagođavanje teme 
Sva dugmad i UI elementi u FastComments SDK-u podržavaju teme. Koristite FastCommentsTheme.Builder za potpunu kontrolu nad brendingom vaše aplikacije.
Programsko podešavanje tema (preporučeno)
val theme = FastCommentsTheme.Builder()
// Dugmad za akcije: Pošalji, glasanje, meni, lajk/podeli dugmad
.setActionButtonColor(Color.parseColor("#FF1976D2"))
// Dugmad za odgovore: Dugmad za odgovore na komentare
.setReplyButtonColor(Color.parseColor("#FF4CAF50"))
// Toggle dugmad: Dugmad za prikaz/sakrij odgovore
.setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
// Dugmad za učitavanje više: Dugmad za paginaciju
.setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
.setPrimaryColor(Color.parseColor("#FF6200EE"))
.setLinkColor(Color.parseColor("#FF1976D2"))
.setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
.build()
// Primeni temu
sdk.setTheme(theme)
Brzo prepisivanje boja
Prepišite resurse boja u vašem colors.xml za jednostavno brendiranje:
<!-- U res/values/colors.xml vaše aplikacije -->
<resources>
<!-- Promenite sve primarne UI elemente -->
<color name="primary">#FF1976D2</color>
<!-- Ili prilagodite specifične tipove dugmadi -->
<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>
Obuhvat temiranih dugmadi
Svako dugme u SDK-u podržava teme:
- Dugmad za slanje, dugmad za glasanje, dugmad menija, dugmad za odgovore
- Dugmad za prikaz/sakrij odgovore, dugmad za učitavanje više
- Dugmad za akcije u feedu (lajk, komentar, podeli)
- Dugmad u dijalozima (potvrdi, otkaži, sačuvaj)
- Dinamička dugmad zadataka u objavama feeda
Za detaljnu dokumentaciju o temama, pogledajte THEMING.md.
Upravljanje memorijom 
Sprečavanje curenja memorije
Da biste sprečili curenje memorije prilikom korišćenja FastComments view-ova u aktivnostima ili fragmentima, uvek pozovite cleanup() kada view više nije potreban:
U aktivnostima:
@Override
protected void onDestroy() {
super.onDestroy();
// Očistite FastComments view-e da biste sprečili curenje memorije
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
U fragmentima:
@Override
public void onDestroyView() {
super.onDestroyView();
// Očistite FastComments view-e kada se view 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;
}
}
Pri menjanju fragmenata:
// Pre nego što zamenite ili uklonite fragment koji sadrži FastComments view-e
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Zatim nastavite sa transakcijom fragmenta
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Važno: Uvek pozivajte metode cleanup() da biste sprečili curenje memorije, posebno kada:
- aktivnosti budu uništene
- view-i fragmenta budu uništeni
- menjate fragmente
- napuštate ekrane sa FastComments komponentama
Trebate pomoć?
Ako naiđete na bilo kakve probleme ili imate pitanja u vezi Android biblioteke, molimo:
Doprinosi
Doprinosi su dobrodošli! Molimo posetite GitHub repozitorijum za smernice o doprinosu.