Fix IllegalMonitorStateException
When we unlock a lock the thread don't Held
This commit is contained in:
parent
57860793ff
commit
a441ce8ff4
|
@ -41,6 +41,7 @@ import java.net.IDN;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
import app.fedilab.android.BaseMainActivity;
|
import app.fedilab.android.BaseMainActivity;
|
||||||
|
@ -105,9 +106,9 @@ public class NotificationsHelper {
|
||||||
|
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
ReentrantLock lock = getLock(slug);
|
ReentrantLock lock = getLock(slug);
|
||||||
try {
|
// fetch if we get the lock, or ignore, another thread is doing the job
|
||||||
// fetch if we get the lock, or ignore, another thread is doing the job
|
if (lock.tryLock()) {
|
||||||
if (lock.tryLock()) {
|
try {
|
||||||
MastodonNotificationsService mastodonNotificationsService = init(context, slugArray[1]);
|
MastodonNotificationsService mastodonNotificationsService = init(context, slugArray[1]);
|
||||||
Notifications notifications = new Notifications();
|
Notifications notifications = new Notifications();
|
||||||
Call<List<Notification>> notificationsCall;
|
Call<List<Notification>> notificationsCall;
|
||||||
|
@ -135,10 +136,11 @@ public class NotificationsHelper {
|
||||||
Runnable myRunnable = () -> onRetrieveNotifications(context, notifications, accountDb, last_notif_id);
|
Runnable myRunnable = () -> onRetrieveNotifications(context, notifications, accountDb, last_notif_id);
|
||||||
mainHandler.post(myRunnable);
|
mainHandler.post(myRunnable);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
if (lock.isHeldByCurrentThread()) {
|
if (lock.isHeldByCurrentThread()) {
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
|
@ -147,7 +149,11 @@ public class NotificationsHelper {
|
||||||
|
|
||||||
private static MastodonNotificationsService init(Context context, String instance) {
|
private static MastodonNotificationsService init(Context context, String instance) {
|
||||||
|
|
||||||
final OkHttpClient okHttpClient = Helper.myOkHttpClient(context);
|
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
||||||
|
.readTimeout(60, TimeUnit.SECONDS)
|
||||||
|
.connectTimeout(60, TimeUnit.SECONDS)
|
||||||
|
.proxy(Helper.getProxy(context))
|
||||||
|
.build();
|
||||||
Retrofit retrofit = new Retrofit.Builder()
|
Retrofit retrofit = new Retrofit.Builder()
|
||||||
.baseUrl("https://" + (instance != null ? IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) : null) + "/api/v1/")
|
.baseUrl("https://" + (instance != null ? IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) : null) + "/api/v1/")
|
||||||
.addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder()))
|
.addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder()))
|
||||||
|
|
Loading…
Reference in New Issue