FastComments.com

FastComments Android Library


Ovo je zvanična Android biblioteka za FastComments.

FastComments vidžeti za komentare na Androidu

Repozitorijum

Pogledajte na GitHubu


Funkcionalnosti Internal Link

  • 🔄 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

Zahtevi Internal Link

  • Android SDK 26+ (Android 8.0 Oreo ili noviji)
  • Java 8+

Instalacija Internal Link

Dodajte FastComments SDK u datoteku build.gradle.kts vaše aplikacije:

dependencies {
    implementation("com.fastcomments:sdk:0.0.1")
}

Uverite se da imate Repsy repozitorijum u settings.gradle.kts datoteci vašeg projekta:

dependencyResolutionManagement {
    repositories {
        maven {
            url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
        }
        // ostali repozitorijumi...
    }
}

Osnovna upotreba Internal Link

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 Internal Link

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 feeda Internal Link

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 chata Internal Link

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()
}

Primeri projekata Internal Link


Pogledajte ove demo implementacije:


Opcije konfiguracije Internal Link

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 Internal Link

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 Internal Link

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.