Commit 8db45870 authored by Thomas's avatar Thomas
Browse files

Merge branch 'fix_528' into develop

parents 89355894 14a3ad5a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ dependencies {
    implementation("com.vanniktech:android-image-cropper:4.3.3")
    annotationProcessor "com.github.bumptech.glide:compiler:4.12.0"
    implementation 'jp.wasabeef:glide-transformations:4.3.0'
    implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.23.0'
    implementation 'com.github.penfeizhou.android.animation:glide-plugin:3.0.4'
    implementation 'androidx.media3:media3-exoplayer-hls:1.2.1'
    implementation "androidx.media3:media3-exoplayer:1.2.1"
    implementation "androidx.media3:media3-exoplayer-dash:1.2.1"
+1 −0
Original line number Diff line number Diff line
@@ -230,6 +230,7 @@
            android:configChanges="keyboardHidden|orientation|screenSize" />
        <activity
            android:name=".mastodon.activities.MediaActivity"
            android:hardwareAccelerated="false"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/Transparent" />

+10 −17
Original line number Diff line number Diff line
@@ -82,9 +82,6 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import androidmads.library.qrgenearator.QRGContents;
import androidmads.library.qrgenearator.QRGEncoder;
@@ -103,6 +100,7 @@ import app.fedilab.android.mastodon.client.entities.api.Field;
import app.fedilab.android.mastodon.client.entities.api.IdentityProof;
import app.fedilab.android.mastodon.client.entities.api.MastodonList;
import app.fedilab.android.mastodon.client.entities.api.RelationShip;
import app.fedilab.android.mastodon.client.entities.api.Status;
import app.fedilab.android.mastodon.client.entities.app.CachedBundle;
import app.fedilab.android.mastodon.client.entities.app.Languages;
import app.fedilab.android.mastodon.client.entities.app.Pinned;
@@ -132,7 +130,6 @@ public class ProfileActivity extends BaseActivity {
    private RelationShip relationship;
    private FamiliarFollowers familiarFollowers;
    private Account account;
    private ScheduledExecutorService scheduledExecutorService;
    private action doAction;
    private AccountsVM accountsVM;
    private RecyclerView identityProofsRecycler;
@@ -357,14 +354,7 @@ public class ProfileActivity extends BaseActivity {
            this.identityProofList = identityProofs;
            updateAccount();
        });
        //Animate emojis
        if (account.emojis != null && !account.emojis.isEmpty()) {
            boolean disableAnimatedEmoji = sharedpreferences.getBoolean(getString(R.string.SET_DISABLE_ANIMATED_EMOJI), false);
            if (!disableAnimatedEmoji) {
                scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
                scheduledExecutorService.scheduleAtFixedRate(() -> binding.accountDn.invalidate(), 0, 130, TimeUnit.MILLISECONDS);
            }
        }

        binding.accountTabLayout.clearOnTabSelectedListeners();
        binding.accountTabLayout.removeAllTabs();
        //Tablayout for timelines/following/followers
@@ -550,8 +540,15 @@ public class ProfileActivity extends BaseActivity {
        });
        binding.accountNote.setText(
                account.getSpanNote(ProfileActivity.this,
                        new WeakReference<>(binding.accountNote)),
                        new WeakReference<>(binding.accountNote), () -> {
                            //TODO: replace this hack
                            binding.accountNote.setText(
                                    account.getSpanNote(ProfileActivity.this,
                                            new WeakReference<>(binding.accountNote)), TextView.BufferType.SPANNABLE);

                        }),
                TextView.BufferType.SPANNABLE);

        binding.accountNote.setMovementMethod(LinkMovementMethod.getInstance());


@@ -1370,10 +1367,6 @@ public class ProfileActivity extends BaseActivity {

    @Override
    public void onDestroy() {
        if (scheduledExecutorService != null) {
            scheduledExecutorService.shutdownNow();
            scheduledExecutorService = null;
        }
        try {
            unregisterReceiver(broadcast_data);
        } catch (IllegalArgumentException e) {
+3 −0
Original line number Diff line number Diff line
@@ -112,6 +112,9 @@ public class Account implements Serializable {
    public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference) {
        return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, null, true, false);
    }
    public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference, Status.Callback callback) {
        return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, callback, true, false);
    }

    @Override
    public boolean equals(@Nullable Object obj) {
+18 −2
Original line number Diff line number Diff line
@@ -918,7 +918,7 @@ public class Helper {
        ft.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit);
        Fragment _fragment = fragmentManager.findFragmentByTag(tag);
        if (_fragment != null && _fragment.isAdded()) {
            ft.show(_fragment).commit();
            ft.show(_fragment).commitAllowingStateLoss();
            fragment = _fragment;
        } else {
            if (args != null) fragment.setArguments(args);
@@ -930,7 +930,7 @@ public class Helper {
                }catch (Exception ignored){}
            }
            if (!fragmentManager.isDestroyed()) {
                ft.commit();
                ft.commitAllowingStateLoss();
            }
        }
        fragmentManager.executePendingTransactions();
@@ -2159,6 +2159,22 @@ public class Helper {
                .build();
    }

    public static OkHttpClient myPostOkHttpClient(Context context) {
        return new OkHttpClient.Builder()
                .addInterceptor(chain -> {
                    Request originalRequest = chain.request();
                    Request requestWithUserAgent = originalRequest.newBuilder()
                            .header("User-Agent", context.getString(R.string.app_name) + "/" + BuildConfig.VERSION_NAME + "/" + BuildConfig.VERSION_CODE)
                            .build();
                    return chain.proceed(requestWithUserAgent);
                })
                .readTimeout(120, TimeUnit.SECONDS)
                .connectTimeout(120, TimeUnit.SECONDS)
                .callTimeout(120, TimeUnit.SECONDS)
                .proxy(Helper.getProxy(context))
                .build();
    }

    public static String parseHtml(String html) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY).toString();
Loading