AndroidCareProvider - Feature Inventory & Dependency Analysis

Repository: AndroidCareProvider
Platform: Android (Java + Kotlin)
Analysis Date: November 7, 2025
Version: 2.0.33 (Build 68)


Table of Contents

  1. Feature Catalog
  2. Dependency Analysis
  3. Third-Party Library Inventory
  4. Permissions Analysis
  5. Feature Completeness Matrix
  6. Deprecated Dependencies
  7. Security Vulnerabilities
  8. Upgrade Recommendations

Feature Catalog

Core Features

1. Authentication & User Management

Feature Status Implementation Platform Support
Email/Password Login ✅ Complete LoginActivity.java Android
Provider Registration ✅ Complete RegisterCareProviderActivity.java Android
Email Verification ✅ Complete VerifyEmailActivity.java Android
Password Reset ✅ Complete ForgotPasswordActivity.java Android
Two-Factor Authentication ❌ Missing - -
Biometric Login ❌ Missing - -
Social Login (Facebook) ⚠️ Partial Facebook SDK integrated but unused Android
Social Login (Google) ⚠️ Partial Google Auth SDK present Android
OAuth 2.0 Token Refresh ✅ Complete MySharedPreferences.java Android
Session Management ✅ Complete SharedPreferences-based Android

Implementation Details:
- Location: Registration/Activities/, CommonUser/Activities/
- Dependencies: Firebase Auth, Google Play Services Auth
- Storage: SharedPreferences (tokens, user data)

Security Concerns:
- ⚠️ Tokens stored in SharedPreferences (not encrypted)
- ⚠️ No certificate pinning for API calls
- ⚠️ Missing biometric authentication for sensitive operations


2. Video Consultations

Feature Status Implementation SDK Used
1-on-1 Video Calls ✅ Complete OneToOneCallActivity.kt VideoSDK 0.1.31
Audio-only Calls ✅ Complete OneToOneCallActivity.kt VideoSDK
Camera Switching ✅ Complete meeting.changeWebcam() VideoSDK
Mute/Unmute ✅ Complete meeting.muteMic() VideoSDK
Screen Sharing ✅ Complete meeting.enableScreenShare() VideoSDK
Picture-in-Picture ✅ Complete PiP mode (Android O+) VideoSDK
Call Recording ⚠️ Backend VideoSDK supports, not implemented VideoSDK
Group Calls ❌ Missing - -
Virtual Backgrounds ❌ Missing - -
Call Quality Indicators ⚠️ Partial Basic network detection VideoSDK
Legacy WebRTC ⚠️ Deprecated CollaborationMain.java Google WebRTC (old)

Implementation Details:
- Modern: CareProvider/Activities/OneToOneCallActivity.kt (Kotlin, VideoSDK)
- Legacy: Collaboration/Presence/CollaborationMain.java (Java, WebRTC - deprecated)
- Meeting Creation: Backend API + VideoSDK integration
- Signaling: VideoSDK managed (previously WebSocket to NodeServer)

Known Issues:
- ⚠️ Dual video call implementations (old and new)
- ⚠️ Legacy WebRTC code still present (technical debt)
- ⚠️ No fallback to audio-only on poor connection


3. Appointment Management

Feature Status Implementation Notes
View Appointments ✅ Complete MyAppointCarePFragment.java Filter by date
Appointment Details ✅ Complete Multiple activities Patient info, diagnosis
Reschedule Appointment ✅ Complete ReserveSlotActivity.java Provider-initiated
Cancel Appointment ✅ Complete MyAppointmentsCarePAdapter With confirmation
Appointment Reminders ✅ Complete FCM notifications 1 hour before
Mark as Complete ✅ Complete API call Updates status
No-Show Tracking ⚠️ Partial Backend-only No UI display
Recurring Appointments ❌ Missing - -
Waitlist Management ❌ Missing - -
Multi-provider Booking ❌ Missing - Only single provider

Implementation Details:
- Main UI: CareProvider/Fragments/MyAppointCarePFragment.java
- Adapter: MyAppointmentsCarePAdapter.java (expandable list)
- Filters: Date range, status (upcoming, past, cancelled)
- Actions: Start session, reschedule, cancel, view details

Data Flow:

API: GET /api/CareProvider/GetAppointments
  ↓
Parse JSON response
  ↓
Populate RecyclerView (MyAppointmentsCarePAdapter)
  ↓
User actions → API calls → Refresh list


4. Schedule Management

Feature Status Implementation Notes
Weekly Schedule View ✅ Complete WeeklyScheduleFragment.java Calendar UI
Monthly Calendar ✅ Complete MonthViewFragment.java Month picker
Set Availability ✅ Complete MarkAvailabiltyActivity.java Recurring weekly
Block Dates ✅ Complete MarkAvailabiltyActivity.java Vacation, holidays
Custom Time Slots ✅ Complete Session duration config 30/45/60 min
Override Availability ✅ Complete Specific date override One-time changes
Sync with Calendar ❌ Missing - No Google Calendar sync
Multiple Calendars ❌ Missing - Single provider only
Availability Export ❌ Missing - No iCal export

Implementation Details:
- Location: CareProvider/Schedule/, Scheduling/WeeklySchedule/
- UI: Custom calendar components (awesome-calendar library)
- Storage: Backend API, synced on-demand
- Slot Generation: Backend calculates available slots based on schedule

Complexity:
- WeeklyScheduleFragment.java = ~2600 LOC (very large, needs refactoring)


5. Patient Messaging

Feature Status Implementation Notes
Text Messages ✅ Complete ConversationActivity.java Real-time
Image Sharing ✅ Complete File upload to MediaAPI JPEG, PNG
Document Sharing ✅ Complete PDF, DOCX support Via MediaAPI
Voice Messages ✅ Complete AudioRecordView library Record & send
Read Receipts ✅ Complete Message status tracking Delivered, Read
Typing Indicators ❌ Missing - -
Message Search ⚠️ Partial Client-side only No backend search
Message Reactions ❌ Missing - No emoji reactions
File Preview ✅ Complete PDFviewerActivity In-app PDF viewer
Rich Link Previews ✅ Complete richlinkpreview library URL metadata
Message History ✅ Complete Pagination support Load more
Delete Messages ❌ Missing - No deletion
Edit Messages ❌ Missing - No editing

Implementation Details:
- Chat List: CareProvider/Activities/ChatMainActivity.java
- Conversation: CareProvider/Activities/ConversationActivity.java
- Adapter: ConversationListAdapter.java
- Real-time: FCM push notifications + MessageObservable event bus
- Media Upload: Separate MediaAPI endpoint

Message Types:
- Text
- Image (uploaded, URL embedded)
- Document (uploaded, URL embedded)
- Voice (audio file uploaded)
- Link (with preview)


6. Patient Assessments

Feature Status Implementation Notes
Create Assessment Templates ✅ Complete InitialAssessmentAcitivity.java Custom questions
Pre-built Templates ✅ Complete Backend API PHQ-9, GAD-7, etc.
Assign to Patient ✅ Complete From ClientHistoryActivity Due dates
View Patient Responses ✅ Complete FilledAssessmentViewActivity.java With scoring
Provide Feedback ✅ Complete Add comments/notes Text feedback
Assessment History ✅ Complete MyQyestionaireFragment.java Timeline view
Multi-page Assessments ✅ Complete Question pagination Step-by-step
Conditional Questions ❌ Missing - No logic branching
Scoring Algorithms ⚠️ Backend Server-side Not editable in app
PDF Export ⚠️ Partial Available but buggy Needs improvement
Assessment Scheduling ⚠️ Partial Manual assignment only No auto-schedule

Implementation Details:
- Create: CareProvider/Activities/InitialAssessmentAcitivity.java
- View Assigned: CareProvider/Fragments/MyQyestionaireFragment.java
- View Responses: CareProvider/Activities/FilledAssessmentViewActivity.java
- Question Types: Multiple choice, text, rating scales, yes/no

Workflow:

1. Provider creates/selects template
2. Assigns to patient with due date
3. Patient receives FCM notification
4. Patient completes assessment
5. Provider receives notification
6. Provider reviews responses + adds feedback


7. Homework Assignment

Feature Status Implementation Notes
Create Homework ✅ Complete NewHomeWorkActivity.java Custom tasks
Attach Resources ✅ Complete PDF, video links, URLs Multi-attachment
Set Due Dates ✅ Complete Date picker Deadline tracking
Track Completion ✅ Complete Status: Pending/Completed Timeline view
Review Submissions ✅ Complete HomeWorkCheckActivity.java With feedback
Provide Feedback ✅ Complete Text comments Star rating
Homework History ✅ Complete HomeworkFeedbackHistoryActivity Per patient
Templates ❌ Missing - No reusable templates
Reminders ⚠️ Partial FCM notifications No in-app reminders
Progress Tracking ⚠️ Partial Completion % only No detailed analytics

Implementation Details:
- Assign: CareProvider/Activities/NewHomeWorkActivity.java
- Review: CareProvider/Activities/HomeWorkCheckActivity.java
- History: CareProvider/Activities/HomeworkFeedbackHistoryActivity.java
- List: Client/Fragments/MyHomeWorkFragment.java (shared with patient app)

