package clc; import im.actor.core.*; import im.actor.core.api.rpc.RequestEditAbout; import im.actor.core.api.rpc.ResponseSeq; import im.actor.core.api.updates.UpdateUserAboutChanged; import im.actor.core.entity.*; import im.actor.core.entity.content.TextContent; import im.actor.core.network.RpcCallback; import im.actor.core.network.RpcException; import im.actor.core.providers.NotificationProvider; import im.actor.core.providers.PhoneBookProvider; import im.actor.core.viewmodel.Command; import im.actor.core.viewmodel.CommandCallback; import im.actor.core.viewmodel.UserVM; import im.actor.runtime.clc.ClcJavaPreferenceStorage; import im.actor.runtime.generic.mvvm.AndroidListUpdate; import im.actor.runtime.generic.mvvm.BindedDisplayList; import im.actor.runtime.generic.mvvm.DisplayList; import im.actor.sdk.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.*; import java.util.prefs.BackingStoreException; public class ClcApplication { private static final Logger logger = LoggerFactory.getLogger(ClcApplication.class); static ClcMessenger messenger; static int rate = 1000; static int myNumber = 1; private static int counter = 0; private static ArrayList<Long[]> states = new ArrayList<Long[]>(); private static Timer senderTimer; private static int messagesCount = 5; private static int randomSeed; public static void sendMessage(String number, final String message) { messenger.findUsers(number).start(new CommandCallback<UserVM[]>() { @Override public void onResult(UserVM[] users) { if (users.length == 0) return; final UserVM user = users[0]; final Peer peer = Peer.fromUniqueId(user.getId()); if (!user.isContact().get()) { Command<Boolean> addContact = messenger.addContact(user.getId()); assert addContact != null; addContact.start(new CommandCallback<Boolean>() { @Override public void onResult(Boolean res) { if (res) { messenger.sendMessage(peer, message); } } @Override public void onError(Exception e) { } }); } else { messenger.sendMessage(peer, message); } } @Override public void onError(Exception e) { } }); } public static void signUp(final String name, Sex sex, String avatarPath) { messenger.signUp(name, sex, avatarPath).start(new CommandCallback<AuthState>() { @Override public void onResult(AuthState res) { if (res == AuthState.LOGGED_IN){ logger.info("LOGGED_IN"); // sendMessage("+989150000" + (myNumber + 20), "seed: " + randomSeed + "," + myNumber); }else if(res == AuthState.SIGN_UP){ logger.info("SIGN_UP"); } } @Override public void onError(Exception e) { } }); } public static void sendCode(String code) { try { messenger.validateCode(code).start(new CommandCallback<AuthState>() { @Override public void onResult(AuthState res) { randomSeed = new Random().nextInt(); if (res == AuthState.SIGN_UP) { logger.info("SIGN_UP"); signUp("75550000" + (myNumber), Sex.MALE, null); } else if(res == AuthState.LOGGED_IN){ logger.info("LOGGED_IN"); } } @Override public void onError(Exception e) { } }); } catch (Exception e) { logger.error(e.getMessage(),e); } } public static void requestSms(int phone) { long res = Long.parseLong("75550000" + phone); messenger.requestStartPhoneAuth(res).start(new CommandCallback<AuthState>() { @Override public void onResult(AuthState res) { logger.info(res.toString()); sendCode("0000"); } @Override public void onError(Exception e) { logger.error(e.getMessage(),e); } }); } public static void main(String[] args) { ConfigurationBuilder builder = new ConfigurationBuilder(); if (args.length > 0) builder.addEndpoint(args[0]); else builder.addEndpoint("tcp://localhost:9070"); builder.setPhoneBookProvider(new PhoneBookProvider() { @Override public void loadPhoneBook(Callback callback) { callback.onLoaded(new ArrayList<PhoneBookContact>()); } }); builder.setNotificationProvider(new NotificationProvider() { @Override public void onMessageArriveInApp(Messenger messenger) { } @Override public void onNotification(Messenger messenger, List<Notification> topNotifications, int messagesCount, int conversationsCount) { } @Override public void onUpdateNotification(Messenger messenger, List<Notification> topNotifications, int messagesCount, int conversationsCount) { } @Override public void hideAllNotifications() { } }); builder.setDeviceCategory(DeviceCategory.DESKTOP); builder.setPlatformType(PlatformType.GENERIC); builder.setApiConfiguration(new ApiConfiguration( "cli", 1, "4295f9666fad3faf2d04277fe7a0c40ff39a85d313de5348ad8ffa650ad71855", "najva00000000000000000123-" + myNumber, "najva00000000000000000000-v1-" + myNumber)); messenger = new ClcMessenger(builder.build(),Integer.toString(myNumber)); // messenger.resetAuth(); requestSms(myNumber); } }