
Γλώσσα 🇬🇷 Ελληνικά
Τεκμηρίωση
Ξεκινώντας
Χρήση
Αυθεντικοποίηση
Διαμόρφωση
FastComments Android Library
Αυτή είναι η επίσημη βιβλιοθήκη Android για το FastComments.
Widgets σχολιασμού του FastComments για Android
Αποθετήριο
Χαρακτηριστικά 
- 🔄 Ζωντανός σχολιασμός με ενημερώσεις σε πραγματικό χρόνο
- 📱 Γηγενή στοιχεία διεπαφής χρήστη για Android
- 🧵 Συζητήσεις σε νήματα με απαντήσεις
- 👤 Ασφαλής αυθεντικοποίηση SSO
- 👍 Σύστημα ψηφοφορίας με προσαρμόσιμα στυλ
- 🔔 Ειδοποιήσεις χρηστών και ένδειξη παρουσίας
- 🔍 Δυνατότητες διαχείρισης σχολίων
- 📱 Ενσωμάτωση κοινωνικής ροής
- ♾️ Σελιδοποίηση με απεριόριστη κύλιση
- 🎨 Ολοκληρωμένη θεματοποίηση
Εγκατάσταση 
Προσθέστε το FastComments SDK στο αρχείο build.gradle.kts της εφαρμογής σας:
dependencies {
implementation("com.fastcomments:sdk:0.0.1")
}
Βεβαιωθείτε ότι έχετε το αποθετήριο Repsy στο αρχείο settings.gradle.kts του έργου σας:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
}
// άλλα αποθετήρια...
}
}
Βασική Χρήση 
1. Add FastCommentsView to your layout
<com.fastcomments.sdk.FastCommentsView
android:id="@+id/commentsView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. Initialize and configure the 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)
// Βρείτε την προβολή σχολίων στο layout σας
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Ορίστε το instance του SDK για την προβολή
commentsView.setSDK(sdk)
// Φορτώστε τα σχόλια
commentsView.load()
Ασφαλής Αυθεντικοποίηση SSO 
Υλοποιήστε ασφαλή πιστοποίηση για τους χρήστες σας:
// Δημιουργήστε δεδομένα χρήστη (κατά προτίμηση στον διακομιστή σας)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Generate SSO token (should be done server-side!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Προσθέστε στο config
config.sso = token
Ενσωμάτωση Ροής 
Εμφάνιση ροής σε στυλ κοινωνικού δικτύου με σχόλια:
// Διαμόρφωση του 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);
// Ορισμός listener αλληλεπίδρασης
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();
Ενσωμάτωση Ζωντανής Συνομιλίας 
Προσθέστε μια διεπαφή συνομιλίας σε πραγματικό χρόνο στην εφαρμογή σας:
// Προσθέστε το LiveChatView στο 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()
}
Παραδείγματα Έργων 
Δείτε αυτές τις παραδείγματικές υλοποιήσεις:
- Βασικό Παράδειγμα Σχολίων
- Υλοποίηση ασφαλούς SSO
- Παράδειγμα Ενσωμάτωσης Feed
- Παράδειγμα Ζωντανής Συνομιλίας
- Παράδειγμα Διαλόγου Σχολίων
Επιλογές Διαμόρφωσης 
Το SDK παρέχει πολλές επιλογές διαμόρφωσης μέσω της κλάσης CommentWidgetConfig:
| Επιλογή | Περιγραφή |
|---|---|
tenantId |
Το ID του λογαριασμού FastComments σας |
urlId |
Το ID που αντιπροσωπεύει την τρέχουσα σελίδα |
sso |
token SSO για έλεγχο ταυτότητας |
allowAnon |
Επιτρέπει τον ανώνυμο σχολιασμό |
voteStyle |
Στυλ ψήφου UpDown ή Heart |
hideAvatars |
Απόκρυψη avatar χρηστών |
hasDarkBackground |
Υποδεικνύει σκοτεινή λειτουργία |
customCSS |
Προσαρμοσμένα στυλ CSS |
enableInfiniteScrolling |
Ενεργοποίηση απεριόριστης κύλισης για σελιδοποίηση |
readonly |
Απενεργοποιεί τη δυνατότητα σχολιασμού αλλά εμφανίζει τα σχόλια |
disableVoting |
Απενεργοποιεί τη δυνατότητα ψήφισης |
disableLiveCommenting |
Απενεργοποιεί τις ενημερώσεις σε πραγματικό χρόνο |
| --- |
Εκτενής Προσαρμογή Θέματος 
Όλα τα κουμπιά και τα στοιχεία διεπαφής χρήστη (UI) στο FastComments SDK μπορούν να θεματοποιηθούν. Χρησιμοποιήστε το FastCommentsTheme.Builder για πλήρη έλεγχο της επωνυμίας της εφαρμογής σας.
Προγραμματική Θεματοποίηση (Συνιστάται)
val theme = FastCommentsTheme.Builder()
// Κουμπιά ενέργειας: Αποστολή, ψήφος, μενού, κουμπιά like/share
.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>
Κάλυψη Θεματοποιημένων Κουμπιών
Κάθε κουμπί στο SDK υποστηρίζει θεματοποίηση:
- Κουμπιά αποστολής, κουμπιά ψήφου, κουμπιά μενού, κουμπιά απάντησης
- Κουμπιά εμφάνισης/απόκρυψης απαντήσεων, κουμπιά φόρτωσης περισσότερων
- Κουμπιά ενέργειας ροής (μου αρέσει, σχόλιο, κοινοποίηση)
- Κουμπιά διαλόγου (υποβολή, ακύρωση, αποθήκευση)
- Δυναμικά κουμπιά εργασιών στις δημοσιεύσεις ροής
Για λεπτομερή τεκμηρίωση θεματοποίησης, δείτε THEMING.md.
Διαχείριση Μνήμης 
Πρόληψη διαρροών μνήμης
Για να αποφύγετε διαρροές μνήμης κατά τη χρήση των FastComments views σε Activities ή Fragments, καλέστε πάντα την cleanup() όταν η προβολή δεν χρειάζεται πλέον:
Σε Activities:
@Override
protected void onDestroy() {
super.onDestroy();
// Εκκαθάριση των προβολών FastComments για να αποφευχθούν διαρροές μνήμης
if (feedView != null) {
feedView.cleanup();
}
if (commentsView != null) {
commentsView.cleanup();
}
}
Σε Fragments:
@Override
public void onDestroyView() {
super.onDestroyView();
// Εκκαθάριση των προβολών FastComments όταν η προβολή του fragment καταστραφεί
if (feedView != null) {
feedView.cleanup();
feedView = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
// Επιπλέον εκκαθάριση όταν το fragment καταστραφεί
if (feedSDK != null) {
feedSDK.cleanup();
feedSDK = null;
}
}
Όταν γίνεται εναλλαγή Fragments:
// Πριν αντικαταστήσετε ή αφαιρέσετε ένα fragment που περιέχει προβολές FastComments
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}
// Στη συνέχεια, προχωρήστε με τη συναλλαγή fragment
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Σημαντικό: Καλείτε πάντα τις μεθόδους cleanup() για να αποτρέψετε διαρροές μνήμης, ιδιαίτερα όταν:
- Activities καταστρέφονται
- Οι προβολές των Fragments καταστρέφονται
- Γίνεται εναλλαγή μεταξύ fragments
- Πλοηγείστε μακριά από οθόνες με στοιχεία FastComments
Χρειάζεστε βοήθεια;
Εάν αντιμετωπίσετε προβλήματα ή έχετε ερωτήσεις σχετικά με τη Βιβλιοθήκη Android, παρακαλούμε:
Συνεισφορές
Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλούμε επισκεφθείτε το αποθετήριο GitHub για τις οδηγίες συνεισφοράς.