X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/1083eb8683b5c6b486bf8c16c081d7109aced91c..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 d8383a39..461485c5 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDetailActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDetailActivity.java @@ -17,35 +17,128 @@ */ package eu.alefzero.owncloud.ui.activity; - -import eu.alefzero.owncloud.R; -import eu.alefzero.owncloud.ui.fragment.FileDetail; +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.FragmentActivity; import android.support.v4.app.FragmentTransaction; -import android.view.Window; + +import com.actionbarsherlock.app.ActionBar; +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; /** - * This activity displays the details of a file like - * its name, its size and so on. + * This activity displays the details of a file like its name, its size and so + * on. + * * @author Bartek Przybylski - * + * */ -public class FileDetailActivity extends FragmentActivity { - private FileDetail mFileDetail; - -@Override -protected void onCreate(Bundle savedInstanceState) { - // TODO Auto-generated method stub - super.onCreate(savedInstanceState); - getWindow().requestFeature(Window.FEATURE_NO_TITLE); - setContentView(R.layout.file_activity_details); - - mFileDetail = new FileDetail(); - FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - ft.add(R.id.fileDetail, mFileDetail); - ft.commit(); - -} +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); + + // 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 + public boolean onOptionsItemSelected(MenuItem item) { + boolean returnValue = false; + + switch(item.getItemId()){ + case android.R.id.home: + backToDisplayActivity(); + returnValue = true; + } + + return returnValue; + } + + + + @Override + protected void onResume() { + + super.onResume(); + 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! + } }