mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 02:17:41 +00:00 
			
		
		
		
	OC-2678: Parse XML Response from Create New Share
This commit is contained in:
		
							parent
							
								
									974e55a2b9
								
							
						
					
					
						commit
						f3453f138f
					
				| @ -55,6 +55,7 @@ public class OCShare implements Parcelable{ | |||||||
|     private boolean mIsDirectory; |     private boolean mIsDirectory; | ||||||
|     private long mUserId; |     private long mUserId; | ||||||
|     private long mIdRemoteShared; |     private long mIdRemoteShared; | ||||||
|  |     private String mShareLink; | ||||||
|      |      | ||||||
|     public OCShare() { |     public OCShare() { | ||||||
|     	super(); |     	super(); | ||||||
| @ -88,6 +89,7 @@ public class OCShare implements Parcelable{ | |||||||
|         mIsDirectory = false; |         mIsDirectory = false; | ||||||
|         mUserId = -1; |         mUserId = -1; | ||||||
|         mIdRemoteShared = -1; |         mIdRemoteShared = -1; | ||||||
|  |         mShareLink = null; | ||||||
|     }	 |     }	 | ||||||
|      |      | ||||||
|     /// Getters and Setters |     /// Getters and Setters | ||||||
| @ -204,6 +206,14 @@ public class OCShare implements Parcelable{ | |||||||
|         this.mIdRemoteShared = idRemoteShared; |         this.mIdRemoteShared = idRemoteShared; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     public String getShareLink() { | ||||||
|  |     	return this.mShareLink; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public void setShareLink(String shareLink) { | ||||||
|  |     	this.mShareLink = shareLink; | ||||||
|  |     } | ||||||
|  |      | ||||||
|     /**  |     /**  | ||||||
|      * Parcelable Methods |      * Parcelable Methods | ||||||
|      */ |      */ | ||||||
| @ -248,6 +258,7 @@ public class OCShare implements Parcelable{ | |||||||
|         mIsDirectory = source.readInt() == 0; |         mIsDirectory = source.readInt() == 0; | ||||||
|         mUserId = source.readLong(); |         mUserId = source.readLong(); | ||||||
|         mIdRemoteShared = source.readLong(); |         mIdRemoteShared = source.readLong(); | ||||||
|  |         mShareLink = source.readString(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -273,6 +284,7 @@ public class OCShare implements Parcelable{ | |||||||
|         dest.writeInt(mIsDirectory ? 1 : 0); |         dest.writeInt(mIsDirectory ? 1 : 0); | ||||||
|         dest.writeLong(mUserId); |         dest.writeLong(mUserId); | ||||||
|         dest.writeLong(mIdRemoteShared); |         dest.writeLong(mIdRemoteShared); | ||||||
|  |         dest.writeString(mShareLink); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ package com.owncloud.android.lib.operations.remote; | |||||||
| 
 | 
 | ||||||
| import java.io.ByteArrayInputStream; | import java.io.ByteArrayInputStream; | ||||||
| import java.io.InputStream; | import java.io.InputStream; | ||||||
|  | import java.util.ArrayList; | ||||||
| 
 | 
 | ||||||
| import org.apache.commons.httpclient.methods.PostMethod; | import org.apache.commons.httpclient.methods.PostMethod; | ||||||
| import org.apache.http.HttpStatus; | import org.apache.http.HttpStatus; | ||||||
| @ -58,7 +59,8 @@ public class CreateShareRemoteOperation extends RemoteOperation { | |||||||
| 	private static final String PARAM_PASSWORD = "password"; | 	private static final String PARAM_PASSWORD = "password"; | ||||||
| 	private static final String PARAM_PERMISSIONS = "permissions"; | 	private static final String PARAM_PERMISSIONS = "permissions"; | ||||||
| 
 | 
 | ||||||
| 	private OCShare mShare; | 	private ArrayList<OCShare> mShares;  // List of shares for result, one share in this case | ||||||
|  | 	 | ||||||
| 	private String mPath; | 	private String mPath; | ||||||
| 	private ShareType mShareType; | 	private ShareType mShareType; | ||||||
| 	private String mShareWith; | 	private String mShareWith; | ||||||
| @ -125,6 +127,16 @@ public class CreateShareRemoteOperation extends RemoteOperation { | |||||||
| 				// convert String into InputStream | 				// convert String into InputStream | ||||||
| 				InputStream is = new ByteArrayInputStream(response.getBytes()); | 				InputStream is = new ByteArrayInputStream(response.getBytes()); | ||||||
| 				ShareXMLParser xmlParser = new ShareXMLParser(); | 				ShareXMLParser xmlParser = new ShareXMLParser(); | ||||||
|  | 				mShares = xmlParser.parseXMLResponse(is); | ||||||
|  | 				if (mShares != null) { | ||||||
|  | 					Log.d(TAG, "Shares: " + mShares.size()); | ||||||
|  | 					result = new RemoteOperationResult(ResultCode.OK); | ||||||
|  | 					ArrayList<Object> sharesObjects = new ArrayList<Object>(); | ||||||
|  | 					for (OCShare share: mShares) { | ||||||
|  | 						sharesObjects.add(share); | ||||||
|  | 					} | ||||||
|  | 					result.setData(sharesObjects); | ||||||
|  | 				} | ||||||
| 
 | 
 | ||||||
| 			} | 			} | ||||||
| 		} catch (Exception e) { | 		} catch (Exception e) { | ||||||
| @ -133,9 +145,6 @@ public class CreateShareRemoteOperation extends RemoteOperation { | |||||||
| 		} finally { | 		} finally { | ||||||
| 			post.releaseConnection(); | 			post.releaseConnection(); | ||||||
| 		} | 		} | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 		return result; | 		return result; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -77,8 +77,11 @@ public class ShareXMLParser { | |||||||
| 	private static final String NODE_MAIL_SEND = "mail_send"; | 	private static final String NODE_MAIL_SEND = "mail_send"; | ||||||
| 	private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_display_name"; | 	private static final String NODE_SHARE_WITH_DISPLAY_NAME = "share_with_display_name"; | ||||||
| 	 | 	 | ||||||
|  | 	private static final String NODE_URL = "url"; | ||||||
|  | 
 | ||||||
| 	private static final String TYPE_FOLDER = "folder"; | 	private static final String TYPE_FOLDER = "folder"; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| 	private String mStatus; | 	private String mStatus; | ||||||
| 	private int mStatusCode; | 	private int mStatusCode; | ||||||
| 
 | 
 | ||||||
| @ -207,7 +210,11 @@ public class ShareXMLParser { | |||||||
| 			if (name.equalsIgnoreCase(NODE_ELEMENT)) { | 			if (name.equalsIgnoreCase(NODE_ELEMENT)) { | ||||||
| 				shares.add(readElement(parser)); | 				shares.add(readElement(parser)); | ||||||
| 			}  else { | 			}  else { | ||||||
| 				skip(parser); | 				//skip(parser); | ||||||
|  | 				OCShare share = tryReadCreateXMLResponse(parser); | ||||||
|  | 				if (share.getIdRemoteShared() > -1) { | ||||||
|  | 					shares.add(share); | ||||||
|  | 				} | ||||||
| 			}  | 			}  | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @ -215,6 +222,38 @@ public class ShareXMLParser { | |||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	/**  | ||||||
|  | 	 * Parse Create XML Response | ||||||
|  | 	 * @param parser | ||||||
|  | 	 * @return | ||||||
|  | 	 */ | ||||||
|  | 	private OCShare tryReadCreateXMLResponse(XmlPullParser parser) throws XmlPullParserException, IOException { | ||||||
|  | 		OCShare share = new OCShare(); | ||||||
|  | 	 | ||||||
|  | 		Log.d(TAG, "---- Create Share Response ---"); | ||||||
|  | 		while (parser.next() != XmlPullParser.END_TAG) { | ||||||
|  | 			if (parser.getEventType() != XmlPullParser.START_TAG) { | ||||||
|  | 	            continue; | ||||||
|  | 	        } | ||||||
|  | 			 | ||||||
|  | 			String name = parser.getName(); | ||||||
|  | 
 | ||||||
|  | 			if (name.equalsIgnoreCase(NODE_ID)) { | ||||||
|  | 				share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); | ||||||
|  | 			 | ||||||
|  | 			} else if (name.equalsIgnoreCase(NODE_URL)) { | ||||||
|  | 				share.setShareLink(readNode(parser, NODE_URL)); | ||||||
|  | 
 | ||||||
|  | 			}  else if (name.equalsIgnoreCase(NODE_TOKEN)) { | ||||||
|  | 				share.setToken(readNode(parser, NODE_TOKEN)); | ||||||
|  | 			} else { | ||||||
|  | 				skip(parser); | ||||||
|  | 			}  | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		return share; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	/**  | 	/**  | ||||||
| 	 * Parse Element node | 	 * Parse Element node | ||||||
| 	 * @param parser | 	 * @param parser | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user