Browse Source

Merge pull request #1631 from owncloud/setup_share_features

Setup share features
David A. Velasco 9 years ago
parent
commit
876bf028ee

+ 161 - 138
res/layout/share_file_layout.xml

@@ -81,10 +81,14 @@
             />
 
         <LinearLayout
+            android:id="@+id/shareWithUsersSection"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:padding="@dimen/standard_padding">
+            android:paddingLeft="@dimen/standard_padding"
+            android:paddingRight="@dimen/standard_padding"
+            android:paddingTop="@dimen/standard_padding"
+            >
 
             <TextView
                 android:id="@+id/shareWithUsersSectionTitle"
@@ -122,6 +126,18 @@
                 android:text="@string/share_add_user_or_group"
                 android:theme="@style/Button.Primary"/>
 
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/shareViaLinkSection"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingBottom="@dimen/standard_padding"
+            android:paddingLeft="@dimen/standard_padding"
+            android:paddingRight="@dimen/standard_padding"
+            >
+
             <android.support.v7.widget.SwitchCompat
                 android:id="@+id/shareViaLinkSectionSwitch"
                 style="?android:attr/listSeparatorTextViewStyle"
@@ -134,153 +150,160 @@
                 android:text="@string/share_via_link_section_title"
                 android:textColor="@color/color_accent"/>
 
-            <RelativeLayout
-                android:id="@+id/shareViaLinkExpirationSection"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/standard_half_margin"
-                >
-
-                <android.support.v7.widget.SwitchCompat
-                    android:id="@+id/shareViaLinkExpirationSwitch"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentEnd="true"
-                    android:layout_alignParentRight="true"
-                    android:layout_alignParentTop="true"
-                    android:checked="false"
-                    android:padding="@dimen/standard_half_padding"/>
-
-                <TextView
-                    android:id="@+id/shareViaLinkExpirationLabel"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentLeft="true"
-                    android:layout_alignParentStart="true"
-                    android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
-                    android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
-                    android:paddingLeft="@dimen/standard_half_padding"
-                    android:paddingRight="@dimen/standard_half_padding"
-                    android:paddingTop="@dimen/standard_half_padding"
-                    android:text="@string/share_via_link_expiration_date_label"
-                    android:textColor="@color/black"
-                    android:textSize="14sp"
-                    />
-
-                <TextView
-                    android:id="@+id/shareViaLinkExpirationValue"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentLeft="true"
-                    android:layout_alignParentStart="true"
-                    android:layout_below="@id/shareViaLinkExpirationLabel"
-                    android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
-                    android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
-                    android:paddingBottom="@dimen/standard_half_padding"
-                    android:paddingLeft="@dimen/standard_half_padding"
-                    android:paddingRight="@dimen/standard_half_padding"
-                    android:textSize="12sp"
-                    />
-
-            </RelativeLayout>
-
-            <RelativeLayout
-                android:id="@+id/shareViaLinkPasswordSection"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                >
+                android:orientation="vertical"
+                android:layout_marginTop="@dimen/standard_half_margin">
 
-                <android.support.v7.widget.SwitchCompat
-                    android:id="@+id/shareViaLinkPasswordSwitch"
-                    android:layout_width="wrap_content"
+                <RelativeLayout
+                    android:id="@+id/shareViaLinkEditPermissionSection"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_alignParentEnd="true"
-                    android:layout_alignParentRight="true"
-                    android:layout_alignParentTop="true"
-                    android:padding="@dimen/standard_half_padding"
-                    />
-
-                <TextView
-                    android:id="@+id/shareViaLinkPasswordLabel"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentLeft="true"
-                    android:layout_alignParentStart="true"
-                    android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
-                    android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
-                    android:paddingLeft="@dimen/standard_half_padding"
-                    android:paddingRight="@dimen/standard_half_padding"
-                    android:paddingTop="@dimen/standard_half_padding"
-                    android:text="@string/share_via_link_password_label"
-                    android:textColor="@color/black"
-                    android:textSize="14sp"
-                    />
-
-                <TextView
-                    android:id="@+id/shareViaLinkPasswordValue"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentLeft="true"
-                    android:layout_alignParentStart="true"
-                    android:layout_below="@id/shareViaLinkPasswordLabel"
-                    android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
-                    android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
-                    android:paddingBottom="@dimen/standard_half_padding"
-                    android:paddingLeft="@dimen/standard_half_padding"
-                    android:paddingRight="@dimen/standard_half_padding"
-                    android:text="@string/share_via_link_password_title"
-                    android:textSize="12sp"
                     android:visibility="invisible"
-                    />
-
-            </RelativeLayout>
-
-            <RelativeLayout
-                android:id="@+id/shareViaLinkEditPermissionSection"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:visibility="invisible"
-                >
-
-                <android.support.v7.widget.SwitchCompat
-                    android:id="@+id/shareViaLinkEditPermissionSwitch"
-                    android:layout_width="wrap_content"
+                    android:layout_marginBottom="@dimen/standard_half_margin"
+                    >
+
+                    <android.support.v7.widget.SwitchCompat
+                        android:id="@+id/shareViaLinkEditPermissionSwitch"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerInParent="true"
+                        android:padding="@dimen/standard_half_padding"
+                        />
+
+                    <TextView
+                        android:id="@+id/shareViaLinkEditPermissionLabel"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentLeft="true"
+                        android:layout_alignParentStart="true"
+                        android:layout_toLeftOf="@id/shareViaLinkEditPermissionSwitch"
+                        android:layout_toStartOf="@id/shareViaLinkEditPermissionSwitch"
+                        android:padding="@dimen/standard_half_padding"
+                        android:text="@string/share_via_link_edit_permission_label"
+                        android:textColor="@color/black"
+                        android:textSize="14sp"
+                        />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/shareViaLinkPasswordSection"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    >
+
+                    <android.support.v7.widget.SwitchCompat
+                        android:id="@+id/shareViaLinkPasswordSwitch"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_alignParentRight="true"
+                        android:layout_alignParentTop="true"
+                        android:padding="@dimen/standard_half_padding"
+                        />
+
+                    <TextView
+                        android:id="@+id/shareViaLinkPasswordLabel"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentLeft="true"
+                        android:layout_alignParentStart="true"
+                        android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
+                        android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
+                        android:paddingLeft="@dimen/standard_half_padding"
+                        android:paddingRight="@dimen/standard_half_padding"
+                        android:paddingTop="@dimen/standard_half_padding"
+                        android:text="@string/share_via_link_password_label"
+                        android:textColor="@color/black"
+                        android:textSize="14sp"
+                        />
+
+                    <TextView
+                        android:id="@+id/shareViaLinkPasswordValue"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentLeft="true"
+                        android:layout_alignParentStart="true"
+                        android:layout_below="@id/shareViaLinkPasswordLabel"
+                        android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
+                        android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
+                        android:paddingBottom="@dimen/standard_half_padding"
+                        android:paddingLeft="@dimen/standard_half_padding"
+                        android:paddingRight="@dimen/standard_half_padding"
+                        android:text="@string/share_via_link_password_title"
+                        android:textSize="12sp"
+                        android:visibility="invisible"
+                        />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/shareViaLinkExpirationSection"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_alignParentEnd="true"
-                    android:layout_alignParentRight="true"
-                    android:layout_centerInParent="true"
-                    android:padding="@dimen/standard_half_padding"
-                    />
-
-                <TextView
-                    android:id="@+id/shareViaLinkEditPermissionLabel"
-                    android:layout_width="wrap_content"
+                    >
+
+                    <android.support.v7.widget.SwitchCompat
+                        android:id="@+id/shareViaLinkExpirationSwitch"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_alignParentRight="true"
+                        android:layout_alignParentTop="true"
+                        android:checked="false"
+                        android:padding="@dimen/standard_half_padding"/>
+
+                    <TextView
+                        android:id="@+id/shareViaLinkExpirationLabel"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentLeft="true"
+                        android:layout_alignParentStart="true"
+                        android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
+                        android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
+                        android:paddingLeft="@dimen/standard_half_padding"
+                        android:paddingRight="@dimen/standard_half_padding"
+                        android:paddingTop="@dimen/standard_half_padding"
+                        android:text="@string/share_via_link_expiration_date_label"
+                        android:textColor="@color/black"
+                        android:textSize="14sp"
+                        />
+
+                    <TextView
+                        android:id="@+id/shareViaLinkExpirationValue"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentLeft="true"
+                        android:layout_alignParentStart="true"
+                        android:layout_below="@id/shareViaLinkExpirationLabel"
+                        android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
+                        android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
+                        android:paddingBottom="@dimen/standard_half_padding"
+                        android:paddingLeft="@dimen/standard_half_padding"
+                        android:paddingRight="@dimen/standard_half_padding"
+                        android:textSize="12sp"
+                        />
+
+                </RelativeLayout>
+
+                <android.support.v7.widget.AppCompatButton
+                    android:id="@+id/shareViaLinkGetLinkButton"
+                    style="@style/ownCloud.Button"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_alignParentLeft="true"
-                    android:layout_alignParentStart="true"
-                    android:layout_toLeftOf="@id/shareViaLinkEditPermissionSwitch"
-                    android:layout_toStartOf="@id/shareViaLinkEditPermissionSwitch"
-                    android:paddingLeft="@dimen/standard_half_padding"
-                    android:paddingRight="@dimen/standard_half_padding"
-                    android:paddingTop="@dimen/standard_half_padding"
-                    android:text="@string/share_via_link_edit_permission_label"
-                    android:textColor="@color/black"
-                    android:textSize="14sp"
-                    />
-
-            </RelativeLayout>
+                    android:layout_gravity="center_horizontal"
+                    android:contentDescription="shareGetLinkButton"
+                    android:text="@string/share_get_public_link_button"
+                    android:theme="@style/Button.Primary"/>
 
