diff --git a/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java index e3715e9c2230..d1e6ea4c9204 100644 --- a/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -207,6 +207,7 @@ public boolean saveFile(OCFile file) { cv.put(ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT, file.getUnreadCommentsCount()); cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId()); cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName()); + cv.put(ProviderTableMeta.FILE_NOTE, file.getNote()); boolean sameRemotePath = fileExists(file.getRemotePath()); if (sameRemotePath || @@ -448,6 +449,7 @@ private ContentValues createContentValueForFile(OCFile folder) { cv.put(ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT, folder.getUnreadCommentsCount()); cv.put(ProviderTableMeta.FILE_OWNER_ID, folder.getOwnerId()); cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, folder.getOwnerDisplayName()); + cv.put(ProviderTableMeta.FILE_NOTE, folder.getNote()); return cv; } @@ -486,6 +488,7 @@ private ContentValues createContentValueForFile(OCFile file, OCFile folder) { cv.put(ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT, file.getUnreadCommentsCount()); cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId()); cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName()); + cv.put(ProviderTableMeta.FILE_NOTE, file.getNote()); return cv; } @@ -984,6 +987,7 @@ private OCFile createFileInstance(Cursor c) { file.setUnreadCommentsCount(c.getInt(c.getColumnIndex(ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT))); file.setOwnerId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_ID))); file.setOwnerDisplayName(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME))); + file.setNote(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_NOTE))); } return file; diff --git a/src/main/java/com/owncloud/android/datamodel/OCFile.java b/src/main/java/com/owncloud/android/datamodel/OCFile.java index 8edaa7c3058f..f7e7c9dc4f27 100644 --- a/src/main/java/com/owncloud/android/datamodel/OCFile.java +++ b/src/main/java/com/owncloud/android/datamodel/OCFile.java @@ -87,6 +87,7 @@ public class OCFile implements Parcelable, Comparable, ServerFileInterfa @Getter @Setter private int unreadCommentsCount; @Getter @Setter private String ownerId; @Getter @Setter private String ownerDisplayName; + @Getter @Setter String note; /** * URI to the local path of the file contents, if stored in the device; cached after first call diff --git a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 45022b289185..f9266cd89420 100644 --- a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -42,7 +42,6 @@ import android.view.MenuItem; import android.view.WindowManager; import android.widget.ImageView; - import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.lib.common.OwnCloudAccount; @@ -61,7 +60,7 @@ import com.owncloud.android.utils.DisplayUtils.AvatarGenerationListener; import com.owncloud.android.utils.FileStorageUtils; import com.owncloud.android.utils.MimeTypeUtil; - +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.jetbrains.annotations.NotNull; @@ -73,8 +72,6 @@ import java.net.URLEncoder; import java.util.List; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; - /** * Manager for concurrent access to thumbnails cache. */ diff --git a/src/main/java/com/owncloud/android/db/ProviderMeta.java b/src/main/java/com/owncloud/android/db/ProviderMeta.java index b19caa4b2df1..0a5a4224260b 100644 --- a/src/main/java/com/owncloud/android/db/ProviderMeta.java +++ b/src/main/java/com/owncloud/android/db/ProviderMeta.java @@ -32,7 +32,7 @@ public class ProviderMeta { public static final String DB_NAME = "filelist"; - public static final int DB_VERSION = 43; + public static final int DB_VERSION = 44; private ProviderMeta() { } @@ -108,6 +108,7 @@ static public class ProviderTableMeta implements BaseColumns { public static final String FILE_UNREAD_COMMENTS_COUNT = "unread_comments_count"; public static final String FILE_OWNER_ID = "owner_id"; public static final String FILE_OWNER_DISPLAY_NAME = "owner_display_name"; + public static final String FILE_NOTE = "note"; public static final String[] FILE_ALL_COLUMNS = { _ID, FILE_PARENT, FILE_NAME, FILE_CREATION, FILE_MODIFIED, diff --git a/src/main/java/com/owncloud/android/providers/FileContentProvider.java b/src/main/java/com/owncloud/android/providers/FileContentProvider.java index b786b173f2e3..82541f199b0d 100644 --- a/src/main/java/com/owncloud/android/providers/FileContentProvider.java +++ b/src/main/java/com/owncloud/android/providers/FileContentProvider.java @@ -700,7 +700,8 @@ private void createFilesTable(SQLiteDatabase db) { + ProviderTableMeta.FILE_HAS_PREVIEW + INTEGER + ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT + INTEGER + ProviderTableMeta.FILE_OWNER_ID + TEXT - + ProviderTableMeta.FILE_OWNER_DISPLAY_NAME + " TEXT);" + + ProviderTableMeta.FILE_OWNER_DISPLAY_NAME + TEXT + + ProviderTableMeta.FILE_NOTE + " TEXT);" ); } @@ -1887,6 +1888,24 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (!upgraded) { Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion)); } + + if (oldVersion < 44 && newVersion >= 44) { + Log_OC.i(SQL, "Entering in the #44 add note to file table"); + db.beginTransaction(); + try { + db.execSQL(ALTER_TABLE + ProviderTableMeta.FILE_TABLE_NAME + + ADD_COLUMN + ProviderTableMeta.FILE_NOTE + " TEXT "); + + upgraded = true; + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + } + + if (!upgraded) { + Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion)); + } } @Override diff --git a/src/main/java/com/owncloud/android/ui/adapter/FileDetailTabAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/FileDetailTabAdapter.java index 2e86fede2d27..814c4a01a7ab 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/FileDetailTabAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/FileDetailTabAdapter.java @@ -71,6 +71,6 @@ public FileDetailActivitiesFragment getFileDetailActivitiesFragment() { @Override public int getCount() { - return file.canReshare() ? 2 : 1; + return 2; } } diff --git a/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java index 4dc84fa734df..a1f6f428deac 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java @@ -288,9 +288,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (isCheckedFile(file)) { gridViewHolder.itemLayout.setBackgroundColor(mContext.getResources() - .getColor(R.color.selected_item_background)); + .getColor(R.color.selected_item_background)); gridViewHolder.checkbox.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_checkbox_marked, - ThemeUtils.primaryColor(mContext))); + ThemeUtils.primaryColor(mContext))); } else { gridViewHolder.itemLayout.setBackgroundColor(Color.WHITE); gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline); @@ -301,7 +301,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi if (!mHideItemOptions) { gridViewHolder.itemLayout.setLongClickable(true); gridViewHolder.itemLayout.setOnLongClickListener(v -> - ocFileListFragmentInterface.onLongItemClicked(file)); + ocFileListFragmentInterface.onLongItemClicked(file)); } // unread comments @@ -352,14 +352,14 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi itemViewHolder.fileSize.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength())); } itemViewHolder.lastModification.setText(DisplayUtils.getRelativeTimestamp(mContext, - file.getModificationTimestamp())); + file.getModificationTimestamp())); if (multiSelect || gridView || mHideItemOptions) { itemViewHolder.overflowMenu.setVisibility(View.GONE); } else { itemViewHolder.overflowMenu.setVisibility(View.VISIBLE); itemViewHolder.overflowMenu.setOnClickListener(view -> ocFileListFragmentInterface - .onOverflowIconClicked(file, view)); + .onOverflowIconClicked(file, view)); } } @@ -422,49 +422,50 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi } } - private void showFederatedShareAvatar(OCFile file, float avatarRadius, Resources resources, - OCFileListItemViewHolder itemViewHolder) { - // maybe federated share - String userId = file.getOwnerId().split("@")[0]; - String server = file.getOwnerId().split("@")[1]; - - String url = "https://" + server + "/avatar/" + userId + "/" + - DisplayUtils.convertDpToPixel(avatarRadius, mContext); - - Drawable placeholder; - try { - placeholder = TextDrawable.createAvatarByUserId(userId, avatarRadius); - } catch (Exception e) { - Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e); - placeholder = resources.getDrawable(R.drawable.account_circle_white); - } - - itemViewHolder.sharedAvatar.setTag(null); - Glide.with(mContext).load(url) - .asBitmap() - .placeholder(placeholder) - .error(placeholder) - .into(new BitmapImageViewTarget(itemViewHolder.sharedAvatar) { - @Override - protected void setResource(Bitmap resource) { - RoundedBitmapDrawable circularBitmapDrawable = - RoundedBitmapDrawableFactory.create(mContext.getResources(), resource); - circularBitmapDrawable.setCircular(true); - itemViewHolder.sharedAvatar.setImageDrawable(circularBitmapDrawable); - } - }); - } + private void showFederatedShareAvatar(OCFile file, float avatarRadius, Resources resources, + OCFileListItemViewHolder itemViewHolder) { + // maybe federated share + String userId = file.getOwnerId().split("@")[0]; + String server = file.getOwnerId().split("@")[1]; + + String url = "https://" + server + "/avatar/" + userId + "/" + + DisplayUtils.convertDpToPixel(avatarRadius, mContext); + + Drawable placeholder; + try { + placeholder = TextDrawable.createAvatarByUserId(userId, avatarRadius); + } catch (Exception e) { + Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e); + placeholder = resources.getDrawable(R.drawable.account_circle_white); + } + + itemViewHolder.sharedAvatar.setTag(null); + Glide.with(mContext).load(url) + .asBitmap() + .placeholder(placeholder) + .error(placeholder) + .into(new BitmapImageViewTarget(itemViewHolder.sharedAvatar) { + @Override + protected void setResource(Bitmap resource) { + RoundedBitmapDrawable circularBitmapDrawable = + RoundedBitmapDrawableFactory.create(mContext.getResources(), resource); + circularBitmapDrawable.setCircular(true); + itemViewHolder.sharedAvatar.setImageDrawable(circularBitmapDrawable); + } + }); + } private void setThumbnail(OCFile file, ImageView thumbnailView) { if (file.isFolder()) { - thumbnailView.setImageDrawable(MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() || - file.isSharedWithSharee(), file.isSharedViaLink(), file.isEncrypted(), file.getMountType(), - mContext)); + thumbnailView.setImageDrawable(MimeTypeUtil + .getFolderTypeIcon(file.isSharedWithMe() || file.isSharedWithSharee(), + file.isSharedViaLink(), file.isEncrypted(), + file.getMountType(), mContext)); } else { if (file.getRemoteId() != null && file.isPreviewAvailable()) { // Thumbnail in cache? Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache( - ThumbnailsCacheManager.PREFIX_THUMBNAIL + file.getRemoteId() + ThumbnailsCacheManager.PREFIX_THUMBNAIL + file.getRemoteId() ); if (thumbnail != null && !file.isUpdateThumbnailNeeded()) { @@ -479,8 +480,8 @@ private void setThumbnail(OCFile file, ImageView thumbnailView) { if (ThumbnailsCacheManager.cancelPotentialThumbnailWork(file, thumbnailView)) { try { final ThumbnailsCacheManager.ThumbnailGenerationTask task = - new ThumbnailsCacheManager.ThumbnailGenerationTask(thumbnailView, mStorageManager, - mAccount, asyncTasks); + new ThumbnailsCacheManager.ThumbnailGenerationTask(thumbnailView, mStorageManager, + mAccount, asyncTasks); if (thumbnail == null) { if (MimeTypeUtil.isVideo(file)) { @@ -490,12 +491,12 @@ private void setThumbnail(OCFile file, ImageView thumbnailView) { } } final ThumbnailsCacheManager.AsyncThumbnailDrawable asyncDrawable = - new ThumbnailsCacheManager.AsyncThumbnailDrawable(mContext.getResources(), - thumbnail, task); + new ThumbnailsCacheManager.AsyncThumbnailDrawable(mContext.getResources(), + thumbnail, task); thumbnailView.setImageDrawable(asyncDrawable); asyncTasks.add(task); task.execute(new ThumbnailsCacheManager.ThumbnailGenerationTaskObject(file, - file.getRemoteId())); + file.getRemoteId())); } catch (IllegalArgumentException e) { Log_OC.d(TAG, "ThumbnailGenerationTask : " + e.getMessage()); } @@ -507,7 +508,7 @@ private void setThumbnail(OCFile file, ImageView thumbnailView) { } } else { thumbnailView.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), - mAccount, mContext)); + mAccount, mContext)); } } } @@ -545,7 +546,7 @@ private String generateFooterText(int filesCount, int foldersCount) { output = resources.getQuantityString(R.plurals.file_list__footer__folder, foldersCount, foldersCount); } else { output = resources.getQuantityString(R.plurals.file_list__footer__file, filesCount, filesCount) + ", " + - resources.getQuantityString(R.plurals.file_list__footer__folder, foldersCount, foldersCount); + resources.getQuantityString(R.plurals.file_list__footer__folder, foldersCount, foldersCount); } return output; @@ -598,10 +599,10 @@ private void showShareIcon(OCFileListGridImageViewHolder gridViewHolder, OCFile /** * Change the adapted directory for a new one - * @param directory New folder to adapt. Can be NULL, meaning - * "no content to adapt". + * + * @param directory New folder to adapt. Can be NULL, meaning "no content to adapt". * @param updatedStorageManager Optional updated storage manager; used to replace - * @param limitToMimeType show only files of this mimeType + * @param limitToMimeType show only files of this mimeType */ public void swapDirectory(OCFile directory, FileDataStorageManager updatedStorageManager, boolean onlyOnDevice, String limitToMimeType) { @@ -688,7 +689,7 @@ private void parseShares(List objects) { // get ocFile from Server to have an up-to-date copy RemoteOperationResult result = new ReadFileRemoteOperation(ocShare.getPath()).execute(mAccount, - mContext); + mContext); if (result.isSuccess()) { OCFile file = FileStorageUtils.fillOCFile((RemoteFile) result.getData().get(0)); @@ -699,7 +700,7 @@ private void parseShares(List objects) { if (newShareType == ShareType.PUBLIC_LINK) { file.setSharedViaLink(true); } else if (newShareType == ShareType.USER || newShareType == ShareType.GROUP || - newShareType == ShareType.EMAIL || newShareType == ShareType.FEDERATED) { + newShareType == ShareType.EMAIL || newShareType == ShareType.FEDERATED) { file.setSharedWithSharee(true); } @@ -747,7 +748,7 @@ private void parseVirtuals(List objects, ExtendedListFragment.SearchType if (ocFile.isFolder()) { long currentSyncTime = System.currentTimeMillis(); RemoteOperation refreshFolderOperation = new RefreshFolderOperation(ocFile, currentSyncTime, false, - false, mStorageManager, mAccount, mContext); + false, mStorageManager, mAccount, mContext); refreshFolderOperation.execute(mAccount, mContext); } @@ -810,7 +811,6 @@ public boolean shouldCallGeneratedCallback(String tag, Object callContext) { } private class FilesFilter extends Filter { - @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); @@ -820,8 +820,8 @@ protected FilterResults performFiltering(CharSequence constraint) { for (OCFile file : mFilesAll) { if (file.getParentRemotePath().equals(currentDirectory.getRemotePath()) && file.getFileName().toLowerCase(Locale.getDefault()).contains( - constraint.toString().toLowerCase(Locale.getDefault())) && - !filteredFiles.contains(file)) { + constraint.toString().toLowerCase(Locale.getDefault())) && + !filteredFiles.contains(file)) { filteredFiles.add(file); } } @@ -852,7 +852,6 @@ protected void publishResults(CharSequence constraint, Filter.FilterResults resu } } - /** * Filter for hidden files * @@ -901,7 +900,7 @@ public void setGridView(boolean bool) { gridView = bool; } - static class OCFileListItemViewHolder extends OCFileListGridItemViewHolder { + static class OCFileListItemViewHolder extends OCFileListGridItemViewHolder { @BindView(R.id.file_size) public TextView fileSize; @@ -920,7 +919,7 @@ private OCFileListItemViewHolder(View itemView) { } } - static class OCFileListGridItemViewHolder extends OCFileListGridImageViewHolder { + static class OCFileListGridItemViewHolder extends OCFileListGridImageViewHolder { @BindView(R.id.Filename) public TextView fileName; private OCFileListGridItemViewHolder(View itemView) { @@ -929,26 +928,26 @@ private OCFileListGridItemViewHolder(View itemView) { } } - static class OCFileListGridImageViewHolder extends RecyclerView.ViewHolder { - @BindView(R.id.thumbnail) - public ImageView thumbnail; + static class OCFileListGridImageViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.thumbnail) + public ImageView thumbnail; - @BindView(R.id.favorite_action) - public ImageView favorite; + @BindView(R.id.favorite_action) + public ImageView favorite; - @BindView(R.id.localFileIndicator) - public ImageView localFileIndicator; + @BindView(R.id.localFileIndicator) + public ImageView localFileIndicator; - @BindView(R.id.sharedIcon) - public ImageView shared; + @BindView(R.id.sharedIcon) + public ImageView shared; - @BindView(R.id.custom_checkbox) - public ImageView checkbox; + @BindView(R.id.custom_checkbox) + public ImageView checkbox; - @BindView(R.id.ListItemLayout) - public LinearLayout itemLayout; + @BindView(R.id.ListItemLayout) + public LinearLayout itemLayout; - @BindView(R.id.unreadComments) + @BindView(R.id.unreadComments) public ImageView unreadComments; private OCFileListGridImageViewHolder(View itemView) { @@ -957,7 +956,7 @@ private OCFileListGridImageViewHolder(View itemView) { } } - static class OCFileListFooterViewHolder extends RecyclerView.ViewHolder { + static class OCFileListFooterViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.footerText) public TextView footerText; diff --git a/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java index d5441ff951ba..74e277079032 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -302,10 +302,7 @@ private void setupViewPager() { tabLayout.removeAllTabs(); tabLayout.addTab(tabLayout.newTab().setText(R.string.drawer_item_activities)); - - if (getFile().canReshare()) { - tabLayout.addTab(tabLayout.newTab().setText(R.string.share_dialog_title)); - } + tabLayout.addTab(tabLayout.newTab().setText(R.string.share_dialog_title)); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); tabLayout.setSelectedTabIndicatorColor(ThemeUtils.primaryAccentColor(getContext())); diff --git a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java index 3780f353ccf7..422fe1a6419c 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java @@ -128,6 +128,9 @@ public class FileDetailSharingFragment extends Fragment implements UserListAdapt @BindView(R.id.shared_with_you_username) TextView sharedWithYouUsername; + @BindView(R.id.shared_with_you_note) + TextView sharedWithYouNote; + public static FileDetailSharingFragment newInstance(OCFile file, Account account) { FileDetailSharingFragment fragment = new FileDetailSharingFragment(); Bundle args = new Bundle(); @@ -208,13 +211,19 @@ public void onAttach(Context context) { } private void setupView() { - setShareByLinkInfo(file.isSharedViaLink()); - setShareWithUserInfo(); setShareWithYou(); - FileDetailSharingFragmentHelper.setupSearchView( - (SearchManager) fileDisplayActivity.getSystemService(Context.SEARCH_SERVICE), searchView, - fileDisplayActivity.getComponentName()); - ThemeUtils.themeSearchView(getContext(), searchView, false); + + if (file.canReshare()) { + setShareByLinkInfo(file.isSharedViaLink()); + setShareWithUserInfo(); + FileDetailSharingFragmentHelper.setupSearchView( + (SearchManager) fileDisplayActivity.getSystemService(Context.SEARCH_SERVICE), searchView, + fileDisplayActivity.getComponentName()); + ThemeUtils.themeSearchView(getContext(), searchView, false); + } else { + searchView.setVisibility(View.GONE); + noList.setText(R.string.reshare_not_allowed); + } } /** @@ -271,6 +280,15 @@ private void setShareWithYou() { R.dimen.file_list_item_avatar_icon_radius), getResources(), sharedWithYouAvatar, getContext()); sharedWithYouAvatar.setVisibility(View.VISIBLE); + + String note = file.getNote(); + + if (!note.isEmpty()) { + sharedWithYouNote.setText(file.getNote()); + sharedWithYouNote.setVisibility(View.VISIBLE); + } else { + sharedWithYouNote.setVisibility(View.GONE); + } } } @@ -535,7 +553,7 @@ public void refreshCapabilitiesFromDB() { * Takes into account server capabilities before reading database. */ public void refreshPublicShareFromDB() { - if (FileDetailSharingFragmentHelper.isPublicShareDisabled(capabilities)) { + if (FileDetailSharingFragmentHelper.isPublicShareDisabled(capabilities) || !file.canReshare()) { shareByLinkContainer.setVisibility(View.GONE); } else { // Get public share diff --git a/src/main/java/com/owncloud/android/utils/FileStorageUtils.java b/src/main/java/com/owncloud/android/utils/FileStorageUtils.java index fff023035fd0..b51119321dd5 100644 --- a/src/main/java/com/owncloud/android/utils/FileStorageUtils.java +++ b/src/main/java/com/owncloud/android/utils/FileStorageUtils.java @@ -209,6 +209,7 @@ public static OCFile fillOCFile(RemoteFile remote) { file.setUnreadCommentsCount(remote.getUnreadCommentsCount()); file.setOwnerId(remote.getOwnerId()); file.setOwnerDisplayName(remote.getOwnerDisplayName()); + file.setNote(remote.getNote()); return file; } @@ -441,7 +442,7 @@ public static boolean checkEncryptionStatus(OCFile file, FileDataStorageManager * Taken from https://github.com/TeamAmaze/AmazeFileManager/blob/54652548223d151f089bdc6fc868b13ca5ab20a9/app/src * /main/java/com/amaze/filemanager/activities/MainActivity.java#L620 on 14.02.2019 */ - @SuppressFBWarnings(value = "DMI_HARDCODED_ABSOLUTE_FILENAME", + @SuppressFBWarnings(value = "DMI_HARDCODED_ABSOLUTE_FILENAME", justification = "Default Android fallback storage path") public static List getStorageDirectories(Activity activity) { // Final set of paths diff --git a/src/main/res/layout/file_details_sharing_fragment.xml b/src/main/res/layout/file_details_sharing_fragment.xml index cff9cc56f608..a061a5acc0f0 100644 --- a/src/main/res/layout/file_details_sharing_fragment.xml +++ b/src/main/res/layout/file_details_sharing_fragment.xml @@ -18,10 +18,10 @@ License along with this program. If not, see . --> + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1"> + android:hint="@string/share_search" + style="@style/ownCloud.SearchView"/> + + + @@ -99,7 +109,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:text="@string/share_via_link_section_title" /> + android:text="@string/share_via_link_section_title"/> + android:src="@drawable/ic_content_copy"/> + android:textSize="16sp"/> Authentication Exception Avatar from shared user Shared with you by %1$s + Resharing is not allowed