
Γλώσσα 🇨🇾 Ελληνικά (Κύπρος)
Τεκμηρίωση
Γρήγορη εκκίνηση
Χρήση
Αυθεντικοποίηση
Διαμόρφωση
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")
}
// other repositories...
}
}
Βασική χρήση 
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)
// Εντοπισμός της προβολής σχολίων στη διάταξή σας
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)
// Ορισμός του SDK για την προβολή
commentsView.setSDK(sdk)
// Φόρτωση σχολίων
commentsView.load()
Ασφαλής SSO Αυθεντικοποίηση 
Εφαρμόστε ασφαλή αυθεντικοποίηση για τους χρήστες σας:
// Δημιουργία δεδομένων χρήστη (κατά προτίμηση στον διακομιστή σας)
val userData = SecureSSOUserData(
"user-id",
"user@example.com",
"User Name",
"https://path-to-avatar.jpg"
)
// Δημιουργία SSO token (θα πρέπει να γίνεται στον διακομιστή!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()
// Προσθήκη στη διαμόρφωση
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 του layout σας
// <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
- Παράδειγμα Ενσωμάτωσης Ροής
- Παράδειγμα Ζωντανής Συνομιλίας
- Παράδειγμα Διαλόγου Σχολίων
Επιλογές διαμόρφωσης 
Το SDK παρέχει πολλές επιλογές διαμόρφωσης μέσω της κλάσης CommentWidgetConfig:
| Επιλογή | Περιγραφή |
|---|---|
tenantId |
Το αναγνωριστικό του λογαριασμού σας στο FastComments |
urlId |
Το αναγνωριστικό που αντιπροσωπεύει την τρέχουσα σελίδα |
sso |
SSO token για έλεγχο ταυτότητας |
allowAnon |
Επιτρέπει ανώνυμα σχόλια |
voteStyle |
Στυλ ψήφου UpDown ή Heart |
hideAvatars |
Απόκρυψη avatar χρηστών |
hasDarkBackground |
Υποδηλώνει σκοτεινή εμφάνιση |
customCSS |
Προσαρμοσμένα στυλ CSS |
enableInfiniteScrolling |
Ενεργοποιεί απεριόριστη κύλιση για σελιδοποίηση |
readonly |
Απενεργοποιεί τη δυνατότητα σχολιασμού αλλά εμφανίζει τα σχόλια |
disableVoting |
Απενεργοποιεί τη λειτουργία ψηφοφορίας |
disableLiveCommenting |
Απενεργοποιεί τις ενημερώσεις σε πραγματικό χρόνο |
| --- |
Ολοκληρωμένη προσαρμογή θέματος 
Όλα τα κουμπιά και τα στοιχεία διεπαφής χρήστη στο FastComments SDK μπορούν να προσαρμοστούν θεματικά. Χρησιμοποιήστε τον FastCommentsTheme.Builder για πλήρη έλεγχο του branding της εφαρμογής σας.
Προγραμματική θεματοποίηση (Συνιστάται)
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 της εφαρμογής σας για εύκολο branding:
<!-- Στο res/values/colors.xml της εφαρμογής σας -->
<resources>
<!-- Αλλάξτε όλα τα βασικά στοιχεία διεπαφής χρήστη -->
<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 υποστηρίζει θεματοποίηση:
- Κουμπιά αποστολής, κουμπιά ψήφου, κουμπιά μενού, κουμπιά απάντησης
- Κουμπιά εμφάνισης/απόκρυψης απαντήσεων, κουμπιά 'φόρτωσε περισσότερα'
- Κουμπιά ενέργειας στο feed (μου αρέσει, σχόλιο, κοινοποίηση)
- Κουμπιά διαλόγου (υποβολή, ακύρωση, αποθήκευση)
- Δυναμικά κουμπιά εργασιών στις αναρτήσεις του feed
Για λεπτομερή τεκμηρίωση θεματοποίησης, δείτε THEMING.md.
Διαχείριση μνήμης 
Αποτροπή Διαρροών Μνήμης
Για να αποτρέψετε διαρροές μνήμης όταν χρησιμοποιείτε προβολές FastComments σε 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();
}
// Then proceed with fragment transaction
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment)
.commit();
Σημαντικό: Καλέστε πάντα τις μεθόδους cleanup() για να αποτρέψετε διαρροές μνήμης, ειδικά όταν:
- Activities καταστρέφονται
- Οι προβολές των Fragment καταστρέφονται
- Εναλλαγή μεταξύ fragments
- Πλοήγηση μακριά από οθόνες με στοιχεία FastComments
Χρειάζεστε βοήθεια;
Εάν αντιμετωπίσετε οποιοδήποτε πρόβλημα ή έχετε ερωτήσεις σχετικά με τη Βιβλιοθήκη Android, παρακαλούμε:
Συνεισφορά
Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλούμε επισκεφθείτε το αποθετήριο GitHub για οδηγίες συνεισφοράς.