Better file opening; new ownCloud logo in account settings page
authorDavid A. Velasco <dvelasco@solidgear.es>
Wed, 27 Jun 2012 16:28:42 +0000 (18:28 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Wed, 27 Jun 2012 16:32:20 +0000 (18:32 +0200)
AndroidManifest.xml
res/layout-land/account_setup.xml
res/layout/account_setup.xml
src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java
src/eu/alefzero/owncloud/ui/activity/FileDetailActivity.java
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

index fff3a3f..841ce23 100644 (file)
@@ -18,7 +18,7 @@
  -->\r
 <manifest package="eu.alefzero.owncloud"\r
     android:versionCode="1"\r
-    android:versionName="0.1.136B" xmlns:android="http://schemas.android.com/apk/res/android">\r
+    android:versionName="0.1.137B" xmlns:android="http://schemas.android.com/apk/res/android">\r
 \r
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />\r
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />\r
index cdd3172..93f3038 100644 (file)
@@ -42,7 +42,7 @@
                 android:layout_height="match_parent"
                 android:layout_margin="7dp"
                 android:layout_weight="1"
-                android:src="@drawable/logo_inverted" />
+                android:src="@drawable/owncloud_logo" />
 
             <LinearLayout
                 android:id="@+id/LinearLayout1"
index add258c..65e1cd9 100644 (file)
@@ -46,7 +46,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginBottom="10dp"
                 android:layout_weight="1"
-                android:src="@drawable/logo_inverted" />
+                android:src="@drawable/owncloud_logo" />
 
             <FrameLayout
                 android:layout_width="match_parent"
index d5512a1..8d76328 100644 (file)
@@ -34,6 +34,7 @@ import android.content.Intent;
 import android.content.SyncResult;\r
 import android.os.Bundle;\r
 import android.util.Log;\r
+import android.webkit.MimeTypeMap;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
 import eu.alefzero.webdav.WebdavEntry;\r
@@ -142,7 +143,16 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
         OCFile file = new OCFile(we.path());\r
         file.setCreationTimestamp(we.createTimestamp());\r
         file.setFileLength(we.contentLength());\r
-        file.setMimetype(we.contentType());\r
+        \r
+        // dvelasco; looks like server is not sending very precise mimeTypes; mp3 file results un application/oct\r
+        String filename = file.getFileName();\r
+        String mimeType = MimeTypeMap.getSingleton()\r
+                .getMimeTypeFromExtension(filename.substring(filename.lastIndexOf('.') + 1));\r
+        if (mimeType == null)\r
+            file.setMimetype(we.contentType());\r
+        else\r
+            file.setMimetype(mimeType);\r
+        \r
         file.setModificationTimestamp(we.modifiedTimesamp());\r
         file.setLastSyncDate(mCurrentSyncTime);\r
         return file;\r
index f5664ea..00a1f83 100644 (file)
@@ -48,7 +48,7 @@ public class FileDetailActivity extends SherlockFragmentActivity {
         \r
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
         mFileDetail = new FileDetailFragment();\r
-        ft.add(R.id.fragment, mFileDetail, "FileDetails");\r
+        ft.replace(R.id.fragment, mFileDetail, "FileDetails");\r
         ft.commit();\r
 \r
     }\r
index 0397e5b..6b2aa86 100644 (file)
@@ -22,6 +22,7 @@ import java.util.List;
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
 import android.app.ActionBar.LayoutParams;\r
+import android.content.ActivityNotFoundException;\r
 import android.content.BroadcastReceiver;\r
 import android.content.Context;\r
 import android.content.Intent;\r
@@ -243,10 +244,11 @@ public class FileDetailFragment extends SherlockFragment implements
                     public void onClick(View v) {\r
                         Intent i = new Intent(Intent.ACTION_VIEW);\r
                         i.setDataAndType(Uri.parse("file://"+mFile.getStoragePath()), mFile.getMimetype());\r
-                        List list = getActivity().getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);\r
-                        if (list.size() > 0) {\r
+                        i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);\r
+                        try {\r
                             startActivity(i);\r
-                        } else {\r
+                            \r
+                        } catch (ActivityNotFoundException e) {\r
                             Toast.makeText(getActivity(), "There is no application to handle file " + mFile.getFileName(), Toast.LENGTH_SHORT).show();\r
                         }\r
                     }\r