i want to download image on click via image url. but when i click on download button i got this error on callback.askForStoragePermission();
this is my code to download image in adapter:
Uri uri = Uri.parse("https://www.punjabidharti.com/wp-content/uploads/2021/04/auna-tere-dar-te-600x600.jpeg");
if (callback != null && callback.checkSelfStoragePermission()) {
DownloadManager downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |
DownloadManager.Request.NETWORK_MOBILE);
request.setTitle("Image Download");
request.setDescription("Nitnem With Audio App");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "NitnemApp.jpg");
request.setMimeType("*/*");
downloadManager.enqueue(request);
} else {
callback.askForStoragePermission();
}
and this is in activity:
adapter.setPermissionCallback(this);
}
@Override
public void askForStoragePermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]
{Manifest.permission.WRITE_EXTERNAL_STORAGE},
DOWNLOAD_REQUEST_CODE);
}
}
@Override
public Boolean checkSelfStoragePermission() {
if(checkCallingOrSelfPermission(
android.Manifest.permission.WRITE_EXTERNAL_STORAGE) ==
PackageManager.PERMISSION_GRANTED){
return true;
}
return false;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
if (requestCode == DOWNLOAD_REQUEST_CODE
&& grantResults[0] == PackageManager.PERMISSION_GRANTED){
//permission granted update GridAdapter to do next task
adapter.onPermissionResult(true);
}else{
//permission denied update GridAdapter to do next task
adapter.onPermissionResult(false);
}
}
and in IPPermissoncallback file
public interface IPermissionCallback{
void askForStoragePermission();
Boolean checkSelfStoragePermission();
}
i am getting this error:
void com.package.IPermissionCallback.askForStoragePermission()' on a null object reference
i have searched a lot but unable to find the error. please help