Attachment Types:
- PDF documents (uploaded)
- YouTube videos (embedded player)
- Web links (opened in WebView)
- Custom instructions (text)


8. Prescription Management

Feature Status Implementation Notes
Digital Prescriptions ✅ Complete AddPrescriptionActivity.kt Kotlin implementation
Drug Database Search ⚠️ Partial API-based Limited database
Dosage Management ✅ Complete Custom input Frequency, duration
E-Signature ⚠️ Partial Provider name only No digital signature
PDF Export ✅ Complete Generate PDF With branding
Share Prescription ✅ Complete Export & share Email, WhatsApp
Prescription History ✅ Complete PrescriptionListFragment.java Per patient
Drug Interactions Check ❌ Missing - Safety concern
Allergy Warnings ❌ Missing - Safety concern
Refill Management ❌ Missing - -
Pharmacy Integration ❌ Missing - No e-prescribing

Implementation Details:
- Add/Edit: views/activity/AddPrescriptionActivity.kt (Kotlin, Navigation Component)
- View: CareProvider/Activities/PrescriptionActivity.java
- List: CareProvider/Fragments/PrescriptionListFragment.java
- Legacy Add: PrescriptionCPAddFragment.java, PrescriptionClientAddFragment.java

Components:
- Drug selection (search API)
- Dosage (strength, form, quantity)
- Instructions (frequency, duration)
- Diagnosis (free text)
- Allergy list (displayed, not validated)

Safety Concerns:
- ❌ No drug interaction checking
- ❌ No allergy cross-reference
- ❌ No duplicate prescription detection


9. Patient History & Records

Feature Status Implementation Notes
Patient Timeline ✅ Complete ClientHistoryActivity.java Chronological view
Session Notes ✅ Complete Add notes per session Rich text
Diagnosis History ✅ Complete Track diagnoses ICD codes
Medication History ✅ Complete All prescriptions Timeline
Assessment Results ✅ Complete Linked to timeline Scores & trends
Homework Progress ✅ Complete Completion tracking Success rate
Appointment History ✅ Complete All sessions With status
Document Storage ✅ Complete Upload PDFs, images Cloud storage
Treatment Plans ⚠️ Partial Notes-based No structured plans
Progress Charts ❌ Missing - No visual analytics
Export Records ❌ Missing - No PDF export

Implementation Details:
- Main View: CareProvider/Activities/ClientHistoryActivity.java
- Provider History: CareProvider/Activities/CPHistoryActivity.java
- Data Sources: Multiple API endpoints aggregated

Displayed Sections:
- Personal info
- Diagnosis list
- Prescription history
- Assessment results
- Homework assignments
- Session notes
- Appointment log


10. Payment & Billing

Feature Status Implementation Notes
Payment History ✅ Complete PaymentsDetailActivity.java Earnings list
Earnings Summary ✅ Complete Total earnings display Filtered by date
Payment Status ✅ Complete Pending/Completed/Refunded Color-coded
Refund Requests ⚠️ Partial Backend-initiated No provider UI
Invoice Generation ❌ Missing - -
Export Statements ❌ Missing - No CSV/PDF export
Payment Methods ✅ Complete PaymentMethodFragment.java Bank details, wallet
Promo Codes ✅ Complete AddPromoCodeActivity.java Create & manage
Wallet Balance ✅ Complete WalletBalanceFragment.java View balance
Payout Schedule ⚠️ Backend - No visibility in app

Implementation Details:
- Main UI: CareProvider/Activities/PaymentsDetailActivity.java
- Payment Setup: CareProvider/Fragments/PaymentMethodFragment.java, PaymentInfoFragment.java
- Promo Codes: CareProvider/Activities/AddPromoCodeActivity.java
- Integration: WebView redirect to payment gateway (Smart Routing)

Payment Flow (Patient Side):

1. Select slot → SlotPaymentSuggestActivity
2. Choose payment method (Wallet, Card, Insurance)
3. If Card: PaymentWebActivity (WebView) → Payment gateway
4. Return with payment status
5. Create appointment
6. Provider receives notification

Provider Payment:
- Backend calculates provider earnings
- No direct payment processing in app
- View-only payment history


11. Profile & Settings

