Przeglądaj źródła

Merge pull request #449 from nextcloud/designTweaks

Minor Usability improvements
Andy Scherzinger 8 lat temu
rodzic
commit
6f77ef8f4b
49 zmienionych plików z 436 dodań i 205 usunięć
  1. 57 0
      drawable_resources/ic_list_empty_create_folder.svg
  2. 58 0
      drawable_resources/ic_list_empty_folder.svg
  3. 57 0
      drawable_resources/ic_list_empty_upload.svg
  4. BIN
      res/drawable-hdpi/ic_list_empty_create_folder.png
  5. BIN
      res/drawable-hdpi/ic_list_empty_folder.png
  6. BIN
      res/drawable-hdpi/ic_list_empty_upload.png
  7. BIN
      res/drawable-mdpi/ic_list_empty_create_folder.png
  8. BIN
      res/drawable-mdpi/ic_list_empty_folder.png
  9. BIN
      res/drawable-mdpi/ic_list_empty_upload.png
  10. BIN
      res/drawable-xhdpi/ic_list_empty_create_folder.png
  11. BIN
      res/drawable-xhdpi/ic_list_empty_folder.png
  12. BIN
      res/drawable-xhdpi/ic_list_empty_upload.png
  13. BIN
      res/drawable-xxhdpi/ic_list_empty_create_folder.png
  14. BIN
      res/drawable-xxhdpi/ic_list_empty_folder.png
  15. BIN
      res/drawable-xxhdpi/ic_list_empty_upload.png
  16. BIN
      res/drawable-xxxhdpi/ic_list_empty_create_folder.png
  17. BIN
      res/drawable-xxxhdpi/ic_list_empty_folder.png
  18. BIN
      res/drawable-xxxhdpi/ic_list_empty_upload.png
  19. 68 0
      res/layout/empty_list.xml
  20. 1 0
      res/layout/file_details_fragment.xml
  21. 3 5
      res/layout/folder_sync_layout.xml
  22. 3 8
      res/layout/list_fragment.xml
  23. 1 8
      res/layout/list_fragment_expandable.xml
  24. 4 2
      res/values/strings.xml
  25. 10 12
      src/com/owncloud/android/authentication/SsoWebViewClient.java
  26. 0 1
      src/com/owncloud/android/operations/CopyFileOperation.java
  27. 3 9
      src/com/owncloud/android/operations/CreateShareWithShareeOperation.java
  28. 12 17
      src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java
  29. 2 3
      src/com/owncloud/android/operations/MoveFileOperation.java
  30. 0 1
      src/com/owncloud/android/operations/RemoveFileOperation.java
  31. 3 4
      src/com/owncloud/android/operations/RenameFileOperation.java
  32. 0 1
      src/com/owncloud/android/services/OperationsService.java
  33. 5 0
      src/com/owncloud/android/ui/activity/DrawerActivity.java
  34. 8 5
      src/com/owncloud/android/ui/activity/FileDisplayActivity.java
  35. 7 5
      src/com/owncloud/android/ui/activity/FolderPickerActivity.java
  36. 2 3
      src/com/owncloud/android/ui/activity/GenericExplanationActivity.java
  37. 0 1
      src/com/owncloud/android/ui/activity/LogHistoryActivity.java
  38. 0 1
      src/com/owncloud/android/ui/activity/ShareActivity.java
  39. 1 1
      src/com/owncloud/android/ui/activity/UploadListActivity.java
  40. 12 10
      src/com/owncloud/android/ui/adapter/LogListAdapter.java
  41. 0 1
      src/com/owncloud/android/ui/dialog/ChangelogDialog.java
  42. 0 1
      src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java
  43. 0 3
      src/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java
  44. 2 3
      src/com/owncloud/android/ui/fragment/ExpandableListFragment.java
  45. 74 17
      src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
  46. 6 4
      src/com/owncloud/android/ui/fragment/LocalFileListFragment.java
  47. 7 8
      src/com/owncloud/android/ui/fragment/UploadListFragment.java
  48. 0 1
      src/com/owncloud/android/ui/preview/ImageViewCustom.java
  49. 30 70
      src/com/owncloud/android/ui/preview/PreviewImageActivity.java

+ 57 - 0
drawable_resources/ic_list_empty_create_folder.svg

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="16"
+   width="16"
+   version="1"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ic_list_empty_create_folder.svg"
+   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\designTweaks\res\drawable-mdpi\ic_list_empty_create_folder.png"
+   inkscape:export-xdpi="405"
+   inkscape:export-ydpi="405">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="29.5"
+     inkscape:cx="-12.171603"
+     inkscape:cy="13.899981"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <path
+     style="fill:#99cde9;fill-opacity:1"
+     d="M 1.4570312 1.9960938 C 1.2070312 1.9960938 0.99609375 2.2070313 0.99609375 2.4570312 L 0.99609375 13.537109 C 0.99609375 13.797109 1.1990312 13.996094 1.4570312 13.996094 L 14.537109 13.996094 C 14.795109 13.996094 14.996094 13.797109 14.996094 13.537109 L 14.996094 4.4609375 C 14.996094 4.2109375 14.787109 3.9960937 14.537109 3.9960938 L 7.9960938 3.9960938 L 5.9960938 1.9960938 L 1.4570312 1.9960938 z M 9.9707031 6.2363281 L 11.306641 6.2363281 L 11.306641 8.25 L 13.314453 8.25 L 13.314453 9.5859375 L 11.306641 9.5859375 L 11.306641 11.589844 L 9.9707031 11.589844 L 9.9707031 9.5859375 L 7.9589844 9.5859375 L 7.9589844 8.25 L 9.9707031 8.25 L 9.9707031 6.2363281 z "
+     id="path4" />
+</svg>

