Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e679bf0 authored by vince-bourgmayer's avatar vince-bourgmayer
Browse files

add interface ISyncronizableContent, modify RemoteFile to implement it and add SynchronizableFile

parent 0b2283e1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
package com.owncloud.android.lib.resources.files.model;

public interface ISynchronizableContent {
    long getLastModified();
}
+6 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ import java.io.Serializable;
 *
 * @author masensio
 */
public class RemoteFile implements Parcelable, Serializable {
public class RemoteFile implements Parcelable, Serializable, ISynchronizableContent {

    /**
     * Generated - should be refreshed every time the class changes!!
@@ -327,4 +327,9 @@ public class RemoteFile implements Parcelable, Serializable {
        dest.writeString(Boolean.toString(hasPreview));
        dest.writeString(note);
    }

    @Override
    public long getLastModified(){
        return this.mModifiedTimestamp;
    }
}
+89 −0
Original line number Diff line number Diff line
package com.owncloud.android.lib.resources.files.model;

import android.support.annotation.NonNull;


import java.io.File;
import java.net.URI;
/*import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import android.util.Log;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.math.BigInteger;*/



/**
 * Class for local file. Its goal is to implement ISynchronizableContent.
 *
 */
public class SynchronizableFile extends File implements ISynchronizableContent {
    public static String TAG = SynchronizableFile.class.getSimpleName();

    public SynchronizableFile(@NonNull String pathname) {
        super(pathname);
    }

    public SynchronizableFile(String parent, @NonNull String child) {
        super(parent, child);
    }

    public SynchronizableFile(File parent, @NonNull String child) {
        super(parent, child);
    }

    public SynchronizableFile(@NonNull URI uri) {
        super(uri);
    }

    @Override
    public long getLastModified() {
        return super.lastModified();
    }

    /**
     * Can throw RuntimeException
     * @return

    @Override
    public String getHash() {
        MessageDigest digest;
        try {
            digest = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "Exception while getting digest", e);
            return null;
        }

        InputStream is;
        try {
            is = new FileInputStream(this);
        } catch (FileNotFoundException e) {
            Log.e(TAG, "Exception while getting FileInputStream", e);
            return null;
        }
        byte[] buffer = new byte[8192];
        int read;
        try {
            while ((read = is.read(buffer)) > 0) {
                digest.update(buffer, 0, read);
            }
            byte[] md5sum = digest.digest();
            BigInteger bigInt = new BigInteger(1, md5sum);
            String output = bigInt.toString(16);
            // Fill to 32 chars
            return String.format("%32s", output).replace(' ', '0');
        } catch (IOException e) {
            throw new RuntimeException("Unable to process file for MD5", e);
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                Log.e(TAG, "Exception on closing MD5 input stream", e);
            }
        }
    }*/
}
+0 −3
Original line number Diff line number Diff line
@@ -30,10 +30,7 @@ package com.owncloud.android.lib.resources.users;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.ocs.ServerResponse;
import com.owncloud.android.lib.ocs.responses.PrivateKey;
import com.owncloud.android.lib.resources.OCSRemoteOperation;
import com.squareup.moshi.Types;

import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;