*/\r
package eu.alefzero.owncloud.ui.activity;\r
\r
+import android.accounts.Account;\r
+import android.app.Dialog;\r
+import android.app.ProgressDialog;\r
import android.content.Intent;\r
+import android.content.res.Configuration;\r
import android.os.Bundle;\r
import android.support.v4.app.FragmentTransaction;\r
\r
import com.actionbarsherlock.view.MenuItem;\r
\r
import eu.alefzero.owncloud.R;\r
+import eu.alefzero.owncloud.datamodel.OCFile;\r
+import eu.alefzero.owncloud.files.services.FileDownloader;\r
import eu.alefzero.owncloud.ui.fragment.FileDetailFragment;\r
\r
/**\r
* @author Bartek Przybylski\r
* \r
*/\r
-public class FileDetailActivity extends SherlockFragmentActivity {\r
- private FileDetailFragment mFileDetail;\r
+public class FileDetailActivity extends SherlockFragmentActivity implements FileDetailFragment.ContainerActivity {\r
+ \r
+ public static final int DIALOG_SHORT_WAIT = 0;\r
+ \r
+ private boolean mConfigurationChangedToLandscape = false;\r
\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
- setContentView(R.layout.file_activity_details);\r
\r
- ActionBar actionBar = getSupportActionBar();\r
- actionBar.setDisplayHomeAsUpEnabled(true);\r
- \r
- FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
- mFileDetail = new FileDetailFragment();\r
- ft.add(R.id.fragment, mFileDetail, "FileDetails");\r
- ft.commit();\r
+ // check if configuration changed to large-land ; for a tablet being changed from portrait to landscape when in FileDetailActivity \r
+ Configuration conf = getResources().getConfiguration();\r
+ mConfigurationChangedToLandscape = (conf.orientation == Configuration.ORIENTATION_LANDSCAPE && \r
+ (conf.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE\r
+ );\r
\r
+ if (!mConfigurationChangedToLandscape) {\r
+ setContentView(R.layout.file_activity_details);\r
+ \r
+ ActionBar actionBar = getSupportActionBar();\r
+ actionBar.setDisplayHomeAsUpEnabled(true);\r
+ \r
+ OCFile file = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE);\r
+ Account account = getIntent().getParcelableExtra(FileDownloader.EXTRA_ACCOUNT);\r
+ FileDetailFragment mFileDetail = new FileDetailFragment(file, account);\r
+ \r
+ FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
+ ft.replace(R.id.fragment, mFileDetail, FileDetailFragment.FTAG);\r
+ ft.commit();\r
+ \r
+ } else {\r
+ backToDisplayActivity(); // the 'back' won't be effective until this.onStart() and this.onResume() are completed;\r
+ }\r
+ \r
+ \r
}\r
\r
@Override\r
\r
switch(item.getItemId()){\r
case android.R.id.home:\r
- Intent intent = new Intent(this, FileDisplayActivity.class);\r
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\r
- intent.putExtra(FileDetailFragment.EXTRA_FILE, mFileDetail.getDisplayedFile());\r
- startActivity(intent);\r
- finish();\r
+ backToDisplayActivity();\r
returnValue = true;\r
}\r
\r
\r
@Override\r
protected void onResume() {\r
+ \r
super.onResume();\r
- mFileDetail.updateFileDetails(getIntent());\r
+ if (!mConfigurationChangedToLandscape) { \r
+ FileDetailFragment fragment = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ fragment.updateFileDetails();\r
+ }\r
+ }\r
+ \r
+\r
+ private void backToDisplayActivity() {\r
+ Intent intent = new Intent(this, FileDisplayActivity.class);\r
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\r
+ intent.putExtra(FileDetailFragment.EXTRA_FILE, getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE));\r
+ startActivity(intent);\r
+ finish();\r
}\r
\r
\r
+ @Override\r
+ protected Dialog onCreateDialog(int id) {\r
+ Dialog dialog = null;\r
+ switch (id) {\r
+ case DIALOG_SHORT_WAIT: {\r
+ ProgressDialog working_dialog = new ProgressDialog(this);\r
+ working_dialog.setMessage(getResources().getString(\r
+ R.string.wait_a_moment));\r
+ working_dialog.setIndeterminate(true);\r
+ working_dialog.setCancelable(false);\r
+ dialog = working_dialog;\r
+ break;\r
+ }\r
+ default:\r
+ dialog = null;\r
+ }\r
+ return dialog;\r
+ }\r
+ \r
+ \r
+ /**\r
+ * {@inheritDoc}\r
+ */\r
+ @Override\r
+ public void onFileStateChanged() {\r
+ // nothing to do here!\r
+ }\r
\r
}\r