diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-01-17 23:20:52 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-01-17 23:20:52 +0100 |
| commit | 1c2b0480e1a3a01a2b95346b0e5e3337fb173e2e (patch) | |
| tree | 7b59ff5378c08fe63846d9b54854778658ad7c94 /main/src/cgeo/geocaching/loaders | |
| parent | 624876a771f4a7f8d8ae1c25b9cf80d5fa5e74e7 (diff) | |
| download | cgeo-1c2b0480e1a3a01a2b95346b0e5e3337fb173e2e.zip cgeo-1c2b0480e1a3a01a2b95346b0e5e3337fb173e2e.tar.gz cgeo-1c2b0480e1a3a01a2b95346b0e5e3337fb173e2e.tar.bz2 | |
refactoring: simplify RecaptchReceiver a bit
Diffstat (limited to 'main/src/cgeo/geocaching/loaders')
| -rw-r--r-- | main/src/cgeo/geocaching/loaders/AbstractSearchLoader.java | 26 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/loaders/RecaptchaReceiver.java | 2 |
2 files changed, 10 insertions, 18 deletions
diff --git a/main/src/cgeo/geocaching/loaders/AbstractSearchLoader.java b/main/src/cgeo/geocaching/loaders/AbstractSearchLoader.java index c4f10c9..eeb1dbe 100644 --- a/main/src/cgeo/geocaching/loaders/AbstractSearchLoader.java +++ b/main/src/cgeo/geocaching/loaders/AbstractSearchLoader.java @@ -14,6 +14,8 @@ import android.content.Context; import android.os.Handler; import android.support.v4.content.AsyncTaskLoader; +import java.util.concurrent.CountDownLatch; + public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> implements RecaptchaReceiver { public enum CacheListLoaderType { @@ -41,6 +43,7 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> private String recaptchaText = null; private SearchResult search; private boolean loading; + private CountDownLatch latch = new CountDownLatch(1); public AbstractSearchLoader(Context context) { super(context); @@ -77,8 +80,8 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> forceLoad(); } - public void setRecaptchaHandler(Handler recaptchaHandlerIn) { - recaptchaHandler = recaptchaHandlerIn; + public void setRecaptchaHandler(final Handler recaptchaHandler) { + this.recaptchaHandler = recaptchaHandler; } @Override @@ -89,11 +92,9 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> } @Override - public synchronized void waitForUser() { + public void waitForUser() { try { - while (getText() == null) { - wait(); - } + latch.await(); } catch (InterruptedException e) { Log.w("searchThread is not waiting for user…"); } @@ -105,16 +106,11 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> } @Override - public String getKey() { - return recaptchaKey; - } - - @Override public void fetchChallenge() { recaptchaChallenge = null; if (StringUtils.isNotEmpty(recaptchaKey)) { - final Parameters params = new Parameters("k", getKey()); + final Parameters params = new Parameters("k", recaptchaKey); final String recaptchaJs = Network.getResponseData(Network.getRequest("http://www.google.com/recaptcha/api/challenge", params)); if (StringUtils.isNotBlank(recaptchaJs)) { @@ -129,10 +125,9 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> } @Override - public synchronized void setText(String text) { + public void setText(String text) { recaptchaText = text; - - notify(); + latch.countDown(); } @Override @@ -140,7 +135,6 @@ public abstract class AbstractSearchLoader extends AsyncTaskLoader<SearchResult> return recaptchaText; } - @Override public void reset() { super.reset(); diff --git a/main/src/cgeo/geocaching/loaders/RecaptchaReceiver.java b/main/src/cgeo/geocaching/loaders/RecaptchaReceiver.java index fd5189c..881e048 100644 --- a/main/src/cgeo/geocaching/loaders/RecaptchaReceiver.java +++ b/main/src/cgeo/geocaching/loaders/RecaptchaReceiver.java @@ -10,8 +10,6 @@ public interface RecaptchaReceiver { public void fetchChallenge(); - public String getKey(); - public void setKey(String key); public void notifyNeed(); |
