Loading app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,10 @@ dependencies { implementation 'org.framagit.tom79:SparkButton:1.0.13' implementation "com.github.bumptech.glide:glide:4.14.2" implementation "com.github.bumptech.glide:okhttp3-integration:4.14.2" implementation("com.github.bumptech.glide:recyclerview-integration:4.14.2") { // Excludes the support library because it's already included by Glide. transitive = false } implementation "org.jsoup:jsoup:1.15.1" Loading app/src/main/java/app/fedilab/android/client/entities/api/Attachment.java +2 −1 Original line number Diff line number Diff line Loading @@ -45,13 +45,14 @@ public class Attachment implements Serializable { public String local_path; @SerializedName("meta") public Meta meta; @SerializedName("sensitive") public boolean sensitive = false; public String peertubeHost = null; public String peertubeId = null; public String focus = null; public String translation = null; public float measuredWidth = -1.f; public static class Meta implements Serializable { @SerializedName("focus") Loading app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +124 −95 File changed.Preview size limit exceeded, changes collapsed. Show changes app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +16 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader; import com.bumptech.glide.util.ViewPreloadSizeProvider; import java.util.ArrayList; import java.util.List; Loading @@ -60,6 +63,7 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.CrossActionHelper; import app.fedilab.android.helper.GlideApp; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.ui.drawer.StatusAdapter; Loading @@ -84,6 +88,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. private StatusAdapter statusAdapter; private Timeline.TimeLineEnum timelineType; private List<Status> timelineStatuses; private static final int PRELOAD_AHEAD_ITEMS = 5; private ViewPreloadSizeProvider<Attachment> preloadSizeProvider; //Handle actions that can be done in other fragments private final BroadcastReceiver receive_action = new BroadcastReceiver() { @Override Loading Loading @@ -420,6 +426,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. if (timelineType != null) { slug = timelineType != Timeline.TimeLineEnum.ART ? timelineType.getValue() + (ident != null ? "|" + ident : "") : Timeline.TimeLineEnum.TAG.getValue() + (ident != null ? "|" + ident : ""); } LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION)); binding = FragmentPaginationBinding.inflate(inflater, container, false); return binding.getRoot(); Loading Loading @@ -636,6 +644,14 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); binding.recyclerView.setLayoutManager(mLayoutManager); binding.recyclerView.setAdapter(statusAdapter); preloadSizeProvider = new ViewPreloadSizeProvider<>(); RecyclerViewPreloader<Attachment> preloader = new RecyclerViewPreloader<>( GlideApp.with(this), statusAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS); binding.recyclerView.addOnScrollListener(preloader); binding.recyclerView.setItemViewCacheSize(0); if (timelineType != Timeline.TimeLineEnum.TREND_MESSAGE) { binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override Loading Loading
app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,10 @@ dependencies { implementation 'org.framagit.tom79:SparkButton:1.0.13' implementation "com.github.bumptech.glide:glide:4.14.2" implementation "com.github.bumptech.glide:okhttp3-integration:4.14.2" implementation("com.github.bumptech.glide:recyclerview-integration:4.14.2") { // Excludes the support library because it's already included by Glide. transitive = false } implementation "org.jsoup:jsoup:1.15.1" Loading
app/src/main/java/app/fedilab/android/client/entities/api/Attachment.java +2 −1 Original line number Diff line number Diff line Loading @@ -45,13 +45,14 @@ public class Attachment implements Serializable { public String local_path; @SerializedName("meta") public Meta meta; @SerializedName("sensitive") public boolean sensitive = false; public String peertubeHost = null; public String peertubeId = null; public String focus = null; public String translation = null; public float measuredWidth = -1.f; public static class Meta implements Serializable { @SerializedName("focus") Loading
app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +124 −95 File changed.Preview size limit exceeded, changes collapsed. Show changes
app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +16 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader; import com.bumptech.glide.util.ViewPreloadSizeProvider; import java.util.ArrayList; import java.util.List; Loading @@ -60,6 +63,7 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.CrossActionHelper; import app.fedilab.android.helper.GlideApp; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.ui.drawer.StatusAdapter; Loading @@ -84,6 +88,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. private StatusAdapter statusAdapter; private Timeline.TimeLineEnum timelineType; private List<Status> timelineStatuses; private static final int PRELOAD_AHEAD_ITEMS = 5; private ViewPreloadSizeProvider<Attachment> preloadSizeProvider; //Handle actions that can be done in other fragments private final BroadcastReceiver receive_action = new BroadcastReceiver() { @Override Loading Loading @@ -420,6 +426,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. if (timelineType != null) { slug = timelineType != Timeline.TimeLineEnum.ART ? timelineType.getValue() + (ident != null ? "|" + ident : "") : Timeline.TimeLineEnum.TAG.getValue() + (ident != null ? "|" + ident : ""); } LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION)); binding = FragmentPaginationBinding.inflate(inflater, container, false); return binding.getRoot(); Loading Loading @@ -636,6 +644,14 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); binding.recyclerView.setLayoutManager(mLayoutManager); binding.recyclerView.setAdapter(statusAdapter); preloadSizeProvider = new ViewPreloadSizeProvider<>(); RecyclerViewPreloader<Attachment> preloader = new RecyclerViewPreloader<>( GlideApp.with(this), statusAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS); binding.recyclerView.addOnScrollListener(preloader); binding.recyclerView.setItemViewCacheSize(0); if (timelineType != Timeline.TimeLineEnum.TREND_MESSAGE) { binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override Loading