From: drizea Date: Wed, 4 Jul 2012 14:37:03 +0000 (+0300) Subject: hold details view with cancel hold option working X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=53e62e4bd5c8a28f4d0f7ad996c952d93f6d95c4;p=working%2FEvergreen.git hold details view with cancel hold option working --- diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java index 6d2fd9069c..03c3b62203 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java @@ -1,7 +1,6 @@ package org.evergreen.android.accountAccess; -import java.lang.annotation.Target; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -11,6 +10,7 @@ import java.util.Map; import org.evergreen.android.accountAccess.holds.HoldRecord; import org.evergreen.android.globals.Utils; +import org.evergreen.android.searchCatalog.RecordInfo; import org.opensrf.Method; import org.opensrf.net.http.GatewayRequest; import org.opensrf.net.http.HttpConnection; @@ -670,6 +670,7 @@ public class AccountAccess { //System.out.println("Hold here " + holdInfo); hold.title = ((OSRFObject)holdInfo).getString("title"); hold.author = ((OSRFObject)holdInfo).getString("author"); + hold.recordInfo = new RecordInfo((OSRFObject)holdInfo); } else{ @@ -711,6 +712,7 @@ public class AccountAccess { holdObj.title = holdInfo.getString("title"); holdObj.author = holdInfo.getString("author"); + holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo); } @@ -736,6 +738,7 @@ public class AccountAccess { holdObj.title = holdInfo.getString("title"); holdObj.author = holdInfo.getString("author"); + holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo); } else if(type.equals("I")){ @@ -773,6 +776,7 @@ public class AccountAccess { holdObj.part_label = part_label; holdObj.title = holdInfo.getString("title"); holdObj.author = holdInfo.getString("author"); + holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo); } return null; @@ -792,13 +796,18 @@ public class AccountAccess { } - public Object cancelHold(OSRFObject hold){ + public boolean cancelHold(OSRFObject hold){ Integer hold_id = hold.getInt("id"); Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CANCEL_HOLD, new Object[]{authToken,hold_id}); - return response; + //delete successful + if(response.toString().equals("1")) + return true; + + return false; + } public Object updateHold(OSRFObject newHoldObject){ diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java index f058ee334e..1aafada668 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java @@ -9,6 +9,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.DatePickerDialog; +import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.text.format.DateFormat; @@ -23,6 +24,12 @@ import android.widget.TextView; public class HoldDetails extends Activity{ + public static final int RESULT_CODE_DELETE_HOLD = 0; + + public static final int RESULT_CODE_UPDATE_HOLD = 1; + + public static final int RESULT_CODE_CANCEL = 2; + private TextView recipient; private TextView title; @@ -45,14 +52,18 @@ public class HoldDetails extends Activity{ private DatePickerDialog datePicker = null; + private Context context; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + context = this; setContentView(R.layout.hold_details); final HoldRecord record = (HoldRecord) getIntent().getSerializableExtra("holdRecord"); + System.out.println("Record " + record + " " + record.title + " " + record.ahr); + accountAccess = AccountAccess.getAccountAccess(); recipient = (TextView) findViewById(R.id.hold_recipient); @@ -89,7 +100,7 @@ public class HoldDetails extends Activity{ public void onClick(View v) { - Builder confirmationDialogBuilder = new AlertDialog.Builder(getApplicationContext()); + Builder confirmationDialogBuilder = new AlertDialog.Builder(context); confirmationDialogBuilder.setMessage(R.string.cancel_hold_dialog_message); confirmationDialogBuilder.setNegativeButton(android.R.string.no, null); @@ -98,7 +109,13 @@ public class HoldDetails extends Activity{ public void onClick(DialogInterface dialog, int which) { System.out.println("Remove hold with id" + record.ahr.getInt("id")); + + //TODO put into thread accountAccess.cancelHold(record.ahr); + + setResult(RESULT_CODE_DELETE_HOLD); + + finish(); } }); confirmationDialogBuilder.create().show(); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java index f954d10be0..eb55fba50c 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java @@ -36,6 +36,8 @@ public class HoldsListView extends Activity{ private Context context; + Runnable getHoldsRunnable= null; + private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { @@ -52,7 +54,7 @@ public class HoldsListView extends Activity{ listAdapter = new HoldsArrayAdapter(context, R.layout.holds_list_item, holdRecords); lv.setAdapter(listAdapter); - Thread getHoldsThread = new Thread(new Runnable() { + getHoldsRunnable = new Runnable() { @Override public void run() { @@ -72,12 +74,15 @@ public class HoldsListView extends Activity{ } }); } - }); + }; if(accountAccess.isAuthenticated()){ progressDialog = new ProgressDialog(context); progressDialog.setMessage("Loading holds"); progressDialog.show(); + + //thread to retrieve holds + Thread getHoldsThread = new Thread(getHoldsRunnable); getHoldsThread.start(); } @@ -96,11 +101,44 @@ public class HoldsListView extends Activity{ intent.putExtra("holdRecord", record); - startActivity(intent); + //doae not matter request code, only result code + startActivityForResult(intent, 0); } }); } - + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // TODO Auto-generated method stub + super.onActivityResult(requestCode, resultCode, data); + + switch(resultCode){ + + case HoldDetails.RESULT_CODE_CANCEL : { + //nothing + }break; + + case HoldDetails.RESULT_CODE_DELETE_HOLD : { + //refresh ui + progressDialog = new ProgressDialog(context); + progressDialog.setMessage("Loading holds"); + progressDialog.show(); + //thread to retrieve holds + Thread getHoldsThread = new Thread(getHoldsRunnable); + getHoldsThread.start(); + }break; + + case HoldDetails.RESULT_CODE_UPDATE_HOLD : { + //refresh ui + progressDialog = new ProgressDialog(context); + progressDialog.setMessage("Loading holds"); + progressDialog.show(); + //thread to retrieve holds + Thread getHoldsThread = new Thread(getHoldsRunnable); + getHoldsThread.start(); + }break; + + } + } class HoldsArrayAdapter extends ArrayAdapter { private static final String tag = "CheckoutArrayAdapter";