# Tinder (com.tinder) - Feature Analysis Document

## 1. Core Features
Tinder is a location-based social search mobile application that facilitates communication between mutually interested users. The core functionality revolves around a swipe-based matching system, profile customization, real-time messaging, and a tiered premium subscription model. Key differentiators include advanced discovery algorithms, safety verification tools, group dating capabilities (Duos), and cross-platform profile transfer.

## 2. Feature Categories

### 🔐 Authentication & Account Management
- **Multi-Method Login**: Supports Phone (OTP), Email, Google, Facebook, Line (Japan), and Passkeys (`AuthStartActivity`, `PasskeySettingsActivity`).
- **Account Recovery**: Email and Phone OTP recovery flows (`AccountRecoveryActivity`, `CollectEmailOtpActivity`).
- **Age Verification & Compliance**: Mandatory age gating, regional compliance checks, and underage verification (`AgeGateActivity`, `AgeVerificationActivity`).
- **Tinder U**: College student verification and management (`TinderUVerificationFlowActivity`, `TinderUManagementActivity`).
- **Account Deletion/Pausing**: 90-day grace period for account restoration, exit surveys, and permanent deletion (`AccountDeletionActivity`, `ExitSurveyActivity`).

### 👤 Profile & Customization
- **Dynamic Profile Editing**: Edit bio, photos, school, job, city, and height (`EditProfileActivity`, `EditSchoolActivity`).
- **Media & Prompts**: Photo grid management, media prompts editor, and loops (short videos) (`MediaPromptsEditorActivity`, `LoopsPreviewActivity`).
- **Identity & Orientation**: Comprehensive gender and sexual orientation selection (`AllInGenderActivity`, `SexualOrientationSelectionActivity`).
- **Lifestyle Modes**: 
  - **Music Mode**: Connect Spotify, set anthem, display top artists (`ModeMusicSettingsActivity`, `SpotifyAuthActivity`).
  - **Astrology Mode**: Display zodiac signs and compatibility (`ModeAstrologySettingsActivity`, `AstrologyOnboardingActivity`).
- **Visual Interests & Descriptors**: Tag-based profile elements and similarity matching (`VisualInterestsRetrofitService`, `SimilarityResultsContentActivity`).

### 🔍 Discovery & Matching
- **Core Swiping**: Main recommendation engine (`TinderMainRecsApiRetrofitService`, `GET /v2/recs/core`).
- **Fast Match & Secret Admirer**: See who liked you and browse curated lists (`FastMatchSectionSeeAllActivity`, `GET /v2/fast-match/secret-admirer`).
- **Top Picks**: Daily curated high-compatibility profiles (`TopPicksSettingsActivity`, `GET /v2/top-picks`).
- **Explore**: Interest-based discovery hubs and events (`ExploreActivity`, `InRealLifeEventDetailWebviewActivity`).
- **Passport**: Change location to swipe in different cities globally (`PassportLocationsActivity`, `POST /passport/user/travel`).
- **Duos**: Group dating feature allowing friends to swipe and match together (`DuoCenterActivity`, `DuosProfileDetailWrapperActivity`).

### 💬 Messaging & Communication
- **Real-time Chat**: Text, GIFs (Tenor), stickers, and read receipts (`ChatActivity`, `GifActivity`).
- **Message Ads & Prompts**: Sponsored messages and conversation starters (`AdMessageChatActivity`, `MessageSuggestionsRetrofitService`).
- **Conversation Feedback**: Post-chat rating and feedback system (`ConversationFeedbackScreen`, `POST v1/conversation-feedback`).
- **Group Chat**: Duos-specific group messaging (`GroupChatRetrofitService`).

### 🛡️ Safety & Trust
- **Selfie Verification**: AI-powered liveness check and photo matching using FaceTec (`SelfieVerificationActivity`, `LivenessCheckActivity`).
- **ID Verification**: Government ID scanning with NFC and OCR support (`IDVerificationActivity`, `FaceTec_idscan_...`).
- **Noonlight Integration**: Emergency safety timeline and location sharing (`NoonlightOAuth2Activity`, `NoonlightAfterConnectActivity`).
- **Safety Center & Quiz**: Educational resources and safety guidelines (`SafetyCenterActivity`, `SafetyQuizActivity`).
- **Reporting & Blocking**: User reporting, blocking, and ban management (`ReportSomeoneActivity`, `UserBlockingActivity`, `BanActivity`).

