if (mShareXmlParser == null) { Log_OC.w(TAG, "No ShareXmlParser provided, creating new instance "); mShareXmlParser = new ShareXMLParser(); List<OCShare> shares = mShareXmlParser.parseXMLResponse(is); if (mShareXmlParser.isSuccess()) { if ((shares != null && shares.size() > 0) || !mOneOrMoreSharesRequired) { result = new RemoteOperationResult(RemoteOperationResult.ResultCode.OK); } else if (mShareXmlParser.isWrongParameter()){ result = new RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER); resultData.add(mShareXmlParser.getMessage()); result.setData(resultData); } else if (mShareXmlParser.isNotFound()){ result = new RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_NOT_FOUND); resultData.add(mShareXmlParser.getMessage()); result.setData(resultData); } else if (mShareXmlParser.isForbidden()) { result = new RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_FORBIDDEN); resultData.add(mShareXmlParser.getMessage()); result.setData(resultData);
readElement(parser, shares); share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); fixPathForFolder(share); share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))); readNode(parser, NODE_PARENT); int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE)); share.setShareType(ShareType.fromValue(value)); share.setShareWith(readNode(parser, NODE_SHARE_WITH)); share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE))); share.setPath(readNode(parser, NODE_PATH)); fixPathForFolder(share); share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS))); share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME))); String value = readNode(parser, NODE_EXPIRATION); if (!(value.length() == 0)) { share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime());
/** * Parse OCS node * @param parser * @return List of ShareRemoteFiles * @throws XmlPullParserException * @throws IOException */ private ArrayList<OCShare> readOCS (XmlPullParser parser) throws XmlPullParserException, IOException { ArrayList<OCShare> shares = new ArrayList<OCShare>(); parser.require(XmlPullParser.START_TAG, ns , NODE_OCS); while (parser.next() != XmlPullParser.END_TAG) { if (parser.getEventType() != XmlPullParser.START_TAG) { continue; } String name = parser.getName(); // read NODE_META and NODE_DATA if (name.equalsIgnoreCase(NODE_META)) { readMeta(parser); } else if (name.equalsIgnoreCase(NODE_DATA)) { shares = readData(parser); } else { skip(parser); } } return shares; }
new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion());
new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion());
if (mShareXmlParser == null) { Log_OC.w(TAG, "No ShareXmlParser provided, creating new instance "); mShareXmlParser = new ShareXMLParser(); List<OCShare> shares = mShareXmlParser.parseXMLResponse(is); if (mShareXmlParser.isSuccess()) { if ((shares != null && shares.size() > 0) || !mOneOrMoreSharesRequired) { result = new RemoteOperationResult<>(RemoteOperationResult.ResultCode.OK); } else if (mShareXmlParser.isWrongParameter()){ result = new RemoteOperationResult<>(RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER); result.setData(new ShareParserResult(null, mShareXmlParser.getMessage())); } else if (mShareXmlParser.isNotFound()){ result = new RemoteOperationResult<>(RemoteOperationResult.ResultCode.SHARE_NOT_FOUND); result.setData(new ShareParserResult(null, mShareXmlParser.getMessage())); } else if (mShareXmlParser.isForbidden()) { result = new RemoteOperationResult<>(RemoteOperationResult.ResultCode.SHARE_FORBIDDEN); result.setData(new ShareParserResult(null, mShareXmlParser.getMessage()));
readElement(parser, shares); share.setIdRemoteShared(Integer.parseInt(readNode(parser, NODE_ID))); share.setIsFolder(readNode(parser, NODE_ITEM_TYPE).equalsIgnoreCase(TYPE_FOLDER)); fixPathForFolder(share); share.setItemSource(Long.parseLong(readNode(parser, NODE_ITEM_SOURCE))); readNode(parser, NODE_PARENT); int value = Integer.parseInt(readNode(parser, NODE_SHARE_TYPE)); share.setShareType(ShareType.fromValue(value)); share.setShareWith(readNode(parser, NODE_SHARE_WITH)); share.setFileSource(Long.parseLong(readNode(parser, NODE_FILE_SOURCE))); share.setPath(readNode(parser, NODE_PATH)); fixPathForFolder(share); share.setPermissions(Integer.parseInt(readNode(parser, NODE_PERMISSIONS))); share.setSharedDate(Long.parseLong(readNode(parser, NODE_STIME))); String value = readNode(parser, NODE_EXPIRATION); if (!(value.length() == 0)) { share.setExpirationDate(WebdavUtils.parseResponseDate(value).getTime());
/** * Parse OCS node * @param parser * @return List of ShareRemoteFiles * @throws XmlPullParserException * @throws IOException */ private ArrayList<OCShare> readOCS (XmlPullParser parser) throws XmlPullParserException, IOException { ArrayList<OCShare> shares = new ArrayList<>(); parser.require(XmlPullParser.START_TAG, ns , NODE_OCS); while (parser.next() != XmlPullParser.END_TAG) { if (parser.getEventType() != XmlPullParser.START_TAG) { continue; } String name = parser.getName(); // read NODE_META and NODE_DATA if (name.equalsIgnoreCase(NODE_META)) { readMeta(parser); } else if (name.equalsIgnoreCase(NODE_DATA)) { shares = readData(parser); } else { skip(parser); } } return shares; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(String.valueOf(mRemoteShareId)); DeleteMethod deleteMethod = new DeleteMethod( new URL(uriBuilder.build().toString()) ); deleteMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(deleteMethod); if (isSuccess(status)) { // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); result = parser.parse(deleteMethod.getResponseBodyAsString()); Log_OC.d(TAG, "Unshare " + mRemoteShareId + ": " + result.getLogMessage()); } else { result = new RemoteOperationResult<>(deleteMethod); } } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Unshare Link Exception " + result.getLogMessage(), e); } return result; }
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult<ShareParserResult> result; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); uriBuilder.appendEncodedPath(Long.toString(mRemoteId)); GetMethod getMethod = new GetMethod(new URL(uriBuilder.build().toString())); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); if (isSuccess(status)) { // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); parser.setOneOrMoreSharesRequired(true); parser.setOwnCloudVersion(client.getOwnCloudVersion()); parser.setServerBaseUri(client.getBaseUri()); result = parser.parse(getMethod.getResponseBodyAsString()); } else { result = new RemoteOperationResult<>(getMethod); } } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Exception while getting remote shares ", e); } return result; }
new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion());
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result; try { Uri requestUri = client.getBaseUri(); Uri.Builder uriBuilder = requestUri.buildUpon(); uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH); GetMethod getMethod = new GetMethod( new URL(client.getBaseUri() + ShareUtils.SHARING_API_PATH) ); getMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); int status = client.executeHttpMethod(getMethod); if (isSuccess(status)) { // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion()); parser.setServerBaseUri(client.getBaseUri()); result = parser.parse(getMethod.getResponseBodyAsString()); } else { result = new RemoteOperationResult<>(getMethod); } } catch (Exception e) { result = new RemoteOperationResult<>(e); Log_OC.e(TAG, "Exception while getting remote shares ", e); } return result; }
new ShareXMLParser() ); parser.setOneOrMoreSharesRequired(true);
@Override protected RemoteOperationResult run(OwnCloudClient client) { RemoteOperationResult result = null; int status = -1; DeleteMethod delete = null; try { String id = "/" + String.valueOf(mRemoteShareId); delete = new DeleteMethod(client.getBaseUri() + ShareUtils.SHARING_API_PATH + id); delete.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE); status = client.executeMethod(delete); if (isSuccess(status)) { String response = delete.getResponseBodyAsString(); // Parse xml response and obtain the list of shares ShareToRemoteOperationResultParser parser = new ShareToRemoteOperationResultParser( new ShareXMLParser() ); result = parser.parse(response); Log_OC.d(TAG, "Unshare " + id + ": " + result.getLogMessage()); } else { result = new RemoteOperationResult(false, delete); } } catch (Exception e) { result = new RemoteOperationResult(e); Log_OC.e(TAG, "Unshare Link Exception " + result.getLogMessage(), e); } finally { if (delete != null) delete.releaseConnection(); } return result; }
new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion());
new ShareXMLParser() ); parser.setOwnCloudVersion(client.getOwnCloudVersion());
new ShareXMLParser() ); parser.setOneOrMoreSharesRequired(true);