FastComments.com

FastComments Android Library

Ovo je zvanična Android biblioteka za FastComments.

FastComments widgeti za komentare za Android

Repozitorij

Pogledajte na GitHubu


Карактеристике Internal Link

  • 🔄 Коментарисање уживо са ажурирањима у реалном времену
  • 📱 Нативни Android UI компоненти
  • 🧵 Нитоване дискусије са одговорима
  • 👤 Безбједна SSO аутентификација
  • 👍 Систем гласања са прилагодљивим стиловима
  • 🔔 Обавјештења корисника и присутност
  • 🔍 Могућности модерације коментара
  • 📱 Интеграција друштвеног фида
  • ♾️ Пагинација са бесконачним скроловањем
  • 🎨 Свеобухватно прилагођавање тема

Захтеви Internal Link

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

Инсталација Internal Link

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

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

Provjerite da li imate Repsy repozitorij u datoteci settings.gradle.kts vašeg projekta:

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

Основна употреба Internal Link

1. Додајте FastCommentsView у ваш распоред

<com.fastcomments.sdk.FastCommentsView
    android:id="@+id/commentsView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

2. Иницијализујте и конфигуришите SDK

// Конфигуришите SDK
val config = CommentWidgetConfig(
    "your-tenant-id", 
    "page-url-id", 
    "Page Title", 
    "yourdomain.com", 
    "Site Name"
)

// Додатне опције конфигурације
config.voteStyle = VoteStyle.UpDown // или VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // за подршку тамном режиму

// Иницијализујте SDK
val sdk = FastCommentsSDK(config)

// Пронађите FastCommentsView у вашем распореду
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)

// Поставите инстанцу SDK-а за view
commentsView.setSDK(sdk)

// Учитајте коментаре
commentsView.load()

Сигурна SSO аутентификација Internal Link

Implementirajte sigurnu autentifikaciju za vaše korisnike:

// Kreirajte podatke o korisniku (po mogućnosti na vašem serveru)
val userData = SecureSSOUserData(
    "user-id",
    "user@example.com",
    "User Name",
    "https://path-to-avatar.jpg"
)

// Generišite SSO token (treba uraditi na serverskoj strani!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()

// Dodajte u konfiguraciju
config.sso = token

Интеграција фида Internal Link

Прикажите фид у стилу друштвених мрежа са коментарима:

// Конфигуришите SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";

// Иницијализујте Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);

// Подесите приказ фида
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);

// Поставите слушача интеракције
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
    @Override
    public void onFeedLoaded(List<FeedPost> posts) {
        // Фид је успешно учитан
    }

    @Override
    public void onFeedError(String errorMessage) {
        // Обрадите грешке
    }

    @Override
    public void onPostSelected(FeedPost post) {
        // Корисник је одабрао објаву
    }

    @Override
    public void onCommentsRequested(FeedPost post) {
        // Прикажите коментаре за објаву
        CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
        dialog.show();
    }
});

// Учитајте фид
feedView.load();

Интеграција живог ћаскања Internal Link

Додајте интерфејс за ћаскање у реалном времену у вашу апликацију:

// Додајте LiveChatView у ваш layout XML
// <com.fastcomments.sdk.LiveChatView
//     android:id="@+id/liveChatView"
//     android:layout_width="match_parent"
//     android:layout_height="match_parent" />

// Креирајте конфигурацију за SDK
val config = CommentWidgetConfig().apply {
    tenantId = "your-tenant-id"
    urlId = "chat-room-identifier" 
    pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)

