Skip to content

Commit fc261f7

Browse files
committed
Fix authentication issue with NextCloud servers
This switches to NextCloud's client library as it is easier to integrate and it seems to be compatible with ownCloud. Fixes #651
1 parent d4ebcd6 commit fc261f7

4 files changed

Lines changed: 13 additions & 7 deletions

File tree

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ repositories{
209209

210210
dependencies {
211211
compile fileTree(dir: 'libs', include: ['*.jar'])
212-
compile(name:'owncloud_library', ext:'aar')
212+
compile 'com.github.nextcloud:android-library:1.0.31'
213213
compile('com.android.support:support-v4:' + androidSupportVersion,
214214
'com.android.support:appcompat-v7:' + androidSupportVersion,
215215
'com.android.support:design:' + androidSupportVersion,

app/libs/owncloud_library.aar

-143 KB
Binary file not shown.

app/src/main/java/org/gnucash/android/export/ExportAsyncTask.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,15 +402,21 @@ private void moveExportToOwnCloud() throws Exporter.ExporterException {
402402
String mimeType = mExporter.getExportMimeType();
403403

404404
RemoteOperationResult result = new UploadRemoteFileOperation(
405-
exportedFilePath, remotePath, mimeType).execute(mClient);
406-
405+
exportedFilePath, remotePath, mimeType,
406+
getFileLastModifiedTimestamp(exportedFilePath))
407+
.execute(mClient);
407408
if (!result.isSuccess())
408409
throw new Exporter.ExporterException(mExportParams, result.getLogMessage());
409410

410411
new File(exportedFilePath).delete();
411412
}
412413
}
413414

415+
private static String getFileLastModifiedTimestamp(String path) {
416+
Long timeStampLong = new File(path).lastModified() / 1000;
417+
return timeStampLong.toString();
418+
}
419+
414420
/**
415421
* Moves the exported files from the internal storage where they are generated to
416422
* external storage, which is accessible to the user.

app/src/main/java/org/gnucash/android/ui/settings/dialog/OwnCloudDialogFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
2626
import com.owncloud.android.lib.resources.files.FileUtils;
2727
import com.owncloud.android.lib.resources.status.GetRemoteStatusOperation;
28-
import com.owncloud.android.lib.resources.users.GetRemoteUserNameOperation;
28+
import com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation;
2929

3030
import org.gnucash.android.R;
3131

@@ -185,7 +185,7 @@ public void onRemoteOperationFinish(RemoteOperation caller, RemoteOperationResul
185185
mServerError.setText(getString(R.string.owncloud_server_invalid));
186186
mServerError.setVisibility(View.VISIBLE);
187187

188-
} else if (caller instanceof GetRemoteUserNameOperation &&
188+
} else if (caller instanceof GetRemoteUserInfoOperation &&
189189
mServerError.getText().toString().equals(getString(R.string.owncloud_server_ok))) {
190190
mUsernameError.setTextColor(ContextCompat.getColor(getContext(), R.color.debit_red));
191191
mUsernameError.setText(getString(R.string.owncloud_user_invalid));
@@ -196,7 +196,7 @@ public void onRemoteOperationFinish(RemoteOperation caller, RemoteOperationResul
196196
mServerError.setTextColor(ContextCompat.getColor(getContext(), R.color.theme_primary));
197197
mServerError.setText(getString(R.string.owncloud_server_ok));
198198
mServerError.setVisibility(View.VISIBLE);
199-
} else if (caller instanceof GetRemoteUserNameOperation) {
199+
} else if (caller instanceof GetRemoteUserInfoOperation) {
200200
mUsernameError.setTextColor(ContextCompat.getColor(getContext(), R.color.theme_primary));
201201
mUsernameError.setText(getString(R.string.owncloud_user_ok));
202202
mUsernameError.setVisibility(View.VISIBLE);
@@ -209,7 +209,7 @@ public void onRemoteOperationFinish(RemoteOperation caller, RemoteOperationResul
209209
GetRemoteStatusOperation g = new GetRemoteStatusOperation(mContext);
210210
g.execute(mClient, listener, mHandler);
211211

212-
GetRemoteUserNameOperation gu = new GetRemoteUserNameOperation();
212+
GetRemoteUserInfoOperation gu = new GetRemoteUserInfoOperation();
213213
gu.execute(mClient, listener, mHandler);
214214

215215
if (FileUtils.isValidPath(mOC_dir, false)) {

0 commit comments

Comments
 (0)