Merge remote-tracking branch 'remotes/upstream/master' into streaming
authortobiasKaminsky <tobias@kaminsky.me>
Sun, 1 Nov 2015 07:29:10 +0000 (08:29 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Sun, 1 Nov 2015 07:29:10 +0000 (08:29 +0100)
1  2 
res/menu/file_actions_menu.xml
res/values/strings.xml
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

          android:icon="@android:drawable/ic_menu_share"
          android:orderInCategory="1" />
      <item
 +        android:id="@+id/action_stream_file"
 +        android:title="@string/action_stream_file"
 +        android:icon="@android:drawable/ic_menu_view"
 +        android:orderInCategory="1" />
 +    <item
          android:id="@+id/action_unshare_file"
          android:title="@string/action_unshare_file"
          android:icon="@android:drawable/ic_menu_share"
          android:icon="@drawable/ic_action_refresh"
          android:orderInCategory="1" />
      <item
-         android:id="@+id/action_cancel_download"
-         android:title="@string/common_cancel_download"
-         android:icon="@android:drawable/ic_menu_close_clear_cancel"
-         android:orderInCategory="1" />
-     <item
-         android:id="@+id/action_cancel_upload"
-         android:title="@string/common_cancel_upload"
+         android:id="@+id/action_cancel_sync"
+         android:title="@string/common_cancel_sync"
          android:icon="@android:drawable/ic_menu_close_clear_cancel"
          android:orderInCategory="1" />
      <item
diff --combined res/values/strings.xml
@@@ -82,7 -82,7 +82,7 @@@
      <string name="filedetails_created">Created:</string>
      <string name="filedetails_modified">Modified:</string>
      <string name="filedetails_download">Download</string>
-     <string name="filedetails_sync_file">Refresh file</string>
+     <string name="filedetails_sync_file">Synchronize</string>
      <string name="filedetails_renamed_in_upload_msg">File was renamed to %1$s during upload</string>
      <string name="list_layout">List Layout</string>
      <string name="action_share_file">Share link</string>
@@@ -90,8 -90,7 +90,7 @@@
      <string name="common_yes">Yes</string>
      <string name="common_no">No</string>
      <string name="common_ok">OK</string>
-     <string name="common_cancel_download">Cancel download</string>
-     <string name="common_cancel_upload">Cancel upload</string>
+     <string name="common_cancel_sync">Cancel synchronization</string>
      <string name="common_cancel">Cancel</string>
      <string name="common_save_exit">Save &amp; Exit</string>
      <string name="common_error">Error</string>
        <string name="prefs_category_security">Security</string>
  
        <string name="prefs_instant_video_upload_path_title">Upload Video Path</string>
-     <string name="download_folder_failed_content">Download of %1$s folder could not be completed</string>
+     <string name="sync_folder_failed_content">Synchronization of %1$s folder could not be completed</string>
  
        <string name="shared_subject_header">shared</string>
        <string name="with_you_subject_header">with you</string>
      <string name="file_list__footer__files">%1$d files</string>
      <string name="file_list__footer__files_and_folder">%1$d files, 1 folder</string>
      <string name="file_list__footer__files_and_folders">%1$d files, %2$d folders</string>
 +    <string name="action_stream_file">Stream file with external player</string>
 +    <string name="stream_expose_password">May expose password?</string>
  
  </resources>
   */
  package com.owncloud.android.ui.fragment;
  
 +import android.accounts.Account;
  import android.app.Activity;
 +import android.content.Context;
 +import android.content.DialogInterface;
  import android.content.Intent;
 +import android.net.Uri;
  import android.os.Bundle;
  import android.support.v4.widget.SwipeRefreshLayout;
 +import android.support.v7.app.AlertDialog;
  import android.view.ContextMenu;
  import android.view.Menu;
  import android.view.MenuInflater;
@@@ -40,7 -35,6 +40,7 @@@ import android.widget.AdapterView
  import android.widget.AdapterView.AdapterContextMenuInfo;
  import android.widget.PopupMenu;
  
 +import com.owncloud.android.MainApp;
  import com.owncloud.android.R;
  import com.owncloud.android.authentication.AccountUtils;
  import com.owncloud.android.datamodel.FileDataStorageManager;
@@@ -59,8 -53,8 +59,8 @@@ import com.owncloud.android.ui.dialog.R
  import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
  import com.owncloud.android.ui.preview.PreviewImageFragment;
  import com.owncloud.android.ui.preview.PreviewMediaFragment;
 -import com.owncloud.android.utils.FileStorageUtils;
  import com.owncloud.android.ui.preview.PreviewTextFragment;
 +import com.owncloud.android.utils.FileStorageUtils;
  
  import java.io.File;
  
@@@ -280,13 -274,15 +280,13 @@@ public class OCFileListFragment extend
                      ((FileDisplayActivity)mContainerActivity).startImagePreview(file);
                  } else if (PreviewTextFragment.canBePreviewed(file)){
                      ((FileDisplayActivity)mContainerActivity).startTextPreview(file);
 -                } else if (file.isDown()) {
 -                    if (PreviewMediaFragment.canBePreviewed(file)) {
 +                } else if (PreviewMediaFragment.canBePreviewed(file)) {
                          // media preview
                          ((FileDisplayActivity) mContainerActivity).startMediaPreview(file, 0, true);
 -                    } else {
 +                    } else if (file.isDown()) {
                          mContainerActivity.getFileOperationsHelper().openFile(file);
                      }
 -
 -                } else {
 +                else {
                      // automatic download, preview on finish
                      ((FileDisplayActivity) mContainerActivity).startDownloadForPreview(file);
                  }
                  mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
                  return true;
              }
-             case R.id.action_cancel_download:
-             case R.id.action_cancel_upload: {
-                 ((FileDisplayActivity) mContainerActivity).cancelTransference(mTargetFile);
+             case R.id.action_cancel_sync: {
+                 ((FileDisplayActivity)mContainerActivity).cancelTransference(mTargetFile);
                  return true;
              }
              case R.id.action_see_details: {
                  }
                  return true;
              }
 +            case R.id.action_stream_file: {
 +                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 +                builder.setMessage("May expose password?")
 +                        .setPositiveButton("Stream", new DialogInterface.OnClickListener() {
 +                            public void onClick(DialogInterface dialog, int id) {
 +                                Account account = ((FileActivity)mContainerActivity).getAccount();
 +                                Context context = MainApp.getAppContext();
 +                                String uri = PreviewMediaFragment.generateUrlWithCredentials(account, context, mTargetFile);
 +
 +                                Intent i = new Intent(android.content.Intent.ACTION_VIEW);
 +                                i.setData(Uri.parse(uri));
 +                                startActivity(i);
 +
 +//                    Intent i = new Intent(Intent.ACTION_VIEW);
 +//                    i.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity"));
 +//                    i.setData(Uri.parse(uri));
 +//                    startActivity(i);
 +                            }
 +                        })
 +                        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
 +                            public void onClick(DialogInterface dialog, int id) {
 +                                // User cancelled the dialog
 +                            }
 +                        });
 +                builder.show();
 +
 +                return true;
 +            }
              case R.id.action_move: {
                  Intent action = new Intent(getActivity(), FolderPickerActivity.class);
  
  
              // decide grid vs list view
              OwnCloudVersion version = AccountUtils.getServerVersion(
 -                    ((FileActivity)mContainerActivity).getAccount());
 +                    ((FileActivity) mContainerActivity).getAccount());
              if (version != null && version.supportsRemoteThumbnails() &&
                  imagesCount > 0 && imagesCount == filesCount) {
                  switchToGridView();