// Опционо: Додајте аутентификацију корисника
val userData = SimpleSSOUserData(
    "User Name",
    "user@example.com",
    "https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()

// Иницијализујте SDK
val sdk = FastCommentsSDK().configure(config)

// Подесите LiveChatView
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()

// Не заборавите руковање животним циклусом
override fun onResume() {
    super.onResume()
    sdk.refreshLiveEvents()
}

override fun onDestroy() {
    super.onDestroy()
    sdk.cleanup()
}

Примерни пројекти Internal Link


Pogledajte ove demo implementacije:


Опције конфигурације Internal Link

SDK пружа много опција конфигурације преко класе CommentWidgetConfig:

Option Description
tenantId ID вашег FastComments налога
urlId ID који представља тренутну страницу
sso SSO токен за аутентификацију
allowAnon Дозволити анонимно коментарисање
voteStyle Стил гласања UpDown или Heart
hideAvatars Сакрити аватаре корисника
hasDarkBackground Означава тамни режим
customCSS Прилагођени CSS стилови
enableInfiniteScrolling Омогућити бесконачно скроловање
readonly Онемогућити коментарисање, али приказати коментаре
disableVoting Онемогућити гласање
disableLiveCommenting Онемогућити ажурирања у реалном времену

Свеобухватно прилагођавање теме Internal Link

Сва дугмад и UI елементи у FastComments SDK-у подложни су темама. Користите FastCommentsTheme.Builder за потпуну контролу над брендом ваше апликације.

Програмско подешавање теме (препоручено)

val theme = FastCommentsTheme.Builder()
    // Дугмад за акције: Поšаљи, гласање, мени, дугмад свиđa ми се/дијели
    .setActionButtonColor(Color.parseColor("#FF1976D2"))

    // Дугмад за одговор: Дугмад за одговарање на коментар  
    .setReplyButtonColor(Color.parseColor("#FF4CAF50"))

    // Прекидачка дугмад: Дугмад за приказ/скривање одговора
    .setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))

    // Дугмад за учитавање више: Дугмад за пагинацију
    .setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))

    .setPrimaryColor(Color.parseColor("#FF6200EE"))
    .setLinkColor(Color.parseColor("#FF1976D2"))
    .setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
    .build()

// Примјени тему
sdk.setTheme(theme)

Брзо подешавање боја

Оверрајту ресурсе боја у вашем colors.xml за једноставно брендирање:

<!-- У вашој апликацији res/values/colors.xml -->
<resources>
    <!-- Промијените све примарне UI елементе -->
    <color name="primary">#FF1976D2</color>

    <!-- Или прилагодите специфичне типове дугмади -->
    <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>

Обухват темatsких дугмади

Свако дугме у SDK-у подржава тематизацију:

  • Дугмад за слање, дугмад за гласање, дугмад за мени, дугмад за одговор
  • Дугмад за приказ/скривање одговора, дугмад за учитавање више
  • Дугмад радњи у фиду (свиđa ми се, коментар, дијели)
  • Дугмад дијалога (пошаљи, откажи, саčувај)
  • Динамичка дугмад задатака у објавама фида

За детаљну документацију о тематици, погледајте THEMING.md.

Управљање меморијом Internal Link

Sprečavanje curenja memorije

Da biste spriječili curenje memorije pri korištenju FastComments views u Activities ili Fragments, uvijek pozovite cleanup() kada prikaz više nije potreban:

U Activities:

@Override
protected void onDestroy() {
    super.onDestroy();
    // Očistite FastComments prikaze da spriječite curenje memorije
    if (feedView != null) {
        feedView.cleanup();
    }
    if (commentsView != null) {
        commentsView.cleanup();
    }
}

U Fragments:

@Override
public void onDestroyView() {
    super.onDestroyView();
    // Očistite FastComments prikaze kada je prikaz fragmenta uništen
    if (feedView != null) {
        feedView.cleanup();
        feedView = null;
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    // Dodatno čišćenje kada je fragment uništen
    if (feedSDK != null) {
        feedSDK.cleanup();
        feedSDK = null;
    }
}

Pri prebacivanju Fragments:

// 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 sa transakcijom fragmenta
getSupportFragmentManager().beginTransaction()
    .replace(R.id.container, newFragment)
    .commit();

Važno: Uvijek pozovite cleanup() metode da spriječite curenje memorije, posebno kada:

  • Activities su uništene
  • Fragment views su uništeni
  • Prebacivanje između Fragments
  • Napuštanje ekrana sa FastComments komponentama

Trebate pomoć?

Ako naiđete na bilo kakve probleme ili imate pitanja u vezi Android biblioteke, molimo vas:

Doprinosi

Doprinosi su dobrodošli! Molimo posjetite GitHub repozitorij za upute o doprinosu.