From 4130026caddd5f0243adcc067f7e0eaf930df3fe Mon Sep 17 00:00:00 2001
From: Ammar Githam <ammargitham786@gmail.com>
Date: Sun, 6 Sep 2020 03:51:41 +0900
Subject: [PATCH] Fixing codacy warnings/issues (Ongoing)

---
 .../adapters/CommentsAdapter.java             |  1 +
 .../adapters/DiscoverAdapter.java             |  4 +-
 .../adapters/MultiSelectListAdapter.java      | 62 +++++++++----------
 .../instagrabber/adapters/PostsAdapter.java   |  6 +-
 .../viewholder/feed/FeedItemViewHolder.java   | 28 ++++-----
 .../viewholder/feed/FeedSliderViewHolder.java | 16 ++---
 .../viewholder/feed/FeedVideoViewHolder.java  |  2 +-
 .../instagrabber/asyncs/DiscoverFetcher.java  |  2 +-
 .../instagrabber/asyncs/RespondAction.java    |  2 +-
 .../awais/instagrabber/asyncs/SeenAction.java |  2 +-
 10 files changed, 63 insertions(+), 62 deletions(-)

diff --git a/app/src/main/java/awais/instagrabber/adapters/CommentsAdapter.java b/app/src/main/java/awais/instagrabber/adapters/CommentsAdapter.java
index 77e308cd..66d5af6f 100755
--- a/app/src/main/java/awais/instagrabber/adapters/CommentsAdapter.java
+++ b/app/src/main/java/awais/instagrabber/adapters/CommentsAdapter.java
@@ -76,6 +76,7 @@ public final class CommentsAdapter extends RecyclerView.Adapter<CommentViewHolde
                            final boolean isParent,
                            final View.OnClickListener onClickListener,
                            final MentionClickListener mentionClickListener) {
+        super();
         this.commentModels = this.filteredCommentModels = commentModels;
         this.isParent = isParent;
         this.onClickListener = onClickListener;
diff --git a/app/src/main/java/awais/instagrabber/adapters/DiscoverAdapter.java b/app/src/main/java/awais/instagrabber/adapters/DiscoverAdapter.java
index 052451ff..fd1e7b1f 100755
--- a/app/src/main/java/awais/instagrabber/adapters/DiscoverAdapter.java
+++ b/app/src/main/java/awais/instagrabber/adapters/DiscoverAdapter.java
@@ -44,8 +44,8 @@ public final class DiscoverAdapter extends MultiSelectListAdapter<DiscoverItemMo
         if (itemModel != null) {
             itemModel.setPosition(position);
             holder.itemView.setTag(itemModel);
-            holder.itemView.setOnClickListener(v -> internalOnItemClickListener.onItemClick(itemModel, position));
-            holder.itemView.setOnLongClickListener(v -> internalOnLongItemClickListener.onItemLongClick(itemModel, position));
+            holder.itemView.setOnClickListener(v -> getInternalOnItemClickListener().onItemClick(itemModel, position));
+            holder.itemView.setOnLongClickListener(v -> getInternalOnLongItemClickListener().onItemLongClick(itemModel, position));
             final MediaItemType mediaType = itemModel.getItemType();
             holder.typeIcon.setVisibility(mediaType == MediaItemType.MEDIA_TYPE_VIDEO || mediaType == MediaItemType.MEDIA_TYPE_SLIDER ? View.VISIBLE : View.GONE);
             holder.typeIcon.setImageResource(mediaType == MediaItemType.MEDIA_TYPE_SLIDER ? R.drawable.slider : R.drawable.video);
diff --git a/app/src/main/java/awais/instagrabber/adapters/MultiSelectListAdapter.java b/app/src/main/java/awais/instagrabber/adapters/MultiSelectListAdapter.java
index 392be0c1..d196b2c9 100644
--- a/app/src/main/java/awais/instagrabber/adapters/MultiSelectListAdapter.java
+++ b/app/src/main/java/awais/instagrabber/adapters/MultiSelectListAdapter.java
@@ -1,7 +1,6 @@
 package awais.instagrabber.adapters;
 
 import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.AsyncDifferConfig;
 import androidx.recyclerview.widget.DiffUtil;
 import androidx.recyclerview.widget.ListAdapter;
 import androidx.recyclerview.widget.RecyclerView;
@@ -9,47 +8,46 @@ import androidx.recyclerview.widget.RecyclerView;
 import java.util.ArrayList;
 import java.util.List;
 
-public abstract class MultiSelectListAdapter<T extends MultiSelectListAdapter.Selectable, VH extends RecyclerView.ViewHolder> extends ListAdapter<T, VH> {
+public abstract class MultiSelectListAdapter<T extends MultiSelectListAdapter.Selectable, VH extends RecyclerView.ViewHolder> extends
+        ListAdapter<T, VH> {
 
-    private boolean isSelecting = false;
-    private OnItemClickListener<T> clickListener;
-    private OnItemLongClickListener<T> longClickListener;
+    private boolean isSelecting;
+    private final OnItemClickListener<T> internalOnItemClickListener;
+    private final OnItemLongClickListener<T> internalOnLongItemClickListener;
 
     private final List<T> selectedItems = new ArrayList<>();
-    protected final OnItemClickListener<T> internalOnItemClickListener = (item, position) -> {
-        if (isSelecting) {
-            toggleSelection(item, position);
-        }
-        if (clickListener == null) {
-            return;
-        }
-        clickListener.onItemClick(item, position);
-    };
-    protected final OnItemLongClickListener<T> internalOnLongItemClickListener = (item, position) -> {
-        if (!isSelecting) {
-            isSelecting = true;
-        }
-        toggleSelection(item, position);
-        if (longClickListener == null) {
-            return true;
-        }
-        return longClickListener.onItemLongClick(item, position);
-    };
 
     protected MultiSelectListAdapter(@NonNull final DiffUtil.ItemCallback<T> diffCallback,
                                      final OnItemClickListener<T> clickListener,
                                      final OnItemLongClickListener<T> longClickListener) {
         super(diffCallback);
-        this.clickListener = clickListener;
-        this.longClickListener = longClickListener;
+        internalOnItemClickListener = (item, position) -> {
+            if (isSelecting) {
+                toggleSelection(item, position);
+            }
+            if (clickListener == null) {
+                return;
+            }
+            clickListener.onItemClick(item, position);
+        };
+        internalOnLongItemClickListener = (item, position) -> {
+            if (!isSelecting) {
+                isSelecting = true;
+            }
+            toggleSelection(item, position);
+            if (longClickListener == null) {
+                return true;
+            }
+            return longClickListener.onItemLongClick(item, position);
+        };
     }
 
-    protected MultiSelectListAdapter(@NonNull final AsyncDifferConfig<T> config,
-                                     final OnItemClickListener<T> clickListener,
-                                     final OnItemLongClickListener<T> longClickListener) {
-        super(config);
-        this.clickListener = clickListener;
-        this.longClickListener = longClickListener;
+    public OnItemClickListener<T> getInternalOnItemClickListener() {
+        return internalOnItemClickListener;
+    }
+
+    public OnItemLongClickListener<T> getInternalOnLongItemClickListener() {
+        return internalOnLongItemClickListener;
     }
 
     private void toggleSelection(final T item, final int position) {
diff --git a/app/src/main/java/awais/instagrabber/adapters/PostsAdapter.java b/app/src/main/java/awais/instagrabber/adapters/PostsAdapter.java
index 9365357e..521f261a 100755
--- a/app/src/main/java/awais/instagrabber/adapters/PostsAdapter.java
+++ b/app/src/main/java/awais/instagrabber/adapters/PostsAdapter.java
@@ -12,7 +12,7 @@ import awais.instagrabber.models.PostModel;
 
 public final class PostsAdapter extends MultiSelectListAdapter<PostModel, PostViewHolder> {
 
-    private static final DiffUtil.ItemCallback<PostModel> diffCallback = new DiffUtil.ItemCallback<PostModel>() {
+    private static final DiffUtil.ItemCallback<PostModel> DIFF_CALLBACK = new DiffUtil.ItemCallback<PostModel>() {
         @Override
         public boolean areItemsTheSame(@NonNull final PostModel oldItem, @NonNull final PostModel newItem) {
             return oldItem.getPostId().equals(newItem.getPostId());
@@ -26,7 +26,7 @@ public final class PostsAdapter extends MultiSelectListAdapter<PostModel, PostVi
 
     public PostsAdapter(final OnItemClickListener<PostModel> clickListener,
                         final OnItemLongClickListener<PostModel> longClickListener) {
-        super(diffCallback, clickListener, longClickListener);
+        super(DIFF_CALLBACK, clickListener, longClickListener);
     }
 
     @NonNull
@@ -40,6 +40,6 @@ public final class PostsAdapter extends MultiSelectListAdapter<PostModel, PostVi
     @Override
     public void onBindViewHolder(@NonNull final PostViewHolder holder, final int position) {
         final PostModel postModel = getItem(position);
-        holder.bind(postModel, position, internalOnItemClickListener, internalOnLongItemClickListener);
+        holder.bind(postModel, position, getInternalOnItemClickListener(), getInternalOnLongItemClickListener());
     }
 }
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
index f65bb88f..68f82c5f 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
@@ -114,23 +114,23 @@ public abstract class FeedItemViewHolder extends RecyclerView.ViewHolder {
 
         final TextView.BufferType bufferType = caption instanceof Spanned ? TextView.BufferType.SPANNABLE : TextView.BufferType.NORMAL;
 
-        if (!textView.isCaptionExpanded()) {
-            int i = Utils.indexOfChar(caption, '\r', 0);
-            if (i == -1) i = Utils.indexOfChar(caption, '\n', 0);
-            if (i == -1) i = MAX_CHARS;
-
-            final int captionLen = caption.length();
-            final int minTrim = Math.min(MAX_CHARS, i);
-            if (captionLen <= minTrim) return false;
-
-            if (Utils.hasMentions(caption))
-                textView.setText(Utils.getMentionText(caption), TextView.BufferType.SPANNABLE);
-            textView.setCaptionIsExpandable(true);
-            textView.setCaptionIsExpanded(true);
-        } else {
+        if (textView.isCaptionExpanded()) {
             textView.setText(caption, bufferType);
             textView.setCaptionIsExpanded(false);
+            return true;
         }
+        int i = Utils.indexOfChar(caption, '\r', 0);
+        if (i == -1) i = Utils.indexOfChar(caption, '\n', 0);
+        if (i == -1) i = MAX_CHARS;
+
+        final int captionLen = caption.length();
+        final int minTrim = Math.min(MAX_CHARS, i);
+        if (captionLen <= minTrim) return false;
+
+        if (Utils.hasMentions(caption))
+            textView.setText(Utils.getMentionText(caption), TextView.BufferType.SPANNABLE);
+        textView.setCaptionIsExpandable(true);
+        textView.setCaptionIsExpanded(true);
         return true;
     }
 
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedSliderViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedSliderViewHolder.java
index fe8d7ccf..9fa5fcf5 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedSliderViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedSliderViewHolder.java
@@ -93,8 +93,10 @@ public class FeedSliderViewHolder extends FeedItemViewHolder {
             }
         }
         final ChildMediaItemsAdapter itemsAdapter = new ChildMediaItemsAdapter(sliderItems,
-                cacheDataSourceFactory != null ? cacheDataSourceFactory : dataSourceFactory,
-                playerChangeListener);
+                                                                               cacheDataSourceFactory != null
+                                                                               ? cacheDataSourceFactory
+                                                                               : dataSourceFactory,
+                                                                               playerChangeListener);
         binding.mediaList.setAdapter(itemsAdapter);
 
         //noinspection deprecation
@@ -176,10 +178,10 @@ public class FeedSliderViewHolder extends FeedItemViewHolder {
         }
         final ViewSwitcher viewSwitcher = (ViewSwitcher) binding.mediaList.getChildAt(position);
         loadPlayer(binding.getRoot().getContext(),
-                position, sliderItem.getDisplayUrl(),
-                viewSwitcher,
-                cacheDataSourceFactory != null ? cacheDataSourceFactory : dataSourceFactory,
-                playerChangeListener);
+                   position, sliderItem.getDisplayUrl(),
+                   viewSwitcher,
+                   cacheDataSourceFactory != null ? cacheDataSourceFactory : dataSourceFactory,
+                   playerChangeListener);
     }
 
     public void startPlayingVideo() {
@@ -329,7 +331,7 @@ public class FeedSliderViewHolder extends FeedItemViewHolder {
 
         @Override
         public boolean isViewFromObject(@NonNull final View view, @NonNull final Object object) {
-            return view == object;
+            return view.equals(object);
         }
 
         public ViewerPostModel getItemAtPosition(final int position) {
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedVideoViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedVideoViewHolder.java
index 30d57e97..39ee0e15 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedVideoViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedVideoViewHolder.java
@@ -41,7 +41,7 @@ public class FeedVideoViewHolder extends FeedItemViewHolder {
     private FeedModel feedModel;
     private SimpleExoPlayer player;
 
-    final Runnable loadRunnable = new Runnable() {
+    private final Runnable loadRunnable = new Runnable() {
         @Override
         public void run() {
             loadPlayer(feedModel);
diff --git a/app/src/main/java/awais/instagrabber/asyncs/DiscoverFetcher.java b/app/src/main/java/awais/instagrabber/asyncs/DiscoverFetcher.java
index 3b2957f2..4b16c8e7 100755
--- a/app/src/main/java/awais/instagrabber/asyncs/DiscoverFetcher.java
+++ b/app/src/main/java/awais/instagrabber/asyncs/DiscoverFetcher.java
@@ -176,7 +176,7 @@ public final class DiscoverFetcher extends AsyncTask<Void, Void, DiscoverItemMod
             final String customPath = settingsHelper.getString(FOLDER_PATH);
             if (!Utils.isEmpty(customPath)) customDir = new File(customPath +
                                                                          (Utils.settingsHelper.getBoolean(DOWNLOAD_USER_FOLDER)
-                                                                          ? ("/" + username)
+                                                                          ? "/" + username
                                                                           : ""));
         }
 
diff --git a/app/src/main/java/awais/instagrabber/asyncs/RespondAction.java b/app/src/main/java/awais/instagrabber/asyncs/RespondAction.java
index 990a0290..96bf2d0f 100644
--- a/app/src/main/java/awais/instagrabber/asyncs/RespondAction.java
+++ b/app/src/main/java/awais/instagrabber/asyncs/RespondAction.java
@@ -39,7 +39,7 @@ public class RespondAction extends AsyncTask<String, Void, Boolean> {
                 + storyModel.getStoryMediaId().split("_")[0] + "/" + questionModel.getId() + "/story_question_response/";
         HttpURLConnection urlConnection = null;
         try {
-            JSONObject ogbody = new JSONObject("{\"client_context\":\"" + UUID.randomUUID().toString()
+            final JSONObject ogbody = new JSONObject("{\"client_context\":\"" + UUID.randomUUID().toString()
                     + "\",\"mutation_token\":\"" + UUID.randomUUID().toString()
                     + "\",\"_csrftoken\":\"" + cookie.split("csrftoken=")[1].split(";")[0]
                     + "\",\"_uid\":\"" + Utils.getUserIdFromCookie(cookie)
diff --git a/app/src/main/java/awais/instagrabber/asyncs/SeenAction.java b/app/src/main/java/awais/instagrabber/asyncs/SeenAction.java
index 805942e9..39a798ae 100644
--- a/app/src/main/java/awais/instagrabber/asyncs/SeenAction.java
+++ b/app/src/main/java/awais/instagrabber/asyncs/SeenAction.java
@@ -24,7 +24,7 @@ public class SeenAction extends AsyncTask<Void, Void, Void> {
     protected Void doInBackground(Void... voids) {
         final String url = "https://www.instagram.com/stories/reel/seen";
         try {
-            String urlParameters = "reelMediaId=" + storyModel.getStoryMediaId().split("_")[0]
+            final String urlParameters = "reelMediaId=" + storyModel.getStoryMediaId().split("_")[0]
                     + "&reelMediaOwnerId=" + storyModel.getUserId()
                     + "&reelId=" + storyModel.getUserId()
                     + "&reelMediaTakenAt=" + storyModel.getTimestamp()