# π Welcome
Thank you for purchasing our app. If you have any questions that are beyond the scope of this
help file, please feel free to email via my user page contact form here :
info.nemosofts@gmail.com
https://t.me/nemosofts
If you need help support related with app configuration or documentation, please write your
support request via email with the format :
- Email subject : Codecanyon username - Item purchase code
- Email body : Describe your problem as clearly as possible.
You can see our other item here : https://codecanyon.net/user/nemosofts/portfolio
# Admin Panel
Before doing installation, you need to do the following things :
PHP version 8.1 or newer is required, with the
following PHP extensions are enabled:
- PHP Version 8.1 or Higher
- Intl PHP Extension
- Ctype PHP Extension
- cURL PHP Extension
- DOM PHP Extension
- Fileinfo PHP Extension
- Filter PHP Extension
- Hash PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PCRE PHP Extension
- PDO PHP Extension
- Session PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- GD PHP Extension (or Imagick PHP Extension)
- PHP Zip Archive
- Rewrite Module (Apache or Nginx)
Cpanel Hosting (We didn't check the scriptβs performance on the VPS and VDS hosting) Dont support any free Hosting
# Database
You need to create a New Mysql database and allocate A new user to that database with all permissions. Dont skip any of the setps mentioned in Screenshot
Step 1 Create New Mysql database
Step 2 Create Database user and set password.
Step 3 Add created new user to your New Mysql Database which you created in Step 1 with all permissions.
Step 4 Copy - Database Name Database User Name Database User Password
# Installation Process
Installing Requirements
Run your site or sub domain http://yoursite.com
You should now see the minimum system requirements checklist - If there are any issues with the checklist, you will need to fix that before you can proceed to the next step
Step 1
Step 2
Where can I find my purchase code? Please read this.
Here you have to enter your Envato username and Item Purchase code.Then click Verify.
Step 3
Enter your database host
, database user
, database password
and database name
.
Then click Import, If everything goes well, you should see this page.
Database import step take some time, So don't do anything when database import.
Step 4
DONE
We created an admin account for you by default
Username: admin
Password: admin
# SMTP Config
So if you want to enable mail sending then you must configure this mail/smtp configuration in admin panel.
You can find this settings in SMTP Settings Tab.
Enter all SMTP Details as shown in screen shot below
Hosting Server:
If you have problem with mailing with this setup than please contact your provider with those variables and ask correct info
Gmail:
NOTE:
You have to set less secure apps access your account enable and 2 factor authentication off Less secure apps - Google Account please go through this
Link
Default config details for Gmail SMTP
Gmail SMTP Host: smtp.gmail.com
Gmail Email: xxxxxxx@gmail.com
Gmail Password: ******
SMTPSecure(TLS) - Port No.: 587
SMTPSecure(SSL) - Port No.: 465
# themoviedb
# Android Studio
Getting Started
Download and Install Java This section very important for you if this is first time develop android, if you already develop android project you can SKIP this page.
Download and Install Java
You can download JDK from this url :https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Download and Install Android Studio
You can download latest Android Studio from this url : https://developer.android.com/studio
# Open Project
When your Android Studio ready you can open it and you will see display like this :
- select βOpenβ.
- Browse location Project and press βOKβ button.
- Wait for few minutes until all process import has finished.
# Firebase
Before you do step change the package name, you must do this step for firebase project configuration
Please note : this step is mandatory to generate google-services.json file
Visit Firebase Console
Please register or log in first and then select create new project. In the dialog window enter the name of the project that will be created and the contents of the state and then click the create project to continue.
After successfully creating a project on Firebase then the page will be redirected to the dashboard project that has been made.
Then on the dashboard Firebase select Add Firebase to your Android app. In the next dialog window enter the name of the Android application package and SHA1 of fingerprints Certificate (optional).
Next will download the configuration file json google-services.json automatically, which will be added in the directory app in the Android project.
Copy the google-services.json file that you have downloaded and put it in the Android Studio project.
# Push Notification
ONESIGNAL
Required For Setup
Keys & IDs Setup
- Login to your OneSignal Account and select your app
- Select SETTINGS > Keys & IDs to get your OneSignal APP ID and REST API KEY
- Login to your Admin Panel, navigate to Settings menu to Notification Tab and put your OneSignal APP ID and OneSignal REST API KEY.
# Application ID
applicationId (Required)
applicationId is the main domain of your application. The applicationId is not related to the package name, although some application developers name the applicationId and the package name the same.
Each application to be published must have a unique domain name, generally using 3 word arrangements (can be more than 3), for example: com.app.yourappname, com is identified as the domain, app as the name of the developer and yourappname as the name of the application.
- Open Gradle Scripts > build.gradle (Module: app)
- Change the application ID with your own id name
- Click Sync Now.
- Change the id as unique as possible, because application id is very important used if you want to publish the application to the google play
Important : your applicationId must be the same as the Android package name you created in the firebase console when you created google-services.json
Invalidate caches
After the renaming of the package name is complete, you need to rebuild the project and invalidate the cache
- Select Build > Rebuild Project and wait until the building project finishe
- Select File > Invalidate Caches.. > Invalidate and Restart
# Verify Purchase Code
- Open Admin Panel > Settings > Verify Purchase
- Enter your Envato Username from which you have buyed the app
- Enter your Envato Purchase Code for this application
- Enter your android app final package name
Make sure the username and purchase code is right and package name in admin panel and in application is same for app to work. Also make sure you finalize the packagename and then only enter in admin panel. Do not enter any dummy package name.
# BASE URL & Encryption Key
BASE URL
- Select Project > Go to Gradle Scripts > gradle.properties
- Open gradle.properties
- Now change
BASE_URL
(get your BASE_URL in your admin panel)
Encryption KEY
- Select Project > Go to Gradle Scripts > gradle.properties
- Open gradle.properties
- Now change
ENC_KEY
- You can keep any characters for the key e.g. neme or abcdefgh or any word
If you donot understand about the keys then do not change any of the keys. Just change the BASE_URL
# Change Logo
The first step before changing the logo, it is highly recommended to delete the mipmap folder first
Then, after you delete the mipmap folder, the next steps are as follows:
- Open Android Studio β File β New β Image Asset
- You can choose 2 types of your icon type, that is Launcher Icon (Adaptive and Legacy) or (Legacy Only)
- Recommended to use Launcher Icon (Adaptive and Legacy)
- Browse and choose your image file icon (.png) format with square dimension and start customize your icon
- Make sure the resource name is "ic_launcher" β Next
- Make sure the selected Source Directory is "Main" β Finish
Android TV Banner
- Open Android Studio β File β New β Image Asset
Important Note : To prevent errors when changing the application logo, make sure you have deleted the mipmap folder first, if not, you need to repeate this steps to change the app logo at least 2 times, because in some cases, when you change the app logo without deleting the mipmpa folder, there may be a problem and the logo is not saved in the mipmap folder, most likely this is a bugs in Android Studio, if this problem occurs, please repeat the steps to change the app logo again and the problem will be resolved.
# Change Color
- to change the app color, you can see on the res/values/colors.xml
- Enter your color code inside each of strings tag :
# Change Text
The text asset consists of the application name of another text component inside the app, to change it
- You can see on the res/values/strings.xml
- Change value name in each strings tag according your needs.
# App Themes
# Release Version
Before release your application, make sure you have change the app versionCode and versionName in the build.gradle (Module: app). If you just release as new application, just set versionCode 1 and versionName 1.0.0 for first release. If you want to update your application, update your app version code and version to higher from previous version.
# Generate Signed Bundle / APK
If you have finished reskin the application and want to publish your application on Play Store, to sign your app in release mode in Android Studio, follow these steps :
On the menu bar, click Build β Generate Signed Bundle / APK β APK
On the Generate Signed Bundle or APK Wizard window, click Create new... to create your new keystore or If you already have a keystore, select Choose existing...
In the New Key Store window, provide the required information, on the Certificate form you must at least fill in First and Last Name, although other fields are optional, it is better if you fill in all fields, your key must be valid for at least 25 years, so you can Sign application updates with the same key for the life of your application.
On the Generate Signed Bundle or APK Wizard window, select a keystore, a private key, and enter the passwords for both. Then click Next
On the next window, select a destination for the signed Bundle.
Click Finish and the signed bundle will generated
Recently, many applications received warnings about data security/data security. Data security will be enforced in April 2022, so all detected apps/games related to data collection need to be updated. Referring to the data security article, We try to describe the population according to code by looking at the following points:
Automatic filling out forms (Import CSV file)
Import a CSV file for faster autofill based on the tutorial:
Download Data Safety
Fill your privacy policy link
Finally, prepare your privacy policy link. You can use the app's privacy policy generator to create your privacy policy.
Until the stage of filling out the privacy policy has been completed, but for some source code there may be additional filling in accordance with the permissions used.
# Advertising ID
In addition to filling the Data Safety form, the new Play Store policy is to answer questions or fill in data related to Advertising ID, this app is using ads for monetization purposes, so when you want to publish your app on Google Play, it will detect the use of Advertising ID, this is a common thing because some of the libraries like google play services ads sdk and other related libraries used do integrate it for the needs of displaying ads, also Advertising ID declaration needed for sending push notification and analytics features.
# Login Details Send Intent
By using this you no need to give Username, Password or DNS From remote app you can redirect the users to stream box no need login while using this method
String player_applicationId = "nsofts.streambox"; // Your App ApplicationId (StreamBox Android App)
try {
Intent sendIntent = new Intent(Intent.ACTION_SEARCH);
sendIntent.setPackage(player_applicationId);
// loginType Xtream Codes or Xui.One = xtream
// loginType 1-Stream = stream
// loginType Playlist URL = playlist
String loginType = "xtream"; // xtream or stream or playlist
sendIntent.putExtra("any_name", "AnyName");
if (!loginType.equals("playlist")){
sendIntent.putExtra("user_name", "UserName");
sendIntent.putExtra("user_pass", "Password");
}
sendIntent.putExtra("dms_url", "http://url_here.com:port"); // DMS URL OR PLAYLIST URL
sendIntent.putExtra("login_type", loginType);
sendIntent.setType("text/plain");
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(sendIntent);
} catch (Exception e) {
e.printStackTrace();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + player_applicationId)));
}
Example From your remote app you can Place button that bring your users to stream box then it will auto enter user pass and DNS and login. After they purchase any subscription in your remote app you will show a button to click once it clicked this function will be done automatically so for users its a easy method to login app.
# Create API Token
# Custom API URLs
API URL = [ your admin panel base url ]/sbox_api.php
API TOKEN = /sbox_api.php?token=[ your api token key ]
ACTION = API URL + API TOKEN + &action=create
Create User Device ID
1-Stream :
https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=device_id_stream&username=xxxxxx&password=xxxxxx&dns=https://abc.com&device_id=xxxxxxxxxx
Xtream Codes or XUI :
https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=device_id_xtream&username=xxxxxx&password=xxxxxx&dns=https://abc.com&device_id=xxxxxxxxxx
Create User Activation Code
1-Stream :
https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=activation_stream&username=xxxxxx&password=xxxxxx&dns=https://abc.com
Xtream Codes or XUI :
https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=activation_xtream&username=xxxxxx&password=xxxxxx&dns=https://abc.com
# PHP Code
function getAPIRequest($dataUrl){
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $dataUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
function createDeviceIDStream(){
$data = 'https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=device_id_stream&username=xxxxxx&password=xxxxxx&dns=https://abc.com&device_id=xxxxxxxxxx';
$get_data = getAPIRequest($data);
$response = json_decode($get_data, true);
return $response;
}
function createDeviceIDXtream(){
$data = 'https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=device_id_xtream&username=xxxxxx&password=xxxxxx&dns=https://abc.com&device_id=xxxxxxxxxx';
$get_data = getAPIRequest($data);
$response = json_decode($get_data, true);
return $response;
}
function createActivationCodeStream(){
$data = 'https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=activation_stream&username=xxxxxx&password=xxxxxx&dns=https://abc.com';
$get_data = getAPIRequest($data);
$response = json_decode($get_data, true);
return $response;
}
function createActivationCodeXtream(){
$data = 'https:abc.com/sbox_api.php?token=xxxxxxxxx&action=create&create_type=activation_xtream&username=xxxxxx&password=xxxxxx&dns=https://abc.com';
$get_data = getAPIRequest($data);
$response = json_decode($get_data, true);
return $response;
}
# Troubleshooting
Cannot resolve symbol 'AGP'
The project is using an incompatible version (AGP X.X.X) of the Android Gradle plugin. Latest supported version is AGP X.X.X
You need to update your android studio. this issue will fixed.
Cannot resolve symbol 'BuildConfig'
It's not a real error, it's just a false positive, it occurs when the project is opened for the first time or the project is not yet in Build, this problem will be automatically resolved after the project is built.
Cannot resolve symbol 'R'
This issues happens after you've Refactor > Rename your package folder with a new name, actually it's also not an error, we could say this is one of the bugs in Android Studio which until now have not been or are not fixed, as in the previous case, it's not a real error, it's just a false positive and will automatically resolved after you Invalidate Caches in your Android Studio project, you can do this by selecting File > Invalidate Caches... > Invalidate and Restart
Must include this in Playtsore description.
This is only an hls video player that works with the M3u playlist and extream api. In this app we dont host any content.
If you get this email from playconsole, please follow below steps
https://support.google.com/googleplay/android-developer/contact/play_information_request
https://github.com/square/picasso
https://github.com/square/okhtt
phttps://onesignal.com
# App Content Permission
Foreground Permission Data Sync
Video record will be Like this Record in another phone and show your current app running phone
Download a movie show notification tab that shoing download status
sample video
Photo and video permissions
android.permission.READ_MEDIA_VIDEO permission
In our app, we use video gallery, which give acces to videos in the device, and they able to watch the videos inside our app with the player.
# Rating and Support
If you like our app, we will highly appreciate if you can provide us a rating of 5. You can rate us from your CodeCanyon Menu βDownload page.
Once again, thank you so much for purchasing this app. As I said at the beginning, I'd be glad to help you if you have any questions relating to this app. No guarantees, but I'll do my best to assist. If you have a more general question relating to the apps on CodeCanyon, please feel free to email via our user page contact form or email support on below :
https://t.me/nemosofts
# FAQ
1. Why a complete reinstallation project is required for each update for Android Studio project?
Once you've reskin the project especially after package name / applicationId has been changed, the project structure will be changed, just replacing the updated files without having knowledge in Android Programming in advance will cause the project error dan failed to build the project, because of that, every we release the new update, you need to do reskin the application from begin, please note, update version is optional, update your application if you only find the issue from previous version or want to use all features from new version.