Created preview fragment to show previews for audio, video and images; shown when...
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / FileDetailActivity.java
index ee23ca3..5bf6bd2 100644 (file)
@@ -27,6 +27,7 @@ import android.content.ServiceConnection;
 import android.content.res.Configuration;\r
 import android.os.Bundle;\r
 import android.os.IBinder;\r
 import android.content.res.Configuration;\r
 import android.os.Bundle;\r
 import android.os.IBinder;\r
+import android.support.v4.app.Fragment;\r
 import android.support.v4.app.FragmentTransaction;\r
 import android.util.Log;\r
 \r
 import android.support.v4.app.FragmentTransaction;\r
 import android.util.Log;\r
 \r
@@ -39,6 +40,7 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader;\r
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;\r
 import com.owncloud.android.ui.fragment.FileDetailFragment;\r
 import com.owncloud.android.files.services.FileUploader;\r
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;\r
 import com.owncloud.android.ui.fragment.FileDetailFragment;\r
+import com.owncloud.android.ui.fragment.FilePreviewFragment;\r
 \r
 import com.owncloud.android.R;\r
 \r
 \r
 import com.owncloud.android.R;\r
 \r
@@ -59,7 +61,7 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File
     private FileDownloaderBinder mDownloaderBinder = null;\r
     private ServiceConnection mDownloadConnection, mUploadConnection = null;\r
     private FileUploaderBinder mUploaderBinder = null;\r
     private FileDownloaderBinder mDownloaderBinder = null;\r
     private ServiceConnection mDownloadConnection, mUploadConnection = null;\r
     private FileUploaderBinder mUploaderBinder = null;\r
-\r
+    \r
 \r
     @Override\r
     protected void onCreate(Bundle savedInstanceState) {\r
 \r
     @Override\r
     protected void onCreate(Bundle savedInstanceState) {\r
@@ -82,13 +84,9 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File
             ActionBar actionBar = getSupportActionBar();\r
             actionBar.setDisplayHomeAsUpEnabled(true);\r
 \r
             ActionBar actionBar = getSupportActionBar();\r
             actionBar.setDisplayHomeAsUpEnabled(true);\r
 \r
-            OCFile file = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE);\r
-            Account account = getIntent().getParcelableExtra(FileDetailFragment.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
+            if (savedInstanceState == null) {\r
+                createChildFragment();\r
+            }\r
             \r
         }  else {\r
             backToDisplayActivity();   // the 'back' won't be effective until this.onStart() and this.onResume() are completed;\r
             \r
         }  else {\r
             backToDisplayActivity();   // the 'back' won't be effective until this.onStart() and this.onResume() are completed;\r
@@ -98,6 +96,23 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File
     }\r
     \r
     \r
     }\r
     \r
     \r
+    private void createChildFragment() {\r
+        OCFile file = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE);\r
+        Account account = getIntent().getParcelableExtra(FileDetailFragment.EXTRA_ACCOUNT);\r
+        Fragment newFragment = null;\r
+        if (FilePreviewFragment.canBePreviewed(file)) {\r
+            newFragment = new FilePreviewFragment(file, account);\r
+            \r
+        } else {\r
+            newFragment = new FileDetailFragment(file, account);\r
+        }\r
+        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
+        ft.replace(R.id.fragment, newFragment, FileDetailFragment.FTAG);\r
+        ft.commit();\r
+    }\r
+    \r
+\r
+\r
     /** Defines callbacks for service binding, passed to bindService() */\r
     private class DetailsServiceConnection implements ServiceConnection {\r
 \r
     /** Defines callbacks for service binding, passed to bindService() */\r
     private class DetailsServiceConnection implements ServiceConnection {\r
 \r
@@ -112,9 +127,10 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File
             } else {\r
                 return;\r
             }\r
             } else {\r
                 return;\r
             }\r
-            FileDetailFragment fragment = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
-            if (fragment != null)\r
-                fragment.updateFileDetails(false);   // let the fragment gets the mDownloadBinder through getDownloadBinder() (see FileDetailFragment#updateFileDetais())\r
+            Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+            if (fragment != null && fragment instanceof FileDetailFragment) {\r
+                ((FileDetailFragment) fragment).updateFileDetails(false);   // let the fragment gets the mDownloadBinder through getDownloadBinder() (see FileDetailFragment#updateFileDetais())\r
+            }\r
         }\r
 \r
         @Override\r
         }\r
 \r
         @Override\r
@@ -166,9 +182,11 @@ public class FileDetailActivity extends SherlockFragmentActivity implements File
     protected void onResume() {\r
         \r
         super.onResume();\r
     protected void onResume() {\r
         \r
         super.onResume();\r
-        if (!mConfigurationChangedToLandscape) { \r
-            FileDetailFragment fragment = (FileDetailFragment) getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
-            fragment.updateFileDetails(false);\r
+        if (!mConfigurationChangedToLandscape) {\r
+            Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+            if (fragment != null && fragment instanceof FileDetailFragment) {\r
+                ((FileDetailFragment) fragment).updateFileDetails(false);\r
+            }\r
         }\r
     }\r
     \r
         }\r
     }\r
     \r