Android SDK
Native SDK for Android applications with Kotlin
⚡
Modern Integration
SDK with Kotlin and Coroutines. Compatible with API 21+ and Kotlin 1.8+.
Requirements
- Android API 21 (Lollipop) or higher
- Kotlin 1.8.0 or higher
- Android Gradle Plugin 8.0+
Data Types
Configuration
Properties:
• apiKey: String (required) - API key for your project
• userId: String (required) - User ID from your application
Initializer: Configuration(apiKey: String, userId: String)
• apiKey: String (required) - API key for your project
• userId: String (required) - User ID from your application
Initializer: Configuration(apiKey: String, userId: String)
Feedback
Properties:
• title: String (required) - Title of feedback (5-200 characters)
• description: String (required) - Description/content (10-5000 characters)
• categoryId: String (required) - Category ID for the feedback
Initializer: Feedback(title: String, description: String, categoryId: String)
• title: String (required) - Title of feedback (5-200 characters)
• description: String (required) - Description/content (10-5000 characters)
• categoryId: String (required) - Category ID for the feedback
Initializer: Feedback(title: String, description: String, categoryId: String)
FeedbackResponse
Properties:
• feedbackId: String - Unique identifier for the created feedback
• createdAt: String - ISO 8601 timestamp of creation
• feedbackId: String - Unique identifier for the created feedback
• createdAt: String - ISO 8601 timestamp of creation
Category
Properties:
• id: String - Unique identifier for the category
• name: String - Display name of the category
• color: String - Hex color code for UI display
• isPublic: Boolean - Whether the category is publicly visible
• votingEnabled: Boolean - Whether voting is enabled for this category
• id: String - Unique identifier for the category
• name: String - Display name of the category
• color: String - Hex color code for UI display
• isPublic: Boolean - Whether the category is publicly visible
• votingEnabled: Boolean - Whether voting is enabled for this category
PublicFeedback
Properties:
• id: String - Unique identifier for the feedback
• title: String - Title of the feedback
• description: String - Description/content of the feedback
• categoryId: String - ID of the associated category
• upVotes: Int - Number of up votes
• downVotes: Int - Number of down votes
• status: String - Current status (new, under_review, planned, in_progress, completed, closed, duplicate)
• createdAt: String? - ISO 8601 timestamp of creation (nullable)
• id: String - Unique identifier for the feedback
• title: String - Title of the feedback
• description: String - Description/content of the feedback
• categoryId: String - ID of the associated category
• upVotes: Int - Number of up votes
• downVotes: Int - Number of down votes
• status: String - Current status (new, under_review, planned, in_progress, completed, closed, duplicate)
• createdAt: String? - ISO 8601 timestamp of creation (nullable)
CategoriesResponse
Properties:
• categories: List<Category> - List of available categories
• defaultCategoryId: String? - ID of the default category (nullable)
• categories: List<Category> - List of available categories
• defaultCategoryId: String? - ID of the default category (nullable)
FeedbackListResponse
Properties:
• feedback: List<PublicFeedback> - List of feedback entries
• userVotes: Map<String, String> - User's vote status for each feedback (feedbackId → voteType)
• feedback: List<PublicFeedback> - List of feedback entries
• userVotes: Map<String, String> - User's vote status for each feedback (feedbackId → voteType)
GrenFeedbackException
Types:
• NotConfigured - SDK not configured
• InvalidApiKey - Invalid API key
• ValidationError - Input validation failed
• RateLimitExceeded - Rate limit exceeded
• QuotaExceeded - Monthly quota exceeded
• NetworkError - Network connectivity issues
• ServerError - Server-side error
• NotConfigured - SDK not configured
• InvalidApiKey - Invalid API key
• ValidationError - Input validation failed
• RateLimitExceeded - Rate limit exceeded
• QuotaExceeded - Monthly quota exceeded
• NetworkError - Network connectivity issues
• ServerError - Server-side error
API Reference
configure(configuration)
Parameters: configuration (Configuration) - SDK configuration object containing apiKey and userId
Returns: Unit
Returns: Unit
sendFeedback(feedback)
Parameters: feedback (Feedback) - Feedback data with title, description, and categoryId
Returns: FeedbackResponse containing feedbackId and createdAt
Returns: FeedbackResponse containing feedbackId and createdAt
getCategories()
Parameters: None
Returns: CategoriesResponse containing categories list and defaultCategoryId
Returns: CategoriesResponse containing categories list and defaultCategoryId
getPublicFeedback()
Parameters: None
Returns: FeedbackListResponse containing public feedback list in initial states (new, under_review) and user's current votes
Returns: FeedbackListResponse containing public feedback list in initial states (new, under_review) and user's current votes
getUserFeedback()
Parameters: None
Returns: FeedbackListResponse containing user's feedback
Returns: FeedbackListResponse containing user's feedback
voteFeedback(feedbackId, voteType)
Parameters: feedbackId (String), voteType (String) - Either "up" or "down"
Returns: Unit
Returns: Unit