place hold finished for T holds
authordrizea <danielrizea27@gmail.com>
Sat, 7 Jul 2012 07:11:29 +0000 (10:11 +0300)
committerdrizea <danielrizea27@gmail.com>
Sat, 7 Jul 2012 07:11:29 +0000 (10:11 +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/PlaceHold.java

index a1ea8cc..d1e2135 100644 (file)
Binary files a/Open-ILS/src/Android/bin/EvergreenApp.apk and b/Open-ILS/src/Android/bin/EvergreenApp.apk differ
index 7f57258..3a69e92 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes.dex and b/Open-ILS/src/Android/bin/classes.dex differ
index 74119eb..c4a646e 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 7501804..a5362d8 100644 (file)
Binary files a/Open-ILS/src/Android/bin/resources.ap_ and b/Open-ILS/src/Android/bin/resources.ap_ differ
index cbd6ec3..5c4f052 100644 (file)
@@ -818,7 +818,7 @@ public class AccountAccess {
                return response;
        }
        
-       public Object createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){
+       public String[] createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){
                
        OSRFObject ahr = new OSRFObject("ahr");
        ahr.put("target", recordID);
@@ -826,23 +826,46 @@ public class AccountAccess {
        ahr.put("requestor", userID);
        
        //TODO
-       //do not set hold type, the systems knows the hold type
-       ahr.put("hold_type", null);
+       //only gold type 'T' for now
+       ahr.put("hold_type", "T");
        ahr.put("pickup_lib", pickup_lib); //pick-up lib
-       //ahr.put("phone_notify", phone);
-       //ahr.put("email_notify", email_notify);
-       //ahr.put("expire_time",expire_time);
+       ahr.put("phone_notify", phone);
+       ahr.put("email_notify", email_notify);
+       ahr.put("expire_time",expire_time);
        //frozen set, what this means ? 
        ahr.put("frozen", suspendHold);
        //only if it is frozen
-       //ahr.put("thaw_date",thaw_date);
+    ahr.put("thaw_date",thaw_date);
        
        //extra parameters (not mandatory for hold creation)
 
        
        Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CREATE_HOLD, new Object[]{authToken,ahr});
                
-               return response;
+       String[] resp = new String[3];
+       //if we can get hold ID then we return true
+               try{
+                       
+                       List<Integer> list= (List<Integer>)response;
+                       if(list.get(0)>-1)
+                               resp[0] = "true";
+                               
+                       
+               }catch(Exception e){
+                       
+                       List<?> respErrorMessage = (List<?>) response;
+                       
+                       Object map = respErrorMessage.get(0);
+                       resp[0]="false";
+                       
+                       resp[1] = ((Map<String,String>)map).get("textcode");
+                       resp[2] = ((Map<String,String>)map).get("desc");
+               };
+       
+               System.out.println("Result " + resp[1] + " " + resp[2]);
+
+               //else we return false
+               return resp;
        }
        // ?? return boolean 
        public Object isHoldPossible(Integer pickup_lib,Integer recordID){
index 86d9333..df4e77f 100644 (file)
@@ -11,6 +11,9 @@ import org.evergreen.android.searchCatalog.RecordInfo;
 
 import android.app.Activity;
 import android.app.DatePickerDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.graphics.Color;
 import android.os.Bundle;
 import android.text.format.DateFormat;
 import android.view.View;
@@ -26,6 +29,7 @@ import android.widget.DatePicker;
 import android.widget.EditText;
 import android.widget.Spinner;
 import android.widget.TextView;
+import android.widget.Toast;
 
 public class PlaceHold extends Activity{
 
@@ -68,9 +72,15 @@ public class PlaceHold extends Activity{
        
        private Date thaw_date = null;
        
+       private Runnable placeHoldRunnable;
+       
        private GlobalConfigs globalConfigs = null;
        
        private int selectedOrgPos = 0;
+       
+       private ProgressDialog progressDialog;
+       
+       private Context context;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
@@ -79,6 +89,8 @@ public class PlaceHold extends Activity{
                globalConfigs = GlobalConfigs.getGlobalConfigs(this);
                RecordInfo record = (RecordInfo) getIntent().getSerializableExtra("recordInfo");
                
+               context = this;
+               
                accountAccess = AccountAccess.getAccountAccess();
                
                recipient = (TextView) findViewById(R.id.hold_recipient);
@@ -115,9 +127,17 @@ public class PlaceHold extends Activity{
                
                final Integer record_id = record.doc_id;
                
-               placeHold.setOnClickListener(new OnClickListener() {
+               placeHoldRunnable = new Runnable() {
+                       
                        @Override
-                       public void onClick(View v) {
+                       public void run() {
+                               
+                               runOnUiThread(new Runnable() {
+                                       @Override
+                                       public void run() {
+                                               progressDialog = ProgressDialog.show(context, "Please wait", "Placing hold");
+                                       }
+                               });
                                
                                accountAccess.getHoldPreCreateInfo(record_id, 4);
                                accountAccess.isHoldPossible(4, record_id);
@@ -134,7 +154,33 @@ public class PlaceHold extends Activity{
                                int selectedOrgID = -1;
                                if(globalConfigs.organisations.size() > selectedOrgPos)
                                        selectedOrgID = globalConfigs.organisations.get(selectedOrgPos).id;
-                               accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s);
+                               
+                               final String[] holdPlaced = accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s);
+                       
+                               runOnUiThread(new Runnable() {
+                                       @Override
+                                       public void run() {
+                                               progressDialog.dismiss();       
+                                               
+                                               if(holdPlaced[0].equals("true")){
+                                                       Toast.makeText(context, "Hold Succesfully placed", Toast.LENGTH_LONG).show();
+                                                       finish();       
+                                                       }
+                                               else
+                                                       Toast.makeText(context, "Error in placing hold : " + holdPlaced[2], Toast.LENGTH_LONG).show();
+                                               
+                                                       
+                                       }
+                               });
+                       }
+               };
+               
+               placeHold.setOnClickListener(new OnClickListener() {
+                       @Override
+                       public void onClick(View v) {
+                               
+                               Thread placeholdThread = new Thread(placeHoldRunnable);
+                               placeholdThread.start();
                        }
                });
                
@@ -237,16 +283,21 @@ public class PlaceHold extends Activity{
                                }
         });
        }
-       
        public void disableView(View view){
                
                //view.setFocusable(false);
+               view.setFocusable(false);
                
-               view.setVisibility(View.INVISIBLE);
+               view.setBackgroundColor(Color.argb(255, 100, 100, 100));
+               //view.setVisibility(View.INVISIBLE);
        }
        
        public void enableView(View view){
-               view.setVisibility(View.VISIBLE);
+               //view.setVisibility(View.VISIBLE);
+               
+               view.setFocusableInTouchMode(true);
+               
+               view.setBackgroundColor(Color.argb(255, 255,255,255));
        }
        
 }