### 💎 Monetization & Subscriptions
- **Subscription Tiers**: Tinder Plus, Gold, Platinum, and Auto Top-Up (`SubscriberOnboardingActivity`, `AutoTopUpUpsellActivity`).
- **Boost & Super Boost**: Temporary visibility multipliers (`PrimetimeBoostUpsellActivity`, `BoostService`).
- **Paywall Management**: Dynamic offer cards, discount tracking, and purchase restoration (`ControllaCardsCarousel`, `RestorePurchaseActivity`).
- **Cross-Platform Transfer**: Profile migration between MTCH Group apps (`PierToPierTransferModalComposable`).

## 3. User-facing Capabilities
- **Swipe & Match**: Users can swipe right (like), left (pass), or up (Super Like) on profiles. Mutual likes create a match.
- **Chat & Connect**: Send messages, GIFs, and stickers to matches. View read receipts and message delivery status.
- **Verify Identity**: Complete a video selfie or upload a government ID to earn a verified badge.
- **Travel with Passport**: Change virtual location to match with people in other cities before or during travel.
- **See Who Likes You**: View a grid of users who have already liked your profile (Gold/Platinum feature).
- **Set Up Duos**: Invite a friend to swipe together and match as a pair.
- **Manage Privacy**: Control active status, hide profile from specific contacts, manage data consents, and block users.
- **Purchase & Manage Subscriptions**: Buy Boosts, upgrade to premium tiers, manage payment methods, and restore purchases.

## 4. Settings & Configuration
*(Using actual UI labels and descriptions from `strings.xml` and code)*

| Setting Category | UI Label / Key | Description / Behavior |
|------------------|----------------|------------------------|
| **Account** | `Delete My Account` / `Deactivate` | Permanently deletes profile/data or pauses visibility. 90-day restore window for partial data recovery. |
| **Notifications** | `Notification Settings` | Configure push alerts for new matches, messages, and likes. |
| **Privacy** | `Active Status` | Toggle visibility of online/active status to other users. |
| **Privacy** | `Friends of Friends` | Control whether friends of Facebook friends can see your profile. |
| **Privacy** | `Suggestion Consent` | Opt-in/out of profile suggestions and data sharing. |
| **Security** | `Biometric Data Settings` | Manage fingerprint/face unlock for app access and verification data. |
| **Security** | `SMS Settings` | Configure SMS delivery preferences for OTPs and alerts. |
| **Discovery** | `Show Me` | Set age range, maximum distance, and gender preferences. |
| **Discovery** | `Top Picks Settings` | Configure daily curated match preferences. |
| **Discovery** | `Swipe Surge Settings` | Enable/disable notifications for high-activity periods. |
| **Chat** | `Message Controls` | Filter messages, control who can message you first. |
| **Profile** | `Manage Photo Metadata` | Control location data and EXIF info attached to uploaded photos. |
| **Profile** | `Preferred Languages` | Set language preferences for profile display and matching. |
| **Consent** | `Privacy Preferences` / `TCF Consent` | Manage GDPR/CCPA data processing consents and vendor permissions. |
| **Connected Accounts** | `Connected Accounts` | Link/unlink Spotify, Instagram, and other social profiles. |
| **Safety** | `Safety Center` | Access safety resources, report issues, and manage verification. |

## 5. Background Services & Data Handling
- **Push Notification Service**: `Insendio` handles real-time push delivery, subscription management, and campaign tracking (`POST /v2/push/devices/android/{device_token}`).
- **Location & Passport Sync**: Background location polling and virtual location updates for Passport feature (`POST /passport/user/travel`).
- **Media Upload & Processing**: Asynchronous upload of photos, loops, and profile media with pre-signed URL generation (`POST mediaservice/photo`, `POST mediaservice/loop`).
- **Chat Sync & Message Tracking**: WebSocket/HTTP polling for new messages, read receipts, and typing indicators (`GET /v2/matches/{match_id}/messages`).
- **Analytics & Telemetry**: Background event batching for user behavior, swipe patterns, and app performance (`POST /v3/publish/app/binary`).
- **Database & Caching**: Uses `Room` (`AddyDatabase`) for local caching of tracking URLs and pings, and `Jetpack DataStore` for user preferences.

## 6. Third-Party Tool Integrations
- **FaceTec SDK**: Powers 3D liveness detection, selfie verification, and government ID scanning (NFC/OCR) (`SelfieVerificationWithFacetecActivity`, `FaceTec_...` strings).
- **Arkose Labs & hCaptcha**: Bot prevention and challenge verification during login and sensitive actions (`ArkoseChallengeActivity`, `HCaptchaChallengeActivity`).
- **Noonlight**: Emergency safety integration providing timeline tracking and location sharing with authorities (`NoonlightOAuth2Activity`, `POST /noonlight/timeline`).
- **Spotify SDK**: Music integration for profile anthems, top artists, and track sharing (`SpotifyAuthActivity`, `GET /v2/profile/spotify/popular`).
- **Tenor API**: GIF and sticker search for in-chat messaging (`GET /tenor/search`, `TenorGifService`).
- **AppsFlyer & Firebase**: Attribution tracking, deep linking, and analytics (`AF_REFERRER`, `com.appsflyer.internal`).
- **Braintree & Google Play Billing**: Payment processing for subscriptions and in-app purchases (`BraintreeService`, `POST /purchase/android`).
- **Sentry & Bugsnag**: Crash reporting, error tracking, and session monitoring (`io.sentry`, `com.bugsnag.android`).
- **Google Maps & Places API**: Location search, city autocomplete, and map rendering (`AutocompleteActivity`, `GET /location/search`).
- **World ID**: Biometric identity verification integration (`WorldIdRetrofitService`, `POST v1/biometrics/world-id`).

## 7. Key Workflows / User Journeys

### 🔄 Authentication & Onboarding
1. **Launch**: `LaunchActivity` checks auth state. If unauthenticated, routes to `AuthStartActivity`.
2. **Login**: User selects method (Phone, Email, Google, Passkey). `AuthFlowActivity` orchestrates steps.
3. **Verification**: OTP sent via SMS/Email. `PhoneNumberOtpActivity` or `CollectEmailOtpActivity` handles input.
4. **Age Gate**: `AgeGateActivity` enforces minimum age. If underage, blocks access or triggers regional verification.
5. **Profile Setup**: `OnboardingActivity` collects photos, bio, gender, and discovery preferences.
6. **Main App**: `MainActivity` loads with `BottomTabLayout` (Home, Explore, Likes, Chat, Profile).

### 💘 Swiping & Matching
1. **Recs Load**: `GET /v2/recs/core` fetches profiles. `MainActivity` displays card stack.
2. **Swipe Action**: User swipes right (`POST /like/{rec_id}`), left (`POST /pass/{rec_id}`), or up (`POST /like/{rec_id}/super`).
3. **Match Creation**: Mutual like triggers `ConfettiCelebrationActivity` and adds to `InboxActivity`.
4. **Chat Initiation**: User taps match, opens `ChatActivity`. Can send text, GIFs, or use message prompts.

### 🛡️ Profile Verification
1. **Initiate**: User taps verify badge in `CurrentUserProfileActivity`.
2. **Selfie Gate**: `SelfieGateActivity` checks camera permissions.
3. **Liveness Check**: `LivenessCheckActivity` uses FaceTec to capture 3D face scan.
4. **Review**: `SelfieVerificationUnderReviewActivity` shows pending status.
5. **Result**: Badge granted or denied. Data stored securely (`POST v2/verification/selfie/complete`).

### 💳 Subscription & Paywall
1. **Trigger**: User taps locked feature (e.g., See Likes, Passport).
2. **Paywall**: `ControllaCardsCarousel` or `CrossPlatformUpgradeActivity` displays offers.
3. **Purchase**: `PurchaseActivity` handles checkout via Braintree/Google Play.
4. **Activation**: `SubscriberOnboardingActivity` confirms upgrade. Features unlocked immediately.
5. **Management**: `CreditCardManagementActivity` or `RestorePurchaseActivity` handles billing.

### 🌍 Passport & Travel
1. **Access**: User opens `PassportLocationsActivity` (Premium feature).
2. **Search**: Uses Google Places to find city (`GET /location/search`).
3. **Activate**: `POST /passport/user/travel` updates virtual location.
4. **Alert**: `TravelerAlertActivity` notifies matches of travel status.
5. **Swipe**: Recs engine returns profiles from new location.