From: Andy Scherzinger Date: Mon, 2 Nov 2015 13:17:31 +0000 (+0100) Subject: Merge branch 'material_buttons' of https://github.com/owncloud/android into beta X-Git-Tag: beta-20151122~51 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/37d67265bd60a76f350a9941d8f59cdd82d38603?ds=inline;hp=-c Merge branch 'material_buttons' of https://github.com/owncloud/android into beta Conflicts: src/com/owncloud/android/ui/adapter/FileListListAdapter.java --- 37d67265bd60a76f350a9941d8f59cdd82d38603 diff --combined res/layout/list_item.xml index 754fd9e8,a72bdafa..17b098aa --- a/res/layout/list_item.xml +++ b/res/layout/list_item.xml @@@ -81,7 -81,7 +81,7 @@@ android:ellipsize="middle" android:singleLine="true" android:text="TextView" - android:textColor="#303030" + android:textColor="@color/textColor" android:textSize="@dimen/two_line_primary_text_size" /> @@@ -109,11 -109,11 +109,11 @@@ android:textSize="@dimen/two_line_secondary_text_size"/> diff --combined res/values-cs-rCZ/strings.xml index 88f7b5b7,7bf04297..82845668 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@@ -79,6 -79,7 +79,7 @@@ Vytvořen: Upraven: Stáhnout + Synchronizovat Soubor byl v průběhu odesílání přejmenován na %1$s Náhled seznamu Sdílet odkaz @@@ -86,6 -87,7 +87,7 @@@ Ano Ne OK + Zrušit synchronizaci Zrušit Uložit a ukončit Chyba @@@ -195,11 -197,11 +197,11 @@@ Odebrat z oblíbených Přejmenovat Odstranit - Opravdu chcete odstranit %1$s ? + Opravdu chcete odstranit %1$s ? Opravdu chcete odstranit %1$s a jeho obsah? Pouze místní Pouze místní - Ze serveru + Ze serveru Vzdálený & místní Úspěšně odstraněno Odstranění nelze dokončit @@@ -312,6 -314,7 +314,7 @@@ správce systému.Okamžitá odesílání Zabezpečení Cesta pro nahrávání videí + Synchronizaci adresáře %1$s nelze dokončit sdílené s vámi %1$s s vámi sdílí \"%2$s\" diff --combined res/values-fi-rFI/strings.xml index 873055e1,59dc4685..1e61d6d2 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@@ -79,6 -79,7 +79,7 @@@ Luotu: Muokattu: Lataa + Synkronoi Tiedoston nimeksi muutettiin %1$s siirron yhteydessä Luettelon asettelu Jaa linkki @@@ -86,6 -87,7 +87,7 @@@ Kyllä Ei OK + Peru synkronointi Peru Tallenna ja poistu Virhe @@@ -187,11 -189,11 +189,11 @@@ Poista suosikeista Nimeä uudelleen Poista - Haluatko varmasti poistaa kohteen %1$s? + Haluatko varmasti poistaa kohteen %1$s? Haluatko varmasti poistaa kohteen %1$s ja sen sisällön? Vain paikallinen Vain paikallinen - Palvelimelta + Palvelimelta Etä ja paikallinen Poistettu onnistuneesti Poistamista ei voitu suorittaa loppuun asti @@@ -293,6 -295,7 +295,7 @@@ Tätä tiedostoa tai kansiota kopioitaessa tapahtui virhe Välittömät lähetykset Tietoturva + Kansion %1$s synkronointia ei voitu suorittaa kokonaan jaettu kanssasi %1$s jakoi kohteen \"%2$s\" kanssasi diff --combined res/values-fr/strings.xml index f8a303ab,0fae7cfc..6bf6d4f4 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@@ -80,6 -80,7 +80,7 @@@ Téléchargez-le ici : %2$sCréé le : Modifié le : Télécharger + Synchroniser Le fichier a été renommé en %s pendant le téléversement Affichage en liste Partager le lien @@@ -87,6 -88,7 +88,7 @@@ Oui Non OK + Annuler la synchronisation Annuler Sauvegarder & Quitter Erreur @@@ -201,11 -203,11 +203,11 @@@ Ci-dessous la liste des fichiers locaux Retirer des favoris Renommer Supprimer - Voulez-vous vraiment supprimer %1$s ? + Voulez-vous vraiment supprimer %1$s ? Voulez-vous vraiment supprimer %1$s et son contenu ? Local seulement Local seulement - Depuis le serveur + Depuis le serveur Distant & local Suppression effectuée avec succès Suppression impossible @@@ -317,6 -319,7 +319,7 @@@ Téléversement immédiat Sécurité Répertoire de téléversement des vidéos + La synchronisation du dossier %1$s n\'a pas pu être terminée a partagé avec vous %1$s a partagé \"%2$s\" avec vous diff --combined res/values-it/strings.xml index 815e82f3,09f47c2d..b1c227ad --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@@ -79,6 -79,7 +79,7 @@@ Creato: Modificato: Scarica + Sincronizza Il file è stato rinominato in %1$s durante il caricamento Struttura elenco Condividi collegamento @@@ -86,6 -87,7 +87,7 @@@ Sì No OK + Annulla sincronizzazione Annulla Salva ed esci Errore @@@ -196,11 -198,11 +198,11 @@@ Rimuovi dai preferiti Rinomina Rimuovi - Vuoi davvero rimuovere %1$s? + Vuoi davvero rimuovere %1$s? Vuoi davvero rimuovere %1$s e il suo contenuto? Solo localmente Solo locale - Dal server + Dal server Remota e locale Rimozione effettuata con successo La rimozione non può essere completata @@@ -313,6 -315,7 +315,7 @@@ Caricamenti istantanei Protezione Percorso di caricamento video + La sincronizzazione della cartella %1$s non può essere completata condiviso con te %1$s ha condiviso \"%2$s\" con te diff --combined res/values-nl/strings.xml index 3ff8c607,8214dfdd..8e16089a --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@@ -80,6 -80,7 +80,7 @@@ Download hier: %2$sAangemaakt: Aangepast: Download + Synchroniseren Bestand is tijdens het uploaden hernoemd naar %1$s Lijst layout Deel link @@@ -87,6 -88,7 +88,7 @@@ Ja Nee OK + Annuleren synchronisatie Annuleren Opslaan & Afsluiten Fout @@@ -199,11 -201,11 +201,11 @@@ Hieronder staan de lokale bestanden en Niet meer favoriet Hernoemen Verwijderen - Wilt u %1$s werkelijk verwijderen? + Wilt u %1$s werkelijk verwijderen? Wilt u %1$s en de inhoud ervan werkelijk verwijderen? Alleen lokaal Alleen lokaal - Van server + Van server Extern & lokaal Succesvol verwijderd Verwijdering kon niet voltooid worden @@@ -316,6 -318,7 +318,7 @@@ Directe uploads Beveiliging Upload Video Pad + Synchronisatie van map %1$s kon niet worden voltooid gedeeld met u %1$s deelde \"%2$s\" met u diff --combined res/values-pt-rBR/strings.xml index 0e97855e,f2e6f04c..43e87a49 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@@ -79,6 -79,7 +79,7 @@@ Criado: Modificado: Baixar + Sincronizar Arquivo foi renomeado para %1$s durante o envio Lista de Layout Compartilhar link @@@ -86,6 -87,7 +87,7 @@@ Sim Não OK + Cancelar a sincronização Cancelar Salvar & Sair Erro @@@ -196,11 -198,11 +198,11 @@@ Nãofavorito Renomear Remover - Você realmente deseja remover %1$s? + Você realmente deseja remover %1$s? Você realmente deseja remover %1$s e seus conteúdos? Somente local Somente local - Do servidor + Do servidor Remoto & local Removido com sucesso Erro ao remover @@@ -313,6 -315,7 +315,7 @@@ Envios Instantâneos Segurança Enviar o Caminho do Vídeo + A sincronização da pasta %1$s não pode ser finalizada compartilhado com você %1$s compartilhado \"%2$s\" com você diff --combined res/values-pt-rPT/strings.xml index 9541e2c6,89f42ac2..8cf3e43d --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@@ -79,6 -79,7 +79,7 @@@ Criado: Modificado: Transferir + Sincronizar O ficheiro foi renomeado para %1$s durante o envio. Apresentação da Lista Partilhar a hiperligação @@@ -86,6 -87,7 +87,7 @@@ Sim Não ACEITAR + Cancelar sincronização Cancelar Guardar & Sair Erro @@@ -195,11 -197,11 +197,11 @@@ Retirar Favorito Renomear Remover - Tem a certeza que deseja remover %1$s ? + Tem a certeza que deseja remover %1$s ? Deseja realmente remover %1$s e o seu conteúdo? Apenas localmente Apenas localmente - Do servidor + Do servidor Remoto & local Removido com sucesso Não foi possível remover @@@ -311,6 -313,7 +313,7 @@@ Envios Instantâneos Segurança Envio do Caminho do Vídeo + Não foi possível completar a sincronização da pasta %1$s partilhado consigo %1$s partilhou \"%2$s\" consigo diff --combined src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 40372e38,e9e96145..836ecccc --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@@ -25,19 -25,12 +25,19 @@@ package com.owncloud.android.ui.adapter import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.Vector; import android.accounts.Account; import android.content.Context; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; import android.os.Build; import android.preference.PreferenceManager; import android.text.format.DateUtils; @@@ -86,8 -79,6 +86,8 @@@ public class FileListListAdapter extend private enum ViewType {LIST_ITEM, GRID_IMAGE, GRID_ITEM }; private SharedPreferences mAppPreferences; + + private HashMap mSelection = new HashMap(); public FileListListAdapter( boolean justFolders, @@@ -163,7 -154,7 +163,7 @@@ ViewType viewType; if (!mGridMode){ viewType = ViewType.LIST_ITEM; - } else if (file.isImage()){ + } else if (file.isImage() || file.isVideo()){ viewType = ViewType.GRID_IMAGE; } else { viewType = ViewType.GRID_ITEM; @@@ -202,37 -193,38 +202,37 @@@ switch (viewType){ case LIST_ITEM: - TextView fileSizeV = (TextView) view.findViewById(R.id.file_size); + TextView fileSizeV = (TextView) view.findViewById(R.id.last_size); TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator); - TextView lastModV = (TextView) view.findViewById(R.id.last_mod); + TextView lastModV = (TextView) view.findViewById(R.id.file_mod); - ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox); + lastModV.setVisibility(View.VISIBLE); lastModV.setText(showRelativeTimestamp(file)); - checkBoxV.setVisibility(View.GONE); fileSizeSeparatorV.setVisibility(View.VISIBLE); fileSizeV.setVisibility(View.VISIBLE); fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength())); - if (!file.isFolder()) { - AbsListView parentList = (AbsListView)parent; - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) { - checkBoxV.setVisibility(View.GONE); - } else { - if (parentList.isItemChecked(position)) { - checkBoxV.setImageResource( - R.drawable.ic_checkbox_marked); - } else { - checkBoxV.setImageResource( - R.drawable.ic_checkbox_blank_outline); - } - checkBoxV.setVisibility(View.VISIBLE); - } - } - - } else { //Folder +// if (!file.isFolder()) { +// AbsListView parentList = (AbsListView)parent; +// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { +// if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) { +// checkBoxV.setVisibility(View.GONE); +// } else { +// if (parentList.isItemChecked(position)) { +// checkBoxV.setImageResource( +// R.drawable.ic_checkbox_marked); +// } else { +// checkBoxV.setImageResource( +// R.drawable.ic_checkbox_blank_outline); +// } +// checkBoxV.setVisibility(View.VISIBLE); +// } +// } + + if (file.isFolder()) { fileSizeSeparatorV.setVisibility(View.INVISIBLE); fileSizeV.setVisibility(View.INVISIBLE); } @@@ -316,25 -308,6 +316,25 @@@ break; } + + ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox); + checkBoxV.setVisibility(View.GONE); + + AbsListView parentList = (AbsListView)parent; + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) { + checkBoxV.setVisibility(View.GONE); + } else if (parentList.getCheckedItemCount() > 0){ + 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); + } + } // For all Views @@@ -348,18 -321,13 +348,18 @@@ // No Folder if (!file.isFolder()) { - if (file.isImage() && file.getRemoteId() != null){ + if ((file.isImage() || file.isVideo()) && file.getRemoteId() != null){ // Thumbnail in Cache? Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache( - String.valueOf(file.getRemoteId()) - ); + "t" + String.valueOf(file.getRemoteId())); if (thumbnail != null && !file.needsUpdateThumbnail()){ - fileIcon.setImageBitmap(thumbnail); + + if (file.isVideo()) { + Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail); + fileIcon.setImageBitmap(withOverlay); + } else { + fileIcon.setImageBitmap(thumbnail); + } } else { // generate new Thumbnail if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) { @@@ -377,7 -345,7 +377,7 @@@ task ); fileIcon.setImageDrawable(asyncDrawable); - task.execute(file); + task.execute(file, true); } } @@@ -400,12 -368,6 +400,12 @@@ } } + if (mSelection.get(position) != null) { + view.setBackgroundColor(Color.rgb(248, 248, 248)); + } else { + view.setBackgroundColor(Color.WHITE); + } + return view; } @@@ -432,14 -394,15 +432,14 @@@ * mStorageManager if is different (and not NULL) */ public void swapDirectory(OCFile directory, FileDataStorageManager updatedStorageManager - /*, boolean onlyOnDevice*/) { + , boolean onlyOnDevice) { mFile = directory; if (updatedStorageManager != null && updatedStorageManager != mStorageManager) { mStorageManager = updatedStorageManager; mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext); } if (mStorageManager != null) { - // TODO Enable when "On Device" is recovered ? - mFiles = mStorageManager.getFolderContent(mFile/*, onlyOnDevice*/); + mFiles = mStorageManager.getFolderContent(mFile, onlyOnDevice); mFilesOrig.clear(); mFilesOrig.addAll(mFiles); @@@ -450,7 -413,7 +450,7 @@@ mFiles = null; } - mFiles = FileStorageUtils.sortFolder(mFiles); + mFiles = FileStorageUtils.sortOcFolder(mFiles); notifyDataSetChanged(); } @@@ -497,7 -460,7 +497,7 @@@ FileStorageUtils.mSortAscending = ascending; - mFiles = FileStorageUtils.sortFolder(mFiles); + mFiles = FileStorageUtils.sortOcFolder(mFiles); notifyDataSetChanged(); } @@@ -510,45 -473,4 +510,45 @@@ public void setGridMode(boolean gridMode) { mGridMode = gridMode; } + + public boolean isGridMode() { + return mGridMode; + } + + public void setNewSelection(int position, boolean checked) { + mSelection.put(position, checked); + notifyDataSetChanged(); + } + + public void removeSelection(int position) { + mSelection.remove(position); + notifyDataSetChanged(); + } + + public void removeSelection(){ + mSelection.clear(); + notifyDataSetChanged(); + } + + public ArrayList getCheckedItemPositions() { + ArrayList ids = new ArrayList(); + + for (Map.Entry entry : mSelection.entrySet()){ + if (entry.getValue()){ + ids.add(entry.getKey()); + } + } + return ids; + } + + public ArrayList getCheckedItems() { + ArrayList files = new ArrayList(); + + for (Map.Entry entry : mSelection.entrySet()){ + if (entry.getValue()){ + files.add((OCFile) getItem(entry.getKey())); + } + } + return files; + } } diff --combined src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java index af3bdf0a,54705dab..a72a0ef3 --- a/src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java @@@ -25,9 -25,7 +25,9 @@@ import java.util.Arrays import java.util.Comparator; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@@ -43,7 -41,6 +43,7 @@@ import com.owncloud.android.lib.common. import com.owncloud.android.utils.BitmapUtils; import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.MimetypeIconUtil; +import com.owncloud.android.utils.FileStorageUtils; /** * This Adapter populates a ListView with all files and directories contained @@@ -56,18 -53,9 +56,18 @@@ public class LocalFileListAdapter exten private Context mContext; private File mDirectory; private File[] mFiles = null; + private SharedPreferences mAppPreferences; public LocalFileListAdapter(File directory, Context context) { mContext = context; + + mAppPreferences = PreferenceManager + .getDefaultSharedPreferences(mContext); + + // Read sorting order, default to sort by name ascending + FileStorageUtils.mSortOrder = mAppPreferences.getInt("sortOrder", 0); + FileStorageUtils.mSortAscending = mAppPreferences.getBoolean("sortAscending", true); + swapDirectory(directory); } @@@ -132,9 -120,9 +132,9 @@@ } fileIcon.setTag(file.hashCode()); - TextView fileSizeV = (TextView) view.findViewById(R.id.file_size); + TextView fileSizeV = (TextView) view.findViewById(R.id.last_size); TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator); - TextView lastModV = (TextView) view.findViewById(R.id.last_mod); + TextView lastModV = (TextView) view.findViewById(R.id.file_mod); ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox); if (!file.isDirectory()) { fileSizeSeparatorV.setVisibility(View.VISIBLE); @@@ -245,23 -233,7 +245,23 @@@ } }); + + mFiles = FileStorageUtils.sortLocalFolder(mFiles); } notifyDataSetChanged(); } + + public void setSortOrder(Integer order, boolean ascending) { + SharedPreferences.Editor editor = mAppPreferences.edit(); + editor.putInt("sortOrder", order); + editor.putBoolean("sortAscending", ascending); + editor.commit(); + + FileStorageUtils.mSortOrder = order; + FileStorageUtils.mSortAscending = ascending; + + mFiles = FileStorageUtils.sortLocalFolder(mFiles); + notifyDataSetChanged(); + + } }