private void permissionsDialog(final FinishedApk viewApk, ArrayList<ApkPermission> permissions) { View v = LayoutInflater.from(context).inflate(R.layout.app_permission, null); LinearLayout layout = (LinearLayout) v.findViewById(R.id.container); if (permissions != null) { if (!permissions.isEmpty()) { for (int i = 0; i < permissions.size(); i++) { ApkPermission permission = permissions.get(i); View permissionView = LayoutInflater.from(context).inflate(R.layout.row_permission, null); if (i == 0 || !permissions.get(i - 1).getName().equals(permission.getName())) { ((TextView) permissionView.findViewById(R.id.permission_name)) .setText(permission.getName()); } else { permissionView.findViewById(R.id.permission_name).setVisibility(View.GONE); } ((TextView) permissionView.findViewById(R.id.permission_description)) .setText(permission.getDescription()); layout.addView(permissionView); } } else { TextView tv = new TextView(context); tv.setPadding(10, 10, 10, 10); tv.setText(context.getString(R.string.no_permissions_required)); layout.addView(tv); } } final AlertDialog dialog = new AlertDialog.Builder(context).setView(v).create(); dialog.setTitle(context.getString(R.string.restore) + " " + viewApk.getName() + "?"); // dialog.setIcon(BitmapDrawable.createFromPath(ImageLoader.getInstance().getDiscCache().get(path).getAbsolutePath())); dialog.setButton( DialogInterface.BUTTON_POSITIVE, context.getString(android.R.string.yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { executor.submit( new Runnable() { @Override public void run() { DownloadUtils.installWithRoot(viewApk); } }); finish(); } }); dialog.setButton( DialogInterface.BUTTON_NEGATIVE, context.getString(android.R.string.no), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); dialog.setOnDismissListener( new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { finish(); } }); dialog.setCancelable(false); // dialog.show(); String path = viewApk.getIconPath(); GlideUtils.showDialogWithGlideLoadingIconFromCache(dialog, path, this); }