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