FundSync is an Android application that bridges UPI payments with Streamlabs alerts. It monitors UPI payment notifications from popular apps (Google Pay, PhonePe, Paytm, Amazon) and automatically forwards them as donations to Streamlabs, making it perfect for streamers who accept UPI payments during streams.
- Real-time UPI payment monitoring
- Automatic Streamlabs donation forwarding
- Dark/Light theme support
- Persistent notification history
- Test donation functionality
- Error handling with detailed feedback
- Material Design 3 UI
-
MainActivity
- Main UI controller
- Handles user interactions
- Manages notification display
- Coordinates authentication flow
-
StreamlabsService
- Manages Streamlabs API communication
- Handles OAuth authentication
- Processes donation requests
- Provides callback mechanism for UI updates
-
FundSyncNotificationListener
- Android NotificationListenerService implementation
- Monitors UPI payment notifications
- Extracts payment details using regex patterns
- Forwards payments to StreamlabsService
-
StorageManager
- Handles persistent storage of notifications
- Uses JSON format for data storage
- Implements thread-safe file operations
- UpiNotification
data class UpiNotification(
val amount: String,
val sender: String,
val timestamp: Long,
val donationId: String?,
val isSuccess: Boolean,
val errorMessage: String?
)- Visit Streamlabs Developer Portal
- Log in with your Streamlabs account
- Create a new application:
- Click "Create New Application"
- Fill in application details:
- Name: "FundSync" (or your preferred name)
- Description: "UPI payment to Streamlabs bridge"
- Category: "Donations"
- Set OAuth Redirect URI:
fundsync://com.zero.fundsync - Note down the Client ID and Client Secret
- Clone the repository
- Find
secrets.xmlinapp/src/main/res/values/:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="streamlabs_client_id">YOUR_CLIENT_ID</string>
<string name="streamlabs_client_secret">YOUR_CLIENT_SECRET</string>
<string name="streamlabs_redirect_uri">fundsync://com.zero.fundsync</string>
</resources>- Replace
YOUR_CLIENT_IDandYOUR_CLIENT_SECRETwith values from Streamlabs
- Open the project in Android Studio
- Sync project with Gradle files
- Build the project (⌘F9 or Ctrl+F9)
-
Grant Notification Access
- App will prompt for notification access
- Click "Grant Access"
- Enable FundSync in system settings
-
Connect Streamlabs Account
- Click "Connect" when prompted
- Log in to Streamlabs
- Authorize the application
-
Receiving Donations
- UPI payments are automatically detected
- Notifications appear in the app
- Donations are forwarded to Streamlabs
-
Testing
- Use the debug button (₹) to send test donations
- Test donations appear in both app and Streamlabs
-
Viewing History
- Scroll through notification history
- Green status indicates successful donations
- Red status indicates failed donations
- Click info button on failed donations for details
- Click sun/moon icon to toggle theme
- Theme preference is saved automatically
-
Notifications Not Detected
- Verify notification access is enabled
- Ensure UPI app is supported (GPay/PhonePe/Paytm/Amazon)
- Check if notifications are enabled for UPI apps
-
Streamlabs Connection Failed
- Verify internet connection
- Check Client ID and Secret
- Try reconnecting account
-
Donations Not Appearing in OBS
- Verify Streamlabs connection in OBS
- Check alert box settings
- Test with debug donation button
-
API Keys
- Store Client ID and Secret in
secrets.xml - Never commit
secrets.xmlto version control - Add to
.gitignore:/app/src/main/res/values/secrets.xml
- Store Client ID and Secret in
-
OAuth Tokens
- Tokens stored securely using Android's SharedPreferences
- Automatically refreshed when expired
- Cleared on authentication errors
-
Network
- OkHttp caching enabled (10MB)
- Connection/read/write timeouts configured
- Efficient token management
-
Storage
- JSON-based notification storage
- Thread-safe file operations
- Maximum 1000 notifications stored
-
UI
- RecyclerView for efficient list rendering
- Smooth scrolling and animations
- Proper configuration change handling
- Fork the repository
- Create feature branch
- Implement changes
- Submit pull request
[Insert your chosen license here]
Join our Discord server for support and updates.
This documentation provides a comprehensive overview of the FundSync project. For specific implementation details, refer to the inline code comments and the respective class documentation.
Remember to keep your Client ID and Secret secure and never share them publicly. If you suspect your credentials have been compromised, regenerate them immediately in the Streamlabs Developer Portal.