mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 10:27:45 +00:00 
			
		
		
		
	Merge pull request #471 from owncloud/fix/remove_sample_client
remove sample client
This commit is contained in:
		
						commit
						a7e9138593
					
				| @ -1,31 +0,0 @@ | |||||||
| apply plugin: 'com.android.application' |  | ||||||
| 
 |  | ||||||
| dependencies { |  | ||||||
|     implementation project(':owncloudComLibrary') |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| android { |  | ||||||
|     compileSdkVersion 30 |  | ||||||
| 
 |  | ||||||
|     defaultConfig { |  | ||||||
|         minSdkVersion 21 |  | ||||||
|         targetSdkVersion 30 |  | ||||||
| 
 |  | ||||||
|         // This is pretty ugly but manifest placeholders don't seem to work very well when using different modules |  | ||||||
|         // See https://github.com/openid/AppAuth-Android/issues/325 |  | ||||||
|         manifestPlaceholders = [appAuthRedirectScheme: ''] |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     lintOptions { |  | ||||||
|         abortOnError false |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     packagingOptions { |  | ||||||
|         exclude 'META-INF/LICENSE.txt' |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     compileOptions { |  | ||||||
|         sourceCompatibility JavaVersion.VERSION_1_8 |  | ||||||
|         targetCompatibility JavaVersion.VERSION_1_8 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.8 MiB | 
| @ -1 +0,0 @@ | |||||||
| Testing ownCloud uploads |  | ||||||
| @ -1,47 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <manifest package="com.owncloud.android.lib.sampleclient" |  | ||||||
|     xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|     android:versionCode="1" |  | ||||||
|     android:versionName="1.0"> |  | ||||||
| 
 |  | ||||||
|     <uses-permission android:name="android.permission.INTERNET" /> |  | ||||||
|     <application |  | ||||||
|         android:icon="@drawable/ic_launcher" |  | ||||||
|         android:label="@string/app_name"> |  | ||||||
|         <activity |  | ||||||
|             android:name="MainActivity" |  | ||||||
|             android:configChanges="orientation|keyboardHidden" |  | ||||||
|             android:label="@string/app_name" |  | ||||||
|             android:screenOrientation="portrait" |  | ||||||
|             > |  | ||||||
|             <intent-filter> |  | ||||||
|                 <action android:name="android.intent.action.MAIN" /> |  | ||||||
|                 <category android:name="android.intent.category.LAUNCHER" /> |  | ||||||
|             </intent-filter> |  | ||||||
|         </activity> |  | ||||||
|     </application> |  | ||||||
| </manifest> |  | ||||||
| @ -1,46 +0,0 @@ | |||||||
| /* ownCloud Android Library is available under MIT license |  | ||||||
|  *   Copyright (C) 2020 ownCloud GmbH. |  | ||||||
|  * |  | ||||||
|  *   Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|  *   of this software and associated documentation files (the "Software"), to deal |  | ||||||
|  *   in the Software without restriction, including without limitation the rights |  | ||||||
|  *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|  *   copies of the Software, and to permit persons to whom the Software is |  | ||||||
|  *   furnished to do so, subject to the following conditions: |  | ||||||
|  * |  | ||||||
|  *   The above copyright notice and this permission notice shall be included in |  | ||||||
|  *   all copies or substantial portions of the Software. |  | ||||||
|  * |  | ||||||
|  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |  | ||||||
|  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |  | ||||||
|  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |  | ||||||
|  *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |  | ||||||
|  *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |  | ||||||
|  *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|  *   THE SOFTWARE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| package com.owncloud.android.lib.sampleclient; |  | ||||||
| 
 |  | ||||||
| import android.content.Context; |  | ||||||
| import android.view.View; |  | ||||||
| import android.view.ViewGroup; |  | ||||||
| import android.widget.ArrayAdapter; |  | ||||||
| import android.widget.TextView; |  | ||||||
| 
 |  | ||||||
| import com.owncloud.android.lib.resources.files.RemoteFile; |  | ||||||
| 
 |  | ||||||
| public class FilesArrayAdapter extends ArrayAdapter<RemoteFile> { |  | ||||||
| 
 |  | ||||||
|     public FilesArrayAdapter(Context context, int resource) { |  | ||||||
|         super(context, resource); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public View getView(int position, View convertView, ViewGroup parent) { |  | ||||||
|         TextView textView = (TextView) super.getView(position, convertView, parent); |  | ||||||
|         textView.setText(getItem(position).getRemotePath()); |  | ||||||
|         return textView; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @ -1,300 +0,0 @@ | |||||||
| /* ownCloud Android Library is available under MIT license |  | ||||||
|  *   Copyright (C) 2020 ownCloud GmbH. |  | ||||||
|  * |  | ||||||
|  *   Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|  *   of this software and associated documentation files (the "Software"), to deal |  | ||||||
|  *   in the Software without restriction, including without limitation the rights |  | ||||||
|  *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|  *   copies of the Software, and to permit persons to whom the Software is |  | ||||||
|  *   furnished to do so, subject to the following conditions: |  | ||||||
|  * |  | ||||||
|  *   The above copyright notice and this permission notice shall be included in |  | ||||||
|  *   all copies or substantial portions of the Software. |  | ||||||
|  * |  | ||||||
|  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |  | ||||||
|  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |  | ||||||
|  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |  | ||||||
|  *   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |  | ||||||
|  *   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |  | ||||||
|  *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|  *   THE SOFTWARE. |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| package com.owncloud.android.lib.sampleclient; |  | ||||||
| 
 |  | ||||||
| import android.annotation.SuppressLint; |  | ||||||
| import android.app.Activity; |  | ||||||
| import android.content.pm.PackageInfo; |  | ||||||
| import android.content.pm.PackageManager; |  | ||||||
| import android.content.res.AssetManager; |  | ||||||
| import android.graphics.drawable.BitmapDrawable; |  | ||||||
| import android.net.Uri; |  | ||||||
| import android.os.Bundle; |  | ||||||
| import android.os.Handler; |  | ||||||
| import android.view.View; |  | ||||||
| import android.widget.ListView; |  | ||||||
| import android.widget.TextView; |  | ||||||
| import android.widget.Toast; |  | ||||||
| 
 |  | ||||||
| import com.owncloud.android.lib.common.OwnCloudClient; |  | ||||||
| import com.owncloud.android.lib.common.OwnCloudClientFactory; |  | ||||||
| import com.owncloud.android.lib.common.SingleSessionManager; |  | ||||||
| import com.owncloud.android.lib.common.authentication.OwnCloudCredentialsFactory; |  | ||||||
| import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; |  | ||||||
| import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; |  | ||||||
| import com.owncloud.android.lib.common.operations.RemoteOperation; |  | ||||||
| import com.owncloud.android.lib.common.operations.RemoteOperationResult; |  | ||||||
| import com.owncloud.android.lib.resources.files.DownloadRemoteFileOperation; |  | ||||||
| import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation; |  | ||||||
| import com.owncloud.android.lib.resources.files.RemoteFile; |  | ||||||
| import com.owncloud.android.lib.resources.files.RemoveRemoteFileOperation; |  | ||||||
| import com.owncloud.android.lib.resources.files.UploadRemoteFileOperation; |  | ||||||
| import info.hannes.timber.DebugTree; |  | ||||||
| import timber.log.Timber; |  | ||||||
| 
 |  | ||||||
| import java.io.File; |  | ||||||
| import java.io.FileOutputStream; |  | ||||||
| import java.io.IOException; |  | ||||||
| import java.io.InputStream; |  | ||||||
| import java.util.ArrayList; |  | ||||||
| import java.util.List; |  | ||||||
| 
 |  | ||||||
| public class MainActivity extends Activity implements OnRemoteOperationListener, OnDatatransferProgressListener { |  | ||||||
| 
 |  | ||||||
|     private Handler mHandler; |  | ||||||
|     private OwnCloudClient mClient; |  | ||||||
|     private FilesArrayAdapter mFilesAdapter; |  | ||||||
|     private View mFrame; |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * Called when the activity is first created. |  | ||||||
|      */ |  | ||||||
|     @Override |  | ||||||
|     public void onCreate(Bundle savedInstanceState) { |  | ||||||
|         super.onCreate(savedInstanceState); |  | ||||||
|         setContentView(R.layout.main); |  | ||||||
| 
 |  | ||||||
|         Timber.plant(new DebugTree()); |  | ||||||
|         mHandler = new Handler(); |  | ||||||
| 
 |  | ||||||
|         final Uri serverUri = Uri.parse(getString(R.string.server_base_url)); |  | ||||||
| 
 |  | ||||||
|         SingleSessionManager.setUserAgent(getUserAgent()); |  | ||||||
|         mClient = OwnCloudClientFactory.createOwnCloudClient(serverUri, this, true); |  | ||||||
| 
 |  | ||||||
|         mClient.setCredentials( |  | ||||||
|                 OwnCloudCredentialsFactory.newBasicCredentials( |  | ||||||
|                         getString(R.string.username), |  | ||||||
|                         getString(R.string.password) |  | ||||||
|                 ) |  | ||||||
|         ); |  | ||||||
| 
 |  | ||||||
|         mFilesAdapter = new FilesArrayAdapter(this, R.layout.file_in_list); |  | ||||||
|         ((ListView) findViewById(R.id.list_view)).setAdapter(mFilesAdapter); |  | ||||||
| 
 |  | ||||||
|         // TODO move to background thread or task |  | ||||||
|         AssetManager assets = getAssets(); |  | ||||||
|         try { |  | ||||||
|             String sampleFileName = getString(R.string.sample_file_name); |  | ||||||
|             File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path)); |  | ||||||
|             upFolder.mkdir(); |  | ||||||
|             File upFile = new File(upFolder, sampleFileName); |  | ||||||
|             FileOutputStream fos = new FileOutputStream(upFile); |  | ||||||
|             InputStream is = assets.open(sampleFileName); |  | ||||||
|             int count; |  | ||||||
|             byte[] buffer = new byte[1024]; |  | ||||||
|             while ((count = is.read(buffer, 0, buffer.length)) >= 0) { |  | ||||||
|                 fos.write(buffer, 0, count); |  | ||||||
|             } |  | ||||||
|             is.close(); |  | ||||||
|             fos.close(); |  | ||||||
|         } catch (IOException e) { |  | ||||||
|             Toast.makeText(this, R.string.error_copying_sample_file, Toast.LENGTH_SHORT).show(); |  | ||||||
|             Timber.e(e, getString(R.string.error_copying_sample_file)); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         mFrame = findViewById(R.id.frame); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void onDestroy() { |  | ||||||
|         File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path)); |  | ||||||
|         File upFile = upFolder.listFiles()[0]; |  | ||||||
|         upFile.delete(); |  | ||||||
|         upFolder.delete(); |  | ||||||
|         super.onDestroy(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void onClickHandler(View button) { |  | ||||||
|         switch (button.getId()) { |  | ||||||
|             case R.id.button_refresh: |  | ||||||
|                 startRefresh(); |  | ||||||
|                 break; |  | ||||||
|             case R.id.button_upload: |  | ||||||
|                 startUpload(); |  | ||||||
|                 break; |  | ||||||
|             case R.id.button_delete_remote: |  | ||||||
|                 startRemoteDeletion(); |  | ||||||
|                 break; |  | ||||||
|             case R.id.button_download: |  | ||||||
|                 startDownload(); |  | ||||||
|                 break; |  | ||||||
|             case R.id.button_delete_local: |  | ||||||
|                 startLocalDeletion(); |  | ||||||
|                 break; |  | ||||||
|             default: |  | ||||||
|                 Toast.makeText(this, R.string.youre_doing_it_wrong, Toast.LENGTH_SHORT).show(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void startRefresh() { |  | ||||||
|         ReadRemoteFolderOperation refreshOperation = new ReadRemoteFolderOperation(File.separator); |  | ||||||
|         refreshOperation.execute(mClient, this, mHandler); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void startUpload() { |  | ||||||
|         File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path)); |  | ||||||
|         File fileToUpload = upFolder.listFiles()[0]; |  | ||||||
|         String remotePath = File.separator + fileToUpload.getName(); |  | ||||||
|         String mimeType = getString(R.string.sample_file_mimetype); |  | ||||||
| 
 |  | ||||||
|         // Get the last modification date of the file from the file system |  | ||||||
|         long timeStampLong = fileToUpload.lastModified() / 1000; |  | ||||||
|         String timeStamp = Long.toString(timeStampLong); |  | ||||||
| 
 |  | ||||||
|         UploadRemoteFileOperation uploadOperation = new UploadRemoteFileOperation(fileToUpload.getAbsolutePath(), |  | ||||||
|                 remotePath, mimeType, timeStamp); |  | ||||||
|         uploadOperation.addDatatransferProgressListener(this); |  | ||||||
|         uploadOperation.execute(mClient, this, mHandler); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void startRemoteDeletion() { |  | ||||||
|         File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path)); |  | ||||||
|         File fileToUpload = upFolder.listFiles()[0]; |  | ||||||
|         String remotePath = File.separator + fileToUpload.getName(); |  | ||||||
| 
 |  | ||||||
|         RemoveRemoteFileOperation removeOperation = new RemoveRemoteFileOperation(remotePath); |  | ||||||
|         removeOperation.execute(mClient, this, mHandler); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void startDownload() { |  | ||||||
|         File downFolder = new File(getCacheDir(), getString(R.string.download_folder_path)); |  | ||||||
|         downFolder.mkdir(); |  | ||||||
|         File upFolder = new File(getCacheDir(), getString(R.string.upload_folder_path)); |  | ||||||
|         File fileToUpload = upFolder.listFiles()[0]; |  | ||||||
|         String remotePath = File.separator + fileToUpload.getName(); |  | ||||||
| 
 |  | ||||||
|         DownloadRemoteFileOperation downloadOperation = new DownloadRemoteFileOperation(remotePath, |  | ||||||
|                 downFolder.getAbsolutePath()); |  | ||||||
|         downloadOperation.addDatatransferProgressListener(this); |  | ||||||
|         downloadOperation.execute(mClient, this, mHandler); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void startLocalDeletion() { |  | ||||||
|         File downFolder = new File(getCacheDir(), getString(R.string.download_folder_path)); |  | ||||||
|         File downloadedFile = downFolder.listFiles()[0]; |  | ||||||
|         if (!downloadedFile.delete() && downloadedFile.exists()) { |  | ||||||
|             Toast.makeText(this, R.string.error_deleting_local_file, Toast.LENGTH_SHORT).show(); |  | ||||||
|         } else { |  | ||||||
|             ((TextView) findViewById(R.id.download_progress)).setText("0%"); |  | ||||||
|             findViewById(R.id.frame).setBackgroundDrawable(null); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) { |  | ||||||
|         if (!result.isSuccess()) { |  | ||||||
|             Toast.makeText(this, R.string.todo_operation_finished_in_fail, Toast.LENGTH_SHORT).show(); |  | ||||||
|             Timber.e(result.getException(), result.getLogMessage()); |  | ||||||
| 
 |  | ||||||
|         } else if (operation instanceof ReadRemoteFolderOperation) { |  | ||||||
|             onSuccessfulRefresh(result); |  | ||||||
| 
 |  | ||||||
|         } else if (operation instanceof com.owncloud.android.lib.resources.files.UploadRemoteFileOperation) { |  | ||||||
|             onSuccessfulUpload(); |  | ||||||
| 
 |  | ||||||
|         } else if (operation instanceof RemoveRemoteFileOperation) { |  | ||||||
|             onSuccessfulRemoteDeletion(); |  | ||||||
| 
 |  | ||||||
|         } else if (operation instanceof DownloadRemoteFileOperation) { |  | ||||||
|             onSuccessfulDownload(); |  | ||||||
| 
 |  | ||||||
|         } else { |  | ||||||
|             Toast.makeText(this, R.string.todo_operation_finished_in_success, Toast.LENGTH_SHORT).show(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void onSuccessfulRefresh(RemoteOperationResult result) { |  | ||||||
|         mFilesAdapter.clear(); |  | ||||||
|         List<RemoteFile> files = new ArrayList<>(); |  | ||||||
|         for (RemoteFile remoteFile : (List<RemoteFile>) result.getData()) { |  | ||||||
|             files.add(remoteFile); |  | ||||||
|         } |  | ||||||
|         for (RemoteFile file : files) { |  | ||||||
|             mFilesAdapter.add(file); |  | ||||||
|         } |  | ||||||
|         mFilesAdapter.remove(mFilesAdapter.getItem(0)); |  | ||||||
|         mFilesAdapter.notifyDataSetChanged(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void onSuccessfulUpload() { |  | ||||||
|         startRefresh(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void onSuccessfulRemoteDeletion() { |  | ||||||
|         startRefresh(); |  | ||||||
|         TextView progressView = findViewById(R.id.upload_progress); |  | ||||||
|         if (progressView != null) { |  | ||||||
|             progressView.setText("0%"); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void onSuccessfulDownload() { |  | ||||||
|         File downFolder = new File(getCacheDir(), getString(R.string.download_folder_path)); |  | ||||||
|         File downloadedFile = downFolder.listFiles()[0]; |  | ||||||
|         BitmapDrawable bDraw = new BitmapDrawable(getResources(), downloadedFile.getAbsolutePath()); |  | ||||||
|         mFrame.setBackgroundDrawable(bDraw); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @SuppressLint("SetTextI18n") |  | ||||||
|     @Override |  | ||||||
|     public void onTransferProgress(long progressRate, long totalTransferredSoFar, long totalToTransfer, String fileName) { |  | ||||||
|         final long percentage = (totalToTransfer > 0 ? totalTransferredSoFar * 100 / totalToTransfer : 0); |  | ||||||
|         final boolean upload = fileName.contains(getString(R.string.upload_folder_path)); |  | ||||||
|         Timber.d("progressRate %s", percentage); |  | ||||||
|         mHandler.post(() -> { |  | ||||||
|             TextView progressView; |  | ||||||
|             if (upload) { |  | ||||||
|                 progressView = findViewById(R.id.upload_progress); |  | ||||||
|             } else { |  | ||||||
|                 progressView = findViewById(R.id.download_progress); |  | ||||||
|             } |  | ||||||
|             if (progressView != null) { |  | ||||||
|                 progressView.setText(percentage + "%"); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // user agent |  | ||||||
|     @SuppressLint("StringFormatInvalid") |  | ||||||
|     private String getUserAgent() { |  | ||||||
|         String appString = getResources().getString(R.string.user_agent); |  | ||||||
|         String packageName = getPackageName(); |  | ||||||
|         String version = ""; |  | ||||||
| 
 |  | ||||||
|         PackageInfo pInfo; |  | ||||||
|         try { |  | ||||||
|             pInfo = getPackageManager().getPackageInfo(packageName, 0); |  | ||||||
|             if (pInfo != null) { |  | ||||||
|                 version = pInfo.versionName; |  | ||||||
|             } |  | ||||||
|         } catch (PackageManager.NameNotFoundException e) { |  | ||||||
|             Timber.e(e); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // Mozilla/5.0 (Android) ownCloud-android/1.7.0 |  | ||||||
|         return String.format(appString, version); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 7.3 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.6 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 4.8 KiB | 
| @ -1,29 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <TextView xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|     android:layout_width="match_parent" |  | ||||||
|     android:layout_height="wrap_content" |  | ||||||
|     /> |  | ||||||
| @ -1,122 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|     android:layout_width="match_parent" |  | ||||||
|     android:layout_height="match_parent" |  | ||||||
|     > |  | ||||||
| 
 |  | ||||||
|     <Button |  | ||||||
|         android:id="@+id/button_refresh" |  | ||||||
|         style="@style/ButtonStyle" |  | ||||||
|         android:layout_alignParentLeft="true" |  | ||||||
|         android:layout_alignParentTop="true" |  | ||||||
|         android:onClick="onClickHandler" |  | ||||||
|         android:text="@string/refresh" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <ListView |  | ||||||
|         android:id="@+id/list_view" |  | ||||||
|         android:layout_width="match_parent" |  | ||||||
|         android:layout_height="wrap_content" |  | ||||||
|         android:layout_above="@+id/button_upload" |  | ||||||
|         android:layout_alignParentLeft="true" |  | ||||||
|         android:layout_alignParentRight="true" |  | ||||||
|         android:layout_below="@+id/button_refresh" |  | ||||||
|         > |  | ||||||
|     </ListView> |  | ||||||
| 
 |  | ||||||
|     <Button |  | ||||||
|         android:id="@+id/button_upload" |  | ||||||
|         style="@style/ButtonStyle" |  | ||||||
|         android:layout_above="@+id/frame" |  | ||||||
|         android:layout_alignParentLeft="true" |  | ||||||
|         android:onClick="onClickHandler" |  | ||||||
|         android:text="@string/upload" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <TextView |  | ||||||
|         android:id="@+id/upload_progress" |  | ||||||
|         style="@style/ProgressStyle" |  | ||||||
|         android:layout_above="@id/frame" |  | ||||||
|         android:layout_below="@id/list_view" |  | ||||||
|         android:layout_toLeftOf="@+id/button_delete_remote" |  | ||||||
|         android:layout_toRightOf="@id/button_upload" |  | ||||||
|         android:gravity="center" |  | ||||||
|         android:text="0%" |  | ||||||
|         android:textSize="14sp" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <Button |  | ||||||
|         android:id="@id/button_delete_remote" |  | ||||||
|         style="@style/ButtonStyle" |  | ||||||
|         android:layout_above="@id/frame" |  | ||||||
|         android:layout_alignParentRight="true" |  | ||||||
|         android:onClick="onClickHandler" |  | ||||||
|         android:text="@string/delete_remote_file" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <FrameLayout |  | ||||||
|         android:id="@id/frame" |  | ||||||
|         android:layout_width="match_parent" |  | ||||||
|         android:layout_height="@dimen/frame_height" |  | ||||||
|         android:layout_above="@+id/button_download" |  | ||||||
|         android:layout_alignParentLeft="true" |  | ||||||
|         android:layout_alignParentRight="true" |  | ||||||
|         > |  | ||||||
|     </FrameLayout> |  | ||||||
| 
 |  | ||||||
|     <Button |  | ||||||
|         android:id="@id/button_download" |  | ||||||
|         style="@style/ButtonStyle" |  | ||||||
|         android:layout_alignParentBottom="true" |  | ||||||
|         android:layout_alignParentLeft="true" |  | ||||||
|         android:onClick="onClickHandler" |  | ||||||
|         android:text="@string/download" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <TextView |  | ||||||
|         android:id="@+id/download_progress" |  | ||||||
|         style="@style/ProgressStyle" |  | ||||||
|         android:layout_alignParentBottom="true" |  | ||||||
|         android:layout_below="@id/frame" |  | ||||||
|         android:layout_toLeftOf="@+id/button_delete_local" |  | ||||||
|         android:layout_toRightOf="@id/button_download" |  | ||||||
|         android:gravity="center" |  | ||||||
|         android:text="0%" |  | ||||||
|         android:textSize="14sp" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
|     <Button |  | ||||||
|         android:id="@id/button_delete_local" |  | ||||||
|         style="@style/ButtonStyle" |  | ||||||
|         android:layout_alignParentBottom="true" |  | ||||||
|         android:layout_alignParentRight="true" |  | ||||||
|         android:onClick="onClickHandler" |  | ||||||
|         android:text="@string/delete_local_file" |  | ||||||
|         /> |  | ||||||
| 
 |  | ||||||
| </RelativeLayout> |  | ||||||
| 
 |  | ||||||
| @ -1,39 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <resources xmlns:android="http://schemas.android.com/apk/res/android"> |  | ||||||
| 
 |  | ||||||
|     <style name="ButtonStyle" parent="@android:style/Widget.Holo.Button"> |  | ||||||
|         <item name="android:layout_width">120dp</item> |  | ||||||
|         <item name="android:layout_height">wrap_content</item> |  | ||||||
|         <item name="android:textSize">12sp</item> |  | ||||||
|     </style> |  | ||||||
| 
 |  | ||||||
|     <style name="ProgressStyle" parent="@android:style/Widget.Holo.TextView"> |  | ||||||
|         <item name="android:layout_width">wrap_content</item> |  | ||||||
|         <item name="android:layout_height">wrap_content</item> |  | ||||||
|         <item name="android:textSize">12sp</item> |  | ||||||
|     </style> |  | ||||||
| </resources> |  | ||||||
| @ -1,28 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <resources> |  | ||||||
|     <dimen name="frame_height">120dp</dimen> |  | ||||||
| </resources> |  | ||||||
| @ -1,30 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2020 ownCloud GmbH. |  | ||||||
| 
 |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
| 
 |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
| 
 |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <resources> |  | ||||||
|     <string name="server_base_url"></string> |  | ||||||
|     <string name="username"></string> |  | ||||||
|     <string name="password"></string> |  | ||||||
|     <string name="user_agent">Mozilla/5.0 (Android) ownCloud sample </string> |  | ||||||
| </resources> |  | ||||||
| @ -1,47 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <resources> |  | ||||||
|     <string name="app_name">ownCloud Sample Client</string> |  | ||||||
|     <string name="refresh">Refresh</string> |  | ||||||
|     <string name="upload">Upload</string> |  | ||||||
|     <string name="delete_remote_file">Delete remote file</string> |  | ||||||
|     <string name="download">Download</string> |  | ||||||
|     <string name="delete_local_file">Delete local file</string> |  | ||||||
|     <string name="youre_doing_it_wrong">You\'re doing it wrong</string> |  | ||||||
|     <string name="todo_start_refresh">TODO: start refresh</string> |  | ||||||
|     <string name="todo_start_upload">TODO: start upload</string> |  | ||||||
|     <string name="todo_start_remote_deletion">TODO: start remote deletion</string> |  | ||||||
|     <string name="todo_start_download">TODO: start download</string> |  | ||||||
|     <string name="todo_start_local_deletion">TODO: start local deletion</string> |  | ||||||
|     <string name="todo_operation_finished_in_success">TODO: operation finished in success</string> |  | ||||||
|     <string name="todo_operation_finished_in_fail">TODO: operation finished in fail</string> |  | ||||||
|     <string name="upload_folder_path">to_upload</string> |  | ||||||
|     <string name="download_folder_path">downloaded</string> |  | ||||||
|     <string name="error_copying_sample_file">Sample file could not be saved in temporal folder; upload will not work</string> |  | ||||||
|     <string name="sample_file_name">oc_sample.png</string> |  | ||||||
|     <string name="sample_file_mimetype">image/png</string> |  | ||||||
|     <string name="error_deleting_local_file">Downloaded file could not be deleted</string> |  | ||||||
| </resources> |  | ||||||
| @ -1,39 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!--  ownCloud Android Library is available under MIT license |  | ||||||
|    Copyright (C) 2016 ownCloud GmbH. |  | ||||||
|      |  | ||||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
|    of this software and associated documentation files (the "Software"), to deal |  | ||||||
|    in the Software without restriction, including without limitation the rights |  | ||||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
|    copies of the Software, and to permit persons to whom the Software is |  | ||||||
|    furnished to do so, subject to the following conditions: |  | ||||||
|     |  | ||||||
|    The above copyright notice and this permission notice shall be included in |  | ||||||
|    all copies or substantial portions of the Software. |  | ||||||
|     |  | ||||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,  |  | ||||||
|    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  |  | ||||||
|    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS  |  | ||||||
|    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  |  | ||||||
|    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  |  | ||||||
|    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
|    THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
|  --> |  | ||||||
| 
 |  | ||||||
| <resources xmlns:android="http://schemas.android.com/apk/res/android"> |  | ||||||
| 
 |  | ||||||
|     <style name="ButtonStyle" parent="@android:style/Widget.Button"> |  | ||||||
|         <item name="android:layout_width">120dp</item> |  | ||||||
|         <item name="android:layout_height">wrap_content</item> |  | ||||||
|         <item name="android:textSize">12sp</item> |  | ||||||
|     </style> |  | ||||||
| 
 |  | ||||||
|     <style name="ProgressStyle" parent="@android:style/Widget.TextView"> |  | ||||||
|         <item name="android:layout_width">wrap_content</item> |  | ||||||
|         <item name="android:layout_height">wrap_content</item> |  | ||||||
|         <item name="android:textSize">12sp</item> |  | ||||||
|     </style> |  | ||||||
| </resources> |  | ||||||
| @ -1,2 +1 @@ | |||||||
| include ':owncloudComLibrary' | include ':owncloudComLibrary' | ||||||
| include ':sample_client' |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user