Skip to content

Commit

Permalink
Initial work on v2 with activity
Browse files Browse the repository at this point in the history
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
  • Loading branch information
tobiasKaminsky committed Dec 12, 2019
1 parent 45f1146 commit 066f4c2
Show file tree
Hide file tree
Showing 18 changed files with 52 additions and 37 deletions.
6 changes: 5 additions & 1 deletion 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 @@ -60,7 +61,7 @@ ext {
daggerVersion = "2.25.2"
markwonVersion = "4.2.0"
prismVersion = "2.0.0"
androidLibraryVersion = "master-SNAPSHOT"
androidLibraryVersion = "v2withActivity-SNAPSHOT"

travisBuild = System.getenv("TRAVIS") == "true"

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
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,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 Down Expand Up @@ -443,9 +442,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 @@ -30,10 +30,10 @@

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 Down Expand Up @@ -75,7 +75,7 @@ private static class GetActivityListTask extends AsyncTask<Void, Void, Boolean>
private UserAccountManager accountManager;
private int lastGiven;
private String errorMessage;
private OwnCloudClient ownCloudClient;
private NextcloudClient client;

private GetActivityListTask(Account account,
UserAccountManager accountManager,
Expand All @@ -95,9 +95,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 +105,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 +144,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
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@
import com.caverock.androidsvg.SVG;
import com.nextcloud.client.account.CurrentAccountProvider;
import com.nextcloud.client.network.ClientFactory;
import com.nextcloud.common.NextcloudClient;
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.OwnCloudClient;
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;
Expand Down Expand Up @@ -91,7 +91,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
private final ActivityListInterface activityListInterface;
private final int px;
private static final String TAG = ActivityListAdapter.class.getSimpleName();
protected OwnCloudClient client;
protected NextcloudClient client;

protected Context context;
private CurrentAccountProvider currentAccountProvider;
Expand Down Expand Up @@ -119,7 +119,7 @@ public ActivityListAdapter(
this.isDetailView = isDetailView;
}

public void setActivityItems(List<Object> activityItems, OwnCloudClient client, boolean clear) {
public void setActivityItems(List<Object> activityItems, NextcloudClient client, boolean clear) {
this.client = client;
String sTime = "";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.di.Injectable;
import com.nextcloud.client.network.ClientFactory;
import com.nextcloud.common.NextcloudClient;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
Expand Down Expand Up @@ -99,6 +100,7 @@ public class FileDetailActivitiesFragment extends Fragment implements
private ActivityAndVersionListAdapter adapter;
private Unbinder unbinder;
private OwnCloudClient ownCloudClient;
private NextcloudClient nextcloudClient;

private OCFile file;
private Account account;
Expand Down Expand Up @@ -313,7 +315,8 @@ private void fetchAndSetData(int lastGiven) {
Thread t = new Thread(() -> {
try {
ownCloudClient = clientFactory.create(user);
ownCloudClient.setOwnCloudVersion(user.getServer().getVersion());
nextcloudClient = clientFactory.createNextcloudClient(user);

isLoadingActivities = true;

GetActivitiesRemoteOperation getRemoteNotificationOperation;
Expand All @@ -325,7 +328,7 @@ private void fetchAndSetData(int lastGiven) {
}

Log_OC.d(TAG, "BEFORE getRemoteActivitiesOperation.execute");
final RemoteOperationResult result = getRemoteNotificationOperation.execute(ownCloudClient);
final RemoteOperationResult result = getRemoteNotificationOperation.execute(nextcloudClient);

ArrayList<Object> versions = null;
if (restoreFileVersionSupported) {
Expand Down Expand Up @@ -401,7 +404,7 @@ public void markCommentsAsRead() {
}

private void populateList(List<Object> activities, boolean clear) {
adapter.setActivityAndVersionItems(activities, ownCloudClient, clear);
adapter.setActivityAndVersionItems(activities, nextcloudClient, clear);
}

private void setEmptyContent(String headline, String message) {
Expand Down

0 comments on commit 066f4c2

Please sign in to comment.