diff --git a/.all-contributorsrc b/.all-contributorsrc
index cd865d08..7a9958b9 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -79,6 +79,25 @@
"code"
]
},
+ {
+ "login": "stamatiap",
+ "name": "Stamatia Papageorgiou",
+ "avatar_url": "https://avatars.githubusercontent.com/u/57223967?v=4",
+ "profile": "https://github.com/stamatiap",
+ "contributions": [
+ "code",
+ "translation"
+ ]
+ },
+ {
+ "login": "The-EDev",
+ "name": "Farook Al-Sammarraie",
+ "avatar_url": "https://avatars.githubusercontent.com/u/60552923?v=4",
+ "profile": "https://github.com/The-EDev",
+ "contributions": [
+ "code"
+ ]
+ },
{
"login": "Zopieux",
"name": "Alexandre Macabies",
diff --git a/.github/workflows/github_nightly_release.yml b/.github/workflows/github_nightly_release.yml
index 8edb6a63..bddf63b5 100644
--- a/.github/workflows/github_nightly_release.yml
+++ b/.github/workflows/github_nightly_release.yml
@@ -15,10 +15,11 @@ jobs:
uses: actions/checkout@v2
- name: set up JDK 1.8
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2
with:
- java-version: 1.8
-
+ distribution: 'zulu'
+ java-version: '8'
+
- name: Grant execute permission for gradlew
run: chmod +x gradlew
diff --git a/.github/workflows/github_pre_release.yml b/.github/workflows/github_pre_release.yml
index 9700fdfc..42d8e481 100644
--- a/.github/workflows/github_pre_release.yml
+++ b/.github/workflows/github_pre_release.yml
@@ -16,9 +16,10 @@ jobs:
uses: actions/checkout@v2
- name: set up JDK 1.8
- uses: actions/setup-java@v1
+ uses: actions/setup-java@v2
with:
- java-version: 1.8
+ distribution: 'zulu'
+ java-version: '8'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
diff --git a/README.md b/README.md
index d1301419..15999d16 100755
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/austinhuang0131/instagrabber.svg?style=social&label=Star)](https://GitHub.com/austinhuang0131/barinsta/stargazers/)
-[![All Contributors](https://img.shields.io/badge/all_contributors-42-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-44-orange.svg)](#contributors)
Instagram client; previously known as InstaGrabber.
@@ -63,49 +63,53 @@ Prominent contributors are listed here in the [all-contributors](https://allcont
Pablo RodrΓguez π» |
+ Stamatia Papageorgiou π» π |
+ Farook Al-Sammarraie π» |
Alexandre Macabies π» |
Stefan Najdovski π¨ π |
CrazyMarvin π΅ |
- Kevin Thomas π΅ |
- Shadowspear123 π π π€ π¬ |
+ Kevin Thomas π΅ |
+ Shadowspear123 π π π€ π¬ |
Ricardo π π |
Akrai π€ π |
avtkal π |
CΓ©zar Augusto π |
- Dimitris T π |
- farzadx π |
+ Dimitris T π |
+ farzadx π |
Fatih AydΔ±n π |
fouze555 π |
Galang23 π |
Initdebugs π |
- Jakub Janek π |
- GenosseFlosse π |
+ Jakub Janek π |
+ GenosseFlosse π |
kernoeb π |
MoaufmKlo π |
nalinalini π |
peterge1998 π |
- PierreM0 π |
- Pyrobauve π |
+ PierreM0 π |
+ Pyrobauve π |
RAMAR-RAR π |
rohang02 π |
retiolus π |
rikishi0071 π |
- Alexey Peschany π |
- Sitavi π |
+ Alexey Peschany π |
+ Sitavi π |
Still Hsu π |
Ten_Lego π |
wagnim π |
wokija π |
+
+
ysakamoto π |
ZDVokoun π |
@@ -121,7 +125,7 @@ This app's predecessor, InstaGrabber, was originally made by [@AwaisKing](https:
Barinsta
Copyright (C) 2020-2021 Austin Huang
- Ammar Githam
+ Ammar Githam
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/app/src/main/java/awais/instagrabber/adapters/FeedStoriesListAdapter.java b/app/src/main/java/awais/instagrabber/adapters/FeedStoriesListAdapter.java
index 9d7401e0..146904d0 100755
--- a/app/src/main/java/awais/instagrabber/adapters/FeedStoriesListAdapter.java
+++ b/app/src/main/java/awais/instagrabber/adapters/FeedStoriesListAdapter.java
@@ -23,23 +23,29 @@ public final class FeedStoriesListAdapter extends ListAdapter list;
private final Filter filter = new Filter() {
- @Nullable
+ @NonNull
@Override
protected FilterResults performFiltering(final CharSequence filter) {
- final boolean isFilterEmpty = TextUtils.isEmpty(filter);
- final String query = isFilterEmpty ? null : filter.toString().toLowerCase();
-
- for (FeedStoryModel item : list) {
- if (isFilterEmpty) item.setShown(true);
- else item.setShown(item.getProfileModel().getUsername().toLowerCase().contains(query));
+ final String query = TextUtils.isEmpty(filter) ? null : filter.toString().toLowerCase();
+ List filteredList = list;
+ if (list != null && query != null) {
+ filteredList = list.stream()
+ .filter(feedStoryModel -> feedStoryModel.getProfileModel()
+ .getUsername()
+ .toLowerCase()
+ .contains(query))
+ .collect(Collectors.toList());
}
- return null;
+ final FilterResults filterResults = new FilterResults();
+ filterResults.count = filteredList != null ? filteredList.size() : 0;
+ filterResults.values = filteredList;
+ return filterResults;
}
@Override
protected void publishResults(final CharSequence constraint, final FilterResults results) {
- submitList(list);
- notifyDataSetChanged();
+ //noinspection unchecked
+ submitList((List) results.values, true);
}
};
@@ -65,10 +71,16 @@ public final class FeedStoriesListAdapter extends ListAdapter list, final boolean isFiltered) {
+ if (!isFiltered) {
+ this.list = list;
+ }
+ super.submitList(list);
+ }
+
@Override
public void submitList(final List list) {
- super.submitList(list.stream().filter(i -> i.isShown()).collect(Collectors.toList()));
- this.list = list;
+ submitList(list, false);
}
@NonNull
@@ -82,11 +94,11 @@ public final class FeedStoriesListAdapter extends ListAdapter {
if (notificationClickListener == null) return;
- notificationClickListener.onFeedStoryClick(model, position);
+ notificationClickListener.onFeedStoryClick(model);
});
}
diff --git a/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java b/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java
index 65315e35..35249824 100644
--- a/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java
@@ -18,6 +18,7 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -29,6 +30,7 @@ import androidx.appcompat.widget.PopupMenu;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.PermissionChecker;
+import androidx.core.view.WindowCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.LiveData;
@@ -100,7 +102,6 @@ import static androidx.core.content.PermissionChecker.checkSelfPermission;
import static awais.instagrabber.fragments.HashTagFragment.ARG_HASHTAG;
import static awais.instagrabber.fragments.settings.PreferenceKeys.PREF_SHOWN_COUNT_TOOLTIP;
import static awais.instagrabber.utils.DownloadUtils.WRITE_PERMISSION;
-import static awais.instagrabber.utils.Utils.getAttrValue;
import static awais.instagrabber.utils.Utils.settingsHelper;
public class PostViewV2Fragment extends Fragment implements EditTextDialogFragment.EditTextDialogFragmentCallback {
@@ -131,6 +132,9 @@ public class PostViewV2Fragment extends Fragment implements EditTextDialogFragme
private boolean isInFullScreenMode;
private StyledPlayerView playerView;
private int playerViewOriginalHeight;
+ private Drawable originalRootBackground;
+ private ColorStateList originalLikeColorStateList;
+ private ColorStateList originalSaveColorStateList;
private final Observer