Add translation contributors in Settigs->About->Translation.

This commit is contained in:
Alex Ning 2020-09-29 00:09:33 +08:00
parent f5320c1e60
commit d7f85cb471
30 changed files with 692 additions and 4 deletions

View File

@ -1,4 +1,4 @@
package ml.docilealligator.infinityforreddit.Settings;
package ml.docilealligator.infinityforreddit.Adapter;
import android.content.Context;
import android.content.Intent;
@ -16,12 +16,13 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import ml.docilealligator.infinityforreddit.Activity.LinkResolverActivity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.Settings.Acknowledgement;
class AcknowledgementRecyclerViewAdapter extends RecyclerView.Adapter<AcknowledgementRecyclerViewAdapter.AcknowledgementViewHolder> {
public class AcknowledgementRecyclerViewAdapter extends RecyclerView.Adapter<AcknowledgementRecyclerViewAdapter.AcknowledgementViewHolder> {
private ArrayList<Acknowledgement> acknowledgements;
private Context context;
AcknowledgementRecyclerViewAdapter(Context context, ArrayList<Acknowledgement> acknowledgements) {
public AcknowledgementRecyclerViewAdapter(Context context, ArrayList<Acknowledgement> acknowledgements) {
this.context = context;
this.acknowledgements = acknowledgements;
}

View File

@ -0,0 +1,82 @@
package ml.docilealligator.infinityforreddit.Adapter;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
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.Activity.LinkResolverActivity;
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.Settings.Translation;
public class TranslationFragmentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Activity activity;
private int primaryTextColor;
private int secondaryTextColor;
private ArrayList<Translation> translationContributors;
public TranslationFragmentRecyclerViewAdapter(Activity activity, CustomThemeWrapper customThemeWrapper) {
this.activity = activity;
primaryTextColor = customThemeWrapper.getPrimaryTextColor();
secondaryTextColor = customThemeWrapper.getSecondaryTextColor();
translationContributors = Translation.getTranslationContributors();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new TranslationContributorViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_translation_contributor, parent, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (holder instanceof TranslationContributorViewHolder) {
Translation translation = translationContributors.get(position);
((TranslationContributorViewHolder) holder).countryFlagImageView.setImageResource(translation.flagDrawableId);
((TranslationContributorViewHolder) holder).languageNameTextView.setText(translation.language);
((TranslationContributorViewHolder) holder).contributorNamesTextView.setText(translation.contributors);
}
}
@Override
public int getItemCount() {
return translationContributors.size();
}
class TranslationContributorViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.country_flag_image_view_item_translation_contributor)
ImageView countryFlagImageView;
@BindView(R.id.language_name_text_view_item_translation_contributor)
TextView languageNameTextView;
@BindView(R.id.contributor_names_text_view_item_translation_contributor)
TextView contributorNamesTextView;
public TranslationContributorViewHolder(@NonNull View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
languageNameTextView.setTextColor(primaryTextColor);
contributorNamesTextView.setTextColor(secondaryTextColor);
itemView.setOnClickListener(view -> {
Intent intent = new Intent(activity, LinkResolverActivity.class);
intent.setData(Uri.parse("https://poeditor.com/join/project?hash=b2IRyfaJv6"));
activity.startActivity(intent);
});
}
}
}

View File

@ -71,6 +71,7 @@ import ml.docilealligator.infinityforreddit.Settings.NotificationPreferenceFragm
import ml.docilealligator.infinityforreddit.Settings.NsfwAndBlurringFragment;
import ml.docilealligator.infinityforreddit.Settings.SecurityPreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.ThemePreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.TranslationFragment;
import ml.docilealligator.infinityforreddit.Settings.VideoPreferenceFragment;
@Singleton
@ -215,4 +216,6 @@ public interface AppComponent {
void inject(CustomizeBottomAppBarFragment customizeBottomAppBarFragment);
void inject(GiveAwardActivity giveAwardActivity);
void inject(TranslationFragment translationFragment);
}

View File

