Documentation

Dooo

Thank you so much for purchasing our item from themeforest.


  • Created: 29 April, 2021
  • Update: 18 April, 2023

If you have any questions that are beyond the scope of this help file, Please feel free to create a ticket via Item Support Page.


Overview

Dooo - Movie & Web Series Portal App, contains both android source code and admin panel to build your Own OTT Platform with most popular features and eye catching material outlook. If you are planning to deploy your own OTT Platform for android users, then it's your right choice to have much flexibility on your hand.

  1. The product comes with an Powerful Admin Panel to Fetch Content Data Remotly From TMDB & IMDB. You can update the design, what to show or not into the app real-time. You can customize many things using the Admin Panel like:
    • Application Configaration
    • Application Contents
    • User Accounts
    • Send push notification to users
    • and more...
  2. After purchasing, you'll have 4 files. Except the documentation, there are:
    • Android Studio Source Code
    • Admin Panel Source Code
    • Firebase Remote Config Json File

Pre Requisite

Before the installation, you'll need below information:

  1. MySQL Database Name
  2. MySQL Database User's username
  3. MySQL Database User's password
  4. MySQL Database host
  5. Licence/Purchase Code

Server Requirement

Make sure your Server meets the minimum Requirements:

  1. PHP Version: 7.4+
  2. NGINX/Appace
  3. MySQL Version: MariaDB 10.0+

Installation

Follow the steps below to setup your site template:

  1. Unzip the Installation folder and open the /install folder to find all the Installation files. You will need to upload that /install folder to your hosting web server using FTP or localhost in order to use it on your website.
  2. Below is the folder structure and needs to be uploaded to your website or localhost root directory:
    • install - Contains all of the Installation files
  3. Open https://yourdomain.com/install in your Browser and make sure everything says yes in green color. Then Click on Next Button.
  4. Create a new SQL Database and fill all the details in Database Connection Details page
  5. Fill all the Details of Admin in Administration Details Page Remember it will be Used to login to your Admin Panel.
  6. This is the Final Page, Just add your Licence/Purchase Code and Click on I agree with the Terms and Conditions Box and Click on Finish Button.
  7. Now the System will Autometically Install the Panel and as soon as it successfully Installed you will be redirected to the panel Login page.
  8. If it successfully installed and Redirected to Login Page then Just go to your hosting web server using FTP or localhost and delete the install Folder.
  9. You are good to go for adding your content now!

Login

After Successfull Installation Open https://yourdomain.com in your Browser and it will take You to the admin Panel Login Page. type your Email and Password there that you Provided During Installation and click on Log In Button.


License

After Successfully Logged in to the admin panel First Time you will see a Popup window asking for your Licence/Purchase Code type your Licence/Purchase Code there and Click on the blue button with Lightning icon.


Home

After Successfully adding your Licence/Purchase Code you can access all the Features of the andmin panel.


Pre Requisite

Before the installation, you'll need below information:

  1. API SERVER URL from Admin Panel API Settings
  2. API KEY from Admin Panel API Settings
  3. google-services.json file downloaded from Firebase
  4. Firebase Remote Config Json File

Installation

Follow the steps to complete your Android apk build process:

  • Unzip the file named android_source.zip and you will find a folder inside it named Dooo, This is to be opened in your Android Studio.

Package Name

  1. To rename package name in Android studio open your project in Android mode first as shown in the below image.
  2. Now click on the setting gear icon and deselect Compact Middle Packages.
  3. Now the packages folder is broken into parts as shown in the below image.
  4. Now right-click on the first package name (com) and Refactor > Rename. A warning message will be displayed but go ahead and click on the Rename current button.
  5. Rename the directory name as your requirement and click on the Refactor button.
  6. Note: Go to Build > Rebuild Project to display the updated name.

    Now you can see your directory name changes from com -> gfg as shown in the below image.

  7. Do the same for the domain extension and App folder name according to your requirement.
  8. Now you can see the package name has been changed.

  9. Now go to the build.gradle (Module: app) in Gradle Scripts. Here change the applicationId and namespace value then click on Sync Now. And you are successfully renamed your package name.

