along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<manifest package="com.owncloud.android"
- android:versionCode="10700100"
- android:versionName="1.7.1" xmlns:android="http://schemas.android.com/apk/res/android">
+ android:versionCode="10700200"
+ android:versionName="1.7.2" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-sdk
- android:minSdkVersion="8"
+ android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
+## 1.7.2 (July 2015)
+- New navigation drawer
+- Improved Passcode
+- Automatic grid view just for folders full of images
+- More characters allowed in file names
+- Support for servers in same domain, different path
+- Bugs fixed:
+ + Frequent crashes in folder with several images
+ + Sync error in servers with huge quota and external storage enable
+ + Share by link error
+ + Some other crashes and minor bugs
## 1.7.1 (April 2015)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.owncloud.android.workaround.accounts"
- android:versionCode="0100023"
- android:versionName="1.0.23" >
+ android:versionCode="0100024"
+ android:versionName="1.0.24" >
<uses-sdk
android:minSdkVersion="16"
-Subproject commit f5fbca24becbb01660abe2a7013c1b536ea8a301
+Subproject commit 02c24c8a3bd87382590ece0e0744ad430718b51a
android:layout_height="wrap_content" android:orientation="vertical"
android:layout_width="wrap_content" android:background="#fefefe"
android:gravity="center">
- <TextView android:layout_width="fill_parent" android:text="@string/uploader_top_message"
- android:layout_height="wrap_content" android:id="@+id/drawer_username" android:textColor="@android:color/black"
- android:gravity="center_horizontal"></TextView>
+
+ <TextView android:layout_width="fill_parent"
+ android:text="@string/uploader_top_message"
+ android:layout_height="wrap_content"
+ android:id="@+id/drawer_username"
+ android:textColor="@android:color/black"
+ android:gravity="center_horizontal">
+ </TextView>
+
<FrameLayout android:layout_height="fill_parent"
- android:layout_width="fill_parent" android:id="@+id/frameLayout1"
- android:layout_below="@+id/drawer_username" android:layout_above="@+id/linearLayout1">
- <ListView android:id="@android:id/list" android:layout_width="fill_parent"
- android:layout_height="fill_parent" android:divider="@drawable/uploader_list_separator"
- android:dividerHeight="1dip"></ListView>
+ android:layout_width="fill_parent"
+ android:id="@+id/frameLayout1"
+ android:layout_below="@+id/drawer_username"
+ android:layout_above="@+id/linearLayout1">
+
+ <ListView android:id="@android:id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:divider="@drawable/uploader_list_separator"
+ android:dividerHeight="1dip">
+ </ListView>
+
</FrameLayout>
<LinearLayout
<TextView
android:text="TextView"
android:layout_width="fill_parent"
- android:id="@+id/drawer_username"
+ android:id="@+id/filename"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:layout_gravity="center_vertical"
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
- <!--TODO re-enable when server-side folder size calculation is available
- <item>Biggest - Smallest</item>-->
- <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
- <!--<string name="drawer_item_accounts">Accounts</string>-->
- <!--TODO re-enable when "On Device" is available
- <string name="drawer_item_on_device">On device</string>-->
- <string name="empty"></string>
-</resources>
<string name="uploader_info_uploading">Uploading</string>
<string name="file_list_seconds_ago">seconds ago</string>
<string name="file_list_empty">Nothing in here. Upload something!</string>
- <string name="file_list_loading">Loading...</string>
+ <string name="file_list_loading">Loading…</string>
<string name="local_file_list_empty">There are no files in this folder.</string>
- <string name="file_list_folder">folder</string>
- <string name="file_list_folders">folders</string>
- <string name="file_list_file">file</string>
- <string name="file_list_files">files</string>
<string name="filedetails_select_file">Tap on a file to display additional information.</string>
<string name="filedetails_size">Size:</string>
<string name="filedetails_type">Type:</string>
<string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
<string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
- <string name="empty"></string>
+ <string name="empty" />
<string name="forbidden_permissions">You do not have permission %s</string>
<string name="forbidden_permissions_rename">to rename this file</string>
<string name="common_error_out_memory">Not enough memory</string>
<string name="username">Username</string>
+
+ <string name="file_list__footer__folder">1 folder</string>
+ <string name="file_list__footer__folders">%1$d folders</string>
+ <string name="file_list__footer__file">1 file</string>
+ <string name="file_list__footer__file_and_folder">1 file, 1 folder</string>
+ <string name="file_list__footer__file_and_folders">1 file, %1$d folders</string>
+ <string name="file_list__footer__files">%1$d files</string>
+ <string name="file_list__footer__files_and_folder">%1$d files, 1 folder</string>
+ <string name="file_list__footer__files_and_folders">%1$d files, %2$d folders</string>
+
</resources>
/// choose the appropiate title
if (chosenFile == null) {
- // mFile determines the title
- inRoot = (mFile == null || mFile.getParentId() == 0);
- if (!inRoot) {
- title = mFile.getFileName();
- }
-
- } else if (chosenFile.getParentId() != 0){
- // chosenFile determines the title, instead of mFile
+ chosenFile = mFile; // if no file is passed, current file decides
+ }
+ inRoot = (
+ chosenFile == null ||
+ (chosenFile.isFolder() && chosenFile.getParentId() == FileDataStorageManager.ROOT_PARENT_ID)
+ );
+ if (!inRoot) {
title = chosenFile.getFileName();
- inRoot = false;
-
- } else{
- inRoot = true;
}
/// set the chosen title
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader;
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
public void onBackPressed() {
OCFileListFragment listOfFiles = getListOfFilesFragment();
if (mDualPane || getSecondFragment() == null) {
- if (getFile() != null && getFile().getParentId() == 0) {
+ OCFile currentDir = getCurrentDir();
+ if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
finish();
return;
}
data,
R.layout.uploader_list_item_layout,
new String[] {"dirname"},
- new int[] {R.id.textView1});
+ new int[] {R.id.filename});
mListView.setAdapter(sa);
Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder);
mParents.add("");
} else{
String[] dir_names = last_path.split("/");
+ mParents.clear();
for (String dir : dir_names)
mParents.add(dir);
}
}
private String generateFooterText(int filesCount, int foldersCount) {
- String output = "";
- if (filesCount > 0){
- if (filesCount == 1) {
- output = output + filesCount + " " + getResources().getString(R.string.file_list_file);
- } else {
- output = output + filesCount + " " + getResources().getString(R.string.file_list_files);
+ String output;
+ if (filesCount <= 0) {
+ if (foldersCount <= 0) {
+ output = "";
+
+ } else if (foldersCount == 1) {
+ output = getResources().getString(R.string.file_list__footer__folder);
+
+ } else { // foldersCount > 1
+ output = getResources().getString(R.string.file_list__footer__folders, foldersCount);
}
- }
- if (foldersCount > 0 && filesCount > 0){
- output = output + ", ";
- }
- if (foldersCount == 1) {
- output = output + foldersCount + " " + getResources().getString(R.string.file_list_folder);
- } else if (foldersCount > 1) {
- output = output + foldersCount + " " + getResources().getString(R.string.file_list_folders);
- }
+ } else if (filesCount == 1) {
+ if (foldersCount <= 0) {
+ output = getResources().getString(R.string.file_list__footer__file);
+
+ } else if (foldersCount == 1) {
+ output = getResources().getString(R.string.file_list__footer__file_and_folder);
+
+ } else { // foldersCount > 1
+ output = getResources().getString(R.string.file_list__footer__file_and_folders, foldersCount);
+ }
+ } else { // filesCount > 1
+ if (foldersCount <= 0) {
+ output = getResources().getString(R.string.file_list__footer__files, filesCount);
+
+ } else if (foldersCount == 1) {
+ output = getResources().getString(R.string.file_list__footer__files_and_folder, filesCount);
+
+ } else { // foldersCount > 1
+ output = getResources().getString(
+ R.string.file_list__footer__files_and_folders, filesCount, foldersCount
+ );
+
+ }
+ }
return output;
}