Commit 29e2702d authored by Grigory Fedorov's avatar Grigory Fedorov

Merge branch 'release/1.0.42'

parents faea0b38 de52075d
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
android { android {
compileSdkVersion 22 compileSdkVersion 23
buildToolsVersion "22.0.1" buildToolsVersion "23"
defaultConfig { defaultConfig {
minSdkVersion 14 minSdkVersion 14
targetSdkVersion 22 targetSdkVersion 23
versionCode 212 versionCode 215
versionName '1.0.39' versionName '1.0.42'
} }
compileOptions { compileOptions {
...@@ -55,9 +55,9 @@ ext { ...@@ -55,9 +55,9 @@ ext {
} }
dependencies { dependencies {
compile 'com.android.support:design:22.2.1' compile 'com.android.support:design:23.0.0'
compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:appcompat-v7:23.0'
compile 'com.android.support:support-v13:22.2.1' compile 'com.android.support:support-v13:23.0.0'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.0' compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
compile 'de.hdodenhof:circleimageview:1.2.2' compile 'de.hdodenhof:circleimageview:1.2.2'
compile 'com.melnykov:floatingactionbutton:1.2.0' compile 'com.melnykov:floatingactionbutton:1.2.0'
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
<uses-feature <uses-feature
android:name="android.hardware.location.gps" android:name="android.hardware.location.gps"
android:required="false" /> android:required="false" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.CAMERA"/>
<application <application
android:name=".data.Application" android:name=".data.Application"
android:allowBackup="true" android:allowBackup="true"
......
/**
* Copyright (c) 2013, Redsolution LTD. All rights reserved.
*
* This file is part of Xabber project; you can redistribute it and/or
* modify it under the terms of the GNU General Public License, Version 3.
*
* Xabber is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License,
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package com.xabber.android.data.account;
import android.net.Uri;
import com.xabber.android.R;
import com.xabber.android.data.Application;
import com.xabber.android.data.LogManager;
import com.xabber.android.data.NetworkException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
class WLMManager implements OAuthProvider {
private static final String WLM_CLIENT_SECRET = "XEazfSKu0Iu2pt6Z64Lqm-1cRxtEYgS0";
private static final String WLM_CLIENT_ID = "00000000440923FF";
private static final String WLM_SCOPE = "wl.messenger wl.offline_access";
private static final String WLM_SCHEME = "https";
private static final String WLM_AUTHORITY = "oauth.live.com";
private static final String WLM_REDIRECT_PATH = "/desktop";
private static final String WLM_REDIRECT_URL = new Uri.Builder()
.scheme(WLM_SCHEME).authority(WLM_AUTHORITY)
.path(WLM_REDIRECT_PATH).build().toString();
private final static WLMManager instance;
static {
instance = new WLMManager();
Application.getInstance().addManager(instance);
}
private WLMManager() {
}
public static WLMManager getInstance() {
return instance;
}
/**
* @param protocol
* @param grantType
* @param value
* @return Access and refresh tokens or <code>null</code> if auth failed.
* @throws NetworkException
*/
private OAuthResult accessTokenOperation(GrantType grantType, String value)
throws NetworkException {
HttpPost httpPost = new HttpPost(new Uri.Builder().scheme(WLM_SCHEME)
.authority(WLM_AUTHORITY).path("token").build().toString());
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs
.add(new BasicNameValuePair("grant_type", grantType.name));
nameValuePairs.add(new BasicNameValuePair(grantType.value, value));
nameValuePairs.add(new BasicNameValuePair("redirect_uri",
WLM_REDIRECT_URL));
nameValuePairs.add(new BasicNameValuePair("client_id", WLM_CLIENT_ID));
nameValuePairs.add(new BasicNameValuePair("client_secret",
WLM_CLIENT_SECRET));
UrlEncodedFormEntity encodedFormEntity;
try {
encodedFormEntity = new UrlEncodedFormEntity(nameValuePairs,
HTTP.UTF_8);
} catch (UnsupportedEncodingException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
String content;
try {
content = EntityUtils.toString(encodedFormEntity);
} catch (ParseException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
} catch (IOException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
LogManager.i(this, httpPost.getURI().toString() + "\n" + content);
httpPost.setEntity(encodedFormEntity);
HttpClient httpClient = new DefaultHttpClient();
HttpResponse httpResponse;
try {
httpResponse = httpClient.execute(httpPost);
} catch (ClientProtocolException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
} catch (IOException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
HttpEntity entity = httpResponse.getEntity();
try {
content = EntityUtils.toString(entity);
} catch (ParseException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
} catch (IOException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
} finally {
try {
entity.consumeContent();
} catch (IOException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
}
LogManager.i(this, content);
long expiresIn;
String accessToken;
String refreshToken;
try {
JSONObject jsonObject = (JSONObject) new JSONTokener(content)
.nextValue();
if (jsonObject.has("error"))
return null;
try {
expiresIn = Long.valueOf(jsonObject.getString("expires_in")) * 1000;
} catch (NumberFormatException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
accessToken = jsonObject.getString("access_token");
refreshToken = jsonObject.getString("refresh_token");
} catch (JSONException e) {
throw new NetworkException(R.string.CONNECTION_FAILED, e);
}
return new OAuthResult(accessToken, refreshToken, expiresIn);
}
@Override
public AccountProtocol getAccountProtocol() {
return AccountProtocol.wlm;
}
@Override
public String requestRefreshToken(String code) throws NetworkException {
OAuthResult result = accessTokenOperation(GrantType.authorizationCode,
code);
if (result == null)
return null;
else
return result.getRefreshToken();
}
@Override
public OAuthResult requestAccessToken(String refreshToken)
throws NetworkException {
return accessTokenOperation(GrantType.refreshToken, refreshToken);
}
@Override
public String getUrl() {
return new Uri.Builder().scheme(WLM_SCHEME).authority(WLM_AUTHORITY)
.path("authorize")
.appendQueryParameter("response_type", "code")
.appendQueryParameter("client_id", WLM_CLIENT_ID)
.appendQueryParameter("redirect_uri", WLM_REDIRECT_URL)
.appendQueryParameter("scope", WLM_SCOPE)
.appendQueryParameter("display", "touch").build().toString();
}
@Override
public boolean isValidUri(Uri uri) {
return WLM_SCHEME.equals(uri.getScheme())
&& WLM_AUTHORITY.equals(uri.getAuthority())
&& WLM_REDIRECT_PATH.equals(uri.getPath());
}
private enum GrantType {
authorizationCode("authorization_code", "code"),
refreshToken("refresh_token", "refresh_token");
public final String name;
public final String value;
GrantType(String name, String value) {
this.name = name;
this.value = value;
}
}
}
...@@ -209,14 +209,6 @@ public class ConnectionManager implements OnInitializedListener, OnCloseListener ...@@ -209,14 +209,6 @@ public class ConnectionManager implements OnInitializedListener, OnCloseListener
for (OnConnectedListener listener : Application.getInstance().getManagers(OnConnectedListener.class)) { for (OnConnectedListener listener : Application.getInstance().getManagers(OnConnectedListener.class)) {
listener.onConnected(connectionThread.getConnectionItem()); listener.onConnected(connectionThread.getConnectionItem());
} }
org.jivesoftware.smackx.ping.PingManager.getInstanceFor(connectionThread.getXMPPConnection()).registerPingFailedListener(new PingFailedListener() {
@Override
public void pingFailed() {
LogManager.i(this, "pingFailed for " + connectionThread.getConnectionItem().getRealJid());
connectionThread.getConnectionItem().forceReconnect();
}
});
} }
public void onAuthorized(ConnectionThread connectionThread) { public void onAuthorized(ConnectionThread connectionThread) {
......
...@@ -125,7 +125,7 @@ public class MUCManager implements OnLoadListener, OnPacketListener { ...@@ -125,7 +125,7 @@ public class MUCManager implements OnLoadListener, OnPacketListener {
/** /**
* @return <code>null</code> if does not exists. * @return <code>null</code> if does not exists.
*/ */
private RoomChat getRoomChat(String account, String room) { public RoomChat getRoomChat(String account, String room) {
AbstractChat chat = MessageManager.getInstance().getChat(account, room); AbstractChat chat = MessageManager.getInstance().getChat(account, room);
if (chat != null && chat instanceof RoomChat) { if (chat != null && chat instanceof RoomChat) {
return (RoomChat) chat; return (RoomChat) chat;
......
...@@ -153,7 +153,7 @@ public class RoomChat extends AbstractChat { ...@@ -153,7 +153,7 @@ public class RoomChat extends AbstractChat {
return subject; return subject;
} }
MultiUserChat getMultiUserChat() { public MultiUserChat getMultiUserChat() {
return multiUserChat; return multiUserChat;
} }
......
...@@ -260,7 +260,7 @@ public class VCardManager implements OnLoadListener, OnPacketListener, ...@@ -260,7 +260,7 @@ public class VCardManager implements OnLoadListener, OnPacketListener,
} }
private void requestVCard(final String account, final String srcUser) { private void requestVCard(final String account, final String srcUser) {
final String user = Jid.getBareAddress(srcUser); final String user = srcUser;
ConnectionThread connectionThread = AccountManager.getInstance().getAccount(account).getConnectionThread(); ConnectionThread connectionThread = AccountManager.getInstance().getAccount(account).getConnectionThread();
if (connectionThread == null) { if (connectionThread == null) {
......
...@@ -36,6 +36,7 @@ import com.xabber.android.data.connection.OnPacketListener; ...@@ -36,6 +36,7 @@ import com.xabber.android.data.connection.OnPacketListener;
import com.xabber.android.data.entity.BaseEntity; import com.xabber.android.data.entity.BaseEntity;
import com.xabber.android.data.entity.NestedMap; import com.xabber.android.data.entity.NestedMap;
import com.xabber.android.data.extension.archive.MessageArchiveManager; import com.xabber.android.data.extension.archive.MessageArchiveManager;
import com.xabber.android.data.extension.muc.MUCManager;
import com.xabber.android.data.extension.muc.RoomChat; import com.xabber.android.data.extension.muc.RoomChat;
import com.xabber.android.data.roster.OnRosterReceivedListener; import com.xabber.android.data.roster.OnRosterReceivedListener;
import com.xabber.android.data.roster.OnStatusChangeListener; import com.xabber.android.data.roster.OnStatusChangeListener;
...@@ -171,7 +172,7 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco ...@@ -171,7 +172,7 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco
* @return * @return
*/ */
private RegularChat createChat(String account, String user) { private RegularChat createChat(String account, String user) {
RegularChat chat = new RegularChat(account, Jid.getBareAddress(user)); RegularChat chat = new RegularChat(account, user);
addChat(chat); addChat(chat);
return chat; return chat;
} }
...@@ -477,10 +478,23 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco ...@@ -477,10 +478,23 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco
// archive have been received. // archive have been received.
return; return;
} }
String contact = bareAddress;
if (packet instanceof Message) {
Message message = (Message) packet;
if (MUCManager.getInstance().hasRoom(account, bareAddress)
&& message.getType() != Message.Type.groupchat ) {
contact = packet.getFrom();
}
}
final String user = packet.getFrom(); final String user = packet.getFrom();
boolean processed = false; boolean processed = false;
for (AbstractChat chat : chats.getNested(account).values()) { for (AbstractChat chat : chats.getNested(account).values()) {
if (chat.onPacket(bareAddress, packet)) { if (chat.onPacket(contact, packet)) {
processed = true; processed = true;
break; break;
} }
...@@ -499,7 +513,7 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco ...@@ -499,7 +513,7 @@ public class MessageManager implements OnLoadListener, OnPacketListener, OnDisco
return; return;
} }
} }
createChat(account, user).onPacket(bareAddress, packet); createChat(account, user).onPacket(contact, packet);
} }
} }
......
...@@ -19,6 +19,7 @@ import com.xabber.android.data.NetworkException; ...@@ -19,6 +19,7 @@ import com.xabber.android.data.NetworkException;
import com.xabber.android.data.SettingsManager; import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.SettingsManager.SecurityOtrMode; import com.xabber.android.data.SettingsManager.SecurityOtrMode;
import com.xabber.android.data.extension.archive.MessageArchiveManager; import com.xabber.android.data.extension.archive.MessageArchiveManager;
import com.xabber.android.data.extension.muc.MUCManager;
import com.xabber.android.data.extension.otr.OTRManager; import com.xabber.android.data.extension.otr.OTRManager;
import com.xabber.android.data.extension.otr.OTRUnencryptedException; import com.xabber.android.data.extension.otr.OTRUnencryptedException;
import com.xabber.android.data.extension.otr.SecurityLevel; import com.xabber.android.data.extension.otr.SecurityLevel;
...@@ -58,10 +59,12 @@ public class RegularChat extends AbstractChat { ...@@ -58,10 +59,12 @@ public class RegularChat extends AbstractChat {
@Override @Override
public String getTo() { public String getTo() {
if (resource == null) if (resource == null
|| (MUCManager.getInstance().hasRoom(account, Jid.getBareAddress(user)) && getType() != Message.Type.groupchat )) {
return user; return user;
else } else {
return user + "/" + resource; return user + "/" + resource;
}
} }
@Override @Override
......
...@@ -21,6 +21,8 @@ public class AccountInfoEditor extends ManagedActivity implements Toolbar.OnMenu ...@@ -21,6 +21,8 @@ public class AccountInfoEditor extends ManagedActivity implements Toolbar.OnMenu
public static final String ARG_VCARD = "com.xabber.android.ui.AccountInfoEditor.ARG_VCARD"; public static final String ARG_VCARD = "com.xabber.android.ui.AccountInfoEditor.ARG_VCARD";
public static final int SAVE_MENU = R.menu.save; public static final int SAVE_MENU = R.menu.save;
public static final String ARGUMENT_SAVE_BUTTON_ENABLED = "com.xabber.android.ui.AccountInfoEditor.ARGUMENT_SAVE_BUTTON_ENABLED";
private Toolbar toolbar; private Toolbar toolbar;
...@@ -64,16 +66,25 @@ public class AccountInfoEditor extends ManagedActivity implements Toolbar.OnMenu ...@@ -64,16 +66,25 @@ public class AccountInfoEditor extends ManagedActivity implements Toolbar.OnMenu
BarPainter barPainter = new BarPainter(this, toolbar); BarPainter barPainter = new BarPainter(this, toolbar);
barPainter.updateWithAccountName(account); barPainter.updateWithAccountName(account);
toolbar.inflateMenu(SAVE_MENU);
toolbar.setOnMenuItemClickListener(this);
boolean isSaveButtonEnabled = false;
if (savedInstanceState == null) { if (savedInstanceState == null) {
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.add(R.id.fragment_container, AccountInfoEditorFragment.newInstance(account, vCard)).commit(); .add(R.id.fragment_container, AccountInfoEditorFragment.newInstance(account, vCard)).commit();
} else {
isSaveButtonEnabled = savedInstanceState.getBoolean(ARGUMENT_SAVE_BUTTON_ENABLED);
} }
toolbar.getMenu().findItem(R.id.action_save).setEnabled(isSaveButtonEnabled);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
toolbar.inflateMenu(SAVE_MENU); @Override
toolbar.setOnMenuItemClickListener(this); protected void onSaveInstanceState(Bundle outState) {
toolbar.getMenu().findItem(R.id.action_save).setEnabled(false); super.onSaveInstanceState(outState);
outState.putBoolean(ARGUMENT_SAVE_BUTTON_ENABLED, toolbar.getMenu().findItem(R.id.action_save).isEnabled());
} }
@Override @Override
......
...@@ -65,42 +65,35 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -65,42 +65,35 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
public static final String DATE_FORMAT_INT_TO_STRING = "%d-%02d-%02d"; public static final String DATE_FORMAT_INT_TO_STRING = "%d-%02d-%02d";
private VCard vCard; private VCard vCard;
private String account;
private View progressBar;
private boolean isSaveSuccess;
private Listener listener;
private boolean updateFromVCardFlag = true;
private TextView account_jid;
private LinearLayout fields;
private EditText formattedName;
private EditText prefixName; private EditText prefixName;
private EditText givenName; private EditText givenName;
private EditText middleName; private EditText middleName;
private EditText familyName; private EditText familyName;
private EditText suffixName; private EditText suffixName;
private EditText nickName; private EditText nickName;
private String account;
private EditText organization;
private EditText organizationUnit;
private EditText title; private EditText title;
private EditText role; private EditText role;
private EditText organizationUnit;
private EditText organization;
private EditText url; private EditText url;
private EditText description; private EditText description;
private EditText emailHome; private EditText emailHome;
private EditText emailWork; private EditText emailWork;
private EditText phoneHome; private EditText phoneHome;
private EditText phoneWork; private EditText phoneWork;
private EditText formattedName;
private View progressBar;
private boolean isSaveSuccess;
private LinearLayout fields;
private TextView avatarSize;
private Listener listener;
private TextView birthDate;
private DatePickerDialog datePicker;
private View changeAvatarButton;
private ImageView avatar;
private Uri newAvatarImageUri;
private Uri photoFileUri;
private boolean removeAvatarFlag = false;
private View birthDateRemoveButton;
private TextView account_jid;
private EditText addressHomePostOfficeBox; private EditText addressHomePostOfficeBox;
private EditText addressHomePostExtended; private EditText addressHomePostExtended;
private EditText addressHomePostStreet; private EditText addressHomePostStreet;
...@@ -108,6 +101,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -108,6 +101,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
private EditText addressHomeRegion; private EditText addressHomeRegion;
private EditText addressHomeCountry; private EditText addressHomeCountry;
private EditText addressHomePostalCode; private EditText addressHomePostalCode;
private EditText addressWorkPostOfficeBox; private EditText addressWorkPostOfficeBox;
private EditText addressWorkPostExtended; private EditText addressWorkPostExtended;
private EditText addressWorkPostStreet; private EditText addressWorkPostStreet;
...@@ -115,7 +109,17 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -115,7 +109,17 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
private EditText addressWorkRegion; private EditText addressWorkRegion;
private EditText addressWorkCountry; private EditText addressWorkCountry;
private EditText addressWorkPostalCode; private EditText addressWorkPostalCode;
private boolean updateFromVCardFlag = false;
private ImageView avatar;
private TextView avatarSize;
private View changeAvatarButton;
private Uri newAvatarImageUri;
private Uri photoFileUri;
private boolean removeAvatarFlag = false;
private TextView birthDate;
private DatePickerDialog datePicker;
private View birthDateRemoveButton;
interface Listener { interface Listener {
void onVCardSavingStarted(); void onVCardSavingStarted();
...@@ -258,6 +262,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -258,6 +262,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
if (vCardManager.isVCardRequested(account) || vCardManager.isVCardSaveRequested(account)) { if (vCardManager.isVCardRequested(account) || vCardManager.isVCardSaveRequested(account)) {
enableProgressMode(); enableProgressMode();
} }
updateFromVCardFlag = false;
} }
@Override @Override
...@@ -275,8 +280,6 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -275,8 +280,6 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
} }
private void setFieldsFromVCard() { private void setFieldsFromVCard() {
updateFromVCardFlag = true;
account_jid.setText(Jid.getBareAddress(account)); account_jid.setText(Jid.getBareAddress(account));
formattedName.setText(vCard.getField(VCardProperty.FN.name())); formattedName.setText(vCard.getField(VCardProperty.FN.name()));
...@@ -334,8 +337,6 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -334,8 +337,6 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
addressWorkRegion.setText(vCard.getAddressFieldWork(AddressProperty.REGION.name())); addressWorkRegion.setText(vCard.getAddressFieldWork(AddressProperty.REGION.name()));
addressWorkCountry.setText(vCard.getAddressFieldWork(AddressProperty.CTRY.name())); addressWorkCountry.setText(vCard.getAddressFieldWork(AddressProperty.CTRY.name()));
addressWorkPostalCode.setText(vCard.getAddressFieldWork(AddressProperty.PCODE.name())); addressWorkPostalCode.setText(vCard.getAddressFieldWork(AddressProperty.PCODE.name()));
updateFromVCardFlag = false;
} }
public void updateDatePickerDialog() { public void updateDatePickerDialog() {
...@@ -615,9 +616,10 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -615,9 +616,10 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
getActivity().finish(); getActivity().finish();
} else { } else {
disableProgressMode(); disableProgressMode();
this.vCard = vCard; this.vCard = vCard;
updateFromVCardFlag = true;
setFieldsFromVCard(); setFieldsFromVCard();
updateFromVCardFlag = false;
} }
} }
...@@ -657,7 +659,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi ...@@ -657,7 +659,7 @@ public class AccountInfoEditorFragment extends Fragment implements OnVCardSaveLi
@Override @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!updateFromVCardFlag) { if (!updateFromVCardFlag && listener != null) {
listener.enableSave(); listener.enableSave();
} }
} }
......
...@@ -565,7 +565,7 @@ public class ChatViewerFragment extends Fragment implements PopupMenu.OnMenuItem ...@@ -565,7 +565,7 @@ public class ChatViewerFragment extends Fragment implements PopupMenu.OnMenuItem
private void showContactInfo() { private void showContactInfo() {
if (MUCManager.getInstance().hasRoom(account, user)) { if (MUCManager.getInstance().hasRoom(account, user)) {
startActivity(ContactViewer.createIntent(getActivity(), account, user)); startActivity(OccupantList.createIntent(getActivity(), account, user));
} else { } else {
startActivity(ContactEditor.createIntent(getActivity(), account, user)); startActivity(ContactEditor.createIntent(getActivity(), account, user));
} }
......
...@@ -56,6 +56,11 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha ...@@ -56,6 +56,11 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha
private VCard vCard; private VCard vCard;
private boolean vCardError; private boolean vCardError;
private View progressBar; private View progressBar;
private Listener listener;
interface Listener {
void onVCardReceived();
}
public static ContactVcardViewerFragment newInstance(String account, String user) { public static ContactVcardViewerFragment newInstance(String account, String user) {
ContactVcardViewerFragment fragment = new ContactVcardViewerFragment(); ContactVcardViewerFragment fragment = new ContactVcardViewerFragment();
...@@ -67,6 +72,12 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha ...@@ -67,6 +72,12 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha
return fragment; return fragment;
} }
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
listener = (Listener) activity;
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
...@@ -160,6 +171,13 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha ...@@ -160,6 +171,13 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha
} }
} }
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
@Override @Override
public void onVCardReceived(String account, String bareAddress, VCard vCard) { public void onVCardReceived(String account, String bareAddress, VCard vCard) {
if (!this.account.equals(account) || !this.user.equals(bareAddress)) { if (!this.account.equals(account) || !this.user.equals(bareAddress)) {
...@@ -168,6 +186,7 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha ...@@ -168,6 +186,7 @@ public class ContactVcardViewerFragment extends Fragment implements OnContactCha
this.vCard = vCard; this.vCard = vCard;
this.vCardError = false; this.vCardError = false;
updateVCard(); updateVCard();
listener.onVCardReceived();
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE);
} }
......
...@@ -43,7 +43,7 @@ import java.util.Collection; ...@@ -43,7 +43,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
public class ContactViewer extends ManagedActivity implements public class ContactViewer extends ManagedActivity implements
OnContactChangedListener, OnAccountChangedListener { OnContactChangedListener, OnAccountChangedListener, ContactVcardViewerFragment.Listener {
protected ContactTitleExpandableToolbarInflater contactTitleExpandableToolbarInflater; protected ContactTitleExpandableToolbarInflater contactTitleExpandableToolbarInflater;
private String account; private String account;
...@@ -92,7 +92,7 @@ public class ContactViewer extends ManagedActivity implements ...@@ -92,7 +92,7 @@ public class ContactViewer extends ManagedActivity implements
} }
} else { } else {
account = getAccount(getIntent()); account = getAccount(getIntent());
bareAddress = Jid.getBareAddress(getUser(getIntent())); bareAddress = getUser(getIntent());
} }
if (bareAddress != null && bareAddress.equalsIgnoreCase(GroupManager.IS_ACCOUNT)) { if (bareAddress != null && bareAddress.equalsIgnoreCase(GroupManager.IS_ACCOUNT)) {
...@@ -170,4 +170,9 @@ public class ContactViewer extends ManagedActivity implements ...@@ -170,4 +170,9 @@ public class ContactViewer extends ManagedActivity implements
protected String getBareAddress() { protected String getBareAddress() {
return bareAddress; return bareAddress;
} }
@Override
public void onVCardReceived() {
contactTitleExpandableToolbarInflater.onResume();
}
} }
...@@ -17,17 +17,23 @@ package com.xabber.android.ui; ...@@ -17,17 +17,23 @@ package com.xabber.android.ui;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import com.xabber.android.R; import com.xabber.android.R;
import com.xabber.android.data.Application; import com.xabber.android.data.Application;
import com.xabber.android.data.LogManager;
import com.xabber.android.data.account.OnAccountChangedListener; import com.xabber.android.data.account.OnAccountChangedListener;
import com.xabber.android.data.entity.BaseEntity; import com.xabber.android.data.entity.BaseEntity;
import com.xabber.android.data.extension.muc.MUCManager; import com.xabber.android.data.extension.muc.MUCManager;
import com.xabber.android.data.intent.AccountIntentBuilder; import com.xabber.android.data.intent.AccountIntentBuilder;
import com.xabber.android.data.intent.EntityIntentBuilder; import com.xabber.android.data.intent.EntityIntentBuilder;
import com.xabber.android.data.message.MessageManager;
import com.xabber.android.data.roster.OnContactChangedListener; import com.xabber.android.data.roster.OnContactChangedListener;
import com.xabber.android.ui.adapter.OccupantListAdapter; import com.xabber.android.ui.adapter.OccupantListAdapter;
import com.xabber.android.ui.helper.BarPainter;
import com.xabber.android.ui.helper.ManagedListActivity; import com.xabber.android.ui.helper.ManagedListActivity;
import com.xabber.xmpp.address.Jid; import com.xabber.xmpp.address.Jid;
...@@ -39,14 +45,13 @@ import java.util.Collection; ...@@ -39,14 +45,13 @@ import java.util.Collection;
* @author alexander.ivanov * @author alexander.ivanov
*/ */
public class OccupantList extends ManagedListActivity implements public class OccupantList extends ManagedListActivity implements
OnAccountChangedListener, OnContactChangedListener { OnAccountChangedListener, OnContactChangedListener, AdapterView.OnItemClickListener {
private String account; private String account;
private String room; private String room;
private OccupantListAdapter listAdapter; private OccupantListAdapter listAdapter;
public static Intent createIntent(Context context, String account, public static Intent createIntent(Context context, String account, String user) {
String user) {
return new EntityIntentBuilder(context, OccupantList.class) return new EntityIntentBuilder(context, OccupantList.class)
.setAccount(account).setUser(user).build(); .setAccount(account).setUser(user).build();
} }
...@@ -62,55 +67,76 @@ public class OccupantList extends ManagedListActivity implements ...@@ -62,55 +67,76 @@ public class OccupantList extends ManagedListActivity implements
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (isFinishing()) if (isFinishing()) {
return; return;
}
account = getAccount(getIntent()); account = getAccount(getIntent());
room = Jid.getBareAddress(getUser(getIntent())); room = Jid.getBareAddress(getUser(getIntent()));
if (account == null || room == null if (account == null || room == null || !MUCManager.getInstance().hasRoom(account, room)) {
|| !MUCManager.getInstance().hasRoom(account, room)) {
Application.getInstance().onError(R.string.ENTRY_IS_NOT_FOUND); Application.getInstance().onError(R.string.ENTRY_IS_NOT_FOUND);
finish(); finish();
return; return;
} }
setContentView(R.layout.list); setContentView(R.layout.list);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar_default)); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_default);
toolbar.setNavigationIcon(R.drawable.ic_arrow_left_white_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NavUtils.navigateUpFromSameTask(OccupantList.this);
}
});
toolbar.setTitle(room);
BarPainter barPainter = new BarPainter(this, toolbar);
barPainter.updateWithAccountName(account);
listAdapter = new OccupantListAdapter(this, account, room); listAdapter = new OccupantListAdapter(this, account, room);
setListAdapter(listAdapter); setListAdapter(listAdapter);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getListView().setOnItemClickListener(this);
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
Application.getInstance().addUIListener(OnAccountChangedListener.class, Application.getInstance().addUIListener(OnAccountChangedListener.class, this);
this); Application.getInstance().addUIListener(OnContactChangedListener.class, this);
Application.getInstance().addUIListener(OnContactChangedListener.class,
this);
listAdapter.onChange(); listAdapter.onChange();
} }
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
Application.getInstance().removeUIListener( Application.getInstance().removeUIListener(OnAccountChangedListener.class, this);
OnAccountChangedListener.class, this); Application.getInstance().removeUIListener(OnContactChangedListener.class, this);
Application.getInstance().removeUIListener(
OnContactChangedListener.class, this);
} }
@Override @Override
public void onContactsChanged(Collection<BaseEntity> entities) { public void onContactsChanged(Collection<BaseEntity> entities) {
if (entities.contains(new BaseEntity(account, room))) if (entities.contains(new BaseEntity(account, room))) {
listAdapter.onChange(); listAdapter.onChange();
}
} }
@Override @Override
public void onAccountsChanged(Collection<String> accounts) { public void onAccountsChanged(Collection<String> accounts) {
if (accounts.contains(account)) if (accounts.contains(account)) {
listAdapter.onChange(); listAdapter.onChange();
}
} }
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
com.xabber.android.data.extension.muc.Occupant occupant
= (com.xabber.android.data.extension.muc.Occupant) listAdapter.getItem(position);
LogManager.i(this, occupant.getNickname());
String occupantFullJid = room + "/" + occupant.getNickname();
MessageManager.getInstance().openChat(account, occupantFullJid);
startActivity(ChatViewer.createSpecificChatIntent(this, account, occupantFullJid));
}
} }
...@@ -16,6 +16,7 @@ import com.xabber.android.data.message.MessageManager; ...@@ -16,6 +16,7 @@ import com.xabber.android.data.message.MessageManager;
import com.xabber.android.data.roster.AbstractContact; import com.xabber.android.data.roster.AbstractContact;
import com.xabber.android.ui.ContactEditor; import com.xabber.android.ui.ContactEditor;
import com.xabber.android.ui.ContactViewer; import com.xabber.android.ui.ContactViewer;
import com.xabber.android.ui.OccupantList;
import com.xabber.android.utils.StringUtils; import com.xabber.android.utils.StringUtils;
public class ContactItemInflater { public class ContactItemInflater {
...@@ -129,11 +130,11 @@ public class ContactItemInflater { ...@@ -129,11 +130,11 @@ public class ContactItemInflater {
private void onAvatarClick(AbstractContact contact) { private void onAvatarClick(AbstractContact contact) {
if (MUCManager.getInstance().hasRoom(contact.getAccount(), contact.getUser())) { if (MUCManager.getInstance().hasRoom(contact.getAccount(), contact.getUser())) {
context.startActivity(ContactViewer.createIntent(context, context.startActivity(
contact.getAccount(), contact.getUser())); OccupantList.createIntent(context, contact.getAccount(), contact.getUser()));
} else { } else {
context.startActivity(ContactEditor.createIntent(context, context.startActivity(
contact.getAccount(), contact.getUser())); ContactEditor.createIntent(context, contact.getAccount(), contact.getUser()));
} }
} }
} }
...@@ -99,7 +99,7 @@ public class OccupantListAdapter extends BaseAdapter implements ...@@ -99,7 +99,7 @@ public class OccupantListAdapter extends BaseAdapter implements
.getAccountAvatar(account)); .getAccountAvatar(account));
else else
avatarView.setImageDrawable(AvatarManager.getInstance() avatarView.setImageDrawable(AvatarManager.getInstance()
.getOccupantAvatar(room + "/" + occupant.getNickname())); .getUserAvatarForContactList(room + "/" + occupant.getNickname()));
affilationView.setImageLevel(occupant.getAffiliation().ordinal()); affilationView.setImageLevel(occupant.getAffiliation().ordinal());
nameView.setText(occupant.getNickname()); nameView.setText(occupant.getNickname());
int textStyle; int textStyle;
......
...@@ -100,6 +100,10 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi ...@@ -100,6 +100,10 @@ public class ContactTitleExpandableToolbarInflater implements ObservableScrollVi
} }
}); });
updateTitle();
}
public void updateTitle() {
ContactTitleInflater.updateTitle(titleView, activity, abstractContact); ContactTitleInflater.updateTitle(titleView, activity, abstractContact);
} }
......
...@@ -204,6 +204,10 @@ public class DummyCursor implements Cursor { ...@@ -204,6 +204,10 @@ public class DummyCursor implements Cursor {
return false; return false;
} }
@Override
public void setExtras(Bundle extras) {
}
@Override @Override
public Bundle getExtras() { public Bundle getExtras() {
return null; return null;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
> >
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
android:id="@+id/vcard_fields_layout" android:id="@+id/vcard_fields_layout"
> >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -268,7 +268,7 @@ ...@@ -268,7 +268,7 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -336,7 +336,7 @@ ...@@ -336,7 +336,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -374,7 +374,7 @@ ...@@ -374,7 +374,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -410,7 +410,7 @@ ...@@ -410,7 +410,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -474,7 +474,7 @@ ...@@ -474,7 +474,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -538,7 +538,7 @@ ...@@ -538,7 +538,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -722,7 +722,6 @@ ...@@ -722,7 +722,6 @@
<ProgressBar <ProgressBar
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:visibility="gone" android:visibility="gone"
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Narozeniny</string> <string name="vcard_birth_date">Narozeniny</string>
<string name="vcard_url">Webová stránka</string> <string name="vcard_url">Webová stránka</string>
<string name="vcard_organization">Organizace</string> <string name="vcard_organization">Organizace</string>
<string name="vcard_organization_unit">Organizační jednotka</string>
<string name="vcard_title">Název pozice, funkce</string> <string name="vcard_title">Název pozice, funkce</string>
<string name="vcard_role">Postavení</string> <string name="vcard_role">Postavení</string>
<string name="vcard_other">Ostatní informace</string> <string name="vcard_other">Ostatní informace</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Úprava aliasu</string> <string name="edit_alias">Úprava aliasu</string>
<string name="edit_contact_groups">Upravit skupiny</string> <string name="edit_contact_groups">Upravit skupiny</string>
<string name="remove_contact">Odstranit kontakt</string> <string name="remove_contact">Odstranit kontakt</string>
<string name="edit_account_user_info">Upravit informace o uživateli</string>
<string name="account_user_info_save_success">Profil uživatele účtu úspěšně uložen</string>
<string name="account_user_info_save_fail">Nelze uložit informace o účtu uživatele</string>
<string name="saving">Ukládání...</string>
<string name="choose_from_gallery">Vyberte z galerie</string>
<string name="take_photo">Vyfotit</string>
<string name="remove_avatar">Odstranit avatara</string>
<string name="change">Změnit</string>
</resources> </resources>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<string name="account_state_registration">Registrierung</string> <string name="account_state_registration">Registrierung</string>
<string name="account_state_authentication">Autorisierung</string> <string name="account_state_authentication">Autorisierung</string>
<string name="account_state_connected">Online</string> <string name="account_state_connected">Online</string>
<string name="account_state_connecting">Verbindung wird hergestellt</string> <string name="account_state_connecting">Verbinden</string>
<string name="account_state_disconnecting">Verbindung wird getrennt</string> <string name="account_state_disconnecting">Verbindung wird getrennt</string>
<string name="account_state_offline">Abgemeldet</string> <string name="account_state_offline">Abgemeldet</string>
<string name="account_state_waiting">Auf Wiederverbindung warten</string> <string name="account_state_waiting">Auf Wiederverbindung warten</string>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Geburtstag</string> <string name="vcard_birth_date">Geburtstag</string>
<string name="vcard_url">Internetseite</string> <string name="vcard_url">Internetseite</string>
<string name="vcard_organization">Organisation</string> <string name="vcard_organization">Organisation</string>
<string name="vcard_organization_unit">Organisationseinheit</string>
<string name="vcard_title">Beruf</string> <string name="vcard_title">Beruf</string>
<string name="vcard_role">Rolle</string> <string name="vcard_role">Rolle</string>
<string name="vcard_other">Andere Informationen</string> <string name="vcard_other">Andere Informationen</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Alias bearbeiten</string> <string name="edit_alias">Alias bearbeiten</string>
<string name="edit_contact_groups">Gruppen bearbeiten</string> <string name="edit_contact_groups">Gruppen bearbeiten</string>
<string name="remove_contact">Kontakt löschen</string> <string name="remove_contact">Kontakt löschen</string>
<string name="edit_account_user_info">Benutzer Info bearbeiten</string>
<string name="account_user_info_save_success">Kontobenutzerinfo erfolgreich gespeichert</string>
<string name="account_user_info_save_fail">Kontobenutzerinfo konnte nicht gespeichert werden</string>
<string name="saving">Speichert&#8230;</string>
<string name="choose_from_gallery">Aus Galerie wählen</string>
<string name="take_photo">Foto aufnehmen</string>
<string name="remove_avatar">Avatar entfernen</string>
<string name="change">Ändern</string>
</resources> </resources>
...@@ -21,4 +21,9 @@ ...@@ -21,4 +21,9 @@
<string name="muc_invite_confirm_reason">%2$s lädt dich zur Konferenz %3$s: \"%4$s\" ein. Mit Konto %1$s beitreten?</string> <string name="muc_invite_confirm_reason">%2$s lädt dich zur Konferenz %3$s: \"%4$s\" ein. Mit Konto %1$s beitreten?</string>
<string name="muc_leave">Konferenz verlassen</string> <string name="muc_leave">Konferenz verlassen</string>
<string name="muc_save">Konferenz speichern</string> <string name="muc_save">Konferenz speichern</string>
<string name="muc_choose_conference">Konferenz auswählen</string>
<string name="muc_next">Weiter</string>
<string name="muc_get_hosted_conferences">Gehostete Konferenzen abrufen</string>
<string name="muc_error_getting_conferences">Fehler beim Abrufen der Konferenzen</string>
<string name="muc_type_conference_name">Konferenznamen eingeben</string>
</resources> </resources>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Fecha de nacimiento</string> <string name="vcard_birth_date">Fecha de nacimiento</string>
<string name="vcard_url">Página web</string> <string name="vcard_url">Página web</string>
<string name="vcard_organization">Organización</string> <string name="vcard_organization">Organización</string>
<string name="vcard_organization_unit">Tipo de empleo</string>
<string name="vcard_title">Puesto de trabajo, función</string> <string name="vcard_title">Puesto de trabajo, función</string>
<string name="vcard_role">Rol</string> <string name="vcard_role">Rol</string>
<string name="vcard_other">Más información</string> <string name="vcard_other">Más información</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Editar apodo</string> <string name="edit_alias">Editar apodo</string>
<string name="edit_contact_groups">Editar grupos</string> <string name="edit_contact_groups">Editar grupos</string>
<string name="remove_contact">Eliminar contacto</string> <string name="remove_contact">Eliminar contacto</string>
<string name="edit_account_user_info">Editar información de usuario</string>
<string name="account_user_info_save_success">La información de la cuenta se ha guardado correctamente</string>
<string name="account_user_info_save_fail">No se pudo guardar la información del usuario</string>
<string name="saving">Guardando&#8230;</string>
<string name="choose_from_gallery">Elegir de la galería</string>
<string name="take_photo">Hacer una foto</string>
<string name="remove_avatar">Eliminar avatar</string>
<string name="change">Cambiar</string>
</resources> </resources>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<string name="muc_save">Guardar sala de charla</string> <string name="muc_save">Guardar sala de charla</string>
<string name="muc_choose_conference">Elegir sala de charla</string> <string name="muc_choose_conference">Elegir sala de charla</string>
<string name="muc_next">Siguiente</string> <string name="muc_next">Siguiente</string>
<string name="muc_get_hosted_conferences">Obtener conferencias organizadas</string> <string name="muc_get_hosted_conferences">Obtener salas de charla organizadas</string>
<string name="muc_error_getting_conferences">Error al obtener conferencias</string> <string name="muc_error_getting_conferences">Error al obtener la lista de salas de charla</string>
<string name="muc_type_conference_name">Escribir el nombre de la sala de charla</string> <string name="muc_type_conference_name">Escribe el nombre de la sala de charla</string>
</resources> </resources>
...@@ -3,29 +3,22 @@ ...@@ -3,29 +3,22 @@
<resources> <resources>
<string name="account_quantity_1">cuenta</string> <string name="account_quantity_1">cuenta</string>
<string name="account_quantity_2">cuentas</string> <string name="account_quantity_2">cuentas</string>
<string name="account_quantity_5">-</string>
<string name="account_quantity_offline_1">cuenta</string> <string name="account_quantity_offline_1">cuenta</string>
<string name="account_quantity_offline_2">cuentas</string> <string name="account_quantity_offline_2">cuentas</string>
<string name="account_quantity_offline_5">-</string>
<string name="AUTHENTICATION_FAILED">Error de autorización</string> <string name="AUTHENTICATION_FAILED">Error de autorización</string>
<string name="chat_contact_quantity_1">contacto</string> <string name="chat_contact_quantity_1">contacto</string>
<string name="chat_contact_quantity_2">contactos</string> <string name="chat_contact_quantity_2">contactos</string>
<string name="chat_contact_quantity_5">-</string>
<string name="chat_message_quantity_1">mensaje</string> <string name="chat_message_quantity_1">mensaje</string>
<string name="chat_message_quantity_2">mensajes</string> <string name="chat_message_quantity_2">mensajes</string>
<string name="chat_message_quantity_5">-</string>
<string name="chat_status">%1$d %2$s de %3$d %4$s</string> <string name="chat_status">%1$d %2$s de %3$d %4$s</string>
<string name="chat_messages_from_contact">%1$d %2$s de %3$s</string> <string name="chat_messages_from_contact">%1$d %2$s de %3$s</string>
<string name="chat_contact_and_message">%1$s: %2$s</string> <string name="chat_contact_and_message">%1$s: %2$s</string>
<string name="connection_state_connected_1">%1$d de %2$d %3$s en línea</string> <string name="connection_state_connected_1">%1$d de %2$d %3$s en línea</string>
<string name="connection_state_connected_2">%1$d de %2$d %3$s en línea</string> <string name="connection_state_connected_2">%1$d de %2$d %3$s en línea</string>
<string name="connection_state_connected_5">-</string>
<string name="connection_state_connecting_1">%1$d de %2$d %3$s se están conectando</string> <string name="connection_state_connecting_1">%1$d de %2$d %3$s se están conectando</string>
<string name="connection_state_connecting_2">%1$d de %2$d %3$s se están conectando</string> <string name="connection_state_connecting_2">%1$d de %2$d %3$s se están conectando</string>
<string name="connection_state_connecting_5">-</string>
<string name="connection_state_waiting_1">%1$d de %2$d %3$s esperando conexión</string> <string name="connection_state_waiting_1">%1$d de %2$d %3$s esperando conexión</string>
<string name="connection_state_waiting_2">%1$d de %2$d %3$s esperando conexión</string> <string name="connection_state_waiting_2">%1$d de %2$d %3$s esperando conexión</string>
<string name="connection_state_waiting_5">-</string>
<string name="connection_state_offline">%1$d %2$s desconectado</string> <string name="connection_state_offline">%1$d %2$s desconectado</string>
<string name="archive_available_request_message">¿Almacenar el histórico de mensaje en el servidor?\nEsto permite a Xabber cargar el historial desde todos los dispositivos que usen esta cuenta.\nEsta funcionalidad usará algo de tráfico adicional y reducirá ligeramente la velocidad de conexión.\nATENCIÓN: Todo el historial local será eliminado.</string> <string name="archive_available_request_message">¿Almacenar el histórico de mensaje en el servidor?\nEsto permite a Xabber cargar el historial desde todos los dispositivos que usen esta cuenta.\nEsta funcionalidad usará algo de tráfico adicional y reducirá ligeramente la velocidad de conexión.\nATENCIÓN: Todo el historial local será eliminado.</string>
<string name="archive_available_request_title">¿Activar archivado de mensajes?</string> <string name="archive_available_request_title">¿Activar archivado de mensajes?</string>
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<string name="account_color_name_red">Rouge</string> <string name="account_color_name_red">Rouge</string>
<string name="account_color_name_blue">Bleu</string> <string name="account_color_name_blue">Bleu</string>
<string name="account_color_name_indigo">Indigo</string> <string name="account_color_name_indigo">Indigo</string>
<string name="account_color_name_teal">Vert-de-gris</string> <string name="account_color_name_teal">Turquoise</string>
<string name="account_color_name_blue_grey">Bleu-gris</string> <string name="account_color_name_blue_grey">Bleu-gris</string>
<string name="account_color_name_cyan">Bleu-vert</string> <string name="account_color_name_cyan">Cyan</string>
</resources> </resources>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Anniversaire</string> <string name="vcard_birth_date">Anniversaire</string>
<string name="vcard_url">Site Web</string> <string name="vcard_url">Site Web</string>
<string name="vcard_organization">Organisation</string> <string name="vcard_organization">Organisation</string>
<string name="vcard_organization_unit">Unité organisationnelle</string>
<string name="vcard_title">Titre de l\'emploi, de la fonction</string> <string name="vcard_title">Titre de l\'emploi, de la fonction</string>
<string name="vcard_role">Rôle</string> <string name="vcard_role">Rôle</string>
<string name="vcard_other">Autres informations</string> <string name="vcard_other">Autres informations</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Éditer l\'alias</string> <string name="edit_alias">Éditer l\'alias</string>
<string name="edit_contact_groups">Éditer les groupes</string> <string name="edit_contact_groups">Éditer les groupes</string>
<string name="remove_contact">Supprimer le contact</string> <string name="remove_contact">Supprimer le contact</string>
<string name="edit_account_user_info">Éditer infos utilisateur</string>
<string name="account_user_info_save_success">Infos de l\'utilisateur sauvegardées avec succès</string>
<string name="account_user_info_save_fail">Échec de la sauvegarde des infos de l\'utilisateur</string>
<string name="saving">Sauvegarde en cours&#8230;</string>
<string name="choose_from_gallery">Choisir dans la galerie</string>
<string name="take_photo">Prendre une photo</string>
<string name="remove_avatar">Retirer l\'avatar</string>
<string name="change">Changer</string>
</resources> </resources>
...@@ -21,4 +21,9 @@ ...@@ -21,4 +21,9 @@
<string name="muc_invite_confirm_reason">%2$s vous a invité à rejoindre la conférence %3$s : %4$s. La rejoindre avec le compte %1$s ?</string> <string name="muc_invite_confirm_reason">%2$s vous a invité à rejoindre la conférence %3$s : %4$s. La rejoindre avec le compte %1$s ?</string>
<string name="muc_leave">Quitter la conférence</string> <string name="muc_leave">Quitter la conférence</string>
<string name="muc_save">Enregistrer la conférence</string> <string name="muc_save">Enregistrer la conférence</string>
<string name="muc_choose_conference">Choisir une conférence</string>
<string name="muc_next">Suivant</string>
<string name="muc_get_hosted_conferences">Obtenez la liste des conférences hébergées</string>
<string name="muc_error_getting_conferences">Erreur lors de l\'obtention de la liste de conférences</string>
<string name="muc_type_conference_name">Entrez le nom de la conférence</string>
</resources> </resources>
...@@ -3,35 +3,28 @@ ...@@ -3,35 +3,28 @@
<resources> <resources>
<string name="account_quantity_1">compte</string> <string name="account_quantity_1">compte</string>
<string name="account_quantity_2">comptes</string> <string name="account_quantity_2">comptes</string>
<string name="account_quantity_5">-</string>
<string name="account_quantity_offline_1">compte</string> <string name="account_quantity_offline_1">compte</string>
<string name="account_quantity_offline_2">comptes</string> <string name="account_quantity_offline_2">comptes</string>
<string name="account_quantity_offline_5">-</string>
<string name="AUTHENTICATION_FAILED">Erreur d\'autorisation</string> <string name="AUTHENTICATION_FAILED">Erreur d\'autorisation</string>
<string name="chat_contact_quantity_1">contact</string> <string name="chat_contact_quantity_1">contact</string>
<string name="chat_contact_quantity_2">contacts</string> <string name="chat_contact_quantity_2">contacts</string>
<string name="chat_contact_quantity_5">-</string>
<string name="chat_message_quantity_1">message</string> <string name="chat_message_quantity_1">message</string>
<string name="chat_message_quantity_2">messages</string> <string name="chat_message_quantity_2">messages</string>
<string name="chat_message_quantity_5">-</string>
<string name="chat_status">%1$d %2$s de %3$d %4$s</string> <string name="chat_status">%1$d %2$s de %3$d %4$s</string>
<string name="chat_messages_from_contact">%1$d %2$s de %3$s</string> <string name="chat_messages_from_contact">%1$d %2$s de %3$s</string>
<string name="chat_contact_and_message">%1$s : %2$s</string> <string name="chat_contact_and_message">%1$s : %2$s</string>
<string name="connection_state_connected_1">%1$d %3$s en ligne sur %2$d</string> <string name="connection_state_connected_1">%1$d %3$s en ligne sur %2$d</string>
<string name="connection_state_connected_2">%1$d %3$s en ligne sur %2$d</string> <string name="connection_state_connected_2">%1$d %3$s en ligne sur %2$d</string>
<string name="connection_state_connected_5">-</string>
<string name="connection_state_connecting_1">%1$d %3$s sur %2$d en cours de connexion</string> <string name="connection_state_connecting_1">%1$d %3$s sur %2$d en cours de connexion</string>
<string name="connection_state_connecting_2">%1$d %3$s sur %2$d en cours de connexion</string> <string name="connection_state_connecting_2">%1$d %3$s sur %2$d en cours de connexion</string>
<string name="connection_state_connecting_5">-</string>
<string name="connection_state_waiting_1">%1$d %3$s sur %2$d en attente de connexion</string> <string name="connection_state_waiting_1">%1$d %3$s sur %2$d en attente de connexion</string>
<string name="connection_state_waiting_2">%1$d %3$s sur %2$d en attente de connexion</string> <string name="connection_state_waiting_2">%1$d %3$s sur %2$d en attente de connexion</string>
<string name="connection_state_waiting_5">-</string>
<string name="connection_state_offline">%1$d %2$s hors-ligne</string> <string name="connection_state_offline">%1$d %2$s hors-ligne</string>
<string name="archive_available_request_message">Souhaitez-vous stocker l\'historique des messages sur le serveur ?\nCela permet à Xabber d\'obtenir l\'historique des messages pour l\'ensemble des appareils qui utilisent ce compte.\nCette fonction génère un peu plus de trafic et réduit légèrement la vitesse de connexion.\nATTENTION : Tout votre historique local va être supprimé.</string> <string name="archive_available_request_message">Souhaitez-vous stocker l\'historique des messages sur le serveur ?\nCela permet à Xabber d\'obtenir l\'historique des messages pour l\'ensemble des appareils qui utilisent ce compte.\nCette fonction génère un peu plus de trafic et réduit légèrement la vitesse de connexion.\nATTENTION : Tout votre historique local va être supprimé.</string>
<string name="archive_available_request_title">Activer l\'archivage des messages ?</string> <string name="archive_available_request_title">Activer l\'archivage des messages ?</string>
<string name="INVALID_CERTIFICATE">Certificat non-valide</string> <string name="INVALID_CERTIFICATE">Certificat non-valide</string>
<string name="muc_invite_message">Souhaitez-vous rejoindre la conférence ?</string> <string name="muc_invite_message">Souhaitez-vous rejoindre la conférence ?</string>
<string name="otr_verification_in_progress">Appuyez pour annuler.</string> <string name="otr_verification_in_progress">Appuyez ici pour annuler.</string>
<string name="PASSWORD_REQUIRED">Mot de passe requis</string> <string name="PASSWORD_REQUIRED">Mot de passe requis</string>
<string name="pay_attention">Demande d\'attention</string> <string name="pay_attention">Demande d\'attention</string>
<string name="subscription_request_message">Demande d\'autorisation</string> <string name="subscription_request_message">Demande d\'autorisation</string>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com--> <!--Generated by crowdin.com-->
<resources> <resources>
<string name="cache_clear">Vider le cache\nSupprime toutes les données locales. Libère de l\'espace.</string> <string name="cache_clear">Vider le cache\nSupprime toutes les données locales. Peut libérer de l\'espace.</string>
<string name="cache_clear_warning">Êtes-vous sûr de vouloir supprimer les historiques des conversations et autres données locales ?\nLes paramètres des comptes et les listes de contacts ne seront pas affectés. L\'application sera fermée.</string> <string name="cache_clear_warning">Êtes-vous sûr de vouloir supprimer les historiques des conversations et autres données locales ?\nLes paramètres des comptes et les listes de contacts ne seront pas affectés. L\'application sera fermée.</string>
<string name="chats_send_by_enter">\"Entrée\" pour envoyer\nAppuyer sur \"Entrée\" envoie le message</string> <string name="chats_send_by_enter">\"Entrée\" pour envoyer\nAppuyer sur \"Entrée\" envoie le message</string>
<string name="connection_go_away">Absence automatique\nPasser au statut \"Absent\" au verrouillage de l\'écran</string> <string name="connection_go_away">Absence automatique\nPasser au statut \"Absent\" au verrouillage de l\'écran</string>
<string name="contacts_order">Trier les contacts\nChoisir l\'ordre d\'affichage des contacts</string> <string name="contacts_order">Trier les contacts\nChoisir l\'ordre d\'affichage des contacts</string>
<string name="contacts_order_alphabet">Alphabétique</string> <string name="contacts_order_alphabet">Alphabétique</string>
<string name="contacts_order_status">Par statut</string> <string name="contacts_order_status">Par statut</string>
<string name="contacts_show_accounts">Grouper par compte\nGroupe les contacts dans la liste de contacts par compte</string> <string name="contacts_show_accounts">Grouper par compte\nGroupe les contacts par compte dans la liste de contacts</string>
<string name="contacts_show_active_chats">Conversations actives en haut\nAffiche les conversations actives en haut de la liste de contacts</string> <string name="contacts_show_active_chats">Conversations actives en haut\nAffiche les conversations actives en haut de la liste de contacts</string>
<string name="contacts_show_avatars">Afficher les avatars\nAfficher les avatars des utilisateurs dans la liste de contacts</string> <string name="contacts_show_avatars">Afficher les avatars\nAffiche les avatars des utilisateurs dans la liste de contacts</string>
<string name="contacts_show_empty_groups">Afficher les groupes vides\nAfficher les groupes sans contact en ligne</string> <string name="contacts_show_empty_groups">Afficher les groupes vides\nAfficher les groupes sans contact en ligne</string>
<string name="contacts_show_groups">Afficher les groupes\nAfficher les groupes dans la liste de contacts</string> <string name="contacts_show_groups">Afficher les groupes\nAffiche les groupes dans la liste de contacts</string>
<string name="contacts_show_offline">Afficher les contacts hors-ligne</string> <string name="contacts_show_offline">Afficher les contacts hors-ligne</string>
<string name="contacts_show_panel">Boutons de compte\nAffiche des boutons d\'action avec avatar en bas et à droite de la liste de contacts</string> <string name="contacts_show_panel">Boutons de compte\nAffiche des boutons d\'action avec avatar en bas et à droite de la liste de contacts</string>
<string name="contacts_stay_active_chats">Dupliquer les conversations actives\nLes conversations actives apparaissent à la fois en haut de la liste de contacts et dans les groupes</string> <string name="contacts_stay_active_chats">Dupliquer les conversations actives\nLes conversations actives apparaissent à la fois en haut de la liste de contacts et dans les groupes</string>
<string name="debug_log">Journal de débogage\nÉcrire les messages dans le journal de débogage (redémarrez l\'application pour appliquer)</string> <string name="debug_log">Journal de débogage\nÉcrire les messages dans le journal de débogage (redémarrez l\'application pour appliquer)</string>
<string name="events_lightning">Notification lumineuse\nLa LED clignote lors d\'une notification</string> <string name="events_lightning">Notification lumineuse\nLa LED clignote lors d\'une notification</string>
<string name="events_persistent">Icône de barre des tâches\nAffiche une notification en permanence. Cette option empêche Android de décharger l\'application de la mémoire</string> <string name="events_persistent">Icône de barre des tâches\nAffiche une notification permanente. Cette option force Android à garder l\'application en mémoire</string>
<string name="events_sound">Sonnerie\nChoisir la sonnerie de notification</string> <string name="events_sound">Sonnerie\nChoisir la sonnerie de notification</string>
<string name="events_vibro">Vibration\nVibrer lors de la notification</string> <string name="events_vibro">Vibration\nVibrer lors de la notification</string>
<string name="interface_theme">Thème\nParamètres de thème</string> <string name="interface_theme">Thème\nParamètres de thème</string>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<string name="chats_show_status_change">Afficher les changements de statut\nAfficher les messages de changement de statut</string> <string name="chats_show_status_change">Afficher les changements de statut\nAfficher les messages de changement de statut</string>
<string name="chats_show_status_change_muc">Dans les conférences</string> <string name="chats_show_status_change_muc">Dans les conférences</string>
<string name="chats_state_notification">Envoyer notifications d\'écriture\nNotifie vos interlocuteurs lorsque vous écrivez</string> <string name="chats_state_notification">Envoyer notifications d\'écriture\nNotifie vos interlocuteurs lorsque vous écrivez</string>
<string name="connection_adjust_priority">Ajuster la priorité\nModifie la priorité selon le statut sélectionné. Limite la priorité du compte.</string> <string name="connection_adjust_priority">Ajuster la priorité\nModifie la priorité selon le statut sélectionné. Ce paramètre l\'emporte sur la priorité globale du compte.</string>
<string name="connection_go_away_immediately">Dès le verrouillage de l\'écran</string> <string name="connection_go_away_immediately">Dès le verrouillage de l\'écran</string>
<string name="connection_go_xa">Absence prolongée en cas d\'inactivité\nPasser en absence prolongée au verrouillage de l\'écran</string> <string name="connection_go_xa">Absence prolongée en cas d\'inactivité\nPasser en absence prolongée au verrouillage de l\'écran</string>
<string name="connection_priority">Paramètres de priorité</string> <string name="connection_priority">Paramètres de priorité</string>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<string name="away">Absent</string> <string name="away">Absent</string>
<string name="chat">Disponible pour bavarder !</string> <string name="chat">Disponible pour bavarder !</string>
<string name="dnd">Ne pas déranger</string> <string name="dnd">Ne pas déranger</string>
<string name="edit_status">Editer le statut</string> <string name="edit_status">Éditer le statut</string>
<string name="empty_status">&lt;Pas de statut&gt;</string> <string name="empty_status">&lt;Pas de statut&gt;</string>
<string name="invisible">Invisible</string> <string name="invisible">Invisible</string>
<string name="remove_status">Supprimer le statut</string> <string name="remove_status">Supprimer le statut</string>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Compleanno</string> <string name="vcard_birth_date">Compleanno</string>
<string name="vcard_url">Sito web</string> <string name="vcard_url">Sito web</string>
<string name="vcard_organization">Organizzazione</string> <string name="vcard_organization">Organizzazione</string>
<string name="vcard_organization_unit">Unità organizzativa</string>
<string name="vcard_title">Lavoro, funzione</string> <string name="vcard_title">Lavoro, funzione</string>
<string name="vcard_role">Ruolo</string> <string name="vcard_role">Ruolo</string>
<string name="vcard_other">Altre informazioni</string> <string name="vcard_other">Altre informazioni</string>
...@@ -33,7 +34,7 @@ ...@@ -33,7 +34,7 @@
<string name="vcard_type_work">Lavoro</string> <string name="vcard_type_work">Lavoro</string>
<string name="vcard_type_postal">Postale</string> <string name="vcard_type_postal">Postale</string>
<string name="vcard_type_parcel">Pacco</string> <string name="vcard_type_parcel">Pacco</string>
<string name="vcard_type_dom">Domicilio</string> <string name="vcard_type_dom">Nazionale</string>
<string name="vcard_type_intl">Internazionale</string> <string name="vcard_type_intl">Internazionale</string>
<string name="vcard_type_pref">Preferito</string> <string name="vcard_type_pref">Preferito</string>
<string name="vcard_type_voice">Voce</string> <string name="vcard_type_voice">Voce</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Modifica alias</string> <string name="edit_alias">Modifica alias</string>
<string name="edit_contact_groups">Modifica gruppo</string> <string name="edit_contact_groups">Modifica gruppo</string>
<string name="remove_contact">Rimuovi contatto</string> <string name="remove_contact">Rimuovi contatto</string>
<string name="edit_account_user_info">Modifica informazioni utente</string>
<string name="account_user_info_save_success">Salvataggio delle informazioni utente dell\'account riuscito</string>
<string name="account_user_info_save_fail">Impossibile salvare le informazioni utente dell\'account</string>
<string name="saving">Salvataggio&#8230;</string>
<string name="choose_from_gallery">Scegli dalla galleria</string>
<string name="take_photo">Scatta una foto</string>
<string name="remove_avatar">Rimuovi avatar</string>
<string name="change">Cambia</string>
</resources> </resources>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<resources> <resources>
<string name="EMPTY_NICK_NAME">Nickname non specificato</string> <string name="EMPTY_NICK_NAME">Nickname non specificato</string>
<string name="EMPTY_ROOM_NAME">Conferenza non specificata</string> <string name="EMPTY_ROOM_NAME">Conferenza non specificata</string>
<string name="muc_join">Entra in conferenza</string> <string name="muc_join">Entra nella conferenza</string>
<string name="muc_nick">Nickname</string> <string name="muc_nick">Nickname</string>
<string name="muc_nick_hint">Il tuo nickname nella conferenza</string> <string name="muc_nick_hint">Il tuo nickname nella conferenza</string>
<string name="muc_password">Password</string> <string name="muc_password">Password</string>
...@@ -16,9 +16,14 @@ ...@@ -16,9 +16,14 @@
<string name="muc_add">Aggiungi conferenza</string> <string name="muc_add">Aggiungi conferenza</string>
<string name="muc_delete">Rimuovi conferenza</string> <string name="muc_delete">Rimuovi conferenza</string>
<string name="muc_delete_confirm">Vuoi davvero rimuovere la conferenza %1$s dall\'account %2$s?</string> <string name="muc_delete_confirm">Vuoi davvero rimuovere la conferenza %1$s dall\'account %2$s?</string>
<string name="muc_edit">Impostazioni di autenticazione</string> <string name="muc_edit">Impostazioni di autorizzazione</string>
<string name="muc_invite_confirm">%2$s ti ha invitato ad entrare nella conferenza %3$s. Vuoi entrare con l\'account %1$s?</string> <string name="muc_invite_confirm">%2$s ti ha invitato ad entrare nella conferenza %3$s. Vuoi entrare con l\'account %1$s?</string>
<string name="muc_invite_confirm_reason">%2$s ti ha invitato ad entrare nella conferenza %3$s: %4$s. Vuoi entrare con l\'account %1$s?</string> <string name="muc_invite_confirm_reason">%2$s ti ha invitato ad entrare nella conferenza %3$s: %4$s. Vuoi entrare con l\'account %1$s?</string>
<string name="muc_leave">Abbandona conferenza</string> <string name="muc_leave">Abbandona conferenza</string>
<string name="muc_save">Salva conferenza</string> <string name="muc_save">Salva conferenza</string>
<string name="muc_choose_conference">Scegli conferenza</string>
<string name="muc_next">Successivo</string>
<string name="muc_get_hosted_conferences">Ottieni conferenze ospitate</string>
<string name="muc_error_getting_conferences">Errore nell\'ottenere la lista delle conferenze</string>
<string name="muc_type_conference_name">Inserire nome conferenza</string>
</resources> </resources>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">誕生日</string> <string name="vcard_birth_date">誕生日</string>
<string name="vcard_url">Web サイト</string> <string name="vcard_url">Web サイト</string>
<string name="vcard_organization">所属</string> <string name="vcard_organization">所属</string>
<string name="vcard_organization_unit">組織単位</string>
<string name="vcard_title">肩書, 役職</string> <string name="vcard_title">肩書, 役職</string>
<string name="vcard_role">役割</string> <string name="vcard_role">役割</string>
<string name="vcard_other">その他の情報</string> <string name="vcard_other">その他の情報</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">エイリアスを編集</string> <string name="edit_alias">エイリアスを編集</string>
<string name="edit_contact_groups">グループを編集</string> <string name="edit_contact_groups">グループを編集</string>
<string name="remove_contact">連絡先を削除</string> <string name="remove_contact">連絡先を削除</string>
<string name="edit_account_user_info">ユーザー情報を編集</string>
<string name="account_user_info_save_success">アカウントのユーザー情報を正常に保存しました</string>
<string name="account_user_info_save_fail">アカウントのユーザー情報を保存できませんでした</string>
<string name="saving">保存中&#8230;</string>
<string name="choose_from_gallery">ギャラリーから選択</string>
<string name="take_photo">写真を撮影</string>
<string name="remove_avatar">アバターを削除</string>
<string name="change">変更</string>
</resources> </resources>
...@@ -3,29 +3,22 @@ ...@@ -3,29 +3,22 @@
<resources> <resources>
<string name="account_quantity_1">アカウント</string> <string name="account_quantity_1">アカウント</string>
<string name="account_quantity_2">アカウント</string> <string name="account_quantity_2">アカウント</string>
<string name="account_quantity_5">-</string>
<string name="account_quantity_offline_1">アカウント</string> <string name="account_quantity_offline_1">アカウント</string>
<string name="account_quantity_offline_2">アカウント</string> <string name="account_quantity_offline_2">アカウント</string>
<string name="account_quantity_offline_5">-</string>
<string name="AUTHENTICATION_FAILED">認証エラー</string> <string name="AUTHENTICATION_FAILED">認証エラー</string>
<string name="chat_contact_quantity_1">連絡先</string> <string name="chat_contact_quantity_1">連絡先</string>
<string name="chat_contact_quantity_2">連絡先</string> <string name="chat_contact_quantity_2">連絡先</string>
<string name="chat_contact_quantity_5">-</string>
<string name="chat_message_quantity_1">メッセージ</string> <string name="chat_message_quantity_1">メッセージ</string>
<string name="chat_message_quantity_2">メッセージ</string> <string name="chat_message_quantity_2">メッセージ</string>
<string name="chat_message_quantity_5">-</string>
<string name="chat_status">%3$d %4$s から %1$d %2$s</string> <string name="chat_status">%3$d %4$s から %1$d %2$s</string>
<string name="chat_messages_from_contact">%3$s から %1$d %2$s</string> <string name="chat_messages_from_contact">%3$s から %1$d %2$s</string>
<string name="chat_contact_and_message">%1$s: %2$s</string> <string name="chat_contact_and_message">%1$s: %2$s</string>
<string name="connection_state_connected_1">%1$d / %2$d %3$s オンライン</string> <string name="connection_state_connected_1">%1$d / %2$d %3$s オンライン</string>
<string name="connection_state_connected_2">%1$d / %2$d %3$s オンライン</string> <string name="connection_state_connected_2">%1$d / %2$d %3$s オンライン</string>
<string name="connection_state_connected_5">-</string>
<string name="connection_state_connecting_1">%1$d / %2$d %3$s 接続中</string> <string name="connection_state_connecting_1">%1$d / %2$d %3$s 接続中</string>
<string name="connection_state_connecting_2">%1$d / %2$d %3$s 接続中</string> <string name="connection_state_connecting_2">%1$d / %2$d %3$s 接続中</string>
<string name="connection_state_connecting_5">-</string>
<string name="connection_state_waiting_1">%1$d / %2$d %3$s 接続待機中</string> <string name="connection_state_waiting_1">%1$d / %2$d %3$s 接続待機中</string>
<string name="connection_state_waiting_2">%1$d / %2$d %3$s 接続待機中</string> <string name="connection_state_waiting_2">%1$d / %2$d %3$s 接続待機中</string>
<string name="connection_state_waiting_5">-</string>
<string name="connection_state_offline">%1$d %2$s オフライン</string> <string name="connection_state_offline">%1$d %2$s オフライン</string>
<string name="archive_available_request_message">サーバーにメッセージの履歴を保存しますか?\nこのアカウントを使用するすべてのデバイスで Xabber がメッセージの履歴をロードすることができるようになります.\nこの機能は追加の通信が発生し, 接続速度が少し低下することがあります.\n警告: ローカルの履歴はすべて削除されます.</string> <string name="archive_available_request_message">サーバーにメッセージの履歴を保存しますか?\nこのアカウントを使用するすべてのデバイスで Xabber がメッセージの履歴をロードすることができるようになります.\nこの機能は追加の通信が発生し, 接続速度が少し低下することがあります.\n警告: ローカルの履歴はすべて削除されます.</string>
<string name="archive_available_request_title">メッセージのアーカイブを有効にしますか?</string> <string name="archive_available_request_title">メッセージのアーカイブを有効にしますか?</string>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Urodziny</string> <string name="vcard_birth_date">Urodziny</string>
<string name="vcard_url">Strona WWW</string> <string name="vcard_url">Strona WWW</string>
<string name="vcard_organization">Organizacja</string> <string name="vcard_organization">Organizacja</string>
<string name="vcard_organization_unit">Organizacja</string>
<string name="vcard_title">Praca, nazwa posady</string> <string name="vcard_title">Praca, nazwa posady</string>
<string name="vcard_role">Rola</string> <string name="vcard_role">Rola</string>
<string name="vcard_other">Inne informacje</string> <string name="vcard_other">Inne informacje</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Edytuj alias</string> <string name="edit_alias">Edytuj alias</string>
<string name="edit_contact_groups">Edytuj grupy</string> <string name="edit_contact_groups">Edytuj grupy</string>
<string name="remove_contact">Usuń kontakt</string> <string name="remove_contact">Usuń kontakt</string>
<string name="edit_account_user_info">Edytuj dane użytkownika</string>
<string name="account_user_info_save_success">Dane użytkownika zapisane poprawnie</string>
<string name="account_user_info_save_fail">Nie udało się zapisać danych użytkownika</string>
<string name="saving">Zapisuję&#8230;</string>
<string name="choose_from_gallery">Wybierz z galerii</string>
<string name="take_photo">Zrób zdjęcie</string>
<string name="remove_avatar">Usuń obraz</string>
<string name="change">Zmień</string>
</resources> </resources>
...@@ -21,4 +21,9 @@ ...@@ -21,4 +21,9 @@
<string name="muc_invite_confirm_reason">%2$s zaprosił cię do wzięcia udziału w konferencji %3$s: %4$s. Dołączyć z konta %1$s?</string> <string name="muc_invite_confirm_reason">%2$s zaprosił cię do wzięcia udziału w konferencji %3$s: %4$s. Dołączyć z konta %1$s?</string>
<string name="muc_leave">Wyjdź z konferencji</string> <string name="muc_leave">Wyjdź z konferencji</string>
<string name="muc_save">Zachowaj konferencję</string> <string name="muc_save">Zachowaj konferencję</string>
<string name="muc_choose_conference">Wybierz konferencję</string>
<string name="muc_next">Dalej</string>
<string name="muc_get_hosted_conferences">Pobierz konferencje</string>
<string name="muc_error_getting_conferences">Błąd pobierania konferencji</string>
<string name="muc_type_conference_name">Wpisz nazwę konferencji</string>
</resources> </resources>
...@@ -13,19 +13,15 @@ ...@@ -13,19 +13,15 @@
<string name="chat_contact_quantity_5">kontaktów</string> <string name="chat_contact_quantity_5">kontaktów</string>
<string name="chat_message_quantity_1">wiadomość</string> <string name="chat_message_quantity_1">wiadomość</string>
<string name="chat_message_quantity_2">wiadomości</string> <string name="chat_message_quantity_2">wiadomości</string>
<string name="chat_message_quantity_5">-</string>
<string name="chat_status">%1$d %2$s od %3$d %4$s</string> <string name="chat_status">%1$d %2$s od %3$d %4$s</string>
<string name="chat_messages_from_contact">%1$d %2$s od %3$s</string> <string name="chat_messages_from_contact">%1$d %2$s od %3$s</string>
<string name="chat_contact_and_message">%1$s: %2$s</string> <string name="chat_contact_and_message">%1$s: %2$s</string>
<string name="connection_state_connected_1">%1$d z %2$d %3$s połączonych</string> <string name="connection_state_connected_1">%1$d z %2$d %3$s połączonych</string>
<string name="connection_state_connected_2">%1$d z %2$d %3$s połączono</string> <string name="connection_state_connected_2">%1$d z %2$d %3$s połączono</string>
<string name="connection_state_connected_5">-</string>
<string name="connection_state_connecting_1">%1$d z %2$d %3$s łączę</string> <string name="connection_state_connecting_1">%1$d z %2$d %3$s łączę</string>
<string name="connection_state_connecting_2">%1$d of %2$d %3$s łączę</string> <string name="connection_state_connecting_2">%1$d of %2$d %3$s łączę</string>
<string name="connection_state_connecting_5">-</string>
<string name="connection_state_waiting_1">%1$d z %2$d %3$s oczekuje na połączenie</string> <string name="connection_state_waiting_1">%1$d z %2$d %3$s oczekuje na połączenie</string>
<string name="connection_state_waiting_2">%1$d z %2$d %3$s czeka na połączenie</string> <string name="connection_state_waiting_2">%1$d z %2$d %3$s czeka na połączenie</string>
<string name="connection_state_waiting_5">-</string>
<string name="connection_state_offline">%1$d %2$s niepołączone</string> <string name="connection_state_offline">%1$d %2$s niepołączone</string>
<string name="archive_available_request_message">Czy chciałbyś zapisywać historię wiadomości na serwerze?\nTo zezwala Xabberowi ładować historię rozmów z wszystkich urządzeń używających tego konta.\nTa funkcja może zwiększyć zużycie danych i lekko zredukować prędkość połączenia.\nUWAGA: Cała twoja lokalna historia zostanie usunięta.</string> <string name="archive_available_request_message">Czy chciałbyś zapisywać historię wiadomości na serwerze?\nTo zezwala Xabberowi ładować historię rozmów z wszystkich urządzeń używających tego konta.\nTa funkcja może zwiększyć zużycie danych i lekko zredukować prędkość połączenia.\nUWAGA: Cała twoja lokalna historia zostanie usunięta.</string>
<string name="archive_available_request_title">Włączyć archiwum wiadomości?</string> <string name="archive_available_request_title">Włączyć archiwum wiadomości?</string>
......
...@@ -29,11 +29,14 @@ ...@@ -29,11 +29,14 @@
<string name="account_custom_summary">Usar configurações de host personalizado em vez de registro SRV</string> <string name="account_custom_summary">Usar configurações de host personalizado em vez de registro SRV</string>
<string name="account_enabled_summary">Marque para ativar a conta</string> <string name="account_enabled_summary">Marque para ativar a conta</string>
<string name="account_invalid_port">A porta deve ser um número (padrão: 5222)</string> <string name="account_invalid_port">A porta deve ser um número (padrão: 5222)</string>
<string name="account_invalid_port_range">A porta deve ser um número entre 1 e 65535 (o padrão é: 5222)</string>
<string name="account_invalid_priority">O valor da prioridade deve ser um número entre -128 e 128 (padrão: 10)</string> <string name="account_invalid_priority">O valor da prioridade deve ser um número entre -128 e 128 (padrão: 10)</string>
<string name="account_oauth">Autorização</string> <string name="account_oauth">Autorização</string>
<string name="account_oauth_invalidated">Não autorizado</string> <string name="account_oauth_invalidated">Não autorizado</string>
<string name="account_oauth_summary">Configuração de Autenticação</string> <string name="account_oauth_summary">Configuração de Autenticação</string>
<string name="account_proxy_host">Servidor proxy</string> <string name="account_proxy_host">Servidor proxy</string>
<string name="account_proxy_invalid_port_range">A porta de proxy deve ser um número entre 1 e 65535 (o padrão é: 8080)</string>
<string name="account_proxy_invalid_port">A porta de proxy deve ser um número (o padrão é: 8080)</string>
<string name="account_proxy_password">Senha do proxy</string> <string name="account_proxy_password">Senha do proxy</string>
<string name="account_proxy_port">Porta do proxy</string> <string name="account_proxy_port">Porta do proxy</string>
<string name="account_proxy_type">Tipo de proxy</string> <string name="account_proxy_type">Tipo de proxy</string>
......
...@@ -49,4 +49,12 @@ ...@@ -49,4 +49,12 @@
<string name="edit_alias">Editar alias</string> <string name="edit_alias">Editar alias</string>
<string name="edit_contact_groups">Editar Grupos</string> <string name="edit_contact_groups">Editar Grupos</string>
<string name="remove_contact">Remover o contato</string> <string name="remove_contact">Remover o contato</string>
<string name="edit_account_user_info">Editar info. pessoais</string>
<string name="account_user_info_save_success">Informações pessoais salvas com sucesso</string>
<string name="account_user_info_save_fail">Não foi possível salvar informações pessoais</string>
<string name="saving">Salvando&#8230;</string>
<string name="choose_from_gallery">Usar foto da galeria</string>
<string name="take_photo">Tirar foto</string>
<string name="remove_avatar">Remover avatar</string>
<string name="change">Alterar foto</string>
</resources> </resources>
...@@ -21,4 +21,6 @@ ...@@ -21,4 +21,6 @@
<string name="muc_invite_confirm_reason">%2$s convidou você para entrar na conferência %3$s: %4$s. Entrar pela conta %1$s?</string> <string name="muc_invite_confirm_reason">%2$s convidou você para entrar na conferência %3$s: %4$s. Entrar pela conta %1$s?</string>
<string name="muc_leave">Sair da conferência</string> <string name="muc_leave">Sair da conferência</string>
<string name="muc_save">Salvar conferência</string> <string name="muc_save">Salvar conferência</string>
<string name="muc_get_hosted_conferences">Baixar lista de conferências</string>
<string name="muc_error_getting_conferences">Erro ao baixar conferências</string>
</resources> </resources>
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
<string name="events_message_none">Não avisar</string> <string name="events_message_none">Não avisar</string>
<string name="events_show_text">Exibir mensagem na notificação\nExibir mensagem de texto na área de notificação</string> <string name="events_show_text">Exibir mensagem na notificação\nExibir mensagem de texto na área de notificação</string>
<string name="events_visible_chat">Notificação na conversa atual\nNotificar mensagens entregues na conversa atual</string> <string name="events_visible_chat">Notificação na conversa atual\nNotificar mensagens entregues na conversa atual</string>
<string name="events_suppress_100">Suprimir algumas mensagens de status\nNão receber a mensagem \'Essa sala não é anônima\"</string>
<string name="negative_priotiry_summary">%s (você não receberá mensagens de nenhuma conversa)</string> <string name="negative_priotiry_summary">%s (você não receberá mensagens de nenhuma conversa)</string>
<string name="preference_accounts">Contas XMPP\nGerir contas</string> <string name="preference_accounts">Contas XMPP\nGerir contas</string>
<string name="preference_security">Segurança\nConfigurações de segurança</string> <string name="preference_security">Segurança\nConfigurações de segurança</string>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">Дата рождения</string> <string name="vcard_birth_date">Дата рождения</string>
<string name="vcard_url">Сайт</string> <string name="vcard_url">Сайт</string>
<string name="vcard_organization">Организация</string> <string name="vcard_organization">Организация</string>
<string name="vcard_organization_unit">Отдел</string>
<string name="vcard_title">Должность</string> <string name="vcard_title">Должность</string>
<string name="vcard_role">Должностные функции</string> <string name="vcard_role">Должностные функции</string>
<string name="vcard_other">Общая информация</string> <string name="vcard_other">Общая информация</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Редактировать псевдоним</string> <string name="edit_alias">Редактировать псевдоним</string>
<string name="edit_contact_groups">Редактировать группы</string> <string name="edit_contact_groups">Редактировать группы</string>
<string name="remove_contact">Удалить контакт</string> <string name="remove_contact">Удалить контакт</string>
<string name="edit_account_user_info">Редактировать информацию о пользователе</string>
<string name="account_user_info_save_success">Информация о пользователе успешно изменена</string>
<string name="account_user_info_save_fail">Не удалось сохранить изменения информации о пользователе</string>
<string name="saving">Сохранение&#8230;</string>
<string name="choose_from_gallery">Выбрать из галереи</string>
<string name="take_photo">Сделать фотографию</string>
<string name="remove_avatar">Удалить аватар</string>
<string name="change">Изменить</string>
</resources> </resources>
...@@ -29,11 +29,14 @@ ...@@ -29,11 +29,14 @@
<string name="account_custom_summary">Вказати хост для підключення вручну, замість використання SRV запису</string> <string name="account_custom_summary">Вказати хост для підключення вручну, замість використання SRV запису</string>
<string name="account_enabled_summary">Позначте, для включення облікового запису</string> <string name="account_enabled_summary">Позначте, для включення облікового запису</string>
<string name="account_invalid_port">Порт має бути числом (типове значення: 5222)</string> <string name="account_invalid_port">Порт має бути числом (типове значення: 5222)</string>
<string name="account_invalid_port_range">Порт має бути від 1 до 65535 (за замовчуванням: 5222)</string>
<string name="account_invalid_priority">Пріоритет має бути в діапазоні між -128 і 128 (типове значення :10)</string> <string name="account_invalid_priority">Пріоритет має бути в діапазоні між -128 і 128 (типове значення :10)</string>
<string name="account_oauth">Авторизація</string> <string name="account_oauth">Авторизація</string>
<string name="account_oauth_invalidated">Не авторизований</string> <string name="account_oauth_invalidated">Не авторизований</string>
<string name="account_oauth_summary">Налаштування OAuth</string> <string name="account_oauth_summary">Налаштування OAuth</string>
<string name="account_proxy_host">Вузол проксі</string> <string name="account_proxy_host">Вузол проксі</string>
<string name="account_proxy_invalid_port_range">Проксі порт має бути від 1 до 65535 (за замовчуванням: 8080)</string>
<string name="account_proxy_invalid_port">Порт проксі-сервера має бути числом (за замовчуванням: 8080)</string>
<string name="account_proxy_password">Пароль</string> <string name="account_proxy_password">Пароль</string>
<string name="account_proxy_port">Порт проксі</string> <string name="account_proxy_port">Порт проксі</string>
<string name="account_proxy_type">Тип проксі</string> <string name="account_proxy_type">Тип проксі</string>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<string name="vcard_birth_date">День народження</string> <string name="vcard_birth_date">День народження</string>
<string name="vcard_url">Веб-сайт</string> <string name="vcard_url">Веб-сайт</string>
<string name="vcard_organization">Організація</string> <string name="vcard_organization">Організація</string>
<string name="vcard_organization_unit">Організаційна одиниця</string>
<string name="vcard_title">Посада</string> <string name="vcard_title">Посада</string>
<string name="vcard_role">Роль</string> <string name="vcard_role">Роль</string>
<string name="vcard_other">Інша інформація</string> <string name="vcard_other">Інша інформація</string>
...@@ -49,4 +50,12 @@ ...@@ -49,4 +50,12 @@
<string name="edit_alias">Редагувати псевдонім</string> <string name="edit_alias">Редагувати псевдонім</string>
<string name="edit_contact_groups">Редагувати групу</string> <string name="edit_contact_groups">Редагувати групу</string>
<string name="remove_contact">Видалити контакт</string> <string name="remove_contact">Видалити контакт</string>
<string name="edit_account_user_info">Редагувати інформацію користувача</string>
<string name="account_user_info_save_success">Інформація про користувача успішно збережено</string>
<string name="account_user_info_save_fail">Не вдалося зберегти інформацію про користувача</string>
<string name="saving">Збереження&#8230;</string>
<string name="choose_from_gallery">Вибрати з галереї</string>
<string name="take_photo">Зробити фото</string>
<string name="remove_avatar">Видалити Аватар</string>
<string name="change">Змінити</string>
</resources> </resources>
...@@ -21,4 +21,9 @@ ...@@ -21,4 +21,9 @@
<string name="muc_invite_confirm_reason">%2$s запрошує Вас до конференції %3$s: %4$s. Приєднатись з облікового запису %1$s?</string> <string name="muc_invite_confirm_reason">%2$s запрошує Вас до конференції %3$s: %4$s. Приєднатись з облікового запису %1$s?</string>
<string name="muc_leave">Покинути конференцію</string> <string name="muc_leave">Покинути конференцію</string>
<string name="muc_save">Зберегти конференцію</string> <string name="muc_save">Зберегти конференцію</string>
<string name="muc_choose_conference">Вибрати конференцію</string>
<string name="muc_next">Далі</string>
<string name="muc_get_hosted_conferences">Отримати відкриті конференції</string>
<string name="muc_error_getting_conferences">Помилка отримання конференцій</string>
<string name="muc_type_conference_name">Введіть назву конференції</string>
</resources> </resources>
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
<string name="events_message_none">Не сповіщати</string> <string name="events_message_none">Не сповіщати</string>
<string name="events_show_text">Повідомлення в сповіщеннях\nПоказувати текст повідомлення в області сповіщень</string> <string name="events_show_text">Повідомлення в сповіщеннях\nПоказувати текст повідомлення в області сповіщень</string>
<string name="events_visible_chat">Сповіщення в поточному чаті\nСповіщати о вхідних повідомлення в поточному чаті</string> <string name="events_visible_chat">Сповіщення в поточному чаті\nСповіщати о вхідних повідомлення в поточному чаті</string>
<string name="events_suppress_100">Приховати деякі повідомлення статусу\nНе отримувати \'Ця кімната не анонімна\' повідомлення</string>
<string name="negative_priotiry_summary">%s (Ви не зможете отримувати повідомлення із будь-яких балачок)</string> <string name="negative_priotiry_summary">%s (Ви не зможете отримувати повідомлення із будь-яких балачок)</string>
<string name="preference_accounts">XMPP аккаунти\nУправління аккаунтами</string> <string name="preference_accounts">XMPP аккаунти\nУправління аккаунтами</string>
<string name="preference_security">Безпека\nНалаштування безпеки</string> <string name="preference_security">Безпека\nНалаштування безпеки</string>
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
<item>com.xabber.android.data.extension.cs.ChatStateManager</item> <item>com.xabber.android.data.extension.cs.ChatStateManager</item>
<item>com.xabber.android.data.connection.NetworkManager</item> <item>com.xabber.android.data.connection.NetworkManager</item>
<item>com.xabber.android.data.account.OAuthManager</item> <item>com.xabber.android.data.account.OAuthManager</item>
<item>com.xabber.android.data.account.WLMManager</item>
<item>com.xabber.android.data.roster.SyncManager</item> <item>com.xabber.android.data.roster.SyncManager</item>
<item>com.xabber.android.data.connection.DNSManager</item> <item>com.xabber.android.data.connection.DNSManager</item>
<item>com.xabber.android.data.connection.CertificateManager</item> <item>com.xabber.android.data.connection.CertificateManager</item>
...@@ -359,7 +358,7 @@ ...@@ -359,7 +358,7 @@
<!-- preference_debug --> <!-- preference_debug -->
<string name="debug_log_key">debug_log</string> <string name="debug_log_key">debug_log</string>
<bool name="debug_log_default">false</bool> <bool name="debug_log_default">true</bool>
<!-- preference_about --> <!-- preference_about -->
<string name="preference_about">@string/about_viewer</string> <string name="preference_about">@string/about_viewer</string>
...@@ -434,7 +433,7 @@ ...@@ -434,7 +433,7 @@
<item>@string/account_archive_mode_dont_store</item> <item>@string/account_archive_mode_dont_store</item>
</string-array> </string-array>
<string name="account_archive_mode_default_value">available</string> <string name="account_archive_mode_default_value">local</string>
<!-- preference_security --> <!-- preference_security -->
<string name="security_check_certificate_key">security_check_certificate</string> <string name="security_check_certificate_key">security_check_certificate</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment