X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a818aaca47831f10d4843d56c598047dbd31e01a..6af7d56a4250e339ffbfa1711b16bdd0a5e30e5b:/src/com/owncloud/android/ui/activity/FileDisplayActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 7c3f6f50..10ae9c66 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -58,6 +58,7 @@ import android.widget.Toast; 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; @@ -145,8 +146,9 @@ public class FileDisplayActivity extends HookActivity private static String DIALOG_CERT_NOT_SAVED = "DIALOG_CERT_NOT_SAVED"; private OCFile mWaitingToSend; + private Menu mOptionsMenu; + - @Override protected void onCreate(Bundle savedInstanceState) { Log_OC.v(TAG, "onCreate() start"); @@ -296,6 +298,12 @@ public class FileDisplayActivity extends HookActivity cleanSecondFragment(); } + if (DisplayUtils.isGridView(getFile(), getStorageManager())){ + switchToGridView(); + } else { + switchToListView(); + } + } else { Log_OC.wtf(TAG, "initFragments() called with invalid NULLs!"); if (getAccount() == null) { @@ -467,6 +475,16 @@ public class FileDisplayActivity extends HookActivity public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); + mOptionsMenu = menu; + + MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view); + + 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)); + } + return true; } @@ -534,6 +552,18 @@ public class FileDisplayActivity extends HookActivity builder.create().show(); break; } + case R.id.action_switch_view:{ + if (isGridView()){ + item.setTitle(getApplicationContext().getString(R.string.action_switch_list_view)); + DisplayUtils.setViewMode(getFile(), false); + switchToListView(); + } else { + item.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view)); + DisplayUtils.setViewMode(getFile(), true); + switchToGridView(); + } + return true; + } default: retval = super.onOptionsItemSelected(item); } @@ -729,7 +759,8 @@ public class FileDisplayActivity extends HookActivity 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; } @@ -742,6 +773,12 @@ public class FileDisplayActivity extends HookActivity } cleanSecondFragment(); + MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view); + 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)); + } } @Override @@ -1135,6 +1172,16 @@ public class FileDisplayActivity extends HookActivity cleanSecondFragment(); // Sync Folder startSyncFolderOperation(directory, false); + + MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view); + + if (DisplayUtils.isGridView(directory, getStorageManager())){ + menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view)); + switchToGridView(); + } else { + menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view)); + switchToListView(); + } } /** @@ -1257,7 +1304,7 @@ public class FileDisplayActivity extends HookActivity super.onRemoteOperationFinish(operation, result); if (operation instanceof RemoveFileOperation) { - onRemoveFileOperationFinish((RemoveFileOperation)operation, result); + onRemoveFileOperationFinish((RemoveFileOperation) operation, result); } else if (operation instanceof RenameFileOperation) { onRenameFileOperationFinish((RenameFileOperation)operation, result); @@ -1435,25 +1482,11 @@ public class FileDisplayActivity extends HookActivity private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); - OCFile syncedFile = operation.getLocalFile(); - if (!result.isSuccess()) { - if (result.getCode() == ResultCode.SYNC_CONFLICT) { - Intent i = new Intent(this, ConflictsResolveActivity.class); - i.putExtra(ConflictsResolveActivity.EXTRA_FILE, syncedFile); - i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount()); - startActivity(i); - - } - - } else { + if (result.isSuccess()) { if (operation.transferWasRequested()) { + OCFile syncedFile = operation.getLocalFile(); onTransferStateChanged(syncedFile, true, true); - - } else { - Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, - operation, getResources()), Toast.LENGTH_LONG); - msg.show(); + invalidateOptionsMenu(); } } } @@ -1693,6 +1726,13 @@ public class FileDisplayActivity extends HookActivity private void sortByName(boolean ascending){ getListOfFilesFragment().sortByName(ascending); } + private boolean isGridView(){ return getListOfFilesFragment().isGridView(); } + private void switchToGridView() { + getListOfFilesFragment().switchToGridView(); + } + private void switchToListView() { + getListOfFilesFragment().switchToListView(); + } public void allFilesOption() { browseToRoot();