1 package com
.owncloud
.android
.oc_framework
.sampleclient
;
5 import com
.owncloud
.android
.oc_framework
.accounts
.AccountUtils
;
6 import com
.owncloud
.android
.oc_framework
.network
.webdav
.OwnCloudClientFactory
;
7 import com
.owncloud
.android
.oc_framework
.network
.webdav
.WebdavClient
;
8 import com
.owncloud
.android
.oc_framework
.operations
.OnRemoteOperationListener
;
9 import com
.owncloud
.android
.oc_framework
.operations
.RemoteFile
;
10 import com
.owncloud
.android
.oc_framework
.operations
.RemoteOperation
;
11 import com
.owncloud
.android
.oc_framework
.operations
.RemoteOperationResult
;
12 import com
.owncloud
.android
.oc_framework
.operations
.remote
.ReadRemoteFolderOperation
;
13 import com
.owncloud
.android
.oc_framework
.utils
.FileUtils
;
15 import android
.app
.Activity
;
16 import android
.net
.Uri
;
17 import android
.os
.Bundle
;
18 import android
.os
.Handler
;
19 import android
.view
.View
;
20 import android
.widget
.ListView
;
21 import android
.widget
.Toast
;
23 public class MainActivity
extends Activity
implements OnRemoteOperationListener
{
25 private Handler mHandler
;
27 private WebdavClient mClient
;
29 private FilesArrayAdapter mFilesAdapter
;
31 /** Called when the activity is first created. */
33 public void onCreate(Bundle savedInstanceState
) {
34 super.onCreate(savedInstanceState
);
35 setContentView(R
.layout
.main
);
37 mHandler
= new Handler();
39 Uri serverUri
= Uri
.parse(getString(R
.string
.server_base_url
) + AccountUtils
.WEBDAV_PATH_4_0
);
40 mClient
= OwnCloudClientFactory
.createOwnCloudClient(serverUri
, this, true
);
41 mClient
.setBasicCredentials(getString(R
.string
.username
), getString(R
.string
.password
));
43 mFilesAdapter
= new FilesArrayAdapter(this, R
.layout
.file_in_list
);
44 ((ListView
)findViewById(R
.id
.list_view
)).setAdapter(mFilesAdapter
);
47 public void onClickHandler(View button
) {
48 switch (button
.getId()) {
49 case R
.id
.button_refresh
:
52 case R
.id
.button_upload
:
55 case R
.id
.button_delete_remote
:
56 startRemoteDeletion();
58 case R
.id
.button_download
:
61 case R
.id
.button_delete_local
:
65 Toast
.makeText(this, R
.string
.youre_doing_it_wrong
, Toast
.LENGTH_SHORT
).show();
69 private void startRefresh() {
70 RemoteOperation refreshOperation
= new ReadRemoteFolderOperation(FileUtils
.PATH_SEPARATOR
);
71 refreshOperation
.execute(mClient
, this, mHandler
);
74 private void startUpload() {
75 Toast
.makeText(this, R
.string
.todo_start_upload
, Toast
.LENGTH_SHORT
).show();
78 private void startRemoteDeletion() {
79 Toast
.makeText(this, R
.string
.todo_start_remote_deletion
, Toast
.LENGTH_SHORT
).show();
82 private void startDownload() {
83 Toast
.makeText(this, R
.string
.todo_start_download
, Toast
.LENGTH_SHORT
).show();
86 private void startLocalDeletion() {
87 Toast
.makeText(this, R
.string
.todo_start_local_deletion
, Toast
.LENGTH_SHORT
).show();
91 public void onRemoteOperationFinish(RemoteOperation operation
, RemoteOperationResult result
) {
92 if (!result
.isSuccess()) {
93 Toast
.makeText(this, R
.string
.todo_operation_finished_in_fail
, Toast
.LENGTH_SHORT
).show();
95 } else if (operation
instanceof ReadRemoteFolderOperation
) {
96 onSuccessfulRefresh((ReadRemoteFolderOperation
)operation
, result
);
99 Toast
.makeText(this, R
.string
.todo_operation_finished_in_success
, Toast
.LENGTH_SHORT
).show();
103 private void onSuccessfulRefresh(ReadRemoteFolderOperation operation
, RemoteOperationResult result
) {
104 mFilesAdapter
.clear();
105 List
<RemoteFile
> files
= result
.getData();
106 if (files
!= null
&& files
.size() > 0) {
107 mFilesAdapter
.addAll(files
);
108 mFilesAdapter
.remove(mFilesAdapter
.getItem(0));
110 mFilesAdapter
.notifyDataSetChanged();