- if (!mIsDisplayingFile) {\r
- if (mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE)).equals("DIR")) {\r
- String id_ = mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta._ID));\r
- String dirname = mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_NAME));\r
- pl.push(DisplayUtils.HtmlDecode(dirname));\r
- mPath.addLast(DisplayUtils.HtmlDecode(dirname));\r
- mParents.push(id_);\r
- mCursor = managedQuery(Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, id_),\r
- null,\r
- ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",\r
- new String[]{mAccount.name}, null);\r
- setListAdapter(new FileListListAdapter(mCursor, this));\r
- } else {\r
- mIsDisplayingFile = true;\r
- setContentView(R.layout.file_display);\r
- String id_ = mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta._ID));\r
- mCursor = managedQuery(Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, id_),\r
- null,\r
- null,\r
- null,\r
- null);\r
- mCursor.moveToFirst();\r
- // filename\r
- TextView tv = (TextView) findViewById(R.id.textView1);\r
- tv.setText(mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_NAME)));\r
- // filetype\r
- tv = (TextView) findViewById(R.id.textView2);\r
- tv.setText(DisplayUtils.convertMIMEtoPrettyPrint(mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE))));\r
- // size\r
- tv = (TextView) findViewById(R.id.textView3);\r
- tv.setText(DisplayUtils.bitsToHumanReadable(mCursor.getLong(mCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_LENGTH))));\r
- // modified\r
- tv = (TextView) findViewById(R.id.textView4);\r
- tv.setText(mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_MODIFIED)));\r
- if (!TextUtils.isEmpty(mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH))) &&\r
- mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE)).matches("image/*")) {\r
- ImageView iv = (ImageView) findViewById(R.id.imageView1);\r
- Bitmap bmp = BitmapFactory.decodeFile(mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH)));\r
- Matrix m = new Matrix();\r
- float scale;\r
- if (bmp.getWidth() > bmp.getHeight()) {\r
- scale = (float) (200./bmp.getWidth());\r
- } else {\r
- scale = (float) (200./bmp.getHeight());\r
- }\r
- m.postScale(scale, scale);\r
- Bitmap newBmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), m, true);\r
- iv.setImageBitmap(newBmp);\r
+\r
+ public String getPath(Uri uri) {\r
+ String[] projection = { MediaStore.Images.Media.DATA };\r
+ Cursor cursor = managedQuery(uri, projection, null, null, null);\r
+ if (cursor != null) {\r
+ int column_index = cursor\r
+ .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);\r
+ cursor.moveToFirst();\r
+ return cursor.getString(column_index);\r
+ } else\r
+ return null;\r
+ }\r
+\r
+ public void pushPath(String path) {\r
+ mDirectories.insert(path, 0);\r
+ }\r
+\r
+ public boolean popPath() {\r
+ mDirectories.remove(mDirectories.getItem(0));\r
+ return !mDirectories.isEmpty();\r
+ }\r
+\r
+ /**\r
+ * Checks, whether or not there are any ownCloud accounts setup.\r
+ * \r
+ * @return true, if there is at least one account.\r
+ */\r
+ private boolean accountsAreSetup() {\r
+ AccountManager accMan = AccountManager.get(this);\r
+ Account[] accounts = accMan\r
+ .getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE);\r
+ return accounts.length > 0;\r
+ }\r
+\r
+ private class DirectoryCreator implements Runnable {\r
+ private String mTargetPath;\r
+ private Account mAccount;\r
+ private AccountManager mAm;\r
+ \r
+ public DirectoryCreator(String targetPath, Account account) {\r
+ mTargetPath = targetPath;\r
+ mAccount = account;\r
+ mAm = (AccountManager) getSystemService(ACCOUNT_SERVICE);\r
+ }\r
+ \r
+ @Override\r
+ public void run() {\r
+ WebdavClient wdc = new WebdavClient(Uri.parse(mAm.getUserData(\r
+ mAccount, AccountAuthenticator.KEY_OC_URL)));\r
+ \r
+ String username = mAccount.name.substring(0,\r
+ mAccount.name.lastIndexOf('@'));\r
+ String password = mAm.getPassword(mAccount);\r
+ \r
+ wdc.setCredentials(username, password);\r
+ wdc.allowUnsignedCertificates();\r
+ wdc.createDirectory(mTargetPath);\r