# 🏠 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)

# 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 :

  1. select β€œOpenβ€œ.
  2. Browse location Project and press β€œOK” button.
  3. 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.

  1. Open Gradle Scripts > build.gradle (Module: app)
  2. Change the application ID with your own id name
  3. Click Sync Now.
  4. 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

Invalidate caches

After the renaming of the package name is complete, you need to rebuild the project and invalidate the cache

  1. Select Build > Rebuild Project and wait until the building project finishe
  2. 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

# BASE URL & Encryption Key

BASE URL

  1. Select Project > Go to Gradle Scripts > gradle.properties
  2. Open gradle.properties
  3. Now change BASE_URL (get your BASE_URL in your admin panel)

Encryption KEY

  1. Select Project > Go to Gradle Scripts > gradle.properties
  2. Open gradle.properties
  3. Now change ENC_KEY
  4. You can keep any characters for the key e.g. neme or abcdefgh or any word

# 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

# Change Color

  1. to change the app color, you can see on the res/values/colors.xml
  2. 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

  1. You can see on the res/values/strings.xml
  2. 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


# Data Safety Form

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)));
}

# 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


# App Information Request

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


# 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.