hold details view with cancel hold option working
authordrizea <danielrizea27@gmail.com>
Wed, 4 Jul 2012 14:37:03 +0000 (17:37 +0300)
committerdrizea <danielrizea27@gmail.com>
Wed, 4 Jul 2012 14:37:03 +0000 (17:37 +0300)
Open-ILS/src/Android/bin/EvergreenApp.apk
Open-ILS/src/Android/bin/classes.dex
Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class
Open-ILS/src/Android/bin/resources.ap_
Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java
Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java
Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java

index 102d22a..05a6773 100644 (file)
Binary files a/Open-ILS/src/Android/bin/EvergreenApp.apk and b/Open-ILS/src/Android/bin/EvergreenApp.apk differ
index 3bc6db8..5f144cc 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes.dex and b/Open-ILS/src/Android/bin/classes.dex differ
index 0b3b2d7..fa65a99 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class differ
index 49a9e55..94de6dd 100644 (file)
Binary files a/Open-ILS/src/Android/bin/resources.ap_ and b/Open-ILS/src/Android/bin/resources.ap_ differ
index 6d2fd90..03c3b62 100644 (file)
@@ -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){
index f058ee3..1aafada 100644 (file)
@@ -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();
index f954d10..eb55fba 100644 (file)
@@ -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<HoldRecord> {
        private static final String tag = "CheckoutArrayAdapter";