e457793ed1ef0fa6d7ddbcb7fb31c650ac627ca2
[pub/Android/ownCloud.git] / oc_framework / sample_client / src / com / owncloud / android / oc_framework / sampleclient / MainActivity.java
1 package com.owncloud.android.oc_framework.sampleclient;
2
3 import java.util.List;
4
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;
14
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;
22
23 public class MainActivity extends Activity implements OnRemoteOperationListener {
24
25 private Handler mHandler;
26
27 private WebdavClient mClient;
28
29 private FilesArrayAdapter mFilesAdapter;
30
31 /** Called when the activity is first created. */
32 @Override
33 public void onCreate(Bundle savedInstanceState) {
34 super.onCreate(savedInstanceState);
35 setContentView(R.layout.main);
36
37 mHandler = new Handler();
38
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));
42
43 mFilesAdapter = new FilesArrayAdapter(this, R.layout.file_in_list);
44 ((ListView)findViewById(R.id.list_view)).setAdapter(mFilesAdapter);
45 }
46
47 public void onClickHandler(View button) {
48 switch (button.getId()) {
49 case R.id.button_refresh:
50 startRefresh();
51 break;
52 case R.id.button_upload:
53 startUpload();
54 break;
55 case R.id.button_delete_remote:
56 startRemoteDeletion();
57 break;
58 case R.id.button_download:
59 startDownload();
60 break;
61 case R.id.button_delete_local:
62 startLocalDeletion();
63 break;
64 default:
65 Toast.makeText(this, R.string.youre_doing_it_wrong, Toast.LENGTH_SHORT).show();
66 }
67 }
68
69 private void startRefresh() {
70 RemoteOperation refreshOperation = new ReadRemoteFolderOperation(FileUtils.PATH_SEPARATOR);
71 refreshOperation.execute(mClient, this, mHandler);
72 }
73
74 private void startUpload() {
75 Toast.makeText(this, R.string.todo_start_upload, Toast.LENGTH_SHORT).show();
76 }
77
78 private void startRemoteDeletion() {
79 Toast.makeText(this, R.string.todo_start_remote_deletion, Toast.LENGTH_SHORT).show();
80 }
81
82 private void startDownload() {
83 Toast.makeText(this, R.string.todo_start_download, Toast.LENGTH_SHORT).show();
84 }
85
86 private void startLocalDeletion() {
87 Toast.makeText(this, R.string.todo_start_local_deletion, Toast.LENGTH_SHORT).show();
88 }
89
90 @Override
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();
94
95 } else if (operation instanceof ReadRemoteFolderOperation) {
96 onSuccessfulRefresh((ReadRemoteFolderOperation)operation, result);
97
98 } else {
99 Toast.makeText(this, R.string.todo_operation_finished_in_success, Toast.LENGTH_SHORT).show();
100 }
101 }
102
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));
109 }
110 mFilesAdapter.notifyDataSetChanged();
111 }
112
113 }