Merge tag 'oc-android-1.8' into sdcard-save sd-android-1.8
authorPeter Henn <Peter.Henn@web.de>
Sat, 3 Oct 2015 10:03:37 +0000 (10:03 +0000)
committerPeter Henn <Peter.Henn@web.de>
Sat, 3 Oct 2015 10:03:37 +0000 (10:03 +0000)
Version 1.8: Includes Material Design
Resolved conflicts in:
src/com/owncloud/android/utils/FileStorageUtils.java

1  2 
src/com/owncloud/android/utils/FileStorageUtils.java

@@@ -46,48 -46,19 +46,47 @@@ import android.webkit.MimeTypeMap
   * Static methods to help in access to local file system.
   */
  public class FileStorageUtils {
-     public static Integer mSortOrder;
-     public static Boolean mSortAscending;
      public static final Integer SORT_NAME = 0;
      public static final Integer SORT_DATE = 1;
      public static final Integer SORT_SIZE = 2;
+     public static Integer mSortOrder = SORT_NAME;
+     public static Boolean mSortAscending = true;
  
 -    
 -    //private static final String LOG_TAG = "FileStorageUtils";
 +
 +    //private static final String TAG = FileStorageUtils.class.getSimpleName();
 +
 +    @SuppressLint("NewApi")
 +    private static final File getBaseStorePath() {
 +        File baseStoragePath = Environment.getExternalStorageDirectory();
 +        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
 +            File[] dirs = MainApp.getAppContext().getExternalFilesDirs(null);
 +            if (dirs.length > 1) {
 +                baseStoragePath = dirs[1];
 +            }
 +        }
 +        return baseStoragePath;
 +    }
 +
 +    @SuppressLint("NewApi")
 +    private static final String getBaseStorePathString() {
 +        File baseStoragePath = Environment.getExternalStorageDirectory();
 +        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
 +            File[] dirs = MainApp.getAppContext().getExternalFilesDirs(null);
 +            if (dirs.length > 1) {
 +                baseStoragePath = dirs[1];
 +            }
 +            return baseStoragePath.getAbsolutePath();
 +        } else {
 +            return baseStoragePath.getAbsolutePath() + "/" + MainApp.getDataFolder();
 +        }
 +    }
  
      public static final String getSavePath(String accountName) {
 -        File sdCard = Environment.getExternalStorageDirectory();
 -        return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/" + Uri.encode(accountName, "@");
 +        //File sdCard = Environment.getExternalStorageDirectory();
 +        //return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/" + Uri.encode(accountName, "@");
          // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B
 +        //return getBaseStorePath().getAbsolutePath()  + "/" + Uri.encode(accountName, "@");
 +        return getBaseStorePathString()  + "/" + Uri.encode(accountName, "@");
      }
  
      public static final String getDefaultSavePathFor(String accountName, OCFile file) {
      }
  
      public static final String getTemporalPath(String accountName) {
 -        File sdCard = Environment.getExternalStorageDirectory();
 -        return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/tmp/" + Uri.encode(accountName, "@");
 +        //File sdCard = Environment.getExternalStorageDirectory();
 +        //return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/tmp/" + Uri.encode(accountName, "@");
              // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B
 +        //return getBaseStorePath().getAbsolutePath() + "/tmp/" + Uri.encode(accountName, "@");
 +        return getBaseStorePathString() + "/tmp/" + Uri.encode(accountName, "@");        
      }
  
      @SuppressLint("NewApi")
      public static final long getUsableSpace(String accountName) {
 -        File savePath = Environment.getExternalStorageDirectory();
 +        //File savePath = Environment.getExternalStorageDirectory();
 +        File savePath = getBaseStorePath();
          if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
              return savePath.getUsableSpace();
  
          file.setRemoteId(remote.getRemoteId());
          return file;
      }
 -    
 +
      /**
       * Creates and populates a new {@link RemoteFile} object with the data read from an {@link OCFile}.
       * 
          file.setRemoteId(ocFile.getRemoteId());
          return file;
      }
 -    
 +
      /**
 -     * Sorts all filenames, regarding last user decision 
 +     * Sorts all filenames, regarding last user decision
       */
      public static Vector<OCFile> sortFolder(Vector<OCFile> files){
          switch (mSortOrder){
          case 1:
              files = FileStorageUtils.sortByDate(files);
              break;
 -        case 2: 
 +        case 2:
             // mFiles = FileStorageUtils.sortBySize(mSortAscending);
              break;
          }
 -       
 +
          return files;
      }
 -    
 +
      /**
       * Sorts list by Date
       * @param files
          } else {
              val = -1;
          }
 -        
 +
          Collections.sort(files, new Comparator<OCFile>() {
              public int compare(OCFile o1, OCFile o2) {
                  if (o1.isFolder() && o2.isFolder()) {
                  }
              }
          });
 -        
 +
          return files;
      }
  
  //        } else {
  //            val = -1;
  //        }
 -//        
 +//
  //        Collections.sort(files, new Comparator<OCFile>() {
  //            public int compare(OCFile o1, OCFile o2) {
  //                if (o1.isFolder() && o2.isFolder()) {
  //                }
  //            }
  //        });
 -//        
 +//
  //        return files;
  //    }
  
                  return val * new AlphanumComparator().compare(o1, o2);
              }
          });
 -        
 +
          return files;
      }
 -    
 +
      /**
       * Local Folder size
       * @param dir File