From 09dde32b2cc11dfb269321bcc9094631b1491fa2 Mon Sep 17 00:00:00 2001 From: drizea Date: Wed, 15 Aug 2012 13:26:03 +0300 Subject: [PATCH] bug fix renew item on hold by another user --- .../evergreen/android/accountAccess/AccountAccess.java | 7 +++---- .../android/accountAccess/ServerErrorMessage.java | 16 ++++++++++++++++ .../accountAccess/checkout/ItemsCheckOutListView.java | 18 ++++++++++++++++-- 3 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ServerErrorMessage.java 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 439df8b935..895233a36e 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 @@ -611,7 +611,7 @@ public class AccountAccess { /* Method used to renew a circulation record based on target_copy_id * Returns many objects, don't think they are needed */ - public void renewCirc(Integer target_copy) throws MaxRenewalsException, SessionNotFoundException, NoNetworkAccessException, NoAccessToServer{ + public void renewCirc(Integer target_copy) throws MaxRenewalsException,ServerErrorMessage, SessionNotFoundException, NoNetworkAccessException, NoAccessToServer{ HashMap complexParam = new HashMap(); complexParam.put("patron", this.userID); @@ -625,6 +625,7 @@ public class AccountAccess { if(resp.get("textcode") != null){ if(resp.get("textcode").equals("MAX_RENEWALS_REACHED")) throw new MaxRenewalsException(); + throw new ServerErrorMessage(resp.get("desc").toString()); } @@ -681,9 +682,7 @@ public class AccountAccess { String holdType = (String)holdArhObject.get("hold_type"); String method = null; - - - + Object response; OSRFObject holdInfo = null; if(holdType.equals("T") || holdType.equals("M")){ diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ServerErrorMessage.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ServerErrorMessage.java new file mode 100644 index 0000000000..0da01bb5d8 --- /dev/null +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ServerErrorMessage.java @@ -0,0 +1,16 @@ +package org.evergreen.android.accountAccess; + +public class ServerErrorMessage extends Exception{ + + /** + * + */ + private static final long serialVersionUID = 3341617529835568018L; + + public String message; + + public ServerErrorMessage(String message){ + this.message = message; + } + +} diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java index 1de096480d..bfb8e6ced5 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java @@ -9,6 +9,7 @@ import org.androwrapee.db.DefaultDAO; import org.evergreen.android.R; import org.evergreen.android.accountAccess.AccountAccess; import org.evergreen.android.accountAccess.MaxRenewalsException; +import org.evergreen.android.accountAccess.ServerErrorMessage; import org.evergreen.android.accountAccess.SessionNotFoundException; import org.evergreen.android.database.DatabaseManager; import org.evergreen.android.globals.NoAccessToServer; @@ -304,12 +305,25 @@ public class ItemsCheckOutListView extends Activity { progressDialog.dismiss(); Toast.makeText(context, "Max renewals reached", - Toast.LENGTH_SHORT).show(); + Toast.LENGTH_LONG).show(); } }); refresh = false; - } catch (SessionNotFoundException e1) { + }catch (ServerErrorMessage error) { + + final String errorMessage = error.message; + runOnUiThread(new Runnable() { + + @Override + public void run() { + progressDialog.dismiss(); + Toast.makeText(context, + errorMessage, + Toast.LENGTH_LONG).show(); + } + }); + }catch (SessionNotFoundException e1) { try { if (accountAccess.authenticate()) ac.renewCirc(record.getTargetCopy()); -- 2.11.0