Search in sources :

Example 1 with Comment

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);
}
Also used : Response(okhttp3.Response) Comment(com.dar.nclientv2.api.comments.Comment) AuthRequest(com.dar.nclientv2.settings.AuthRequest) Call(okhttp3.Call) Callback(okhttp3.Callback) IOException(java.io.IOException)

Example 2 with Comment

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();
}
Also used : EditText(android.widget.EditText) AuthRequest(com.dar.nclientv2.settings.AuthRequest) Call(okhttp3.Call) Comment(com.dar.nclientv2.api.comments.Comment) CommentsFetcher(com.dar.nclientv2.api.comments.CommentsFetcher) IOException(java.io.IOException) DividerItemDecoration(androidx.recyclerview.widget.DividerItemDecoration) Response(okhttp3.Response) Callback(okhttp3.Callback) JsonReader(android.util.JsonReader) Toolbar(androidx.appcompat.widget.Toolbar) RequestBody(okhttp3.RequestBody)

Aggregations

Comment (com.dar.nclientv2.api.comments.Comment)2 AuthRequest (com.dar.nclientv2.settings.AuthRequest)2 IOException (java.io.IOException)2 Call (okhttp3.Call)2 Callback (okhttp3.Callback)2 Response (okhttp3.Response)2 JsonReader (android.util.JsonReader)1 EditText (android.widget.EditText)1 Toolbar (androidx.appcompat.widget.Toolbar)1 DividerItemDecoration (androidx.recyclerview.widget.DividerItemDecoration)1 CommentsFetcher (com.dar.nclientv2.api.comments.CommentsFetcher)1 RequestBody (okhttp3.RequestBody)1