1package eu.siacs.conversations.services;
2
3
4import android.util.Log;
5
6import java.util.Collections;
7import java.util.Set;
8import java.util.WeakHashMap;
9
10import eu.siacs.conversations.Config;
11import eu.siacs.conversations.entities.Account;
12import eu.siacs.conversations.utils.PhoneNumberUtilWrapper;
13import io.michaelrocks.libphonenumber.android.Phonenumber;
14import rocks.xmpp.addr.Jid;
15
16public class QuickConversationsService {
17
18 private final XmppConnectionService service;
19
20 private final Set<OnVerificationRequested> mOnVerificationRequested = Collections.newSetFromMap(new WeakHashMap<>());
21 private final Set<OnVerified> mOnVerified = Collections.newSetFromMap(new WeakHashMap<>());
22
23 QuickConversationsService(XmppConnectionService xmppConnectionService) {
24 this.service = xmppConnectionService;
25 }
26
27 public void addOnVerificationRequestedListener(OnVerificationRequested onVerificationRequested) {
28 synchronized (mOnVerificationRequested) {
29 mOnVerificationRequested.add(onVerificationRequested);
30 }
31 }
32
33 public void removeOnVerificationRequestedListener(OnVerificationRequested onVerificationRequested) {
34 synchronized (mOnVerificationRequested) {
35 mOnVerificationRequested.remove(onVerificationRequested);
36 }
37 }
38
39 public void requestVerification(Phonenumber.PhoneNumber phoneNumber) {
40 String local = PhoneNumberUtilWrapper.normalize(service, phoneNumber);
41 Log.d(Config.LOGTAG,"requesting verification for "+PhoneNumberUtilWrapper.normalize(service,phoneNumber));
42 Account account = new Account(Jid.of(local,"quick.conversations.im",null),"foo");
43 service.createAccount(account);
44 synchronized (mOnVerificationRequested) {
45 for(OnVerificationRequested onVerificationRequested : mOnVerificationRequested) {
46 onVerificationRequested.onVerificationRequested();
47 }
48 }
49 }
50
51 public interface OnVerificationRequested {
52 void onVerificationRequestFailed(int code);
53 void onVerificationRequested();
54 }
55
56 public interface OnVerified {
57 void onVerificationFailed();
58 void onVerificationSucceeded();
59 }
60}