add servers from https://conversations.im/compliance/ to autocomplete jids

This commit is contained in:
Christian Schneppe 2018-02-09 22:03:44 +01:00
parent edf8c8d37c
commit 859bce4442
3 changed files with 140 additions and 5 deletions

View file

@ -6,23 +6,25 @@ import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.security.SecureRandom;
import java.util.List;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
import de.pixart.messenger.entities.Account;
import de.pixart.messenger.ui.adapter.KnownHostsAdapter;
import de.pixart.messenger.xmpp.jid.InvalidJidException;
import de.pixart.messenger.xmpp.jid.Jid;
public class MagicCreateActivity extends XmppActivity implements TextWatcher {
private TextView mFullJidDisplay;
private EditText mUsername;
private AutoCompleteTextView mUsername;
private SecureRandom mRandom;
private static final String CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456780+-/#$!?";
@ -53,9 +55,11 @@ public class MagicCreateActivity extends XmppActivity implements TextWatcher {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
List<String> knownHosts = null;
setContentView(R.layout.magic_create);
mFullJidDisplay = findViewById(R.id.full_jid);
mUsername = findViewById(R.id.username);
mUsername.setAdapter(new KnownHostsAdapter(this, R.layout.simple_list_item, knownHosts));
mRandom = new SecureRandom();
Button next = findViewById(R.id.create_account);
next.setOnClickListener(v -> {

View file

@ -5,6 +5,8 @@ import android.widget.ArrayAdapter;
import android.widget.Filter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@ -59,8 +61,137 @@ public class KnownHostsAdapter extends ArrayAdapter<String> {
};
public KnownHostsAdapter(Context context, int viewResourceId, List<String> mKnownHosts) {
super(context, viewResourceId, new ArrayList<String>());
domains = new ArrayList<>(mKnownHosts);
super(context, viewResourceId, new ArrayList<>());
if (mKnownHosts == null) {
domains = new ArrayList<>();
} else {
domains = new ArrayList<>(mKnownHosts);
}
HashSet<String> hashSet = new HashSet<>();
// get servers from https://conversations.im/compliance/
domains.add("pix-art.de");
domains.add("conversations.im");
domains.add("jabber.cat");
domains.add("jabjab.de");
domains.add("im.koderoot.net");
domains.add("riotcat.org");
domains.add("magicbroccoli.de");
domains.add("kode.im");
domains.add("jabber-germany.de");
domains.add("simplewire.de");
domains.add("suchat.org");
domains.add("jabber.at");
domains.add("trashserver.net");
domains.add("wiuwiu.de");
domains.add("5222.de");
domains.add("dismail.de");
domains.add("chat.sum7.eu");
domains.add("xmpp.zone");
domains.add("libranet.de");
domains.add("laborversuch.de");
domains.add("creep.im");
domains.add("jabber.systemausfall.org");
domains.add("jabber.hot-chilli.net");
domains.add("jabber.fr");
domains.add("jabber.de");
domains.add("draugr.de");
domains.add("elaon.de");
domains.add("high-way.me");
domains.add("jabber.rwth-aachen.de");
domains.add("deshalbfrei.org");
domains.add("mail.de");
domains.add("bommboo.de");
domains.add("jabber.systemli.org");
domains.add("jabb.im");
domains.add("mailbox.org");
domains.add("hot-chilli.net");
domains.add("jabberpl.org");
domains.add("chinwag.im");
domains.add("tchncs.de");
domains.add("zsim.de");
domains.add("patchcord.be");
domains.add("gajim.org");
domains.add("talker.to");
domains.add("pimux.de");
domains.add("jabber.home.vdlinde.org");
domains.add("im.apinc.org");
domains.add("chatme.im");
domains.add("fusselkater.org");
domains.add("datenknoten.me");
domains.add("fysh.in");
domains.add("jabber.chaos-darmstadt.de");
domains.add("yax.im");
domains.add("neko.im");
domains.add("jabberzac.org");
domains.add("xmpp.is");
domains.add("home.zom.im");
domains.add("jabber.ccc.de");
domains.add("jwchat.org");
domains.add("kdetalk.net");
domains.add("kde.org");
domains.add("riseup.net");
domains.add("ruhr-uni-bochum.de");
domains.add("njs.netlab.cz");
domains.add("schokokeks.org");
domains.add("jabber.cz");
domains.add("ubuntu-jabber.de");
domains.add("xabber.de");
domains.add("ubuntu-jabber.net");
domains.add("jabber.ru");
domains.add("darknet.nz");
domains.add("movim.eu");
domains.add("404.city");
domains.add("igniterealtime.org");
domains.add("kapsi.fi");
domains.add("jabbel.net");
domains.add("joindiaspora.com");
domains.add("alpha-labs.net");
domains.add("xmppnet.de");
domains.add("hoth.one");
domains.add("blah.im");
domains.add("xmpp.jp");
domains.add("jabber.uni-mainz.de");
domains.add("richim.org");
domains.add("tigase.im");
domains.add("jappix.com");
domains.add("member.fsf.org");
domains.add("jabber.rueckgr.at");
domains.add("swissjabber.ch");
domains.add("twattle.net");
domains.add("jabber.calyxinstitute.org");
domains.add("sapo.pt");
domains.add("uprod.biz");
domains.add("krautspace.de");
domains.add("kraut.space");
domains.add("null.pm");
domains.add("anonymitaet-im-inter.net");
domains.add("0nl1ne.at");
domains.add("linuxlovers.at");
domains.add("jabber.org");
domains.add("jabber.no-sense.net");
domains.add("swissjabber.eu");
domains.add("swissjabber.org");
domains.add("swissjabber.de");
domains.add("swissjabber.li");
domains.add("jabber.no");
domains.add("cypherpunks.it");
domains.add("adastra.re");
domains.add("jabber-br.org");
domains.add("einfachjabber.de");
domains.add("jabber.smash-net.org");
domains.add("freifunk.im");
domains.add("openmailbox.org");
domains.add("jabber.otr.im");
domains.add("evil.im");
domains.add("xmpp.slack.com");
domains.add("chat.hipchat.com");
domains.add("googlemail.com");
hashSet.addAll(domains);
domains.clear();
domains.addAll(hashSet);
Collections.sort(domains, String::compareToIgnoreCase);
}
@Override

View file

@ -43,7 +43,7 @@
android:textColor="@color/black87"
android:textSize="?attr/TextSizeBody" />
<EditText
<AutoCompleteTextView
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"