import java.io.File;\r
\r
import android.accounts.Account;\r
+import android.app.Activity;\r
import android.app.AlertDialog;\r
import android.app.ProgressDialog;\r
import android.app.AlertDialog.Builder;\r
import android.os.IBinder;\r
import android.preference.PreferenceManager;\r
import android.provider.MediaStore;\r
+import android.support.v4.app.Fragment;\r
import android.support.v4.app.FragmentTransaction;\r
import android.util.Log;\r
import android.view.View;\r
import com.owncloud.android.ui.dialog.SslValidatorDialog;\r
import com.owncloud.android.ui.dialog.SslValidatorDialog.OnSslValidatorListener;\r
import com.owncloud.android.ui.fragment.FileDetailFragment;\r
+import com.owncloud.android.ui.fragment.FileFragment;\r
+import com.owncloud.android.ui.fragment.FilePreviewFragment;\r
import com.owncloud.android.ui.fragment.OCFileListFragment;\r
\r
import com.owncloud.android.R;\r
\r
private static final String TAG = "FileDisplayActivity";\r
\r
- private static int[] mMenuIdentifiersToPatch = {R.id.about_app};\r
+ private static int[] mMenuIdentifiersToPatch = {R.id.action_about_app};\r
\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
if (mDualPane && getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG) == null) {\r
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
if (mCurrentFile != null) {\r
- transaction.replace(R.id.file_details_container, new FileDetailFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG); // empty FileDetailFragment\r
+ if (mCurrentFile.isDown() && FilePreviewFragment.canBePreviewed(mCurrentFile)) {\r
+ transaction.replace(R.id.file_details_container, new FilePreviewFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);\r
+ } else {\r
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);\r
+ }\r
mCurrentFile = null;\r
+ \r
} else {\r
transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FileDetailFragment.FTAG); // empty FileDetailFragment\r
}\r
@Override\r
public boolean onCreateOptionsMenu(Menu menu) {\r
MenuInflater inflater = getSherlock().getMenuInflater();\r
- inflater.inflate(R.menu.menu, menu);\r
+ inflater.inflate(R.menu.main_menu, menu);\r
\r
patchHiddenAccents(menu);\r
\r
public boolean onOptionsItemSelected(MenuItem item) {\r
boolean retval = true;\r
switch (item.getItemId()) {\r
- case R.id.createDirectoryItem: {\r
+ case R.id.action_create_dir: {\r
showDialog(DIALOG_CREATE_DIR);\r
break;\r
}\r
- case R.id.startSync: {\r
+ case R.id.action_sync_account: {\r
startSynchronization();\r
break;\r
}\r
startActivity(settingsIntent);\r
break;\r
}\r
- case R.id.about_app : {\r
+ case R.id.action_about_app: {\r
showDialog(DIALOG_ABOUT_APP);\r
break;\r
}\r
\r
if (mDualPane) {\r
// Resets the FileDetailsFragment on Tablets so that it always displays\r
- FileDetailFragment fileDetails = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (fileDetails != null && !fileDetails.isEmpty()) {\r
+ Fragment fileFragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (fileFragment != null && (fileFragment instanceof FilePreviewFragment || !((FileDetailFragment) fileFragment).isEmpty())) {\r
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
- transaction.remove(fileDetails);\r
- transaction.add(R.id.file_details_container, new FileDetailFragment(null, null), FileDetailFragment.FTAG);\r
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FileDetailFragment.FTAG); // empty FileDetailFragment \r
transaction.commit();\r
}\r
}\r
super.onSaveInstanceState(outState);\r
outState.putParcelable(FileDetailFragment.EXTRA_FILE, mCurrentDir);\r
if (mDualPane) {\r
- FileDetailFragment fragment = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ FileFragment fragment = (FileFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
if (fragment != null) {\r
- OCFile file = fragment.getDisplayedFile();\r
+ OCFile file = fragment.getFile();\r
if (file != null) {\r
outState.putParcelable(FileDetailFragment.EXTRA_FILE, file);\r
}\r
\r
if (mDualPane) {\r
// Resets the FileDetailsFragment on Tablets so that it always displays\r
- FileDetailFragment fileDetails = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (fileDetails != null && !fileDetails.isEmpty()) {\r
+ Fragment fileFragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (fileFragment != null && (fileFragment instanceof FilePreviewFragment || !((FileDetailFragment) fileFragment).isEmpty())) {\r
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
- transaction.remove(fileDetails);\r
- transaction.add(R.id.file_details_container, new FileDetailFragment(null, null), FileDetailFragment.FTAG);\r
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FileDetailFragment.FTAG); // empty FileDetailFragment \r
transaction.commit();\r
}\r
}\r
*/\r
@Override\r
public void onFileClick(OCFile file) {\r
- \r
+\r
// If we are on a large device -> update fragment\r
if (mDualPane) {\r
// buttons in the details view are problematic when trying to reuse an existing fragment; create always a new one solves some of them, BUT no all; downloads are 'dangerous'\r
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
- transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);\r
- transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
+ if (file != null && file.isDown() && FilePreviewFragment.canBePreviewed(file)) {\r
+ transaction.replace(R.id.file_details_container, new FilePreviewFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);\r
+ } else {\r
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);\r
+ }\r
+ //transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
transaction.commit();\r
\r
} else { // small or medium screen device -> new Activity\r
if (mFileList != null)\r
mFileList.listDirectory();\r
if (mDualPane) {\r
- FileDetailFragment fragment = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (fragment != null)\r
- fragment.updateFileDetails(false);\r
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (fragment != null && fragment instanceof FileDetailFragment) {\r
+ ((FileDetailFragment)fragment).updateFileDetails(false);\r
+ }\r
}\r
}\r
\r
msg.show();\r
OCFile removedFile = operation.getFile();\r
if (mDualPane) {\r
- FileDetailFragment details = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (details != null && removedFile.equals(details.getDisplayedFile()) ) {\r
+ FileFragment details = (FileFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (details != null && removedFile.equals(details.getFile())) {\r
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null)); // empty FileDetailFragment\r
transaction.commit();\r
OCFile renamedFile = operation.getFile();\r
if (result.isSuccess()) {\r
if (mDualPane) {\r
- FileDetailFragment details = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (details != null && renamedFile.equals(details.getDisplayedFile()) ) {\r
- details.updateFileDetails(renamedFile, AccountUtils.getCurrentOwnCloudAccount(this));\r
+ FileFragment details = (FileFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (details != null && details instanceof FileDetailFragment && renamedFile.equals(details.getFile()) ) {\r
+ ((FileDetailFragment) details).updateFileDetails(renamedFile, AccountUtils.getCurrentOwnCloudAccount(this));\r
}\r
}\r
if (mStorageManager.getFileById(renamedFile.getParentId()).equals(mCurrentDir)) {\r
fileListFragment.listDirectory();\r
}*/\r
if (mDualPane) {\r
- FileDetailFragment details = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- if (details != null && file.equals(details.getDisplayedFile()) ) {\r
+ FileFragment details = (FileFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ if (details != null && details instanceof FileDetailFragment && file.equals(details.getFile()) ) {\r
if (downloading || uploading) {\r
- details.updateFileDetails(file, AccountUtils.getCurrentOwnCloudAccount(this));\r
+ ((FileDetailFragment)details).updateFileDetails(file, AccountUtils.getCurrentOwnCloudAccount(this));\r
} else {\r
- details.updateFileDetails(downloading || uploading);\r
+ ((FileDetailFragment)details).updateFileDetails(downloading || uploading);\r
}\r
}\r
}\r
}\r
\r
\r
- \r
+ @Override\r
+ public void showFragmentWithDetails(OCFile file) {\r
+ if (mDualPane) {\r
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();\r
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG); \r
+ transaction.commit();\r
+ \r
+ } else {\r
+ Intent showDetailsIntent = new Intent(this, FileDetailActivity.class);\r
+ showDetailsIntent.putExtra(FileDetailFragment.EXTRA_FILE, file);\r
+ showDetailsIntent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(this));\r
+ showDetailsIntent.putExtra(FileDetailActivity.EXTRA_MODE, FileDetailActivity.MODE_DETAILS);\r
+ startActivity(showDetailsIntent);\r
+ }\r
+ }\r
\r
\r
}\r