Application Id

Every Android app has a unique application ID that looks like a Java or Kotlin package name, such as com.example.myapp. This ID uniquely identifies your app on the device and in the Google Play Store


            android {
                defaultConfig {
                    applicationId "com.example.myapp"
                    minSdkVersion 15
                    targetSdkVersion 24
                    versionCode 1
                    versionName "1.0"
                }
                ...
            }
        

Although the application ID looks like a traditional Kotlin or Java package name, the naming rules for the application ID are a bit more restrictive:

  1. It must have at least two segments (one or more dots).
  2. Each segment must start with a letter.
  3. All characters must be alphanumeric or an underscore [a-zA-Z0-9_].

When you create a new project in Android Studio, the applicationId is automatically assigned the package name you chose during setup. You can technically toggle the two properties independently from then on, but it is not recommended.

It is recommended that you do the following when setting the application ID:

  1. Keep the application ID the same as the namespace. The distinction between the two properties can be a bit confusing, but if you keep them the same, you have nothing to worry about.
  2. Don't change the application ID after you publish your app. If you change it, Google Play Store treats the subsequent upload as a new app.
  3. Explicitly define the application ID. If the application ID is not explicitly defined using the applicationId property, it automatically takes on the same value as the namespace. This means that changing the namespace changes the application ID, which is usually not what you want.

Namespace

Every Android module has a namespace, which is used as the Kotlin or Java package name for its generated R and BuildConfig classes.

Your namespace is defined by the namespace property in your module's build.gradle file, as shown in the following code snippet. The namespace is initially set to the package name you choose when you create your project.


            android {
                namespace "com.example.myapp"
                ...
            }
        

While building your app into the final application package (APK), the Android build tools use the namespace as the namespace for your app's generated R class, which is used to access your app resources. For example, in the preceding build file, the R class is created at com.example.myapp.R.

The name you set for the build.gradle file's namespace property should always match your project's base package name, where you keep your activities and other app code. You can have other sub-packages in your project, but those files must import the R class using the namespace from the namespace property.

For a simpler workflow, keep your namespace the same as your application ID, as they are by default.


App Name

  1. Go to the app > manifests > AndroidManifest.xml file and change the android:label field in your application node in AndroidManifest.xml.
  2. As we can see in the Manifest.xml file that the attribute android:label = “@string/app_name” has its value stored in the strings.xml file when we change the value from the strings.xml file the apps name would change.

  3. Go to the app > res > values > strings.xml file as shown in the below image.
  4. In this file we have a string name as app_name it is the string resource that holds the current app name which is passed in the Manifest.xml file’s application tag inside the label attribute. So we change this string resources value.



Firebase

  1. Create a new project in the firebase by clicking on the Add project.
  2. Fill the necessary details in the pop up window about the project. Edit the project ID if required.
  3. Click on create project to finally create it.

  4. Now add this project to the android app


  5. Click on the Add firebase to your android app option on the starting window.
  6. A prompt will open where to enter the package name of the app.
  7. Now the app is connected to the Firebase. Now all the cloud based as well server based services can be easily used in the app.
  8. Now the app will be registered with firebase.

  9. Also, the SHA1 certificate, can be given, of the app by following steps:

    For Android Studio Version lower then 4.2
    
                Go to android studio project
                 ↳ gradle
                   ↳ root folder
                     ↳ Tasks
                       ↳ Android
                         ↳ signingReport
                           ↳ copy paste SHA1 from console
            

    For Android Studio 4.2 and newer version
    • Click on the gradle. Top right on the Android Studio. As you can see in this picture.
    • Now click on icon as seen in below picture. A new searchable windows/screen will open.
    • Now type,gradle signingreport and press Enter to start generating SHA KEY as seen in below picture.
    • Now Your SHA Key will generate
  10. Now download the google-services.json file and place it in the root directory of the android app.
  11. Now Sync the gradle by clicking on sync now.
  12. Firebase is now successfully Configured.


Firebase Remote Config

  1. After successfully Configuring Firebase Go to All Projects and open Remote Config.
  2. In Remote Config Page Click on 3dot as shown in the image.
  3. After clicking 3dot it will open a dropdown menu choose the option named "Publish from a file".
  4. It will show a Dialog to choose a file in this Step choose the Firebase Json Config File you got with the Project Files and Click Publish to Save changes.
  5. Now You can Change The Variable Values By Clicking those Pencil Edit icons. chnage those Values as per your Requirements and Click on Publish changes to Save those Values then Wait for Some time then open the app and the values will be Updated Autometically.

Signature Verification

This would be a onetime process. Inorder to get your signature you would have to temporarily enable debugging on the release version of the app and sign the app. Don't worry you don't have to publish the app you just want to take a look at the logs for the release version.

  1. Change the releaseImplementation to point to 'com.github.mukeshsolanki.Android-Tamper-Detector:tamperdetector-no-op:1.0.0' to your app/build.gradle file (Line: 254)
  2. Adding the debuggable true to your app/build.gradle file (Line: 37)

            ...
            buildTypes {
                debug {
        
                }
                release {
                    debuggable true // This is the temporary flag we added. Please remove this once you have got the signature
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
            ...
        

Next we are going to call the getSignature() to get and log our signature. Open Splash.java file in android studio then go to line 154 or search for this line Log.d("Signature", AppSignatureValidatorKt.getSignature(this));. this line should be Commented you have to uncomment this line

Sign the app and run the release version and look at logcat. You should be able to see your release signature on the console. Note it down and then we can use this to securely validate your apk using validateSignature(). Please remove the debuggable flag (Line: 37) and change the releaseImplementation to the original one back (Line: 254) once you have noted down the signature. Also the getSignature() method only works on the debug version and not on production

Now You can add the signature you noted to the Firebase Remote config to enable it. if you dont have the option to add signature to your firebase then you have to update your firebase remote config to the latest. we provided that with downloaded file. You have to do the same steps you have done to install the remote config but this time you have to use the latest json. so that this will overwrite your old firebase remote config.

Remove Custom in App Updater

  1. Open AndroidManifest.xml
  2. 
                    Replace
                     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
                    with
                     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>
                
  3. Open AndroidManifest.xml
  4. 
                    Remove
                     <activity android:name=".InAppUpdate" /<
                
  5. Delete InAppUpdate.java from source files
  6. Delete activity_in__app__update.xml from res/layout folder
  7. Open Splash.java in source files and search for function inAppUpdateDialog and remove all code inside the funtion

Google Play

If you are seeing the Play Store flag your APK after updating to this version, please try following these steps:

  1. Go to your Play Console
  2. Select the app
  3. Go to App bundle explorer
  4. Select the violating APK/app bundle's App version at the top right dropdown menu, and make a note of which releases they are under
  5. Go to the track with the violation. It will be one of these 4 pages: Internal / Closed / Open testing or Production
  6. Near the top right of the page, click Create new release. (You may need to click Manage track first) If the release with the violating APK is in a draft state, discard the release
  7. Add the new version of app bundles or APKs Make sure the non-compliant version of app bundles or APKs is under the Not included section of this release
  8. To save any changes you make to your release, select Save
  9. When you've finished preparing your release, select Review release, and then proceed to roll out the release to 100%.
  10. If the violating APK is released to multiple tracks, repeat steps 5-9 in each track

Update 2.0

Follow the Steps to Update to v2.0 from v1.6.5

  1. Login to MySqli and export the v1.6.5 Database OR login to Dooo admin panel and go to DB Backup then create a new backup and download it.
  2. Then Follow the Installation Steps to install the new v2.0

If you exported the DB File From Admin Panel Then Go to System > Database > Database Import and add the DB file you exported from v1.6.5. and click Import OR if you exported the DB File From MySqli then Login to your MySqli and Import the DB File.

Now it will Autometically Import all the Data from your Old Database.


Support

If this documentation doesn't answer your questions, So, Please create a ticket via Item Support Page

We are located in GMT +5:30 time zone and we answer all questions within 12-24 hours in weekdays. In some rare cases the waiting time can be to 48 hours. (except holiday seasons which might take longer).

Note: While we aim to provide the best support possible, please keep in mind that it only extends to verified buyers and only to issues related to our Project.

Don’t forget to Rate this template

Please Add your Review (Opinion) for Our Project. It would be a great support for us.
Go to your Codecanyon Profile > Downloads Tab > & then You can Rate & Review for our Project.
Thank You.

Changelog

See what's new added, changed, fixed, improved or updated in the latest versions.

For Future Updates Follow Us @Codecanyon

Version 2.0.5

  • Added Stream Sources (Fembed)
  • Added Custom User Agent For Live TV (Can Set Separate User Agent For Separate Stream URL)
  • Added Custom Headers For Live TV (Can Set Separate Headers For Separate Stream URL also can set multiple Headers for a Single URL)
  • Updated Downloader WiFi Only Button (Now it Saves it State)
  • Fixed Fixed all the Errors and Crashes
  • Fixed Fixed Search Include Premium Button

Version 2.0

  • Added Auto Updater for Admin Panel
  • Updated Recoded Backend from scratch Using CodeIgniter
  • Fixed Fixed all Security Issues

Version 1.6.5

  • Added New Stream Sources
  • Added OnScreen Effects (Can Be switched On/Off From Admin Panel)
  • Added New Content Item Type Desgine Which Can Be Controlled From Admin Panel.
  • Added Player Speed Controller
  • Added Payment gateway for Subscription System
  • Added New Users tab in Admin Panel Homepage
  • Added Telegram Notification Support to Custom Channel. (Using Telegram Bot)
  • Added Database Backup System
  • Fixed FLAG_SECURE On/Off Issue
  • Fixed allow root On/Off Issue
  • Fixed unity ad test Mode Always On
  • Fixed Subtitle Not Loading When Resume Watching Content
  • Fixed Stream Sources
  • Fixed Fixed all Issues With android 12
  • Improved Stream Sources
  • Improved Security
  • Improved Forget Password System (Now Works on OTP System)

Version 1.6.0

  • Added New Stream Sources
  • Added Android 12 Support
  • Added In-App Request Option
  • Added Movie and WebSeries flexible Layout (Previously it Loads 3 Items in Row But Now it can load More Items in Row in Bigger Screen.
  • Added In-App User account Edit Option
  • Fixed Content Source Type
  • Fixed Some Login mandatory Bugs Casing issue when login mandatory Torned off and Users account deleted.
  • Improved Autoplay For Single Links
  • Improved Stream Sources
  • Improved APP Size (Lesser than 30.0 MB)
  • Improved App Security (Moved all the Important Details to app_config.cpp From AppConfig.java)

Version 1.5.5

  • Added Custom Slider
  • Added New Download Source Type
  • Added New LiveTV Source Type
  • Added Movie Direct Play if Single source avaliable
  • Added New Stream Sources
  • Fixed Continue Playing
  • Fixed Bulk Season and Episodes Fetch
  • Fixed Some issues Creating server Overload
  • Fixed Youtube Invalid Link Crash
  • Fixed Auto Sleep issue For Some Devices
  • Updated Dependencies
  • Improved Download size From Codecanyon (Under 100MB)
  • Improved Security
  • Improved Player UI
  • Improved Player Brightness and Volume Slider UI
  • Improved Player Brightness System (Now Only Change Brightness for the Player not the Whole Device)
  • Improved Storage Permission Settings (Now It will ask For Permission when Download not at the Start)
  • Improved In-app Maintenance Page UI

Version 1.5.0a

  • Fixed Security
  • Improved Error in Android Project Gradle File

Version 1.5.0

  • Added Cupon auto Expire By Date
  • Added App Translation
  • Added In-App Language Change Option
  • Added New ad networks
  • Added Custom ad System (Supports Image and gif with Click to open URL in External Browser and Webview)
  • Added Embed player ad-block (Support Custom Ad URL list)
  • Added Bulk Movies & WebSeries Import by TMDB ID
  • Added Search and Add Movies & WebSeries
  • Added Live TV Search Option
  • Added Comment Section With Ability to Turn On/Off From Dashboard
  • Added Option to send Notification to Separate Users From User Manager
  • Added New Download Source
  • Added Custom Subtitle System
  • Added Google Login system (Ability to turn on/off from admin panel)
  • Fixed Login/SignUp Issue For Some Users
  • Fixed Episode and season Auto Bulk Fetch Not Fetching All Episode and season
  • Fixed Stream Sources
  • Improved Cupon Manager UI

Version 1.4.5

  • Added Genre System
  • Added Most popular contents In-App
  • Added Report manager Delete Option
  • Added Web series Season Auto Fetch Bulk Add
  • Added Web series Episodes Auto Fetch Bulk Add
  • Added Admin Panel Profile (Now You can Change Admin Details In Admin Panel)
  • Added New Content Source Type
  • Added Dashboard New Language
  • Fixed Sometimes Auto fetch Content Description Showing Random Code Between Text.
  • Fixed User Manager
  • Fixed App Crash When No Epidosed Added
  • Fixed Content Source Type

Version 1.4.0

  • Added Added Free/Premium Option For Every Movie Play Links (You can Make Movie Play Links Free or Premium Separately)
  • Added Admin Panel Content Report
  • Fixed Create New Coupon
  • Fixed Sign Up Crash
  • Fixed Streamtape Play
  • Fixed Buy Premium Dialog Upgrade Button Without Login Crash
  • Fixed Download List Listing, Newest Show First
  • Fixed Web series Episodes Free/Premium Issue
  • Improved Profile Page login Button For Guest Users.

Version 1.3.5

  • Added TMDB Language Change (Supports All Languages Officially Supported by TMDB)
  • Added 5 New Content Source Type
  • Added Twitch Live For Live TV
  • Added Related Contents in Content Details Screen
  • Added Suggestion Contents Section in Home (Show Contents Related to Watch History)
  • Added Multilanguage Support For Admin Panel (Currently Support: English, Chinese, Bengali)
  • Fixed Facebook Content Source Type
  • Fixed Login Mandatory
  • Fixed Auto Next Episode Play
  • Fixed App Open Crash
  • Improved StreamTape Now Play in App Player
  • Improved Continue Playing
  • Improved Favourites Now Works With or Without Login

Version 1.3.0

  • Added Continue Playing
  • Added Facebook Ads
  • Added Report Content Option
  • Added In-App Users Subscriptions Log
  • Added In-App Player Double Tap to Forward and Backward With Animation Like Youtube
  • Added In-App Search Engine Premium Filter Switch
  • Added Root Detection
  • Added Cracking and Scraping App Detection (Ex: LuckyPatcher, HttpCanary, SSLCapture, NetworkCapture etc.)
  • Fixed VideoPlayer FullScreen StatusBar Black
  • Fixed Password Reset
  • Fixed Duplicate Content Bug
  • Fixed Google Drive Stream Issue
  • Improved VideoPlayer UI
  • Improved In-App Search Engine (Now Can Search Keyword in Content Title and Description Also)
  • Improved App Sequrity
  • Improved Youtube Live Player UI (Now Playes In App Custom Player and Supports MultiQuality)

Version 1.2.5

  • Added Splash Screen Loading Animation
  • Added Download Movies Option
  • Added Terms & Conditions
  • Added Privacy policy
  • Added 4 New Content Source Type
  • Added 34 Download Source Type
  • Fixed App Crash Due to Invalid Content Relese Date
  • Fixed App Crash on SignUp with Same Email

Version 1.2.0a

  • Fixed Admob ad Crash Fixed
  • Fixed StreamTape source type Fixed

Version 1.2.0

  • Added Youtube live support for Live TV (Beta)
  • Added Intro Skip option for all contents (Movies and Web Series)
  • Added Send Random Notification Automattically
  • Added 29 New Content Source Type
  • Updated Youtube Source type updated now it supports multiple Quality

Version 1.0.0

Initial Release