package ml.docilealligator.infinityforreddit.settings;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import java.util.ArrayList;
import ml.docilealligator.infinityforreddit.activities.SettingsActivity;
import ml.docilealligator.infinityforreddit.adapters.AcknowledgementRecyclerViewAdapter;
import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
import ml.docilealligator.infinityforreddit.databinding.FragmentAcknowledgementBinding;
/**
* A simple {@link Fragment} subclass.
*/
public class AcknowledgementFragment extends Fragment {
private SettingsActivity activity;
public AcknowledgementFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
FragmentAcknowledgementBinding binding = FragmentAcknowledgementBinding.inflate(inflater, container, false);
ArrayList<Acknowledgement> acknowledgements = new ArrayList<>();
acknowledgements.add(new Acknowledgement("ExoPlayer",
"An application level media player for Android",
Uri.parse("https://github.com/google/ExoPlayer")));
acknowledgements.add(new Acknowledgement("GestureViews",
"ImageView and FrameLayout with gestures control and position animation",
Uri.parse("https://github.com/alexvasilkov/GestureViews")));
acknowledgements.add(new Acknowledgement("Glide",
"A fast and efficient open source media management and image loading framework for Android",
Uri.parse("https://github.com/bumptech/glide")));
acknowledgements.add(new Acknowledgement("Retrofit",
"Type-safe HTTP client for Android and Java by Square, Inc.",
Uri.parse("https://github.com/square/retrofit")));
acknowledgements.add(new Acknowledgement("Dagger",
"A fast dependency injector for Java and Android.",
Uri.parse("https://github.com/google/dagger")));
acknowledgements.add(new Acknowledgement("Aspect Ratio ImageView",
"A simple imageview which scales the width or height aspect with the given ratio",
Uri.parse("https://github.com/santalu/aspect-ratio-imageview")));
acknowledgements.add(new Acknowledgement("MaterialLoadingProgressBar",
"A styled ProgressBar",
Uri.parse("https://github.com/lsjwzh/MaterialLoadingProgressBar")));
acknowledgements.add(new Acknowledgement("Markwon",
"A markdown library for Android",
Uri.parse("https://github.com/noties/Markwon")));
acknowledgements.add(new Acknowledgement("android-gif-drawable",
"Views and Drawable for animated GIFs in Android.",
Uri.parse("https://github.com/koral--/android-gif-drawable")));
acknowledgements.add(new Acknowledgement("SimpleSearchView",
"A simple SearchView for Android based on Material Design",
Uri.parse("https://github.com/Ferfalk/SimpleSearchView")));
acknowledgements.add(new Acknowledgement("EventBus",
"A publish/subscribe event bus for Android and Java",
Uri.parse("https://github.com/greenrobot/EventBus")));
acknowledgements.add(new Acknowledgement("Customized and Expandable TextView",
"Simple library to change the Textview as rectangle, circle and square shapes",
Uri.parse("https://github.com/Rajagopalr3/CustomizedTextView")));
acknowledgements.add(new Acknowledgement("Rounded Bottom Sheet",
"Bottom sheet with rounded corners",
Uri.parse("https://github.com/Deishelon/RoundedBottomSheet")));
acknowledgements.add(new Acknowledgement("Bridge",
"A library for avoiding TransactionTooLargeException during state saving and restoration",
Uri.parse("https://github.com/livefront/bridge")));
acknowledgements.add(new Acknowledgement("Android-State",
"A utility library for Android to save objects in a Bundle without any boilerplate",
Uri.parse("https://github.com/evernote/android-state")));
acknowledgements.add(new Acknowledgement("FlowLayout",
"A FlowLayout for Android, which allows child views flow to next row when there is no enough space.",
Uri.parse("https://github.com/nex3z/FlowLayout")));
acknowledgements.add(new Acknowledgement("Gson",
"Gson is a Java library that can be used to convert Java Objects into their JSON representation.",
Uri.parse("https://github.com/google/gson")));
acknowledgements.add(new Acknowledgement("Hauler",
"Hauler is an Android library containing custom layout which enables to easily create swipe to dismiss Activity.",
Uri.parse("https://github.com/futuredapp/hauler")));
acknowledgements.add(new Acknowledgement("Slidr",
"Easily add slide to dismiss functionality to an Activity",
Uri.parse("https://github.com/r0adkll/Slidr")));
acknowledgements.add(new Acknowledgement("commonmark-java",
"Java library for parsing and rendering Markdown text according to the CommonMark specification (and some extensions).",
Uri.parse("https://github.com/atlassian/commonmark-java")));
acknowledgements.add(new Acknowledgement("AndroidFastScroll",
"Fast scroll for Android RecyclerView and more.",
Uri.parse("https://github.com/zhanghai/AndroidFastScroll")));
acknowledgements.add(new Acknowledgement("Subsampling Scale Image View",
"A custom image view for Android, designed for photo galleries and displaying " +
"huge images (e.g. maps and building plans) without OutOfMemoryErrors.",
Uri.parse("https://github.com/davemorrissey/subsampling-scale-image-view")));
acknowledgements.add(new Acknowledgement("BigImageViewer",
"Big image viewer supporting pan and zoom, with very little memory " +
"usage and full featured image loading choices. Powered by Subsampling Scale " +
"Image View, Fresco, Glide, and Picasso. Even with gif and webp support!",
Uri.parse("https://github.com/Piasy/BigImageViewer")));
acknowledgements.add(new Acknowledgement("BetterLinkMovementMethod",
"Attempts to improve how clickable links are detected, highlighted and handled in TextView.",
Uri.parse("https://github.com/saket/Better-Link-Movement-Method")));
acknowledgements.add(new Acknowledgement("ZoomLayout",
"2D zoom and pan behavior for View hierarchies, images, video streams, and much more, written in Kotlin for Android.",
Uri.parse("https://github.com/natario1/ZoomLayout")));
AcknowledgementRecyclerViewAdapter adapter = new AcknowledgementRecyclerViewAdapter(activity, acknowledgements);
binding.getRoot().setLayoutManager(new LinearLayoutManagerBugFixed(activity));
binding.getRoot().setAdapter(adapter);
binding.getRoot().setBackgroundColor(activity.customThemeWrapper.getBackgroundColor());
return binding.getRoot();
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
activity = (SettingsActivity) context;
}
}