normalize instance uri

This commit is contained in:
sk
2023-06-01 19:13:03 +02:00
parent 2c4504bad3
commit 0702703d78
3 changed files with 9 additions and 7 deletions

View File

@@ -99,7 +99,7 @@ public class AccountSession{
public Uri getInstanceUri() { public Uri getInstanceUri() {
return new Uri.Builder() return new Uri.Builder()
.scheme("https") .scheme("https")
.authority(getInstance().map(i -> i.uri).orElse(domain)) .authority(getInstance().map(i -> i.normalizedUri).orElse(domain))
.build(); .build();
} }
} }

View File

@@ -50,7 +50,6 @@ public class InstanceRulesFragment extends ToolbarFragment implements ProvidesAs
private ElevationOnScrollListener onScrollListener; private ElevationOnScrollListener onScrollListener;
private static final int RULES_REQUEST=376; private static final int RULES_REQUEST=376;
private String domain;
@Override @Override
public void onCreate(Bundle savedInstanceState){ public void onCreate(Bundle savedInstanceState){
@@ -63,10 +62,6 @@ public class InstanceRulesFragment extends ToolbarFragment implements ProvidesAs
super.onAttach(activity); super.onAttach(activity);
setNavigationBarColor(UiUtils.getThemeColor(activity, R.attr.colorWindowBackground)); setNavigationBarColor(UiUtils.getThemeColor(activity, R.attr.colorWindowBackground));
instance=Parcels.unwrap(getArguments().getParcelable("instance")); instance=Parcels.unwrap(getArguments().getParcelable("instance"));
// akkoma says uri is "https://example.social" while just "example.social" on mastodon
domain = instance.uri
.replaceFirst("^https://", "")
.replaceFirst("/$", "");
setTitle(R.string.instance_rules_title); setTitle(R.string.instance_rules_title);
} }
@@ -142,7 +137,7 @@ public class InstanceRulesFragment extends ToolbarFragment implements ProvidesAs
public void onProvideAssistContent(AssistContent assistContent) { public void onProvideAssistContent(AssistContent assistContent) {
assistContent.setWebUri(new Uri.Builder() assistContent.setWebUri(new Uri.Builder()
.scheme("https") .scheme("https")
.authority(domain) .authority(instance.normalizedUri)
.path("/about") .path("/about")
.build()); .build());
} }

View File

@@ -88,6 +88,9 @@ public class Instance extends BaseModel{
public PleromaPollLimits pollLimits; public PleromaPollLimits pollLimits;
/** like uri, but always without scheme and trailing slash */
public transient String normalizedUri;
@Override @Override
public void postprocess() throws ObjectValidationException{ public void postprocess() throws ObjectValidationException{
super.postprocess(); super.postprocess();
@@ -97,6 +100,10 @@ public class Instance extends BaseModel{
rules=Collections.emptyList(); rules=Collections.emptyList();
if(shortDescription==null) if(shortDescription==null)
shortDescription=""; shortDescription="";
// akkoma says uri is "https://example.social" while just "example.social" on mastodon
normalizedUri = uri
.replaceFirst("^https://", "")
.replaceFirst("/$", "");
} }
@Override @Override