misc improvements
Some checks failed
Mirror to Codeberg / sync-git (push) Has been cancelled
Validate Gradle Wrapper / Validation (push) Has been cancelled
Nightly builds / build (push) Has been cancelled

This commit is contained in:
notfire 2025-03-20 09:28:22 -04:00
parent ab3d3ff068
commit 7269444a31
Signed by: notfire
GPG key ID: 3AFDACAAB4E56B16
6 changed files with 26 additions and 6 deletions

View file

@ -13,7 +13,7 @@ android {
defaultConfig { defaultConfig {
manifestPlaceholders = [oAuthScheme:"moshidon-android-auth"] manifestPlaceholders = [oAuthScheme:"moshidon-android-auth"]
archivesBaseName = "moshidon" archivesBaseName = "moshidon"
applicationId "org.joinmastodon.android.moshinda.luke" applicationId "org.joinmastodon.android.moshinda"
minSdk 23 minSdk 23
targetSdk 34 targetSdk 34
versionCode 108 versionCode 108

View file

@ -20,6 +20,8 @@
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-dontwarn android.app.BroadcastOptions
# Keep all model classes as they're used with gson and their names are shown in errors # Keep all model classes as they're used with gson and their names are shown in errors
-keep public class org.joinmastodon.android.model.**{ -keep public class org.joinmastodon.android.model.**{
<fields>; <fields>;

View file

@ -226,9 +226,13 @@ public class MastodonAPIController{
}catch(JsonIOException|JsonSyntaxException x){ }catch(JsonIOException|JsonSyntaxException x){
req.onError(response.code()+" "+response.message(), response.code(), x); req.onError(response.code()+" "+response.message(), response.code(), x);
}catch(Exception x){ }catch(Exception x){
if (response.code() == 501){
req.onError("API route not implemented: " + response.request().url(), response.code(), x);
} else {
req.onError("Error parsing an API error", response.code(), x); req.onError("Error parsing an API error", response.code(), x);
} }
} }
}
}catch(Exception x){ }catch(Exception x){
Log.w(TAG, "onResponse: error processing response", x); Log.w(TAG, "onResponse: error processing response", x);
onFailure(call, (IOException) new IOException(x).fillInStackTrace()); onFailure(call, (IOException) new IOException(x).fillInStackTrace());

View file

@ -12,6 +12,7 @@ import android.graphics.drawable.Icon;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import org.joinmastodon.android.BuildConfig; import org.joinmastodon.android.BuildConfig;
import org.joinmastodon.android.E; import org.joinmastodon.android.E;
@ -126,7 +127,7 @@ public class AccountSessionManager{
wrapper.instance = instance; wrapper.instance = instance;
MastodonAPIController.runInBackground(()->writeInstanceInfoFile(wrapper, instance.uri)); MastodonAPIController.runInBackground(()->writeInstanceInfoFile(wrapper, instance.uri));
updateMoreInstanceInfo(instance, instance.uri); updateMoreInstanceInfo(instance, AccountSessionManager.get(session.getID()).domain);
if (UnifiedPushHelper.isUnifiedPushEnabled(context)) { if (UnifiedPushHelper.isUnifiedPushEnabled(context)) {
UnifiedPush.register( UnifiedPush.register(
context, context,
@ -390,7 +391,7 @@ public class AccountSessionManager{
public void onError(ErrorResponse errorResponse) { public void onError(ErrorResponse errorResponse) {
updateInstanceEmojis(instance, domain); updateInstanceEmojis(instance, domain);
} }
}).execNoAuth(instance.uri); }).execNoAuth(domain);
} }
private void updateInstanceEmojis(Instance instance, String domain){ private void updateInstanceEmojis(Instance instance, String domain){

View file

@ -818,6 +818,9 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.scheduled, R.id.bookmarks); UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.scheduled, R.id.bookmarks);
}else{ }else{
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.edit_note, R.id.biteuser_btn); UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.edit_note, R.id.biteuser_btn);
if (isInstanceIceshrimp()){
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.biteuser_btn);
}
} }
boolean hasMultipleAccounts = AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1; boolean hasMultipleAccounts = AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1;
menu.findItem(R.id.open_with_account).setVisible(hasMultipleAccounts); menu.findItem(R.id.open_with_account).setVisible(hasMultipleAccounts);

View file

@ -15,6 +15,8 @@ import android.view.ViewGroup;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.Toast;
import android.widget.Toolbar;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@ -190,7 +192,12 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
instance=item.parentFragment.getInstance().get(); instance=item.parentFragment.getInstance().get();
if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0){ if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0){
meReactionCount=(int) item.status.reactions.stream().filter(r->r.me).count(); meReactionCount=(int) item.status.reactions.stream().filter(r->r.me).count();
boolean canReact=meReactionCount<instance.configuration.reactions.maxReactions; boolean canReact;
if (instance.isIceshrimp()){
canReact = true;
}else{
canReact=meReactionCount<instance.configuration.reactions.maxReactions;
}
addButton.setClickable(canReact); addButton.setClickable(canReact);
addButton.setAlpha(canReact ? 1 : ALPHA_DISABLED); addButton.setAlpha(canReact ? 1 : ALPHA_DISABLED);
} }
@ -573,7 +580,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
}, null).exec(parent.parentFragment.getAccountID()); }, null).exec(parent.parentFragment.getAccountID());
}); });
if (parent.parentFragment.isInstanceAkkoma()) { if (parent.parentFragment.isInstanceAkkoma() || parent.parentFragment.isInstanceIceshrimp()) {
// glitch-soc doesn't have this, afaik // glitch-soc doesn't have this, afaik
btn.setOnLongClickListener(e->{ btn.setOnLongClickListener(e->{
EmojiReaction emojiReaction=parent.status.reactions.get(getAbsoluteAdapterPosition()); EmojiReaction emojiReaction=parent.status.reactions.get(getAbsoluteAdapterPosition());
@ -584,6 +591,9 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name); args.putString("emoji", atSymbolIndex != -1 ? emojiReaction.name.substring(0, atSymbolIndex) : emojiReaction.name);
args.putString("url", emojiReaction.getUrl(parent.playGifs)); args.putString("url", emojiReaction.getUrl(parent.playGifs));
args.putInt("count", emojiReaction.count); args.putInt("count", emojiReaction.count);
if (emojiReaction.url != null) {
Toast.makeText(e.getContext(), ":" + emojiReaction.name + ":", Toast.LENGTH_SHORT).show();
}
Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args); Nav.go(parent.parentFragment.getActivity(), StatusEmojiReactionsListFragment.class, args);
return true; return true;
}); });