use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.
the class FragmentComments method subscribe.
private void subscribe() {
CommentsTopModel data = controllerCommentsTop.getEventHolder().getData().getValue();
Link linkStart = data.getLinkModel().getLink();
Source source = data.getSource();
LinksController linksController = getLinksControllerFromSource(source);
if (linksController == null) {
this.linksModel.getLinks().clear();
this.linksModel.getLinks().add(linkStart);
} else {
subscriptionLinks = linksController.getEventHolder().getData().subscribe(linksModel -> {
this.linksModel = linksModel;
if (indexStart == 0) {
indexStart = UtilsList.indexOf(linksModel.getLinks(), link -> linkStart.getId().equals(link.getId()));
positionCurrent = indexStart;
}
adapterComments.notifyDataSetChanged();
pagerComments.setCurrentItem(positionCurrent, false);
});
}
}
use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.
the class ControllerProfile method remove.
public Link remove(int position) {
Link link;
if (position == -1) {
link = topLink;
topLink = null;
for (Listener listener : listeners) {
listener.getAdapter().notifyItemChanged(2);
}
} else {
link = (Link) data.getChildren().remove(position);
for (Listener listener : listeners) {
listener.getAdapter().notifyItemRemoved(position + 6);
}
}
return link;
}
use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.
the class TableLink method queryListing.
public List<Thing> queryListing(final List<String> ids) {
// StringBuilder statement = new StringBuilder("SELECT * from " + NAME + " inner join (select " + ids.get(0) + " as " + _ID);
//
// String union = " union all select ";
//
// for (int index = 1; index < ids.size(); index++) {
// statement.append(union)
// .append(DatabaseUtils.sqlEscapeString(ids.get(index)));
// }
//
// statement.append(") as x on " + NAME + "." + _ID + " = x." + _ID);
List<String> parameters = new ArrayList<>(ids.size());
for (int index = 0; index < ids.size(); index++) {
parameters.add("?");
}
List<Thing> links = new ArrayList<>();
ObjectMapper objectMapper = ComponentStatic.getObjectMapper();
String[] idArray = new String[ids.size()];
for (int index = 0; index < idArray.length; index++) {
idArray[index] = ids.get(index);
}
Cursor query = sqLiteDatabase.query(NAME, new String[] { COLUMN_JSON, COLUMN_COMMENTS }, _ID + " IN (" + TextUtils.join(",", parameters) + ")", idArray, null, null, null);
if (query != null) {
if (query.moveToFirst()) {
do {
String json = query.getString(query.getColumnIndex(COLUMN_JSON));
String comments = query.getString(query.getColumnIndex(COLUMN_COMMENTS));
try {
Link link = Link.fromJson(objectMapper.readValue(json, JsonNode.class));
if (!TextUtils.isEmpty(comments)) {
link.setComments(Listing.fromJson(objectMapper.readValue(comments, JsonNode.class)));
}
links.add(link);
} catch (IOException e) {
e.printStackTrace();
}
} while (query.moveToNext());
}
query.close();
}
Collections.sort(links, new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
int first = ids.indexOf(lhs.getId());
int second = ids.indexOf(rhs.getId());
return first < second ? -1 : (first == second ? 0 : 1);
}
});
return links;
}
use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.
the class ControllerHistory method setNsfw.
@Override
public void setNsfw(String name, boolean over18) {
for (int index = 0; index < history.getChildren().size(); index++) {
Thing thing = history.getChildren().get(index);
if (thing.getName().equals(name)) {
((Link) thing).setOver18(over18);
eventHolder.call(new RxAdapterEvent<>(getData(), RxAdapterEvent.Type.CHANGE, index + 1));
return;
}
}
}
use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.
the class ControllerHistory method remove.
public Link remove(int position) {
Link link = getLink(position);
history.getChildren().remove(link);
historian.getEntry(link).setRemoved(true);
eventHolder.call(new RxAdapterEvent<>(getData(), RxAdapterEvent.Type.REMOVE, position));
return link;
}
Aggregations