package org.evergreen.android.accountAccess;
-import java.lang.annotation.Target;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
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;
//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{
holdObj.title = holdInfo.getString("title");
holdObj.author = holdInfo.getString("author");
+ holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo);
}
holdObj.title = holdInfo.getString("title");
holdObj.author = holdInfo.getString("author");
+ holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo);
}
else
if(type.equals("I")){
holdObj.part_label = part_label;
holdObj.title = holdInfo.getString("title");
holdObj.author = holdInfo.getString("author");
+ holdObj.recordInfo = new RecordInfo((OSRFObject)holdInfo);
}
return null;
}
- 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){
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;
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;
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);
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);
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();
private Context context;
+ Runnable getHoldsRunnable= null;
+
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
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() {
}
});
}
- });
+ };
if(accountAccess.isAuthenticated()){
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading holds");
progressDialog.show();
+
+ //thread to retrieve holds
+ Thread getHoldsThread = new Thread(getHoldsRunnable);
getHoldsThread.start();
}
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<HoldRecord> {
private static final String tag = "CheckoutArrayAdapter";