Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Download Not Work in Live App. #253

Open
akshat9902 opened this issue Nov 1, 2023 · 7 comments
Open

Download Not Work in Live App. #253

akshat9902 opened this issue Nov 1, 2023 · 7 comments

Comments

@akshat9902
Copy link

akshat9902 commented Nov 1, 2023

hiii,
i will use your library for download insta and Facebook Video.
i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update).
please help .
thanks.

@alexch33
Copy link

hiii, i will use your library for download insta and Facebook Video. i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update). please help . thanks.

hi!
try to add in app build.gradle file:

    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
            universalApk true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

and in proguards file:

-keep class com.yausername.youtubedl_android.** { *; }

and include proguards file in release build in app's build.gradle:

 release {
            ...

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

@akshat9902
Copy link
Author

akshat9902 commented Nov 24, 2023

Thanks For Help But in Live App Facing Same Error .i will provides some ScreenShots .

As you mentioned above, I have add in my project.. show in below ScreenShots of my gradle file.
ScreenShot 1==> newss

but When my app is Live in playStore then it shows some Toast error as shown in below Square Box in ScreenShots ..
ScreenShot 1==>issue 1
ScreenShot 1===>issue 2.

when we create And Test Relese Apk .Update and Download Video Both Successfull.
.i will provides some ScreenShots ok Relese Apk.
ScreenShot 1==> relese update

Screen Shot 2 ==> downlaod relese

@syedusama5556
Copy link

the issue is the packaging so you have to add these lines in the gradle

        resources {
            excludes += ['mozilla/public-suffix-list.txt',
                         'META-INF/DEPENDENCIES',
                         'META-INF/LICENSE',
                         'META-INF/LICENSE.txt',
                         'META-INF/license.txt',
                         'META-INF/NOTICE',
                         'META-INF/NOTICE.txt',
                         'META-INF/notice.txt',
                         'META-INF/ASL2.0',
                         'META-INF/*.kotlin_module']
        }
        jniLibs.useLegacyPackaging = true
    }



    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

@appteam123
Copy link

same error in android java can any one help

@appteam123
Copy link

appteam123 commented Apr 2, 2024

plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
}

android {
compileSdk 34
namespace ""
defaultConfig {
applicationId ""
minSdkVersion 24
targetSdkVersion 34
versionCode 16
versionName "16"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    resources {
        excludes += ['mozilla/public-suffix-list.txt',
                     'META-INF/DEPENDENCIES',
                     'META-INF/LICENSE',
                     'META-INF/LICENSE.txt',
                     'META-INF/license.txt',
                     'META-INF/NOTICE',
                     'META-INF/NOTICE.txt',
                     'META-INF/notice.txt',
                     'META-INF/ASL2.0',
                     'META-INF/*.kotlin_module']
    }
}

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

lintOptions {
    quiet true
    abortOnError false
    ignoreWarnings true
    checkReleaseBuilds false
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
    viewBinding true
}
splits {
    abi {
        enable true
        reset()
        include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        universalApk true
    }
}

}

dependencies {

implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.google.firebase:firebase-analytics:21.6.1'
implementation 'com.google.firebase:firebase-crashlytics:18.6.2'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.activity:activity:1.8.2'

testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.7'
implementation 'com.github.bumptech.glide:glide:4.16.0'
implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
implementation 'com.github.angads25:toggle:1.1.0'
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation "androidx.work:work-runtime:2.9.0"

implementation 'com.intuit.ssp:ssp-android:1.1.0'
implementation 'com.intuit.sdp:sdp-android:1.1.0'

 implementation 'org.jsoup:jsoup:1.15.3'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'org.xutils:xutils:3.9.0'
implementation 'com.google.android.exoplayer:exoplayer:2.19.1'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34'
implementation 'com.airbnb.android:lottie:6.3.0'
implementation("org.greenrobot:eventbus:3.3.1")
implementation 'com.amitshekhar.android:android-networking:1.0.2'

implementation 'com.cj.videoprogressview:progressview:1.0.0'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.tbuonomo:dotsindicator:4.3'

implementation 'com.google.android.play:review:2.0.1'
implementation "androidx.multidex:multidex:2.0.1"
implementation 'com.karumi:dexter:6.2.3'

implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.firebase:firebase-config:21.6.3'
implementation "com.android.billingclient:billing:6.2.0"
implementation 'com.google.android.play:review:2.0.1'
implementation 'com.google.android.gms:play-services-ads:23.0.0'
implementation("com.google.android.ump:user-messaging-platform:2.1.0")
implementation 'com.github.HamidrezaAmz:MagicalExoPlayer:3.0.8'
implementation "com.github.yausername.youtubedl-android:library:$youtubedlAndroidVer"
implementation "com.github.yausername.youtubedl-android:ffmpeg:$youtubedlAndroidVer"
implementation "com.github.yausername.youtubedl-android:aria2c:$youtubedlAndroidVer"
implementation "com.devbrackets.android:exomedia:4.3.0"
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.andrognito.patternlockview:patternlockview:1.0.0'
implementation 'com.kevalpatel2106:hiddencamera:1.3.3'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
implementation 'com.google.firebase:firebase-auth:22.3.1'
implementation 'androidx.core:core-splashscreen:1.0.1'
implementation  'com.google.ads.mediation:facebook:6.16.0.0'

}

buildscript {
ext {
agp_version3 = '8.2.1'
}
dependencies {
classpath "com.android.tools.build:gradle:$agp_version3"
classpath 'com.google.gms:google-services:4.4.1'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'

}

}
plugins {
id 'com.android.application' version '8.2.1' apply false
id 'com.android.library' version '8.2.1' apply false
}
def versionMajor = 0
def versionMinor = 13
def versionPatch = 1
def versionBuild = 0 // bump for dogfood builds, public betas, etc.

ext {
versionCode = versionMajor * 100000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName = "${versionMajor}.${versionMinor}.${versionPatch}"
// dependency versions
appCompatVer = '1.1.0'
junitVer = '4.12'
androidJunitVer = '1.1.1'
espressoVer = '3.2.0'
jacksonVer = '2.9.8'
youtubedlAndroidVer = "23b26d55f8"

commonsIoVer = '2.5'
commonsCompressVer = '1.12'

}
group = 'com.github.yausername'
version = versionName

package com.callguard.calleridblock.usa.calleridnameaddress;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.core.app.ActivityCompat;

import com.callguard.calleridblock.usa.R;
import com.my.sdclass.AppManage;
import com.my.sdclass.MyCallback;

import static android.content.Context.MODE_PRIVATE;

public class PermissionUtils {

Activity activity;
Intent intent;
String[] permissionsRequired;
private SharedPreferences permissionStatus;
private static final int PERMISSION_CALLBACK_CONSTANT = 100;
private static final int REQUEST_PERMISSION_SETTING = 101;
private boolean sentToSettings = false;
private boolean writeflag = false;
private boolean overflag = false;
Dialog dialog1, dialog2, dialog3, dialog4;
boolean isFinish;

public PermissionUtils(Activity activity, Intent intent, boolean isFinish) {
    this.activity = activity;
    this.intent = intent;
    this.isFinish = isFinish;
}

public void grantPermition() {

    permissionStatus = activity.getSharedPreferences("permissionStatus", MODE_PRIVATE);
    permissionsRequired = new String[]{ "android.permission.CALL_PHONE", "android.permission.WRITE_CONTACTS"
    };
    if (Build.VERSION.SDK_INT >= 31) {
        permissionsRequired = new String[]{ "android.permission.READ_CONTACTS",
                 "android.permission.CALL_PHONE", "android.permission.WRITE_CONTACTS"
        };
    }
    if (Build.VERSION.SDK_INT >= 31) {
        if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) != PackageManager.PERMISSION_GRANTED
                || ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) != PackageManager.PERMISSION_GRANTED
                || ActivityCompat.checkSelfPermission(activity, permissionsRequired[2]) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
                    || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])
                    || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[2])) {
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                builder.setTitle("Need Multiple Permissions");
                builder.setMessage("This app needs to all permissions.");
                builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

                Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                b.setTextColor(Color.parseColor("#0034ff"));
                b1.setTextColor(Color.parseColor("#0034ff"));

            } else if (permissionStatus.getBoolean(permissionsRequired[0], false)) {
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                builder.setTitle("Need Multiple Permissions");
                builder.setMessage("This app needs to all permissions.");
                builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        sentToSettings = true;
                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                        Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
                        intent.setData(uri);
                        activity.startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

                Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                b.setTextColor(Color.parseColor("#0034ff"));
                b1.setTextColor(Color.parseColor("#0034ff"));
            } else {
                ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
            }

            SharedPreferences.Editor editor = permissionStatus.edit();
            editor.putBoolean(permissionsRequired[0], true);
            editor.commit();
        } else {
            proceedAfterPermission();
        }
    } else {
        if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) != PackageManager.PERMISSION_GRANTED
                || ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
                    || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])) {
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                builder.setTitle("Need Multiple Permissions");
                builder.setMessage("This app needs to all permissions.");
                builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

                Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                b.setTextColor(Color.parseColor("#0034ff"));
                b1.setTextColor(Color.parseColor("#0034ff"));

            } else if (permissionStatus.getBoolean(permissionsRequired[0], false)) {
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                builder.setTitle("Need Multiple Permissions");
                builder.setMessage("This app needs to all permissions.");
                builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        sentToSettings = true;
                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                        Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
                        intent.setData(uri);
                        activity.startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

                Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                b.setTextColor(Color.parseColor("#0034ff"));
                b1.setTextColor(Color.parseColor("#0034ff"));
            } else {
                ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
            }

            SharedPreferences.Editor editor = permissionStatus.edit();
            editor.putBoolean(permissionsRequired[0], true);
            editor.commit();
        } else {
            proceedAfterPermission();
        }
    }
}


public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == PERMISSION_CALLBACK_CONSTANT) {
        boolean allgranted = false;
        for (int i = 0; i < grantResults.length; i++) {
            if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
                allgranted = true;
            } else {
                allgranted = false;
                break;
            }
        }

        if (allgranted) {
            proceedAfterPermission();
        } else {
            if (Build.VERSION.SDK_INT >= 31) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
                        || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])
                        || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[2])) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                    builder.setTitle("Need Multiple Permissions");
                    builder.setMessage("This app needs to all permissions.");
                    builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                            ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
                        }
                    });
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    AlertDialog dialog = builder.create();
                    dialog.show();

                    Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                    Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                    b.setTextColor(Color.parseColor("#0034ff"));
                    b1.setTextColor(Color.parseColor("#0034ff"));
                } else {
                }
            } else {
                if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
                        || ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                    builder.setTitle("Need Multiple Permissions");
                    builder.setMessage("This app needs to all permissions.");
                    builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                            ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
                        }
                    });
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    AlertDialog dialog = builder.create();
                    dialog.show();

                    Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
                    Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);

                    b.setTextColor(Color.parseColor("#0034ff"));
                    b1.setTextColor(Color.parseColor("#0034ff"));
                } else {
                }
            }

        }
    }
}


public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_PERMISSION_SETTING) {
        if (Build.VERSION.SDK_INT >= 31) {
            if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) == PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat.checkSelfPermission(activity, permissionsRequired[2]) == PackageManager.PERMISSION_GRANTED ) {
                proceedAfterPermission();
            }
        } else {
            if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) == PackageManager.PERMISSION_GRANTED ) {
                proceedAfterPermission();
            }
        }

    }
}

int dia3_dis = 0;


protected void onResume() {

    if (writeflag == true) {
        boolean retVal = true;
        try {
            dialog1.dismiss();
            dialog3.dismiss();
        } catch (Exception e) {
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            retVal = Settings.System.canWrite(activity);
            if (retVal) {

                dialog4 = new Dialog(activity, R.style.s_permission);
                dialog4.setContentView(R.layout.dialog_write);
                dialog4.setCancelable(false);
                TextView write_ok = dialog4.findViewById(R.id.write_ok);
                TextView sort_sen = dialog4.findViewById(R.id.sort_sen);
                TextView long_sen = dialog4.findViewById(R.id.long_sen);
                sort_sen.setText("Required for Caller Id to system alert window");
                long_sen.setText("System Alert Window");
                write_ok.setText("Give Permission");
                write_ok.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                                Uri.parse("package:" + activity.getPackageName()));
                        activity.startActivityForResult(intent, 848);
                        overflag = true;
                        writeflag = false;
                        dialog4.dismiss();

                    }
                });
                dialog4.show();

            } else {
                dialog1.dismiss();
                if (dia3_dis == 1) {
                    dialog3.dismiss();
                }
                dialog3 = new Dialog(activity, R.style.s_permission);
                dialog3.setContentView(R.layout.dialog_write);
                dialog3.setCancelable(false);
                TextView write_ok = dialog3.findViewById(R.id.write_ok);
                TextView sort_sen = dialog3.findViewById(R.id.sort_sen);
                TextView long_sen = dialog3.findViewById(R.id.long_sen);
                sort_sen.setText("Required for Caller Id to manage write setting");
                long_sen.setText("Write Setting");
                write_ok.setText("Give Permission");
                write_ok.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        dia3_dis = 1;
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                            if (!Settings.System.canWrite(activity)) {
                                Intent intent = new Intent("android.settings.action.MANAGE_WRITE_SETTINGS");
                                StringBuilder sb = new StringBuilder();
                                sb.append("package:");
                                sb.append(activity.getPackageName());
                                intent.setData(Uri.parse(sb.toString()));
                                activity.startActivityForResult(intent, 1112);
                                writeflag = true;
                                overflag = false;
                                dialog3.dismiss();
                            }
                        }

                    }
                });
                dialog3.show();

            }
        }
    }

    if (overflag == true) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            dialog4.dismiss();


            if (Settings.canDrawOverlays(activity)) {

                SharedPreferences.Editor editor = activity.getSharedPreferences("MyPrefFile1", MODE_PRIVATE).edit();
                editor.putBoolean("permission", true);
                editor.commit();
                AppManage.getInstance(activity).inScreen(activity, new MyCallback() {
                    public void callbackCall() {
                        activity.startActivity(intent);
                        if (isFinish) {
                            activity.finish();
                        }
                    }
                }, AppManage.go);


            } else {
                dialog1.dismiss();
                dialog2 = new Dialog(activity, R.style.s_permission);
                dialog2.setContentView(R.layout.dialog_write);
                dialog2.setCancelable(false);
                TextView write_ok = dialog2.findViewById(R.id.write_ok);
                TextView sort_sen = dialog2.findViewById(R.id.sort_sen);
                TextView long_sen = dialog2.findViewById(R.id.long_sen);
                sort_sen.setText("Required for Caller Id to system alert window");
                long_sen.setText("System Alert Window");
                write_ok.setText("Give Permission");
                write_ok.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        final Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                                Uri.parse("package:" + activity.getPackageName()));
                        activity.startActivityForResult(intent, 848);
                        overflag = true;
                        writeflag = false;
                        dialog2.dismiss();
                    }
                });
                dialog2.show();
            }
        }
    }
}

private void proceedAfterPermission() {
    checkSystemWritePermission();
}

private boolean checkSystemWritePermission() {
    boolean retVal = true;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        retVal = Settings.System.canWrite(activity);
        if (retVal) {
            SharedPreferences.Editor editor = activity.getSharedPreferences("MyPrefFile1", MODE_PRIVATE).edit();
            editor.putBoolean("permission", true);
            editor.commit();
            AppManage.getInstance(activity).inScreen(activity, new MyCallback() {
                public void callbackCall() {
                    activity.startActivity(intent);
                    if (isFinish) {
                        activity.finish();
                    }
                }
            }, AppManage.go);
        } else {
            dialog1 = new Dialog(activity, R.style.s_permission);
            dialog1.setContentView(R.layout.dialog_write);
            dialog1.setCancelable(false);
            TextView write_ok = dialog1.findViewById(R.id.write_ok);
            TextView sort_sen = dialog1.findViewById(R.id.sort_sen);
            TextView long_sen = dialog1.findViewById(R.id.long_sen);
            sort_sen.setText("Required for Caller Id to manage write setting");
            long_sen.setText("Write Setting");
            write_ok.setText("Give Permission");
            write_ok.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                        if (!Settings.System.canWrite(activity)) {
                            Intent intent = new Intent("android.settings.action.MANAGE_WRITE_SETTINGS");
                            StringBuilder sb = new StringBuilder();
                            sb.append("package:");
                            sb.append(activity.getPackageName());
                            intent.setData(Uri.parse(sb.toString()));
                            activity.startActivityForResult(intent, 1112);
                            writeflag = true;
                            overflag = false;
                            dialog1.dismiss();
                            try {
                                dialog3.dismiss();
                            } catch (Exception e) {
                            }
                        }
                    }
                }
            });
            dialog1.show();
        }
    }
    return retVal;
}

}

@appteam123
Copy link

hiii, i will use your library for download insta and Facebook Video. i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update). please help . thanks.

any solution get ?

@hirensakhiya
Copy link

Any solution? i'm also getting same error like "Failed to initialize" in Live app

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants