use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.
the class MembersAdapter method onMemberClick.
public void onMemberClick(GroupVM groupVM, UserVM userVM, boolean isAdministrator, boolean isInvitedByMe, BaseActivity activity) {
AlertListBuilder alertListBuilder = new AlertListBuilder();
final ArrayList<UserPhone> phones = userVM.getPhones().get();
alertListBuilder.addItem(activity.getString(R.string.group_context_message).replace("{0}", userVM.getName().get()), () -> activity.startActivity(Intents.openPrivateDialog(userVM.getId(), true, activity)));
if (phones.size() != 0) {
alertListBuilder.addItem(activity.getString(R.string.group_context_call).replace("{0}", userVM.getName().get()), () -> {
if (phones.size() == 1) {
activity.startActivity(Intents.call(phones.get(0).getPhone()));
} else {
CharSequence[] sequences = new CharSequence[phones.size()];
for (int i = 0; i < sequences.length; i++) {
try {
Phonenumber.PhoneNumber number = PhoneNumberUtil.getInstance().parse("+" + phones.get(i).getPhone(), "us");
sequences[i] = phones.get(i).getTitle() + ": " + PhoneNumberUtil.getInstance().format(number, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
} catch (NumberParseException e) {
e.printStackTrace();
sequences[i] = phones.get(i).getTitle() + ": +" + phones.get(i).getPhone();
}
}
new AlertDialog.Builder(activity).setItems(sequences, (dialog1, which1) -> {
activity.startActivity(Intents.call(phones.get(which1).getPhone()));
}).show().setCanceledOnTouchOutside(true);
}
});
}
alertListBuilder.addItem(activity.getString(R.string.group_context_view).replace("{0}", userVM.getName().get()), () -> ActorSDKLauncher.startProfileActivity(activity, userVM.getId()));
if (groupVM.getIsCanKickAnyone().get() || (groupVM.getIsCanKickInvited().get() && isInvitedByMe)) {
alertListBuilder.addItem(activity.getString(R.string.group_context_remove).replace("{0}", userVM.getName().get()), () -> {
new AlertDialog.Builder(activity).setMessage(activity.getString(R.string.alert_group_remove_text).replace("{0}", userVM.getName().get())).setPositiveButton(R.string.alert_group_remove_yes, (dialog2, which1) -> {
activity.execute(messenger().kickMember(groupVM.getId(), userVM.getId()), R.string.progress_common, new CommandCallback<Void>() {
@Override
public void onResult(Void res1) {
}
@Override
public void onError(Exception e) {
Toast.makeText(activity, R.string.toast_unable_kick, Toast.LENGTH_SHORT).show();
}
});
}).setNegativeButton(R.string.dialog_cancel, null).show().setCanceledOnTouchOutside(true);
});
}
if (groupVM.getIsCanEditAdmins().get() && !userVM.isBot()) {
alertListBuilder.addItem(!isAdministrator ? activity.getResources().getString(R.string.group_make_admin) : activity.getResources().getString(R.string.group_revoke_admin), () -> {
if (!isAdministrator) {
messenger().makeAdmin(groupVM.getId(), userVM.getId()).start(new CommandCallback<Void>() {
@Override
public void onResult(Void res) {
}
@Override
public void onError(Exception e) {
}
});
} else {
messenger().revokeAdmin(groupVM.getId(), userVM.getId()).start(new CommandCallback<Void>() {
@Override
public void onResult(Void res) {
}
@Override
public void onError(Exception e) {
}
});
}
});
}
alertListBuilder.build(activity).show().setCanceledOnTouchOutside(true);
}
use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.
the class EditNameFragment method onCreateView.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
type = getArguments().getInt("EXTRA_TYPE");
id = getArguments().getInt("EXTRA_ID");
helper = new KeyboardHelper(getActivity());
View res = inflater.inflate(R.layout.fragment_edit_name, container, false);
res.setBackgroundColor(ActorSDK.sharedActor().style.getMainBackgroundColor());
nameEdit = (EditText) res.findViewById(R.id.nameEdit);
nameEdit.setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
hintTv = (TextView) res.findViewById(R.id.hint);
hintTv.setTextColor(ActorSDK.sharedActor().style.getTextHintColor());
if (type == EditNameActivity.TYPE_ME) {
UserVM userModel = users().get(myUid());
nameEdit.setText(userModel.getName().get());
} else if (type == EditNameActivity.TYPE_NICK) {
UserVM userModel = users().get(myUid());
nameEdit.setText(userModel.getNick().get());
nameEdit.setHint(getString(R.string.nickname_edittext_hint));
hintTv.setText(getString(R.string.nickname_hint).replace("{appName}", ActorSDK.sharedActor().getAppName()));
} else if (type == EditNameActivity.TYPE_USER) {
UserVM userModel = users().get(id);
nameEdit.setText(userModel.getName().get());
} else if (type == EditNameActivity.TYPE_GROUP) {
GroupVM group = groups().get(id);
nameEdit.setText(group.getName().get());
} else if (type == EditNameActivity.TYPE_GROUP_THEME) {
GroupVM group = groups().get(id);
nameEdit.setText(group.getTheme().get());
}
res.findViewById(R.id.dividerTop).setBackgroundColor(ActorSDK.sharedActor().style.getDividerColor());
res.findViewById(R.id.dividerBot).setBackgroundColor(ActorSDK.sharedActor().style.getDividerColor());
res.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().finish();
}
});
((TextView) res.findViewById(R.id.cancel)).setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
res.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEdit.getText().toString().trim();
if (name.length() == 0) {
Toast.makeText(getActivity(), R.string.toast_empty_name, Toast.LENGTH_SHORT).show();
return;
}
if (type == EditNameActivity.TYPE_ME) {
execute(messenger().editMyName(name), R.string.edit_name_process, new CommandCallback<Boolean>() {
@Override
public void onResult(Boolean res) {
getActivity().finish();
}
@Override
public void onError(Exception e) {
Toast.makeText(getActivity(), R.string.toast_unable_change, Toast.LENGTH_SHORT).show();
}
});
} else if (type == EditNameActivity.TYPE_NICK) {
execute(messenger().editMyNick(name), R.string.edit_nick_process, new CommandCallback<Boolean>() {
@Override
public void onResult(Boolean res) {
getActivity().finish();
}
@Override
public void onError(Exception e) {
Toast.makeText(getActivity(), R.string.toast_unable_change_nick, Toast.LENGTH_SHORT).show();
}
});
} else if (type == EditNameActivity.TYPE_USER) {
execute(messenger().editName(id, name), R.string.edit_name_process, new CommandCallback<Boolean>() {
@Override
public void onResult(Boolean res) {
getActivity().finish();
}
@Override
public void onError(Exception e) {
Toast.makeText(getActivity(), R.string.toast_unable_change, Toast.LENGTH_SHORT).show();
}
});
} else if (type == EditNameActivity.TYPE_GROUP_THEME) {
execute(messenger().editGroupTheme(id, name), R.string.edit_theme_process, new CommandCallback<Void>() {
@Override
public void onResult(Void res) {
getActivity().finish();
}
@Override
public void onError(Exception e) {
Toast.makeText(getActivity(), R.string.toast_unable_change, Toast.LENGTH_SHORT).show();
}
});
}
}
});
((TextView) res.findViewById(R.id.ok)).setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
return res;
}
use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.
the class BlockedListFragment method onCreateView.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View res = inflater.inflate(R.layout.fragment_recycler_list, container, false);
list = (RecyclerView) res.findViewById(R.id.listView);
list.setLayoutManager(new LinearLayoutManager(getActivity()));
emptyView = (TextView) res.findViewById(R.id.emptyView);
emptyView.setText(R.string.blocked_loading);
res.setBackgroundColor(ActorSDK.sharedActor().style.getBackyardBackgroundColor());
emptyView.setTextColor(ActorSDK.sharedActor().style.getTextSecondaryColor());
adapter = new BlockedAdapter(new ArrayList<User>(), new BlockedAdapter.OnBlockedClickListener() {
@Override
public void onClick(UserVM u) {
execute(messenger().unblockUser(u.getId()).then(new Consumer<Void>() {
@Override
public void apply(Void aVoid) {
checkBlockedList();
}
}));
}
});
list.setAdapter(adapter);
checkBlockedList();
return res;
}
use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.
the class ArchivedDialogsActor method onLoadMore.
private void onLoadMore(boolean init, RpcCallback<ResponseLoadArchived> callback) {
if (init || isLoading) {
//
if (lastCallback != null) {
lastCallback.onError(new RpcException(TAG, 0, "callback replaced", false, null));
}
}
lastCallback = callback;
if (isLoading && !init) {
return;
}
if (init) {
if (lastRequest != -1) {
cancelRequest(lastRequest);
}
nextOffset = null;
}
isLoading = true;
Log.d(TAG, "Loading archived dialogs");
api(new RequestLoadArchived(nextOffset, LIMIT, ApiSupportConfiguration.OPTIMIZATIONS)).chain(r -> updates().applyRelatedData(r.getUsers(), r.getGroups())).chain(r -> updates().loadRequiredPeers(r.getUserPeers(), r.getGroupPeers())).then(r -> onLoadedMore(r)).failure(e -> lastCallback.onError((RpcException) e));
}
use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.
the class RouterActor method onPeersChanged.
//
// Peer Changed
//
private Promise<Void> onPeersChanged(List<User> users, List<Group> groups) {
Promise<Void> res = Promise.success(null);
boolean isActiveNeedUpdate = false;
for (User u : users) {
if (!isActiveNeedUpdate) {
for (ActiveDialogGroup g : activeDialogStorage.getGroups()) {
if (g.getPeers().contains(u.peer())) {
isActiveNeedUpdate = true;
break;
}
}
}
res = res.chain(v -> getDialogsRouter().onUserChanged(u));
}
for (Group group : groups) {
if (!isActiveNeedUpdate) {
for (ActiveDialogGroup g : activeDialogStorage.getGroups()) {
if (g.getPeers().contains(group.peer())) {
isActiveNeedUpdate = true;
break;
}
}
}
res = res.chain(v -> getDialogsRouter().onGroupChanged(group));
}
if (isActiveNeedUpdate) {
notifyActiveDialogsVM();
}
return res;
}
Aggregations