package im.actor.sdk.controllers.contacts;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import im.actor.core.viewmodel.CommandCallback;
import im.actor.core.viewmodel.UserVM;
import im.actor.sdk.ActorSDK;
import im.actor.sdk.R;
import im.actor.sdk.controllers.Intents;
import im.actor.sdk.controllers.activity.BaseFragmentActivity;
import im.actor.sdk.util.KeyboardHelper;
import static im.actor.sdk.util.ActorSDKMessenger.messenger;
public class AddContactActivity extends BaseFragmentActivity {
private KeyboardHelper helper;
private EditText searchQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setTitle(R.string.add_contact_title);
helper = new KeyboardHelper(this);
setContentView(R.layout.activity_add);
findViewById(R.id.container).setBackgroundColor(ActorSDK.sharedActor().style.getMainBackgroundColor());
searchQuery = (EditText) findViewById(R.id.searchField);
searchQuery.setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
searchQuery.setHintTextColor(ActorSDK.sharedActor().style.getTextHintColor());
findViewById(R.id.dividerTop).setBackgroundColor(ActorSDK.sharedActor().style.getDividerColor());
findViewById(R.id.dividerBot).setBackgroundColor(ActorSDK.sharedActor().style.getDividerColor());
((TextView) findViewById(R.id.cancel)).setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
((TextView) findViewById(R.id.ok)).setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String query = searchQuery.getText().toString();
if (query.length() == 0) {
return;
}
execute(messenger().findUsers(query), R.string.progress_common, new CommandCallback<UserVM[]>() {
@Override
public void onResult(final UserVM[] res) {
if (res.length == 0) {
new AlertDialog.Builder(AddContactActivity.this)
.setMessage(getString(R.string.alert_invite_text).replace("{0}", query).replace("{appName}", ActorSDK.sharedActor().getAppName()))
.setPositiveButton(R.string.alert_invite_yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String inviteMessage = getString(R.string.invite_message).replace("{inviteUrl}", ActorSDK.sharedActor().getInviteUrl()).replace("{appName}", ActorSDK.sharedActor().getAppName());
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:" + query));
sendIntent.putExtra("sms_body", inviteMessage);
startActivity(sendIntent);
finish();
}
})
.setNegativeButton(R.string.dialog_cancel, null)
.show()
.setCanceledOnTouchOutside(true);
} else {
execute(messenger().addContact(res[0].getId()), R.string.progress_common, new CommandCallback<Boolean>() {
@Override
public void onResult(Boolean res2) {
startActivity(Intents.openPrivateDialog(res[0].getId(),
true,
AddContactActivity.this));
finish();
}
@Override
public void onError(Exception e) {
startActivity(Intents.openPrivateDialog(res[0].getId(),
true,
AddContactActivity.this));
finish();
}
});
}
}
@Override
public void onError(Exception e) {
// Never happens
}
});
}
});
}
@Override
protected void onResume() {
super.onResume();
helper.setImeVisibility(searchQuery, true);
}
@Override
protected void onPause() {
super.onPause();
helper.setImeVisibility(searchQuery, false);
}
}