1 /* ownCloud Android client application
2 * Copyright (C) 2012-2013 ownCloud Inc.
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2,
6 * as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package com
.owncloud
.android
.lib
.test_project
;
22 import com
.owncloud
.android
.lib
.network
.OwnCloudClientFactory
;
23 import com
.owncloud
.android
.lib
.network
.OwnCloudClient
;
24 import com
.owncloud
.android
.lib
.operations
.common
.RemoteFile
;
25 import com
.owncloud
.android
.lib
.operations
.common
.RemoteOperationResult
;
26 import com
.owncloud
.android
.lib
.operations
.remote
.ChunkedUploadRemoteFileOperation
;
27 import com
.owncloud
.android
.lib
.operations
.remote
.CreateRemoteFolderOperation
;
28 import com
.owncloud
.android
.lib
.operations
.remote
.DownloadRemoteFileOperation
;
29 import com
.owncloud
.android
.lib
.operations
.remote
.ReadRemoteFolderOperation
;
30 import com
.owncloud
.android
.lib
.operations
.remote
.RemoveRemoteFileOperation
;
31 import com
.owncloud
.android
.lib
.operations
.remote
.RenameRemoteFileOperation
;
32 import com
.owncloud
.android
.lib
.operations
.remote
.UploadRemoteFileOperation
;
33 import com
.owncloud
.android
.lib
.test_project
.R
;
35 import android
.net
.Uri
;
36 import android
.os
.Bundle
;
37 import android
.os
.Environment
;
38 import android
.app
.Activity
;
39 import android
.view
.Menu
;
42 * Activity to test OC framework
44 * @author David A. Velasco
47 public class TestActivity
extends Activity
{
49 // This account must exists on the simulator / device
50 private static final String mServerUri
= "https://beta.owncloud.com/owncloud/remote.php/webdav";
51 private static final String mUser
= "testandroid";
52 private static final String mPass
= "testandroid";
53 private static final boolean mChunked
= true
;
55 //private Account mAccount = null;
56 private OwnCloudClient mClient
;
59 protected void onCreate(Bundle savedInstanceState
) {
60 super.onCreate(savedInstanceState
);
61 setContentView(R
.layout
.activity_test
);
62 Uri uri
= Uri
.parse(mServerUri
);
63 mClient
= OwnCloudClientFactory
.createOwnCloudClient(uri
,getApplicationContext(), true
);
64 mClient
.setBasicCredentials(mUser
, mPass
);
68 public boolean onCreateOptionsMenu(Menu menu
) {
69 // Inflate the menu; this adds items to the action bar if it is present.
70 getMenuInflater().inflate(R
.menu
.test
, menu
);
75 * Access to the library method to Create a Folder
76 * @param remotePath Full path to the new directory to create in the remote server.
77 * @param createFullPath 'True' means that all the ancestor folders should be created if don't exist yet.
81 public RemoteOperationResult
createFolder(String remotePath
, boolean createFullPath
) {
83 CreateRemoteFolderOperation createOperation
= new CreateRemoteFolderOperation(remotePath
, createFullPath
);
84 RemoteOperationResult result
= createOperation
.execute(mClient
);
90 * Access to the library method to Rename a File or Folder
91 * @param oldName Old name of the file.
92 * @param oldRemotePath Old remote path of the file. For folders it starts and ends by "/"
93 * @param newName New name to set as the name of file.
94 * @param isFolder 'true' for folder and 'false' for files
99 public RemoteOperationResult
renameFile(String oldName
, String oldRemotePath
, String newName
, boolean isFolder
) {
101 RenameRemoteFileOperation renameOperation
= new RenameRemoteFileOperation(oldName
, oldRemotePath
, newName
, isFolder
);
102 RemoteOperationResult result
= renameOperation
.execute(mClient
);
108 * Access to the library method to Remove a File or Folder
110 * @param remotePath Remote path of the file or folder in the server.
113 public RemoteOperationResult
removeFile(String remotePath
) {
115 RemoveRemoteFileOperation removeOperation
= new RemoveRemoteFileOperation(remotePath
);
116 RemoteOperationResult result
= removeOperation
.execute(mClient
);
122 * Access to the library method to Read a Folder (PROPFIND DEPTH 1)
127 public RemoteOperationResult
readFile(String remotePath
) {
129 ReadRemoteFolderOperation readOperation
= new ReadRemoteFolderOperation(remotePath
);
130 RemoteOperationResult result
= readOperation
.execute(mClient
);
136 * Access to the library method to Download a File
141 public RemoteOperationResult
downloadFile(RemoteFile remoteFile
, String temporalFolder
) {
143 String path
= "/owncloud/tmp/" + temporalFolder
;
144 File sdCard
= Environment
.getExternalStorageDirectory();
145 File folder
= new File(sdCard
.getAbsolutePath() + "/" + path
);
148 DownloadRemoteFileOperation downloadOperation
= new DownloadRemoteFileOperation(remoteFile
.getRemotePath(), folder
.getAbsolutePath());
149 RemoteOperationResult result
= downloadOperation
.execute(mClient
);
154 /** Access to the library method to Upload a File
161 public RemoteOperationResult
uploadFile(String storagePath
, String remotePath
, String mimeType
) {
163 UploadRemoteFileOperation uploadOperation
;
164 if ( mChunked
&& (new File(storagePath
)).length() > ChunkedUploadRemoteFileOperation
.CHUNK_SIZE
) {
165 uploadOperation
= new ChunkedUploadRemoteFileOperation(storagePath
, remotePath
, mimeType
);
167 uploadOperation
= new UploadRemoteFileOperation(storagePath
, remotePath
, mimeType
);
170 RemoteOperationResult result
= uploadOperation
.execute(mClient
);