diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java index 9e411257..39e465c7 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java @@ -32,8 +32,6 @@ import org.greenrobot.eventbus.Subscribe; import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; import java.util.concurrent.Executor; import javax.inject.Inject; @@ -43,15 +41,16 @@ import butterknife.BindView; import butterknife.ButterKnife; import eu.toldi.infinityforlemmy.Infinity; import eu.toldi.infinityforlemmy.R; +import eu.toldi.infinityforlemmy.RetrofitHolder; import eu.toldi.infinityforlemmy.UploadImageEnabledActivity; import eu.toldi.infinityforlemmy.UploadedImage; import eu.toldi.infinityforlemmy.adapters.MarkdownBottomBarRecyclerViewAdapter; -import eu.toldi.infinityforlemmy.apis.RedditAPI; +import eu.toldi.infinityforlemmy.apis.LemmyAPI; import eu.toldi.infinityforlemmy.bottomsheetfragments.UploadedImagesBottomSheetFragment; import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper; import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed; +import eu.toldi.infinityforlemmy.dto.EditCommentDTO; import eu.toldi.infinityforlemmy.events.SwitchAccountEvent; -import eu.toldi.infinityforlemmy.utils.APIUtils; import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils; import eu.toldi.infinityforlemmy.utils.Utils; import retrofit2.Call; @@ -84,8 +83,8 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab @BindView(R.id.markdown_bottom_bar_recycler_view_edit_comment_activity) RecyclerView markdownBottomBarRecyclerView; @Inject - @Named("oauth") - Retrofit mOauthRetrofit; + @Named("no_oauth") + RetrofitHolder retrofit; @Inject @Named("upload_media") Retrofit mUploadMediaRetrofit; @@ -99,7 +98,7 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab CustomThemeWrapper mCustomThemeWrapper; @Inject Executor mExecutor; - private String mFullName; + private int mCommentId; private String mAccessToken; private String mCommentContent; private boolean isSubmitting = false; @@ -129,7 +128,10 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); - mFullName = getIntent().getStringExtra(EXTRA_FULLNAME); + mCommentId = getIntent().getIntExtra(EXTRA_FULLNAME, 0); + if (mCommentId == 0) { + finish(); + } mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null); mCommentContent = getIntent().getStringExtra(EXTRA_CONTENT); contentEditText.setText(mCommentContent); @@ -225,12 +227,7 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab String content = contentEditText.getText().toString(); - Map params = new HashMap<>(); - params.put(APIUtils.THING_ID_KEY, mFullName); - params.put(APIUtils.TEXT_KEY, content); - - mOauthRetrofit.create(RedditAPI.class) - .editPostOrComment(APIUtils.getOAuthHeader(mAccessToken), params) + retrofit.getRetrofit().create(LemmyAPI.class).commentEdit(new EditCommentDTO(mCommentId, content, null, null, mAccessToken)) .enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { @@ -278,10 +275,10 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab Toast.makeText(EditCommentActivity.this, R.string.error_getting_image, Toast.LENGTH_LONG).show(); return; } - Utils.uploadImageToReddit(this, mExecutor, mOauthRetrofit, mUploadMediaRetrofit, + Utils.uploadImageToReddit(this, mExecutor, retrofit.getRetrofit(), mUploadMediaRetrofit, mAccessToken, contentEditText, coordinatorLayout, data.getData(), uploadedImages); } else if (requestCode == CAPTURE_IMAGE_REQUEST_CODE) { - Utils.uploadImageToReddit(this, mExecutor, mOauthRetrofit, mUploadMediaRetrofit, + Utils.uploadImageToReddit(this, mExecutor, retrofit.getRetrofit(), mUploadMediaRetrofit, mAccessToken, contentEditText, coordinatorLayout, capturedImageUri, uploadedImages); } else if (requestCode == MARKDOWN_PREVIEW_REQUEST_CODE) { editComment(); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/apis/LemmyAPI.java b/app/src/main/java/eu/toldi/infinityforlemmy/apis/LemmyAPI.java index c45f30e6..c8f28692 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/apis/LemmyAPI.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/apis/LemmyAPI.java @@ -5,6 +5,7 @@ import com.google.common.util.concurrent.ListenableFuture; import eu.toldi.infinityforlemmy.dto.AccountLoginDTO; import eu.toldi.infinityforlemmy.dto.CommentDTO; import eu.toldi.infinityforlemmy.dto.CommentVoteDTO; +import eu.toldi.infinityforlemmy.dto.EditCommentDTO; import eu.toldi.infinityforlemmy.dto.FollowCommunityDTO; import eu.toldi.infinityforlemmy.dto.PostVoteDTO; import eu.toldi.infinityforlemmy.dto.SaveCommentDTO; @@ -128,4 +129,8 @@ public interface LemmyAPI { @Headers("Content-Type: application/json") @POST("api/v3/comment") Call postComment(@Body CommentDTO params); + + @Headers("Content-Type: application/json") + @PUT("api/v3/comment") + Call commentEdit(@Body EditCommentDTO params); } diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/bottomsheetfragments/CommentMoreBottomSheetFragment.java b/app/src/main/java/eu/toldi/infinityforlemmy/bottomsheetfragments/CommentMoreBottomSheetFragment.java index 00e8c63f..ca707069 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/bottomsheetfragments/CommentMoreBottomSheetFragment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/bottomsheetfragments/CommentMoreBottomSheetFragment.java @@ -112,7 +112,7 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott editTextView.setOnClickListener(view -> { Intent intent = new Intent(activity, EditCommentActivity.class); - intent.putExtra(EditCommentActivity.EXTRA_FULLNAME, comment.getFullName()); + intent.putExtra(EditCommentActivity.EXTRA_FULLNAME, comment.getId()); intent.putExtra(EditCommentActivity.EXTRA_CONTENT, comment.getCommentMarkdown()); intent.putExtra(EditCommentActivity.EXTRA_POSITION, bundle.getInt(EXTRA_POSITION)); if (activity instanceof ViewPostDetailActivity) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/dto/EditCommentDTO.java b/app/src/main/java/eu/toldi/infinityforlemmy/dto/EditCommentDTO.java new file mode 100644 index 00000000..9365860e --- /dev/null +++ b/app/src/main/java/eu/toldi/infinityforlemmy/dto/EditCommentDTO.java @@ -0,0 +1,38 @@ +package eu.toldi.infinityforlemmy.dto; + +public class EditCommentDTO { + + private int comment_id; + private String content; + private Integer language_id; + private String form_id; + private String auth; + + public EditCommentDTO(int comment_id, String content, Integer language_id, String form_id, String auth) { + this.comment_id = comment_id; + this.content = content; + this.language_id = language_id; + this.form_id = form_id; + this.auth = auth; + } + + public int getComment_id() { + return comment_id; + } + + public String getContent() { + return content; + } + + public Integer getLanguage_id() { + return language_id; + } + + public String getForm_id() { + return form_id; + } + + public String getAuth() { + return auth; + } +}