package com.xabber.android.ui.dialog; import android.app.DialogFragment; import com.xabber.android.R; import com.xabber.android.data.Application; import com.xabber.android.data.NetworkException; import com.xabber.android.data.entity.AccountJid; import com.xabber.android.data.entity.UserJid; import com.xabber.android.data.roster.PresenceManager; import com.xabber.android.ui.activity.ContactAddActivity; public class ContactSubscriptionDialog extends BaseContactDialog { public static DialogFragment newInstance(AccountJid account, UserJid contact) { DialogFragment fragment = new ContactSubscriptionDialog(); setArguments(account, contact, fragment); return fragment; } @Override protected int getDialogTitleTextResource() { return R.string.subscription_request_message; } @Override protected String getMessage() { return getString(R.string.contact_subscribe_confirm, getAccount().getFullJid().asBareJid().toString()); } @Override protected int getNegativeButtonTextResource() { return R.string.decline_contact; } @Override protected int getPositiveButtonTextResource() { return R.string.accept_contact; } @Override protected Integer getNeutralButtonTextResourceOrNull() { return null; } @Override protected void onPositiveButtonClick() { onAccept(); } @Override protected void onNegativeButtonClick() { onDecline(); } @Override protected void onNeutralButtonClick() { } public void onAccept() { try { PresenceManager.getInstance().acceptSubscription(getAccount(), getContact()); } catch (NetworkException e) { Application.getInstance().onError(e); } startActivity(ContactAddActivity.createIntent(getActivity(), getAccount(), getContact())); } public void onDecline() { try { PresenceManager.getInstance().discardSubscription(getAccount(), getContact()); } catch (NetworkException e) { Application.getInstance().onError(e); } } }