Feature Status Implementation Notes
Personal Info ✅ Complete PersonalInfoFragment.java Name, gender, DOB
Contact Info ✅ Complete ContactInfoFragment.java Email, phone, address
Professional Credentials ✅ Complete EducationInfoFragment.java Degrees, licenses
Profile Photo ✅ Complete Image upload Cropping support
Video Bio ✅ Complete VideoBioFragment.java YouTube integration
Current Job ✅ Complete CurrentJobFragment.java Employment details
Specializations ✅ Complete Select from list Multiple selections
Languages ✅ Complete Arabic/English Multi-select
Session Duration ✅ Complete ManageSessionDurationFragment 30/45/60 min
Service Management ✅ Complete ManageServicesFragment.java Enable/disable services
Privacy Settings ✅ Complete PrivacyPolicyFragment.java Terms & policy
Saudi Commission Docs ✅ Complete SaudiCommesionFragment.java License verification
Notification Settings ⚠️ Partial Basic enable/disable No granular control
Language Preference ✅ Complete LocaleUtils.java AR/EN with RTL
Theme ❌ Missing - No dark mode

Implementation Details:
- Main Profile: CareProvider/Fragments/MyProfileCarePFragment.java
- Legacy: CareProvider/Fragments/MyProfileFragment.java
- Tabs: ViewPager with multiple fragments
- Photo Upload: Image cropping (android-image-cropper library)

Profile Sections:
1. Personal Information
2. Contact Information
3. Education & Credentials
4. Current Job
5. Video Bio
6. Payment Information
7. Saudi Commission Documents (Saudi Arabia specific)


12. Search & Discovery (Patient Features)

Feature Status Implementation Notes
Search Providers ✅ Complete FindCPFragment.java Keyword search
Filter by Specialty ✅ Complete CarePListingFiltersActivity.java Multi-select
Filter by Availability ✅ Complete Date/time filters Real-time slots
Filter by Rating ✅ Complete Minimum rating filter Star rating
Filter by Price ✅ Complete Range slider Min-max
Provider Profile View ✅ Complete CarePDetailActivity.java Full details
Ratings & Reviews ✅ Complete RateCareProviderActivity.java 5-star + comment
Favorite Providers ✅ Complete MyCPFragment.java Saved list
Recommended Providers ❌ Missing - No ML recommendations
Provider Comparison ❌ Missing - -

Implementation Details:
- Search: Client/Fragments/FindCPFragment.java
- Filters: CareProvider/Activities/CarePListingFiltersActivity.java
- Provider List: CommonUser/Activities/CarePListActivity.java
- Details: CommonUser/Activities/CarePDetailActivity.java (with YouTube player)

Search Criteria:
- Name (keyword)
- Specialty (multi-select)
- Location (city/region)
- Availability (date range)
- Rating (minimum stars)
- Price range
- Gender preference
- Languages spoken


13. Notifications

Feature Status Implementation Notes
Push Notifications ✅ Complete MyFirebaseMessagingService.java FCM
In-App Notifications ✅ Complete NotificationsActivity.java Notification center
Badge Counts ✅ Complete android-viewbadger library Unread count
Notification Types ✅ Complete 10+ types See below
Custom Sounds ⚠️ Partial Default FCM sounds No custom sounds
Notification Settings ⚠️ Partial Enable/disable all No per-type control
Scheduled Notifications ⚠️ Backend Server-scheduled Appointment reminders
Notification History ✅ Complete Stored in list Last 30 days

Notification Types:

Type Code Trigger Action
New Message 1 Chat message received Open ConversationActivity
Appointment Reminder 2 1 hour before Open MyAppointCarePFragment
Incoming Call 3 Video call invite Open OneToOneCallActivity
Assessment Assigned 4 New assessment Open MyQyestionaireFragment
Homework Due 5 Due date approaching Open MyHomeWorkFragment
Payment Received 6 Payment completed Open PaymentsDetailActivity
New Appointment 7 Booking confirmed Open MyAppointCarePFragment
Appointment Cancelled 8 Cancellation Open MyAppointCarePFragment
Profile Update Needed 9 Missing info Open MyProfileCarePFragment
System Announcement 10 Admin message Open WebviewFragment

Implementation:

// MyFirebaseMessagingService.java
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    String notificationType = data.get("notificationType");

    switch (notificationType) {
        case "1": // New message
            openChatActivity(conversationId);
            break;
        case "3": // Incoming call
            Intent intent = new Intent(this, OneToOneCallActivity.class);
            intent.putExtra("meetingId", meetingId);
            startActivity(intent);
            break;
        // ...
    }
}


14. Additional Features

Feature Status Implementation Category
Diary/Journal ✅ Complete MyDiaryFragment.java Client feature
Educational Content ✅ Complete MedicalSourcesActivity.java Resources
Blogs ✅ Complete BlogsActivity.java Articles
FAQ ✅ Complete FAQFragment.java Help center
Contact Support ✅ Complete ContactUsFragment.java Email form
About/Our Story ✅ Complete OurStoryFragment.java Info
Referrals ✅ Complete ReferralActivity.java Patient referrals
Disorders Info ✅ Complete DisordersFragment.java Mental health info
Onboarding ✅ Complete OnboardingActivity.kt First-run tutorial
App Update ✅ Complete Google Play In-App Updates Auto-update prompt
App Review ✅ Complete Google Play In-App Review Rating prompt
Deep Linking ⚠️ Partial Branch.io integration Not fully used
Offline Mode ❌ Missing - No offline support
Data Export ❌ Missing - GDPR requirement
Account Deletion ❌ Missing - GDPR requirement

