Overview
Threadly uses the Fast Android Networking library built on top of OkHttp for all REST API communications. The networking layer is organized into manager classes, each responsible for a specific domain of the application.Networking Architecture
Base Layer: AndroidNetworkingLayer
TheAndroidNetworkingLayer class provides a centralized interface for making HTTP requests with automatic JWT authentication:
network_managers/AndroidNetworkingLayer.java:15
Manager Classes
Threadly organizes API calls into domain-specific manager classes:| Manager | Responsibility | Key Methods |
|---|---|---|
| PostsManager | Posts CRUD operations | uploadImagePost(), getImageFeed(), getUserPosts() |
| MessageManager | Messaging operations | sendMessage(), checkAndGetPendingMessages() |
| AuthManager | Authentication | Login, registration, password reset |
| OtpManager | OTP verification | sendOTP(), verifyOTP() |
| ProfileManager | User profiles | getProfile(), getLoggedInUserProfile() |
| ProfileEditorManager | Profile editing | updateProfile(), uploadProfilePicture() |
| LikeManager | Like/unlike actions | likePost(), unlikePost() |
| FollowManager | Follow relationships | follow(), unfollow(), getFollowers() |
| CommentsManager | Comment operations | getComments(), addComment() |
| StoriesManager | Stories feature | addStory(), getStories() |
| SearchManager | Search functionality | User and content search |
| UserSuggestionManager | User recommendations | getSuggestedUsers() |
| PrivacyManager | Privacy settings | setPrivate(), setPublic() |
| FcmManager | Push notifications | registerToken(), updateFcmToken() |
network_managers/ directory
API Configuration
Base URL & Endpoints
API endpoints are centralized in theApiEndPoints class:
constants/ApiEndPoints.java:1
HTTP Methods
GET Requests
network_managers/PostsManager.java:108
POST Requests
network_managers/MessageManager.java:36
File Upload with Progress
network_managers/PostsManager.java:32
DELETE Requests
network_managers/PostsManager.java:223
Authentication
JWT Token Management
All authenticated requests include a JWT bearer token in the Authorization header:- Stored in SharedPreferences after successful login
- Automatically attached to all API requests
- Retrieved using
PreferenceUtil.getJWT()
Callback Interfaces
Threadly uses custom callback interfaces for handling async responses:Basic Callback
JSON Response Callback
Progress Tracking Callback
Error Handling
Error Response Structure
Request Priority
All requests are set toPriority.HIGH to ensure responsive user experience:
Request Cancellation
For long-running uploads, requests can be cancelled using tags:network_managers/MessageManager.java:227
Best Practices
- Centralized endpoint management - All URLs defined in
ApiEndPoints - Automatic authentication - JWT tokens added automatically via
AndroidNetworkingLayer - Callback-based async handling - Clean separation of success/error paths
- Domain-specific managers - Organized by feature area
- Progress tracking - User feedback for long-running operations
- Error logging - Debug logging for development troubleshooting
- Request prioritization - High priority for better UX
Related Topics
- Real-Time Communication - Socket.IO for live updates
- Offline Support - Caching and sync strategies
- Tech Stack - Complete technology overview