Browse Source

Merge branch 'develop' into add_user_agent_support

masensio 10 years ago
parent
commit
b22e231909

+ 2 - 0
res/values-ca/strings.xml

@@ -270,8 +270,10 @@
   <string name="downloader_download_file_not_found">El fitxer ja no està disponible en el servidor</string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_add_account">Afegeix compte</string>
+  <string name="log_progress_dialog_text">Carregant dades...</string>
   <string name="saml_authentication_required_text">Es requereix autenticació</string>
   <string name="saml_authentication_wrong_pass">Contrasenya incorrecta</string>
+  <string name="actionbar_move">Moure</string>
   <string name="folder_picker_choose_button_text">Escull</string>
   <string name="prefs_category_security">Seguretat</string>
 </resources>

+ 2 - 0
res/values-es/strings.xml

@@ -261,6 +261,8 @@
   <string name="share_link_file_error">Ocurrió un error al tratar de compartir este archivo o carpeta</string>
   <string name="unshare_link_file_no_exist">No se puede dejar de compartir. Revise si el archivo existe</string>
   <string name="unshare_link_file_error">Ocurrió un error al tratar de ya no compartir este archivo o carpeta</string>
+  <string name="share_link_password_title">Introduzca una contraseña</string>
+  <string name="share_link_empty_password">Debe introducir una contraseña</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar enlace</string>
   <string name="clipboard_text_copied">Copiado al portapapeles</string>

+ 2 - 2
res/values-gl/strings.xml

@@ -168,9 +168,9 @@ Descárgueo de aquí: %2$s</string>
   <string name="auth_unknown_error_title">Produciuse un erro descoñecido!</string>
   <string name="auth_unknown_host_title">Non foi posíbel atopar a máquina</string>
   <string name="auth_incorrect_path_title">Non se atopou unha instancia do servidor</string>
-  <string name="auth_timeout_title">O servidor tardou demasiado en responder</string>
+  <string name="auth_timeout_title">O servidor tardou de máis en responder</string>
   <string name="auth_incorrect_address_title">URL incorrecto</string>
-  <string name="auth_ssl_general_error_title">Produciuse un fallo ao iniciar o SSL</string>
+  <string name="auth_ssl_general_error_title">Produciuse un fallo ao preparar o SSL</string>
   <string name="auth_ssl_unverified_server_title">Non foi posíbel verificar a identidade do servidor SSL</string>
   <string name="auth_bad_oc_version_title">Versión do servidor non recoñecida</string>
   <string name="auth_wrong_connection_title">Non é posíbel estabelecer a conexión</string>

+ 8 - 0
res/values-ia/strings.xml

@@ -9,23 +9,31 @@
     	<item>Biggest - Smallest</item>-->
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Plus</string>
+  <string name="prefs_accounts">Contos</string>
+  <string name="prefs_log_delete_history_button">Deler historia</string>
   <string name="prefs_help">Adjuta</string>
   <string name="auth_username">Nomine de usator</string>
   <string name="auth_password">Contrasigno</string>
   <string name="sync_string_files">Files</string>
   <string name="setup_btn_connect">Connecte</string>
   <string name="uploader_btn_upload_text">Incargar</string>
+  <string name="uploader_wrn_no_account_title">Nulle contos trovate</string>
   <string name="file_list_seconds_ago">secundas passate</string>
   <string name="file_list_empty">Nihil hic. Incarga alcun cosa!</string>
+  <string name="file_list_folder">dossier</string>
+  <string name="filedetails_size">Dimension:</string>
+  <string name="filedetails_type">Typo:</string>
   <string name="filedetails_download">Discargar</string>
   <string name="action_share_file">Compartir ligamine</string>
   <string name="common_yes">Si</string>
   <string name="common_no">No</string>
   <string name="common_ok">Ok</string>
+  <string name="common_cancel_download">Cancellar discarga</string>
   <string name="common_cancel">Cancellar</string>
   <string name="common_error">Error</string>
   <string name="common_error_unknown">Error Incognite</string>
   <string name="change_password">Cambiar contrasigno</string>
+  <string name="delete_account">Deler conto</string>
   <string name="uploader_info_dirname">Nomine de dossier</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="empty"></string>

+ 4 - 0
res/values-nb-rNO/strings.xml

@@ -187,6 +187,7 @@
   <string name="auth_fail_get_user_name">Tjeneren din svarer ikke med korrekt bruker-ID, vennligst ta kontakt med en administrator
 	</string>
   <string name="auth_can_not_auth_against_server">Kan ikke autentisere mot denne serveren</string>
