From 3b7351db79820c8c2b2f649ce6ccbe452b99fb9d Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sat, 23 May 2015 19:28:56 +0200 Subject: [PATCH] Prepare ASyncContactLoad task. --- .../remote_account/ContactListActivity.java | 28 ++------------ .../owncloud_sms/engine/ASyncContactLoad.java | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/src/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java b/src/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java index a593edc..aa975d4 100644 --- a/src/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java +++ b/src/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java @@ -3,13 +3,11 @@ package fr.unix_experience.owncloud_sms.activities.remote_account; import android.accounts.Account; import android.accounts.AccountManager; import android.app.ListActivity; -import android.net.Uri; import android.os.Bundle; import fr.unix_experience.owncloud_sms.R; -import fr.unix_experience.owncloud_sms.engine.OCSMSOwnCloudClient; -import fr.unix_experience.owncloud_sms.exceptions.OCSyncException; +import fr.unix_experience.owncloud_sms.engine.ASyncContactLoad; -public class ContactListActivity extends ListActivity { +public class ContactListActivity extends ListActivity implements ASyncContactLoad { static AccountManager _accountMgr; @@ -30,7 +28,7 @@ public class ContactListActivity extends ListActivity { for (final Account element : myAccountList) { if (element.name.equals(accountName)) { - new ContactLoadTask().execute(); loadContacts(element); + new ContactLoadTask(element, getBaseContext()).execute(); return; } } @@ -38,26 +36,6 @@ public class ContactListActivity extends ListActivity { // This function fetch contacts from the ownCloud instance and generate the list activity private void loadContacts(final Account account) { - // Create client - final String ocURI = _accountMgr.getUserData(account, "ocURI"); - if (ocURI == null) { - // @TODO: Handle the problem - return; - } - final Uri serverURI = Uri.parse(ocURI); - - final OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(getBaseContext(), - serverURI, _accountMgr.getUserData(account, "ocLogin"), - _accountMgr.getPassword(account)); - - try { - if (_client.getServerAPIVersion() < 2) { - // @TODO: handle error - } - - } catch (final OCSyncException e) { - // @TODO: handle error - } } } diff --git a/src/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java b/src/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java index 4677c4a..b1fd296 100644 --- a/src/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java +++ b/src/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java @@ -1,11 +1,49 @@ package fr.unix_experience.owncloud_sms.engine; +import android.accounts.Account; +import android.accounts.AccountManager; +import android.content.Context; +import android.net.Uri; import android.os.AsyncTask; +import fr.unix_experience.owncloud_sms.exceptions.OCSyncException; public interface ASyncContactLoad { class ContactLoadTask extends AsyncTask { + private static AccountManager _accountMgr = null; + private static Account _account; + private final Context _context; + + public ContactLoadTask(final Account account, final Context context) { + if (_accountMgr == null) { + _accountMgr = AccountManager.get(context); + } + + _account = account; + _context = context; + } @Override protected Void doInBackground(final Void... params) { + // Create client + final String ocURI = _accountMgr.getUserData(_account, "ocURI"); + if (ocURI == null) { + // @TODO: Handle the problem + return null; + } + + final Uri serverURI = Uri.parse(ocURI); + + final OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(_context, + serverURI, _accountMgr.getUserData(_account, "ocLogin"), + _accountMgr.getPassword(_account)); + + try { + if (_client.getServerAPIVersion() < 2) { + // @TODO: handle error + } + _client.getServerPhoneNumbers(); + } catch (final OCSyncException e) { + // @TODO: handle error + } return null; }