Dependency Analysis

Gradle Dependencies Summary

Total Dependencies: 78 (including test dependencies)

Category Count Status
AndroidX Libraries 15 ✅ Up to date
Firebase Services 4 ✅ Up to date
Networking 3 ⚠️ Some outdated
UI Libraries 25+ ⚠️ Mixed versions
Video/Media 3 ⚠️ VideoSDK outdated
Utilities 15+ ⚠️ Some outdated
Testing 4 ⚠️ Outdated

Third-Party Library Inventory

Core Dependencies

1. Android Jetpack (AndroidX)

Library Version Purpose Status
androidx.appcompat 1.2.0 Backwards compatibility ⚠️ Outdated (current: 1.6.x)
androidx.constraintlayout 1.1.3 Layout manager ⚠️ Outdated (current: 2.1.x)
androidx.fragment 1.6.2 Fragment support ✅ Recent
androidx.navigation:navigation-fragment 2.5.0 Navigation Component ⚠️ Outdated (current: 2.7.x)
androidx.navigation:navigation-ui 2.5.0 Navigation UI ⚠️ Outdated
androidx.work:work-runtime 2.8.1 Background tasks ✅ Recent
androidx.swiperefreshlayout 1.0.0 Pull to refresh ⚠️ Outdated (current: 1.1.x)
androidx.legacy:legacy-support-v4 1.0.0 Legacy support ⚠️ Deprecated

Recommendation: Upgrade AndroidX libraries to latest stable versions.


2. Firebase Services

Library Version Purpose Status
firebase-messaging 23.4.0 Push notifications (FCM) ✅ Recent
firebase-auth 22.3.1 Authentication ✅ Recent
firebase-crashlytics 18.4.1 Crash reporting ✅ Recent
firebase-analytics 21.3.0 Analytics ✅ Recent
firebase-jobdispatcher 0.8.5 Job scheduling ❌ Deprecated (use WorkManager)

Issues:
- ❌ firebase-jobdispatcher is deprecated → Migrate to WorkManager
- ⚠️ Firebase BoM not used → Version conflicts possible

Recommendation:

// Use Firebase BoM for version management
implementation platform('com.google.firebase:firebase-bom:32.7.0')
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-analytics'


3. Networking Libraries

Library Version Purpose Status Security
android-networking (Fast Android Networking) 1.0.2 HTTP client ⚠️ Outdated (2018) ⚠️ Low activity
android-async-http 1.4.9 HTTP client ❌ Deprecated (2016) ❌ Unmaintained
nv-websocket-client 2.3 WebSocket ⚠️ Outdated (2017) ⚠️ Low activity
gson 2.8.5 / 2.8.2 JSON parsing ⚠️ Outdated (current: 2.10.x) ✅ Stable

Issues:
- ❌ android-async-http is abandoned (last update 2016)
- ⚠️ android-networking has low maintenance activity
- ⚠️ Duplicate Gson versions (2.8.2 and 2.8.5)

Recommendation: Migrate to modern alternatives

// Replace with Retrofit + OkHttp
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'

// Replace WebSocket with OkHttp WebSocket or Scarlet
implementation 'com.tinder.scarlet:scarlet:0.1.12'


4. Video & Media

Library Version Purpose Status Notes
live.videosdk:rtc-android-sdk 0.1.31 Video calls ⚠️ Old Current: 0.1.x (check docs)
androidyoutubeplayer:core 12.1.0 YouTube player ✅ Recent For video bio
android-pdf-viewer 2.8.2 PDF viewer ⚠️ Outdated (2019)
android-gif-drawable 1.2.22 GIF support ✅ Maintained

Issues:
- ⚠️ VideoSDK version may be outdated (check latest)
- ⚠️ PDF viewer library last updated 2019

Recommendation: Check VideoSDK latest version and consider migration path.


5. Image Loading & Processing

Library Version Purpose Status
glide 4.16.0 Image loading ✅ Recent
picasso 2.4.0 Image loading ❌ Duplicate + Outdated
circleimageview 2.1.0 Circular images ⚠️ Outdated (2017)
android-image-cropper (CanHub) 4.3.3 Image cropping ✅ Recent