+ 58 - 0
drawable_resources/ic_list_empty_folder.svg

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="16"
+   width="16"
+   version="1"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="list_empty_folder_empty.svg"
+   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\designTweaks\res\drawable-mdpi\ic_folder_empty.png"
+   inkscape:export-xdpi="405"
+   inkscape:export-ydpi="405">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="14.75"
+     inkscape:cx="-10.20339"
+     inkscape:cy="8"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <path
+     d="M1.457 1.997c-.25 0-.46.21-.46.46v11.08c0 .26.202.46.46.46h13.08c.258 0 .46-.2.46-.46V4.46c0-.25-.21-.463-.46-.463h-6.54l-2-2z"
+     fill-rule="evenodd"
+     fill="#0082c9"
+     id="path4"
+     style="fill:#99cde9;fill-opacity:1" />
+</svg>

+ 57 - 0
drawable_resources/ic_list_empty_upload.svg

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="24"
+   height="24"
+   viewBox="0 0 24 24"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ic_list_empty_upload.svg"
+   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\designTweaks\res\drawable-xxxhdpi\ic_list_empty_upload.png"
+   inkscape:export-xdpi="1080"
+   inkscape:export-ydpi="1080">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="9.8333333"
+     inkscape:cx="-15.305085"
+     inkscape:cy="12"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <path
+     d="M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"
+     id="path4"
+     style="fill:#99cde9;fill-opacity:1" />
+</svg>

BIN
res/drawable-hdpi/ic_list_empty_create_folder.png


BIN
res/drawable-hdpi/ic_list_empty_folder.png


BIN
res/drawable-hdpi/ic_list_empty_upload.png


BIN
res/drawable-mdpi/ic_list_empty_create_folder.png


BIN
res/drawable-mdpi/ic_list_empty_folder.png


BIN
res/drawable-mdpi/ic_list_empty_upload.png


BIN
res/drawable-xhdpi/ic_list_empty_create_folder.png


BIN
res/drawable-xhdpi/ic_list_empty_folder.png


BIN
res/drawable-xhdpi/ic_list_empty_upload.png


BIN
res/drawable-xxhdpi/ic_list_empty_create_folder.png


BIN
res/drawable-xxhdpi/ic_list_empty_folder.png


BIN
res/drawable-xxhdpi/ic_list_empty_upload.png


BIN
res/drawable-xxxhdpi/ic_list_empty_create_folder.png


BIN
res/drawable-xxxhdpi/ic_list_empty_folder.png


BIN
res/drawable-xxxhdpi/ic_list_empty_upload.png


+ 68 - 0
res/layout/empty_list.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Nextcloud Android client application
+
+  Copyright (C) 2016 Andy Scherzinger
+  Copyright (C) 2016 Nextcloud.
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+  License as published by the Free Software Foundation; either
+  version 3 of the License, or any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+
+  You should have received a copy of the GNU Affero General Public
+  License along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<LinearLayout android:id="@+id/empty_list_view"
+              xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:layout_gravity="center"
+              android:layout_margin="@dimen/standard_margin"
+              android:gravity="center_vertical|center_horizontal"
+              android:orientation="vertical"
+              android:paddingBottom="@dimen/standard_double_margin">
+
+    <ImageView
+        android:id="@+id/empty_list_icon"
+        android:layout_width="72dp"
+        android:layout_height="72dp"
+        android:contentDescription="@string/file_list_folder"
+        android:src="@drawable/ic_list_empty_folder"/>
+
+    <ProgressBar
+        android:id="@+id/empty_list_progress"
+        android:layout_width="72dp"
+        android:layout_height="72dp"
+        android:layout_gravity="center_horizontal"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/empty_list_view_headline"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:ellipsize="end"
+        android:gravity="center"
+        android:maxLines="2"
+        android:paddingBottom="@dimen/standard_padding"
+        android:paddingTop="@dimen/standard_padding"
+        android:text="@string/file_list_empty_headline"
+        android:textSize="26sp"/>
+
+    <TextView
+        android:id="@+id/empty_list_view_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:ellipsize="end"
+        android:gravity="center"
+        android:maxLines="3"
+        android:text="@string/file_list_empty"/>
+
+</LinearLayout>

+ 1 - 0
res/layout/file_details_fragment.xml

@@ -48,6 +48,7 @@
 			    android:layout_height="wrap_content"
 			    android:layout_centerVertical="true"
 			    android:layout_toRightOf="@+id/fdIcon"