@ -2,7 +2,7 @@ package ml.docilealligator.infinityforreddit.Settings;
import android.net.Uri;
class Acknowledgement {
public class Acknowledgement {
private String name;
private String introduction;
private Uri link;

View File

@ -18,6 +18,7 @@ import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import ml.docilealligator.infinityforreddit.Adapter.AcknowledgementRecyclerViewAdapter;
import ml.docilealligator.infinityforreddit.R;
/**

View File

@ -0,0 +1,42 @@
package ml.docilealligator.infinityforreddit.Settings;
import java.util.ArrayList;
import ml.docilealligator.infinityforreddit.R;
public class Translation {
public String language;
public String contributors;
public int flagDrawableId;
public Translation(String language, String contributors, int flagDrawableId) {
this.language = language;
this.contributors = contributors;
this.flagDrawableId = flagDrawableId;
}
public static ArrayList<Translation> getTranslationContributors() {
ArrayList<Translation> translationContributors = new ArrayList<>();
translationContributors.add(new Translation("简体中文", "Gloria, Justin", R.drawable.flag_china));
translationContributors.add(new Translation("繁體中文", "", R.drawable.flag_china));
translationContributors.add(new Translation("Hrvatski", "Josip", R.drawable.flag_croatia));
translationContributors.add(new Translation("Française", "367, oursonbleu, Owen, pinembour", R.drawable.flag_france));
translationContributors.add(new Translation("Deutsche", "Jorge, Netto Hikari, translatewingman, translatorwiz", R.drawable.flag_germany));
translationContributors.add(new Translation("Ελληνικά", "Marios, Viktor", R.drawable.flag_greece));
translationContributors.add(new Translation("हिंदी", "a, Arya, charu, Mrigendra Bhandari, raghav, Sachin, Ved", R.drawable.flag_india));
translationContributors.add(new Translation("Magyar", "Zoltan", R.drawable.flag_hungary));
translationContributors.add(new Translation("Italiana", "Daniele Basso, DanOlivaw, Gianni00palmieri, Gillauino, ztiaa", R.drawable.flag_italy));
translationContributors.add(new Translation("日本語", "Issa, Mrigendra Bhandari, Ryan", R.drawable.flag_japan));
translationContributors.add(new Translation("한국어", "noname", R.drawable.flag_south_korea));
translationContributors.add(new Translation("norsk", "", R.drawable.flag_norway));
translationContributors.add(new Translation("Português", "Bruno Guerreiro, Lucas", R.drawable.flag_portugal));
translationContributors.add(new Translation("Português (BR)", "Laura Vasconcellos Pereira Felippe, Ricky, Super_Iguanna", R.drawable.flag_brazil));
translationContributors.add(new Translation("Română", "", R.drawable.flag_romania));
translationContributors.add(new Translation("русский язык", "aveblazer, flexagoon, Georgiy, Vova", R.drawable.flag_russia));
translationContributors.add(new Translation("Español", "Jorge, Miguel, mvstermoe, Nana Snixx, Sofia Flores", R.drawable.flag_spain));
translationContributors.add(new Translation("svenska", "Marcus Nordberg", R.drawable.flag_sweden));
translationContributors.add(new Translation("Türk", "Emir481, Faoiltiarna, Mehmet Yavuz, Serif", R.drawable.flag_turkey));
translationContributors.add(new Translation("Tiếng Việt", "Kai, Laezzy, Lmao, Ryan, viecdet69", R.drawable.flag_vietnam));
return translationContributors;
}
}

View File

@ -0,0 +1,58 @@
package ml.docilealligator.infinityforreddit.Settings;
import android.app.Activity;
import android.content.Context;
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 androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import ml.docilealligator.infinityforreddit.Adapter.TranslationFragmentRecyclerViewAdapter;
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
public class TranslationFragment extends Fragment {
@BindView(R.id.recycler_view_translation_fragment)
RecyclerView recyclerView;
@Inject
CustomThemeWrapper customThemeWrapper;
private Activity activity;
public TranslationFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_translation, container, false);
((Infinity) activity.getApplication()).getAppComponent().inject(this);
ButterKnife.bind(this, rootView);
TranslationFragmentRecyclerViewAdapter adapter = new TranslationFragmentRecyclerViewAdapter(activity, customThemeWrapper);
recyclerView.setLayoutManager(new LinearLayoutManager(activity));
recyclerView.setAdapter(adapter);
return rootView;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
activity = (Activity) context;
}
}

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#6DA544"/>
<path
android:pathData="M256,100.174l211.478,155.826l-211.478,155.826l-211.478,-155.826z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M256,256m-89.043,0a89.043,89.043 0,1 1,178.086 0a89.043,89.043 0,1 1,-178.086 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M211.478,250.435c-15.484,0 -30.427,2.355 -44.493,6.725c0.623,48.64 40.227,87.884 89.015,87.884c30.168,0 56.812,-15.017 72.919,-37.968C301.362,272.579 258.961,250.435 211.478,250.435z"
android:fillColor="#0052B4"/>
<path
android:pathData="M343.393,273.06c1.072,-5.524 1.651,-11.223 1.651,-17.06c0,-49.178 -39.866,-89.043 -89.043,-89.043c-36.694,0 -68.194,22.201 -81.826,53.899c12.05,-2.497 24.526,-3.812 37.305,-3.812C263.197,217.043 309.983,238.541 343.393,273.06z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#D80027"/>
<path
android:pathData="M140.1,155.8l22.1,68l71.5,0l-57.8,42.1l22.1,68l-57.9,-42l-57.9,42l22.2,-68l-57.9,-42.1l71.5,0z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M303.5,396.5l-16.9,-20.8l-25,9.7l14.5,-22.5l-16.9,-20.9l25.9,6.9l14.6,-22.5l1.4,26.8l26,6.9l-25.1,9.6z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M337.1,335.5l8,-25.6l-21.9,-15.5l26.8,-0.4l7.9,-25.6l8.7,25.4l26.8,-0.3l-21.5,16l8.6,25.4l-21.9,-15.5z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M382.4,187.9l-11.8,24.1l19.2,18.7l-26.5,-3.8l-11.8,24l-4.6,-26.4l-26.6,-3.8l23.8,-12.5l-4.6,-26.5l19.2,18.7z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M304.2,114.9l-2,26.7l24.9,10.1l-26.1,6.4l-1.9,26.8l-14.1,-22.8l-26.1,6.4l17.3,-20.5l-14.2,-22.7l24.9,10.1z"
android:fillColor="#FFDA44"/>
</vector>

View File

@ -0,0 +1,72 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M512,256c0,-31.314 -5.633,-61.311 -15.923,-89.043L256,155.826l-240.077,11.13C5.633,194.689 0,224.686 0,256s5.633,61.311 15.923,89.043L256,356.174l240.077,-11.13C506.367,317.311 512,287.314 512,256z"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,512c110.071,0 203.906,-69.472 240.077,-166.957H15.923C52.094,442.528 145.929,512 256,512z"
android:fillColor="#0052B4"/>
<path
android:pathData="M15.923,166.957h480.155C459.906,69.472 366.071,0 256,0S52.094,69.472 15.923,166.957z"
android:fillColor="#D80027"/>
<path
android:pathData="M322.783,178.088l-44.522,0l7.421,-55.653l29.68,-22.261l29.681,22.261l0,44.522z"
android:fillColor="#338AF3"/>
<path
android:pathData="M189.217,178.088l44.522,0l-7.421,-55.653l-29.681,-22.261l-29.68,22.261l0,44.522z"
android:fillColor="#338AF3"/>
<path
android:pathData="M285.682,178.088l-59.364,0l0,-55.653l29.682,-22.261l29.682,22.261z"
android:fillColor="#0052B4"/>
<path
android:pathData="M166.957,166.958v122.434c0,29.153 14.082,55.079 35.802,71.332l15.583,-3.899l19.664,19.782c5.815,1.198 11.832,1.829 17.995,1.829c6.13,0 12.117,-0.623 17.901,-1.809l22.447,-18.69l12.892,2.751c21.711,-16.252 35.803,-42.151 35.803,-71.296V166.958H166.957z"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M166.957,166.957h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M238.191,166.957h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M309.426,166.957h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M202.574,202.574h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M273.809,202.574h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M166.957,238.18h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M202.574,273.798h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M238.191,238.18h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M309.426,238.18h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M273.809,273.798h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M238.191,309.415h35.617v35.617h-35.617z"
android:fillColor="#D80027"/>
<path
android:pathData="M202.574,309.418h-33.319c3.056,13.24 9.064,25.355 17.302,35.617h16.017V309.418z"
android:fillColor="#D80027"/>
<path
android:pathData="M309.426,345.036h16.016c8.24,-10.262 14.246,-22.378 17.302,-35.617h-33.318V345.036z"
android:fillColor="#D80027"/>
<path
android:pathData="M202.574,345.036v15.541c10.359,7.795 22.465,13.384 35.617,16.066v-31.607H202.574z"
android:fillColor="#D80027"/>
<path
android:pathData="M273.809,345.036v31.607c13.153,-2.68 25.258,-8.271 35.617,-16.066v-15.541H273.809z"
android:fillColor="#D80027"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M512,256c0,-110.071 -69.472,-203.906 -166.957,-240.077v480.155C442.528,459.906 512,366.071 512,256z"
android:fillColor="#D80027"/>
<path
android:pathData="M0,256c0,110.071 69.473,203.906 166.957,240.077V15.923C69.473,52.094 0,145.929 0,256z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M15.923,345.043C52.094,442.527 145.929,512 256,512s203.906,-69.473 240.077,-166.957L256,322.783L15.923,345.043z"
android:fillColor="#FFDA44"/>
<path
android:fillColor="#FF000000"
android:pathData="M256,0C145.929,0 52.094,69.472 15.923,166.957L256,189.217l240.077,-22.261C459.906,69.472 366.071,0 256,0z"/>
<path
android:pathData="M15.923,166.957C5.633,194.69 0,224.686 0,256s5.633,61.31 15.923,89.043h480.155C506.368,317.31 512,287.314 512,256s-5.632,-61.31 -15.923,-89.043H15.923z"
android:fillColor="#D80027"/>
</vector>

View File

@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,189.217h247.181c-6.419,-23.814 -16.175,-46.255 -28.755,-66.783H256V189.217z"
android:fillColor="#338AF3"/>
<path
android:pathData="M96.643,456.348h318.713c23.363,-18.608 43.399,-41.21 59.069,-66.783H37.574C53.245,415.137 73.281,437.74 96.643,456.348z"
android:fillColor="#338AF3"/>
<path
android:pathData="M89.043,61.939c-20.126,17.331 -37.525,37.74 -51.469,60.496h51.469V61.939z"
android:fillColor="#338AF3"/>
<path
android:pathData="M256,256c0,-26.076 0,-47.899 0,-66.783H155.826V256H89.043v-66.783H8.819C3.08,210.511 0,232.893 0,256s3.08,45.489 8.819,66.783h494.363C508.92,301.489 512,279.107 512,256H256z"
android:fillColor="#338AF3"/>
<path
android:pathData="M256,0c-35.549,0 -69.404,7.253 -100.174,20.348v102.087H256c0,-23.312 0,-43.139 0,-66.783h159.357C371.626,20.824 316.249,0 256,0z"
android:fillColor="#338AF3"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M15.923,166.957C5.633,194.691 0,224.686 0,256s5.633,61.311 15.923,89.043L256,367.304l240.077,-22.261C506.367,317.311 512,287.314 512,256s-5.633,-61.309 -15.923,-89.043L256,144.696L15.923,166.957z"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,0C145.93,0 52.094,69.472 15.924,166.957h480.155C459.906,69.472 366.072,0 256,0z"
android:fillColor="#D80027"/>
<path
android:pathData="M256,512c110.072,0 203.906,-69.472 240.078,-166.957H15.924C52.094,442.528 145.93,512 256,512z"
android:fillColor="#6DA544"/>
</vector>

View File

@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,0C154.506,0 66.81,59.065 25.402,144.696h461.195C445.19,59.065 357.493,0 256,0z"
android:fillColor="#FF9811"/>
<path
android:pathData="M256,512c101.493,0 189.19,-59.065 230.598,-144.696H25.402C66.81,452.935 154.506,512 256,512z"
android:fillColor="#6DA544"/>
<path
android:pathData="M256,256m-89.043,0a89.043,89.043 0,1 1,178.086 0a89.043,89.043 0,1 1,-178.086 0"
android:fillColor="#0052B4"/>
<path
android:pathData="M256,256m-55.652,0a55.652,55.652 0,1 1,111.304 0a55.652,55.652 0,1 1,-111.304 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,187.326l17.169,38.938l42.304,-4.601l-25.136,34.337l25.136,34.337l-42.304,-4.601l-17.169,38.938l-17.169,-38.938l-42.304,4.6l25.136,-34.336l-25.136,-34.337l42.304,4.601z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M512,256c0,-110.071 -69.472,-203.906 -166.957,-240.077v480.155C442.528,459.906 512,366.071 512,256z"
android:fillColor="#D80027"/>
<path
android:pathData="M0,256c0,110.071 69.472,203.906 166.957,240.077V15.923C69.472,52.094 0,145.929 0,256z"
android:fillColor="#6DA544"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M256,256m-111.304,0a111.304,111.304 0,1 1,222.608 0a111.304,111.304 0,1 1,-222.608 0"
android:fillColor="#D80027"/>
</vector>

View File

@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M8.819,322.783c14.812,54.959 47.457,102.593 91.355,136.322V322.783H8.819z"
android:fillColor="#D80027"/>
<path
android:pathData="M233.739,511.026C241.077,511.658 248.498,512 256,512c118.279,0 217.805,-80.221 247.181,-189.217H233.739V511.026z"
android:fillColor="#D80027"/>
<path
android:pathData="M503.181,189.217C473.805,80.221 374.279,0 256,0c-7.502,0 -14.923,0.342 -22.261,0.974v188.243H503.181z"
android:fillColor="#D80027"/>
<path
android:pathData="M100.174,52.895c-43.898,33.73 -76.543,81.363 -91.355,136.322h91.355V52.895z"
android:fillColor="#D80027"/>
<path
android:pathData="M509.833,222.609H200.349h-0.001V6.085c-23.658,5.246 -46.087,13.749 -66.783,25.042v191.48v0.001H2.167C0.742,233.539 0,244.683 0,256s0.742,22.461 2.167,33.391h131.397h0.001v191.481c20.696,11.292 43.125,19.797 66.783,25.042V289.394v-0.002h309.485C511.256,278.461 512,267.317 512,256S511.256,233.539 509.833,222.609z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M0,256c0,110.07 69.472,203.905 166.955,240.076l22.262,-240.077L166.955,15.923C69.472,52.095 0,145.929 0,256z"
android:fillColor="#6DA544"/>
<path
android:pathData="M512,256C512,114.616 397.384,0 256,0c-31.314,0 -61.311,5.633 -89.045,15.923v480.154C194.689,506.368 224.686,512 256,512C397.384,512 512,397.384 512,256z"
android:fillColor="#D80027"/>
<path
android:pathData="M166.957,256m-89.043,0a89.043,89.043 0,1 1,178.086 0a89.043,89.043 0,1 1,-178.086 0"
android:fillColor="#FFDA44"/>
<path
android:pathData="M116.87,211.478v55.652c0,27.662 22.424,50.087 50.087,50.087s50.087,-22.424 50.087,-50.087v-55.652H116.87z"
android:fillColor="#D80027"/>
<path
android:pathData="M166.957,283.826c-9.206,0 -16.696,-7.49 -16.696,-16.696V244.87h33.391v22.261C183.652,276.336 176.162,283.826 166.957,283.826z"
android:fillColor="#F0F0F0"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M345.043,15.922C317.309,5.633 287.314,0 256,0c-31.314,-0.001 -61.31,5.633 -89.043,15.922l-22.261,240.077l22.261,240.077C194.689,506.368 224.685,512 256,512c31.313,0 61.31,-5.632 89.043,-15.924L367.303,256L345.043,15.922z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M512,256c0,-110.07 -69.472,-203.907 -166.957,-240.077v480.156C442.528,459.905 511.999,366.072 512,256z"
android:fillColor="#D80027"/>
<path
android:pathData="M0,255.999c0,110.073 69.472,203.906 166.955,240.079l0.001,-480.154C69.472,52.094 0,145.928 0,255.999z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M496.077,345.043C506.368,317.31 512,287.314 512,256s-5.632,-61.31 -15.923,-89.043H15.923C5.633,194.69 0,224.686 0,256s5.633,61.31 15.923,89.043L256,367.304L496.077,345.043z"
android:fillColor="#0052B4"/>
<path
android:pathData="M256,512c110.071,0 203.906,-69.472 240.077,-166.957H15.923C52.094,442.528 145.929,512 256,512z"
android:fillColor="#D80027"/>
</vector>

View File

@ -0,0 +1,69 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M345.043,256c0,22.261 -39.866,77.913 -89.043,77.913S166.957,278.261 166.957,256c0,-49.178 39.866,-89.043 89.043,-89.043S345.043,206.822 345.043,256z"
android:fillColor="#D80027"/>
<path
android:pathData="M345.043,256c0,49.178 -39.866,89.043 -89.043,89.043S166.957,305.178 166.957,256"
android:fillColor="#0052B4"/>
<path
android:fillColor="#FF000000"
android:pathData="M350.442,334.705l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M311.085,374.059l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M397.67,381.917l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M358.314,421.278l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M374.055,358.313l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M334.709,397.667l23.611,-23.611l15.741,15.741l-23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M397.678,177.289l-62.962,-62.962l15.741,-15.741l62.962,62.962z"/>
<path
android:fillColor="#FF000000"
android:pathData="M334.713,161.558l-23.611,-23.611l15.74,-15.74l23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M374.06,200.907l-23.611,-23.611l15.74,-15.74l23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M381.915,114.336l-23.611,-23.611l15.741,-15.741l23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M421.283,153.688l-23.611,-23.611l15.741,-15.741l23.611,23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M90.723,358.318l62.962,62.962l-15.741,15.741l-62.962,-62.962z"/>
<path
android:fillColor="#FF000000"
android:pathData="M153.68,374.051l23.611,23.611l-15.74,15.74l-23.611,-23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M114.331,334.703l23.611,23.611l-15.741,15.741l-23.611,-23.611z"/>
<path
android:fillColor="#FF000000"
android:pathData="M137.943,311.091l62.962,62.962l-15.741,15.741l-62.962,-62.962z"/>
<path
android:fillColor="#FF000000"
android:pathData="M153.684,90.72l-62.962,62.962l-15.741,-15.741l62.962,-62.962z"/>
<path
android:fillColor="#FF000000"
android:pathData="M177.287,114.325l-62.962,62.962l-15.741,-15.741l62.962,-62.962z"/>
<path
android:fillColor="#FF000000"
android:pathData="M200.912,137.947l-62.962,62.962l-15.74,-15.74l62.962,-62.962z"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M0,256c0,31.314 5.633,61.31 15.923,89.043L256,367.304l240.077,-22.261C506.367,317.31 512,287.314 512,256s-5.633,-61.31 -15.923,-89.043L256,144.696L15.923,166.957C5.633,194.69 0,224.686 0,256z"
android:fillColor="#FFDA44"/>
<path
android:pathData="M496.077,166.957C459.906,69.473 366.071,0 256,0S52.094,69.473 15.923,166.957H496.077z"
android:fillColor="#D80027"/>
<path
android:pathData="M15.923,345.043C52.094,442.527 145.929,512 256,512s203.906,-69.473 240.077,-166.957H15.923z"
android:fillColor="#D80027"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#FFDA44"/>
<path
android:pathData="M200.349,222.609h309.484C493.47,97.002 386.067,0 256,0c-19.114,0 -37.733,2.113 -55.652,6.085v216.524H200.349z"
android:fillColor="#0052B4"/>
<path
android:pathData="M133.565,222.608V31.127C63.271,69.481 12.95,139.832 2.167,222.609h131.398V222.608z"
android:fillColor="#0052B4"/>
<path
android:pathData="M133.564,289.391H2.167c10.783,82.777 61.104,153.128 131.398,191.481L133.564,289.391L133.564,289.391z"
android:fillColor="#0052B4"/>
<path
android:pathData="M200.348,289.392v216.523C218.267,509.887 236.886,512 256,512c130.067,0 237.47,-97.002 253.833,-222.609H200.348V289.392z"
android:fillColor="#0052B4"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#D80027"/>
<path
android:pathData="M245.518,209.186l21.005,28.945l34.017,-11.03l-21.038,28.92l21.002,28.944l-34.005,-11.072l-21.037,28.92l0.022,-35.761l-34.006,-11.072l34.018,-11.03z"
android:fillColor="#F0F0F0"/>
<path
android:pathData="M188.194,328.348c-39.956,0 -72.348,-32.392 -72.348,-72.348s32.392,-72.348 72.348,-72.348c12.458,0 24.18,3.151 34.414,8.696c-16.055,-15.702 -38.012,-25.392 -62.24,-25.392c-49.178,0 -89.043,39.866 -89.043,89.043s39.866,89.043 89.043,89.043c24.23,0 46.186,-9.691 62.24,-25.392C212.374,325.197 200.652,328.348 188.194,328.348z"
android:fillColor="#F0F0F0"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="M256,256m-256,0a256,256 0,1 1,512 0a256,256 0,1 1,-512 0"
android:fillColor="#D80027"/>
<path
android:pathData="M256,133.565l27.628,85.029l89.405,0l-72.331,52.55l27.628,85.03l-72.33,-52.551l-72.33,52.551l27.628,-85.03l-72.33,-52.55l89.404,0z"
android:fillColor="#FFDA44"/>
</vector>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<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_translation_fragment"
tools:context=".Settings.TranslationFragment" />

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<ImageView
android:id="@+id/country_flag_image_view_item_translation_contributor"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp">
<TextView
android:id="@+id/language_name_text_view_item_translation_contributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="?attr/font_12"
android:fontFamily="?attr/font_family" />
<TextView
android:id="@+id/contributor_names_text_view_item_translation_contributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
</LinearLayout>
</LinearLayout>

View File

@ -490,6 +490,7 @@
<string name="settings_bottom_app_bar_fab">Floating Action Button</string>
<string name="settings_data_saving_mode">Data Saving Mode</string>
<string name="settings_data_saving_mode_info_summary">In data saving mode, preview images are in lower resolution.</string>
<string name="settings_translation">Translation</string>
<string name="no_link_available">Cannot get the link</string>
@ -907,5 +908,7 @@
<string name="give_award_error_message">Code: %1$d/\n Message: %2$s</string>
<string name="give_award_success">Award given</string>
<string name="give_award_failed">Failed</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>

View File

@ -10,6 +10,11 @@
app:title="@string/settings_credits_master_title"
app:fragment="ml.docilealligator.infinityforreddit.Settings.CreditsPreferenceFragment" />
<Preference
android:key="translation"
app:title="@string/settings_translation"
app:fragment="ml.docilealligator.infinityforreddit.Settings.TranslationFragment"/>
<Preference
android:key="open_source"
app:title="@string/settings_open_source_title"