Issues:
- ❌ Both Glide AND Picasso included (unnecessary duplication)
- ⚠️ Picasso version is ancient (2.4.0 from 2015)
- ⚠️ CircleImageView is outdated (use ShapeableImageView from Material)

Recommendation:

// Remove Picasso, use Glide only
// implementation 'com.squareup.picasso:picasso:2.4.0' // DELETE

// Replace CircleImageView with Material Components
// implementation 'de.hdodenhof:circleimageview:2.1.0' // DELETE
implementation 'com.google.android.material:material:1.11.0'
// Use ShapeableImageView in layouts


6. UI Components

Library Version Purpose Status
lottie 5.2.0 Animations ✅ Recent
awesome-calendar 2.0.0 Calendar view ⚠️ Unknown maintenance
Toasty 1.4.0 Custom toasts ⚠️ Outdated (2020)
easydialog 1.4 Dialogs ❌ Abandoned (2017)
ColorDialog 1.0.0 Color picker ❌ Abandoned (2017)
crystalrangeseekbar 1.1.3 Range slider ⚠️ Outdated (2018)
indicatorseekbar 2.1.2 Seekbar with indicator ⚠️ Outdated (2019)
RangeSeekBar (Jay-Goo) 3.0.0 Range slider ⚠️ Duplicate functionality
seekbar-ranged-view 2.0.5 Range slider ⚠️ Triple duplication!
slidetoact 0.7.0 Slide to confirm ⚠️ Outdated (2020)
Android-SpinKit 1.4.0 Loading animations ⚠️ Outdated (2018)
round-corner-progress-bar 2.1.2 Progress bar ⚠️ Outdated (2021)
indefinitepagerindicator 1.0.10 ViewPager indicator ⚠️ Outdated (2021)
view-pager-transforms 2.0.24 ViewPager animations ⚠️ Outdated (2018)

Issues:
- ❌ 3 different range slider libraries (crystalrangeseekbar, RangeSeekBar, seekbar-ranged-view)
- ❌ Many abandoned libraries (easydialog, ColorDialog)
- ⚠️ Most UI libraries are 3-5 years old

Recommendation: Consolidate and modernize UI libraries. Use Material Design Components where possible.


7. Utilities

Library Version Purpose Status
sdp-android 1.0.6 Scalable DP ✅ Maintained
ssp-android 1.0.6 Scalable SP ✅ Maintained
OtpView v1.1.2 OTP input ⚠️ Outdated (2019)
AudioRecordView 1.0.5 Voice recording ⚠️ Outdated (2019)
android-file-chooser v1.1.14 File picker ⚠️ Outdated (2019)
richlinkpreview 1.0.9 Link previews ⚠️ Outdated (2021)
passwordstrengthmeter 0.4 Password strength ⚠️ Outdated (2016)
permissions (Nabin Bhandari) 3.8 Runtime permissions ⚠️ Outdated (2020)
accompanist-permissions 0.27.0 Jetpack Compose permissions ⚠️ Not used (no Compose)

Issues:
- ⚠️ Most utility libraries are outdated
- ❌ accompanist-permissions included but Compose not used


8. Google Play Services

Library Version Purpose Status
play-services-auth 20.4.0 Google Sign-In ✅ Recent
play:asset-delivery 2.2.2 Asset delivery ✅ Recent
play:feature-delivery 2.1.0 Dynamic feature modules ✅ Recent
play:review 2.0.1 In-app review ✅ Recent
play:app-update 2.1.0 In-app updates ✅ Recent

Status: ✅ All recent and properly maintained.


9. Social & Authentication

Library Version Purpose Status
facebook-android-sdk latest.release Facebook integration ⚠️ Vague versioning
connectionclass (Facebook) 1.0.1 Network quality ⚠️ Outdated (2016)

Issues:
- ⚠️ latest.release is bad practice (unpredictable builds)
- ⚠️ Facebook Network Quality library is abandoned

Recommendation:

// Use specific version
implementation 'com.facebook.android:facebook-android-sdk:16.2.0'


10. Legacy/Deprecated Dependencies

Library Version Status Action Required
com.android.support:design 28.0.0 ❌ Deprecated Migrate to AndroidX Material
firebase-jobdispatcher 0.8.5 ❌ Deprecated Replace with WorkManager
android-async-http 1.4.9 ❌ Abandoned Replace with Retrofit
androidx.legacy:legacy-support-v4 1.0.0 ❌ Deprecated Remove or replace

11. Custom/Local Libraries

Library Location Purpose
intlphoneinput project(':intlphoneinput') International phone input
duo-navigation-drawer project(':duo-navigation-drawer') Custom navigation drawer
android-viewbadger.jar libs/ Badge count on views

Notes:
- Custom libraries are maintained in-tree
- Should be evaluated for replacement with modern alternatives