-            <android.support.v7.widget.AppCompatButton
-                android:id="@+id/shareViaLinkGetLinkButton"
-                style="@style/ownCloud.Button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal"
-                android:contentDescription="shareGetLinkButton"
-                android:text="@string/share_get_public_link_button"
-                android:theme="@style/Button.Primary"/>
+            </LinearLayout>
 
         </LinearLayout>
+
     </LinearLayout>
 
 </ScrollView>

+ 2 - 1
res/values/setup.xml

@@ -24,7 +24,8 @@
     
     <!-- Flags to enable/disable some features -->
     <string name = "send_files_to_other_apps">on</string>
-    <string name = "share_feature">on</string>
+    <bool name = "share_via_link_feature">true</bool>
+    <bool name = "share_with_users_feature">true</bool>
     
     
     <!-- Colors -->

+ 6 - 3
src/com/owncloud/android/files/FileMenuFilter.java

@@ -181,14 +181,17 @@ public class FileMenuFilter {
         }
 
         // SHARE FILE
-        boolean shareAllowed = (mContext != null  &&
-                mContext.getString(R.string.share_feature).equalsIgnoreCase("on"));
+        boolean shareViaLinkAllowed = (mContext != null  &&
+                mContext.getResources().getBoolean(R.bool.share_via_link_feature));
+        boolean shareWithUsersAllowed = (mContext != null  &&
+                mContext.getResources().getBoolean(R.bool.share_with_users_feature));
+
         OCCapability capability = mComponentsGetter.getStorageManager().getCapability(mAccount.name);
         boolean shareApiEnabled  = capability != null &&
                 (capability.getFilesSharingApiEnabled().isTrue() ||
                         capability.getFilesSharingApiEnabled().isUnknown()
                 );
-        if (!shareAllowed ||  mFile == null || !shareApiEnabled) {
+        if ((!shareViaLinkAllowed && !shareWithUsersAllowed) ||  mFile == null || !shareApiEnabled) {
             toHide.add(R.id.action_share_file);
         } else {
             toShow.add(R.id.action_share_file);

+ 27 - 1
src/com/owncloud/android/ui/fragment/ShareFileFragment.java

@@ -34,6 +34,7 @@ import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.CompoundButton;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.ScrollView;
@@ -241,6 +242,9 @@ public class ShareFileFragment extends Fragment
         // Set listener for user actions on edit permission
         initEditPermissionListener(view);
 
+        // Hide share features sections that are not enabled
+        hideNotEnabledShareSections(view);
+
         return view;
     }
 
@@ -853,7 +857,29 @@ public class ShareFileFragment extends Fragment
      */
     public void requestPasswordForShareViaLink(boolean createShare) {
         SharePasswordDialogFragment dialog = SharePasswordDialogFragment.newInstance(mFile, createShare);
-        dialog.show(getFragmentManager(),SharePasswordDialogFragment.PASSWORD_FRAGMENT);
+        dialog.show(getFragmentManager(), SharePasswordDialogFragment.PASSWORD_FRAGMENT);
+    }
+
+    /**
+     * Hide share features sections that are not enabled
+     * @param view
+     */
+    private void hideNotEnabledShareSections(View view) {
+        LinearLayout shareWithUsersSection = (LinearLayout) view.findViewById(R.id.shareWithUsersSection);
+        LinearLayout shareViaLinkSection = (LinearLayout) view.findViewById(R.id.shareViaLinkSection);
+
+        boolean shareViaLinkAllowed = getActivity().getResources().getBoolean(R.bool.share_via_link_feature);
+        boolean shareWithUsersAllowed = getActivity().getResources().getBoolean(R.bool.share_with_users_feature);
+
+        // Hide share via link section if it is not enabled
+        if (!shareViaLinkAllowed) {
+            shareViaLinkSection.setVisibility(View.GONE);
+        }
+
+        // Hide share with users section if it is not enabled
+        if (!shareWithUsersAllowed) {
+            shareWithUsersSection.setVisibility(View.GONE);
+        }
     }
 
 }