Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

483/Remove PlusClient dependencies #589

Merged
merged 13 commits into from
Mar 18, 2016
6 changes: 3 additions & 3 deletions app/src/main/java/org/gdg/frisbee/android/api/Callback.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@ public final void onResponse(Call<T> call, Response<T> response) {
} else {
try {
final Exception e = new Exception(response.errorBody().string());
Timber.e(e, "Network Error!");
Timber.e(e, "Response error!");
failure(e);
} catch (IOException e) {
Timber.e(e, "Network Error!");
Timber.e(e, "Network error after response error!");
failure(e);
}
}
}

@Override
public final void onFailure(Call<T> call, Throwable t) {
Timber.d(t, "Network Failure!");
Timber.d(t, "Network failure!");
networkFailure(t);
}

Expand Down
96 changes: 58 additions & 38 deletions app/src/main/java/org/gdg/frisbee/android/chapter/InfoFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

import org.gdg.frisbee.android.Const;
import org.gdg.frisbee.android.R;
import org.gdg.frisbee.android.api.Callback;
import org.gdg.frisbee.android.api.model.plus.Person;
import org.gdg.frisbee.android.api.model.plus.Urls;
import org.gdg.frisbee.android.app.App;
Expand All @@ -43,13 +44,11 @@
import org.gdg.frisbee.android.utils.Utils;
import org.gdg.frisbee.android.view.BitmapBorderTransformation;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import butterknife.Bind;
import butterknife.ButterKnife;
import retrofit2.Response;
import timber.log.Timber;

public class InfoFragment extends BaseFragment {
Expand Down Expand Up @@ -103,17 +102,27 @@ public void onGet(Object item) {

@Override
public void onNotFound(String key) {
try {
Response<Person> response = App.getInstance().getPlusApi()
.getPerson(chapterPlusId).execute();
if (response.isSuccessful()) {
Person person = response.body();
putPersonInCache(chapterPlusId, person);
updateUIOnlineFrom(person);
}
} catch (IOException e) {
setIsLoading(false);
}
App.getInstance().getPlusApi().getPerson(chapterPlusId).enqueue(
new Callback<Person>() {
@Override
public void success(Person person) {
putPersonInCache(chapterPlusId, person);
updateUIOnlineFrom(person);
setIsLoading(false);
}

@Override
public void failure(Throwable error) {
super.failure(error);
setIsLoading(false);
}

@Override
public void networkFailure(Throwable error) {
super.networkFailure(error);
setIsLoading(false);
}
});
}
});
} else {
Expand Down Expand Up @@ -143,21 +152,15 @@ private void updateUIOnlineFrom(Person person) {
}
}

private void addOrganizers(final Person cachedChapter, boolean offline) {
private void addOrganizers(final Person cachedChapter, boolean online) {
if (cachedChapter.getUrls() != null) {
for (int chapterIndex = 0; chapterIndex < cachedChapter.getUrls().size(); chapterIndex++) {
Urls url = cachedChapter.getUrls().get(chapterIndex);
if (isNonCommunityPlusUrl(url)) {

String org = url.getValue();
try {
String id = getGPlusIdFromPersonUrl(url);
Person person = getPersonSync(id, offline);
if (person == null) {
addUnknownOrganizerToUI();
} else {
addOrganizerToUI(person);
}
addOrganizerAsync(id, online);
} catch (Exception ex) {
if (isAdded()) {
addUrlToUI(url);
Expand Down Expand Up @@ -227,25 +230,42 @@ private Spanned getAboutText(Person person) {
return Html.fromHtml(aboutText);
}

private Person getPersonSync(String gplusId, boolean online) {
Person person = (Person) App.getInstance().getModelCache().get(
Const.CACHE_KEY_PERSON + gplusId, online);
if (person != null) {
return person;
} else {
if (online) {
try {
Response<Person> response = App.getInstance().getPlusApi().getPerson(gplusId).execute();
if (response.isSuccessful()) {
putPersonInCache(gplusId, response.body());
return response.body();
private void addOrganizerAsync(final String gplusId, final boolean online) {
App.getInstance().getModelCache().getAsync(
Const.CACHE_KEY_PERSON + gplusId, online, new ModelCache.CacheListener() {
@Override
public void onGet(Object item) {
addOrganizerToUI((Person) item);
}

@Override
public void onNotFound(String key) {
if (online) {
App.getInstance().getPlusApi().getPerson(gplusId).enqueue(new Callback<Person>() {
@Override
public void success(Person organizer) {
putPersonInCache(gplusId, organizer);
addOrganizerToUI(organizer);
}

@Override
public void failure(Throwable error) {
super.failure(error);
addUnknownOrganizerToUI();
}

@Override
public void networkFailure(Throwable error) {
super.networkFailure(error);
addUnknownOrganizerToUI();
}
});

} else {
addUnknownOrganizerToUI();
}
} catch (IOException e) {
// ignore
}
}
}
return null;
});
}

private void putPersonInCache(String plusId, Person person) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ public void success(Activities activityFeed) {
}

public void cacheActivityFeed(String plusId, Activities feed) {
App.getInstance().getModelCache().put(Const.CACHE_KEY_NEWS + plusId, feed, DateTime.now().plusHours(1));
App.getInstance().getModelCache().putAsync(Const.CACHE_KEY_NEWS + plusId, feed,
DateTime.now().plusHours(1), null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ public void onNotFound(final String key) {
@Override
public void success(Person person) {
if (person != null) {
App.getInstance().getModelCache().put(key, person);
App.getInstance().getModelCache().putAsync(key, person, null);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 We should look into the usages of put and make all of them async. The ModelCache causes a lot of issues in strict mode.

updateChapterImage(person, homeChapterId);
}
}
Expand Down