mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-05 05:19:49 +02:00
Add an acknowledgement page in settings.
This commit is contained in:
27
app/src/main/java/Settings/Acknowledgement.java
Normal file
27
app/src/main/java/Settings/Acknowledgement.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package Settings;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
class Acknowledgement {
|
||||
private String name;
|
||||
private String introduction;
|
||||
private Uri link;
|
||||
|
||||
Acknowledgement(String name, String introduction, Uri link) {
|
||||
this.name = name;
|
||||
this.introduction = introduction;
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getIntroduction() {
|
||||
return introduction;
|
||||
}
|
||||
|
||||
public Uri getLink() {
|
||||
return link;
|
||||
}
|
||||
}
|
106
app/src/main/java/Settings/AcknowledgementFragment.java
Normal file
106
app/src/main/java/Settings/AcknowledgementFragment.java
Normal file
@@ -0,0 +1,106 @@
|
||||
package Settings;
|
||||
|
||||
|
||||
import android.app.Activity;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class AcknowledgementFragment extends Fragment {
|
||||
|
||||
|
||||
public AcknowledgementFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
@BindView(R.id.recycler_view_acknowledgement_fragment) RecyclerView recyclerView;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View rootView = inflater.inflate(R.layout.fragment_acknowledgement, container, false);
|
||||
ButterKnife.bind(this, rootView);
|
||||
|
||||
Activity activity = getActivity();
|
||||
|
||||
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("Swipe",
|
||||
"Detects swipe events on Android with listener and RxJava Observable",
|
||||
Uri.parse("https://github.com/pwittchen/swipe")));
|
||||
acknowledgements.add(new Acknowledgement("RxAndroid",
|
||||
"Android specific bindings for RxJava 2",
|
||||
Uri.parse("https://github.com/ReactiveX/RxAndroid")));
|
||||
acknowledgements.add(new Acknowledgement("RxJava",
|
||||
"Reactive extensions for the JVM",
|
||||
Uri.parse("https://github.com/ReactiveX/RxJava")));
|
||||
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("Butter Knife",
|
||||
"Field and method binding for Android views",
|
||||
Uri.parse("https://github.com/JakeWharton/butterknife")));
|
||||
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")));
|
||||
|
||||
AcknowledgementRecyclerViewAdapter adapter = new AcknowledgementRecyclerViewAdapter(activity, acknowledgements);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(activity));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
return rootView;
|
||||
}
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
package Settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.LinkResolverActivity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
class AcknowledgementRecyclerViewAdapter extends RecyclerView.Adapter<AcknowledgementRecyclerViewAdapter.AcknowledgementViewHolder> {
|
||||
private ArrayList<Acknowledgement> acknowledgements;
|
||||
private Context context;
|
||||
|
||||
AcknowledgementRecyclerViewAdapter(Context context, ArrayList<Acknowledgement> acknowledgements) {
|
||||
this.context = context;
|
||||
this.acknowledgements = acknowledgements;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public AcknowledgementViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new AcknowledgementViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_acknowledgement, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull AcknowledgementViewHolder holder, int position) {
|
||||
Acknowledgement acknowledgement = acknowledgements.get(holder.getAdapterPosition());
|
||||
if(acknowledgement != null) {
|
||||
holder.nameTextView.setText(acknowledgement.getName());
|
||||
holder.introductionTextView.setText(acknowledgement.getIntroduction());
|
||||
holder.itemView.setOnClickListener(view -> {
|
||||
if(context != null) {
|
||||
Intent intent = new Intent(context, LinkResolverActivity.class);
|
||||
intent.setData(acknowledgement.getLink());
|
||||
context.startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return acknowledgements == null ? 0 : acknowledgements.size();
|
||||
}
|
||||
|
||||
class AcknowledgementViewHolder extends RecyclerView.ViewHolder {
|
||||
View itemView;
|
||||
@BindView(R.id.name_text_view_item_acknowledgement) TextView nameTextView;
|
||||
@BindView(R.id.introduction_text_view_item_acknowledgement) TextView introductionTextView;
|
||||
|
||||
AcknowledgementViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
ButterKnife.bind(this, itemView);
|
||||
this.itemView = itemView;
|
||||
}
|
||||
}
|
||||
}
|
@@ -465,24 +465,26 @@ public class PostVideoActivity extends AppCompatActivity implements FlairBottomS
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if(requestCode == SUBREDDIT_SELECTION_REQUEST_CODE) {
|
||||
if(resultCode == RESULT_OK) {
|
||||
subredditName = data.getExtras().getString(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_NAME);
|
||||
iconUrl = data.getExtras().getString(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_ICON_URL);
|
||||
subredditSelected = true;
|
||||
subredditIsUser = data.getExtras().getBoolean(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER);
|
||||
if(data != null) {
|
||||
subredditName = data.getStringExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_NAME);
|
||||
iconUrl = data.getStringExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_ICON_URL);
|
||||
subredditSelected = true;
|
||||
subredditIsUser = data.getBooleanExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER, false);
|
||||
|
||||
subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor));
|
||||
subredditNameTextView.setText(subredditName);
|
||||
displaySubredditIcon();
|
||||
subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor));
|
||||
subredditNameTextView.setText(subredditName);
|
||||
displaySubredditIcon();
|
||||
|
||||
flairTextView.setVisibility(View.VISIBLE);
|
||||
flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent));
|
||||
flairTextView.setText(getString(R.string.flair));
|
||||
flair = null;
|
||||
flairTextView.setVisibility(View.VISIBLE);
|
||||
flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent));
|
||||
flairTextView.setText(getString(R.string.flair));
|
||||
flair = null;
|
||||
}
|
||||
}
|
||||
} else if(requestCode == PICK_VIDEO_REQUEST_CODE) {
|
||||
if(resultCode == RESULT_OK) {
|
||||
if(data == null) {
|
||||
Snackbar.make(coordinatorLayout, R.string.error_getting_image, Snackbar.LENGTH_SHORT).show();
|
||||
Snackbar.make(coordinatorLayout, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -490,8 +492,12 @@ public class PostVideoActivity extends AppCompatActivity implements FlairBottomS
|
||||
loadVideo();
|
||||
}
|
||||
} else if (requestCode == CAPTURE_VIDEO_REQUEST_CODE) {
|
||||
videoUri = data.getData();
|
||||
loadVideo();
|
||||
if(data != null) {
|
||||
videoUri = data.getData();
|
||||
loadVideo();
|
||||
} else {
|
||||
Snackbar.make(coordinatorLayout, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
6
app/src/main/res/layout/fragment_acknowledgement.xml
Normal file
6
app/src/main/res/layout/fragment_acknowledgement.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/recycler_view_acknowledgement_fragment"
|
||||
tools:context="Settings.AcknowledgementFragment"/>
|
23
app/src/main/res/layout/item_acknowledgement.xml
Normal file
23
app/src/main/res/layout/item_acknowledgement.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/name_text_view_item_acknowledgement"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/primaryTextColor"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/introduction_text_view_item_acknowledgement"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp" />
|
||||
|
||||
</LinearLayout>
|
@@ -146,6 +146,7 @@
|
||||
<string name="select_from_gallery">Select a picture</string>
|
||||
<string name="select_again">Select again</string>
|
||||
<string name="error_getting_image">Error getting the image</string>
|
||||
<string name="error_getting_video">Error getting the video</string>
|
||||
<string name="no_camera_available">No camera app available</string>
|
||||
<string name="error_creating_temp_file">Error creating temp file</string>
|
||||
|
||||
@@ -258,6 +259,7 @@
|
||||
<string name="settings_theme_dark_theme_summary">Dark Theme</string>
|
||||
<string name="settings_theme_system_default_summary">Device default</string>
|
||||
<string name="settings_enable_nsfw_title">Enable NSFW</string>
|
||||
<string name="settings_acknowledgement_master_title">Acknowledgement</string>
|
||||
|
||||
<string name="no_link_available">Cannot get the link</string>
|
||||
</resources>
|
||||
|
@@ -21,4 +21,9 @@
|
||||
app:key="nsfw"
|
||||
app:title="@string/settings_enable_nsfw_title"/>
|
||||
|
||||
<Preference
|
||||
app:key="acknowledgement_master"
|
||||
app:title="@string/settings_acknowledgement_master_title"
|
||||
app:fragment="Settings.AcknowledgementFragment" />
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
Reference in New Issue
Block a user