Browse Source

Better file opening; new ownCloud logo in account settings page

David A. Velasco 13 years ago
parent
commit
49c1f9e318

+ 1 - 1
AndroidManifest.xml

@@ -18,7 +18,7 @@
  -->
  -->
 <manifest package="eu.alefzero.owncloud"
 <manifest package="eu.alefzero.owncloud"
     android:versionCode="1"
     android:versionCode="1"
-    android:versionName="0.1.136B" xmlns:android="http://schemas.android.com/apk/res/android">
+    android:versionName="0.1.137B" xmlns:android="http://schemas.android.com/apk/res/android">
 
 
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />

+ 1 - 1
res/layout-land/account_setup.xml

@@ -42,7 +42,7 @@
                 android:layout_height="match_parent"
                 android:layout_height="match_parent"
                 android:layout_margin="7dp"
                 android:layout_margin="7dp"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:src="@drawable/logo_inverted" />
+                android:src="@drawable/owncloud_logo" />
 
 
             <LinearLayout
             <LinearLayout
                 android:id="@+id/LinearLayout1"
                 android:id="@+id/LinearLayout1"

+ 1 - 1
res/layout/account_setup.xml

@@ -46,7 +46,7 @@
                 android:layout_height="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginBottom="10dp"
                 android:layout_marginBottom="10dp"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:src="@drawable/logo_inverted" />
+                android:src="@drawable/owncloud_logo" />
 
 
             <FrameLayout
             <FrameLayout
                 android:layout_width="match_parent"
                 android:layout_width="match_parent"

+ 11 - 1
src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java

@@ -34,6 +34,7 @@ import android.content.Intent;
 import android.content.SyncResult;
 import android.content.SyncResult;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.util.Log;
 import android.util.Log;
+import android.webkit.MimeTypeMap;
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;
 import eu.alefzero.owncloud.datamodel.OCFile;
 import eu.alefzero.owncloud.datamodel.OCFile;
 import eu.alefzero.webdav.WebdavEntry;
 import eu.alefzero.webdav.WebdavEntry;
@@ -142,7 +143,16 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
         OCFile file = new OCFile(we.path());
         OCFile file = new OCFile(we.path());
         file.setCreationTimestamp(we.createTimestamp());
         file.setCreationTimestamp(we.createTimestamp());
         file.setFileLength(we.contentLength());
         file.setFileLength(we.contentLength());
-        file.setMimetype(we.contentType());
+        
+        // dvelasco; looks like server is not sending very precise mimeTypes; mp3 file results un application/oct
+        String filename = file.getFileName();
+        String mimeType = MimeTypeMap.getSingleton()
+                .getMimeTypeFromExtension(filename.substring(filename.lastIndexOf('.') + 1));
+        if (mimeType == null)
+            file.setMimetype(we.contentType());
+        else
+            file.setMimetype(mimeType);
+        
         file.setModificationTimestamp(we.modifiedTimesamp());
         file.setModificationTimestamp(we.modifiedTimesamp());
         file.setLastSyncDate(mCurrentSyncTime);
         file.setLastSyncDate(mCurrentSyncTime);
         return file;
         return file;

+ 1 - 1
src/eu/alefzero/owncloud/ui/activity/FileDetailActivity.java

@@ -48,7 +48,7 @@ public class FileDetailActivity extends SherlockFragmentActivity {
         
         
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         mFileDetail = new FileDetailFragment();
         mFileDetail = new FileDetailFragment();
-        ft.add(R.id.fragment, mFileDetail, "FileDetails");
+        ft.replace(R.id.fragment, mFileDetail, "FileDetails");
         ft.commit();
         ft.commit();
 
 
     }
     }

+ 5 - 3
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

@@ -22,6 +22,7 @@ import java.util.List;
 import android.accounts.Account;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AccountManager;
 import android.app.ActionBar.LayoutParams;
 import android.app.ActionBar.LayoutParams;
+import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
@@ -243,10 +244,11 @@ public class FileDetailFragment extends SherlockFragment implements
                     public void onClick(View v) {
                     public void onClick(View v) {
                         Intent i = new Intent(Intent.ACTION_VIEW);
                         Intent i = new Intent(Intent.ACTION_VIEW);
                         i.setDataAndType(Uri.parse("file://"+mFile.getStoragePath()), mFile.getMimetype());
                         i.setDataAndType(Uri.parse("file://"+mFile.getStoragePath()), mFile.getMimetype());
-                        List list = getActivity().getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
-                        if (list.size() > 0) {
+                        i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+                        try {
                             startActivity(i);
                             startActivity(i);
-                        } else {
+                            
+                        } catch (ActivityNotFoundException e) {
                             Toast.makeText(getActivity(), "There is no application to handle file " + mFile.getFileName(), Toast.LENGTH_SHORT).show();
                             Toast.makeText(getActivity(), "There is no application to handle file " + mFile.getFileName(), Toast.LENGTH_SHORT).show();
                         }
                         }
                     }
                     }