瀏覽代碼

Added support for sharing files:
- Long press on file list
- Add option on ImageViewer

tobiasKaminsky 11 年之前
父節點
當前提交
0d01bf30c3

+ 1 - 0
res/menu/file_actions_menu.xml

@@ -27,5 +27,6 @@
 	<item 	android:id="@+id/action_rename_file"			android:title="@string/common_rename"				android:icon="@android:drawable/ic_menu_set_as"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_remove_file"			android:title="@string/common_remove"				android:icon="@android:drawable/ic_menu_delete"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_see_details"			android:title="@string/actionbar_see_details"		android:icon="@android:drawable/ic_menu_info_details"			android:orderInCategory="1" />
+    <item 	android:id="@+id/action_share_file"				android:title="@string/actionbar_share_file"		android:icon="@android:drawable/ic_menu_info_details"			android:orderInCategory="1" />
     
 </menu>

+ 1 - 0
res/values-de-rCH/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
+  <string name="actionbar_share_file">Teile Datei</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>

+ 1 - 0
res/values-de-rDE/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
+  <string name="actionbar_share_file">Teile Datei</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>

+ 1 - 0
res/values-de/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
+  <string name="actionbar_share_file">Teile Datei</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>

+ 1 - 0
res/values-en-rGB/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Create directory</string>
   <string name="actionbar_settings">Settings</string>
   <string name="actionbar_see_details">Details</string>
+  <string name="actionbar_share_file">Share</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">More</string>
   <string name="prefs_accounts">Accounts</string>

+ 1 - 1
res/values/strings.xml

@@ -11,7 +11,7 @@
     <string name="actionbar_mkdir">Create directory</string>
     <string name="actionbar_settings">Settings</string>
     <string name="actionbar_see_details">Details</string>
-    
+    <string name="actionbar_share_file">Share</string>
     <string name="prefs_category_general">General</string>
     <string name="prefs_category_more">More</string>
     <string name="prefs_accounts">Accounts</string>

+ 1 - 1
res/values/styles.xml

@@ -59,7 +59,7 @@
 	</style>
 
 	<!-- Dialogs -->
-	<style name="Theme.ownCloud.Dialog" parent="style/Theme.Sherlock.Light.Dialog">
+	<style name="Theme.ownCloud.Dialog" parent="@android:style/Theme.Dialog">
 	</style>
 	
 	<!-- PopDownMenu -->

+ 11 - 1
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -43,9 +43,10 @@ import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.utils.Log_OC;
 
-
 import android.accounts.Account;
 import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.view.ContextMenu;
@@ -222,6 +223,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
             toHide.add(R.id.action_cancel_upload);
             toHide.add(R.id.action_sync_file);
             toHide.add(R.id.action_see_details);
+            toHide.add(R.id.action_share_file);
             if (    mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile) ||
                     mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile)           ) {
                 toDisable.add(R.id.action_rename_file);
@@ -345,6 +347,14 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
                 ((FileFragment.ContainerActivity)getActivity()).showDetails(mTargetFile);
                 return true;
             }
+            case R.id.action_share_file: {
+                Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
+                // set MimeType
+                sharingIntent.setType(mTargetFile.getMimetype());
+                sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+mTargetFile.getStoragePath()));
+                startActivity(Intent.createChooser(sharingIntent, "Share via")); 
+                return true;
+            }
             default:
                 return super.onContextItemSelected(item); 
         }

+ 12 - 0
src/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -260,11 +260,23 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
                 seeDetails();
                 return true;
             }
+            case R.id.action_share_file: {
+                shareFile();
+                return true;
+            }
             
             default:
                 return false;
         }
     }
+    
+    private void shareFile(){
+        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
+        // set MimeType
+        sharingIntent.setType(getFile().getMimetype());
+        sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+getFile().getStoragePath()));
+        startActivity(Intent.createChooser(sharingIntent, "Share via"));
+    }
 
     
     private void seeDetails() {