+				android:paddingLeft="@dimen/standard_padding"
 			    android:text="@string/placeholder_filename"
 			    android:textAppearance="?android:attr/textAppearanceLarge" />
 			

+ 3 - 5
res/layout/folder_sync_layout.xml

@@ -60,8 +60,8 @@
 
                 <ProgressBar
                     android:id="@+id/folderSyncProgressBar"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_width="72dp"
+                    android:layout_height="72dp"
                     android:layout_gravity="center_horizontal"/>
 
                 <TextView
@@ -71,8 +71,7 @@
                     android:layout_gravity="center_horizontal"
                     android:layout_margin="@dimen/standard_half_margin"
                     android:text="@string/folder_sync_loading_folders"
-                    android:textColor="@color/secondaryTextColor"
-                    android:textStyle="italic"/>
+                    android:textSize="26sp"/>
             </LinearLayout>
 
             <TextView
@@ -82,7 +81,6 @@
                 android:layout_gravity="center"
                 android:layout_margin="@dimen/standard_margin"
                 android:gravity="center"
-                android:textColor="@color/secondaryTextColor"
                 android:text="@string/folder_sync_no_results"
                 android:visibility="gone" />
         </FrameLayout>

+ 3 - 8
res/layout/list_fragment.xml

@@ -74,14 +74,9 @@
             <ScrollView
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" >
-                <TextView
-                    android:id="@+id/empty_list_view"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:gravity="center_vertical|center_horizontal"
-                    android:text="@string/empty"
-                    android:visibility="visible" />
+
+                <include layout="@layout/empty_list" />
+
             </ScrollView>
     </android.support.v4.widget.SwipeRefreshLayout>
 

+ 1 - 8
res/layout/list_fragment_expandable.xml

@@ -31,14 +31,7 @@ EXCEPT: ExpandableListView must be used for @+id/swipe_refresh_files_emptyView
             android:layout_width="match_parent"
             android:layout_height="match_parent" >
 
-	            <TextView
-			        android:id="@+id/empty_list_view"
-			        android:layout_width="match_parent"
-			        android:layout_height="wrap_content"
-			        android:gravity="center_vertical|center_horizontal"
-			        android:text="@string/empty"
-					android:layout_gravity="center"
-			        android:visibility="visible" />
+			<include layout="@layout/empty_list" />
 
         </ScrollView>
     </android.support.v4.widget.SwipeRefreshLayout>

+ 4 - 2
res/values/strings.xml

@@ -78,11 +78,13 @@
     <string name="uploader_upload_files_behaviour_only_upload">Keep file in source folder</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Delete file from source folder</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_empty_headline">No files in here</string>
+    <string name="file_list_empty">Upload some content or sync with your devices!</string>
     <string name="file_list_loading">Loading&#8230;</string>
     <string name="file_list_no_app_for_file_type">No app found for file type!</string>
     <string name="local_file_list_empty">There are no files in this folder.</string>
-    <string name="upload_list_empty">No uploads available.</string>
+    <string name="upload_list_empty_headline">No uploads available</string>
+    <string name="upload_list_empty_text">Upload some content or activate instant upload!</string>
     <string name="file_list_folder">folder</string>
     <string name="file_list_folders">folders</string>
     <string name="file_list_file">file</string>

+ 10 - 12
src/com/owncloud/android/authentication/SsoWebViewClient.java

@@ -20,16 +20,6 @@
 
 package com.owncloud.android.authentication;
 
-import java.io.ByteArrayInputStream;
-import java.lang.ref.WeakReference;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-
-import com.owncloud.android.lib.common.network.NetworkUtils;
-import com.owncloud.android.lib.common.utils.Log_OC;
-
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.net.http.SslCertificate;
@@ -37,15 +27,23 @@ import android.net.http.SslError;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.view.KeyEvent;
 import android.view.View;
 import android.webkit.CookieManager;
 import android.webkit.HttpAuthHandler;
 import android.webkit.SslErrorHandler;
-import android.webkit.WebResourceResponse;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
 
+import com.owncloud.android.lib.common.network.NetworkUtils;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+import java.io.ByteArrayInputStream;
+import java.lang.ref.WeakReference;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+
 
 /**
  * Custom {@link WebViewClient} client aimed to catch the end of a single-sign-on process 

+ 0 - 1
src/com/owncloud/android/operations/CopyFileOperation.java

@@ -18,7 +18,6 @@
 package com.owncloud.android.operations;
 
 import android.accounts.Account;
-import android.content.Context;
 
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;

+ 3 - 9
src/com/owncloud/android/operations/CreateShareWithShareeOperation.java

@@ -21,25 +21,19 @@
 
 package com.owncloud.android.operations;
 
-/**
- * Creates a new private share for a given file
- */
-
-
-import android.accounts.Account;
-
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
-import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
 import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.operations.common.SyncOperation;
 
