Commit 92a9479c authored by Thomas's avatar Thomas
Browse files

Merge branch 'develop' into main

parents 867d2ed4 5cac9809
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
[![Translation status](https://hosted.weblate.org/widgets/fedilab/-/strings/svg-badge.svg)](https://hosted.weblate.org/engage/fedilab/)
   [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

# Fedilab is a multi-accounts client for Mastodon, Pleroma, Peertube, GNU Social, Friendica and Pixelfed
# Fedilab is a multi-accounts client for Mastodon, Pleroma, Friendica and Pixelfed

## Donate

@@ -16,7 +16,7 @@

[WIKI](https://fedilab.app/wiki/home/)

[Release notes](https://framagit.org/tom79/fedilab/tags)
[Release notes](https://codeberg.org/tom79/Fedilab/tags)

Lead developer: [toot.fedilab.app/@apps](https://toot.fedilab.app/@apps)

+5 −8
Original line number Diff line number Diff line
@@ -9,8 +9,8 @@ android {
    defaultConfig {
        minSdk 21
        targetSdk 31
        versionCode 396
        versionName "3.0.6"
        versionCode 399
        versionName "3.0.9"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    flavorDimensions "default"
@@ -85,11 +85,9 @@ dependencies {
    implementation 'com.github.GrenderG:Toasty:1.5.2'
    implementation 'org.framagit.tom79:SparkButton:1.0.13'
    implementation "com.github.bumptech.glide:glide:4.12.0"
    implementation "com.github.bumptech.glide:okhttp3-integration:4.12.0"

    implementation 'com.github.mergehez:ArgPlayer:v3.1'
    implementation ("com.github.bumptech.glide:recyclerview-integration:4.12.0") {
        // Excludes the support library because it's already included by Glide.
        transitive = false
    }
    implementation project(path: ':mytransl')
    implementation project(path: ':ratethisapp')

@@ -99,8 +97,7 @@ dependencies {
    implementation project(path: ':cropper')
    annotationProcessor "com.github.bumptech.glide:compiler:4.12.0"
    implementation 'jp.wasabeef:glide-transformations:4.3.0'
    implementation 'com.github.penfeizhou.android.animation:apng:2.22.0'
    implementation 'com.github.penfeizhou.android.animation:gif:2.22.0'
    implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.22.0'
    implementation 'com.google.android.exoplayer:exoplayer:2.16.1'
    implementation "androidx.viewpager2:viewpager2:1.0.0"
    implementation 'com.github.piasy:rxandroidaudio:1.7.0'
+730 −0
Original line number Diff line number Diff line
[
  {
    "code": "aa",
    "language": "Afaraf"
  },
  {
    "code": "ab",
    "language": "аҧсуа бызшәа"
  },
  {
    "code": "ae",
    "language": "avesta"
  },
  {
    "code": "af",
    "language": "Afrikaans"
  },
  {
    "code": "ak",
    "language": "Akan"
  },
  {
    "code": "am",
    "language": "አማርኛ"
  },
  {
    "code": "an",
    "language": "aragonés"
  },
  {
    "code": "ar",
    "language": "اللغة العربية"
  },
  {
    "code": "as",
    "language": "অসমীয়া"
  },
  {
    "code": "av",
    "language": "авар мацӀ"
  },
  {
    "code": "ay",
    "language": "aymar aru"
  },
  {
    "code": "az",
    "language": "azərbaycan dili"
  },
  {
    "code": "ba",
    "language": "башҡорт теле"
  },
  {
    "code": "be",
    "language": "беларуская мова"
  },
  {
    "code": "bg",
    "language": "български език"
  },
  {
    "code": "bh",
    "language": "भोजपुरी"
  },
  {
    "code": "bi",
    "language": "Bislama"
  },
  {
    "code": "bm",
    "language": "bamanankan"
  },
  {
    "code": "bn",
    "language": "বাংলা"
  },
  {
    "code": "bo",
    "language": "བོད་ཡིག"
  },
  {
    "code": "br",
    "language": "brezhoneg"
  },
  {
    "code": "bs",
    "language": "bosanski jezik"
  },
  {
    "code": "ca",
    "language": "Català"
  },
  {
    "code": "ce",
    "language": "нохчийн мотт"
  },
  {
    "code": "ch",
    "language": "Chamoru"
  },
  {
    "code": "co",
    "language": "corsu"
  },
  {
    "code": "cr",
    "language": "ᓀᐦᐃᔭᐍᐏᐣ"
  },
  {
    "code": "cs",
    "language": "čeština"
  },
  {
    "code": "cu",
    "language": "ѩзыкъ словѣньскъ"
  },
  {
    "code": "cv",
    "language": "чӑваш чӗлхи"
  },
  {
    "code": "cy",
    "language": "Cymraeg"
  },
  {
    "code": "da",
    "language": "dansk"
  },
  {
    "code": "de",
    "language": "Deutsch"
  },
  {
    "code": "dv",
    "language": "Dhivehi"
  },
  {
    "code": "dz",
    "language": "རྫོང་ཁ"
  },
  {
    "code": "ee",
    "language": "Eʋegbe"
  },
  {
    "code": "el",
    "language": "Ελληνικά"
  },
  {
    "code": "en",
    "language": "English"
  },
  {
    "code": "eo",
    "language": "Esperanto"
  },
  {
    "code": "es",
    "language": "Español"
  },
  {
    "code": "et",
    "language": "eesti"
  },
  {
    "code": "eu",
    "language": "euskara"
  },
  {
    "code": "fa",
    "language": "فارسی"
  },
  {
    "code": "ff",
    "language": "Fulfulde"
  },
  {
    "code": "fi",
    "language": "suomi"
  },
  {
    "code": "fj",
    "language": "Vakaviti"
  },
  {
    "code": "fo",
    "language": "føroyskt"
  },
  {
    "code": "fr",
    "language": "Français"
  },
  {
    "code": "fy",
    "language": "Frysk"
  },
  {
    "code": "ga",
    "language": "Gaeilge"
  },
  {
    "code": "gd",
    "language": "Gàidhlig"
  },
  {
    "code": "gl",
    "language": "galego"
  },
  {
    "code": "gu",
    "language": "ગુજરાતી"
  },
  {
    "code": "gv",
    "language": "Gaelg"
  },
  {
    "code": "ha",
    "language": "هَوُسَ"
  },
  {
    "code": "he",
    "language": "עברית"
  },
  {
    "code": "hi",
    "language": "हिन्दी"
  },
  {
    "code": "ho",
    "language": "Hiri Motu"
  },
  {
    "code": "hr",
    "language": "Hrvatski"
  },
  {
    "code": "ht",
    "language": "Kreyòl ayisyen"
  },
  {
    "code": "hu",
    "language": "magyar"
  },
  {
    "code": "hy",
    "language": "Հայերեն"
  },
  {
    "code": "hz",
    "language": "Otjiherero"
  },
  {
    "code": "ia",
    "language": "Interlingua"
  },
  {
    "code": "id",
    "language": "Bahasa Indonesia"
  },
  {
    "code": "ie",
    "language": "Interlingue"
  },
  {
    "code": "ig",
    "language": "Asụsụ Igbo"
  },
  {
    "code": "ii",
    "language": "ꆈꌠ꒿ Nuosuhxop"
  },
  {
    "code": "ik",
    "language": "Iñupiaq"
  },
  {
    "code": "io",
    "language": "Ido"
  },
  {
    "code": "is",
    "language": "Íslenska"
  },
  {
    "code": "it",
    "language": "Italiano"
  },
  {
    "code": "iu",
    "language": "ᐃᓄᒃᑎᑐᑦ"
  },
  {
    "code": "ja",
    "language": "日本語"
  },
  {
    "code": "jv",
    "language": "basa Jawa"
  },
  {
    "code": "ka",
    "language": "ქართული"
  },
  {
    "code": "kg",
    "language": "Kikongo"
  },
  {
    "code": "ki",
    "language": "Gĩkũyũ"
  },
  {
    "code": "kj",
    "language": "Kuanyama"
  },
  {
    "code": "kk",
    "language": "қазақ тілі"
  },
  {
    "code": "kl",
    "language": "kalaallisut"
  },
  {
    "code": "km",
    "language": "ខេមរភាសា"
  },
  {
    "code": "kn",
    "language": "ಕನ್ನಡ"
  },
  {
    "code": "ko",
    "language": "한국어"
  },
  {
    "code": "kr",
    "language": "Kanuri"
  },
  {
    "code": "ks",
    "language": "कश्मीरी"
  },
  {
    "code": "ku",
    "language": "Kurmancî"
  },
  {
    "code": "kv",
    "language": "коми кыв"
  },
  {
    "code": "kw",
    "language": "Kernewek"
  },
  {
    "code": "ky",
    "language": "Кыргызча"
  },
  {
    "code": "la",
    "language": "latine"
  },
  {
    "code": "lb",
    "language": "Lëtzebuergesch"
  },
  {
    "code": "lg",
    "language": "Luganda"
  },
  {
    "code": "li",
    "language": "Limburgs"
  },
  {
    "code": "ln",
    "language": "Lingála"
  },
  {
    "code": "lo",
    "language": "ພາສາ"
  },
  {
    "code": "lt",
    "language": "lietuvių kalba"
  },
  {
    "code": "lu",
    "language": "Tshiluba"
  },
  {
    "code": "lv",
    "language": "latviešu valoda"
  },
  {
    "code": "mg",
    "language": "fiteny malagasy"
  },
  {
    "code": "mh",
    "language": "Kajin M̧ajeļ"
  },
  {
    "code": "mi",
    "language": "te reo Māori"
  },
  {
    "code": "mk",
    "language": "македонски јазик"
  },
  {
    "code": "ml",
    "language": "മലയാളം"
  },
  {
    "code": "mn",
    "language": "Монгол хэл"
  },
  {
    "code": "mr",
    "language": "मराठी"
  },
  {
    "code": "ms",
    "language": "Bahasa Melayu"
  },
  {
    "code": "mt",
    "language": "Malti"
  },
  {
    "code": "my",
    "language": "ဗမာစာ"
  },
  {
    "code": "na",
    "language": "Ekakairũ Naoero"
  },
  {
    "code": "nb",
    "language": "Norsk bokmål"
  },
  {
    "code": "nd",
    "language": "isiNdebele"
  },
  {
    "code": "ne",
    "language": "नेपाली"
  },
  {
    "code": "ng",
    "language": "Owambo"
  },
  {
    "code": "nl",
    "language": "Nederlands"
  },
  {
    "code": "nn",
    "language": "Norsk Nynorsk"
  },
  {
    "code": "no",
    "language": "Norsk"
  },
  {
    "code": "nr",
    "language": "isiNdebele"
  },
  {
    "code": "nv",
    "language": "Diné bizaad"
  },
  {
    "code": "ny",
    "language": "chiCheŵa"
  },
  {
    "code": "oc",
    "language": "occitan"
  },
  {
    "code": "oj",
    "language": "ᐊᓂᔑᓈᐯᒧᐎᓐ"
  },
  {
    "code": "om",
    "language": "Afaan Oromoo"
  },
  {
    "code": "or",
    "language": "ଓଡ଼ିଆ"
  },
  {
    "code": "os",
    "language": "ирон æвзаг"
  },
  {
    "code": "pa",
    "language": "ਪੰਜਾਬੀ"
  },
  {
    "code": "pi",
    "language": "पाऴि"
  },
  {
    "code": "pl",
    "language": "Polski"
  },
  {
    "code": "ps",
    "language": "پښتو"
  },
  {
    "code": "pt",
    "language": "Português"
  },
  {
    "code": "qu",
    "language": "Runa Simi"
  },
  {
    "code": "rm",
    "language": "rumantsch grischun"
  },
  {
    "code": "rn",
    "language": "Ikirundi"
  },
  {
    "code": "ro",
    "language": "Română"
  },
  {
    "code": "ru",
    "language": "Русский"
  },
  {
    "code": "rw",
    "language": "Ikinyarwanda"
  },
  {
    "code": "sa",
    "language": "संस्कृतम्"
  },
  {
    "code": "sc",
    "language": "sardu"
  },
  {
    "code": "sd",
    "language": "सिन्धी"
  },
  {
    "code": "se",
    "language": "Davvisámegiella"
  },
  {
    "code": "sg",
    "language": "yângâ tî sängö"
  },
  {
    "code": "si",
    "language": "සිංහල"
  },
  {
    "code": "sk",
    "language": "slovenčina"
  },
  {
    "code": "sl",
    "language": "slovenščina"
  },
  {
    "code": "sn",
    "language": "chiShona"
  },
  {
    "code": "so",
    "language": "Soomaaliga"
  },
  {
    "code": "sq",
    "language": "Shqip"
  },
  {
    "code": "sr",
    "language": "српски језик"
  },
  {
    "code": "ss",
    "language": "SiSwati"
  },
  {
    "code": "st",
    "language": "Sesotho"
  },
  {
    "code": "su",
    "language": "Basa Sunda"
  },
  {
    "code": "sv",
    "language": "Svenska"
  },
  {
    "code": "sw",
    "language": "Kiswahili"
  },
  {
    "code": "ta",
    "language": "தமிழ்"
  },
  {
    "code": "te",
    "language": "తెలుగు"
  },
  {
    "code": "tg",
    "language": "тоҷикӣ"
  },
  {
    "code": "th",
    "language": "ไทย"
  },
  {
    "code": "ti",
    "language": "ትግርኛ"
  },
  {
    "code": "tk",
    "language": "Türkmen"
  },
  {
    "code": "tl",
    "language": "Wikang Tagalog"
  },
  {
    "code": "tn",
    "language": "Setswana"
  },
  {
    "code": "to",
    "language": "faka Tonga"
  },
  {
    "code": "tr",
    "language": "Türkçe"
  },
  {
    "code": "ts",
    "language": "Xitsonga"
  },
  {
    "code": "tt",
    "language": "татар теле"
  },
  {
    "code": "tw",
    "language": "Twi"
  },
  {
    "code": "ty",
    "language": "Reo Tahiti"
  },
  {
    "code": "ug",
    "language": "ئۇيغۇرچە"
  },
  {
    "code": "uk",
    "language": "Українська"
  },
  {
    "code": "ur",
    "language": "اردو"
  },
  {
    "code": "uz",
    "language": "Ўзбек"
  },
  {
    "code": "ve",
    "language": "Tshivenḓa"
  },
  {
    "code": "vi",
    "language": "Tiếng Việt"
  },
  {
    "code": "vo",
    "language": "Volapük"
  },
  {
    "code": "wa",
    "language": "walon"
  },
  {
    "code": "wo",
    "language": "Wollof"
  },
  {
    "code": "xh",
    "language": "isiXhosa"
  },
  {
    "code": "yi",
    "language": "ייִדיש"
  },
  {
    "code": "yo",
    "language": "Yorùbá"
  },
  {
    "code": "za",
    "language": "Saɯ cueŋƅ"
  },
  {
    "code": "zh",
    "language": "中文"
  },
  {
    "code": "zu",
    "language": "isiZulu"
  }
]
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
    "accent": "#FF2b90d9",
    "accent_dark": "#FF1b80c9",
    "accent_light": "#FF772b90d9",
    "background": "#FF121212",
    "background": "#FF272727",
    "background_dark": "#FF282c37",
    "background_light": "#FF282c37",
    "should_tint_statusbar": true,
+9 −9
Original line number Diff line number Diff line
@@ -537,7 +537,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
                headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_up_24);
                new Thread(() -> {
                    try {
                        List<BaseAccount> accounts = new Account(BaseMainActivity.this).getAll();
                        List<BaseAccount> accounts = new Account(BaseMainActivity.this).getCrossAccounts();
                        Handler mainHandler = new Handler(Looper.getMainLooper());
                        Runnable myRunnable = () -> {
                            binding.navView.getMenu().clear();
@@ -772,7 +772,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
                    currentAccount.mastodon_account.display_name = currentAccount.mastodon_account.acct;
                }
                headerMainBinding.accountName.setText(currentAccount.mastodon_account.display_name);
                Helper.loadPP(headerMainBinding.accountProfilePicture, currentAccount);
                Helper.loadPP(headerMainBinding.accountProfilePicture, currentAccount, false);
                MastodonHelper.loadProfileMediaMastodon(headerMainBinding.backgroundImage, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER);
                /*
                 * Some general data are loaded when the app starts such;
@@ -786,7 +786,12 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
                new ViewModelProvider(BaseMainActivity.this).get(InstancesVM.class).getEmoji(currentInstance);
                //Retrieve instance info
                new ViewModelProvider(BaseMainActivity.this).get(InstancesVM.class).getInstance(currentInstance)
                        .observe(BaseMainActivity.this, instance -> instanceInfo = instance.info);
                        .observe(BaseMainActivity.this, instance -> {
                            instanceInfo = instance.info;
                            SharedPreferences.Editor editor = sharedpreferences.edit();
                            editor.putString(getString(R.string.INSTANCE_INFO) + MainActivity.currentInstance, Instance.serialize(instanceInfo));
                            editor.apply();
                        });
                //Retrieve filters
                new ViewModelProvider(BaseMainActivity.this).get(AccountsVM.class).getFilters(currentInstance, currentToken)
                        .observe(BaseMainActivity.this, filters -> mainFilters = filters);
@@ -850,7 +855,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
        binding.toolbarSearch.setOnSearchClickListener(v -> binding.tabLayout.setVisibility(View.VISIBLE));
        //For receiving  data from other activities
        LocalBroadcastManager.getInstance(BaseMainActivity.this).registerReceiver(broadcast_data, new IntentFilter(Helper.BROADCAST_DATA));
        if (emojis == null || !emojis.containsKey(BaseMainActivity.currentInstance)) {
        if (emojis == null || !emojis.containsKey(BaseMainActivity.currentInstance) || emojis.get(BaseMainActivity.currentInstance) == null) {
            new Thread(() -> {
                try {
                    emojis.put(currentInstance, new EmojiInstance(BaseMainActivity.this).getEmojiList(BaseMainActivity.currentInstance));
@@ -1059,11 +1064,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
    }


    @Override
    protected void onResume() {
        super.onResume();
    }

    public void redrawPinned(List<MastodonList> mastodonLists) {
        int currentItem = binding.viewPager.getCurrentItem();
        new ViewModelProvider(BaseMainActivity.this).get(TopBarVM.class).getDBPinned()
Loading