Skip to content

Commit

Permalink
Merge pull request #4900 from nextcloud/v2withActivity
Browse files Browse the repository at this point in the history
Initial work on v2 with activity
  • Loading branch information
tobiasKaminsky authored Dec 12, 2019
2 parents 45f1146 + a235718 commit 257ac81
Show file tree
Hide file tree
Showing 20 changed files with 102 additions and 100 deletions.
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ buildscript {
classpath 'gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:1.6.6'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.2.2"
classpath "commons-httpclient:commons-httpclient:3.1@jar" // remove after entire switch to lib v2
}
}

Expand Down Expand Up @@ -273,6 +274,9 @@ dependencies {
gplayImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
versionDevImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
qaImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
compileOnly 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' // remove after entire switch to lib v2
implementation "commons-httpclient:commons-httpclient:3.1@jar" // remove after entire switch to lib v2
implementation 'org.apache.jackrabbit:jackrabbit-webdav:2.13.1' // remove after entire switch to lib v2
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.1.0-beta01'
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/nextcloud/client/network/ClientFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import android.net.Uri;

import com.nextcloud.client.account.User;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.accounts.AccountUtils;

Expand Down Expand Up @@ -55,6 +56,8 @@ class CreationException extends Exception {

OwnCloudClient create(User user) throws CreationException;

NextcloudClient createNextcloudClient(User user) throws CreationException;

@Deprecated
OwnCloudClient create(Account account)
throws OperationCanceledException, AuthenticatorException, IOException,
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/com/nextcloud/client/network/ClientFactoryImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import android.net.Uri;

import com.nextcloud.client.account.User;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientFactory;
import com.owncloud.android.lib.common.accounts.AccountUtils;
Expand All @@ -54,6 +55,18 @@ public OwnCloudClient create(User user) throws CreationException {
}
}

@Override
public NextcloudClient createNextcloudClient(User user) throws CreationException {
try {
return OwnCloudClientFactory.createNextcloudClient(user.toPlatformAccount(), context);
} catch (OperationCanceledException |
AuthenticatorException |
IOException |
AccountUtils.AccountNotFoundException e) {
throw new CreationException(e);
}
}

@Override
public OwnCloudClient create(Account account)
throws OperationCanceledException, AuthenticatorException, IOException,
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/owncloud/android/jobs/NotificationJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,6 @@ private void fetchCompleteNotification(Account account, DecryptedPushMessage dec
OwnCloudAccount ocAccount = new OwnCloudAccount(currentAccount, context);
OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton()
.getClientFor(ocAccount, context);
client.setOwnCloudVersion(accountManager.getServerVersion(currentAccount));

RemoteOperationResult result = new GetNotificationRemoteOperation(decryptedPushMessage.nid)
.execute(client);
Expand Down Expand Up @@ -306,7 +305,6 @@ public void onReceive(Context context, Intent intent) {
OwnCloudAccount ocAccount = new OwnCloudAccount(currentAccount, context);
OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton()
.getClientFor(ocAccount, context);
client.setOwnCloudVersion(accountManager.getServerVersion(currentAccount));

String actionType = intent.getStringExtra(KEY_NOTIFICATION_ACTION_TYPE);
String actionLink = intent.getStringExtra(KEY_NOTIFICATION_ACTION_LINK);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpStatus;

import java.util.ArrayList;
Expand Down Expand Up @@ -119,7 +120,7 @@ protected RemoteOperationResult run(OwnCloudClient client) {
Log_OC.d(TAG, "Authentication method found: " + authenticationMethodToString(authMethod));

if (authMethod != AuthenticationMethod.UNKNOWN) {
result = new RemoteOperationResult(true, result.getHttpCode(), result.getHttpPhrase(), null);
result = new RemoteOperationResult(true, result.getHttpCode(), result.getHttpPhrase(), new Header[0]);
}
ArrayList<Object> data = new ArrayList<>();
data.add(authMethod);
Expand Down
15 changes: 2 additions & 13 deletions src/main/java/com/owncloud/android/services/OperationsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import android.text.TextUtils;
import android.util.Pair;

import com.nextcloud.client.account.UserAccountManager;
import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
Expand All @@ -51,7 +50,6 @@
import com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation;
import com.owncloud.android.lib.resources.files.model.FileVersion;
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation;
import com.owncloud.android.operations.CheckCurrentCredentialsOperation;
import com.owncloud.android.operations.CopyFileOperation;
Expand All @@ -76,8 +74,6 @@
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;

import javax.inject.Inject;

import dagger.android.AndroidInjection;

public class OperationsService extends Service {
Expand Down Expand Up @@ -137,8 +133,6 @@ public class OperationsService extends Service {
private ConcurrentMap<Integer, Pair<RemoteOperation, RemoteOperationResult>>
mUndispatchedFinishedOperations = new ConcurrentHashMap<>();

@Inject UserAccountManager accountManager;

private static class Target {
public Uri mServerUrl;
public Account mAccount;
Expand All @@ -164,7 +158,7 @@ public void onCreate() {
HandlerThread thread = new HandlerThread("Operations thread",
Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
mOperationsHandler = new ServiceHandler(thread.getLooper(), this, accountManager);
mOperationsHandler = new ServiceHandler(thread.getLooper(), this);
mOperationsBinder = new OperationsServiceBinder(mOperationsHandler);

// Separated worker thread for download of folders (WIP)
Expand Down Expand Up @@ -400,16 +394,14 @@ private static class ServiceHandler extends Handler {
private Target mLastTarget;
private OwnCloudClient mOwnCloudClient;
private FileDataStorageManager mStorageManager;
private UserAccountManager accountManager;


public ServiceHandler(Looper looper, OperationsService service, UserAccountManager accountManager) {
public ServiceHandler(Looper looper, OperationsService service) {
super(looper);
if (service == null) {
throw new IllegalArgumentException("Received invalid NULL in parameter 'service'");
}
mService = service;
this.accountManager = accountManager;
}

@Override
Expand Down Expand Up @@ -443,9 +435,6 @@ private void nextOperation() {
mOwnCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton().
getClientFor(ocAccount, mService);

OwnCloudVersion version = accountManager.getServerVersion(mLastTarget.mAccount);
mOwnCloudClient.setOwnCloudVersion(version);

mStorageManager = new FileDataStorageManager(
mLastTarget.mAccount,
mService.getContentResolver()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@
import android.widget.TextView;
import android.widget.Toast;

import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.activities.model.RichObject;
import com.owncloud.android.lib.resources.files.FileUtils;
Expand Down Expand Up @@ -238,7 +238,7 @@ public void onActivityClicked(RichObject richObject) {
}

@Override
public void showActivities(List<Object> activities, OwnCloudClient client, int lastGiven) {
public void showActivities(List<Object> activities, NextcloudClient client, int lastGiven) {
boolean clear = false;
if (this.lastGiven == UNDEFINED) {
clear = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
*/
package com.owncloud.android.ui.activities;

import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.ui.activity.BaseActivity;

import java.util.List;

public interface ActivitiesContract {

interface View {
void showActivities(List<Object> activities, OwnCloudClient client, int lastGiven);
void showActivities(List<Object> activities, NextcloudClient client, int lastGiven);
void showActivitiesLoadError(String error);
void showActivityDetailUI(OCFile ocFile);
void showActivityDetailUIIsNull();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

package com.owncloud.android.ui.activities;

import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.ui.activities.data.activities.ActivitiesRepository;
import com.owncloud.android.ui.activities.data.files.FilesRepository;
import com.owncloud.android.ui.activity.BaseActivity;
Expand Down Expand Up @@ -51,7 +51,7 @@ public void loadActivities(int lastGiven) {
activitiesView.setProgressIndicatorState(true);
activitiesRepository.getActivities(lastGiven, new ActivitiesRepository.LoadActivitiesCallback() {
@Override
public void onActivitiesLoaded(List<Object> activities, OwnCloudClient client, int lastGiven) {
public void onActivitiesLoaded(List<Object> activities, NextcloudClient client, int lastGiven) {

if (!activityStopped) {
activitiesView.setProgressIndicatorState(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
package com.owncloud.android.ui.activities.data.activities;

import com.owncloud.android.lib.common.OwnCloudClient;
import com.nextcloud.common.NextcloudClient;

import java.util.List;

Expand All @@ -29,7 +29,7 @@
*/
public interface ActivitiesRepository {
interface LoadActivitiesCallback {
void onActivitiesLoaded(List<Object> activities, OwnCloudClient client, int lastGiven);
void onActivitiesLoaded(List<Object> activities, NextcloudClient client, int lastGiven);
void onActivitiesLoadedError(String error);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
package com.owncloud.android.ui.activities.data.activities;

import com.owncloud.android.lib.common.OwnCloudClient;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.lib.resources.activities.model.Activity;

import java.util.List;
Expand All @@ -31,7 +31,7 @@
public interface ActivitiesServiceApi {

interface ActivitiesServiceCallback<T> {
void onLoaded(T activities, OwnCloudClient client, int lastGiven);
void onLoaded(T activities, NextcloudClient client, int lastGiven);
void onError (String error);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,11 @@
import android.content.Context;
import android.os.AsyncTask;

import com.nextcloud.client.account.User;
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.lib.common.OwnCloudAccount;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.utils.Log_OC;
Expand All @@ -59,9 +58,7 @@ public ActivitiesServiceApiImpl(UserAccountManager accountManager) {

@Override
public void getAllActivities(int lastGiven, ActivitiesServiceCallback<List<Object>> callback) {
User user = accountManager.getUser();
GetActivityListTask getActivityListTask = new GetActivityListTask(user.toPlatformAccount(),
accountManager,
GetActivityListTask getActivityListTask = new GetActivityListTask(accountManager.getUser().toPlatformAccount(),
lastGiven,
callback);
getActivityListTask.execute();
Expand All @@ -72,17 +69,14 @@ private static class GetActivityListTask extends AsyncTask<Void, Void, Boolean>
private final ActivitiesServiceCallback<List<Object>> callback;
private List<Object> activities;
private Account account;
private UserAccountManager accountManager;
private int lastGiven;
private String errorMessage;
private OwnCloudClient ownCloudClient;
private NextcloudClient client;

private GetActivityListTask(Account account,
UserAccountManager accountManager,
int lastGiven,
ActivitiesServiceCallback<List<Object>> callback) {
this.account = account;
this.accountManager = accountManager;
this.lastGiven = lastGiven;
this.callback = callback;
activities = new ArrayList<>();
Expand All @@ -95,9 +89,8 @@ protected Boolean doInBackground(Void... voids) {
OwnCloudAccount ocAccount;
try {
ocAccount = new OwnCloudAccount(account, context);
ownCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton().
getClientFor(ocAccount, MainApp.getAppContext());
ownCloudClient.setOwnCloudVersion(accountManager.getServerVersion(account));
client = OwnCloudClientManagerFactory.getDefaultSingleton().
getNextcloudClientFor(ocAccount, MainApp.getAppContext());

GetActivitiesRemoteOperation getRemoteActivitiesOperation;
if (lastGiven > 0) {
Expand All @@ -106,7 +99,7 @@ protected Boolean doInBackground(Void... voids) {
getRemoteActivitiesOperation = new GetActivitiesRemoteOperation();
}

final RemoteOperationResult result = getRemoteActivitiesOperation.execute(ownCloudClient);
final RemoteOperationResult result = getRemoteActivitiesOperation.execute(client);

if (result.isSuccess() && result.getData() != null) {
final ArrayList<Object> data = result.getData();
Expand Down Expand Up @@ -145,7 +138,7 @@ protected Boolean doInBackground(Void... voids) {
protected void onPostExecute(Boolean success) {
super.onPostExecute(success);
if (success) {
callback.onLoaded(activities, ownCloudClient, lastGiven);
callback.onLoaded(activities, client, lastGiven);
} else {
callback.onError(errorMessage);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
package com.owncloud.android.ui.activities.data.activities;

import com.owncloud.android.lib.common.OwnCloudClient;
import com.nextcloud.common.NextcloudClient;

import java.util.List;

Expand All @@ -38,7 +38,7 @@ public void getActivities(int lastGiven, @NonNull LoadActivitiesCallback callbac
activitiesServiceApi.getAllActivities(lastGiven,
new ActivitiesServiceApi.ActivitiesServiceCallback<List<Object>>() {
@Override
public void onLoaded(List<Object> activities, OwnCloudClient client, int lastGiven) {
public void onLoaded(List<Object> activities, NextcloudClient client, int lastGiven) {
callback.onActivitiesLoaded(activities, client, lastGiven);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ protected Boolean doInBackground(Void... voids) {
final Context context = MainApp.getAppContext();
try {
OwnCloudClient ownCloudClient = clientFactory.create(user);
ownCloudClient.setOwnCloudVersion(user.getServer().getVersion());
// always update file as it could be an old state saved in database
RemoteOperationResult resultRemoteFileOp = new ReadFileRemoteOperation(fileUrl).execute(ownCloudClient);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,6 @@ private void fetchAndSetData() {
try {
User user = optionalUser.get();
client = clientFactory.create(user);
client.setOwnCloudVersion(user.getServer().getVersion());
} catch (ClientFactory.CreationException e) {
Log_OC.e(TAG, "Error initializing client", e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
import android.widget.TextView;

import com.nextcloud.client.account.CurrentAccountProvider;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.resources.activities.model.Activity;
import com.owncloud.android.lib.resources.files.model.FileVersion;
import com.owncloud.android.lib.resources.status.OCCapability;
Expand Down Expand Up @@ -69,7 +69,7 @@ public ActivityAndVersionListAdapter(
this.versionListInterface = versionListInterface;
}

public void setActivityAndVersionItems(List<Object> items, OwnCloudClient newClient, boolean clear) {
public void setActivityAndVersionItems(List<Object> items, NextcloudClient newClient, boolean clear) {
if (client == null) {
client = newClient;
}
Expand Down
Loading

0 comments on commit 257ac81

Please sign in to comment.