+/**
+ * Creates a new private share for a given file
+ */
 public class CreateShareWithShareeOperation extends SyncOperation {
 
     protected FileDataStorageManager mStorageManager;

+ 12 - 17
src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java

@@ -20,33 +20,28 @@
 
 package com.owncloud.android.operations;
 
-import java.util.ArrayList;
+import android.content.Context;
+import android.net.Uri;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.lib.common.OwnCloudClient;
-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.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
 
-import android.content.Context;
-import android.net.Uri;
-
 import org.apache.commons.httpclient.HttpStatus;
 
+import java.util.ArrayList;
+
 /**
- * Operation to find out what authentication method requires
- * the server to access files.
- * 
- * Basically, tries to access to the root folder without authorization
- * and analyzes the response.
- * 
- * When successful, the instance of {@link RemoteOperationResult} passed
- * through {@link OnRemoteOperationListener#onRemoteOperationFinish(RemoteOperation, 
- * RemoteOperationResult)} returns in {@link RemoteOperationResult#getData()}
- * a value of {@link AuthenticationMethod}.
+ * Operation to find out what authentication method requires the server to access files.
+ *
+ * Basically, tries to access to the root folder without authorization and analyzes the response.
+ *
+ * When successful, the instance of {@link RemoteOperationResult} passed through
+ * {@link com.owncloud.android.lib.common.operations.OnRemoteOperationListener
+ * #onRemoteOperationFinish(RemoteOperation, RemoteOperationResult)} returns in
+ * {@link RemoteOperationResult#getData()} a value of {@link AuthenticationMethod}.
  */
 public class DetectAuthenticationMethodOperation extends RemoteOperation {
     

+ 2 - 3
src/com/owncloud/android/operations/MoveFileOperation.java

@@ -20,7 +20,8 @@
 
 package com.owncloud.android.operations;
 
-import com.owncloud.android.MainApp;
+import android.accounts.Account;
+
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@@ -28,8 +29,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
 import com.owncloud.android.lib.resources.files.MoveRemoteFileOperation;
 import com.owncloud.android.operations.common.SyncOperation;
 
-import android.accounts.Account;
-
 
 /**
  * Operation mmoving an {@link OCFile} to a different folder.

+ 0 - 1
src/com/owncloud/android/operations/RemoveFileOperation.java

@@ -21,7 +21,6 @@
 
 package com.owncloud.android.operations;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;

+ 3 - 4
src/com/owncloud/android/operations/RenameFileOperation.java

@@ -21,10 +21,6 @@
 
 package com.owncloud.android.operations;
 
-import java.io.File;
-import java.io.IOException;
-
-import com.owncloud.android.MainApp;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;
@@ -35,6 +31,9 @@ import com.owncloud.android.lib.resources.files.RenameRemoteFileOperation;
 import com.owncloud.android.operations.common.SyncOperation;
 import com.owncloud.android.utils.FileStorageUtils;
 
+import java.io.File;
+import java.io.IOException;
+
 
 /**
  * Remote operation performing the rename of a remote file (or folder?) in the ownCloud server.

+ 0 - 1
src/com/owncloud/android/services/OperationsService.java

@@ -71,7 +71,6 @@ import com.owncloud.android.operations.common.SyncOperation;
 
 import java.io.IOException;
 import java.util.Iterator;
-import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ConcurrentMap;

+ 5 - 0
src/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -198,6 +198,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
                     toggleAccountList();
                 }
                 invalidateOptionsMenu();
+                mDrawerToggle.setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
 
                 if (pendingRunnable != null) {
                     new Handler().post(pendingRunnable);
@@ -837,4 +838,8 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
             Log_OC.e(TAG, "Drawer layout not ready to add drawer listener");
         }
     }
+
+    public boolean isDrawerIndicatorAvailable() {
+        return true;
+    }
 }

+ 8 - 5
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -1099,12 +1099,11 @@ public class FileDisplayActivity extends HookActivity
     private void setBackgroundText() {
         OCFileListFragment ocFileListFragment = getListOfFilesFragment();
         if (ocFileListFragment != null) {
-            int message = R.string.file_list_loading;
             if (!mSyncInProgress) {
-                // In case file list is empty
-                message = R.string.file_list_empty;
+                ocFileListFragment.setEmptyListMessage();
+            } else {
+                ocFileListFragment.setEmptyListLoadingMessage();
             }
-            ocFileListFragment.setMessageForEmptyList(getString(message));
         } else {
             Log_OC.e(TAG, "OCFileListFragment is null");
         }
@@ -1117,7 +1116,6 @@ public class FileDisplayActivity extends HookActivity
         /**
          * Once the file upload has finished -> update view
          *
-         * @author David A. Velasco
          * {@link BroadcastReceiver} to enable upload feedback in UI
          */
         @Override
@@ -1330,6 +1328,11 @@ public class FileDisplayActivity extends HookActivity
 
     }
 
+    @Override
+    public boolean isDrawerIndicatorAvailable() {
+        return isRoot(getCurrentDir());
+    }
+
     @Override
     protected ServiceConnection newTransferenceServiceConnection() {
         return new ListServiceConnection();

+ 7 - 5
src/com/owncloud/android/ui/activity/FolderPickerActivity.java

@@ -38,7 +38,6 @@ import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
-import android.widget.ProgressBar;
 import android.widget.Toast;
 
 import com.owncloud.android.R;
@@ -164,12 +163,15 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     private void setBackgroundText() {
         OCFileListFragment listFragment = getListOfFilesFragment();
         if (listFragment != null) {
-            int message = R.string.file_list_loading;
             if (!mSyncInProgress) {
-                // In case folder list is empty
-                message = R.string.file_list_empty_moving;
+                listFragment.setMessageForEmptyList(
+                        R.string.file_list_empty_headline,
+                        R.string.file_list_empty_moving,
+                        R.drawable.ic_list_empty_create_folder
+                );
+            } else {
+                listFragment.setEmptyListLoadingMessage();
             }
-            listFragment.setMessageForEmptyList(getString(message));
         } else {
             Log.e(TAG, "OCFileListFragment is null");
         }

+ 2 - 3
src/com/owncloud/android/ui/activity/GenericExplanationActivity.java

@@ -20,8 +20,6 @@
 
 package com.owncloud.android.ui.activity;
 
-import java.util.ArrayList;
-
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
@@ -35,7 +33,8 @@ import android.widget.ListView;
 import android.widget.TextView;
 
 import com.owncloud.android.R;
-import com.owncloud.android.utils.DisplayUtils;
+
+import java.util.ArrayList;
 
 
 /**

+ 0 - 1
src/com/owncloud/android/ui/activity/LogHistoryActivity.java

@@ -44,7 +44,6 @@ import com.owncloud.android.utils.FileStorageUtils;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.lang.ref.WeakReference;

+ 0 - 1
src/com/owncloud/android/ui/activity/ShareActivity.java

@@ -44,7 +44,6 @@ import com.owncloud.android.operations.UnshareOperation;
 import com.owncloud.android.operations.UpdateSharePermissionsOperation;
 import com.owncloud.android.providers.UsersAndGroupsSearchProvider;
 import com.owncloud.android.ui.dialog.ShareLinkToDialog;
-import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
 import com.owncloud.android.ui.fragment.EditShareFragment;
 import com.owncloud.android.ui.fragment.SearchShareesFragment;
 import com.owncloud.android.ui.fragment.ShareFileFragment;

+ 1 - 1
src/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -159,7 +159,7 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
      * Open file with app associates with its MIME type. If MIME type unknown, show list with all apps.
      */
     private void openFileWithDefault(String localPath) {
-        Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
+        Intent myIntent = new Intent(Intent.ACTION_VIEW);
         File file = new File(localPath);
         String mimetype = MimeTypeUtil.getBestMimeTypeByFilename(localPath);
         if ("application/octet-stream".equals(mimetype)) {

+ 12 - 10
src/com/owncloud/android/ui/adapter/LogListAdapter.java

@@ -19,14 +19,11 @@
 
 package com.owncloud.android.ui.adapter;
 
-import java.io.File;
-
-import com.owncloud.android.R;
-
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Environment;
+import android.support.annotation.NonNull;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -34,6 +31,10 @@ import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.widget.TextView;
 
+import com.owncloud.android.R;
+
+import java.io.File;
+
 
 
 public class LogListAdapter extends ArrayAdapter<String> {
@@ -49,22 +50,23 @@ public class LogListAdapter extends ArrayAdapter<String> {
     }
 
     @Override
-    public View getView(final int position, View convertView, ViewGroup parent) {
+    public View getView(final int position, View convertView,@NonNull ViewGroup parent) {
         LayoutInflater inflater = (LayoutInflater) context
                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         View rowView = inflater.inflate(R.layout.log_item, parent, false);
         TextView listText = (TextView) rowView.findViewById(R.id.log_item_single);
         listText.setText(values[position]);
         listText.setTextSize(15);
-        fileUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+File.separator+"owncloud"+File.separator+"log"+File.separator+values[position]));
+        fileUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + File.separator + "owncloud" + File
+                .separator+"log"+File.separator+values[position]));
         listText.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
-                Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
+                Intent emailIntent = new Intent(Intent.ACTION_SEND);
                 emailIntent.setType("text/rtf");
-                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "OwnCloud Logfile");
-                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "This is a automatic E-mail send by owncloud/android");
-                emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, fileUri);
+                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Nextcloud Logfile");
+                emailIntent.putExtra(Intent.EXTRA_TEXT, "This is a automatic E-mail send by nextcloud/android");
+                emailIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
                 emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
             }

