/* * Copyright (C) 2015 Open Whisper Systems * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program 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 . */ package org.thoughtcrime.securesms; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; import android.widget.Toast; import org.thoughtcrime.securesms.conversation.ConversationActivity; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.recipients.Recipient; import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation; import network.loki.messenger.R; /** * Activity container for starting a new conversation. * * @author Moxie Marlinspike * */ public class NewConversationActivity extends ContactSelectionActivity { @SuppressWarnings("unused") private static final String TAG = NewConversationActivity.class.getSimpleName(); @Override public void onCreate(Bundle bundle, boolean ready) { super.onCreate(bundle, ready); assert getSupportActionBar() != null; getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override public void onContactSelected(String number) { boolean isValid = PublicKeyValidation.isValid(number); if (!isValid) { Toast.makeText(this, R.string.fragment_new_conversation_invalid_public_key_message, Toast.LENGTH_SHORT).show(); return; } Recipient recipient = Recipient.from(this, Address.fromSerialized(number), true); Intent intent = new Intent(this, ConversationActivity.class); intent.putExtra(ConversationActivity.ADDRESS_EXTRA, recipient.getAddress()); intent.putExtra(ConversationActivity.TEXT_EXTRA, getIntent().getStringExtra(ConversationActivity.TEXT_EXTRA)); intent.setDataAndType(getIntent().getData(), getIntent().getType()); long existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(recipient); intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread); intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT); startActivity(intent); finish(); } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case android.R.id.home: super.onBackPressed(); return true; case R.id.menu_refresh: handleManualRefresh(); return true; case R.id.menu_new_group: handleCreateGroup(); return true; case R.id.menu_invite: handleInvite(); return true; } return false; } private void handleManualRefresh() { contactsFragment.setRefreshing(true); onRefresh(); } private void handleCreateGroup() { startActivity(new Intent(this, GroupCreateActivity.class)); } private void handleInvite() { startActivity(new Intent(this, InviteActivity.class)); } // @Override // protected boolean onPrepareOptionsPanel(View view, Menu menu) { // MenuInflater inflater = this.getMenuInflater(); // menu.clear(); // inflater.inflate(R.menu.new_conversation_activity, menu); // super.onPrepareOptionsMenu(menu); // return true; // } }