QuickConversationsService.java

 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}