+ 0 - 1
src/com/owncloud/android/ui/dialog/ChangelogDialog.java

@@ -27,7 +27,6 @@ import android.support.v4.app.DialogFragment;
 import android.webkit.WebView;
 
 import com.owncloud.android.R;
-import com.owncloud.android.utils.DisplayUtils;
 
 
 /**

+ 0 - 1
src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java

@@ -31,7 +31,6 @@ import android.support.v4.app.FragmentTransaction;
 import android.support.v7.app.AppCompatActivity;
 
 import com.owncloud.android.R;
-import com.owncloud.android.utils.DisplayUtils;
 
 
 /**

+ 0 - 3
src/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java

@@ -23,18 +23,15 @@ package com.owncloud.android.ui.dialog;
 
 import android.app.DatePickerDialog;
 import android.app.Dialog;
-import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.text.format.DateUtils;
 import android.widget.DatePicker;
-import android.widget.Toast;
 
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.ui.activity.FileActivity;
 
 import java.util.Calendar;
-import java.util.Date;
 
 /**
  *  Dialog requesting a date after today.

+ 2 - 3
src/com/owncloud/android/ui/fragment/ExpandableListFragment.java

@@ -28,7 +28,6 @@ import android.view.ViewGroup;
 import android.widget.ExpandableListAdapter;
 import android.widget.ExpandableListView;
 import android.widget.ExpandableListView.OnChildClickListener;
-import android.widget.TextView;
 
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
@@ -56,7 +55,8 @@ public class ExpandableListFragment extends ExtendedListFragment implements OnCh
         Log_OC.e(TAG, "onCreateView");
         
         View v = inflater.inflate(R.layout.list_fragment_expandable, null);
-        mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
+        setupEmptyList(v);
+
         mList = (ExpandableListView)(v.findViewById(R.id.list_root));
         mList.setOnChildClickListener(this);
 
@@ -86,5 +86,4 @@ public class ExpandableListFragment extends ExtendedListFragment implements OnCh
         Log_OC.e(TAG, "onChildClick(). This method should be overriden!");
         return false;
     }
-
 }

+ 74 - 17
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -21,6 +21,8 @@
 package com.owncloud.android.ui.fragment;
 
 import android.os.Bundle;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.MenuItemCompat;
 import android.support.v4.widget.SwipeRefreshLayout;
@@ -35,7 +37,9 @@ import android.widget.AbsListView;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.GridView;
-import android.widget.ListAdapter;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.getbase.floatingactionbutton.FloatingActionButton;
@@ -67,7 +71,11 @@ public class ExtendedListFragment extends Fragment
     protected SwipeRefreshLayout mRefreshListLayout;
     private SwipeRefreshLayout mRefreshGridLayout;
     protected SwipeRefreshLayout mRefreshEmptyLayout;
+    protected LinearLayout mEmptyListContainer;
     protected TextView mEmptyListMessage;
+    protected TextView mEmptyListHeadline;
+    protected ImageView mEmptyListIcon;
+    protected ProgressBar mEmptyListProgress;
 
     private FloatingActionsMenu mFabMain;
     private FloatingActionButton mFabUpload;
@@ -164,10 +172,10 @@ public class ExtendedListFragment extends Fragment
         Log_OC.d(TAG, "onCreateView");
 
         View v = inflater.inflate(R.layout.list_fragment, null);
+        setupEmptyList(v);
 
         mListView = (ExtendedListView)(v.findViewById(R.id.list_root));
         mListView.setOnItemClickListener(this);
-        //mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
         mListFooterView = inflater.inflate(R.layout.list_footer, null, false);
 
         mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
@@ -180,7 +188,6 @@ public class ExtendedListFragment extends Fragment
         mRefreshListLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_list);
         mRefreshGridLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_grid);
         mRefreshEmptyLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_empty);
-        mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
         
         onCreateSwipeToRefresh(mRefreshListLayout);
         onCreateSwipeToRefresh(mRefreshGridLayout);
@@ -212,6 +219,14 @@ public class ExtendedListFragment extends Fragment
         return v;
     }
 
+    protected void setupEmptyList(View view) {
+        mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
+        mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);
+        mEmptyListHeadline = (TextView) view.findViewById(R.id.empty_list_view_headline);
+        mEmptyListIcon = (ImageView) view.findViewById(R.id.empty_list_icon);
+        mEmptyListProgress = (ProgressBar) view.findViewById(R.id.empty_list_progress);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -227,9 +242,9 @@ public class ExtendedListFragment extends Fragment
             setMessageForEmptyList(savedInstanceState.getString(KEY_EMPTY_LIST_MESSAGE));
             
         } else {
-            mIndexes = new ArrayList<Integer>();
-            mFirstPositions = new ArrayList<Integer>();
-            mTops = new ArrayList<Integer>();
+            mIndexes = new ArrayList<>();
+            mFirstPositions = new ArrayList<>();
+            mTops = new ArrayList<>();
             mHeightCell = 0;
         }
     }    
@@ -361,7 +376,7 @@ public class ExtendedListFragment extends Fragment
     /**
      * Sets the 'visibility' state of the FAB contained in the fragment.
      *
-     * When 'false' is set, FAB visibility is set to View.GONE programatically,
+     * When 'false' is set, FAB visibility is set to View.GONE programmatically,
      *
      * @param   enabled     Desired visibility for the FAB.
      */
