X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/6496b9200d7574cde934b9b7ee0246efba3e8062..979bdc83b227022f7b0047326753e3e3e06846a2:/src/com/owncloud/android/ui/activity/FileDetailActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileDetailActivity.java b/src/com/owncloud/android/ui/activity/FileDetailActivity.java index 8af69f22..7a0eaebb 100644 --- a/src/com/owncloud/android/ui/activity/FileDetailActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDetailActivity.java @@ -18,7 +18,6 @@ package com.owncloud.android.ui.activity; import android.accounts.Account; -import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.BroadcastReceiver; @@ -79,32 +78,51 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File private FileDataStorageManager mStorageManager; private DownloadFinishReceiver mDownloadFinishReceiver; + + private Configuration mNewConfigurationChangeToApplyOnStart; + + private boolean mStarted; + + private boolean mDualPane; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + mStarted = false; + mFile = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE); mAccount = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_ACCOUNT); mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); - setContentView(R.layout.file_activity_details); - - ActionBar actionBar = getSupportActionBar(); - actionBar.setDisplayHomeAsUpEnabled(true); + // check if configuration is proper for this activity; tablets in landscape should pass the torch to FileDisplayActivity + Configuration conf = getResources().getConfiguration(); + mDualPane = (conf.orientation == Configuration.ORIENTATION_LANDSCAPE && + (conf.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE + ); - if (savedInstanceState == null) { - mWaitingToPreview = false; - createChildFragment(); + if (mDualPane) { + // only happens when notifications (downloads, uploads) are clicked at the notification bar + changeToDualView(false); + } else { - mWaitingToPreview = savedInstanceState.getBoolean(KEY_WAITING_TO_PREVIEW); - } + setContentView(R.layout.file_activity_details); - mDownloadConnection = new DetailsServiceConnection(); - bindService(new Intent(this, FileDownloader.class), mDownloadConnection, Context.BIND_AUTO_CREATE); - mUploadConnection = new DetailsServiceConnection(); - bindService(new Intent(this, FileUploader.class), mUploadConnection, Context.BIND_AUTO_CREATE); + ActionBar actionBar = getSupportActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + + if (savedInstanceState == null) { + mWaitingToPreview = false; + createChildFragment(); + } else { + mWaitingToPreview = savedInstanceState.getBoolean(KEY_WAITING_TO_PREVIEW); + } + + mDownloadConnection = new DetailsServiceConnection(); + bindService(new Intent(this, FileDownloader.class), mDownloadConnection, Context.BIND_AUTO_CREATE); + mUploadConnection = new DetailsServiceConnection(); + bindService(new Intent(this, FileUploader.class), mUploadConnection, Context.BIND_AUTO_CREATE); + } } /** @@ -134,10 +152,42 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File ft.commit(); } + @Override + public void onActivityResult (int requestCode, int resultCode, Intent data) { + Log_OC.e(TAG, "onActivityResult"); + super.onActivityResult(requestCode, resultCode, data); + } @Override public void onConfigurationChanged (Configuration newConfig) { super.onConfigurationChanged(newConfig); + if (mStarted) { + checkConfigurationChange(newConfig); + } else { + mNewConfigurationChangeToApplyOnStart = newConfig; + } + } + + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(KEY_WAITING_TO_PREVIEW, mWaitingToPreview); + } + + + @Override + public void onStart() { + super.onStart(); + Log_OC.e(TAG, "onStart"); + if (mNewConfigurationChangeToApplyOnStart != null) { + checkConfigurationChange(mNewConfigurationChangeToApplyOnStart); + mNewConfigurationChangeToApplyOnStart = null; + } + mStarted = true; + } + + private void checkConfigurationChange(Configuration newConfig) { finish(); Intent intent = null; if ((newConfig.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE @@ -170,18 +220,17 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File } startActivity(intent); } - - + @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean(KEY_WAITING_TO_PREVIEW, mWaitingToPreview); + public void onStop() { + super.onStop(); + Log_OC.e(TAG, "onStop"); + mStarted = false; } - - @Override public void onPause() { super.onPause(); + Log_OC.e(TAG, "onPause"); if (mDownloadFinishReceiver != null) { unregisterReceiver(mDownloadFinishReceiver); mDownloadFinishReceiver = null; @@ -192,6 +241,7 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File @Override public void onResume() { super.onResume(); + Log_OC.e(TAG, "onResume"); // TODO this is probably unnecessary Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG); if (fragment != null && fragment instanceof FileDetailFragment) { @@ -250,6 +300,7 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File @Override public void onDestroy() { super.onDestroy(); + Log_OC.e(TAG, "onDestroy"); if (mDownloadConnection != null) { unbindService(mDownloadConnection); mDownloadConnection = null; @@ -267,8 +318,7 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File switch(item.getItemId()){ case android.R.id.home: - //backToDisplayActivity(); - onBackPressed(); + changeToDualView(true); returnValue = true; break; default: @@ -278,14 +328,17 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File return returnValue; } - //private void backToDisplayActivity() { @Override public void onBackPressed() { + changeToDualView(true); + } + + private void changeToDualView(boolean moveToParent) { Intent intent = new Intent(this, FileDisplayActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); OCFile targetFile = null; if (mFile != null) { - targetFile = mStorageManager.getFileById(mFile.getParentId()); + targetFile = moveToParent ? mStorageManager.getFileById(mFile.getParentId()) : mFile;; } intent.putExtra(FileDetailFragment.EXTRA_FILE, targetFile); intent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, mAccount); @@ -414,4 +467,10 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File } + @Override + protected void onAccountChanged() { + // TODO Auto-generated method stub + + } + }