Merge remote-tracking branch 'remotes/upstream/bug_1300' into beta
authortobiasKaminsky <tobias@kaminsky.me>
Fri, 27 Nov 2015 16:48:54 +0000 (17:48 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Fri, 27 Nov 2015 16:48:54 +0000 (17:48 +0100)
1  2 
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);
      }
  
              fileIcon.setTag(file.hashCode());
  
              TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);
 +            TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);
              TextView lastModV = (TextView) view.findViewById(R.id.last_mod);
              ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);
              if (!file.isDirectory()) {
 +                fileSizeSeparatorV.setVisibility(View.VISIBLE);
                  fileSizeV.setVisibility(View.VISIBLE);
                  fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.length()));
  
                      checkBoxV.setVisibility(View.GONE);
                  } else {
                      if (parentList.isItemChecked(position)) {
 -                        checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
 +                        checkBoxV.setImageResource(R.drawable.ic_checkbox_marked);
                      } else {
 -                        checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
 +                        checkBoxV.setImageResource(R.drawable.ic_checkbox_blank_outline);
                      }
                      checkBoxV.setVisibility(View.VISIBLE);
                  }
                  }  
  
              } else {
 +                fileSizeSeparatorV.setVisibility(View.GONE);
                  fileSizeV.setVisibility(View.GONE);
                  lastModV.setVisibility(View.GONE);
                  checkBoxV.setVisibility(View.GONE);
      public void swapDirectory(File directory) {
          mDirectory = directory;
          mFiles = (mDirectory != null ? mDirectory.listFiles() : null);
-         if (mFiles != null) {
+         if (mFiles != null && mFiles.length > 0) {
              Arrays.sort(mFiles, new Comparator<File>() {
                  @Override
                  public int compare(File lhs, File rhs) {
                  }
              
              });
 +
 +            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();
 +
 +    }
  }