Merge branch 'develop' of github.com:owncloud/android into switchListVsGrid
authortobiasKaminsky <tobias@kaminsky.me>
Sun, 23 Aug 2015 16:51:12 +0000 (18:51 +0200)
committertobiasKaminsky <tobias@kaminsky.me>
Sun, 23 Aug 2015 16:51:12 +0000 (18:51 +0200)
icon is now always visible

13 files changed:
1  2 
owncloud-android-library
res/drawable-hdpi/ic_view_list.png
res/drawable-hdpi/ic_view_module.png
res/drawable-mdpi/ic_view_list.png
res/drawable-mdpi/ic_view_module.png
res/drawable-xhdpi/ic_view_list.png
res/drawable-xhdpi/ic_view_module.png
res/menu/main_menu.xml
res/values/strings.xml
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java
src/com/owncloud/android/utils/DisplayUtils.java

@@@ -1,1 -1,1 +1,1 @@@
--Subproject commit dbc8c325d74f3f7e8da8236c5abe77a141ae4019
++Subproject commit c8f6e5ad57ee27fdac39c7b14eb6ab1942a92d49
index 0000000,0000000..64ad8e1
new file mode 100644 (file)
Binary files differ
index 0000000,0000000..7982e38
new file mode 100644 (file)
Binary files differ
index 0000000,0000000..4aca55c
new file mode 100644 (file)
Binary files differ
index 0000000,0000000..f308a32
new file mode 100644 (file)
Binary files differ
index 0000000,0000000..b81d910
new file mode 100644 (file)
Binary files differ
index 0000000,0000000..b354853
new file mode 100644 (file)
Binary files differ
          android:title="@string/actionbar_mkdir"
          android:contentDescription="@string/actionbar_mkdir"/>
      <item
-         android:icon="@android:drawable/ic_menu_view"
 +        android:id="@+id/action_switch_view"
++        android:icon="@drawable/ic_view_module"
 +        android:orderInCategory="2"
++        app:showAsAction="always"
 +        android:title="@string/action_switch_grid_view" />
 +    <item
          android:id="@+id/action_sync_account"
          android:icon="@drawable/ic_action_refresh"
          android:orderInCategory="2"
Simple merge
@@@ -467,6 -479,6 +486,7 @@@ public class FileDisplayActivity extend
          menu.findItem(R.id.action_create_dir).setVisible(!drawerOpen);
          menu.findItem(R.id.action_sort).setVisible(!drawerOpen);
          menu.findItem(R.id.action_sync_account).setVisible(!drawerOpen);
++        menu.findItem(R.id.action_switch_view).setVisible(!drawerOpen);
          
          return super.onPrepareOptionsMenu(menu);
      }
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.main_menu, menu);
-         if (DisplayUtils.isGridView(getFile(), getStorageManager())){
-             menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
-         } else {
-             menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
-         }
 +        mOptionsMenu = menu;
 +
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +
++        changeGridIcon();
 +
          return true;
      }
      
                  builder.create().show();
                  break;
              }
-                     item.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
 +            case R.id.action_switch_view:{
 +                if (isGridView()){
-                     item.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
++                    item.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
++                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
++                            R.drawable.ic_view_module));
 +                    DisplayUtils.setViewMode(getFile(), false);
 +                    switchToListView();
 +                } else {
++                    item.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
++                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
++                            R.drawable.ic_view_list));
 +                    DisplayUtils.setViewMode(getFile(), true);
 +                    switchToGridView();
 +                }
++
 +                return true;
 +            }
          default:
              retval = super.onOptionsItemSelected(item);
          }
  
      @Override
      public void onBackPressed() {
-         OCFileListFragment listOfFiles = getListOfFilesFragment(); 
-         if (mDualPane || getSecondFragment() == null) {
-             OCFile currentDir = getCurrentDir();
-             if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
-                 finish();
-                 return;
+         if (!isDrawerOpen()){
+             OCFileListFragment listOfFiles = getListOfFilesFragment();
+             if (mDualPane || getSecondFragment() == null) {
+                 OCFile currentDir = getCurrentDir();
+                 if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
+                     finish();
+                     return;
+                 }
+                 if (listOfFiles != null) {  // should never be null, indeed
+                     listOfFiles.onBrowseUp();
+                 }
              }
              if (listOfFiles != null) {  // should never be null, indeed
-                 listOfFiles.onBrowseUp();
+                 setFile(listOfFiles.getCurrentFile());
              }
+             cleanSecondFragment();
++
++            changeGridIcon();
+         } else {
+             super.onBackPressed();
          }
-         if (listOfFiles != null) {  // should never be null, indeed
-             setFile(listOfFiles.getCurrentFile());
-         }
-         cleanSecondFragment();
+     }
  
++    private void changeGridIcon(){
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +        if (DisplayUtils.isGridView(getFile(), getStorageManager())){
 +            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
++            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
++                    R.drawable.ic_view_list));
 +        } else {
 +            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
++            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
++                    R.drawable.ic_view_module));
 +        }
 +    }
 +
      @Override
      protected void onSaveInstanceState(Bundle outState) {
          // responsibility of restore is preferred in onCreate() before than in
          cleanSecondFragment();
          // Sync Folder
          startSyncFolderOperation(directory, false);
-             menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
 +
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +
++        changeGridIcon();
 +        if (DisplayUtils.isGridView(directory, getStorageManager())){
-             menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
 +            switchToGridView();
 +        } else {
 +            switchToListView();
 +        }
      }
  
      /**
@@@ -275,21 -330,16 +330,19 @@@ public class OCFileListFragment extend
                      item.setEnabled(false);
                  }
              }
 +
 +//            String.format(mContext.getString(R.string.subject_token),
 +//                    getClient().getCredentials().getUsername(), file.getFileName()));
          }
      }
-     
-     
      /**
-      * {@inhericDoc}
+      * {@inheritDoc}
       */
      @Override
-     public boolean onContextItemSelected (MenuItem item) {
-         AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
-         mTargetFile = (OCFile) mAdapter.getItem(info.position);
-         switch (item.getItemId()) {                
+     public boolean onFileActionChosen(int menuId, int filePosition) {
+         mTargetFile = (OCFile) mAdapter.getItem(filePosition);
+         switch (menuId) {
              case R.id.action_share_file: {
                  mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
                  return true;
              OwnCloudVersion version = AccountUtils.getServerVersion(
                      ((FileActivity)mContainerActivity).getAccount());
              if (version != null && version.supportsRemoteThumbnails() &&
 -                imagesCount > 0 && imagesCount == filesCount) {
 +                    DisplayUtils.isGridView(mFile, mContainerActivity.getStorageManager())) {
                  switchToGridView();
+                 registerLongClickListener();
              } else {
                  switchToListView();
              }
@@@ -36,8 -35,9 +36,9 @@@ import java.util.Vector
  import android.annotation.TargetApi;\r
  import android.app.Activity;\r
  import android.content.Context;\r
 -import android.graphics.Color;\r
 +import android.content.SharedPreferences;\r
  import android.graphics.Point;\r
+ import android.graphics.PorterDuff;\r
  import android.os.Build;\r
  import android.text.format.DateUtils;\r
  import android.view.Display;\r
@@@ -377,64 -378,32 +380,93 @@@ public class DisplayUtils 
      }\r
  \r
      /**\r
 +     * Determines if user set folder to grid or list view. If folder is not set itself,\r
 +     * it finds a parent that is set (at least root is set).\r
 +     * @param file\r
 +     * @param storageManager\r
 +     * @return\r
 +     */\r
 +    public static boolean isGridView(OCFile file, FileDataStorageManager storageManager){\r
 +        if (file != null) {\r
 +            OCFile fileToTest = file;\r
 +            OCFile parentDir = null;\r
 +            String parentPath = null;\r
 +\r
 +            SharedPreferences setting = MainApp.getAppContext().getSharedPreferences(\r
 +                    "viewMode", Context.MODE_PRIVATE);\r
 +\r
 +            if (setting.contains(fileToTest.getRemoteId())) {\r
 +                return setting.getBoolean(fileToTest.getRemoteId(), false);\r
 +            } else {\r
 +                do {\r
 +                    if (fileToTest.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {\r
 +                        parentPath = new File(fileToTest.getRemotePath()).getParent();\r
 +                        parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :\r
 +                                parentPath + OCFile.PATH_SEPARATOR;\r
 +                        parentDir = storageManager.getFileByPath(parentPath);\r
 +                    } else {\r
 +                        parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);\r
 +                    }\r
 +\r
 +                    while (parentDir == null) {\r
 +                        parentPath = new File(parentPath).getParent();\r
 +                        parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :\r
 +                                parentPath + OCFile.PATH_SEPARATOR;\r
 +                        parentDir = storageManager.getFileByPath(parentPath);\r
 +                    }\r
 +                    fileToTest = parentDir;\r
 +                } while (endWhile(parentDir, setting));\r
 +                return setting.getBoolean(fileToTest.getRemoteId(), false);\r
 +            }\r
 +        } else {\r
 +            return false;\r
 +        }\r
 +    }\r
 +\r
 +    private static boolean endWhile(OCFile parentDir, SharedPreferences setting) {\r
 +        if (parentDir.getRemotePath().compareToIgnoreCase(OCFile.ROOT_PATH) == 0) {\r
 +            return false;\r
 +        } else {\r
 +            return !setting.contains(parentDir.getRemoteId());\r
 +        }\r
 +    }\r
 +\r
 +    public static void setViewMode(OCFile file, boolean setGrid){\r
 +        SharedPreferences setting = MainApp.getAppContext().getSharedPreferences(\r
 +                "viewMode", Context.MODE_PRIVATE);\r
 +\r
 +        SharedPreferences.Editor editor = setting.edit();\r
 +        editor.putBoolean(file.getRemoteId(), setGrid);\r
 +        editor.commit();\r
 +    }\r
 +\r
++    /**\r
+      * sets the coloring of the given progress bar to color_accent.\r
+      *\r
+      * @param progressBar the progress bar to be colored\r
+      */\r
+     public static void colorPreLollipopHorizontalProgressBar(ProgressBar progressBar) {\r
+         if (progressBar != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {\r
+             int color = progressBar.getResources().getColor(R.color.color_accent);\r
+             progressBar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+             progressBar.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+         }\r
+     }\r
\r
+     /**\r
+      * sets the coloring of the given seek bar to color_accent.\r
+      *\r
+      * @param seekBar the seek bar to be colored\r
+      */\r
+     public static void colorPreLollipopHorizontalSeekBar(SeekBar seekBar) {\r
+         if (seekBar != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {\r
+             colorPreLollipopHorizontalProgressBar(seekBar);\r
\r
+             if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {\r
+                 int color = seekBar.getResources().getColor(R.color.color_accent);\r
+                 seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+                 seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+             }\r
+         }\r
+     }\r
  }\r