From 81e0897a1f91a546452a07fb3f3e880e374db368 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Tue, 13 Aug 2019 14:25:16 +0800 Subject: [PATCH] Editing and deleting comments are now available. --- .idea/assetWizardSettings.xml | 4 +- .idea/caches/build_file_checksums.ser | Bin 533 -> 533 bytes .idea/caches/gradle_models.ser | Bin 263220 -> 263235 bytes app/src/main/AndroidManifest.xml | 5 + .../infinityforreddit/AppComponent.java | 1 + .../CommentAndPostRecyclerViewAdapter.java | 78 +++++++--- .../infinityforreddit/CommentData.java | 8 + .../CommentsListingFragment.java | 4 +- .../CommentsListingRecyclerViewAdapter.java | 31 ++-- .../EditCommentActivity.java | 137 ++++++++++++++++++ .../ModifyCommentBottomSheetFragment.java | 84 +++++++++++ .../ViewPostDetailActivity.java | 31 +++- .../ViewUserDetailActivity.java | 28 ++++ .../drawable/ic_outline_more_vert_24px.xml | 9 ++ .../main/res/layout/activity_edit_comment.xml | 37 +++++ .../fragment_modify_comment_bottom_sheet.xml | 38 +++++ .../fragment_post_type_bottom_sheet.xml | 1 - app/src/main/res/layout/item_comment.xml | 111 +++++++++++++- .../main/res/menu/edit_comment_activity.xml | 10 ++ app/src/main/res/values/strings.xml | 2 + 20 files changed, 580 insertions(+), 39 deletions(-) create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/EditCommentActivity.java create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/ModifyCommentBottomSheetFragment.java create mode 100644 app/src/main/res/drawable/ic_outline_more_vert_24px.xml create mode 100644 app/src/main/res/layout/activity_edit_comment.xml create mode 100644 app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml create mode 100644 app/src/main/res/menu/edit_comment_activity.xml diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index 5045dc74..767068f9 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -35,9 +35,9 @@ - + - + diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 9e3da5a9629d3660efe71932be59cb82de5c6d38..5919b4e67b264488a9b1ec5352e8c7896eccd796 100644 GIT binary patch delta 15 XcmbQrGL>b*43>_^R)QPnR5AhpF1Q8U delta 15 XcmbQrGL>b*43?I+>?=0TsbmBIFrNlS diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 7dc82bdb831291dc90ca5bc19cbf9e3d3ac9b22a..af6821f2635ca1df97ee9926e5cab6b6b06cfb52 100644 GIT binary patch literal 263235 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

