/** * Copyright (c) 2013, Redsolution LTD. All rights reserved. * * This file is part of Xabber project; you can redistribute it and/or * modify it under the terms of the GNU General Public License, Version 3. * * Xabber is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License, * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.xabber.android.ui.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import com.xabber.android.R; import com.xabber.android.data.entity.AccountJid; import com.xabber.android.data.entity.UserJid; import com.xabber.android.data.intent.AccountIntentBuilder; import com.xabber.android.data.intent.EntityIntentBuilder; import com.xabber.android.ui.color.BarPainter; import com.xabber.android.ui.fragment.ConferenceAddFragment; import org.jxmpp.jid.EntityBareJid; public class ConferenceAddActivity extends ManagedActivity implements Toolbar.OnMenuItemClickListener { private static final String SAVED_ACCOUNT = "com.xabber.android.ui.activity.ConferenceAdd.SAVED_ACCOUNT"; private static final String SAVED_ROOM = "com.xabber.android.ui.activity.ConferenceAdd.SAVED_ROOM"; private AccountJid account; private EntityBareJid room; public static Intent createIntent(Context context, AccountJid account, UserJid room) { return new EntityIntentBuilder(context, ConferenceAddActivity.class).setAccount(account).setUser(room).build(); } private static AccountJid getAccount(Intent intent) { return AccountIntentBuilder.getAccount(intent); } private static UserJid getUser(Intent intent) { return EntityIntentBuilder.getUser(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (isFinishing()) { return; } setContentView(R.layout.activity_with_toolbar_and_container); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_default); toolbar.setNavigationIcon(R.drawable.ic_clear_white_24dp); toolbar.inflateMenu(R.menu.toolbar_add_conference); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); toolbar.setOnMenuItemClickListener(this); BarPainter barPainter = new BarPainter(this, toolbar); barPainter.setDefaultColor(); Intent intent = getIntent(); if (savedInstanceState != null) { account = savedInstanceState.getParcelable(SAVED_ACCOUNT); room = (EntityBareJid) savedInstanceState.getSerializable(SAVED_ROOM); } else { account = getAccount(intent); room = getUser(intent).getJid().asEntityBareJidIfPossible(); } barPainter.updateWithAccountName(account); if (savedInstanceState == null) { getFragmentManager() .beginTransaction() .add(R.id.fragment_container, ConferenceAddFragment.newInstance(account, room)) .commit(); } getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putParcelable(SAVED_ACCOUNT, account); outState.putSerializable(SAVED_ROOM, room); } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_add_conference: ((ConferenceAddFragment)getFragmentManager().findFragmentById(R.id.fragment_container)).addConference(); return true; default: return false; } } }