diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index df5e60af3..35c3d0c79 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -30,7 +30,6 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.os.Handler; -import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index 8bb4106c4..4eb935e3c 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -3244,6 +3244,7 @@ public class API { } catch (UnsupportedEncodingException e) { params.put("q", query); } + params.put("resolve", "true"); try { HttpsConnection httpsConnection = new HttpsConnection(context, this.instance); String response = httpsConnection.get(getAbsoluteUrl("/search"), 10, params, prefKeyOauthTokenT); diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Account.java b/app/src/main/java/app/fedilab/android/client/Entities/Account.java index e6884bf97..23e2e7b55 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Account.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Account.java @@ -43,6 +43,8 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.Date; import java.util.Iterator; @@ -1044,6 +1046,10 @@ public class Account implements Parcelable { } } + @NotNull + public String toString(){ + return this.getAcct()+ " - " + this.getUrl(); + } } diff --git a/app/src/main/java/app/fedilab/android/helper/CrossActions.java b/app/src/main/java/app/fedilab/android/helper/CrossActions.java index 582b8929f..17cb7b855 100644 --- a/app/src/main/java/app/fedilab/android/helper/CrossActions.java +++ b/app/src/main/java/app/fedilab/android/helper/CrossActions.java @@ -29,6 +29,8 @@ import android.text.Html; import android.widget.Toast; import java.lang.ref.WeakReference; +import java.net.URI; +import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; @@ -343,14 +345,48 @@ public class CrossActions { } List remoteAccounts = response.getAccounts(); if( remoteAccounts != null && remoteAccounts.size() > 0) { - Intent intent = new Intent(context, ShowAccountActivity.class); - Bundle b = new Bundle(); - //Flag it has a peertube account - if( remoteAccount.getHost() != null && remoteAccount.getAcct().split("@").length > 1) - b.putBoolean("peertubeaccount", true); - b.putParcelable("account", remoteAccounts.get(0)); - intent.putExtras(b); - context.startActivity(intent); + + Account fetchedAccount = null; + if( remoteAccounts.size() == 1){ + Account acc = remoteAccounts.get(0); + if (acc.getUsername().equals(remoteAccount.getUsername())) { + fetchedAccount = acc; + } + }else { + remoteAccounts.size(); + for(Account acc: remoteAccounts){ + + String instance = null; + try { + URI url = new URI(acc.getUrl()); + instance = url.getHost(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + if( instance != null ) { + if (acc.getUsername().equals(remoteAccount.getUsername()) && instance.equals(remoteAccount.getInstance())) { + fetchedAccount = acc; + break; + } + }else{ + if (acc.getUsername().equals(remoteAccount.getUsername())) { + fetchedAccount = acc; + break; + } + } + } + } + if(fetchedAccount != null){ + Intent intent = new Intent(context, ShowAccountActivity.class); + Bundle b = new Bundle(); + //Flag it has a peertube account + if( remoteAccount.getHost() != null && remoteAccount.getAcct().split("@").length > 1) + b.putBoolean("peertubeaccount", true); + b.putParcelable("account", fetchedAccount); + intent.putExtras(b); + context.startActivity(intent); + } + } } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR );