yausername / youtubedl-android

youtube-dl for android
GNU General Public License v3.0
934 stars 172 forks source link

Download Not Work in Live App. #253

Open akshat9902 opened 8 months ago

akshat9902 commented 8 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 5 months ago

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 commented 3 months ago

same error in android java can any one help

appteam123 commented 3 months ago

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 commented 3 months ago

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 commented 3 months ago

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