FastComments.com

FastComments Android Library

Ovo je službena Android biblioteka za FastComments.

Widgeti za komentiranje FastComments za Android

Repozitorij

Prikaži na GitHubu


Značajke Internal Link

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

Zahtjevi Internal Link

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

Instalacija Internal Link

Dodajte FastComments SDK u datoteku build.gradle.kts svoje aplikacije:

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

Provjerite imate li Repsy spremište u datoteci settings.gradle.kts vašeg projekta:

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

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

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

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 chata uživo Internal Link

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

Sveobuhvatno prilagođavanje teme Internal Link

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

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.