WelcomeActivity.java

  1package eu.siacs.conversations.ui;
  2
  3import android.content.Intent;
  4import android.content.pm.ActivityInfo;
  5import android.os.Bundle;
  6import android.support.v7.app.ActionBar;
  7import android.support.v7.app.AppCompatActivity;
  8import android.widget.Button;
  9
 10import java.util.List;
 11
 12import eu.siacs.conversations.R;
 13import eu.siacs.conversations.entities.Account;
 14import eu.siacs.conversations.utils.XmppUri;
 15
 16public class WelcomeActivity extends XmppActivity {
 17
 18	public static final String EXTRA_INVITE_URI = "eu.siacs.conversations.invite_uri";
 19
 20	@Override
 21	protected void refreshUiReal() {
 22
 23	}
 24
 25	@Override
 26	void onBackendConnected() {
 27
 28	}
 29
 30	@Override
 31	public void onStart() {
 32		super.onStart();
 33		final int theme = findTheme();
 34		if (this.mTheme != theme) {
 35			recreate();
 36		}
 37	}
 38
 39	@Override
 40	public void onNewIntent(Intent intent) {
 41		if (intent != null) {
 42			setIntent(intent);
 43		}
 44	}
 45
 46	@Override
 47	protected void onCreate(final Bundle savedInstanceState) {
 48		if (getResources().getBoolean(R.bool.portrait_only)) {
 49			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 50		}
 51		super.onCreate(savedInstanceState);
 52		setContentView(R.layout.welcome);
 53		setSupportActionBar(findViewById(R.id.toolbar));
 54		final ActionBar ab = getSupportActionBar();
 55		if (ab != null) {
 56			ab.setDisplayShowHomeEnabled(false);
 57			ab.setDisplayHomeAsUpEnabled(false);
 58		}
 59		final Button createAccount = findViewById(R.id.create_account);
 60		createAccount.setOnClickListener(v -> {
 61			final Intent intent = new Intent(WelcomeActivity.this, MagicCreateActivity.class);
 62			intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
 63			addInviteUri(intent);
 64			startActivity(intent);
 65		});
 66		final Button useOwnProvider = findViewById(R.id.use_own_provider);
 67		useOwnProvider.setOnClickListener(v -> {
 68			List<Account> accounts = xmppConnectionService.getAccounts();
 69			Intent intent = new Intent(WelcomeActivity.this, EditAccountActivity.class);
 70			if (accounts.size() == 1) {
 71				intent.putExtra("jid", accounts.get(0).getJid().asBareJid().toString());
 72				intent.putExtra("init", true);
 73			} else if (accounts.size() >= 1) {
 74				intent = new Intent(WelcomeActivity.this, ManageAccountActivity.class);
 75			}
 76			addInviteUri(intent);
 77			startActivity(intent);
 78		});
 79
 80	}
 81
 82	public void addInviteUri(Intent intent) {
 83		addInviteUri(intent, getIntent());
 84	}
 85
 86	public static void addInviteUri(Intent intent, XmppUri uri) {
 87		if (uri.isJidValid()) {
 88			intent.putExtra(EXTRA_INVITE_URI, uri.toString());
 89		}
 90	}
 91
 92	public static void addInviteUri(Intent to, Intent from) {
 93		if (from != null && from.hasExtra(EXTRA_INVITE_URI)) {
 94			to.putExtra(EXTRA_INVITE_URI, from.getStringExtra(EXTRA_INVITE_URI));
 95		}
 96	}
 97
 98	public static void launch(AppCompatActivity activity) {
 99		Intent intent = new Intent(activity, WelcomeActivity.class);
100		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
101		activity.startActivity(intent);
102		activity.overridePendingTransition(0,0);
103	}
104
105}