I have this AsyncTask after it is called by another one OnPostExecute()
Method and this is the code
class GetDataTask_image extends AsyncTask<Void, Integer, Void> {
public GetDataTask_image() {
super();
}
@Override
protected void onPreExecute() {
GetDataTask_out.Status.values();
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
protected Void doInBackground(Void... params) {
/* Show checking image */
Cursor data_image = Sync.get_image(current_email);
int image_count = data_image.getCount();
while (data_image.moveToNext()) {
String folder = data_image.getString(data_image.getColumnIndex("folder"));
String file_name = data_image.getString(data_image.getColumnIndex("myimage"));
JSONObject unsync_image1 = new JSONObject();
FilePathname = sdCardDirectory + "/" + file_name;
File file = new File(FilePathname);
Context c = data_syncing_v3.this;
File directory = c.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
String imgpath = directory + "/" + file_name;
fileName = imgpath;
if (file.exists()) {
try {
unsync_image1.put("module", folder);
unsync_image1.put("name", file_name);
unsync_image1.put("tag", 1);
unsync_images1.put(unsync_image1);
} catch (JSONException e) {
e.printStackTrace();
Log.e("MYAPP", "exception", e);
}
} else {
try {
unsync_image1.put("module", folder);
unsync_image1.put("name", file_name);
unsync_image1.put("tag", 0);
unsync_images1.put(unsync_image1);
} catch (JSONException e) {
e.printStackTrace();
Log.e("MYAPP", "exception", e);
}
}
Log.e("file_name", file_name);
}
final String data = unsync_images1.toString();
stringRequest = new StringRequest(Request.Method.POST, master_link_forimage,
new Response.Listener<String>() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onResponse(String response) {
Log.e("tagconvertstr", "[" + response + "]");
try {
obj = new JSONObject(response);
sync_data = obj.getJSONArray("data");
if (sync_data.length() == 0) {
/* Close dialog */
p = (float) index / (float) sync_data.length();
p = p + p * (float) 50;
publishProgress((int) p);
} else {
Context c = data_syncing_v3.this;
final File directory = c.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
final StringBuilder data_image = new StringBuilder("");
for (int i = 0; i < sync_data.length(); i++) {
JSONObject sync_object = sync_data.getJSONObject(i);
String procedure = sync_object.getString("procedure").toString();
String link = sync_object.getString("link").toString();
String file_name = sync_object.getString("file").toString();
String folder = sync_object.getString("folder_name").toString();
if (procedure.toString().equals("up")) {
/* Upload file */
String imgpath = directory + "/" + file_name;
fileName = imgpath;
final File findfile = new File(imgpath);
imgPath = directory + "/" + findfile.getName();
fileName = findfile.getName();
image_view.setImageBitmap(BitmapFactory.decodeFile(imgPath));
image_view.buildDrawingCache();
Bitmap bitmap = ((BitmapDrawable) image_view.getDrawable()).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, stream);
byte[] image = stream.toByteArray();
ConvertImage = Base64.encodeToString(image, Base64.DEFAULT);
data_image.append(folder + "**cut_here**" + fileName.toString() + "**cut_here**" + ConvertImage + "**new_line**");
} else {
/* Download file */
String main_link = "MY LINK FOR DOWNLOAD";
FilePathname = sdCardDirectory + "/" + file_name;
DownloadFilesname(FilePathname, main_link);
}
if (i == (sync_data.length() - 1)) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, uploader,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("MYAPP", "[" + response + "]");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("MYAPP", "3");
back_holder.setVisibility(View.VISIBLE);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("image_data", data_image.toString());
return params;
}
};
VolleySingleton.getInstance(data_syncing_v3.this).addToRequestQueue(stringRequest);
}
index++;
p = (float) index / (float) sync_data.length();
p = p + p * (float) 50;
publishProgress((int) p);
Log.e("MYAPP", "exception 11111");
}
}
} catch (JSONException e) {
e.printStackTrace();
Log.e("MYAPP", "exception", e);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
/* TODO : In case there is an error */
Log.e("MYAPP", "1");
back_holder.setVisibility(View.VISIBLE);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("email", current_email);
params.put("data", data);
return params;
}
};
VolleySingleton.getInstance(mContext).addToRequestQueue(stringRequest);
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
mProgressAnimation.setProgress(values[0]);
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
The function of this code is to check 1st if the image exist in the folder then if not it will upload/download the image from the server depends if it is exist or not.
My problem is i have a progress the must update or increment but nothing happens whats the problem?