android:theme="@style/Theme.ownCloud">
<activity
android:name=".ui.activity.FileDisplayActivity"
- android:label="@string/app_name">
+ android:label="@string/app_name"
+ android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<service android:name=".files.services.FileUploader" />
<service android:name=".media.MediaService" />
- <activity android:name=".ui.activity.FileDetailActivity" />
+ <activity android:name=".ui.activity.FileDetailActivity" android:configChanges="orientation|screenSize"/>
<activity android:name=".ui.activity.PinCodeActivity" />
<activity android:name=".extensions.ExtensionsAvailableActivity"></activity>
<activity android:name=".extensions.ExtensionsListActivity"></activity>
<activity android:name=".ui.activity.LogHistoryActivity"/>
- <receiver android:name=".files.InstantUploadBroadcastReceiver">\r
- <intent-filter>\r
- <action android:name="com.android.camera.NEW_PICTURE" />\r
- <data android:mimeType="image/*" />\r
+ <receiver android:name=".files.InstantUploadBroadcastReceiver">
+ <intent-filter>
+ <action android:name="com.android.camera.NEW_PICTURE" />
+ <data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
- </intent-filter>\r
- </receiver>\r
- <receiver android:name=".files.BootupBroadcastReceiver">\r
- <intent-filter>\r
- <action android:name="android.intent.action.BOOT_COMPLETED"/>\r
- </intent-filter>\r
- </receiver>\r
- <service android:name=".files.services.FileObserverService"/>\r
- \r
- </application>\r
-\r
+ </intent-filter>
+ </receiver>
+ <receiver android:name=".files.BootupBroadcastReceiver">
+ <intent-filter>
+ <action android:name="android.intent.action.BOOT_COMPLETED"/>
+ </intent-filter>
+ </receiver>
+ <service android:name=".files.services.FileObserverService"/>
+
+ </application>
+
</manifest>
android:text="@string/downloader_download_in_progress_ticker"
/>
- <ProgressBar android:id="@+id/fdProgressBar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:progressDrawable="@android:drawable/progress_horizontal"
- android:indeterminate="false"
- android:indeterminateOnly="false"
- />
-
<LinearLayout
+ android:id="@+id/fdProgressBlock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="12dp"
+ android:layout_marginBottom="12dp"
+ android:orientation="horizontal"
>
- <Button
- android:id="@+id/fdDownloadBtn"
+ <ProgressBar
+ android:id="@+id/fdProgressBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/filedetails_download" />
-
- <Button
- android:id="@+id/fdOpenBtn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="@string/filedetails_open" />
-
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:layout_marginTop="12dp"
- >
-
+ android:progressDrawable="@android:drawable/progress_horizontal"
+ android:indeterminate="false"
+ android:indeterminateOnly="false"
+ />
+
<Button
- android:id="@+id/fdRenameBtn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="@string/common_rename" />
-
- <Button
- android:id="@+id/fdRemoveBtn"
- android:layout_width="0dp"
+ android:id="@+id/fdCancelBtn"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="@string/common_remove" />
+ android:layout_marginLeft="12dp"
+ android:text="@string/common_cancel" />
</LinearLayout>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_open_file_with" android:title="@string/filedetails_open" android:icon="@android:drawable/ic_menu_edit" android:orderInCategory="1" />
- <item android:id="@+id/action_download_file" android:title="@string/filedetails_download" android:orderInCategory="1" />
+ <item android:id="@+id/action_download_file" android:title="@string/filedetails_download" android:icon="@drawable/ic_action_download" android:orderInCategory="1" />
+ <item android:id="@+id/action_sync_file" android:title="@string/filedetails_sync_file" android:icon="@drawable/ic_action_refresh" android:orderInCategory="1" />
<item android:id="@+id/action_cancel_download" android:title="@string/common_cancel_download" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:orderInCategory="1" />
<item android:id="@+id/action_cancel_upload" android:title="@string/common_cancel_upload" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:orderInCategory="1" />
<item android:id="@+id/action_rename_file" android:title="@string/common_rename" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
<item android:id="@+id/action_remove_file" android:title="@string/common_remove" android:icon="@android:drawable/ic_menu_delete" android:orderInCategory="1" />
- <item android:id="@+id/action_see_details" android:title="@string/actionbar_see_details" android:icon="@android:drawable/ic_menu_view" android:orderInCategory="1" />
+ <item android:id="@+id/action_see_details" android:title="@string/actionbar_see_details" android:icon="@android:drawable/ic_menu_info_details" android:orderInCategory="1" />
</menu>
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.AccountUtils;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader;
import com.owncloud.android.ui.fragment.FileDetailFragment;
import com.owncloud.android.ui.fragment.FileFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
-import com.owncloud.android.AccountUtils;
-import com.owncloud.android.Log_OC;
-
-import com.owncloud.android.R;
+import com.owncloud.android.ui.preview.PreviewVideoActivity;
/**
* This activity displays the details of a file like its name, its size and so
public static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
- private boolean mConfigurationChangedToLandscape = false;
private FileDownloaderBinder mDownloaderBinder = null;
private ServiceConnection mDownloadConnection, mUploadConnection = null;
private FileUploaderBinder mUploaderBinder = null;
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());
- // check if configuration changed to large-land ; for a tablet being changed from portrait to landscape when in FileDetailActivity
+ // check if configuration is proper for this activity; tablets in landscape should pass the torch to FileDisplayActivity
Configuration conf = getResources().getConfiguration();
- mConfigurationChangedToLandscape = (conf.orientation == Configuration.ORIENTATION_LANDSCAPE &&
- (conf.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE
- );
+ mDualPane = (conf.orientation == Configuration.ORIENTATION_LANDSCAPE &&
+ (conf.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE
+ );
- if (!mConfigurationChangedToLandscape) {
+ if (mDualPane) {
+ // only happens when notifications (downloads, uploads) are clicked at the notification bar
+ changeToDualView(false);
+
+ } else {
setContentView(R.layout.file_activity_details);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
-
+
if (savedInstanceState == null) {
mWaitingToPreview = false;
createChildFragment();
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);
-
-
- } else {
- backToDisplayActivity(false); // the 'back' won't be effective until this.onStart() and this.onResume() are completed;
}
-
}
/**
Fragment newFragment = null;
if (PreviewMediaFragment.canBePreviewed(mFile) && mode == MODE_PREVIEW) {
if (mFile.isDown()) {
- newFragment = new PreviewMediaFragment(mFile, mAccount);
+ int startPlaybackPosition = getIntent().getIntExtra(PreviewVideoActivity.EXTRA_START_POSITION, 0);
+ boolean autoplay = getIntent().getBooleanExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, true);
+ newFragment = new PreviewMediaFragment(mFile, mAccount, startPlaybackPosition, autoplay);
} else {
newFragment = new FileDetailFragment(mFile, mAccount);
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
+ && newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+
+ intent = new Intent(this, FileDisplayActivity.class);
+ intent .putExtra(FileDetailFragment.EXTRA_FILE, mFile);
+ intent .putExtra(FileDetailFragment.EXTRA_ACCOUNT, mAccount);
+ intent.putExtra(EXTRA_MODE, getIntent().getIntExtra(EXTRA_MODE, MODE_PREVIEW));
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
+ if (fragment != null && mFile != null && fragment instanceof PreviewMediaFragment && mFile.isVideo()) {
+ PreviewMediaFragment videoFragment = (PreviewMediaFragment)fragment;
+ intent.putExtra(PreviewVideoActivity.EXTRA_START_POSITION, videoFragment.getPosition());
+ intent.putExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, videoFragment.isPlaying());
+ }
+
+ } else {
+ intent = new Intent(this, FileDetailActivity.class);
+ intent .putExtra(FileDetailFragment.EXTRA_FILE, mFile);
+ intent .putExtra(FileDetailFragment.EXTRA_ACCOUNT, mAccount);
+ intent.putExtra(EXTRA_MODE, getIntent().getIntExtra(EXTRA_MODE, MODE_PREVIEW));
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
+ if (fragment != null && mFile != null && fragment instanceof PreviewMediaFragment && mFile.isVideo()) {
+ PreviewMediaFragment videoFragment = (PreviewMediaFragment)fragment;
+ intent.putExtra(PreviewVideoActivity.EXTRA_START_POSITION, videoFragment.getPosition());
+ intent.putExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, videoFragment.isPlaying());
+ }
+ // and maybe 'waiting to preview' flag
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ 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;
@Override
public void onResume() {
super.onResume();
- if (!mConfigurationChangedToLandscape) {
- // TODO this is probably unnecessary
- Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
- if (fragment != null && fragment instanceof FileDetailFragment) {
- ((FileDetailFragment) fragment).updateFileDetails(false, false);
- }
+ Log_OC.e(TAG, "onResume");
+ // TODO this is probably unnecessary
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
+ if (fragment != null && fragment instanceof FileDetailFragment) {
+ ((FileDetailFragment) fragment).updateFileDetails(false, false);
}
+
// Listen for download messages
IntentFilter downloadIntentFilter = new IntentFilter(FileDownloader.DOWNLOAD_ADDED_MESSAGE);
downloadIntentFilter.addAction(FileDownloader.DOWNLOAD_FINISH_MESSAGE);
@Override
public void onDestroy() {
super.onDestroy();
+ Log_OC.e(TAG, "onDestroy");
if (mDownloadConnection != null) {
unbindService(mDownloadConnection);
mDownloadConnection = null;
switch(item.getItemId()){
case android.R.id.home:
- backToDisplayActivity(true);
+ changeToDualView(true);
returnValue = true;
break;
default:
return returnValue;
}
- private void backToDisplayActivity(boolean moveToParent) {
+ @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 = moveToParent ? mStorageManager.getFileById(mFile.getParentId()) : mFile;
+ targetFile = moveToParent ? mStorageManager.getFileById(mFile.getParentId()) : mFile;;
}
intent.putExtra(FileDetailFragment.EXTRA_FILE, targetFile);
intent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, mAccount);
finish();
}
-
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
if (success && mWaitingToPreview) {
mFile = mStorageManager.getFileById(mFile.getFileId()); // update the file from database, for the local storage path
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
- transaction.replace(R.id.fragment, new PreviewMediaFragment(mFile, mAccount), FileDetailFragment.FTAG);
+ transaction.replace(R.id.fragment, new PreviewMediaFragment(mFile, mAccount, 0, true), FileDetailFragment.FTAG);
transaction.commit();
mWaitingToPreview = false;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.content.res.Resources.NotFoundException;
import android.database.Cursor;
import android.net.Uri;
import com.owncloud.android.ui.preview.PreviewImageActivity;
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
+import com.owncloud.android.ui.preview.PreviewVideoActivity;
/**
* Displays, what files the user has available in his ownCloud.
private OCFile mWaitingToPreview;
private Handler mHandler;
+
+ private Configuration mNewConfigurationChangeToApplyOnStart;
+ private boolean mStarted;
@Override
public void onCreate(Bundle savedInstanceState) {
Log_OC.d(getClass().toString(), "onCreate() start");
super.onCreate(savedInstanceState);
+ mStarted = false;
mHandler = new Handler();
setContentView(R.layout.files);
mFileList = (OCFileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);
mDualPane = (findViewById(R.id.file_details_container) != null);
- if (mDualPane) {
- if (savedInstanceState == null) initFileDetailsInDualPane();
- } else {
- // quick patchES to fix problem in turn from landscape to portrait, when a file is selected in the right pane
- // TODO serious refactorization in activities and fragments providing file browsing and handling
- if (mCurrentFile != null) {
- onFileClick(mCurrentFile);
- mCurrentFile = null;
- }
- Fragment rightPanel = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
- if (rightPanel != null) {
- FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
- transaction.remove(rightPanel);
- transaction.commit();
- }
+ if (mDualPane && savedInstanceState == null) {
+ initFileDetailsInDualPane();
}
// Action bar setup
}
+ @Override
+ public void onConfigurationChanged (Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ if (mStarted) {
+ checkConfigurationChange(newConfig);
+ } else {
+ mNewConfigurationChangeToApplyOnStart = newConfig;
+ }
+ }
+
+
/**
* Launches the account creation activity. To use when no ownCloud account is available
*/
if (mCurrentFile != null) {
if (PreviewMediaFragment.canBePreviewed(mCurrentFile)) {
if (mCurrentFile.isDown()) {
- transaction.replace(R.id.file_details_container, new PreviewMediaFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
+ int startPlaybackPosition = getIntent().getIntExtra(PreviewVideoActivity.EXTRA_START_POSITION, 0);
+ boolean autoplay = getIntent().getBooleanExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, true);
+ transaction.replace(R.id.file_details_container, new PreviewMediaFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this), startPlaybackPosition, autoplay), FileDetailFragment.FTAG);
} else {
transaction.replace(R.id.file_details_container, new FileDetailFragment(mCurrentFile, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
mWaitingToPreview = mCurrentFile;
@Override
+ public void onStart() {
+ super.onStart();
+ if (mNewConfigurationChangeToApplyOnStart != null) {
+ checkConfigurationChange(mNewConfigurationChangeToApplyOnStart);
+ mNewConfigurationChangeToApplyOnStart = null;
+ }
+ mStarted = true;
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ mStarted = false;
+ }
+
+
+ private void checkConfigurationChange(Configuration newConfig) {
+ FileFragment fragment = (FileFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
+ if (fragment != null
+ && fragment.getFile() != null
+ && (newConfig.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE
+ && newConfig.orientation != Configuration.ORIENTATION_LANDSCAPE) {
+
+ onFileClick(fragment.getFile(), true);
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ transaction.remove((Fragment)fragment);
+ transaction.commit();
+
+ } else {
+ finish();
+ Intent intent = new Intent(this, FileDisplayActivity.class);
+ intent.putExtra(FileDetailFragment.EXTRA_FILE, mCurrentDir);
+ intent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(this));
+ startActivity(intent);
+ }
+ }
+
+
+ @Override
public void onDestroy() {
super.onDestroy();
if (mDownloadConnection != null)
* Called, when the user selected something for uploading
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ACTION_SELECT_CONTENT_FROM_APPS && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) {
requestSimpleUpload(data, resultCode);
if (success && waitedPreview) {
mWaitingToPreview = mStorageManager.getFileById(mWaitingToPreview.getFileId()); // update the file from database, for the local storage path
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
- transaction.replace(R.id.file_details_container, new PreviewMediaFragment(mWaitingToPreview, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
+ transaction.replace(R.id.file_details_container, new PreviewMediaFragment(mWaitingToPreview, AccountUtils.getCurrentOwnCloudAccount(this), 0, true), FileDetailFragment.FTAG);
transaction.commit();
mWaitingToPreview = null;
* {@inheritDoc}
*/
@Override
- public void onFileClick(OCFile file) {
+ public void onFileClick(OCFile file, boolean onOrientationChange) {
if (file != null && PreviewImageFragment.canBePreviewed(file)) {
// preview image - it handles the download, if needed
startPreviewImage(file);
} else if (file != null && PreviewMediaFragment.canBePreviewed(file)) {
if (file.isDown()) {
// general preview
- startMediaPreview(file);
+ if (!onOrientationChange) {
+ startMediaPreview(file, 0, true, onOrientationChange);
+ } else {
+ int startPlaybackPosition = 0;
+ boolean autoplay = true;
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);
+ if (fragment != null && file.isVideo()) {
+ PreviewMediaFragment videoFragment = (PreviewMediaFragment)fragment;
+ startPlaybackPosition = videoFragment.getPosition();
+ autoplay = videoFragment.isPlaying();
+ }
+ startMediaPreview(file, startPlaybackPosition, autoplay, onOrientationChange);
+ }
} else {
// automatic download, preview on finish
- startDownloadForPreview(file);
+ startDownloadForPreview(file, onOrientationChange);
}
} else {
// details view
- startDetails(file);
+ startDetails(file, onOrientationChange);
}
}
startActivity(showDetailsIntent);
}
- private void startMediaPreview(OCFile file) {
- if (mDualPane) {
+ private void startMediaPreview(OCFile file, int startPlaybackPosition, boolean autoplay, boolean onOrientationChange) {
+ if (mDualPane && !onOrientationChange) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
- transaction.replace(R.id.file_details_container, new PreviewMediaFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
+ transaction.replace(R.id.file_details_container, new PreviewMediaFragment(file, AccountUtils.getCurrentOwnCloudAccount(this), startPlaybackPosition, autoplay), FileDetailFragment.FTAG);
transaction.commit();
} else {
Intent showDetailsIntent = new Intent(this, FileDetailActivity.class);
showDetailsIntent.putExtra(FileDetailFragment.EXTRA_FILE, file);
showDetailsIntent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(this));
+ showDetailsIntent.putExtra(PreviewVideoActivity.EXTRA_START_POSITION, startPlaybackPosition);
+ showDetailsIntent.putExtra(PreviewVideoActivity.EXTRA_AUTOPLAY, autoplay);
startActivity(showDetailsIntent);
}
}
- private void startDownloadForPreview(OCFile file) {
- if (mDualPane) {
+ private void startDownloadForPreview(OCFile file, boolean onOrientationChange) {
+ if (mDualPane && !onOrientationChange) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
transaction.commit();
}
- private void startDetails(OCFile file) {
- if (mDualPane && !file.isImage()) {
+ private void startDetails(OCFile file, boolean onOrientationChange) {
+ if (mDualPane && !file.isImage() && !onOrientationChange) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.file_details_container, new FileDetailFragment(file, AccountUtils.getCurrentOwnCloudAccount(this)), FileDetailFragment.FTAG);
transaction.commit();
import java.io.File;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
import android.accounts.Account;
+import android.accounts.AccountManager;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.MimeTypeMap;
-import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockFragment;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
import com.owncloud.android.DisplayUtils;
import com.owncloud.android.Log_OC;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.files.services.FileUploader;
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
+import com.owncloud.android.network.OwnCloudClientUtils;
import com.owncloud.android.operations.OnRemoteOperationListener;
import com.owncloud.android.operations.RemoteOperation;
import com.owncloud.android.operations.RemoteOperationResult;
import com.owncloud.android.R;
import eu.alefzero.webdav.OnDatatransferProgressListener;
+import eu.alefzero.webdav.WebdavClient;
import eu.alefzero.webdav.WebdavUtils;
/**
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
+ setHasOptionsMenu(true);
}
if (mLayout == R.layout.file_details_fragment) {
mView.findViewById(R.id.fdKeepInSync).setOnClickListener(this);
- mView.findViewById(R.id.fdRenameBtn).setOnClickListener(this);
- mView.findViewById(R.id.fdDownloadBtn).setOnClickListener(this);
- mView.findViewById(R.id.fdOpenBtn).setOnClickListener(this);
- mView.findViewById(R.id.fdRemoveBtn).setOnClickListener(this);
- //mView.findViewById(R.id.fdShareBtn).setOnClickListener(this);
ProgressBar progressBar = (ProgressBar)mView.findViewById(R.id.fdProgressBar);
mProgressListener = new ProgressListener(progressBar);
+ mView.findViewById(R.id.fdCancelBtn).setOnClickListener(this);
}
updateFileDetails(false, false);
return view;
}
-
/**
* {@inheritDoc}
*/
}
- @Override\r
- public View getView() {\r
- return super.getView() == null ? mView : super.getView();\r
- }\r
-
- \r
- @Override\r
- public void onClick(View v) {\r
- switch (v.getId()) {\r
- case R.id.fdDownloadBtn: {\r
- FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();\r
- FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();\r
- if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile)) {\r
- downloaderBinder.cancel(mAccount, mFile);\r
- if (mFile.isDown()) {\r
- setButtonsForDown();\r
- } else {\r
- setButtonsForRemote();\r
- }\r
-\r
- } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile)) {\r
- uploaderBinder.cancel(mAccount, mFile);\r
- if (!mFile.fileExists()) {\r
- // TODO make something better\r
- if (getActivity() instanceof FileDisplayActivity) {\r
- // double pane\r
- FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();\r
- transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FTAG); // empty FileDetailFragment\r
- transaction.commit();\r
- mContainerActivity.onFileStateChanged();\r
- } else {\r
- getActivity().finish();\r
- }\r
- \r
- } else if (mFile.isDown()) {\r
- setButtonsForDown();\r
- } else {\r
- setButtonsForRemote();\r
- }\r
- \r
- } else {\r
- mLastRemoteOperation = new SynchronizeFileOperation(mFile, null, mStorageManager, mAccount, true, false, getActivity());\r
- mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity());\r
- \r
- // update ui \r
- boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity;\r
- getActivity().showDialog((inDisplayActivity)? FileDisplayActivity.DIALOG_SHORT_WAIT : FileDetailActivity.DIALOG_SHORT_WAIT);\r
- setButtonsForTransferring(); // disable button immediately, although the synchronization does not result in a file transference\r
- \r
- }\r
- break;\r
- }\r
- case R.id.fdKeepInSync: {
- CheckBox cb = (CheckBox) getView().findViewById(R.id.fdKeepInSync);
- mFile.setKeepInSync(cb.isChecked());
- mStorageManager.saveFile(mFile);
-
- /// register the OCFile instance in the observer service to monitor local updates;
- /// if necessary, the file is download
- Intent intent = new Intent(getActivity().getApplicationContext(),
- FileObserverService.class);
- intent.putExtra(FileObserverService.KEY_FILE_CMD,
- (cb.isChecked()?
- FileObserverService.CMD_ADD_OBSERVED_FILE:
- FileObserverService.CMD_DEL_OBSERVED_FILE));
- intent.putExtra(FileObserverService.KEY_CMD_ARG_FILE, mFile);
- intent.putExtra(FileObserverService.KEY_CMD_ARG_ACCOUNT, mAccount);
- getActivity().startService(intent);
-
- if (mFile.keepInSync()) {
- onClick(getView().findViewById(R.id.fdDownloadBtn)); // force an immediate synchronization
- }
- break;
+ @Override
+ public View getView() {
+ return super.getView() == null ? mView : super.getView();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ super.onCreateOptionsMenu(menu, inflater);
+ inflater.inflate(R.menu.file_actions_menu, menu);
+ MenuItem item = menu.findItem(R.id.action_see_details);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onPrepareOptionsMenu (Menu menu) {
+ super.onPrepareOptionsMenu(menu);
+
+ List<Integer> toHide = new ArrayList<Integer>();
+ List<Integer> toShow = new ArrayList<Integer>();
+
+ FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
+ boolean downloading = downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile);
+ FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();
+ boolean uploading = uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile);
+
+ if (downloading || uploading) {
+ toHide.add(R.id.action_download_file);
+ toHide.add(R.id.action_rename_file);
+ toHide.add(R.id.action_remove_file);
+ toHide.add(R.id.action_open_file_with);
+ if (!downloading) {
+ toHide.add(R.id.action_cancel_download);
+ toShow.add(R.id.action_cancel_upload);
+ } else {
+ toHide.add(R.id.action_cancel_upload);
+ toShow.add(R.id.action_cancel_download);
}
- case R.id.fdRenameBtn: {
- String fileName = mFile.getFileName();
- int extensionStart = mFile.isDirectory() ? -1 : fileName.lastIndexOf(".");
- int selectionEnd = (extensionStart >= 0) ? extensionStart : fileName.length();
- EditNameDialog dialog = EditNameDialog.newInstance(getString(R.string.rename_dialog_title), fileName, 0, selectionEnd, this);
- dialog.show(getFragmentManager(), "nameeditdialog");
- break;
- }
- case R.id.fdRemoveBtn: {
- ConfirmationDialogFragment confDialog = ConfirmationDialogFragment.newInstance(
- R.string.confirmation_remove_alert,
- new String[]{mFile.getFileName()},
- mFile.isDown() ? R.string.confirmation_remove_remote_and_local : R.string.confirmation_remove_remote,
- mFile.isDown() ? R.string.confirmation_remove_local : -1,
- R.string.common_cancel);
- confDialog.setOnConfirmationListener(this);
- confDialog.show(getFragmentManager(), FTAG_CONFIRMATION);
- break;
+
+ } else if (mFile != null && mFile.isDown()) {
+ toHide.add(R.id.action_download_file);
+ toHide.add(R.id.action_cancel_download);
+ toHide.add(R.id.action_cancel_upload);
+
+ toShow.add(R.id.action_rename_file);
+ toShow.add(R.id.action_remove_file);
+ toShow.add(R.id.action_open_file_with);
+ toShow.add(R.id.action_sync_file);
+
+ } else if (mFile != null) {
+ toHide.add(R.id.action_open_file_with);
+ toHide.add(R.id.action_cancel_download);
+ toHide.add(R.id.action_cancel_upload);
+ toHide.add(R.id.action_sync_file);
+
+ toShow.add(R.id.action_rename_file);
+ toShow.add(R.id.action_remove_file);
+ toShow.add(R.id.action_download_file);
+
+ } else {
+ toHide.add(R.id.action_open_file_with);
+ toHide.add(R.id.action_cancel_download);
+ toHide.add(R.id.action_cancel_upload);
+ toHide.add(R.id.action_sync_file);
+ toHide.add(R.id.action_download_file);
+ toHide.add(R.id.action_rename_file);
+ toHide.add(R.id.action_remove_file);
+
+ }
+
+ MenuItem item = null;
+ for (int i : toHide) {
+ item = menu.findItem(i);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
+ }
+ for (int i : toShow) {
+ item = menu.findItem(i);
+ if (item != null) {
+ item.setVisible(true);
+ item.setEnabled(true);
}
- case R.id.fdOpenBtn: {
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_open_file_with: {
openFile();
+ return true;
+ }
+ case R.id.action_remove_file: {
+ removeFile();
+ return true;
+ }
+ case R.id.action_rename_file: {
+ renameFile();
+ return true;
+ }
+ case R.id.action_download_file:
+ case R.id.action_cancel_download:
+ case R.id.action_cancel_upload:
+ case R.id.action_sync_file: {
+ synchronizeFile();
+ return true;
+ }
+ default:
+ return false;
+ }
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.fdKeepInSync: {
+ toggleKeepInSync();
+ break;
+ }
+ case R.id.fdCancelBtn: {
+ synchronizeFile();
break;
}
default:
Log_OC.e(TAG, "Incorrect view clicked!");
}
+ }
+
+
+ private void toggleKeepInSync() {
+ CheckBox cb = (CheckBox) getView().findViewById(R.id.fdKeepInSync);
+ mFile.setKeepInSync(cb.isChecked());
+ mStorageManager.saveFile(mFile);
+
+ /// register the OCFile instance in the observer service to monitor local updates;
+ /// if necessary, the file is download
+ Intent intent = new Intent(getActivity().getApplicationContext(),
+ FileObserverService.class);
+ intent.putExtra(FileObserverService.KEY_FILE_CMD,
+ (cb.isChecked()?
+ FileObserverService.CMD_ADD_OBSERVED_FILE:
+ FileObserverService.CMD_DEL_OBSERVED_FILE));
+ intent.putExtra(FileObserverService.KEY_CMD_ARG_FILE, mFile);
+ intent.putExtra(FileObserverService.KEY_CMD_ARG_ACCOUNT, mAccount);
+ getActivity().startService(intent);
- }\r
- \r
+ if (mFile.keepInSync()) {
+ synchronizeFile(); // force an immediate synchronization
+ }
+ }
+
+
+ private void removeFile() {
+ ConfirmationDialogFragment confDialog = ConfirmationDialogFragment.newInstance(
+ R.string.confirmation_remove_alert,
+ new String[]{mFile.getFileName()},
+ mFile.isDown() ? R.string.confirmation_remove_remote_and_local : R.string.confirmation_remove_remote,
+ mFile.isDown() ? R.string.confirmation_remove_local : -1,
+ R.string.common_cancel);
+ confDialog.setOnConfirmationListener(this);
+ confDialog.show(getFragmentManager(), FTAG_CONFIRMATION);
+ }
+
+
+ private void renameFile() {
+ String fileName = mFile.getFileName();
+ int extensionStart = mFile.isDirectory() ? -1 : fileName.lastIndexOf(".");
+ int selectionEnd = (extensionStart >= 0) ? extensionStart : fileName.length();
+ EditNameDialog dialog = EditNameDialog.newInstance(getString(R.string.rename_dialog_title), fileName, 0, selectionEnd, this);
+ dialog.show(getFragmentManager(), "nameeditdialog");
+ }
+
+ private void synchronizeFile() {
+ FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
+ FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();
+ if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile)) {
+ downloaderBinder.cancel(mAccount, mFile);
+ if (mFile.isDown()) {
+ setButtonsForDown();
+ } else {
+ setButtonsForRemote();
+ }
+
+ } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile)) {
+ uploaderBinder.cancel(mAccount, mFile);
+ if (!mFile.fileExists()) {
+ // TODO make something better
+ if (getActivity() instanceof FileDisplayActivity) {
+ // double pane
+ FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
+ transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FTAG); // empty FileDetailFragment
+ transaction.commit();
+ mContainerActivity.onFileStateChanged();
+ } else {
+ getActivity().finish();
+ }
+
+ } else if (mFile.isDown()) {
+ setButtonsForDown();
+ } else {
+ setButtonsForRemote();
+ }
+
+ } else {
+ mLastRemoteOperation = new SynchronizeFileOperation(mFile, null, mStorageManager, mAccount, true, false, getActivity());
+ mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity());
+
+ // update ui
+ boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity;
+ getActivity().showDialog((inDisplayActivity)? FileDisplayActivity.DIALOG_SHORT_WAIT : FileDetailActivity.DIALOG_SHORT_WAIT);
+
+ }
+ }
+
/**
* Opens mFile.
*/
*/
private void setButtonsForTransferring() {
if (!isEmpty()) {
- Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
- downloadButton.setText(R.string.common_cancel);
- //downloadButton.setEnabled(false);
-
// let's protect the user from himself ;)
- ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);
- ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(false);
- ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(false);
getView().findViewById(R.id.fdKeepInSync).setEnabled(false);
// show the progress bar for the transfer
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.fdProgressBar);
- progressBar.setVisibility(View.VISIBLE);
+ getView().findViewById(R.id.fdProgressBlock).setVisibility(View.VISIBLE);
TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
progressText.setVisibility(View.VISIBLE);
FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
*/
private void setButtonsForDown() {
if (!isEmpty()) {
- Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
- downloadButton.setText(R.string.filedetails_sync_file);
-
- ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(true);
- ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);
- ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);
getView().findViewById(R.id.fdKeepInSync).setEnabled(true);
// hides the progress bar
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.fdProgressBar);
- progressBar.setVisibility(View.GONE);
+ getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE);
TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
progressText.setVisibility(View.GONE);
}
*/
private void setButtonsForRemote() {
if (!isEmpty()) {
- Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
- downloadButton.setText(R.string.filedetails_download);
-
- ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);
- ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);
- ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);
getView().findViewById(R.id.fdKeepInSync).setEnabled(true);
// hides the progress bar
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.fdProgressBar);
- progressBar.setVisibility(View.GONE);
+ getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE);
TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
progressText.setVisibility(View.GONE);
}
mContainerActivity.onDirectoryClick(file);
} else { /// Click on a file
- mContainerActivity.onFileClick(file);
+ mContainerActivity.onFileClick(file, false);
}
} else {
toHide.add(R.id.action_download_file);
toHide.add(R.id.action_cancel_download);
toHide.add(R.id.action_cancel_upload);
+ toHide.add(R.id.action_sync_file);
toHide.add(R.id.action_see_details);
if ( mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile) ||
mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile) ) {
if (targetFile.isDown()) {
toHide.add(R.id.action_cancel_download);
toHide.add(R.id.action_cancel_upload);
- item = menu.findItem(R.id.action_download_file);
- if (item != null) {
- item.setTitle(R.string.filedetails_sync_file);
- }
+ toHide.add(R.id.action_download_file);
+
} else {
toHide.add(R.id.action_open_file_with);
+ toHide.add(R.id.action_sync_file);
}
if ( mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile)) {
toHide.add(R.id.action_download_file);
}
return true;
}
- case R.id.action_download_file: {
+ case R.id.action_download_file:
+ case R.id.action_sync_file: {
Account account = AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity());
RemoteOperation operation = new SynchronizeFileOperation(mTargetFile, null, mContainerActivity.getStorageManager(), account, true, false, getSherlockActivity());
operation.execute(account, getSherlockActivity(), mContainerActivity, mHandler, getSherlockActivity());
*
* @param file
*/
- public void onFileClick(OCFile file);
+ public void onFileClick(OCFile file, boolean realClick);
/**
* Getter for the current DataStorageManager in the container activity
import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
+import android.content.res.Configuration;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
private MediaServiceConnection mMediaServiceConnection = null;
private VideoHelper mVideoHelper;
private boolean mAutoplay;
+ public boolean mPrepared;
private static final String TAG = PreviewMediaFragment.class.getSimpleName();
* @param fileToDetail An {@link OCFile} to preview in the fragment
* @param ocAccount An ownCloud account; needed to start downloads
*/
- public PreviewMediaFragment(OCFile fileToDetail, Account ocAccount) {
+ public PreviewMediaFragment(OCFile fileToDetail, Account ocAccount, int startPlaybackPosition, boolean autoplay) {
mFile = fileToDetail;
mAccount = ocAccount;
- mSavedPlaybackPosition = 0;
+ mSavedPlaybackPosition = startPlaybackPosition;
mStorageManager = null; // we need a context to init this; the container activity is not available yet at this moment
- mAutoplay = true;
+ mAutoplay = autoplay;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
+ Log_OC.e(TAG, "onCreateView");
+
mView = inflater.inflate(R.layout.file_preview, container, false);
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
+ Log_OC.e(TAG, "onAttach");
+
if (!(activity instanceof FileFragment.ContainerActivity))
throw new ClassCastException(activity.toString() + " must implement " + FileFragment.ContainerActivity.class.getSimpleName());
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
+ Log_OC.e(TAG, "onActivityCreated");
mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
if (savedInstanceState != null) {
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
+ Log_OC.e(TAG, "onSaveInstanceState");
+
outState.putParcelable(PreviewMediaFragment.EXTRA_FILE, mFile);
outState.putParcelable(PreviewMediaFragment.EXTRA_ACCOUNT, mAccount);
@Override
public void onStart() {
super.onStart();
+ Log_OC.e(TAG, "onStart");
if (mFile != null) {
if (mFile.isAudio()) {
toHide.add(R.id.action_cancel_download);
toHide.add(R.id.action_cancel_upload);
toHide.add(R.id.action_download_file);
+ toHide.add(R.id.action_sync_file);
toHide.add(R.id.action_rename_file); // by now
for (int i : toHide) {
}
mMediaController.setEnabled(true);
mMediaController.updatePausePlay();
+ mPrepared = true;
}
@Override
+ public void onPause() {
+ super.onPause();
+ Log_OC.e(TAG, "onPause");
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ Log_OC.e(TAG, "onResume");
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ Log_OC.e(TAG, "onDestroy");
+ }
+
+ @Override
public void onStop() {
+ Log_OC.e(TAG, "onStop");
super.onStop();
-
+
+ mPrepared = false;
if (mMediaServiceConnection != null) {
Log_OC.d(TAG, "Unbinding from MediaService ...");
if (mMediaServiceBinder != null && mMediaController != null) {
startActivityForResult(i, 0);
}
+ @Override
+ public void onConfigurationChanged (Configuration newConfig) {
+ Log_OC.e(TAG, "onConfigurationChanged " + this);
+ }
@Override
public void onActivityResult (int requestCode, int resultCode, Intent data) {
+ Log_OC.e(TAG, "onActivityResult " + this);
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
mSavedPlaybackPosition = data.getExtras().getInt(PreviewVideoActivity.EXTRA_START_POSITION);
container.finish();
}
}
+
+
+ public int getPosition() {
+ if (mPrepared) {
+ mSavedPlaybackPosition = mVideoPreview.getCurrentPosition();
+ }
+ Log_OC.e(TAG, "getting position: " + mSavedPlaybackPosition);
+ return mSavedPlaybackPosition;
+ }
+
+ public boolean isPlaying() {
+ if (mPrepared) {
+ mAutoplay = mVideoPreview.isPlaying();
+ }
+ return mAutoplay;
+ }
}