Fix peertube support
This commit is contained in:
parent
7b08bf77bf
commit
25d3803e69
|
@ -18,6 +18,7 @@ import static android.content.Context.DOWNLOAD_SERVICE;
|
|||
import static app.fedilab.android.BaseMainActivity.currentAccount;
|
||||
import static app.fedilab.android.mastodon.activities.BaseActivity.currentThemeId;
|
||||
import static app.fedilab.android.mastodon.helper.LogoHelper.getNotificationIcon;
|
||||
import static app.fedilab.android.mastodon.helper.ThemeHelper.fetchAccentColor;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
|
@ -42,6 +43,7 @@ import android.graphics.Color;
|
|||
import android.graphics.Paint;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.RingtoneManager;
|
||||
import android.net.ConnectivityManager;
|
||||
|
@ -89,6 +91,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
|||
import androidx.preference.PreferenceManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import com.avatarfirst.avatargenlib.AvatarGenerator;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.RequestBuilder;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
|
@ -1062,9 +1065,25 @@ public class Helper {
|
|||
if (account.mastodon_account != null) {
|
||||
targetedUrl = disableGif ? account.mastodon_account.avatar_static : account.mastodon_account.avatar;
|
||||
} else if (account.peertube_account != null) {
|
||||
targetedUrl = account.peertube_account.getAvatar().getPath();
|
||||
if (targetedUrl != null && targetedUrl.startsWith("/")) {
|
||||
targetedUrl = "https://" + account.instance + account.peertube_account.getAvatar().getPath();
|
||||
if (account.peertube_account.getAvatar() != null) {
|
||||
targetedUrl = account.peertube_account.getAvatar().getPath();
|
||||
if (targetedUrl != null && targetedUrl.startsWith("/")) {
|
||||
targetedUrl = "https://" + account.instance + account.peertube_account.getAvatar().getPath();
|
||||
}
|
||||
} else {
|
||||
BitmapDrawable avatar = new AvatarGenerator.AvatarBuilder(activity)
|
||||
.setLabel(account.peertube_account.getAcct())
|
||||
.setAvatarSize(120)
|
||||
.setTextSize(30)
|
||||
.toSquare()
|
||||
.setBackgroundColor(fetchAccentColor(activity))
|
||||
.build();
|
||||
Glide.with(activity)
|
||||
.asDrawable()
|
||||
.load(avatar)
|
||||
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(10)))
|
||||
.into(view);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import android.webkit.URLUtil;
|
|||
import androidx.documentfile.provider.DocumentFile;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.google.android.material.button.MaterialButton;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -94,6 +95,7 @@ import app.fedilab.android.peertube.viewmodel.CommentVM;
|
|||
import app.fedilab.android.peertube.viewmodel.PlaylistsVM;
|
||||
import app.fedilab.android.peertube.viewmodel.TimelineVM;
|
||||
import app.fedilab.android.sqlite.Sqlite;
|
||||
import es.dmoral.toasty.Toasty;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
@ -158,7 +160,18 @@ public class RetrofitPeertubeAPI {
|
|||
String instance = host;
|
||||
try {
|
||||
UserMe userMe = new RetrofitPeertubeAPI(activity, instance, token).verifyCredentials();
|
||||
|
||||
if (userMe == null) {
|
||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||
Runnable myRunnable = () -> {
|
||||
MaterialButton login = activity.findViewById(R.id.login_button);
|
||||
if (login != null) {
|
||||
login.setEnabled(true);
|
||||
}
|
||||
Toasty.error(activity, activity.getString(R.string.toast_error_peertube_not_supported), Toasty.LENGTH_SHORT).show();
|
||||
};
|
||||
mainHandler.post(myRunnable);
|
||||
return;
|
||||
}
|
||||
peertubeAccount = userMe.getAccount();
|
||||
} catch (Error error) {
|
||||
Error.displayError(activity, error);
|
||||
|
|
|
@ -55,8 +55,8 @@ public class UserMe {
|
|||
private NotificationSettings notificationSettings;
|
||||
@SerializedName("nsfwPolicy")
|
||||
private String nsfwPolicy;
|
||||
@SerializedName("role")
|
||||
private Role role;
|
||||
/* @SerializedName("role")
|
||||
private Role role;*/
|
||||
@SerializedName("roleLabel")
|
||||
private String roleLabel;
|
||||
@SerializedName("username")
|
||||
|
@ -74,13 +74,13 @@ public class UserMe {
|
|||
@SerializedName("webTorrentEnabled")
|
||||
private boolean webTorrentEnabled;
|
||||
|
||||
public Role getRole() {
|
||||
/* public Role getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(Role role) {
|
||||
this.role = role;
|
||||
}
|
||||
}*/
|
||||
|
||||
public PeertubeAccount getAccount() {
|
||||
return account;
|
||||
|
|
Loading…
Reference in New Issue