Use different flags on pol

captchafix
Floens 11 years ago
parent 5b08a7c352
commit ed03835b82
  1. 5
      Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java
  2. 10
      Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java
  3. 10
      Clover/app/src/main/java/org/floens/chan/core/model/Post.java
  4. 5
      Clover/app/src/main/java/org/floens/chan/ui/view/PostView.java

@ -52,6 +52,11 @@ public class ChanUrls {
return "https://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; return "https://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
} }
public static String getTrollCountryFlagUrl(String countryCode) {
return "https://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
}
public static String getBoardsUrl() { public static String getBoardsUrl() {
return "https://a.4cdn.org/boards.json"; return "https://a.4cdn.org/boards.json";
} }

@ -29,7 +29,9 @@ import org.floens.chan.utils.Logger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
public class BoardManager { public class BoardManager {
private static final String TAG = "BoardManager"; private static final String TAG = "BoardManager";
@ -41,6 +43,7 @@ public class BoardManager {
}; };
private List<Board> allBoards; private List<Board> allBoards;
private Map<String, Board> allBoardsByValue = new HashMap<>();
private List<BoardChangeListener> listeners = new ArrayList<>(); private List<BoardChangeListener> listeners = new ArrayList<>();
@ -49,6 +52,10 @@ public class BoardManager {
loadFromServer(); loadFromServer();
} }
public Board getBoardByValue(String value) {
return allBoardsByValue.get(value);
}
public List<Board> getAllBoards() { public List<Board> getAllBoards() {
return allBoards; return allBoards;
} }
@ -99,10 +106,13 @@ public class BoardManager {
private void storeBoards() { private void storeBoards() {
Logger.d(TAG, "Storing boards in database"); Logger.d(TAG, "Storing boards in database");
allBoardsByValue.clear();
for (Board test : allBoards) { for (Board test : allBoards) {
if (test.saved) { if (test.saved) {
Logger.d(TAG, "Board with value " + test.value + " saved"); Logger.d(TAG, "Board with value " + test.value + " saved");
} }
allBoardsByValue.put(test.value, test);
} }
ChanApplication.getDatabaseManager().setBoards(allBoards); ChanApplication.getDatabaseManager().setBoards(allBoards);

@ -18,7 +18,9 @@
package org.floens.chan.core.model; package org.floens.chan.core.model;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.TextUtils;
import org.floens.chan.ChanApplication;
import org.floens.chan.chan.ChanUrls; import org.floens.chan.chan.ChanUrls;
import org.floens.chan.core.loader.ChanParser; import org.floens.chan.core.loader.ChanParser;
import org.floens.chan.ui.view.PostView; import org.floens.chan.ui.view.PostView;
@ -61,6 +63,7 @@ public class Post {
public int fileSize; public int fileSize;
public int images = -1; public int images = -1;
public String rawComment; public String rawComment;
public String countryUrl;
public boolean deleted = false; public boolean deleted = false;
@ -129,10 +132,13 @@ public class Post {
filename = Parser.unescapeEntities(filename, false); filename = Parser.unescapeEntities(filename, false);
} }
if (!TextUtils.isEmpty(country)) {
Board b = ChanApplication.getBoardManager().getBoardByValue(board);
countryUrl = b.trollFlags ? ChanUrls.getTrollCountryFlagUrl(country) : ChanUrls.getCountryFlagUrl(country);
}
ChanParser.getInstance().parse(this); ChanParser.getInstance().parse(this);
return true; return true;
} }
} }

@ -44,7 +44,6 @@ import com.android.volley.toolbox.NetworkImageView;
import org.floens.chan.ChanApplication; import org.floens.chan.ChanApplication;
import org.floens.chan.R; import org.floens.chan.R;
import org.floens.chan.chan.ChanUrls;
import org.floens.chan.core.manager.ThreadManager; import org.floens.chan.core.manager.ThreadManager;
import org.floens.chan.core.model.Post; import org.floens.chan.core.model.Post;
import org.floens.chan.core.model.PostLinkable; import org.floens.chan.core.model.PostLinkable;
@ -211,7 +210,7 @@ public class PostView extends LinearLayout implements View.OnClickListener {
repliesCountView.setOnClickListener(null); repliesCountView.setOnClickListener(null);
} }
boolean showCountryFlag = isList() && !TextUtils.isEmpty(post.country); boolean showCountryFlag = isList() && !TextUtils.isEmpty(post.country) && !TextUtils.isEmpty(post.countryUrl);
boolean showStickyIcon = isList() && post.sticky; boolean showStickyIcon = isList() && post.sticky;
boolean showClosedIcon = isList() && post.closed; boolean showClosedIcon = isList() && post.closed;
boolean showDeletedIcon = isList() && post.deleted; boolean showDeletedIcon = isList() && post.deleted;
@ -223,7 +222,7 @@ public class PostView extends LinearLayout implements View.OnClickListener {
deletedView.setVisibility(showDeletedIcon ? View.VISIBLE : View.GONE); deletedView.setVisibility(showDeletedIcon ? View.VISIBLE : View.GONE);
if (showCountryFlag) { if (showCountryFlag) {
countryView.setVisibility(View.VISIBLE); countryView.setVisibility(View.VISIBLE);
countryView.setImageUrl(ChanUrls.getCountryFlagUrl(post.country), ChanApplication.getVolleyImageLoader()); countryView.setImageUrl(post.countryUrl, ChanApplication.getVolleyImageLoader());
} else { } else {
countryView.setVisibility(View.GONE); countryView.setVisibility(View.GONE);
countryView.setImageUrl(null, null); countryView.setImageUrl(null, null);

Loading…
Cancel
Save