use of com.dar.nclientv2.api.comments.Comment in project NClientV2 by Dar9586.
the class CommentAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(@NonNull CommentAdapter.ViewHolder holder, int pos) {
int position = holder.getBindingAdapterPosition();
Comment c = comments.get(position);
holder.layout.setOnClickListener(v1 -> {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
context.runOnUiThread(() -> holder.body.setMaxLines(holder.body.getMaxLines() == 7 ? 999 : 7));
}
});
holder.close.setVisibility(c.getPosterId() != userId ? View.GONE : View.VISIBLE);
holder.user.setText(c.getUsername());
holder.body.setText(c.getComment());
holder.date.setText(format.format(c.getPostDate()));
holder.close.setOnClickListener(v -> {
String refererUrl = String.format(Locale.US, Utility.getBaseUrl() + "g/%d/", galleryId);
String submitUrl = String.format(Locale.US, Utility.getBaseUrl() + "api/comments/%d/delete", c.getId());
new AuthRequest(refererUrl, submitUrl, new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
if (response.body().string().contains("true")) {
comments.remove(position);
context.runOnUiThread(() -> notifyItemRemoved(position));
}
}
}).setMethod("POST", AuthRequest.EMPTY_BODY).start();
});
if (c.getAvatarUrl() == null || Global.getDownloadPolicy() != Global.DataUsageType.FULL)
ImageDownloadUtility.loadImage(R.drawable.ic_person, holder.userImage);
else
ImageDownloadUtility.loadImage(context, c.getAvatarUrl(), holder.userImage);
}
use of com.dar.nclientv2.api.comments.Comment in project NClientV2 by Dar9586.
the class CommentActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Global.initActivity(this);
setContentView(R.layout.activity_comment);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(R.string.comments);
findViewById(R.id.page_switcher).setVisibility(View.GONE);
int id = getIntent().getIntExtra(getPackageName() + ".GALLERYID", -1);
if (id == -1) {
finish();
return;
}
recycler = findViewById(R.id.recycler);
refresher = findViewById(R.id.refresher);
refresher.setOnRefreshListener(() -> new CommentsFetcher(CommentActivity.this, id).start());
EditText commentText = findViewById(R.id.commentText);
findViewById(R.id.card).setVisibility(Login.isLogged() ? View.VISIBLE : View.GONE);
findViewById(R.id.sendButton).setOnClickListener(v -> {
if (commentText.getText().toString().length() < MINIUM_MESSAGE_LENGHT) {
Toast.makeText(this, getString(R.string.minimum_comment_length, MINIUM_MESSAGE_LENGHT), Toast.LENGTH_SHORT).show();
return;
}
String refererUrl = String.format(Locale.US, Utility.getBaseUrl() + "g/%d/", id);
String submitUrl = String.format(Locale.US, Utility.getBaseUrl() + "api/gallery/%d/comments/submit", id);
String requestString = createRequestString(commentText.getText().toString());
commentText.setText("");
RequestBody body = RequestBody.create(MediaType.get("application/json"), requestString);
new AuthRequest(refererUrl, submitUrl, new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
JsonReader reader = new JsonReader(response.body().charStream());
Comment comment = null;
reader.beginObject();
while (reader.peek() != JsonToken.END_OBJECT) {
if ("comment".equals(reader.nextName())) {
comment = new Comment(reader);
} else {
reader.skipValue();
}
}
reader.close();
if (comment != null && adapter != null)
adapter.addComment(comment);
}
}).setMethod("POST", body).start();
});
changeLayout(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE);
recycler.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
refresher.setRefreshing(true);
new CommentsFetcher(CommentActivity.this, id).start();
}
Aggregations