Testing Dependencies

Library Version Purpose Status
junit 4.12 Unit testing ⚠️ Outdated (current: 4.13.x, migrate to JUnit 5)
espresso-core 3.1.0-alpha4 / 3.1.2-alpha01 UI testing ❌ Alpha versions in production
androidx.test:runner 1.1.0-alpha4 Test runner ❌ Alpha version

Issues:
- ❌ Using alpha versions for testing libraries
- ⚠️ Very outdated test dependencies
- ⚠️ Espresso version inconsistency

Recommendation:

testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test:rules:1.5.0'


Permissions Analysis

Declared Permissions (27 total)

Permission Justification Risk Level Notes
INTERNET API calls, WebSocket Low Essential
ACCESS_NETWORK_STATE Check connectivity Low Essential
CAMERA Video calls Medium Runtime permission
RECORD_AUDIO Video calls, voice messages Medium Runtime permission
MODIFY_AUDIO_SETTINGS Audio routing Low -
READ_EXTERNAL_STORAGE Access documents Medium Runtime permission (Android <13)
WRITE_EXTERNAL_STORAGE Save downloads Medium Runtime permission (Android <13)
READ_MEDIA_IMAGES Access images Medium Runtime permission (Android 13+)
POST_NOTIFICATIONS Push notifications Low Runtime permission (Android 13+)
WAKE_LOCK Keep awake during calls Low -
BLUETOOTH Bluetooth headsets Low -
BLUETOOTH_ADMIN Bluetooth management Low -
BLUETOOTH_CONNECT Bluetooth (Android 12+) Medium Runtime permission
SYSTEM_ALERT_WINDOW Picture-in-picture High Overlay permission
CODE_DRAW_OVER_OTHER_APP_PERMISSION Overlay (custom) High Non-standard
READ_PHONE_STATE Call state awareness High ⚠️ Privacy concern
DEVICE_POWER Power management Medium System permission
BROADCAST_STICKY Sticky broadcasts Low Deprecated
GET_ACCOUNTS Account access High ⚠️ Not used?

Dangerous Permissions (Require Runtime Request):
- CAMERA
- RECORD_AUDIO
- READ_EXTERNAL_STORAGE (Android <13)
- WRITE_EXTERNAL_STORAGE (Android <13)
- READ_MEDIA_IMAGES (Android 13+)
- POST_NOTIFICATIONS (Android 13+)
- BLUETOOTH_CONNECT (Android 12+)
- READ_PHONE_STATE

Security Concerns:
- ⚠️ READ_PHONE_STATE: High privacy risk, should be removed if not essential
- ⚠️ GET_ACCOUNTS: Appears unused, should be removed
- ⚠️ SYSTEM_ALERT_WINDOW: Powerful permission, ensure proper usage
- ⚠️ CODE_DRAW_OVER_OTHER_APP_PERMISSION: Non-standard, verify necessity

Recommendations:
1. Remove unused permissions (GET_ACCOUNTS, likely others)
2. Audit READ_PHONE_STATE usage
3. Ensure all dangerous permissions are requested at runtime
4. Add permission rationale dialogs


Feature Completeness Matrix

Platform Comparison

Feature Category Android (Care Provider) Android (Patient) iOS (Care Provider) Web Portal
Authentication ✅ Complete ✅ Complete ❓ Unknown ✅ Complete
Video Calls ✅ Complete (VideoSDK) ✅ Complete ❓ Unknown ⚠️ Limited
Messaging ✅ Complete ✅ Complete ❓ Unknown ✅ Complete
Appointments ✅ Complete ✅ Complete ❓ Unknown ✅ Complete
Assessments ✅ Complete ✅ Complete ❓ Unknown ✅ Complete
Homework ✅ Complete ✅ Complete ❓ Unknown ⚠️ Partial
Prescriptions ✅ Complete ✅ View only ❓ Unknown ✅ Complete
Payments ✅ View only ✅ Complete ❓ Unknown ✅ Complete
Schedule Management ✅ Complete ❌ N/A ❓ Unknown ✅ Complete
Patient History ✅ Complete ❌ N/A ❓ Unknown ✅ Complete

Missing Features (Gap Analysis)

Feature Priority Reason
Offline Mode High Poor network areas
Data Export (GDPR) High Legal requirement
Account Deletion High Legal requirement
Biometric Auth Medium Security & UX
Drug Interaction Check High Patient safety
Group Video Calls Medium Family therapy
Dark Mode Low User preference
Treatment Plan Templates Medium Provider efficiency
Analytics Dashboard Low Provider insights

Deprecated Dependencies

Critical (Remove Immediately)