+  <string name="auth_account_does_not_exist">Kontoen eksisterer ikke på enheten enda</string>
   <string name="fd_keep_in_sync">Hold filen oppdatert</string>
   <string name="common_rename">Endre navn</string>
   <string name="common_remove">Fjern</string>
@@ -260,6 +261,8 @@
   <string name="share_link_file_error">Det skjedde en feil under deling av denne filen eller mappen</string>
   <string name="unshare_link_file_no_exist">Kan ikke fjerne deling. Sjekk om filen eksisterer.</string>
   <string name="unshare_link_file_error">En feil oppstod ved avslutting av delingen av denne filen eller mappen</string>
+  <string name="share_link_password_title">Skriv inn ett passord</string>
+  <string name="share_link_empty_password">Du må skrive inn ett passord</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="copy_link">Kopier lenke</string>
   <string name="clipboard_text_copied">Kopiert til utklippstavlen</string>
@@ -299,4 +302,5 @@
   <string name="prefs_category_security">Sikkerhet</string>
   <string name="prefs_instant_video_upload_path_title">Sti til video-opplasting</string>
   <string name="download_folder_failed_content">Nedlasting av %1$s mappen kunne ikke fullføres</string>
+  <string name="subject_token">%1$s har delt \"%2$s\" med deg</string>
 </resources>

+ 4 - 0
res/values-uk/strings.xml

@@ -187,6 +187,7 @@
   <string name="auth_fail_get_user_name">Ваш сервер не повертає коректний ідентифікатор користувача, будь ласка зверніться до адміністратора
 ⇥</string>
   <string name="auth_can_not_auth_against_server">Аутентифікація на цьому сервері неможлива</string>
+  <string name="auth_account_does_not_exist">Користвача в пристрої не існуе</string>
   <string name="fd_keep_in_sync">Оновлювати файл</string>
   <string name="common_rename">Перейменувати</string>
   <string name="common_remove">Видалити</string>
@@ -259,6 +260,8 @@
   <string name="share_link_file_error">Виникла помилка при спробі поділитися файлом або текою</string>
   <string name="unshare_link_file_no_exist">Неможливо заборонити доступ. Будь ласка, перевірте, чи існує файл</string>
   <string name="unshare_link_file_error">Виникла помилка при спробі заборонити доступ до файлу або теки</string>
+  <string name="share_link_password_title">Ввести пароль</string>
+  <string name="share_link_empty_password">Ви повинні ввести пароль</string>
   <string name="activity_chooser_send_file_title">Надіслати</string>
   <string name="copy_link">Копіювати посилання</string>
   <string name="clipboard_text_copied">Скопійовано в буфер обміну</string>
@@ -298,4 +301,5 @@
   <string name="prefs_category_security">Безпека</string>
   <string name="prefs_instant_video_upload_path_title">Шлях завантаження відео</string>
   <string name="download_folder_failed_content">Скачування теки %1$s не може бути завершено</string>
+  <string name="subject_token">%1$s розшарено \"%2$s\" з вами</string>
 </resources>

+ 28 - 16
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -30,6 +30,7 @@ import android.accounts.Account;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.graphics.Bitmap;
+import android.os.Build;
 import android.preference.PreferenceManager;
 import android.text.format.DateUtils;
 import android.view.LayoutInflater;
@@ -37,7 +38,6 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AbsListView;
 import android.widget.BaseAdapter;
-import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.ListAdapter;
 import android.widget.TextView;
