Documentation
Dooo
Thank you so much for purchasing our item from themeforest.
- Version: 2.3.5
- Author: One Byte Sollution
- 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.
- 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...
- 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:
- MySQL Database Name
- MySQL Database User's username
- MySQL Database User's password
- MySQL Database host
- Licence/Purchase Code
Server Requirement
Make sure your Server meets the minimum Requirements:
- PHP Version: 7.4+
- NGINX/Appace
- MySQL Version: MariaDB 10.0+
Installation
Follow the steps below to setup your site template:
- 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.
- Below is the folder structure and needs to be uploaded to your website or localhost root directory:
install
- Contains all of the Installation files
- Open
https://yourdomain.com/install
in your Browser and make sure everything says yes in green color. Then Click on Next Button. - Create a new SQL Database and fill all the details in Database Connection Details page
- Fill all the Details of Admin in Administration Details Page Remember it will be Used to login to your Admin Panel.
- 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.
- Now the System will Autometically Install the Panel and as soon as it successfully Installed you will be redirected to the panel Login page.
- 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. - 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:
- API SERVER URL from Admin Panel API Settings
- API KEY from Admin Panel API Settings
- google-services.json file downloaded from Firebase
- 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
- To rename package name in Android studio open your project in Android mode first as shown in the below image.
- Now click on the setting gear icon and deselect Compact Middle Packages.
- Now the packages folder is broken into parts as shown in the below image.
- 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.
- Rename the directory name as your requirement and click on the Refactor button.
- Do the same for the domain extension and App folder name according to your requirement.
- 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.
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.
Now you can see the package name has been changed.
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:
- It must have at least two segments (one or more dots).
- Each segment must start with a letter.
- 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:
- 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.
- 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.
- 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
- Go to the app > manifests > AndroidManifest.xml file and change the android:label field in your application node in AndroidManifest.xml.
- Go to the app > res > values > strings.xml file as shown in the below image.
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.
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.
App Logo
- Open your Android Studio Project and make sure that your project is of the type Android. If it is not Android then select Android from the drop-down list. This is not necessary but will make it easier to search for the files and directories needed.
- Click on the res folder then the mipmap folder.
- Find the path of the image. Here, the file is present in our Downloads folder. If we can’t find an icon for our app and also are unable to design one, then we can look for them in Flaticon or Material.io. However, we must note that the former has icons designed by other designers and we need to give attribution to the respective designer when using it.
- Now once we have our icon at the desired location and we know the path, right-click on the mipmap directory and then click on New and choose Image Asset from the drop-down menu. The order of actions would be: mipmap(Right-click) > New > Image Asset
- Now the following window will open once we click on Image Asset
- Resizing the Image Icon
Now click on the App Directory
Make sure that the Image of the Icon is already Present on the Computer.
Import Image Asset
If required, the image can be resized using the Resize option or change the color of our logo by heading to the Background Layer option. Once all the required changes are made, we will click on the Next button and then on Finish and then the icon of the app will be changed!
Firebase
- Create a new project in the firebase by clicking on the Add project.
- Fill the necessary details in the pop up window about the project. Edit the project ID if required.
- Click on create project to finally create it.
- Click on the Add firebase to your android app option on the starting window.
- A prompt will open where to enter the package name of the app.
- 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.
- Now the app will be registered with firebase.
- 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
- Now download the google-services.json file and place it in the root directory of the android app.
- Now Sync the gradle by clicking on sync now.
Now add this project to the android app
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
Firebase is now successfully Configured.
Firebase Remote Config
- After successfully Configuring Firebase Go to All Projects and open Remote Config.
- In Remote Config Page Click on 3dot as shown in the image.
- After clicking 3dot it will open a dropdown menu choose the option named "Publish from a file".
- 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.
- 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.
- 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)
- 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
- Open
AndroidManifest.xml
- Open
AndroidManifest.xml
- Delete
InAppUpdate.java
from source files - Delete
activity_in__app__update.xml
fromres/layout
folder - Open
Splash.java
in source files and search for functioninAppUpdateDialog
and remove all code inside the funtion
Replace
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
with
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>
Remove
<activity android:name=".InAppUpdate" /<
Google Play
If you are seeing the Play Store flag your APK after updating to this version, please try following these steps:
- Go to your Play Console
- Select the app
- Go to App bundle explorer
- 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
- Go to the track with the violation. It will be one of these 4 pages: Internal / Closed / Open testing or Production
- 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
- 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
- To save any changes you make to your release, select Save
- When you've finished preparing your release, select Review release, and then proceed to roll out the release to 100%.
- 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
- 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.
- 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).
Don’t forget to Rate this template
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