I\'ll keep this one as simple as I can.
I have a method in my control layer that uses a class CallServiceTask
that extends AsyncTask
. When
private void walletStatements() {
JSONObject post_search = new JSONObject();
try {
post_search.put("username", getUserName);
} catch (JSONException e) {
e.printStackTrace();
}
if (post_search.length() > 0) {
try {
new Getwalletstatements().execute(String.valueOf(post_search));
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Getwalletstatements extends AsyncTask {
String JsonResponse = null;
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(ReportsActivity.this);
dialog.setMessage("Please Wait...");
dialog.setCancelable(false);
dialog.show();
}
@Override
protected String doInBackground(String... params) {
String JsonDATA = params[0];
HttpURLConnection urlConnection = null;
BufferedReader reader = null;
URL url = null;
try {
url = new URL(Constant.url+"GetReports_v9.php");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true); // is output buffer writter
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Accept", "application/json");//set headers and method
Writer writer = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8"));
writer.write(JsonDATA);// json data
writer.close();
InputStream inputStream = urlConnection.getInputStream();//input stream
StringBuffer buffer = new StringBuffer();
if (inputStream == null) { // Nothing to do.
return null;
}
reader = new BufferedReader(new InputStreamReader(inputStream));
String inputLine;
while ((inputLine = reader.readLine()) != null)
buffer.append(inputLine + "\n");
if (buffer.length() == 0) { // Stream was empty. No point in parsing.
return null;
}
JsonResponse = buffer.toString();
return JsonResponse;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (final IOException e) {
}
}
}
return null;
}
@Override
protected void onPostExecute(String s) {
if (JsonResponse != null) {
try {
NetworkIN.iv= Constant.iv;
NetworkIN.change=Constant.key;
NetworkIN mCrypt=new NetworkIN();
String decrypted = new String( mCrypt.decrypt(JsonResponse.trim()) );
if(decrypted!=null){
JSONObject ordersHistory = new JSONObject(decrypted);
msg = ordersHistory.getString("msg");
JSONArray jsonArray = ordersHistory.getJSONArray("PPDetails");
ordersCount = jsonArray.length();
//for (int j = 0; j < jsonArray.length(); j++)
for (int j = jsonArray.length() - 1; j >= 0; j--)
{
JSONObject jsonObject = jsonArray.getJSONObject(j);
String message,total_in,inType ;
total_in =jsonObject.getString("total_in");
inType =jsonObject.getString("in_type");
message="Congratulations your wallet is credited by Rs."+total_in+" because of "+inType;
ReportsPojo reportsPojo = new ReportsPojo(jsonObject.getString("reg_id"),
jsonObject.getString("username"),
jsonObject.getString("transfer_from"),
jsonObject.getString("transfer_to"),
jsonObject.getString("total_in"),
jsonObject.getString("tds"),
jsonObject.getString("in_amount") ,
jsonObject.getString("out_amount"),
jsonObject.getString("in_type"),
jsonObject.getString("created_on"),
message);
reportsItems.add(reportsPojo);
}
}else{
}
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
if (msg.equals("Success")) {
reportsAdapter = new ReportsAdapter(ReportsActivity.this, reportsItems);
reportsListview.setAdapter(reportsAdapter);
} else {
Toast.makeText(ReportsActivity.this, "Sorry "+msg, Toast.LENGTH_LONG).show();
}
dialog.dismiss();
} else {
dialog.dismiss();
}
}