@@ -196,15 +196,19 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 
                     if (!file.isFolder()) {
                         AbsListView parentList = (AbsListView)parent;
-                        if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {
-                            checkBoxV.setVisibility(View.GONE);
-                        } else {
-                            if (parentList.isItemChecked(position)) {
-                                checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
+                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+                            if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {
+                                checkBoxV.setVisibility(View.GONE);
                             } else {
-                                checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
+                                if (parentList.isItemChecked(position)) {
+                                    checkBoxV.setImageResource(
+                                            android.R.drawable.checkbox_on_background);
+                                } else {
+                                    checkBoxV.setImageResource(
+                                            android.R.drawable.checkbox_off_background);
+                                }
+                                checkBoxV.setVisibility(View.VISIBLE);
                             }
-                            checkBoxV.setVisibility(View.VISIBLE);
                         }
 
                     } else { //Folder
@@ -230,15 +234,21 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                     // local state
                     ImageView localStateView = (ImageView) view.findViewById(R.id.localFileIndicator);
                     localStateView.bringToFront();
-                    FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();
-                    FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();
-                    boolean downloading = (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file));
-                    OperationsServiceBinder opsBinder = mTransferServiceGetter.getOperationsServiceBinder();
-                    downloading |= (opsBinder != null && opsBinder.isSynchronizing(mAccount, file.getRemotePath()));
+                    FileDownloaderBinder downloaderBinder =
+                            mTransferServiceGetter.getFileDownloaderBinder();
+                    FileUploaderBinder uploaderBinder =
+                            mTransferServiceGetter.getFileUploaderBinder();
+                    boolean downloading = (downloaderBinder != null &&
+                            downloaderBinder.isDownloading(mAccount, file));
+                    OperationsServiceBinder opsBinder =
+                            mTransferServiceGetter.getOperationsServiceBinder();
+                    downloading |= (opsBinder != null &&
+                            opsBinder.isSynchronizing(mAccount, file.getRemotePath()));
                     if (downloading) {
                         localStateView.setImageResource(R.drawable.downloading_file_indicator);
                         localStateView.setVisibility(View.VISIBLE);
-                    } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file)) {
+                    } else if (uploaderBinder != null &&
+                            uploaderBinder.isUploading(mAccount, file)) {
                         localStateView.setImageResource(R.drawable.uploading_file_indicator);
                         localStateView.setVisibility(View.VISIBLE);
                     } else if (file.isDown()) {
@@ -250,7 +260,8 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 
                     // share with me icon
                     if (!file.isFolder()) {
-                        ImageView sharedWithMeIconV = (ImageView) view.findViewById(R.id.sharedWithMeIcon);
+                        ImageView sharedWithMeIconV = (ImageView)
+                                view.findViewById(R.id.sharedWithMeIcon);
                         sharedWithMeIconV.bringToFront();
                         if (checkIfFileIsSharedWithMe(file)) {
                             sharedWithMeIconV.setVisibility(View.VISIBLE);
@@ -302,7 +313,8 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                         }
                     }
                 } else {
-                    fileIcon.setImageResource(DisplayUtils.getFileTypeIconId(file.getMimetype(), file.getFileName()));
+                    fileIcon.setImageResource(DisplayUtils.getFileTypeIconId(file.getMimetype(),
+                            file.getFileName()));
                 }
             } else {
                 // Folder

+ 0 - 2
src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java

@@ -40,8 +40,6 @@ import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.utils.BitmapUtils;
 import com.owncloud.android.utils.DisplayUtils;
 
-import third_parties.in.srain.cube.GridViewWithHeaderAndFooter;
-
 /**
  * This Adapter populates a ListView with all files and directories contained
  * in a local directory

+ 22 - 12
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -22,7 +22,7 @@ package com.owncloud.android.ui.fragment;
 
 import java.util.ArrayList;
 
-import android.content.Context;
+import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.view.LayoutInflater;
@@ -33,6 +33,7 @@ import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.GridView;
 import android.widget.ListAdapter;
+import android.widget.ListView;
 import android.widget.TextView;
 
 import com.actionbarsherlock.app.SherlockFragment;
@@ -80,10 +81,14 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
 
     private ListAdapter mAdapter;
 
-
     protected void setListAdapter(ListAdapter listAdapter) {
         mAdapter = listAdapter;
-        mCurrentListView.setAdapter(listAdapter);
+        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+            mCurrentListView.setAdapter(listAdapter);
+        } else {
+            ((ListView)mCurrentListView).setAdapter(listAdapter);
+        }
+
         mCurrentListView.invalidate();
     }
 
@@ -216,7 +221,8 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
      */
     protected int getReferencePosition() {
         if (mCurrentListView != null) {
-            return (mCurrentListView.getFirstVisiblePosition() + mCurrentListView.getLastVisiblePosition()) / 2;
+            return (mCurrentListView.getFirstVisiblePosition() +
+                    mCurrentListView.getLastVisiblePosition()) / 2;
         } else {
             return 0;
         }
@@ -234,7 +240,8 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
             final int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
             int top = mTops.remove(mTops.size() - 1);
 
-            Log_OC.v(TAG, "Setting selection to position: " + firstPosition + "; top: " + top + "; index: " + index);
+            Log_OC.v(TAG, "Setting selection to position: " + firstPosition + "; top: "
+                    + top + "; index: " + index);
 
             if (mCurrentListView == mListView) {
                 if (mHeightCell*index <= mListView.getHeight()) {
@@ -331,8 +338,8 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
 
     private void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
         // Colors in animations: background
-        refreshLayout.setColorScheme(R.color.background_color, R.color.background_color, R.color.background_color,
-                R.color.background_color);
+        refreshLayout.setColorScheme(R.color.background_color, R.color.background_color,
+                R.color.background_color, R.color.background_color);
 
         refreshLayout.setOnRefreshListener(this);
     }
@@ -348,10 +355,13 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
         }
     }
 
-
     protected void setChoiceMode(int choiceMode) {
-        mListView.setChoiceMode(choiceMode);
-        mGridView.setChoiceMode(choiceMode);
+        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+            mListView.setChoiceMode(choiceMode);
+            mGridView.setChoiceMode(choiceMode);
+        } else {
+            ((ListView)mListView).setChoiceMode(choiceMode);
+        }
     }
 
     protected void registerForContextMenu() {
@@ -386,8 +396,8 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
             mListFooterView.invalidate();
 
         } else {
-            mGridView.removeFooterView(mGridFooterView);
-            mListView.removeFooterView(mListFooterView);
+//            mGridView.removeFooterView(mGridFooterView);
+//            mListView.removeFooterView(mListFooterView);
         }
     }
 