@@ -374,27 +389,68 @@ public class ExtendedListFragment extends Fragment
     }
 
     /**
-     * Set message for empty list view
+     * Set message for empty list view.
      */
     public void setMessageForEmptyList(String message) {
-        if (mEmptyListMessage != null) {
+        if (mEmptyListContainer != null && mEmptyListMessage != null) {
             mEmptyListMessage.setText(message);
         }
     }
 
     /**
-     * Get the text of EmptyListMessage TextView
+     * displays an empty list information with a headline, a message and an icon.
+     *
+     * @param headline the headline
+     * @param message  the message
+     * @param icon     the icon to be shown
+     */
+    public void setMessageForEmptyList(@StringRes int headline, @StringRes int message, @DrawableRes int icon) {
+        if (mEmptyListContainer != null && mEmptyListMessage != null) {
+            mEmptyListHeadline.setText(headline);
+            mEmptyListMessage.setText(message);
+            mEmptyListIcon.setImageResource(icon);
+
+            mEmptyListIcon.setVisibility(View.VISIBLE);
+            mEmptyListProgress.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * Set message for empty list view.
+     */
+    public void setEmptyListMessage() {
+        setMessageForEmptyList(
+                R.string.file_list_empty_headline,
+                R.string.file_list_empty,
+                R.drawable.ic_list_empty_folder
+        );
+    }
+
+    /**
+     * Set message for empty list view.
+     */
+    public void setEmptyListLoadingMessage() {
+        if (mEmptyListContainer != null && mEmptyListMessage != null) {
+            mEmptyListHeadline.setText(R.string.file_list_loading);
+            mEmptyListMessage.setText("");
+
+            mEmptyListIcon.setVisibility(View.GONE);
+            mEmptyListProgress.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * Get the text of EmptyListMessage TextView.
      * 
-     * @return String
+     * @return String empty text view text-value
      */
     public String getEmptyViewText() {
-        return (mEmptyListMessage != null) ? mEmptyListMessage.getText().toString() : "";
+        return (mEmptyListContainer != null && mEmptyListMessage != null) ? mEmptyListMessage.getText().toString() : "";
     }
 
     protected void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
         // Colors in animations
-        refreshLayout.setColorSchemeResources(R.color.color_accent, R.color.primary,
-                R.color.primary_dark);
+        refreshLayout.setColorSchemeResources(R.color.color_accent, R.color.primary, R.color.primary_dark);
 
         refreshLayout.setOnRefreshListener(this);
     }
@@ -424,7 +480,7 @@ public class ExtendedListFragment extends Fragment
      * TODO doc
      * To be called before setAdapter, or GridViewWithHeaderAndFooter will throw an exception
      *
-     * @param enabled
+     * @param enabled flag if footer should be shown/calculated
      */
     protected void setFooterEnabled(boolean enabled) {
         if (enabled) {
@@ -451,8 +507,9 @@ public class ExtendedListFragment extends Fragment
     }
 
     /**
-     * TODO doc
-     * @param text
+     * set the list/grid footer text.
+     *
+     * @param text the footer text
      */
     protected void setFooterText(String text) {
         if (text != null && text.length() > 0) {

+ 6 - 4
src/com/owncloud/android/ui/fragment/LocalFileListFragment.java

@@ -20,9 +20,6 @@
  */
 package com.owncloud.android.ui.fragment;
 
-import java.io.File;
-import java.util.ArrayList;
-
 import android.app.Activity;
 import android.os.Bundle;
 import android.os.Environment;
@@ -40,6 +37,9 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.adapter.LocalFileListAdapter;
 import com.owncloud.android.utils.FileStorageUtils;
 
+import java.io.File;
+import java.util.ArrayList;
+
 
 /**
  * A Fragment that lists all files and folders in a given LOCAL path.
@@ -87,7 +87,9 @@ public class LocalFileListFragment extends ExtendedListFragment {
         setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
         setSwipeEnabled(false); // Disable pull-to-refresh
         setFabEnabled(false); // Disable FAB
-        setMessageForEmptyList(getString(R.string.local_file_list_empty));
+        setMessageForEmptyList(
+                R.string.file_list_empty_headline, R.string.local_file_list_empty, R.drawable.ic_list_empty_folder
+        );
         Log_OC.i(TAG, "onCreateView() end");
         return v;
     }

+ 7 - 8
src/com/owncloud/android/ui/fragment/UploadListFragment.java

@@ -35,14 +35,13 @@ import com.owncloud.android.ui.adapter.ExpandableUploadListAdapter;
 
 /**
  * A Fragment that lists all files and folders in a given LOCAL path.
- * 
  */
 public class UploadListFragment extends ExpandableListFragment {
     private static final String TAG = UploadListFragment.class.getSimpleName();
 
     /**
-     * Reference to the Activity which this fragment is attached to. For
-     * callbacks
+     * Reference to the Activity which this fragment is attached to.
+     * For callbacks.
      */
     private UploadListFragment.ContainerActivity mContainerActivity;
 
@@ -63,7 +62,9 @@ public class UploadListFragment extends ExpandableListFragment {
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         View v = super.onCreateView(inflater, container, savedInstanceState);
         getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
-        setMessageForEmptyList(getString(R.string.upload_list_empty));
+        setMessageForEmptyList(
+                R.string.upload_list_empty_headline, R.string.upload_list_empty_text, R.drawable.ic_list_empty_upload
+        );
         setOnRefreshListener(this);
         return v;
     }
@@ -127,12 +128,11 @@ public class UploadListFragment extends ExpandableListFragment {
         /**
          * Callback method invoked when an upload item is clicked by the user on
          * the upload list
-         * 
-         * @param file
+         *
+         * @param file the file that has been clicked on.
          * @return return true if click was handled.
          */
         public boolean onUploadItemClick(OCUpload file);
-
     }
 
     public void binderReady(){
@@ -148,5 +148,4 @@ public class UploadListFragment extends ExpandableListFragment {
             mAdapter.refreshView();
         }
     }
-
 }

+ 0 - 1
src/com/owncloud/android/ui/preview/ImageViewCustom.java

@@ -10,7 +10,6 @@ import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
 
-import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
 import java.io.FileInputStream;

+ 30 - 70
src/com/owncloud/android/ui/preview/PreviewImageActivity.java

@@ -107,33 +107,27 @@ public class PreviewImageActivity extends FileActivity implements
         actionBar.hide();
 
 
-        // Make sure we're running on Honeycomb or higher to use FullScreen and
-        // Immersive Mode
-        if (isHoneycombOrHigher()) {
-        
-            mFullScreenAnchorView = getWindow().getDecorView();
-            // to keep our UI controls visibility in line with system bars
-            // visibility
-            mFullScreenAnchorView.setOnSystemUiVisibilityChangeListener
-                    (new View.OnSystemUiVisibilityChangeListener() {
-                @SuppressLint("InlinedApi")
-                @Override
-                public void onSystemUiVisibilityChange(int flags) {
-                    boolean visible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
-                    ActionBar actionBar = getSupportActionBar();
-                    if (visible) {
-                        actionBar.show();
-                        setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
-                    } else {
-                        actionBar.hide();
-                        setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+        mFullScreenAnchorView = getWindow().getDecorView();
+        // to keep our UI controls visibility in line with system bars visibility
+        mFullScreenAnchorView.setOnSystemUiVisibilityChangeListener
+                (new View.OnSystemUiVisibilityChangeListener() {
+                    @SuppressLint("InlinedApi")
+                    @Override
+                    public void onSystemUiVisibilityChange(int flags) {
+                        boolean visible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+                        ActionBar actionBar = getSupportActionBar();
+                        if (visible) {
+                            actionBar.show();
+                            setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
+                        } else {
+                            actionBar.hide();
+                            setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+                        }
                     }
-                }
-            });
+                });
 
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-                getWindow().setStatusBarColor(getResources().getColor(R.color.owncloud_blue_dark_transparent));
-            }
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            getWindow().setStatusBarColor(getResources().getColor(R.color.owncloud_blue_dark_transparent));
         }
             
         if (savedInstanceState != null) {
@@ -185,9 +179,7 @@ public class PreviewImageActivity extends FileActivity implements
     Handler mHideSystemUiHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            if (isHoneycombOrHigher()) {
-                hideSystemUI(mFullScreenAnchorView);
-            }
+            hideSystemUI(mFullScreenAnchorView);
             getSupportActionBar().hide();
         }
     };
@@ -197,7 +189,6 @@ public class PreviewImageActivity extends FileActivity implements
         mHideSystemUiHandler.sendEmptyMessageDelayed(0, delayMillis);
     }
     
-    
     /// handle Window Focus changes
     @Override
     public void onWindowFocusChanged(boolean hasFocus) {
@@ -210,8 +201,6 @@ public class PreviewImageActivity extends FileActivity implements
         }
     }
     
-    
-    
     @Override
     public void onStart() {
         super.onStart();
@@ -475,36 +464,19 @@ public class PreviewImageActivity extends FileActivity implements
     }
 
     @SuppressLint("InlinedApi")
-	public void toggleFullScreen() {
-
-        if (isHoneycombOrHigher()) {
-        
-            boolean visible = (mFullScreenAnchorView.getSystemUiVisibility()
-                    & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+    public void toggleFullScreen() {
 
-            if (visible) {
-                hideSystemUI(mFullScreenAnchorView);
-                // actionBar.hide(); // propagated through
-                // OnSystemUiVisibilityChangeListener()
-            } else {
-                showSystemUI(mFullScreenAnchorView);
-                // actionBar.show(); // propagated through
-                // OnSystemUiVisibilityChangeListener()
-            }
+        boolean visible = (mFullScreenAnchorView.getSystemUiVisibility()
+                & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
 
+        if (visible) {
+            hideSystemUI(mFullScreenAnchorView);
+            // actionBar.hide(); // propagated through
+            // OnSystemUiVisibilityChangeListener()
         } else {
-
-            ActionBar actionBar = getSupportActionBar();
-            if (!actionBar.isShowing()) {
-                actionBar.show();
-                setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
-
-            } else {
-                actionBar.hide();
-                setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
-
-            }
-
+            showSystemUI(mFullScreenAnchorView);
+            // actionBar.show(); // propagated through
+            // OnSystemUiVisibilityChangeListener()
         }
     }
 
@@ -574,16 +546,4 @@ public class PreviewImageActivity extends FileActivity implements
             |   View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  // draw full window;     Android >= 4.1
         );
     }
-
-    /**
-     * Checks if OS version is Honeycomb one or higher
-     *
-     * @return boolean
-     */
-    private boolean isHoneycombOrHigher() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            return true;
-        }
-        return false;
-    }
 }