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

Commit 2538d247 authored by TChardeur's avatar TChardeur
Browse files

Test without backend

parent 48f4605e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ public class AccountDetailDashboardFragment extends DashboardFragment {
    String mAccountType;
    private AccountSyncPreferenceController mAccountSynController;
    private RemoveAccountPreferenceController mRemoveAccountController;
    private AccountRemoteStoragePreferenceController mAccountRemoteStorageController;
    //private AccountRemoteStoragePreferenceController mAccountRemoteStorageController;

    @Override
    public void onCreate(Bundle icicle) {
@@ -78,7 +78,7 @@ public class AccountDetailDashboardFragment extends DashboardFragment {
        }
        mAccountSynController.init(mAccount, userHandle);
        mRemoveAccountController.init(mAccount, userHandle);
        mAccountRemoteStorageController.init(mAccount, userHandle);
        //mAccountRemoteStorageController.init(mAccount, userHandle);
    }

    @Override
+0 −83
Original line number Diff line number Diff line
package com.android.settings.accounts;

import android.accounts.Account;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
import android.net.Uri;
import android.view.View;

import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.Credentials;

import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settings.R;
import com.android.settings.accounts.FollowNSULinkRemoteOperation;

import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientFactory;
import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;

public class AccountRemoteStoragePreferenceController 
        extends AbstractPreferenceController
        implements OnClickListener {
    private static final String KEY_ACCOUNT_REMOTE_STORAGE = "account_remote_storage";

    private OwnCloudClient mClient;
    private Handler mhandler;
    private Account mAccount;
    private UserHandle mUserHandle;

    public AccountRemoteStoragePreferenceController(Context context) {
        super(context);
    }


    @Override
    public boolean isAvailable() {
        return this.mAccount.type.equals("e.foundation.webdav.eelo");
    }

    @Override
    public String getPreferenceKey() {
        return KEY_ACCOUNT_REMOTE_STORAGE;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    public void init(Account account, UserHandle userHandle) {
        this.mAccount = account;
        this.mUserHandle = userHandle;

        setContentView(R.layout.remove_account_button);

        Uri serverUri = Uri.parse(getString(R.string.e_ecloud_server_uri));

        this.mHandler = new Handler();
        this.mClient = OwnCloudClientFactory.createOwnCloudClient(serverUri, this, true);

        Credentials cred = this.mAccount.getState().getCredentials(AuthScope.ANY);

        this.mClient.setCredentials(
      			OwnCloudCredentialsFactory.newBasicCredentials(
      					cred.getUserName(),
      					cred.getPassword()
  				  )
  		  );
    }

    @Override
    public void onClick(View button) {
        if (button.getId() == R.id.increase_storage_button)
            followNSULink();
    }

    private void followNSULink() {
        FollowNSULinkRemoteOperation followNSULinkOp = new FollowNSULinkRemoteOperation();
        followNSULinkOp.execute(mClient, this, mHandler);
    }
}
+0 −41
Original line number Diff line number Diff line
package com.android.settings.accounts;

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

import android.net.Uri;

import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;


public class FollowNSULinkRemoteOperation extends RemoteOperation {
    protected RemoteOperationResult run(OwnCloudClient client) {
        Uri serverUri = (client.getBaseUri() != null)? client.getBaseUri() : client.getWebdavUri();

        Cookie usernameCookie = new Cookie();
        usernameCookie.setName("username");
        usernameCookie.setValue("x@e.email");
        usernameCookie.setDomain(serverUri.getHost());
        usernameCookie.setPath(serverUri.getPath());

        Cookie tokenCookie = new Cookie();
        tokenCookie.setName("token");
        tokenCookie.setValue("x");
        tokenCookie.setDomain(serverUri.getHost());
        tokenCookie.setPath(serverUri.getPath());

        client.getState().addCookie(usernameCookie);
        client.getState().addCookie(tokenCookie);

        String url = client.getBaseUri() + "/apps/increasestoragebutton/get-redirect-link";
        GetMethod get = new GetMethod(url);
        int status = client.executeMethod(get);

        if(status == 0)
            return new RemoteOperationResult(false, get);

        String redirectLink = get.getResponseBodyAsString();
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(redirectLink)));
    }
}