+ 16 - 9
src/com/owncloud/android/ui/fragment/LocalFileListFragment.java

@@ -64,7 +64,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
         try {
             mContainerActivity = (ContainerActivity) activity;
         } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString() + " must implement " + LocalFileListFragment.ContainerActivity.class.getSimpleName());
+            throw new ClassCastException(activity.toString() + " must implement " +
+                    LocalFileListFragment.ContainerActivity.class.getSimpleName());
         }
     }
     
@@ -99,7 +100,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
     }
     
     /**
-     * Checks the file clicked over. Browses inside if it is a directory. Notifies the container activity in any case.
+     * Checks the file clicked over. Browses inside if it is a directory.
+     * Notifies the container activity in any case.
      */
     @Override
     public void onItemClick(AdapterView<?> l, View v, int position, long id) {
@@ -117,7 +119,7 @@ public class LocalFileListFragment extends ExtendedListFragment {
             } else {    /// Click on a file
                 ImageView checkBoxV = (ImageView) v.findViewById(R.id.custom_checkbox);
                 if (checkBoxV != null) {
-                    if (getListView().isItemChecked(position)) {
+                    if (((ListView)getListView()).isItemChecked(position)) {
                         checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
                     } else {
                         checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
@@ -182,7 +184,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
             if(mDirectory != null){
                 directory = mDirectory;
             } else {
-                directory = Environment.getExternalStorageDirectory();  // TODO be careful with the state of the storage; could not be available
+                directory = Environment.getExternalStorageDirectory();
+                // TODO be careful with the state of the storage; could not be available
                 if (directory == null) return; // no files to show
             }
         }
@@ -194,7 +197,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
             directory = directory.getParentFile();
         }
 
-        mCurrentListView.clearChoices();   // by now, only files in the same directory will be kept as selected
+        // by now, only files in the same directory will be kept as selected
+        ((ListView)mCurrentListView).clearChoices();
         mAdapter.swapDirectory(directory);
         if (mDirectory == null || !mDirectory.equals(directory)) {
             mCurrentListView.setSelection(0);
@@ -210,11 +214,12 @@ public class LocalFileListFragment extends ExtendedListFragment {
      */
     public String[] getCheckedFilePaths() {
         ArrayList<String> result = new ArrayList<String>();
-        SparseBooleanArray positions = mCurrentListView.getCheckedItemPositions();
+        SparseBooleanArray positions = ((ListView)mCurrentListView).getCheckedItemPositions();
         if (positions.size() > 0) {
             for (int i = 0; i < positions.size(); i++) {
                 if (positions.get(positions.keyAt(i)) == true) {
-                    result.add(((File) mCurrentListView.getItemAtPosition(positions.keyAt(i))).getAbsolutePath());
+                    result.add(((File) mCurrentListView.getItemAtPosition(
+                            positions.keyAt(i))).getAbsolutePath());
                 }
             }
 
@@ -237,7 +242,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
         public void onDirectoryClick(File directory);
         
         /**
-         * Callback method invoked when a file (non directory) is clicked by the user on the files list
+         * Callback method invoked when a file (non directory)
+         * is clicked by the user on the files list
          *  
          * @param file
          */
@@ -245,7 +251,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
         
         
         /**
-         * Callback method invoked when the parent activity is fully created to get the directory to list firstly.
+         * Callback method invoked when the parent activity
+         * is fully created to get the directory to list firstly.
          * 
          * @return  Directory to list firstly. Can be NULL.
          */