<LinearLayout\r
android:id="@+id/file_list_container"\r
android:layout_width="0dp"\r
- android:layout_height="wrap_content"\r
+ android:layout_height="fill_parent"\r
android:layout_weight="1" >\r
\r
<fragment\r
\r
<LinearLayout android:id="@+id/file_details_container"\r
android:layout_width="0dp"\r
- android:layout_height="wrap_content"\r
+ android:layout_height="fill_parent"\r
android:layout_weight="2" >\r
\r
<fragment\r
public static final String FILE = "FILE";\r
\r
private Intent mIntent;\r
- private View mView;\r
+ //private View mView;\r
private DownloadFinishReceiver mDownloadFinishReceiver;\r
private OCFile mFile;\r
\r
* to contain {@link FileDetailFragment#FILE} with an OCFile and also\r
* {@link FileDownloader#EXTRA_ACCOUNT} with the account.\r
* \r
- * @param nonEmptyFragment True, to enable file detail rendering\r
+ * @param intent Intent with an account and a file in it for rendering\r
*/\r
public FileDetailFragment(Intent intent) {\r
mLayout = R.layout.file_details_fragment;\r
setFilesize(mFile.getFileLength());\r
\r
// set file preview if available and possible\r
- VideoView videoView = (VideoView) mView\r
+ VideoView videoView = (VideoView) getView()\r
.findViewById(R.id.videoView1);\r
videoView.setVisibility(View.INVISIBLE);\r
if (mFile.getStoragePath() == null) {\r
imageView.setOnClickListener(this);\r
} else {\r
if (mFile.getMimetype().startsWith("image/")) {\r
- ImageView imageView = (ImageView) mView\r
+ ImageView imageView = (ImageView) getView()\r
.findViewById(R.id.imageView2);\r
Bitmap bmp = BitmapFactory.decodeFile(mFile.getStoragePath());\r
imageView.setImageBitmap(bmp);\r
public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
Bundle savedInstanceState) {\r
View view = null;\r
-\r
view = inflater.inflate(mLayout, container, false);\r
- mIntent = getActivity().getIntent();\r
- mView = view;\r
-\r
- // make sure we are not using the empty layout\r
- if (mEmptyLayout == false) {\r
- updateFileDetails();\r
- }\r
-\r
return view;\r
}\r
\r
@Override\r
- public View getView() {\r
- return mView == null ? super.getView() : mView;\r
- };\r
+ public void onStart() {\r
+ super.onStart();\r
+ \r
+ // Fill in required information about file displaying\r
+ if(mIntent == null){\r
+ mIntent = getActivity().getIntent();\r
+ }\r
+ \r
+ // Fill in the details if the layout is not empty\r
+ if(!mEmptyLayout){\r
+ updateFileDetails();\r
+ }\r
+ \r
+ }\r
\r
private void setFilename(String filename) {\r
TextView tv = (TextView) getView().findViewById(R.id.textView1);\r
((FileDisplayActivity) getActivity()).pushPath(dirname);\r
\r
populateFileList();\r
+ resetFileFragment();\r
+ \r
return;\r
}\r
\r
\r
if (fd.isEmptyLayout()) {\r
// True, if this is the first time a user taps on a file\r
- fd = new FileDetailFragment(showDetailsIntent);\r
FragmentTransaction transaction = getFragmentManager()\r
.beginTransaction();\r
- transaction.replace(R.id.file_details_container, fd,\r
- "FileDetails");\r
+ fd = new FileDetailFragment(showDetailsIntent);\r
+ transaction.replace(R.id.fileDetail, fd, "FileDetails");\r
+ transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
transaction.commit();\r
} else {\r
fd.updateFileDetails(showDetailsIntent);\r
}\r
}\r
\r
+ /**\r
+ * Resets the FileDetailsFragment on Tablets\r
+ * so that it always displays "Tab on a file to display it's details" \r
+ */\r
+ private void resetFileFragment() {\r
+ FileDetailFragment fileDetails = (FileDetailFragment) getFragmentManager().findFragmentByTag("FileDetails");\r
+ if(fileDetails != null){\r
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();\r
+ transaction.remove(fileDetails);\r
+ transaction.add(R.id.file_details_container, new FileDetailFragment());\r
+ transaction.commit();\r
+ }\r
+ }\r
+\r
@Override\r
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,\r
long arg3) {\r
public void onNavigateUp() {\r
mDirNames.pop();\r
populateFileList();\r
+ resetFileFragment();\r
}\r
\r
/**\r