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}