Library Version Deprecated Since Replacement
firebase-jobdispatcher 0.8.5 2019 WorkManager
android-async-http 1.4.9 2016 Retrofit + OkHttp
com.android.support:design 28.0.0 2018 AndroidX Material
androidx.legacy:legacy-support-v4 1.0.0 2019 Specific AndroidX libs

High Priority (Migrate Soon)

Library Issue Recommendation
easydialog Abandoned 2017 Use MaterialAlertDialogBuilder
ColorDialog Abandoned 2017 Use Material Color Picker
picasso Duplicate + old Remove, use Glide
circleimageview Outdated Use ShapeableImageView

Security Vulnerabilities

Known CVEs (Dependency Check Required)

⚠️ Action Required: Run dependency vulnerability scan

./gradlew dependencyCheckAnalyze

Potential Vulnerabilities

Library Version Concern Severity
gson 2.8.2/2.8.5 Known vulnerabilities in <2.8.9 Medium
android-async-http 1.4.9 Unmaintained, potential security issues High
nv-websocket-client 2.3 Old, potential vulnerabilities Medium
picasso 2.4.0 Ancient version, potential issues Low

Recommendations:
1. Upgrade Gson to latest
2. Replace android-async-http with Retrofit
3. Consider OkHttp WebSocket instead of nv-websocket-client
4. Remove Picasso


Upgrade Recommendations

Immediate Actions

Priority 1: Security & Compliance

// 1. Remove deprecated Firebase JobDispatcher
// implementation 'com.firebase:firebase-jobdispatcher:0.8.5' // DELETE
// Migrate jobs to WorkManager (already included)

// 2. Upgrade Gson (security)
implementation 'com.google.code.gson:gson:2.10.1' // Was: 2.8.2/2.8.5

// 3. Remove abandoned HTTP client
// implementation 'com.loopj.android:android-async-http:1.4.9' // DELETE

Priority 2: Remove Duplicates

// Remove Picasso (duplicate)
// implementation 'com.squareup.picasso:picasso:2.4.0' // DELETE

// Remove duplicate range sliders (keep one)
// implementation 'com.crystal:crystalrangeseekbar:1.1.3' // DELETE
// implementation 'com.github.guilhe:seekbar-ranged-view:2.0.5' // DELETE
// Keep: implementation 'com.github.Jay-Goo:RangeSeekBar:3.0.0'

// Remove unused Compose library
// implementation 'com.google.accompanist:accompanist-permissions:0.27.0' // DELETE

Priority 3: Fix Facebook SDK

// Use specific version instead of latest.release
implementation 'com.facebook.android:facebook-android-sdk:16.2.0'

Short-term Actions

Migrate to Modern Networking Stack

// Replace Fast Android Networking + async-http
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'

// Replace WebSocket
implementation 'com.squareup.okhttp3:okhttp:4.12.0' // Includes WebSocket

Upgrade AndroidX

implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment:2.7.6'
implementation 'androidx.navigation:navigation-ui:2.7.6'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'

Upgrade Testing

testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test:runner:1.5.2'

Long-term Actions

Consolidate UI Libraries

// Replace old UI libraries with Material Design Components
implementation 'com.google.android.material:material:1.11.0'

// Remove:
// - easydialog → MaterialAlertDialogBuilder
// - ColorDialog → Material Color Picker
// - circleimageview → ShapeableImageView
// - Multiple seekbars → Material Slider

Evaluate VideoSDK
- Check latest VideoSDK version
- Consider migration path if major version available
- Evaluate alternatives (Agora, Twilio) if needed

Consider Kotlin Migration
- New features in Kotlin only
- Gradual migration of existing code
- Use Kotlin Coroutines for async operations


Summary & Action Plan

Critical Issues

  1. Deprecated dependencies (firebase-jobdispatcher, async-http, support libraries)
  2. Security vulnerabilities (old Gson, unmaintained libraries)
  3. Duplicate libraries (Picasso+Glide, 3 range sliders)
  4. ⚠️ Outdated testing dependencies (alpha versions, old JUnit)
  5. ⚠️ Privacy concerns (READ_PHONE_STATE, GET_ACCOUNTS permissions)

Priority Summary

Priority Tasks
Immediate Remove deprecated, fix duplicates
Short-term Migrate networking, upgrade AndroidX
Long-term UI library consolidation, Kotlin migration

Risk Assessment

Risk Category Level Impact
Security High Vulnerable dependencies, exposed tokens
Maintainability High Outdated libraries, tech debt
Stability Medium Alpha test libraries, duplicate deps
Compliance High Missing GDPR features

Document Status: Complete
Next Steps: Security Audit
Maintained By: Audit Team
Version: 1.0