3qj3{1o}Q_h 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 venDPJ5=4<(mWRrXZ_PJ&1k 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 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d8853f50..3679f066 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,6 +20,11 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> + mVisibleComments; private String mSubredditNamePrefixed; @@ -79,7 +82,7 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter(); mSubredditNamePrefixed = subredditNamePrefixed; @@ -425,6 +429,20 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter { + ModifyCommentBottomSheetFragment modifyCommentBottomSheetFragment = new ModifyCommentBottomSheetFragment(); + Bundle bundle = new Bundle(); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_ACCESS_TOKEN, mAccessToken); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_COMMENT_CONTENT, comment.getCommentContent()); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_COMMENT_FULLNAME, comment.getFullName()); + bundle.putInt(ModifyCommentBottomSheetFragment.EXTRA_POSITION, holder.getAdapterPosition() - 1); + modifyCommentBottomSheetFragment.setArguments(bundle); + modifyCommentBottomSheetFragment.show(((AppCompatActivity) mActivity).getSupportFragmentManager(), modifyCommentBottomSheetFragment.getTag()); + }); + } + if (comment.hasReply()) { if(comment.isExpanded()) { ((CommentViewHolder) holder).expandButton.setImageResource(R.drawable.ic_expand_less_black_20dp); @@ -436,11 +454,11 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter { + upVoteButton.setOnClickListener(view -> { if(mAccessToken == null) { Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show(); return; @@ -915,18 +951,18 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter { + downVoteButton.setOnClickListener(view -> { if(mAccessToken == null) { Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show(); return; @@ -960,18 +996,18 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter mCommentViewModel.retryLoadingMore()); + getArguments().getString(EXTRA_ACCESS_TOKEN), getArguments().getString(EXTRA_ACCOUNT_NAME), + () -> mCommentViewModel.retryLoadingMore()); String username = getArguments().getString(EXTRA_USERNAME_KEY); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java index e2fd34b5..ffcf707b 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java @@ -2,17 +2,18 @@ package ml.docilealligator.infinityforreddit; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import androidx.paging.PagedListAdapter; import androidx.recyclerview.widget.DiffUtil; @@ -27,6 +28,7 @@ class CommentsListingRecyclerViewAdapter extends PagedListAdapter { + ModifyCommentBottomSheetFragment modifyCommentBottomSheetFragment = new ModifyCommentBottomSheetFragment(); + Bundle bundle = new Bundle(); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_ACCESS_TOKEN, mAccessToken); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_COMMENT_CONTENT, comment.getCommentContent()); + bundle.putString(ModifyCommentBottomSheetFragment.EXTRA_COMMENT_FULLNAME, comment.getFullName()); + bundle.putInt(ModifyCommentBottomSheetFragment.EXTRA_POSITION, holder.getAdapterPosition() - 1); + modifyCommentBottomSheetFragment.setArguments(bundle); + modifyCommentBottomSheetFragment.show(((AppCompatActivity) mContext).getSupportFragmentManager(), modifyCommentBottomSheetFragment.getTag()); + }); + } } } @@ -165,9 +182,10 @@ class CommentsListingRecyclerViewAdapter extends PagedListAdapter linearLayout.callOnClick()); - RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) shareButton.getLayoutParams(); - lp.addRule(RelativeLayout.ALIGN_PARENT_END); - lp.setMarginEnd(0); - shareButton.setLayoutParams(lp); - shareButton.setOnClickListener(view -> { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/EditCommentActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/EditCommentActivity.java new file mode 100644 index 00000000..11e30fd8 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/EditCommentActivity.java @@ -0,0 +1,137 @@ +package ml.docilealligator.infinityforreddit; + +import android.content.Intent; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.content.ContextCompat; + +import com.google.android.material.snackbar.Snackbar; + +import java.util.HashMap; +import java.util.Map; + +import javax.inject.Inject; +import javax.inject.Named; + +import butterknife.BindView; +import butterknife.ButterKnife; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; + +public class EditCommentActivity extends AppCompatActivity { + + static final String EXTRA_CONTENT = "EC"; + static final String EXTRA_FULLNAME = "EF"; + static final String EXTRA_ACCESS_TOKEN = "EAT"; + static final String EXTRA_POSITION = "EP"; + + static final String EXTRA_EDITED_COMMENT_CONTENT = "EECC"; + static final String EXTRA_EDITED_COMMENT_POSITION = "EECP"; + + @BindView(R.id.coordinator_layout_edit_comment_activity) CoordinatorLayout coordinatorLayout; + @BindView(R.id.toolbar_edit_comment_activity) Toolbar toolbar; + @BindView(R.id.post_text_content_edit_text_edit_comment_activity) EditText contentEditText; + + private String mFullName; + private String mAccessToken; + private boolean isSubmitting = false; + + @Inject + @Named("oauth") + Retrofit mOauthRetrofit; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_edit_comment); + + ButterKnife.bind(this); + + ((Infinity) getApplication()).getAppComponent().inject(this); + + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + Window window = getWindow(); + if((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) { + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + window.setNavigationBarColor(ContextCompat.getColor(this, R.color.navBarColor)); + } + + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + mFullName = getIntent().getExtras().getString(EXTRA_FULLNAME); + mAccessToken = getIntent().getExtras().getString(EXTRA_ACCESS_TOKEN); + contentEditText.setText(getIntent().getExtras().getString(EXTRA_CONTENT)); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.edit_comment_activity, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if(item.getItemId() == R.id.action_send_edit_comment_activity) { + if(!isSubmitting) { + isSubmitting = true; + + Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_SHORT).show(); + + String content = contentEditText.getText().toString(); + + Map params = new HashMap<>(); + params.put(RedditUtils.THING_ID_KEY, mFullName); + params.put(RedditUtils.TEXT_KEY, content); + + mOauthRetrofit.create(RedditAPI.class) + .editPostOrComment(RedditUtils.getOAuthHeader(mAccessToken), params) + .enqueue(new Callback() { + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + isSubmitting = false; + if(response.isSuccessful()) { + Toast.makeText(EditCommentActivity.this, R.string.edit_success, Toast.LENGTH_SHORT).show(); + + Intent returnIntent = new Intent(); + returnIntent.putExtra(EXTRA_EDITED_COMMENT_CONTENT, content); + returnIntent.putExtra(EXTRA_EDITED_COMMENT_POSITION, getIntent().getExtras().getInt(EXTRA_POSITION)); + setResult(RESULT_OK, returnIntent); + + finish(); + } else { + Snackbar.make(coordinatorLayout, R.string.post_failed, Snackbar.LENGTH_SHORT).show(); + } + } + + @Override + public void onFailure(@NonNull Call call, @NonNull Throwable t) { + isSubmitting = false; + Snackbar.make(coordinatorLayout, R.string.post_failed, Snackbar.LENGTH_SHORT).show(); + } + }); + + } + return true; + } else if(item.getItemId() == android.R.id.home) { + finish(); + return true; + } + return false; + } +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ModifyCommentBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ModifyCommentBottomSheetFragment.java new file mode 100644 index 00000000..5b19cfaf --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ModifyCommentBottomSheetFragment.java @@ -0,0 +1,84 @@ +package ml.docilealligator.infinityforreddit; + + +import android.app.Activity; +import android.content.Intent; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.fragment.app.Fragment; + +import com.deishelon.roundedbottomsheet.RoundedBottomSheetDialogFragment; + +import butterknife.BindView; +import butterknife.ButterKnife; + + +/** + * A simple {@link Fragment} subclass. + */ +public class ModifyCommentBottomSheetFragment extends RoundedBottomSheetDialogFragment { + + static final String EXTRA_COMMENT_FULLNAME = "ECF"; + static final String EXTRA_COMMENT_CONTENT = "ECC"; + static final String EXTRA_ACCESS_TOKEN = "EAT"; + static final String EXTRA_POSITION = "EP"; + + public ModifyCommentBottomSheetFragment() { + // Required empty public constructor + } + + @BindView(R.id.edit_text_view_modify_comment_bottom_sheet_fragment) TextView editTextView; + @BindView(R.id.delete_text_view_modify_comment_bottom_sheet_fragment) TextView deleteTextView; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_modify_comment_bottom_sheet, container, false); + ButterKnife.bind(this, rootView); + + Activity activity = getActivity(); + + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) { + rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + + Bundle bundle = getArguments(); + String fullName = bundle.getString(EXTRA_COMMENT_FULLNAME); + String content = bundle.getString(EXTRA_COMMENT_CONTENT); + String accessToken = bundle.getString(EXTRA_ACCESS_TOKEN); + + editTextView.setOnClickListener(view -> { + Intent intent = new Intent(getActivity(), EditCommentActivity.class); + intent.putExtra(EditCommentActivity.EXTRA_ACCESS_TOKEN, accessToken); + intent.putExtra(EditCommentActivity.EXTRA_FULLNAME, fullName); + intent.putExtra(EditCommentActivity.EXTRA_CONTENT, content); + intent.putExtra(EditCommentActivity.EXTRA_POSITION, bundle.getInt(EXTRA_POSITION)); + if(activity instanceof ViewPostDetailActivity) { + activity.startActivityForResult(intent, ViewPostDetailActivity.EDIT_COMMENT_REQUEST_CODE); + } else { + startActivity(intent); + } + + dismiss(); + }); + + deleteTextView.setOnClickListener(view -> { + dismiss(); + if(activity instanceof ViewPostDetailActivity) { + ((ViewPostDetailActivity) activity).deleteComment(fullName, bundle.getInt(EXTRA_POSITION)); + } else if(activity instanceof ViewUserDetailActivity) { + ((ViewUserDetailActivity) activity).deleteComment(fullName); + } + }); + + return rootView; + } + +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java index ad65fe4f..797c1834 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java @@ -59,6 +59,7 @@ public class ViewPostDetailActivity extends AppCompatActivity { static final String EXTRA_POST_ID = "EPI"; private static final int EDIT_POST_REQUEST_CODE = 2; + static final int EDIT_COMMENT_REQUEST_CODE = 3; private RequestManager mGlide; private Locale mLocale; @@ -224,7 +225,7 @@ public class ViewPostDetailActivity extends AppCompatActivity { mMenu.findItem(R.id.action_delete_view_post_detail_activity).setVisible(true); } mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this, mRetrofit, - mOauthRetrofit, mRedditDataRoomDatabase, mGlide, mAccessToken, mPost, + mOauthRetrofit, mRedditDataRoomDatabase, mGlide, mAccessToken, mAccountName, mPost, mPost.getSubredditNamePrefixed(), mLocale, mLoadSubredditIconAsyncTask, new CommentAndPostRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() { @Override @@ -290,7 +291,7 @@ public class ViewPostDetailActivity extends AppCompatActivity { } mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this, mRetrofit, - mOauthRetrofit, mRedditDataRoomDatabase, mGlide, mAccessToken, mPost, + mOauthRetrofit, mRedditDataRoomDatabase, mGlide, mAccessToken, mAccountName, mPost, mPost.getSubredditNamePrefixed(), mLocale, mLoadSubredditIconAsyncTask, new CommentAndPostRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() { @Override @@ -481,6 +482,27 @@ public class ViewPostDetailActivity extends AppCompatActivity { } } + void deleteComment(String fullName, int position) { + new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme) + .setTitle(R.string.delete_this_comment) + .setMessage(R.string.are_you_sure) + .setPositiveButton(R.string.delete, (dialogInterface, i) + -> DeleteThing.delete(mOauthRetrofit, fullName, mAccessToken, new DeleteThing.DeleteThingListener() { + @Override + public void deleteSuccess() { + Toast.makeText(ViewPostDetailActivity.this, R.string.delete_post_success, Toast.LENGTH_SHORT).show(); + mAdapter.deleteComment(position); + } + + @Override + public void deleteFailed() { + Toast.makeText(ViewPostDetailActivity.this, R.string.delete_post_failed, Toast.LENGTH_SHORT).show(); + } + })) + .setNegativeButton(R.string.cancel, null) + .show(); + } + @Subscribe public void onPostUpdateEvent(PostUpdateEventToDetailActivity event) { if(mPost.getId().equals(event.postId)) { @@ -578,6 +600,11 @@ public class ViewPostDetailActivity extends AppCompatActivity { if(resultCode == RESULT_OK) { refresh(true); } + } else if(requestCode == EDIT_COMMENT_REQUEST_CODE) { + if(resultCode == RESULT_OK) { + mAdapter.editComment(data.getExtras().getString(EditCommentActivity.EXTRA_EDITED_COMMENT_CONTENT), + data.getExtras().getInt(EditCommentActivity.EXTRA_EDITED_COMMENT_POSITION)); + } } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java index 670547d9..ad007ae1 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java @@ -31,6 +31,7 @@ import com.bumptech.glide.request.RequestOptions; import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.chip.Chip; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import com.google.android.material.tabs.TabLayout; @@ -385,6 +386,26 @@ public class ViewUserDetailActivity extends AppCompatActivity { } } + void deleteComment(String fullName) { + new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme) + .setTitle(R.string.delete_this_comment) + .setMessage(R.string.are_you_sure) + .setPositiveButton(R.string.delete, (dialogInterface, i) + -> DeleteThing.delete(mOauthRetrofit, fullName, mAccessToken, new DeleteThing.DeleteThingListener() { + @Override + public void deleteSuccess() { + Toast.makeText(ViewUserDetailActivity.this, R.string.delete_post_success, Toast.LENGTH_SHORT).show(); + } + + @Override + public void deleteFailed() { + Toast.makeText(ViewUserDetailActivity.this, R.string.delete_post_failed, Toast.LENGTH_SHORT).show(); + } + })) + .setNegativeButton(R.string.cancel, null) + .show(); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.view_user_detail_activity, menu); @@ -519,6 +540,7 @@ public class ViewUserDetailActivity extends AppCompatActivity { Bundle bundle = new Bundle(); bundle.putString(CommentsListingFragment.EXTRA_USERNAME_KEY, username); bundle.putString(CommentsListingFragment.EXTRA_ACCESS_TOKEN, mAccessToken); + bundle.putString(CommentsListingFragment.EXTRA_ACCOUNT_NAME, mAccountName); fragment.setArguments(bundle); return fragment; } @@ -560,5 +582,11 @@ public class ViewUserDetailActivity extends AppCompatActivity { commentsListingFragment.refresh(); } } + + public void refreshComments() { + if(commentsListingFragment != null) { + commentsListingFragment.refresh(); + } + } } } diff --git a/app/src/main/res/drawable/ic_outline_more_vert_24px.xml b/app/src/main/res/drawable/ic_outline_more_vert_24px.xml new file mode 100644 index 00000000..568cbb4d --- /dev/null +++ b/app/src/main/res/drawable/ic_outline_more_vert_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_edit_comment.xml b/app/src/main/res/layout/activity_edit_comment.xml new file mode 100644 index 00000000..93504c14 --- /dev/null +++ b/app/src/main/res/layout/activity_edit_comment.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml b/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml new file mode 100644 index 00000000..a419912e --- /dev/null +++ b/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml @@ -0,0 +1,38 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_post_type_bottom_sheet.xml b/app/src/main/res/layout/fragment_post_type_bottom_sheet.xml index 81f20963..9cdce5a0 100644 --- a/app/src/main/res/layout/fragment_post_type_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_post_type_bottom_sheet.xml @@ -96,7 +96,6 @@ android:id="@+id/video_type_linear_layout_post_type_bottom_sheet_fragment" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="center_vertical" android:paddingTop="16dp" android:paddingBottom="16dp" android:paddingStart="32dp" diff --git a/app/src/main/res/layout/item_comment.xml b/app/src/main/res/layout/item_comment.xml index 82281e14..1283aa5b 100644 --- a/app/src/main/res/layout/item_comment.xml +++ b/app/src/main/res/layout/item_comment.xml @@ -1,5 +1,7 @@ @@ -50,7 +52,110 @@ android:layout_marginBottom="8dp" android:textColor="@color/primaryTextColor"/> - + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/edit_comment_activity.xml b/app/src/main/res/menu/edit_comment_activity.xml new file mode 100644 index 00000000..e52e484b --- /dev/null +++ b/app/src/main/res/menu/edit_comment_activity.xml @@ -0,0 +1,10 @@ + +

+ + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 392ffc9b..9b3dd695 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -182,7 +182,9 @@ Login first Delete This Post + Delete This Comment Are you sure? + Edit Delete Cancel Delete successfully