A dynamic Prank Call Android app that allows users to schedule voice or video prank calls with customizable options. On the main screen, users can schedule calls by clicking the 'schedule a call' card, selecting the call type (voice or video), and specifying the name, time, date, ringtone, and color theme. For video calls triggered through the service, users can choose videos from their device gallery, while if the video call is triggered by the user clicking on a fake character on the main screen, the video fetched from the API is played through ExoPlayer upon accepting the call. The incoming call is triggered exactly at the scheduled time using the AlarmManager.setExactAndAllowWhileIdle function. The app preloads data for fake character images and videos during the splash screen, ensuring users don’t experience delays when the main screen opens. A caching mechanism is also applied, so the app doesn't re-fetch the data each time it is opened, improving performance and user experience. The app features fake characters, fetched via API through Retrofit, that users can interact with in fake chats, including sending/receiving images. A broadcast receiver triggers a foreground service that displays notifications in the notification bar when an incoming call is received or missed by the user. When an incoming call is triggered through the service, the selected ringtone is played using the MediaPlayer class. The app also integrates Google AdMob app open and interstitial ads, managed via Firebase Remote Config, with interstitial ads appearing after specific user actions. A premium option offers in-app subscriptions, and a history section lets users view their interaction logs. The core functionality ensures precise triggering of prank calls, including video playback via ExoPlayer for incoming video calls. Upon accepting incoming video calls, users can see themselves via the device camera, and pre-selected videos are played in a loop until the user ends the call. The app supports receiving calls even in idle or sleep mode of the device using wake locks and Keyguard Manager, ensuring compatibility with the latest Android 14 version. If the device is not connected to the internet, the app prompts users through a dialog to check the connection and offers an option to try again, as much of the data is fetched through the API.