Skip to content

Commit

Permalink
Drop NC13-NC15
Browse files Browse the repository at this point in the history
in 204 endpoint there is no maintenance:false

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
  • Loading branch information
tobiasKaminsky committed Nov 3, 2020
1 parent 8283b5a commit 1699760
Show file tree
Hide file tree
Showing 17 changed files with 41 additions and 187 deletions.
13 changes: 0 additions & 13 deletions src/main/java/com/nextcloud/client/account/UserAccountManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -121,19 +121,6 @@ public interface UserAccountManager extends CurrentAccountProvider {
@NonNull
OwnCloudVersion getServerVersion(Account account);

/**
* Check if user's account supports media streaming. This is a property of server where user has his account.
*
* @deprecated Please use {@link OwnCloudVersion#isMediaStreamingSupported()} directly,
* obtainable from {@link User#getServer()} and {@link Server#getVersion()}
*
* @param account Account used to perform {@link android.accounts.AccountManager} lookup.
*
* @return true is server supports media streaming, false otherwise
*/
@Deprecated
boolean isMediaStreamingSupported(@Nullable Account account);

void resetOwnCloudAccount();

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,11 +327,6 @@ public OwnCloudVersion getServerVersion(Account account) {
return serverVersion;
}

@Override
public boolean isMediaStreamingSupported(Account account) {
return account != null && getServerVersion(account).isMediaStreamingSupported();
}

@Override
public void resetOwnCloudAccount() {
SharedPreferences.Editor appPrefs = PreferenceManager.getDefaultSharedPreferences(context).edit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,10 @@
import com.nextcloud.client.account.Server;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.logger.Logger;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.json.JSONObject;

import java.io.IOException;

Expand Down Expand Up @@ -79,35 +77,14 @@ public boolean isInternetWalled() {
if (baseServerAddress.isEmpty()) {
return true;
}
String url;
if (server.getVersion().compareTo(OwnCloudVersion.nextcloud_13) > 0) {
url = baseServerAddress + "/index.php/204";
} else {
url = baseServerAddress + "/status.php";
}

get = requestBuilder.invoke(url);
get = requestBuilder.invoke(baseServerAddress + "/index.php/204");
HttpClient client = clientFactory.createPlainClient();

int status = client.executeMethod(get);

if (server.getVersion().compareTo(OwnCloudVersion.nextcloud_13) > 0) {
return !(status == HttpStatus.SC_NO_CONTENT &&
(get.getResponseContentLength() == -1 || get.getResponseContentLength() == 0));
} else {
if (status == HttpStatus.SC_OK) {
try {
// try parsing json to verify response
// check if json contains maintenance and it should be false
String json = get.getResponseBodyAsString();
return new JSONObject(json).getBoolean("maintenance");
} catch (Exception e) {
return true;
}
} else {
return true;
}
}
return !(status == HttpStatus.SC_NO_CONTENT &&
(get.getResponseContentLength() == -1 || get.getResponseContentLength() == 0));
} catch (IOException e) {
logger.e(TAG, "Error checking internet connection", e);
} finally {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/owncloud/android/MainApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,13 @@

/**
* Main Application of the project
*
* <p>
* Contains methods to build the "static" strings. These strings were before constants in different classes
*/
public class MainApp extends MultiDexApplication implements HasAndroidInjector {

public static final OwnCloudVersion OUTDATED_SERVER_VERSION = OwnCloudVersion.nextcloud_16;
public static final OwnCloudVersion MINIMUM_SUPPORTED_SERVER_VERSION = OwnCloudVersion.nextcloud_13;
public static final OwnCloudVersion OUTDATED_SERVER_VERSION = OwnCloudVersion.nextcloud_17;
public static final OwnCloudVersion MINIMUM_SUPPORTED_SERVER_VERSION = OwnCloudVersion.nextcloud_16;

private static final String TAG = MainApp.class.getSimpleName();
public static final String DOT = ".";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ private void filterDrawerMenu(final Menu menu, @NonNull final User user) {
OCCapability capability = storageManager.getCapability(user.getAccountName());

DrawerMenuUtil.filterSearchMenuItems(menu, user, getResources());
DrawerMenuUtil.filterTrashbinMenuItem(menu, user, capability);
DrawerMenuUtil.filterTrashbinMenuItem(menu, capability);
DrawerMenuUtil.filterActivityMenuItem(menu, capability);

DrawerMenuUtil.setupHomeMenuItem(menu, getResources());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -689,9 +689,7 @@ protected void refreshSecondFragment(String downloadEvent, String downloadedRemo
mWaitingToPreview = getStorageManager().getFileById(mWaitingToPreview.getFileId());

if (PreviewMediaFragment.canBePreviewed(mWaitingToPreview)) {
boolean streaming = AccountUtils.getServerVersionForAccount(getAccount(), this)
.isMediaStreamingSupported();
startMediaPreview(mWaitingToPreview, 0, true, true, streaming);
startMediaPreview(mWaitingToPreview, 0, true, true, true);
detailsFragmentChanged = true;
} else if (MimeTypeUtil.isVCard(mWaitingToPreview.getMimeType())) {
startContactListFragment(mWaitingToPreview);
Expand Down Expand Up @@ -1876,9 +1874,7 @@ private void onRenameFileOperationFinish(RenameFileOperation operation,
((PreviewMediaFragment) details).updateFile(renamedFile);
if (PreviewMediaFragment.canBePreviewed(renamedFile)) {
int position = ((PreviewMediaFragment) details).getPosition();
boolean streaming = AccountUtils.getServerVersionForAccount(getAccount(), this)
.isMediaStreamingSupported();
startMediaPreview(renamedFile, position, true, true, streaming);
startMediaPreview(renamedFile, position, true, true, true);
} else {
getFileOperationsHelper().openFile(renamedFile);
}
Expand Down Expand Up @@ -2342,11 +2338,9 @@ public void onMessageEvent(SyncEventFinished event) {
if (event.getIntent().getBooleanExtra(TEXT_PREVIEW, false)) {
startTextPreview((OCFile) bundle.get(EXTRA_FILE), true);
} else if (bundle.containsKey(PreviewVideoActivity.EXTRA_START_POSITION)) {
boolean streaming = AccountUtils.getServerVersionForAccount(getAccount(), this)
.isMediaStreamingSupported();
startMediaPreview((OCFile)bundle.get(EXTRA_FILE),
(int)bundle.get(PreviewVideoActivity.EXTRA_START_POSITION),
(boolean) bundle.get(PreviewVideoActivity.EXTRA_AUTOPLAY), true, streaming);
startMediaPreview((OCFile) bundle.get(EXTRA_FILE),
(int) bundle.get(PreviewVideoActivity.EXTRA_START_POSITION),
(boolean) bundle.get(PreviewVideoActivity.EXTRA_AUTOPLAY), true, true);
} else if (bundle.containsKey(PreviewImageActivity.EXTRA_VIRTUAL_TYPE)) {
startImagePreview((OCFile)bundle.get(EXTRA_FILE),
(VirtualFolderType)bundle.get(PreviewImageActivity.EXTRA_VIRTUAL_TYPE),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,12 @@
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.activities.model.Activity;
import com.owncloud.android.lib.resources.activities.model.RichElement;
import com.owncloud.android.lib.resources.activities.model.RichObject;
import com.owncloud.android.lib.resources.activities.models.PreviewObject;
import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.lib.resources.status.OCCapability;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.ui.interfaces.ActivityListInterface;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimeTypeUtil;
Expand Down Expand Up @@ -230,23 +227,14 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi
}
});

if (capability.getVersion().isNewerOrEqual(OwnCloudVersion.nextcloud_15)) {
for (PreviewObject previewObject : activity.getPreviews()) {
if (!isDetailView || MimeTypeUtil.isImageOrVideo(previewObject.getMimeType()) ||
MimeTypeUtil.isVideo(previewObject.getMimeType())) {
ImageView imageView = createThumbnailNew(previewObject,
activity
.getRichSubjectElement()
.getRichObjectList());
activityViewHolder.list.addView(imageView);
}
}
} else {
for (RichObject richObject : activity.getRichSubjectElement().getRichObjectList()) {
if (richObject.getPath() != null) {
ImageView imageView = createThumbnailOld(richObject, isDetailView);
activityViewHolder.list.addView(imageView);
}
for (PreviewObject previewObject : activity.getPreviews()) {
if (!isDetailView || MimeTypeUtil.isImageOrVideo(previewObject.getMimeType()) ||
MimeTypeUtil.isVideo(previewObject.getMimeType())) {
ImageView imageView = createThumbnailNew(previewObject,
activity
.getRichSubjectElement()
.getRichObjectList());
activityViewHolder.list.addView(imageView);
}
}
} else {
Expand Down Expand Up @@ -301,68 +289,6 @@ private ImageView createThumbnailNew(PreviewObject previewObject, List<RichObjec
return imageView;
}

private ImageView createThumbnailOld(final RichObject richObject, boolean isDetailView) {
String path = FileUtils.PATH_SEPARATOR + richObject.getPath();
OCFile file = storageManager.getFileByPath(path);

if (file == null) {
file = storageManager.getFileByPath(path + FileUtils.PATH_SEPARATOR);
}
if (file == null) {
file = new OCFile(path);
file.setRemoteId(richObject.getId());
}

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(px, px);
params.setMargins(10, 10, 10, 10);
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(params);
imageView.setOnClickListener(v -> activityListInterface.onActivityClicked(richObject));
setBitmap(file, imageView, isDetailView);

return imageView;
}

private void setBitmap(OCFile file, ImageView fileIcon, boolean isDetailView) {
// No Folder
if (!file.isFolder()) {
if (MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) {
int placeholder;

if (MimeTypeUtil.isImage(file)) {
placeholder = R.drawable.file_image;
} else {
placeholder = R.drawable.file_movie;
}

String uri = client.getBaseUri() + "/index.php/apps/files/api/v1/thumbnail/" + px + "/" + px +
Uri.encode(file.getRemotePath(), "/");

Glide.with(context).using(new CustomGlideStreamLoader(currentAccountProvider, clientFactory))
.load(uri).placeholder(placeholder)
.error(placeholder)
.into(fileIcon); // using custom fetcher

} else {
if (isDetailView) {
fileIcon.setVisibility(View.GONE);
} else {
fileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(),
context));
}
}
} else {
// Folder
if (isDetailView) {
fileIcon.setVisibility(View.GONE);
} else {
fileIcon.setImageDrawable(
MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() || file.isSharedWithSharee(),
file.isSharedViaLink(), file.isEncrypted(), file.getMountType(), context));
}
}
}

private void downloadIcon(Activity activity, ImageView itemViewType) {
GenericRequestBuilder<Uri, InputStream, SVG, Bitmap> requestBuilder = Glide.with(context)
.using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
import com.owncloud.android.lib.resources.files.ReadFileVersionsRemoteOperation;
import com.owncloud.android.lib.resources.files.model.FileVersion;
import com.owncloud.android.lib.resources.status.OCCapability;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.operations.CommentFileOperation;
import com.owncloud.android.ui.activity.ComponentsGetter;
import com.owncloud.android.ui.adapter.ActivityAndVersionListAdapter;
Expand Down Expand Up @@ -255,9 +254,7 @@ private void setupView() {
operationsHelper = ((ComponentsGetter) requireActivity()).getFileOperationsHelper();

OCCapability capability = storageManager.getCapability(user.getAccountName());
OwnCloudVersion serverVersion = user.getServer().getVersion();
restoreFileVersionSupported = capability.getFilesVersioning().isTrue() &&
serverVersion.compareTo(OwnCloudVersion.nextcloud_14) >= 0;
restoreFileVersionSupported = capability.getFilesVersioning().isTrue();

emptyContentProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
PorterDuff.Mode.SRC_IN);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ private void prepareOptionsMenu(Menu menu) {

mf.filter(menu,
true,
currentUser.getServer().getVersion().isMediaStreamingSupported());
true);
}

if (getFile().isFolder()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ public void prepareUserOptionsMenu(Menu menu, OCShare share) {
share.getExpirationDate(),
getResources());

sendNoteItem.setVisible(capabilities.getVersion().isNoteOnShareSupported());
sendNoteItem.setVisible(true);
}

public void showLinkOverflowMenu(OCShare publicShare, ImageView overflowMenuShareLink) {
Expand Down Expand Up @@ -399,8 +399,7 @@ public void prepareLinkOptionsMenu(Menu menu, OCShare publicShare) {
Resources res = requireContext().getResources();
SharingMenuHelper.setupHideFileDownload(menu.findItem(R.id.action_hide_file_download),
publicShare.isHideFileDownload(),
isFileDrop(publicShare),
capabilities);
isFileDrop(publicShare));

SharingMenuHelper.setupPasswordMenuItem(menu.findItem(R.id.action_password),
publicShare.isPasswordProtected());
Expand All @@ -409,7 +408,7 @@ public void prepareLinkOptionsMenu(Menu menu, OCShare publicShare) {
publicShare.getExpirationDate(),
res);

menu.findItem(R.id.action_share_send_note).setVisible(capabilities.getVersion().isNoteOnShareSupported());
menu.findItem(R.id.action_share_send_note).setVisible(true);
}

@VisibleForTesting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -529,10 +529,9 @@ mContainerActivity, getActivity(),
true,
deviceInfo,
accountManager.getUser());
final boolean isMediaStreamingSupported = currentUser.getServer().getVersion().isMediaStreamingSupported();
mf.filter(popup.getMenu(),
true,
isMediaStreamingSupported);
true);
popup.setOnMenuItemClickListener(item -> {
Set<OCFile> checkedFiles = new HashSet<>();
checkedFiles.add(file);
Expand Down Expand Up @@ -694,10 +693,7 @@ public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
accountManager.getUser()
);

final boolean isMediaStreamingSupported = currentUser.getServer().getVersion().isMediaStreamingSupported();
mf.filter(menu,
false,
isMediaStreamingSupported);
mf.filter(menu, false, true);

// Determine if we need to finish the action mode because there are no items selected
if (checkedCount == 0 && !mIsActionModeNew) {
Expand Down Expand Up @@ -1021,8 +1017,7 @@ public void onItemClicked(OCFile file) {
OCCapability capability = mContainerActivity.getStorageManager()
.getCapability(account.getAccountName());

if (PreviewMediaFragment.canBePreviewed(file) && account.getServer().getVersion()
.isMediaStreamingSupported() && !file.isEncrypted()) {
if (PreviewMediaFragment.canBePreviewed(file) && !file.isEncrypted()) {
// stream media preview on >= NC14
setFabVisible(false);
resetHeaderScrollingState();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

import com.owncloud.android.R;
import com.owncloud.android.lib.resources.shares.OCShare;
import com.owncloud.android.lib.resources.status.OCCapability;

import java.text.SimpleDateFormat;
import java.util.Date;
Expand Down Expand Up @@ -66,14 +65,12 @@ public static void setupHideFileListingMenuItem(MenuItem fileListing,
/**
* Sets checked/visibility state on the given {@link MenuItem} based on the given criteria.
*
* @param menuItem the {@link MenuItem} to be setup
* @param capabilities Capabilities of server to check if hide download is supported
* @param menuItem the {@link MenuItem} to be setup
*/
public static void setupHideFileDownload(MenuItem menuItem,
boolean hideFileDownload,
boolean isFileDrop,
OCCapability capabilities) {
if (!capabilities.getVersion().isHideFileDownloadSupported() || isFileDrop) {
boolean isFileDrop) {
if (isFileDrop) {
menuItem.setVisible(false);
} else {
menuItem.setVisible(true);
Expand Down
Loading

0 comments on commit 1699760

Please sign in to comment.