mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Compare commits
106 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f492f2cd71 | |||
| 2800a282ec | |||
| 593e93304c | |||
| 77b6108ca8 | |||
| 90bf2b6b19 | |||
| dd91d52df4 | |||
| de29317fa6 | |||
| 44faee6208 | |||
| 41ccf19e58 | |||
| 05c390980a | |||
| 4446ed0792 | |||
| 11942da0c0 | |||
| 9a0604a1a8 | |||
| 93ca874e61 | |||
| 9ba21c4346 | |||
| c0e7798cad | |||
| 0aea5a2201 | |||
| 63873ec1d5 | |||
| 23f269d4b3 | |||
| 9ebacb23c4 | |||
| d1e83f46d8 | |||
| 5f2dd23a6e | |||
| d29b24e9a6 | |||
| 4f1415e127 | |||
| c604313c09 | |||
| e6bc14a8de | |||
| 4a5729d371 | |||
| d9ac76a317 | |||
| 867df35d44 | |||
| e946d61b92 | |||
| fa2ffbd70f | |||
| 1123f03134 | |||
| 49e86d08bf | |||
| 5f00826e65 | |||
| 82382f31f1 | |||
| 833cbf7302 | |||
| 4e329adaca | |||
| dbc9e4c3c2 | |||
| d9cff40fd5 | |||
| ef248712d6 | |||
| 9765ba1bac | |||
| afcccaa864 | |||
| 7caef2ceb9 | |||
| cb4480ad78 | |||
| 6388349c16 | |||
| 73a111aeac | |||
| 5869bdc9dd | |||
| ff7f75abed | |||
| 28ac3bd9eb | |||
| 49f07874f8 | |||
| 59779b7f2a | |||
| 677df359ae | |||
| 4e4aca675f | |||
| 76163e6012 | |||
| 85b319825d | |||
| 8edf8a6140 | |||
| acba74142c | |||
| c06f34923e | |||
| bb00342b5d | |||
| 25b43986d3 | |||
| 9b5984182f | |||
| ae9dfb1595 | |||
| 001a4a8675 | |||
| 13a1e92321 | |||
| fb97c8edaf | |||
| ffce59ea7e | |||
| dd7ef2d744 | |||
| a76f840368 | |||
| c4bac7359b | |||
| 67e028502d | |||
| e05b31a76b | |||
| d1b95e369d | |||
| 64a71f25f2 | |||
| 76e906579b | |||
| 23dc66622b | |||
| 997bbd336c | |||
| d8a0225b1a | |||
| ce656ca374 | |||
| dd202b4c72 | |||
| 522ff32432 | |||
| a96cb520dd | |||
| fe9cd52312 | |||
| d4355ad076 | |||
| 057d0eb39e | |||
| 82f35621e2 | |||
| 633856b350 | |||
| 1c0c9004c6 | |||
| 833533adc3 | |||
| 846df6a164 | |||
| f5de9e8a23 | |||
| 404a0ca032 | |||
| 6e8612172b | |||
| aed9e39287 | |||
| 597100d9e3 | |||
| b2775e0811 | |||
| 2425f0dcc7 | |||
| ede60340f6 | |||
| a9d58ab3f3 | |||
| 6d6b6f41c9 | |||
| f5f97e4bfc | |||
| c7ed50a225 | |||
| f843c531b4 | |||
| 2389a7d136 | |||
| e1d0306a29 | |||
| 04cbe3f825 | |||
| 9796ac1c53 |
@@ -0,0 +1,3 @@
|
||||
[submodule "MessengerProj/jni/messenger-backend"]
|
||||
path = MessengerProj/jni/messenger-backend
|
||||
url = https://github.com/r10s/messenger-backend.git
|
||||
@@ -0,0 +1,31 @@
|
||||
# Delta Chat Changelog
|
||||
|
||||
## v0.1.18
|
||||
2017-02-11
|
||||
|
||||
* Add Polish translation
|
||||
* Use a new default background for chats
|
||||
* Improve typography by using the system font instead of a custom resource font
|
||||
* Remove custom plural handling, use Android's routines instead
|
||||
* Remove unused source code and strings
|
||||
* More fixes of lint errors and warnings
|
||||
|
||||
## v0.1.17
|
||||
2017-02-07
|
||||
|
||||
* Drop two unnecessary permissions: ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION
|
||||
* Really add French translation
|
||||
* Update Portuguese translation
|
||||
* Start fixing translation handling of the program
|
||||
* Remove special "foss" build, because the whole program is free now.
|
||||
|
||||
## v0.1.16
|
||||
2017-02-06
|
||||
|
||||
* Add French translation
|
||||
* Fix some lint errors and warnings
|
||||
|
||||
## v0.1.15
|
||||
2017-01-31
|
||||
|
||||
* Prepare for release on [F-Droid](https://f-droid.org/)
|
||||
@@ -42,6 +42,10 @@ android {
|
||||
targetCompatibility JavaVersion.VERSION_1_7
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file("config/debug.keystore")
|
||||
@@ -70,34 +74,17 @@ android {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
|
||||
foss {
|
||||
debuggable false
|
||||
jniDebuggable false
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
}
|
||||
|
||||
defaultConfig.versionCode = 13
|
||||
defaultConfig.versionCode = 17
|
||||
|
||||
sourceSets.main {
|
||||
jniLibs.srcDir 'libs'
|
||||
jni.srcDirs = [] //disable automatic ndk-build call
|
||||
}
|
||||
|
||||
sourceSets.debug {
|
||||
manifest.srcFile 'config/debug/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
sourceSets.release {
|
||||
manifest.srcFile 'config/release/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
sourceSets.foss {
|
||||
manifest.srcFile 'config/foss/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
/*
|
||||
x86 {
|
||||
ndk {
|
||||
abiFilter "x86"
|
||||
@@ -116,6 +103,7 @@ android {
|
||||
}
|
||||
versionCode = 1
|
||||
}
|
||||
*/
|
||||
fat {
|
||||
versionCode = 3
|
||||
}
|
||||
@@ -129,7 +117,6 @@ android {
|
||||
defaultConfig {
|
||||
minSdkVersion 14 // 14: Android 4.0 Ice Cream Sandwich 2011 (Telegram default), 21: Android 5.0 Lollipop 2014 (recommended for InstantRun)
|
||||
targetSdkVersion 23
|
||||
versionName "0.1.14"
|
||||
versionName "0.1.18"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.b44t.messenger"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.LOCATION" android:required="false" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/AppName"
|
||||
android:theme="@style/Theme.MessengerProj.Start"
|
||||
android:name=".ApplicationLoader"
|
||||
android:hardwareAccelerated="@bool/useHardwareAcceleration"
|
||||
android:largeHeap="true">
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.b44t.messenger"
|
||||
android:installLocation="auto">
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/AppName"
|
||||
android:theme="@style/Theme.MessengerProj.Start"
|
||||
android:name=".ApplicationLoader"
|
||||
android:hardwareAccelerated="@bool/useHardwareAcceleration"
|
||||
android:largeHeap="true">
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.b44t.messenger"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||
<uses-feature android:name="android.hardware.LOCATION" android:required="false" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/AppName"
|
||||
android:theme="@style/Theme.MessengerProj.Start"
|
||||
android:name=".ApplicationLoader"
|
||||
android:hardwareAccelerated="@bool/useHardwareAcceleration"
|
||||
android:largeHeap="true">
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1604,26 +1604,26 @@ LOCAL_SRC_FILES += \
|
||||
./image.c \
|
||||
./video.c \
|
||||
./gifvideo.cpp \
|
||||
../../../messenger-backend/src/mrchat.c \
|
||||
../../../messenger-backend/src/mrchatlist.c \
|
||||
../../../messenger-backend/src/mrcmdline.c \
|
||||
../../../messenger-backend/src/mrcontact.c \
|
||||
../../../messenger-backend/src/mre2ee.c \
|
||||
../../../messenger-backend/src/mrimap.c \
|
||||
../../../messenger-backend/src/mrjob.c \
|
||||
../../../messenger-backend/src/mrlog.c \
|
||||
../../../messenger-backend/src/mrloginparam.c \
|
||||
../../../messenger-backend/src/mrmailbox.c \
|
||||
../../../messenger-backend/src/mrmimeparser.c \
|
||||
../../../messenger-backend/src/mrmsg.c \
|
||||
../../../messenger-backend/src/mrosnative.c \
|
||||
../../../messenger-backend/src/mrparam.c \
|
||||
../../../messenger-backend/src/mrpoortext.c \
|
||||
../../../messenger-backend/src/mrsimplify.c \
|
||||
../../../messenger-backend/src/mrsmtp.c \
|
||||
../../../messenger-backend/src/mrsqlite3.c \
|
||||
../../../messenger-backend/src/mrstock.c \
|
||||
../../../messenger-backend/src/mrtools.c \
|
||||
./messenger-backend/src/mrchat.c \
|
||||
./messenger-backend/src/mrchatlist.c \
|
||||
./messenger-backend/src/mrcmdline.c \
|
||||
./messenger-backend/src/mrcontact.c \
|
||||
./messenger-backend/src/mre2ee.c \
|
||||
./messenger-backend/src/mrimap.c \
|
||||
./messenger-backend/src/mrjob.c \
|
||||
./messenger-backend/src/mrlog.c \
|
||||
./messenger-backend/src/mrloginparam.c \
|
||||
./messenger-backend/src/mrmailbox.c \
|
||||
./messenger-backend/src/mrmimeparser.c \
|
||||
./messenger-backend/src/mrmsg.c \
|
||||
./messenger-backend/src/mrosnative.c \
|
||||
./messenger-backend/src/mrparam.c \
|
||||
./messenger-backend/src/mrpoortext.c \
|
||||
./messenger-backend/src/mrsimplify.c \
|
||||
./messenger-backend/src/mrsmtp.c \
|
||||
./messenger-backend/src/mrsqlite3.c \
|
||||
./messenger-backend/src/mrstock.c \
|
||||
./messenger-backend/src/mrtools.c \
|
||||
./mrwrapper.c
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
Submodule
+1
Submodule MessengerProj/jni/messenger-backend added at 9a9464fada
@@ -27,7 +27,7 @@
|
||||
|
||||
#include <jni.h>
|
||||
#include <android/log.h>
|
||||
#include "../../../messenger-backend/src/mrmailbox.h"
|
||||
#include "messenger-backend/src/mrmailbox.h"
|
||||
|
||||
|
||||
#define CHAR_REF(a) \
|
||||
@@ -428,9 +428,12 @@ JNIEXPORT jstring Java_com_b44t_messenger_MrMailbox_MrMailboxGetMsgInfo(JNIEnv *
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_MrMailbox_deleteMsg(JNIEnv *env, jclass cls, jint id)
|
||||
JNIEXPORT void Java_com_b44t_messenger_MrMailbox_deleteMsgs(JNIEnv *env, jclass cls, jintArray msg_ids)
|
||||
{
|
||||
mrmailbox_delete_msg(get_mrmailbox_t(env, cls), id);
|
||||
int msg_ids_cnt;
|
||||
const uint32_t* msg_ids_ptr = jintArray2uint32Pointer(env, msg_ids, &msg_ids_cnt);
|
||||
mrmailbox_delete_msgs(get_mrmailbox_t(env, cls), msg_ids_ptr, msg_ids_cnt);
|
||||
free(msg_ids_ptr);
|
||||
}
|
||||
|
||||
|
||||
@@ -932,11 +935,15 @@ JNIEXPORT jstring Java_com_b44t_messenger_MrMailbox_CPtr2String(JNIEnv *env, jcl
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_MrMailbox_MrStockAddStr(JNIEnv* env, jclass c, jint id, jstring str)
|
||||
JNIEXPORT jlong Java_com_b44t_messenger_MrMailbox_String2CPtr(JNIEnv *env, jclass c, jstring str)
|
||||
{
|
||||
CHAR_REF(str);
|
||||
mrstock_add_str(id, strPtr);
|
||||
CHAR_UNREF(str)
|
||||
char* hStr = NULL;
|
||||
if( str ) {
|
||||
CHAR_REF(str);
|
||||
hStr = strdup(strPtr);
|
||||
CHAR_UNREF(str);
|
||||
}
|
||||
return (jlong)hStr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
android:allowBackup="false"
|
||||
android:hardwareAccelerated="@bool/useHardwareAcceleration"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/AppName"
|
||||
android:largeHeap="true"
|
||||
android:theme="@style/Theme.MessengerProj.Start"
|
||||
android:manageSpaceActivity="com.b44t.ui.ManageSpaceActivity">
|
||||
|
||||
Binary file not shown.
@@ -37,15 +37,9 @@ import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.BitmapShader;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.Shader;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@@ -73,7 +67,6 @@ import android.widget.ListView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.b44t.ui.ActionBar.BaseFragment;
|
||||
import com.b44t.ui.Components.ForegroundDetector;
|
||||
import com.b44t.ui.Components.TypefaceSpan;
|
||||
|
||||
@@ -95,7 +88,6 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class AndroidUtilities {
|
||||
|
||||
private static final Hashtable<String, Typeface> typefaceCache = new Hashtable<>();
|
||||
private static int prevOrientation = -10;
|
||||
|
||||
public static int statusBarHeight = 0;
|
||||
@@ -142,101 +134,6 @@ public class AndroidUtilities {
|
||||
checkDisplaySize();
|
||||
}
|
||||
|
||||
public static int[] calcDrawableColor(Drawable drawable) {
|
||||
int bitmapColor = 0xff000000;
|
||||
int result[] = new int[2];
|
||||
try {
|
||||
if (drawable instanceof BitmapDrawable) {
|
||||
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
|
||||
if (bitmap != null) {
|
||||
Bitmap b = Bitmaps.createScaledBitmap(bitmap, 1, 1, true);
|
||||
if (b != null) {
|
||||
bitmapColor = b.getPixel(0, 0);
|
||||
b.recycle();
|
||||
}
|
||||
}
|
||||
} else if (drawable instanceof ColorDrawable) {
|
||||
bitmapColor = ((ColorDrawable) drawable).getColor();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FileLog.e("messenger", e);
|
||||
}
|
||||
|
||||
double[] hsv = rgbToHsv((bitmapColor >> 16) & 0xff, (bitmapColor >> 8) & 0xff, bitmapColor & 0xff);
|
||||
hsv[1] = Math.min(1.0, hsv[1] + 0.05 + 0.1 * (1.0 - hsv[1]));
|
||||
hsv[2] = Math.max(0, hsv[2] * 0.65);
|
||||
int rgb[] = hsvToRgb(hsv[0], hsv[1], hsv[2]);
|
||||
result[0] = Color.argb(0x66, rgb[0], rgb[1], rgb[2]);
|
||||
result[1] = Color.argb(0x88, rgb[0], rgb[1], rgb[2]);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static double[] rgbToHsv(int r, int g, int b) {
|
||||
double rf = r / 255.0;
|
||||
double gf = g / 255.0;
|
||||
double bf = b / 255.0;
|
||||
double max = (rf > gf && rf > bf) ? rf : (gf > bf) ? gf : bf;
|
||||
double min = (rf < gf && rf < bf) ? rf : (gf < bf) ? gf : bf;
|
||||
double h, s;
|
||||
double d = max - min;
|
||||
s = max == 0 ? 0 : d / max;
|
||||
if (max == min) {
|
||||
h = 0;
|
||||
} else {
|
||||
if (rf > gf && rf > bf) {
|
||||
h = (gf - bf) / d + (gf < bf ? 6 : 0);
|
||||
} else if (gf > bf) {
|
||||
h = (bf - rf) / d + 2;
|
||||
} else {
|
||||
h = (rf - gf) / d + 4;
|
||||
}
|
||||
h /= 6;
|
||||
}
|
||||
return new double[]{h, s, max};
|
||||
}
|
||||
|
||||
private static int[] hsvToRgb(double h, double s, double v) {
|
||||
double r = 0, g = 0, b = 0;
|
||||
double i = (int) Math.floor(h * 6);
|
||||
double f = h * 6 - i;
|
||||
double p = v * (1 - s);
|
||||
double q = v * (1 - f * s);
|
||||
double t = v * (1 - (1 - f) * s);
|
||||
switch ((int) i % 6) {
|
||||
case 0:
|
||||
r = v;
|
||||
g = t;
|
||||
b = p;
|
||||
break;
|
||||
case 1:
|
||||
r = q;
|
||||
g = v;
|
||||
b = p;
|
||||
break;
|
||||
case 2:
|
||||
r = p;
|
||||
g = v;
|
||||
b = t;
|
||||
break;
|
||||
case 3:
|
||||
r = p;
|
||||
g = q;
|
||||
b = v;
|
||||
break;
|
||||
case 4:
|
||||
r = t;
|
||||
g = p;
|
||||
b = v;
|
||||
break;
|
||||
case 5:
|
||||
r = v;
|
||||
g = p;
|
||||
b = q;
|
||||
break;
|
||||
}
|
||||
return new int[]{(int) (r * 255), (int) (g * 255), (int) (b * 255)};
|
||||
}
|
||||
|
||||
public static void requestAdjustResize(Activity activity, int classGuid) {
|
||||
if (activity == null || isTablet()) {
|
||||
return;
|
||||
@@ -325,21 +222,6 @@ public class AndroidUtilities {
|
||||
}
|
||||
}
|
||||
|
||||
public static Typeface getTypeface(String assetPath) {
|
||||
synchronized (typefaceCache) {
|
||||
if (!typefaceCache.containsKey(assetPath)) {
|
||||
try {
|
||||
Typeface t = Typeface.createFromAsset(ApplicationLoader.applicationContext.getAssets(), assetPath);
|
||||
typefaceCache.put(assetPath, t);
|
||||
} catch (Exception e) {
|
||||
FileLog.e("Typefaces", "Could not get typeface '" + assetPath + "' because " + e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return typefaceCache.get(assetPath);
|
||||
}
|
||||
}
|
||||
|
||||
public static void showKeyboard(View view) {
|
||||
if (view == null) {
|
||||
return;
|
||||
@@ -513,25 +395,6 @@ public class AndroidUtilities {
|
||||
return photoSize;
|
||||
}
|
||||
|
||||
public static String formatTTLString(int ttl) {
|
||||
if (ttl < 60) {
|
||||
return LocaleController.formatPluralString("Seconds", ttl);
|
||||
} else if (ttl < 60 * 60) {
|
||||
return LocaleController.formatPluralString("Minutes", ttl / 60);
|
||||
} else if (ttl < 60 * 60 * 24) {
|
||||
return LocaleController.formatPluralString("Hours", ttl / 60 / 60);
|
||||
} else if (ttl < 60 * 60 * 24 * 7) {
|
||||
return LocaleController.formatPluralString("Days", ttl / 60 / 60 / 24);
|
||||
} else {
|
||||
int days = ttl / 60 / 60 / 24;
|
||||
if (ttl % 7 == 0) {
|
||||
return LocaleController.formatPluralString("Weeks", days / 7);
|
||||
} else {
|
||||
return String.format("%s %s", LocaleController.formatPluralString("Weeks", days / 7), LocaleController.formatPluralString("Days", days % 7));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void clearCursorDrawable(EditText editText) {
|
||||
if (editText == null) {
|
||||
return;
|
||||
@@ -746,7 +609,7 @@ public class AndroidUtilities {
|
||||
}
|
||||
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(stringBuilder);
|
||||
for (int a = 0; a < bolds.size() / 2; a++) {
|
||||
spannableStringBuilder.setSpan(new TypefaceSpan(AndroidUtilities.getTypeface("fonts/rmedium.ttf")), bolds.get(a * 2), bolds.get(a * 2 + 1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableStringBuilder.setSpan(new TypefaceSpan(Typeface.DEFAULT_BOLD), bolds.get(a * 2), bolds.get(a * 2 + 1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
for (int a = 0; a < colors.size() / 3; a++) {
|
||||
spannableStringBuilder.setSpan(new ForegroundColorSpan(colors.get(a * 3 + 2)), colors.get(a * 3), colors.get(a * 3 + 1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
@@ -53,9 +53,6 @@ public class ApplicationLoader extends Application {
|
||||
private static boolean isCustomTheme;
|
||||
private static final Object sync = new Object();
|
||||
|
||||
private static int serviceMessageColor;
|
||||
private static int serviceSelectedMessageColor;
|
||||
|
||||
public static volatile Context applicationContext;
|
||||
public static volatile Handler applicationHandler;
|
||||
private static volatile boolean applicationInited = false;
|
||||
@@ -73,25 +70,11 @@ public class ApplicationLoader extends Application {
|
||||
|
||||
public static void reloadWallpaper() {
|
||||
cachedWallpaper = null;
|
||||
serviceMessageColor = 0;
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE).edit().remove("serviceMessageColor").commit();
|
||||
loadWallpaper();
|
||||
}
|
||||
|
||||
private static void calcBackgroundColor() {
|
||||
int result[] = AndroidUtilities.calcDrawableColor(cachedWallpaper);
|
||||
serviceMessageColor = result[0];
|
||||
serviceSelectedMessageColor = result[1];
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putInt("serviceMessageColor", serviceMessageColor).putInt("serviceSelectedMessageColor", serviceSelectedMessageColor).commit();
|
||||
}
|
||||
|
||||
public static int getServiceMessageColor() {
|
||||
return serviceMessageColor;
|
||||
}
|
||||
|
||||
public static int getServiceSelectedMessageColor() {
|
||||
return serviceSelectedMessageColor;
|
||||
return 0x44000000; // this color is used as a background for date headlines, empty chat hints and in the drawer
|
||||
}
|
||||
|
||||
public static void loadWallpaper() {
|
||||
@@ -107,8 +90,6 @@ public class ApplicationLoader extends Application {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
int selectedBackground = preferences.getInt("selectedBackground", 1000001);
|
||||
selectedColor = preferences.getInt("selectedColor", 0);
|
||||
serviceMessageColor = preferences.getInt("serviceMessageColor", 0);
|
||||
serviceSelectedMessageColor = preferences.getInt("serviceSelectedMessageColor", 0);
|
||||
if (selectedColor == 0) {
|
||||
if (selectedBackground == 1000001) {
|
||||
cachedWallpaper = applicationContext.getResources().getDrawable(R.drawable.background_hd);
|
||||
@@ -133,9 +114,6 @@ public class ApplicationLoader extends Application {
|
||||
}
|
||||
cachedWallpaper = new ColorDrawable(selectedColor);
|
||||
}
|
||||
if (serviceMessageColor == 0) {
|
||||
calcBackgroundColor();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -235,7 +213,7 @@ public class ApplicationLoader extends Application {
|
||||
// make sure, the notifications for the "deaddrop" dialog are muted by default
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("notify2_"+MrChat.MR_CHAT_ID_DEADDROP, 2);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
// open() sqlite file (you can inspect the file eg. with "Tools / Android Device Monitor / File Explorer")
|
||||
@@ -266,7 +244,6 @@ public class ApplicationLoader extends Application {
|
||||
// however, we may want to to have a look at onPause() eg. of activities (eg. for flushing data, if needed)
|
||||
MrMailbox.MrCallback(0, 0, 0); // do not remove this call; this makes sure, the function is not removed from build or warnings are printed!
|
||||
MrMailbox.init();
|
||||
MrMailbox.initStockStrings();
|
||||
|
||||
applicationHandler = new Handler(applicationContext.getMainLooper());
|
||||
|
||||
|
||||
@@ -50,13 +50,6 @@ import java.util.TimeZone;
|
||||
|
||||
public class LocaleController {
|
||||
|
||||
static final int QUANTITY_OTHER = 0x0000;
|
||||
static final int QUANTITY_ZERO = 0x0001;
|
||||
static final int QUANTITY_ONE = 0x0002;
|
||||
static final int QUANTITY_TWO = 0x0004;
|
||||
static final int QUANTITY_FEW = 0x0008;
|
||||
static final int QUANTITY_MANY = 0x0010;
|
||||
|
||||
public static boolean isRTL = false;
|
||||
public static int nameDisplayOrder = 1;
|
||||
private static boolean is24HourFormat = false;
|
||||
@@ -68,11 +61,7 @@ public class LocaleController {
|
||||
public FastDateFormat chatDate;
|
||||
public FastDateFormat chatFullDate;
|
||||
|
||||
private HashMap<String, PluralRules> allRules = new HashMap<>();
|
||||
|
||||
private Locale currentLocale;
|
||||
private Locale systemDefaultLocale;
|
||||
private PluralRules currentPluralRules;
|
||||
private LocaleInfo currentLocaleInfo;
|
||||
private LocaleInfo defaultLocalInfo;
|
||||
private HashMap<String, String> localeValues = new HashMap<>();
|
||||
@@ -140,30 +129,6 @@ public class LocaleController {
|
||||
}
|
||||
|
||||
public LocaleController() {
|
||||
addRules(new String[]{"bem", "brx", "da", "de", "el", "en", "eo", "es", "et", "fi", "fo", "gl", "he", "iw", "it", "nb",
|
||||
"nl", "nn", "no", "sv", "af", "bg", "bn", "ca", "eu", "fur", "fy", "gu", "ha", "is", "ku",
|
||||
"lb", "ml", "mr", "nah", "ne", "om", "or", "pa", "pap", "ps", "so", "sq", "sw", "ta", "te",
|
||||
"tk", "ur", "zu", "mn", "gsw", "chr", "rm", "pt", "an", "ast"}, new PluralRules_One());
|
||||
addRules(new String[]{"cs", "sk"}, new PluralRules_Czech());
|
||||
addRules(new String[]{"ff", "fr", "kab"}, new PluralRules_French());
|
||||
addRules(new String[]{"hr", "ru", "sr", "uk", "be", "bs", "sh"}, new PluralRules_Balkan());
|
||||
addRules(new String[]{"lv"}, new PluralRules_Latvian());
|
||||
addRules(new String[]{"lt"}, new PluralRules_Lithuanian());
|
||||
addRules(new String[]{"pl"}, new PluralRules_Polish());
|
||||
addRules(new String[]{"ro", "mo"}, new PluralRules_Romanian());
|
||||
addRules(new String[]{"sl"}, new PluralRules_Slovenian());
|
||||
addRules(new String[]{"ar"}, new PluralRules_Arabic());
|
||||
addRules(new String[]{"mk"}, new PluralRules_Macedonian());
|
||||
addRules(new String[]{"cy"}, new PluralRules_Welsh());
|
||||
addRules(new String[]{"br"}, new PluralRules_Breton());
|
||||
addRules(new String[]{"lag"}, new PluralRules_Langi());
|
||||
addRules(new String[]{"shi"}, new PluralRules_Tachelhit());
|
||||
addRules(new String[]{"mt"}, new PluralRules_Maltese());
|
||||
addRules(new String[]{"ga", "se", "sma", "smi", "smj", "smn", "sms"}, new PluralRules_Two());
|
||||
addRules(new String[]{"ak", "am", "bh", "fil", "tl", "guw", "hi", "ln", "mg", "nso", "ti", "wa"}, new PluralRules_Zero());
|
||||
addRules(new String[]{"az", "bm", "fa", "ig", "hu", "ja", "kde", "kea", "ko", "my", "ses", "sg", "to",
|
||||
"tr", "vi", "wo", "yo", "zh", "bo", "dz", "id", "jv", "ka", "km", "kn", "ms", "th"}, new PluralRules_None());
|
||||
|
||||
LocaleInfo localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "English";
|
||||
localeInfo.nameEnglish = "English";
|
||||
@@ -195,6 +160,14 @@ public class LocaleController {
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "Français";
|
||||
localeInfo.nameEnglish = "French";
|
||||
localeInfo.shortName = "fr";
|
||||
localeInfo.pathToFile = null;
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "Nederlands";
|
||||
localeInfo.nameEnglish = "Dutch";
|
||||
@@ -203,15 +176,13 @@ public class LocaleController {
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
|
||||
/* EDIT BY MR
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "العربية";
|
||||
localeInfo.nameEnglish = "Arabic";
|
||||
localeInfo.shortName = "ar";
|
||||
localeInfo.name = "Polski";
|
||||
localeInfo.nameEnglish = "Polish";
|
||||
localeInfo.shortName = "pl";
|
||||
localeInfo.pathToFile = null;
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
*/
|
||||
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "Português";
|
||||
@@ -221,24 +192,6 @@ public class LocaleController {
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
|
||||
/* EDIT BY MR
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "Português (Portugal)";
|
||||
localeInfo.nameEnglish = "Portuguese (Portugal)";
|
||||
localeInfo.shortName = "pt_PT";
|
||||
localeInfo.pathToFile = null;
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = "한국어";
|
||||
localeInfo.nameEnglish = "Korean";
|
||||
localeInfo.shortName = "ko";
|
||||
localeInfo.pathToFile = null;
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
*/
|
||||
|
||||
loadOtherLanguages();
|
||||
|
||||
for (LocaleInfo locale : otherLanguages) {
|
||||
@@ -260,7 +213,6 @@ public class LocaleController {
|
||||
localeInfo.pathToFile = null;
|
||||
sortedLanguages.add(0, localeInfo);
|
||||
|
||||
systemDefaultLocale = Locale.getDefault();
|
||||
is24HourFormat = DateFormat.is24HourFormat(ApplicationLoader.applicationContext);
|
||||
LocaleInfo currentInfo = null;
|
||||
boolean override = false;
|
||||
@@ -275,11 +227,11 @@ public class LocaleController {
|
||||
}
|
||||
}
|
||||
|
||||
if (currentInfo == null && systemDefaultLocale.getLanguage() != null) {
|
||||
currentInfo = languagesDict.get(systemDefaultLocale.getLanguage());
|
||||
if (currentInfo == null && Locale.getDefault().getLanguage() != null) {
|
||||
currentInfo = languagesDict.get(Locale.getDefault().getLanguage());
|
||||
}
|
||||
if (currentInfo == null) {
|
||||
currentInfo = languagesDict.get(getLocaleString(systemDefaultLocale));
|
||||
currentInfo = languagesDict.get(getLocaleString(Locale.getDefault()));
|
||||
}
|
||||
if (currentInfo == null) {
|
||||
currentInfo = languagesDict.get("en");
|
||||
@@ -297,33 +249,6 @@ public class LocaleController {
|
||||
}
|
||||
}
|
||||
|
||||
private void addRules(String[] languages, PluralRules rules) {
|
||||
for (String language : languages) {
|
||||
allRules.put(language, rules);
|
||||
}
|
||||
}
|
||||
|
||||
private String stringForQuantity(int quantity) {
|
||||
switch (quantity) {
|
||||
case QUANTITY_ZERO:
|
||||
return "zero";
|
||||
case QUANTITY_ONE:
|
||||
return "one";
|
||||
case QUANTITY_TWO:
|
||||
return "two";
|
||||
case QUANTITY_FEW:
|
||||
return "few";
|
||||
case QUANTITY_MANY:
|
||||
return "many";
|
||||
default:
|
||||
return "other";
|
||||
}
|
||||
}
|
||||
|
||||
public Locale getSystemDefaultLocale() {
|
||||
return systemDefaultLocale;
|
||||
}
|
||||
|
||||
private String getLocaleString(Locale locale) {
|
||||
if (locale == null) {
|
||||
return "en";
|
||||
@@ -348,7 +273,7 @@ public class LocaleController {
|
||||
}
|
||||
|
||||
public static String getLocaleStringIso639() {
|
||||
Locale locale = getInstance().getSystemDefaultLocale();
|
||||
Locale locale = Locale.getDefault();
|
||||
if (locale == null) {
|
||||
return "en";
|
||||
}
|
||||
@@ -371,68 +296,6 @@ public class LocaleController {
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
public boolean applyLanguageFile(File file) {
|
||||
try {
|
||||
HashMap<String, String> stringMap = getLocaleFileStrings(file);
|
||||
|
||||
String languageName = stringMap.get("LanguageName");
|
||||
String languageNameInEnglish = stringMap.get("LanguageNameInEnglish");
|
||||
String languageCode = stringMap.get("LanguageCode");
|
||||
|
||||
if (languageName != null && languageName.length() > 0 &&
|
||||
languageNameInEnglish != null && languageNameInEnglish.length() > 0 &&
|
||||
languageCode != null && languageCode.length() > 0) {
|
||||
|
||||
if (languageName.contains("&") || languageName.contains("|")) {
|
||||
return false;
|
||||
}
|
||||
if (languageNameInEnglish.contains("&") || languageNameInEnglish.contains("|")) {
|
||||
return false;
|
||||
}
|
||||
if (languageCode.contains("&") || languageCode.contains("|") || languageCode.contains("/") || languageCode.contains("\\")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
File finalFile = new File(ApplicationLoader.getFilesDirFixed(), languageCode + ".xml");
|
||||
if (!AndroidUtilities.copyFile(file, finalFile)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
LocaleInfo localeInfo = languagesDict.get(languageCode);
|
||||
if (localeInfo == null) {
|
||||
localeInfo = new LocaleInfo();
|
||||
localeInfo.name = languageName;
|
||||
localeInfo.nameEnglish = languageNameInEnglish;
|
||||
localeInfo.shortName = languageCode;
|
||||
|
||||
localeInfo.pathToFile = finalFile.getAbsolutePath();
|
||||
sortedLanguages.add(localeInfo);
|
||||
languagesDict.put(localeInfo.shortName, localeInfo);
|
||||
otherLanguages.add(localeInfo);
|
||||
|
||||
Collections.sort(sortedLanguages, new Comparator<LocaleInfo>() {
|
||||
@Override
|
||||
public int compare(LocaleController.LocaleInfo o, LocaleController.LocaleInfo o2) {
|
||||
if (o.shortName == null) {
|
||||
return -1;
|
||||
} else if (o2.shortName == null) {
|
||||
return 1;
|
||||
}
|
||||
return o.name.compareTo(o2.name);
|
||||
}
|
||||
});
|
||||
saveOtherLanguages();
|
||||
}
|
||||
localeValues = stringMap;
|
||||
applyLanguage(localeInfo, true, true);
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FileLog.e("messenger", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void saveOtherLanguages() {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("langconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
@@ -447,7 +310,7 @@ public class LocaleController {
|
||||
}
|
||||
}
|
||||
editor.putString("locales", locales);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public boolean deleteLanguage(LocaleInfo localeInfo) {
|
||||
@@ -561,16 +424,16 @@ public class LocaleController {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putString("language", localeInfo.shortName);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
newLocale = systemDefaultLocale;
|
||||
newLocale = Locale.getDefault();
|
||||
languageOverride = null;
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.remove("language");
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
|
||||
if (newLocale != null) {
|
||||
LocaleInfo info = null;
|
||||
@@ -593,10 +456,6 @@ public class LocaleController {
|
||||
}
|
||||
currentLocale = newLocale;
|
||||
currentLocaleInfo = localeInfo;
|
||||
currentPluralRules = allRules.get(currentLocale.getLanguage());
|
||||
if (currentPluralRules == null) {
|
||||
currentPluralRules = allRules.get("en");
|
||||
}
|
||||
changingConfiguration = true;
|
||||
Locale.setDefault(currentLocale);
|
||||
android.content.res.Configuration config = new android.content.res.Configuration();
|
||||
@@ -611,10 +470,6 @@ public class LocaleController {
|
||||
recreateFormatters();
|
||||
}
|
||||
|
||||
private void loadCurrentLocale() {
|
||||
localeValues.clear();
|
||||
}
|
||||
|
||||
public static String getCurrentLanguageName() {
|
||||
return getString("LanguageName", R.string.LanguageName);
|
||||
}
|
||||
@@ -638,16 +493,6 @@ public class LocaleController {
|
||||
return getInstance().getStringInternal(key, res);
|
||||
}
|
||||
|
||||
public static String formatPluralString(String key, int plural) {
|
||||
if (key == null || key.length() == 0 || getInstance().currentPluralRules == null) {
|
||||
return "LOC_ERR:" + key;
|
||||
}
|
||||
String param = getInstance().stringForQuantity(getInstance().currentPluralRules.quantityForNumber(plural));
|
||||
param = key + "_" + param;
|
||||
int resourceId = ApplicationLoader.applicationContext.getResources().getIdentifier(param, "string", ApplicationLoader.applicationContext.getPackageName());
|
||||
return formatString(param, resourceId, plural);
|
||||
}
|
||||
|
||||
public static String formatString(String key, int res, Object... args) {
|
||||
try {
|
||||
String value = getInstance().localeValues.get(key);
|
||||
@@ -684,7 +529,6 @@ public class LocaleController {
|
||||
return;
|
||||
}
|
||||
is24HourFormat = DateFormat.is24HourFormat(ApplicationLoader.applicationContext);
|
||||
systemDefaultLocale = newConfig.locale;
|
||||
if (languageOverride != null) {
|
||||
LocaleInfo toSet = currentLocaleInfo;
|
||||
currentLocaleInfo = null;
|
||||
@@ -698,10 +542,6 @@ public class LocaleController {
|
||||
recreateFormatters();
|
||||
}
|
||||
currentLocale = newLocale;
|
||||
currentPluralRules = allRules.get(currentLocale.getLanguage());
|
||||
if (currentPluralRules == null) {
|
||||
currentPluralRules = allRules.get("en");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -724,30 +564,6 @@ public class LocaleController {
|
||||
return "LOC_ERR: formatDateChat";
|
||||
}
|
||||
|
||||
public static String formatDate(long date) {
|
||||
try {
|
||||
Calendar rightNow = Calendar.getInstance();
|
||||
int day = rightNow.get(Calendar.DAY_OF_YEAR);
|
||||
int year = rightNow.get(Calendar.YEAR);
|
||||
rightNow.setTimeInMillis(date * 1000);
|
||||
int dateDay = rightNow.get(Calendar.DAY_OF_YEAR);
|
||||
int dateYear = rightNow.get(Calendar.YEAR);
|
||||
|
||||
if (dateDay == day && year == dateYear) {
|
||||
return getInstance().formatterDay.format(new Date(date * 1000));
|
||||
} else if (dateDay + 1 == day && year == dateYear) {
|
||||
return getString("Yesterday", R.string.Yesterday);
|
||||
} else if (year == dateYear) {
|
||||
return getInstance().formatterMonth.format(new Date(date * 1000));
|
||||
} else {
|
||||
return getInstance().formatterYear.format(new Date(date * 1000));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FileLog.e("messenger", e);
|
||||
}
|
||||
return "LOC_ERR: formatDate";
|
||||
}
|
||||
|
||||
public static String formatDateAudio(long date) {
|
||||
try {
|
||||
Calendar rightNow = Calendar.getInstance();
|
||||
@@ -772,40 +588,6 @@ public class LocaleController {
|
||||
return "LOC_ERR";
|
||||
}
|
||||
|
||||
public static String formatDateOnline(long date) {
|
||||
try {
|
||||
Calendar rightNow = Calendar.getInstance();
|
||||
int day = rightNow.get(Calendar.DAY_OF_YEAR);
|
||||
int year = rightNow.get(Calendar.YEAR);
|
||||
rightNow.setTimeInMillis(date * 1000);
|
||||
int dateDay = rightNow.get(Calendar.DAY_OF_YEAR);
|
||||
int dateYear = rightNow.get(Calendar.YEAR);
|
||||
|
||||
if (dateDay == day && year == dateYear) {
|
||||
return String.format("%s %s %s", LocaleController.getString("LastSeen", R.string.LastSeen), LocaleController.getString("TodayAt", R.string.TodayAt), getInstance().formatterDay.format(new Date(date * 1000)));
|
||||
/*int diff = (int) (ConnectionsManager.getInstance().getCurrentTime() - date) / 60;
|
||||
if (diff < 1) {
|
||||
return LocaleController.getString("LastSeenNow", R.string.LastSeenNow);
|
||||
} else if (diff < 60) {
|
||||
return LocaleController.formatPluralString("LastSeenMinutes", diff);
|
||||
} else {
|
||||
return LocaleController.formatPluralString("LastSeenHours", (int) Math.ceil(diff / 60.0f));
|
||||
}*/
|
||||
} else if (dateDay + 1 == day && year == dateYear) {
|
||||
return String.format("%s %s %s", LocaleController.getString("LastSeen", R.string.LastSeen), LocaleController.getString("YesterdayAt", R.string.YesterdayAt), getInstance().formatterDay.format(new Date(date * 1000)));
|
||||
} else if (year == dateYear) {
|
||||
String format = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, getInstance().formatterMonth.format(new Date(date * 1000)), getInstance().formatterDay.format(new Date(date * 1000)));
|
||||
return String.format("%s %s", LocaleController.getString("LastSeenDate", R.string.LastSeenDate), format);
|
||||
} else {
|
||||
String format = LocaleController.formatString("formatDateAtTime", R.string.formatDateAtTime, getInstance().formatterYear.format(new Date(date * 1000)), getInstance().formatterDay.format(new Date(date * 1000)));
|
||||
return String.format("%s %s", LocaleController.getString("LastSeenDate", R.string.LastSeenDate), format);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FileLog.e("messenger", e);
|
||||
}
|
||||
return "LOC_ERR";
|
||||
}
|
||||
|
||||
private FastDateFormat createFormatter(Locale locale, String format, String defaultFormat) {
|
||||
if (format == null || format.length() == 0) {
|
||||
format = defaultFormat;
|
||||
@@ -867,284 +649,4 @@ public class LocaleController {
|
||||
}
|
||||
return "LOC_ERR";
|
||||
}
|
||||
|
||||
/*
|
||||
public static String formatShortNumber(int number, int[] rounded) {
|
||||
String K = "";
|
||||
int lastDec = 0;
|
||||
int KCount = 0;
|
||||
while (number / 1000 > 0) {
|
||||
K += "K";
|
||||
lastDec = (number % 1000) / 100;
|
||||
number /= 1000;
|
||||
}
|
||||
if (rounded != null) {
|
||||
double value = number + lastDec / 10.0;
|
||||
for (int a = 0; a < K.length(); a++) {
|
||||
value *= 1000;
|
||||
}
|
||||
rounded[0] = (int) value;
|
||||
}
|
||||
if (lastDec != 0 && K.length() > 0) {
|
||||
if (K.length() == 2) {
|
||||
return String.format(Locale.US, "%d.%dM", number, lastDec);
|
||||
} else {
|
||||
return String.format(Locale.US, "%d.%d%s", number, lastDec, K);
|
||||
}
|
||||
}
|
||||
if (K.length() == 2) {
|
||||
return String.format(Locale.US, "%dM", number);
|
||||
} else {
|
||||
return String.format(Locale.US, "%d%s", number, K);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
abstract public static class PluralRules {
|
||||
abstract int quantityForNumber(int n);
|
||||
}
|
||||
|
||||
public static class PluralRules_Zero extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 0 || count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Welsh extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 0) {
|
||||
return QUANTITY_ZERO;
|
||||
} else if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count == 2) {
|
||||
return QUANTITY_TWO;
|
||||
} else if (count == 3) {
|
||||
return QUANTITY_FEW;
|
||||
} else if (count == 6) {
|
||||
return QUANTITY_MANY;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Two extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count == 2) {
|
||||
return QUANTITY_TWO;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Tachelhit extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count >= 0 && count <= 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count >= 2 && count <= 10) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Slovenian extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
if (rem100 == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (rem100 == 2) {
|
||||
return QUANTITY_TWO;
|
||||
} else if (rem100 >= 3 && rem100 <= 4) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Romanian extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if ((count == 0 || (rem100 >= 1 && rem100 <= 19))) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Polish extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
int rem10 = count % 10;
|
||||
if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (rem10 >= 2 && rem10 <= 4 && !(rem100 >= 12 && rem100 <= 14) && !(rem100 >= 22 && rem100 <= 24)) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_One extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
return count == 1 ? QUANTITY_ONE : QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_None extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Maltese extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count == 0 || (rem100 >= 2 && rem100 <= 10)) {
|
||||
return QUANTITY_FEW;
|
||||
} else if (rem100 >= 11 && rem100 <= 19) {
|
||||
return QUANTITY_MANY;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Macedonian extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count % 10 == 1 && count != 11) {
|
||||
return QUANTITY_ONE;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Lithuanian extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
int rem10 = count % 10;
|
||||
if (rem10 == 1 && !(rem100 >= 11 && rem100 <= 19)) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (rem10 >= 2 && rem10 <= 9 && !(rem100 >= 11 && rem100 <= 19)) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Latvian extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 0) {
|
||||
return QUANTITY_ZERO;
|
||||
} else if (count % 10 == 1 && count % 100 != 11) {
|
||||
return QUANTITY_ONE;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Langi extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 0) {
|
||||
return QUANTITY_ZERO;
|
||||
} else if (count > 0 && count < 2) {
|
||||
return QUANTITY_ONE;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_French extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count >= 0 && count < 2) {
|
||||
return QUANTITY_ONE;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Czech extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count >= 2 && count <= 4) {
|
||||
return QUANTITY_FEW;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Breton extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
if (count == 0) {
|
||||
return QUANTITY_ZERO;
|
||||
} else if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count == 2) {
|
||||
return QUANTITY_TWO;
|
||||
} else if (count == 3) {
|
||||
return QUANTITY_FEW;
|
||||
} else if (count == 6) {
|
||||
return QUANTITY_MANY;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Balkan extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
int rem10 = count % 10;
|
||||
if (rem10 == 1 && rem100 != 11) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (rem10 >= 2 && rem10 <= 4 && !(rem100 >= 12 && rem100 <= 14)) {
|
||||
return QUANTITY_FEW;
|
||||
} else if ((rem10 == 0 || (rem10 >= 5 && rem10 <= 9) || (rem100 >= 11 && rem100 <= 14))) {
|
||||
return QUANTITY_MANY;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class PluralRules_Arabic extends PluralRules {
|
||||
public int quantityForNumber(int count) {
|
||||
int rem100 = count % 100;
|
||||
if (count == 0) {
|
||||
return QUANTITY_ZERO;
|
||||
} else if (count == 1) {
|
||||
return QUANTITY_ONE;
|
||||
} else if (count == 2) {
|
||||
return QUANTITY_TWO;
|
||||
} else if (rem100 >= 3 && rem100 <= 10) {
|
||||
return QUANTITY_FEW;
|
||||
} else if (rem100 >= 11 && rem100 <= 99) {
|
||||
return QUANTITY_MANY;
|
||||
} else {
|
||||
return QUANTITY_OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2422,7 +2422,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("shuffleMusic", shuffleMusic);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (shuffleMusic) {
|
||||
buildShuffledPlayList();
|
||||
currentPlaylistNum = 0;
|
||||
@@ -2446,7 +2446,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("repeatMode", repeatMode);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public boolean pauseAudio(MessageObject messageObject) {
|
||||
@@ -2982,7 +2982,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("save_gallery", saveToGallery);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
checkSaveToGalleryFiles();
|
||||
}
|
||||
|
||||
@@ -2991,7 +2991,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("autoplay_gif", autoplayGifs);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -3000,7 +3000,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("raise_to_speak", raiseToSpeak);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public void toggleDirectShare() {
|
||||
@@ -3008,7 +3008,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("direct_share", directShare);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public void checkSaveToGalleryFiles() { // not sure, but it seems as if these paths are not needed
|
||||
@@ -3495,12 +3495,12 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("videoconvert", Activity.MODE_PRIVATE);
|
||||
boolean isPreviousOk = preferences.getBoolean("isPreviousOk", true);
|
||||
preferences.edit().putBoolean("isPreviousOk", false).commit();
|
||||
preferences.edit().putBoolean("isPreviousOk", false).apply();
|
||||
|
||||
File inputFile = new File(videoPath);
|
||||
if (!inputFile.canRead() || !isPreviousOk) {
|
||||
didWriteData(messageObject, cacheFile, true, true);
|
||||
preferences.edit().putBoolean("isPreviousOk", true).commit();
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -3888,11 +3888,11 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
FileLog.e("messenger", "time = " + (System.currentTimeMillis() - time));
|
||||
}
|
||||
} else {
|
||||
preferences.edit().putBoolean("isPreviousOk", true).commit();
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
didWriteData(messageObject, cacheFile, true, true);
|
||||
return false;
|
||||
}
|
||||
preferences.edit().putBoolean("isPreviousOk", true).commit();
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
didWriteData(messageObject, cacheFile, true, error);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
package com.b44t.messenger;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Paint;
|
||||
import android.text.Layout;
|
||||
import android.text.Spannable;
|
||||
@@ -43,6 +44,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class MessageObject {
|
||||
|
||||
private Context mContext = ApplicationLoader.applicationContext;
|
||||
|
||||
public static final int MESSAGE_SEND_STATE_SENDING = 1;
|
||||
public static final int MESSAGE_SEND_STATE_SENT = 0;
|
||||
public static final int MESSAGE_SEND_STATE_SEND_ERROR = 2;
|
||||
@@ -210,33 +213,34 @@ public class MessageObject {
|
||||
if (message.media instanceof TLRPC.TL_messageMediaPhoto) {
|
||||
messageText = LocaleController.getString("AttachPhoto", R.string.AttachPhoto);
|
||||
} else if (isVideo()) {
|
||||
messageText = LocaleController.getString("AttachVideo", R.string.AttachVideo);
|
||||
messageText = mContext.getString(R.string.AttachVideo);
|
||||
} else if (isVoice()) {
|
||||
messageText = LocaleController.getString("AttachAudio", R.string.AttachAudio);
|
||||
messageText = mContext.getString(R.string.AttachAudio);
|
||||
} else if (message.media instanceof TLRPC.TL_messageMediaGeo || message.media instanceof TLRPC.TL_messageMediaVenue) {
|
||||
messageText = LocaleController.getString("AttachLocation", R.string.AttachLocation);
|
||||
messageText = mContext.getString(R.string.AttachLocation);
|
||||
} else if (message.media instanceof TLRPC.TL_messageMediaContact) {
|
||||
messageText = LocaleController.getString("AttachContact", R.string.AttachContact);
|
||||
messageText = mContext.getString(R.string.AttachContact);
|
||||
/*} else if (message.media instanceof TLRPC.TL_messageMediaUnsupported) {
|
||||
messageText = LocaleController.getString("UnsupportedMedia", R.string.UnsupportedMedia);*/
|
||||
} else if (message.media instanceof TLRPC.TL_messageMediaDocument) {
|
||||
if (isSticker()) {
|
||||
String sch = getStrickerChar();
|
||||
if (sch != null && sch.length() > 0) {
|
||||
messageText = String.format("%s %s", sch, LocaleController.getString("AttachSticker", R.string.AttachSticker));
|
||||
// @TODO: This needs plural handling.
|
||||
messageText = String.format("%s %s", sch, mContext.getString(R.string.AttachSticker));
|
||||
} else {
|
||||
messageText = LocaleController.getString("AttachSticker", R.string.AttachSticker);
|
||||
messageText = mContext.getString(R.string.AttachSticker);
|
||||
}
|
||||
} else if (isMusic()) {
|
||||
messageText = LocaleController.getString("AttachMusic", R.string.AttachMusic);
|
||||
messageText = mContext.getString(R.string.AttachMusic);
|
||||
} else if (isGif()) {
|
||||
messageText = LocaleController.getString("AttachGif", R.string.AttachGif);
|
||||
messageText = mContext.getString(R.string.AttachGif);
|
||||
} else {
|
||||
String name = FileLoader.getDocumentFileName(message.media.document);
|
||||
if (name != null && name.length() > 0) {
|
||||
messageText = name;
|
||||
} else {
|
||||
messageText = LocaleController.getString("AttachDocument", R.string.AttachDocument);
|
||||
messageText = mContext.getString(R.string.AttachDocument);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1294,7 +1298,7 @@ public class MessageObject {
|
||||
if (title == null || title.length() == 0) {
|
||||
title = FileLoader.getDocumentFileName(document);
|
||||
if (title == null || title.length() == 0) {
|
||||
title = LocaleController.getString("AudioUnknownTitle", R.string.AudioUnknownTitle);
|
||||
title = mContext.getString(R.string.AudioUnknownTitle);
|
||||
}
|
||||
}
|
||||
return title;
|
||||
@@ -1331,7 +1335,7 @@ public class MessageObject {
|
||||
if (attribute instanceof TLRPC.TL_documentAttributeAudio) {
|
||||
if (attribute.voice) {
|
||||
if (isOutOwner() ) {
|
||||
return LocaleController.getString("FromSelf", R.string.FromSelf);
|
||||
return mContext.getString(R.string.FromSelf);
|
||||
}
|
||||
else if (messageOwner.fwd_from != null ) {
|
||||
return messageOwner.fwd_from.m_name;
|
||||
@@ -1342,7 +1346,7 @@ public class MessageObject {
|
||||
}
|
||||
String performer = attribute.performer;
|
||||
if (performer == null || performer.length() == 0) {
|
||||
performer = LocaleController.getString("AudioUnknownArtist", R.string.AudioUnknownArtist);
|
||||
performer = mContext.getString(R.string.AudioUnknownArtist);
|
||||
}
|
||||
return performer;
|
||||
}
|
||||
@@ -1363,7 +1367,7 @@ public class MessageObject {
|
||||
}
|
||||
|
||||
public boolean isReply() {
|
||||
return !(replyMessageObject != null && replyMessageObject.messageOwner instanceof TLRPC.TL_messageEmpty) && (messageOwner.reply_to_msg_id != 0 || messageOwner.reply_to_random_id != 0) && (messageOwner.flags & TLRPC.MESSAGE_FLAG_REPLY) != 0;
|
||||
return (messageOwner.reply_to_msg_id != 0 || messageOwner.reply_to_random_id != 0) && (messageOwner.flags & TLRPC.MESSAGE_FLAG_REPLY) != 0;
|
||||
}
|
||||
|
||||
public boolean isMediaEmpty() {
|
||||
@@ -1410,9 +1414,7 @@ public class MessageObject {
|
||||
if (currentPhotoObject == null) {
|
||||
return;
|
||||
}
|
||||
if (currentPhotoObject != null) {
|
||||
mediaExists = FileLoader.getPathToAttach(currentPhotoObject, true).exists();
|
||||
}
|
||||
mediaExists = FileLoader.getPathToAttach(currentPhotoObject, true).exists();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -91,36 +91,6 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||
fontSize = preferences.getInt("msg_font_size", SettingsActivity.defMsgFontSize());
|
||||
}
|
||||
|
||||
/*
|
||||
public static TLRPC.InputUser getInputUser(TLRPC.User user) {
|
||||
if (user == null) {
|
||||
return new TLRPC.TL_inputUserEmpty();
|
||||
}
|
||||
TLRPC.InputUser inputUser;
|
||||
if (user.id == UserConfig.getClientUserId()) {
|
||||
inputUser = new TLRPC.TL_inputUserSelf();
|
||||
} else {
|
||||
inputUser = new TLRPC.TL_inputUser();
|
||||
inputUser.user_id = user.id;
|
||||
}
|
||||
return inputUser;
|
||||
}
|
||||
|
||||
public static TLRPC.InputUser getInputUser(int user_id) {
|
||||
TLRPC.User user = getInstance().getUser(user_id);
|
||||
return getInputUser(user);
|
||||
}
|
||||
*/
|
||||
|
||||
public static TLRPC.InputPeer getInputPeer(int id) {
|
||||
TLRPC.InputPeer inputPeer;
|
||||
{
|
||||
inputPeer = new TLRPC.TL_inputPeerUser();
|
||||
inputPeer.user_id = id;
|
||||
}
|
||||
return inputPeer;
|
||||
}
|
||||
|
||||
public static TLRPC.Peer getPeer(int id) {
|
||||
TLRPC.Peer inputPeer;
|
||||
/*if (id < 0) {
|
||||
|
||||
@@ -173,17 +173,16 @@ public class MrMailbox {
|
||||
return MrMailboxGetMsgInfo(m_hMailbox, id);
|
||||
}
|
||||
|
||||
public native static void deleteMsg(int id);
|
||||
public native static void deleteMsgs(int msg_ids[]);
|
||||
public native static void forwardMsgs(int msg_ids[], int chat_ids);
|
||||
|
||||
private native static long MrMailboxGetMsg (long hMailbox, int id); // return hMsg which must be unref'd after usage
|
||||
private native static String MrMailboxGetMsgInfo (long hMailbox, int id);
|
||||
|
||||
// static
|
||||
private native static void MrStockAddStr (int id, String str);
|
||||
public native static String MrGetVersionStr ();
|
||||
public native static String CPtr2String (long hString); // get strings eg. from data1 from the callback
|
||||
|
||||
public native static long String2CPtr (String str);
|
||||
|
||||
/* receive events
|
||||
**********************************************************************************************/
|
||||
@@ -196,6 +195,8 @@ public class MrMailbox {
|
||||
public final static int MR_EVENT_CONTACTS_CHANGED = 2030;
|
||||
public final static int MR_EVENT_CONNECTION_STATE_CHANGED = 2040;
|
||||
public final static int MR_EVENT_REPORT = 2050;
|
||||
public final static int MR_EVENT_GET_STRING = 2091;
|
||||
public final static int MR_EVENT_GET_QUANTITIY_STRING = 2092;
|
||||
|
||||
public final static int MR_REPORT_ERR_SELF_NOT_IN_GROUP = 1;
|
||||
|
||||
@@ -271,6 +272,35 @@ public class MrMailbox {
|
||||
}
|
||||
});
|
||||
return 0;
|
||||
|
||||
case MR_EVENT_GET_STRING:
|
||||
String s = "ErrStrBadId";
|
||||
switch( (int)data1 ) {
|
||||
case 1: s = LocaleController.getString("NoMessages", R.string.NoMessages); break;
|
||||
case 2: s = LocaleController.getString("FromSelf", R.string.FromSelf); break;
|
||||
case 3: s = LocaleController.getString("Draft", R.string.Draft); break;
|
||||
case 8: s = LocaleController.getString("Deaddrop", R.string.Deaddrop); break;
|
||||
case 9: s = LocaleController.getString("AttachPhoto", R.string.AttachPhoto); break;
|
||||
case 10: s = LocaleController.getString("AttachVideo", R.string.AttachVideo); break;
|
||||
case 11: s = LocaleController.getString("AttachAudio", R.string.AttachAudio); break;
|
||||
case 12: s = LocaleController.getString("AttachDocument", R.string.AttachDocument); break;
|
||||
case 13: s = LocaleController.getString("DefaultStatusText", R.string.DefaultStatusText); break;
|
||||
case 14: s = LocaleController.getString("MsgNewGroupDraft", R.string.MsgNewGroupDraft); break;
|
||||
case 15: s = LocaleController.getString("MsgGroupNameChanged", R.string.MsgGroupNameChanged); break;
|
||||
case 16: s = LocaleController.getString("MsgGroupImageChanged", R.string.MsgGroupImageChanged); break;
|
||||
case 17: s = LocaleController.getString("MsgMemberAddedToGroup", R.string.MsgMemberAddedToGroup); break;
|
||||
case 18: s = LocaleController.getString("MsgMemberRemovedFromToGroup", R.string.MsgMemberRemovedFromToGroup); break;
|
||||
case 19: s = LocaleController.getString("MsgGroupLeft", R.string.MsgGroupLeft); break;
|
||||
}
|
||||
return String2CPtr(s);
|
||||
|
||||
case MR_EVENT_GET_QUANTITIY_STRING:
|
||||
String sp = "ErrQtyStrBadId";
|
||||
switch( (int)data1 ) {
|
||||
case 4: sp = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Members, (int)data2, (int)data2); break;
|
||||
case 6: sp = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Contacts, (int)data2, (int)data2); break;
|
||||
}
|
||||
return String2CPtr(sp);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -304,29 +334,6 @@ public class MrMailbox {
|
||||
});
|
||||
}
|
||||
|
||||
public static void initStockStrings()
|
||||
{
|
||||
MrStockAddStr(1, LocaleController.getString("NoMessages", R.string.NoMessages));
|
||||
MrStockAddStr(2, LocaleController.getString("FromSelf", R.string.FromSelf));
|
||||
MrStockAddStr(3, LocaleController.getString("Draft", R.string.Draft));
|
||||
MrStockAddStr(4, LocaleController.getString("MemberSg", R.string.MemberSg));
|
||||
MrStockAddStr(5, LocaleController.getString("MemberPl", R.string.MemberPl));
|
||||
MrStockAddStr(6, LocaleController.getString("ContactSg", R.string.ContactSg));
|
||||
MrStockAddStr(7, LocaleController.getString("ContactPl", R.string.ContactPl));
|
||||
MrStockAddStr(8, LocaleController.getString("Deaddrop", R.string.Deaddrop));
|
||||
MrStockAddStr(9, LocaleController.getString("AttachPhoto", R.string.AttachPhoto));
|
||||
MrStockAddStr(10, LocaleController.getString("AttachVideo", R.string.AttachVideo));
|
||||
MrStockAddStr(11, LocaleController.getString("AttachAudio", R.string.AttachAudio));
|
||||
MrStockAddStr(12, LocaleController.getString("AttachDocument", R.string.AttachDocument));
|
||||
MrStockAddStr(13, LocaleController.getString("DefaultStatusText", R.string.DefaultStatusText));
|
||||
MrStockAddStr(14, LocaleController.getString("MsgNewGroupDraft", R.string.MsgNewGroupDraft));
|
||||
MrStockAddStr(15, LocaleController.getString("MsgGroupNameChanged", R.string.MsgGroupNameChanged));
|
||||
MrStockAddStr(16, LocaleController.getString("MsgGroupImageChanged", R.string.MsgGroupImageChanged));
|
||||
MrStockAddStr(17, LocaleController.getString("MsgMemberAddedToGroup", R.string.MsgMemberAddedToGroup));
|
||||
MrStockAddStr(18, LocaleController.getString("MsgMemberRemovedFromToGroup", R.string.MsgMemberRemovedFromToGroup));
|
||||
MrStockAddStr(19, LocaleController.getString("MsgGroupLeft", R.string.MsgGroupLeft));
|
||||
}
|
||||
|
||||
public static String getInviteText() {
|
||||
String url = "https://getdelta.org";
|
||||
String email = getConfig("addr", "");
|
||||
|
||||
@@ -408,7 +408,7 @@ public class MusicBrowserService extends MediaBrowserService implements Notifica
|
||||
return;
|
||||
}
|
||||
lastSelectedDialog = did;
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE).edit().putInt("auto_lastSelectedDialog", did).commit();
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE).edit().putInt("auto_lastSelectedDialog", did).apply();
|
||||
MediaController.getInstance().setPlaylist(arrayList, arrayList.get(id), false);
|
||||
mediaSession.setQueue(arrayList1);
|
||||
if (did > 0) {
|
||||
|
||||
@@ -45,7 +45,7 @@ public class NotificationCenter {
|
||||
public static final int mediaCountDidLoaded = totalEvents++;
|
||||
public static final int dialogPhotosLoaded = totalEvents++;
|
||||
public static final int notificationsSettingsUpdated = totalEvents++;
|
||||
public static final int pushMessagesUpdated = totalEvents++;
|
||||
//public static final int pushMessagesUpdated = totalEvents++;
|
||||
public static final int blockedUsersDidLoaded = totalEvents++;
|
||||
public static final int openedChatChanged = totalEvents++;
|
||||
public static final int stopEncodingService = totalEvents++;
|
||||
|
||||
@@ -33,6 +33,6 @@ public class NotificationDismissReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE);
|
||||
preferences.edit().putInt("dismissDate", intent.getIntExtra("messageDate", 0)).commit();
|
||||
preferences.edit().putInt("dismissDate", intent.getIntExtra("messageDate", 0)).apply();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,10 +33,7 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.media.AudioManager;
|
||||
import android.media.SoundPool;
|
||||
import android.net.Uri;
|
||||
@@ -47,7 +44,6 @@ import android.provider.Settings;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.app.NotificationManagerCompat;
|
||||
import android.support.v4.app.RemoteInput;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import com.b44t.ui.ActionBar.Theme;
|
||||
import com.b44t.ui.LaunchActivity;
|
||||
@@ -59,6 +55,8 @@ import java.util.List;
|
||||
|
||||
public class NotificationsController {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public static final String EXTRA_VOICE_REPLY = "extra_voice_reply";
|
||||
|
||||
private DispatchQueue notificationsQueue = new DispatchQueue("notificationsQueue");
|
||||
@@ -77,9 +75,7 @@ public class NotificationsController {
|
||||
private int total_unread_count = 0;
|
||||
private int personal_count = 0;
|
||||
private boolean notifyCheck = false;
|
||||
private int lastOnlineFromOtherDevice = 0;
|
||||
private boolean inChatSoundEnabled = true;
|
||||
private int lastBadgeCount;
|
||||
private String launcherClassName;
|
||||
|
||||
private Runnable notificationDelayRunnable;
|
||||
@@ -90,10 +86,8 @@ public class NotificationsController {
|
||||
private SoundPool soundPool;
|
||||
private int soundIn;
|
||||
private int soundOut;
|
||||
private int soundRecord;
|
||||
private boolean soundInLoaded;
|
||||
private boolean soundOutLoaded;
|
||||
private boolean soundRecordLoaded;
|
||||
protected AudioManager audioManager;
|
||||
private AlarmManager alarmManager;
|
||||
|
||||
@@ -112,6 +106,7 @@ public class NotificationsController {
|
||||
}
|
||||
|
||||
public NotificationsController() {
|
||||
mContext = ApplicationLoader.applicationContext;
|
||||
notificationManager = NotificationManagerCompat.from(ApplicationLoader.applicationContext);
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE);
|
||||
inChatSoundEnabled = preferences.getBoolean("EnableInChatSound", true);
|
||||
@@ -154,6 +149,7 @@ public class NotificationsController {
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
public void cleanup() {
|
||||
popupMessages.clear();
|
||||
notificationsQueue.postRunnable(new Runnable() {
|
||||
@@ -185,6 +181,7 @@ public class NotificationsController {
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
public void setInChatSoundEnabled(boolean value) {
|
||||
inChatSoundEnabled = value;
|
||||
@@ -199,18 +196,6 @@ public class NotificationsController {
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
public void setLastOnlineFromOtherDevice(final int time) {
|
||||
notificationsQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
FileLog.e("messenger", "set last online from other device = " + time);
|
||||
lastOnlineFromOtherDevice = time;
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
public void removeNotificationsForDialog(long did) {
|
||||
NotificationsController.getInstance().processReadMessages(null, did, 0, Integer.MAX_VALUE, false);
|
||||
@@ -747,6 +732,7 @@ public class NotificationsController {
|
||||
setBadge(enabled ? total_unread_count : 0);
|
||||
}
|
||||
|
||||
private int lastBadgeCount = -1;
|
||||
private void setBadge(final int count) {
|
||||
|
||||
notificationsQueue.postRunnable(new Runnable() {
|
||||
@@ -882,12 +868,14 @@ public class NotificationsController {
|
||||
notificationManager.cancel(entry.getValue());
|
||||
}
|
||||
wearNotificationsIds.clear();
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
/*AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.pushMessagesUpdated);
|
||||
}
|
||||
});
|
||||
});*/
|
||||
total_unread_count = 0;
|
||||
setBadge(0);
|
||||
} catch (Exception e) {
|
||||
FileLog.e("messenger", e);
|
||||
}
|
||||
@@ -1121,7 +1109,7 @@ public class NotificationsController {
|
||||
|
||||
String name;
|
||||
if ( pushDialogs.size() > 1 || !showPreview ) {
|
||||
name = LocaleController.getString("AppName", R.string.AppName);
|
||||
name = mContext.getString(R.string.AppName);
|
||||
} else {
|
||||
if ( isGroupChat ) {
|
||||
name = mrChat.getName();
|
||||
@@ -1132,11 +1120,10 @@ public class NotificationsController {
|
||||
|
||||
String detailText;
|
||||
if (pushDialogs.size() == 1) {
|
||||
detailText = LocaleController.formatPluralString("NewMessages", total_unread_count);
|
||||
detailText = mContext.getResources().getQuantityString(R.plurals.NewMessages, total_unread_count, total_unread_count);
|
||||
} else {
|
||||
detailText = LocaleController.formatString("NotificationMessagesPeopleDisplayOrder", R.string.NotificationMessagesPeopleDisplayOrder,
|
||||
LocaleController.formatPluralString("NewMessages", total_unread_count),
|
||||
LocaleController.formatPluralString("FromChats", pushDialogs.size()));
|
||||
String newMessages = mContext.getResources().getQuantityString(R.plurals.NewMessages, total_unread_count, total_unread_count);
|
||||
detailText = mContext.getResources().getQuantityString(R.plurals.NewMessagesInChats, pushDialogs.size(), newMessages, pushDialogs.size());
|
||||
}
|
||||
|
||||
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ApplicationLoader.applicationContext)
|
||||
@@ -1347,7 +1334,7 @@ public class NotificationsController {
|
||||
}
|
||||
TLRPC.FileLocation photoPath = null;
|
||||
if (AndroidUtilities.needShowPasscode(false) || UserConfig.isWaitingForPasscodeEnter) {
|
||||
name = LocaleController.getString("AppName", R.string.AppName);
|
||||
name = mContext.getString(R.string.AppName);
|
||||
} else {
|
||||
if (chat != null) {
|
||||
name = chat.title;
|
||||
@@ -1398,19 +1385,19 @@ public class NotificationsController {
|
||||
msgReplyIntent.putExtra("dialog_id", dialog_id);
|
||||
msgReplyIntent.putExtra("max_id", max_id);
|
||||
PendingIntent msgReplyPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, notificationIdAuto, msgReplyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
RemoteInput remoteInputAuto = new RemoteInput.Builder(NotificationsController.EXTRA_VOICE_REPLY).setLabel(LocaleController.getString("Reply", R.string.Reply)).build();
|
||||
RemoteInput remoteInputAuto = new RemoteInput.Builder(NotificationsController.EXTRA_VOICE_REPLY).setLabel(mContext.getString(R.string.Reply)).build();
|
||||
unreadConvBuilder.setReplyAction(msgReplyPendingIntent, remoteInputAuto);
|
||||
|
||||
Intent replyIntent = new Intent(ApplicationLoader.applicationContext, WearReplyReceiver.class);
|
||||
replyIntent.putExtra("dialog_id", dialog_id);
|
||||
replyIntent.putExtra("max_id", max_id);
|
||||
PendingIntent replyPendingIntent = PendingIntent.getBroadcast(ApplicationLoader.applicationContext, notificationIdWear, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
RemoteInput remoteInputWear = new RemoteInput.Builder(EXTRA_VOICE_REPLY).setLabel(LocaleController.getString("Reply", R.string.Reply)).build();
|
||||
RemoteInput remoteInputWear = new RemoteInput.Builder(EXTRA_VOICE_REPLY).setLabel(mContext.getString(R.string.Reply)).build();
|
||||
String replyToString;
|
||||
if (chat != null) {
|
||||
replyToString = LocaleController.formatString("ReplyToGroup", R.string.ReplyToGroup, name);
|
||||
replyToString = String.format(mContext.getString(R.string.ReplyToGroup), name);
|
||||
} else {
|
||||
replyToString = LocaleController.formatString("ReplyToUser", R.string.ReplyToUser, name);
|
||||
replyToString = String.format(mContext.getString(R.string.ReplyToUser), name);
|
||||
}
|
||||
wearReplyAction = new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon, replyToString, replyPendingIntent).addRemoteInput(remoteInputWear).build();
|
||||
}
|
||||
|
||||
@@ -425,15 +425,6 @@ public class TLRPC {
|
||||
public static class TL_inputPhoto extends InputPhoto {
|
||||
}
|
||||
|
||||
public static class InputPeer extends TLObject {
|
||||
public int user_id;
|
||||
public int chat_id;
|
||||
public int channel_id;
|
||||
}
|
||||
|
||||
public static class TL_inputPeerUser extends InputPeer {
|
||||
}
|
||||
|
||||
public static class MessageMedia extends TLObject {
|
||||
public byte[] bytes;
|
||||
public Photo photo;
|
||||
@@ -478,9 +469,6 @@ public class TLRPC {
|
||||
public boolean created_by_mr;
|
||||
}
|
||||
|
||||
public static class TL_messageEmpty extends Message {
|
||||
}
|
||||
|
||||
public static class TL_message extends Message {
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ public class UserConfig {
|
||||
}
|
||||
*/
|
||||
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (oldFile != null) {
|
||||
oldFile.delete();
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.messenger;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.IBinder;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
@@ -31,6 +32,7 @@ import android.support.v4.app.NotificationManagerCompat;
|
||||
|
||||
public class VideoEncodingService extends Service implements NotificationCenter.NotificationCenterDelegate {
|
||||
|
||||
private Context mContext = ApplicationLoader.applicationContext;
|
||||
private NotificationCompat.Builder builder = null;
|
||||
private String path = null;
|
||||
private int currentProgress = 0;
|
||||
@@ -61,7 +63,7 @@ public class VideoEncodingService extends Service implements NotificationCenter.
|
||||
Boolean enc = (Boolean) args[2];
|
||||
currentProgress = (int)(progress * 100);
|
||||
builder.setProgress(100, currentProgress, currentProgress == 0);
|
||||
NotificationManagerCompat.from(ApplicationLoader.applicationContext).notify(4, builder.build());
|
||||
NotificationManagerCompat.from(mContext).notify(4, builder.build());
|
||||
}
|
||||
} else if (id == NotificationCenter.stopEncodingService) {
|
||||
String filepath = (String)args[0];
|
||||
@@ -79,17 +81,17 @@ public class VideoEncodingService extends Service implements NotificationCenter.
|
||||
}
|
||||
FileLog.e("messenger", "start video service");
|
||||
if (builder == null) {
|
||||
builder = new NotificationCompat.Builder(ApplicationLoader.applicationContext);
|
||||
builder = new NotificationCompat.Builder(mContext);
|
||||
builder.setSmallIcon(android.R.drawable.stat_sys_upload);
|
||||
builder.setWhen(System.currentTimeMillis());
|
||||
builder.setContentTitle(LocaleController.getString("AppName", R.string.AppName));
|
||||
builder.setTicker(LocaleController.getString("SendingVideo", R.string.SendingVideo));
|
||||
builder.setContentText(LocaleController.getString("SendingVideo", R.string.SendingVideo));
|
||||
builder.setContentTitle(mContext.getString(R.string.AppName));
|
||||
builder.setTicker(mContext.getString(R.string.SendingVideo));
|
||||
builder.setContentText(mContext.getString(R.string.SendingVideo));
|
||||
}
|
||||
currentProgress = 0;
|
||||
builder.setProgress(100, currentProgress, currentProgress == 0);
|
||||
startForeground(4, builder.build());
|
||||
NotificationManagerCompat.from(ApplicationLoader.applicationContext).notify(4, builder.build());
|
||||
NotificationManagerCompat.from(mContext).notify(4, builder.build());
|
||||
return Service.START_NOT_STICKY;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1890,7 +1890,7 @@ public class LinearLayoutManager extends RecyclerView.LayoutManager implements
|
||||
*/
|
||||
static class LayoutState {
|
||||
|
||||
final static String TAG = "LinearLayoutManager#LayoutState";
|
||||
final static String TAG = "LinLayMngr#LayoutState";
|
||||
|
||||
final static int LAYOUT_START = -1;
|
||||
|
||||
|
||||
@@ -7538,6 +7538,7 @@ public class RecyclerView extends ViewGroup implements ScrollingView, NestedScro
|
||||
resultMode = MeasureSpec.AT_MOST;
|
||||
}
|
||||
}
|
||||
//noinspection WrongConstant
|
||||
return MeasureSpec.makeMeasureSpec(resultSize, resultMode);
|
||||
}
|
||||
|
||||
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2011 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.b44t.messenger.volley.toolbox;
|
||||
|
||||
import com.b44t.messenger.volley.AuthFailureError;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.accounts.AccountManagerFuture;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
/**
|
||||
* An Authenticator that uses {@link AccountManager} to get auth
|
||||
* tokens of a specified type for a specified account.
|
||||
*/
|
||||
public class AndroidAuthenticator implements Authenticator {
|
||||
private final AccountManager mAccountManager;
|
||||
private final Account mAccount;
|
||||
private final String mAuthTokenType;
|
||||
private final boolean mNotifyAuthFailure;
|
||||
|
||||
/**
|
||||
* Creates a new authenticator.
|
||||
* @param context Context for accessing AccountManager
|
||||
* @param account Account to authenticate as
|
||||
* @param authTokenType Auth token type passed to AccountManager
|
||||
*/
|
||||
public AndroidAuthenticator(Context context, Account account, String authTokenType) {
|
||||
this(context, account, authTokenType, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new authenticator.
|
||||
* @param context Context for accessing AccountManager
|
||||
* @param account Account to authenticate as
|
||||
* @param authTokenType Auth token type passed to AccountManager
|
||||
* @param notifyAuthFailure Whether to raise a notification upon auth failure
|
||||
*/
|
||||
public AndroidAuthenticator(Context context, Account account, String authTokenType,
|
||||
boolean notifyAuthFailure) {
|
||||
this(AccountManager.get(context), account, authTokenType, notifyAuthFailure);
|
||||
}
|
||||
|
||||
// Visible for testing. Allows injection of a mock AccountManager.
|
||||
AndroidAuthenticator(AccountManager accountManager, Account account,
|
||||
String authTokenType, boolean notifyAuthFailure) {
|
||||
mAccountManager = accountManager;
|
||||
mAccount = account;
|
||||
mAuthTokenType = authTokenType;
|
||||
mNotifyAuthFailure = notifyAuthFailure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Account being used by this authenticator.
|
||||
*/
|
||||
public Account getAccount() {
|
||||
return mAccount;
|
||||
}
|
||||
|
||||
// TODO: Figure out what to do about notifyAuthFailure
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public String getAuthToken() throws AuthFailureError {
|
||||
AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(mAccount,
|
||||
mAuthTokenType, mNotifyAuthFailure, null, null);
|
||||
Bundle result;
|
||||
try {
|
||||
result = future.getResult();
|
||||
} catch (Exception e) {
|
||||
throw new AuthFailureError("Error while retrieving auth token", e);
|
||||
}
|
||||
String authToken = null;
|
||||
if (future.isDone() && !future.isCancelled()) {
|
||||
if (result.containsKey(AccountManager.KEY_INTENT)) {
|
||||
Intent intent = result.getParcelable(AccountManager.KEY_INTENT);
|
||||
throw new AuthFailureError(intent);
|
||||
}
|
||||
authToken = result.getString(AccountManager.KEY_AUTHTOKEN);
|
||||
}
|
||||
if (authToken == null) {
|
||||
throw new AuthFailureError("Got null auth token for type: " + mAuthTokenType);
|
||||
}
|
||||
|
||||
return authToken;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateAuthToken(String authToken) {
|
||||
mAccountManager.invalidateAuthToken(mAccount.type, authToken);
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2011 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.b44t.messenger.volley.toolbox;
|
||||
|
||||
import com.b44t.messenger.volley.AuthFailureError;
|
||||
|
||||
/**
|
||||
* An interface for interacting with auth tokens.
|
||||
*/
|
||||
public interface Authenticator {
|
||||
/**
|
||||
* Synchronously retrieves an auth token.
|
||||
*
|
||||
* @throws AuthFailureError If authentication did not succeed
|
||||
*/
|
||||
public String getAuthToken() throws AuthFailureError;
|
||||
|
||||
/**
|
||||
* Invalidates the provided auth token.
|
||||
*/
|
||||
public void invalidateAuthToken(String authToken);
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.view.Gravity;
|
||||
@@ -160,7 +161,6 @@ public class ActionBar extends FrameLayout {
|
||||
titleTextView = new SimpleTextView(getContext());
|
||||
titleTextView.setGravity(Gravity.LEFT);
|
||||
titleTextView.setTextColor(0xffffffff);
|
||||
titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
addView(titleTextView, 0, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP));
|
||||
}
|
||||
|
||||
|
||||
@@ -464,7 +464,6 @@ public class BottomSheet extends Dialog {
|
||||
textView.setGravity(Gravity.CENTER);
|
||||
textView.setTextColor(0xff212121);
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class Theme {
|
||||
|
||||
public static final int ATTACH_SHEET_TEXT_COLOR = 0xff757575;
|
||||
|
||||
public static final int DIALOGS_TITLE_TEXT_COLOR = 0xff212121;
|
||||
public static final int DIALOGS_TITLE_TEXT_COLOR = 0xff000000;
|
||||
public static final int DIALOGS_MESSAGE_TEXT_COLOR = 0xff8f8f8f;
|
||||
public static final int DIALOGS_NAME_TEXT_COLOR = 0xff555555;
|
||||
public static final int DIALOGS_SELF_TEXT_COLOR = 0xff00a60e; // from encrypted chat title: 0xff00a60e, alternative: 0xff3c912e
|
||||
@@ -76,11 +76,6 @@ public class Theme {
|
||||
public static final int INAPP_PLAYER_TITLE_TEXT_COLOR = 0xff2f3438;
|
||||
public static final int INAPP_PLAYER_BACKGROUND_COLOR = 0xffffffff;
|
||||
|
||||
public static final int ALERT_PANEL_NAME_TEXT_COLOR = 0xff3a8ccf;
|
||||
public static final int ALERT_PANEL_MESSAGE_TEXT_COLOR = 0xff999999;
|
||||
|
||||
public static final int AUTODOWNLOAD_SHEET_SAVE_TEXT_COLOR = 0xff3a8ccf;
|
||||
|
||||
public static final int STICKERS_SHEET_TITLE_TEXT_COLOR = 0xff212121;
|
||||
public static final int STICKERS_SHEET_SEND_TEXT_COLOR = 0xff3a8ccf;
|
||||
public static final int STICKERS_SHEET_ADD_TEXT_COLOR = 0xff3a8ccf;
|
||||
@@ -190,16 +185,12 @@ public class Theme {
|
||||
|
||||
public static Drawable shareIconDrawable;
|
||||
|
||||
public static Drawable geoInDrawable;
|
||||
public static Drawable geoOutDrawable;
|
||||
|
||||
public static Drawable[] contactDrawable = new Drawable[2];
|
||||
public static Drawable[][] fileStatesDrawable = new Drawable[10][2];
|
||||
public static Drawable[][] photoStatesDrawables = new Drawable[13][2];
|
||||
public static Drawable[] docMenuDrawable = new Drawable[4];
|
||||
|
||||
public static PorterDuffColorFilter colorFilter;
|
||||
public static PorterDuffColorFilter colorPressedFilter;
|
||||
private static int currentColor;
|
||||
|
||||
public static Drawable attachButtonDrawables[] = new Drawable[8];
|
||||
@@ -295,7 +286,6 @@ public class Theme {
|
||||
int color = ApplicationLoader.getServiceMessageColor();
|
||||
if (currentColor != color) {
|
||||
colorFilter = new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY);
|
||||
colorPressedFilter = new PorterDuffColorFilter(ApplicationLoader.getServiceSelectedMessageColor(), PorterDuff.Mode.MULTIPLY);
|
||||
currentColor = color;
|
||||
for (int a = 0; a < 4; a++) {
|
||||
cornerOuter[a].setColorFilter(colorFilter);
|
||||
|
||||
@@ -27,11 +27,11 @@ import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.b44t.messenger.LocaleController;
|
||||
import com.b44t.messenger.MrChat;
|
||||
import com.b44t.messenger.MrChatlist;
|
||||
import com.b44t.messenger.MrMsg;
|
||||
import com.b44t.messenger.MrPoortext;
|
||||
import com.b44t.messenger.R;
|
||||
import com.b44t.messenger.support.widget.RecyclerView;
|
||||
import com.b44t.messenger.MrMailbox;
|
||||
import com.b44t.ui.Cells.DialogCell;
|
||||
@@ -177,9 +177,9 @@ public class DialogsSearchAdapter extends RecyclerView.Adapter {
|
||||
case ROWTYPE_HEADLINE: {
|
||||
GreySectionCell headlineCell = (GreySectionCell) viewHolder.itemView;
|
||||
if (i == rowChatsHeadline) {
|
||||
headlineCell.setText(LocaleController.formatPluralString("Chats", m_chatlistCnt));
|
||||
headlineCell.setText(mContext.getResources().getQuantityString(R.plurals.Chats, m_chatlistCnt, m_chatlistCnt));
|
||||
} else if (i == rowMsgsHeadline) {
|
||||
headlineCell.setText(LocaleController.formatPluralString("messages", m_msgIds.length));
|
||||
headlineCell.setText(mContext.getResources().getQuantityString(R.plurals.messages, m_msgIds.length, m_msgIds.length));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -320,7 +320,7 @@ public class CacheControlActivity extends BaseFragment {
|
||||
*/
|
||||
|
||||
@Override
|
||||
public View createView(Context context) {
|
||||
public View createView(final Context context) {
|
||||
actionBar.setBackButtonImage(R.drawable.ic_ab_back);
|
||||
actionBar.setAllowOverlayTitle(true);
|
||||
actionBar.setTitle(LocaleController.getString("CacheSettings", R.string.CacheSettings));
|
||||
@@ -351,11 +351,11 @@ public class CacheControlActivity extends BaseFragment {
|
||||
public void onItemClick(final AdapterView<?> adapterView, View view, final int i, long l) {
|
||||
if (i == keepMediaRow) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
builder.setItems(new CharSequence[]{LocaleController.formatPluralString("Weeks", 1), LocaleController.formatPluralString("Months", 1), LocaleController.getString("KeepMediaForever", R.string.KeepMediaForever)}, new DialogInterface.OnClickListener() {
|
||||
builder.setItems(new CharSequence[]{context.getResources().getQuantityString(R.plurals.Weeks, 1, 1), context.getResources().getQuantityString(R.plurals.Months, 1, 1), LocaleController.getString("KeepMediaForever", R.string.KeepMediaForever)}, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, final int which) {
|
||||
SharedPreferences.Editor editor = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE).edit();
|
||||
editor.putInt("keep_media", which).commit();
|
||||
editor.putInt("keep_media", which).apply();
|
||||
if (listAdapter != null) {
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
@@ -639,13 +639,13 @@ public class CacheControlActivity extends BaseFragment {
|
||||
int keepMedia = preferences.getInt("keep_media", 2);
|
||||
String value;
|
||||
if (keepMedia == 0) {
|
||||
value = LocaleController.formatPluralString("Weeks", 1);
|
||||
value = mContext.getResources().getQuantityString(R.plurals.Weeks, 1, 1);
|
||||
} else if (keepMedia == 1) {
|
||||
value = LocaleController.formatPluralString("Months", 1);
|
||||
value = mContext.getResources().getQuantityString(R.plurals.Months, 1, 1);
|
||||
} else {
|
||||
value = LocaleController.getString("KeepMediaForever", R.string.KeepMediaForever);
|
||||
value = mContext.getString(R.string.KeepMediaForever);
|
||||
}
|
||||
textCell.setTextAndValue(LocaleController.getString("KeepMedia", R.string.KeepMedia), value, false);
|
||||
textCell.setTextAndValue(mContext.getString(R.string.KeepMedia), value, false);
|
||||
}
|
||||
} else if (type_ == typeTextInfo) {
|
||||
if (view == null) {
|
||||
|
||||
@@ -99,7 +99,6 @@ public class AudioCell extends FrameLayout {
|
||||
titleTextView = new TextView(context);
|
||||
titleTextView.setTextColor(0xff212121);
|
||||
titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
|
||||
titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
titleTextView.setLines(1);
|
||||
titleTextView.setMaxLines(1);
|
||||
titleTextView.setSingleLine(true);
|
||||
|
||||
@@ -24,45 +24,26 @@
|
||||
package com.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.Layout;
|
||||
import android.text.Spannable;
|
||||
import android.text.StaticLayout;
|
||||
import android.text.TextPaint;
|
||||
import android.text.style.URLSpan;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.SoundEffectConstants;
|
||||
|
||||
import com.b44t.messenger.AndroidUtilities;
|
||||
import com.b44t.messenger.ApplicationLoader;
|
||||
import com.b44t.messenger.ImageReceiver;
|
||||
import com.b44t.messenger.MessageObject;
|
||||
import com.b44t.messenger.MessagesController;
|
||||
import com.b44t.messenger.FileLoader;
|
||||
import com.b44t.messenger.FileLog;
|
||||
import com.b44t.messenger.TLRPC;
|
||||
import com.b44t.messenger.UserConfig;
|
||||
import com.b44t.ui.ActionBar.Theme;
|
||||
import com.b44t.ui.PhotoViewer;
|
||||
import com.b44t.ui.Components.AvatarDrawable;
|
||||
|
||||
public class ChatActionCell extends BaseCell {
|
||||
|
||||
public interface ChatActionCellDelegate {
|
||||
void didClickedImage(ChatActionCell cell);
|
||||
void didLongPressed(ChatActionCell cell);
|
||||
void needOpenUserProfile(int uid);
|
||||
}
|
||||
|
||||
private static TextPaint textPaint;
|
||||
private static Paint backPaint;
|
||||
|
||||
private URLSpan pressedLink;
|
||||
|
||||
private ImageReceiver imageReceiver;
|
||||
private AvatarDrawable avatarDrawable;
|
||||
private StaticLayout textLayout;
|
||||
private int textWidth = 0;
|
||||
private int textHeight = 0;
|
||||
@@ -70,36 +51,26 @@ public class ChatActionCell extends BaseCell {
|
||||
private int textY = 0;
|
||||
private int textXLeft = 0;
|
||||
private int previousWidth = 0;
|
||||
private boolean imagePressed = false;
|
||||
|
||||
private boolean hasReplyMessage;
|
||||
|
||||
private MessageObject currentMessageObject;
|
||||
|
||||
private ChatActionCellDelegate delegate;
|
||||
|
||||
public ChatActionCell(Context context) {
|
||||
super(context);
|
||||
if (textPaint == null) {
|
||||
textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
textPaint.setColor(0xffffffff);
|
||||
textPaint.linkColor = 0xffffffff;
|
||||
textPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
|
||||
backPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
}
|
||||
backPaint.setColor(ApplicationLoader.getServiceMessageColor());
|
||||
|
||||
imageReceiver = new ImageReceiver(this);
|
||||
imageReceiver.setRoundRadius(AndroidUtilities.dp(32));
|
||||
avatarDrawable = new AvatarDrawable();
|
||||
textPaint.setTextSize(AndroidUtilities.dp(MessagesController.getInstance().fontSize - 2));
|
||||
}
|
||||
|
||||
public void setDelegate(ChatActionCellDelegate delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
public void setMessageObject(MessageObject messageObject) {
|
||||
if (currentMessageObject == messageObject && (hasReplyMessage || messageObject.replyMessageObject == null)) {
|
||||
return;
|
||||
@@ -107,35 +78,6 @@ public class ChatActionCell extends BaseCell {
|
||||
currentMessageObject = messageObject;
|
||||
hasReplyMessage = messageObject.replyMessageObject != null;
|
||||
previousWidth = 0;
|
||||
if (currentMessageObject.type == 11) {
|
||||
int id = 0;
|
||||
if (messageObject.messageOwner.to_id != null) {
|
||||
if (messageObject.messageOwner.to_id.chat_id != 0) {
|
||||
id = messageObject.messageOwner.to_id.chat_id;
|
||||
} else if (messageObject.messageOwner.to_id.channel_id != 0) {
|
||||
id = messageObject.messageOwner.to_id.channel_id;
|
||||
} else {
|
||||
id = messageObject.messageOwner.to_id.user_id;
|
||||
if (id == UserConfig.getClientUserId()) {
|
||||
id = messageObject.messageOwner.from_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
avatarDrawable.setInfoByName(null);
|
||||
/*if (currentMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) {
|
||||
imageReceiver.setImage(currentMessageObject.messageOwner.action.newUserPhoto.photo_small, "50_50", avatarDrawable, null, false);
|
||||
} else */ {
|
||||
TLRPC.PhotoSize photo = FileLoader.getClosestPhotoSizeWithSize(currentMessageObject.photoThumbs, AndroidUtilities.dp(64));
|
||||
if (photo != null) {
|
||||
imageReceiver.setImage(photo.location, "50_50", avatarDrawable, null, false);
|
||||
} else {
|
||||
imageReceiver.setImageBitmap(avatarDrawable);
|
||||
}
|
||||
}
|
||||
imageReceiver.setVisible(!PhotoViewer.getInstance().isShowingImage(currentMessageObject), false);
|
||||
} else {
|
||||
imageReceiver.setImageBitmap((Bitmap)null);
|
||||
}
|
||||
requestLayout();
|
||||
}
|
||||
|
||||
@@ -143,95 +85,13 @@ public class ChatActionCell extends BaseCell {
|
||||
return currentMessageObject;
|
||||
}
|
||||
|
||||
public ImageReceiver getPhotoImage() {
|
||||
return imageReceiver;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLongPress() {
|
||||
if (delegate != null) {
|
||||
delegate.didLongPressed(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
float x = event.getX();
|
||||
float y = event.getY();
|
||||
|
||||
boolean result = false;
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
if (delegate != null) {
|
||||
if (currentMessageObject.type == 11 && imageReceiver.isInsideImage(x, y)) {
|
||||
imagePressed = true;
|
||||
result = true;
|
||||
}
|
||||
if (result) {
|
||||
startCheckLongPress();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (event.getAction() != MotionEvent.ACTION_MOVE) {
|
||||
cancelCheckLongPress();
|
||||
}
|
||||
if (imagePressed) {
|
||||
if (event.getAction() == MotionEvent.ACTION_UP) {
|
||||
imagePressed = false;
|
||||
if (delegate != null) {
|
||||
delegate.didClickedImage(this);
|
||||
playSoundEffect(SoundEffectConstants.CLICK);
|
||||
}
|
||||
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||
imagePressed = false;
|
||||
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
|
||||
if (!imageReceiver.isInsideImage(x, y)) {
|
||||
imagePressed = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!result) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN || pressedLink != null && event.getAction() == MotionEvent.ACTION_UP) {
|
||||
if (x >= textX && y >= textY && x <= textX + textWidth && y <= textY + textHeight) {
|
||||
y -= textY;
|
||||
x -= textXLeft;
|
||||
|
||||
final int line = textLayout.getLineForVertical((int)y);
|
||||
final int off = textLayout.getOffsetForHorizontal(line, x);
|
||||
final float left = textLayout.getLineLeft(line);
|
||||
if (left <= x && left + textLayout.getLineWidth(line) >= x && currentMessageObject.messageText instanceof Spannable) {
|
||||
Spannable buffer = (Spannable) currentMessageObject.messageText;
|
||||
URLSpan[] link = buffer.getSpans(off, off, URLSpan.class);
|
||||
|
||||
if (link.length != 0) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
pressedLink = link[0];
|
||||
result = true;
|
||||
} else {
|
||||
if (link[0] == pressedLink) {
|
||||
if (delegate != null) {
|
||||
delegate.needOpenUserProfile(Integer.parseInt(link[0].getURL()));
|
||||
}
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
pressedLink = null;
|
||||
}
|
||||
} else {
|
||||
pressedLink = null;
|
||||
}
|
||||
} else {
|
||||
pressedLink = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
result = super.onTouchEvent(event);
|
||||
}
|
||||
|
||||
return result;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -270,10 +130,6 @@ public class ChatActionCell extends BaseCell {
|
||||
textX = (width - textWidth) / 2;
|
||||
textY = AndroidUtilities.dp(7);
|
||||
textXLeft = (width - textLayout.getWidth()) / 2;
|
||||
|
||||
if (currentMessageObject.type == 11) {
|
||||
imageReceiver.setImageCoords((width - AndroidUtilities.dp(64)) / 2, textHeight + AndroidUtilities.dp(15), AndroidUtilities.dp(64), AndroidUtilities.dp(64));
|
||||
}
|
||||
}
|
||||
setMeasuredDimension(width, textHeight + AndroidUtilities.dp(14 + (currentMessageObject.type == 11 ? 70 : 0)));
|
||||
}
|
||||
@@ -306,10 +162,6 @@ public class ChatActionCell extends BaseCell {
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentMessageObject.type == 11) {
|
||||
imageReceiver.draw(canvas);
|
||||
}
|
||||
|
||||
if (textLayout != null) {
|
||||
final int count = textLayout.getLineCount();
|
||||
final int corner = AndroidUtilities.dp(6);
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
@@ -297,14 +298,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||
infoPaint.setTextSize(dp(12));
|
||||
|
||||
docNamePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
docNamePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
docNamePaint.setTextSize(dp(15));
|
||||
|
||||
docBackPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
|
||||
locationTitlePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
locationTitlePaint.setTextSize(dp(15));
|
||||
locationTitlePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
|
||||
locationAddressPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
locationAddressPaint.setTextSize(dp(13));
|
||||
@@ -320,14 +319,13 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||
|
||||
audioTitlePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
audioTitlePaint.setTextSize(dp(16));
|
||||
audioTitlePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
|
||||
audioPerformerPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
audioPerformerPaint.setTextSize(dp(15));
|
||||
|
||||
contactNamePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
contactNamePaint.setTextSize(dp(15));
|
||||
contactNamePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
contactNamePaint.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
|
||||
contactPhonePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
contactPhonePaint.setTextSize(dp(13));
|
||||
@@ -340,14 +338,14 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||
timePaint.setTextSize(dp(12));
|
||||
|
||||
namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
namePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
namePaint.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
namePaint.setTextSize(dp(14));
|
||||
|
||||
forwardNamePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
forwardNamePaint.setTextSize(dp(14));
|
||||
|
||||
replyNamePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
replyNamePaint.setTypeface(getTypeface("fonts/rmedium.ttf"));
|
||||
replyNamePaint.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
replyNamePaint.setTextSize(dp(14));
|
||||
|
||||
replyTextPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -51,7 +52,7 @@ public class ChatUnreadCell extends FrameLayout {
|
||||
textView.setPadding(0, 0, 0, AndroidUtilities.dp(1));
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, MessagesController.getInstance().fontSize-2);
|
||||
textView.setTextColor(Theme.MSG_IN_TIME_TEXT_COLOR);
|
||||
textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER));
|
||||
}
|
||||
|
||||
|
||||
@@ -115,7 +115,6 @@ public class ContextLinkCell extends View implements MediaController.FileDownloa
|
||||
|
||||
if (titleTextPaint == null) {
|
||||
titleTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
titleTextPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
titleTextPaint.setColor(0xff212121);
|
||||
titleTextPaint.setTextSize(AndroidUtilities.dp(15));
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ package com.b44t.ui.Cells;
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.text.Layout;
|
||||
@@ -143,7 +144,6 @@ public class DialogCell extends BaseCell {
|
||||
namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
namePaint.setTextSize(AndroidUtilities.dp(17));
|
||||
namePaint.setColor(Theme.DIALOGS_TITLE_TEXT_COLOR);
|
||||
namePaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
|
||||
messagePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
messagePaint.setTextSize(AndroidUtilities.dp(16));
|
||||
@@ -167,7 +167,7 @@ public class DialogCell extends BaseCell {
|
||||
countPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
countPaint.setTextSize(AndroidUtilities.dp(13));
|
||||
countPaint.setColor(0xffffffff);
|
||||
countPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
countPaint.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
|
||||
checkDrawable = getResources().getDrawable(R.drawable.dialogs_check);
|
||||
halfCheckDrawable = getResources().getDrawable(R.drawable.dialogs_halfcheck);
|
||||
|
||||
@@ -41,9 +41,8 @@ public class DrawerActionCell extends FrameLayout {
|
||||
super(context);
|
||||
|
||||
textView = new TextView(context);
|
||||
textView.setTextColor(0xff444444);
|
||||
textView.setTextColor(0xff000000);
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
|
||||
textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView.setLines(1);
|
||||
textView.setMaxLines(1);
|
||||
textView.setSingleLine(true);
|
||||
|
||||
@@ -73,8 +73,7 @@ public class DrawerProfileCell extends FrameLayout {
|
||||
|
||||
nameTextView = new TextView(context);
|
||||
nameTextView.setTextColor(0xffffffff);
|
||||
nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 22 /*EDIT BY MR, was 15*/);
|
||||
nameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 23);
|
||||
nameTextView.setLines(1);
|
||||
nameTextView.setMaxLines(1);
|
||||
nameTextView.setSingleLine(true);
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -43,7 +44,7 @@ public class GreySectionCell extends FrameLayout {
|
||||
|
||||
textView = new TextView(getContext());
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
|
||||
textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
textView.setTextColor(0xff8a8a8a);
|
||||
textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL);
|
||||
addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 16, 0, 16, 0));
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -42,8 +43,8 @@ public class HeaderCell extends FrameLayout {
|
||||
|
||||
textView = new TextView(getContext());
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
|
||||
textView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView.setTextColor(0xff3e90cf);
|
||||
textView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
textView.setTextColor(0xff5099c9);
|
||||
textView.setGravity((LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL);
|
||||
addView(textView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 17, 15, 17, 0));
|
||||
}
|
||||
|
||||
@@ -51,7 +51,6 @@ public class PhotoEditToolCell extends FrameLayout {
|
||||
nameTextView.setGravity(Gravity.CENTER);
|
||||
nameTextView.setTextColor(0xffffffff);
|
||||
nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
|
||||
nameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
nameTextView.setMaxLines(1);
|
||||
nameTextView.setSingleLine(true);
|
||||
nameTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
@@ -60,7 +59,6 @@ public class PhotoEditToolCell extends FrameLayout {
|
||||
valueTextView = new TextView(context);
|
||||
valueTextView.setTextColor(0xff6cc3ff);
|
||||
valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
||||
valueTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP, 57, 3, 0, 0));
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,6 @@ public class PhotoPickerSearchCell extends LinearLayout {
|
||||
textView1 = new TextView(context);
|
||||
textView1.setGravity(Gravity.CENTER_VERTICAL);
|
||||
textView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
textView1.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView1.setTextColor(0xffffffff);
|
||||
textView1.setSingleLine(true);
|
||||
textView1.setEllipsize(TextUtils.TruncateAt.END);
|
||||
@@ -78,7 +77,6 @@ public class PhotoPickerSearchCell extends LinearLayout {
|
||||
textView2 = new TextView(context);
|
||||
textView2.setGravity(Gravity.CENTER_VERTICAL);
|
||||
textView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
|
||||
textView2.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
textView2.setTextColor(0xff666666);
|
||||
textView2.setSingleLine(true);
|
||||
textView2.setEllipsize(TextUtils.TruncateAt.END);
|
||||
|
||||
@@ -1,482 +0,0 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Messenger Android Frontend
|
||||
* (C) 2013-2016 Nikolai Kudashov
|
||||
* (C) 2017 Björn Petersen
|
||||
* Contact: r10s@b44t.com, http://b44t.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* This program 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.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.text.Layout;
|
||||
import android.text.StaticLayout;
|
||||
import android.text.TextPaint;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.b44t.messenger.AndroidUtilities;
|
||||
import com.b44t.messenger.ImageReceiver;
|
||||
import com.b44t.messenger.LocaleController;
|
||||
import com.b44t.messenger.MessagesController;
|
||||
import com.b44t.messenger.UserObject;
|
||||
import com.b44t.messenger.R;
|
||||
import com.b44t.messenger.ConnectionsManager;
|
||||
import com.b44t.messenger.TLObject;
|
||||
import com.b44t.messenger.TLRPC;
|
||||
import com.b44t.messenger.UserConfig;
|
||||
import com.b44t.ui.Components.AvatarDrawable;
|
||||
import com.b44t.ui.ActionBar.Theme;
|
||||
|
||||
public class ProfileSearchCell extends BaseCell {
|
||||
|
||||
private static TextPaint namePaint;
|
||||
private static TextPaint onlinePaint;
|
||||
private static TextPaint offlinePaint;
|
||||
private static TextPaint countPaint;
|
||||
private static Drawable groupDrawable;
|
||||
private static Drawable countDrawable;
|
||||
private static Drawable countDrawableGrey;
|
||||
private static Paint linePaint;
|
||||
|
||||
private CharSequence currentName;
|
||||
private ImageReceiver avatarImage;
|
||||
private AvatarDrawable avatarDrawable;
|
||||
private CharSequence subLabel;
|
||||
|
||||
private TLRPC.User user = null;
|
||||
private TLRPC.Chat chat = null;
|
||||
private final Object encryptedChat = null;
|
||||
private long dialog_id;
|
||||
|
||||
private String lastName = null;
|
||||
private int lastStatus = 0;
|
||||
private TLRPC.FileLocation lastAvatar = null;
|
||||
|
||||
public boolean useSeparator = false;
|
||||
public float drawAlpha = 1;
|
||||
|
||||
private int nameLeft;
|
||||
private int nameTop;
|
||||
private StaticLayout nameLayout;
|
||||
private boolean drawNameGroup;
|
||||
private int nameLockLeft;
|
||||
private int nameLockTop;
|
||||
|
||||
private boolean drawCount;
|
||||
private int lastUnreadCount;
|
||||
private int countTop = AndroidUtilities.dp(25);
|
||||
private int countLeft;
|
||||
private int countWidth;
|
||||
private StaticLayout countLayout;
|
||||
|
||||
private int onlineLeft;
|
||||
private StaticLayout onlineLayout;
|
||||
|
||||
public ProfileSearchCell(Context context) {
|
||||
super(context);
|
||||
|
||||
if (namePaint == null) {
|
||||
namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
namePaint.setTextSize(AndroidUtilities.dp(17));
|
||||
namePaint.setColor(0xff212121);
|
||||
namePaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
|
||||
onlinePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
onlinePaint.setTextSize(AndroidUtilities.dp(16));
|
||||
onlinePaint.setColor(Theme.MSG_LINK_TEXT_COLOR);
|
||||
|
||||
offlinePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
offlinePaint.setTextSize(AndroidUtilities.dp(16));
|
||||
offlinePaint.setColor(0xff999999);
|
||||
|
||||
linePaint = new Paint();
|
||||
linePaint.setColor(0xffdcdcdc);
|
||||
|
||||
countPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
|
||||
countPaint.setTextSize(AndroidUtilities.dp(13));
|
||||
countPaint.setColor(0xffffffff);
|
||||
countPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
|
||||
groupDrawable = getResources().getDrawable(R.drawable.list_group);
|
||||
countDrawable = getResources().getDrawable(R.drawable.dialogs_badge);
|
||||
countDrawableGrey = getResources().getDrawable(R.drawable.dialogs_badge2);
|
||||
}
|
||||
|
||||
avatarImage = new ImageReceiver(this);
|
||||
avatarImage.setRoundRadius(AndroidUtilities.dp(26));
|
||||
avatarDrawable = new AvatarDrawable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
if (Build.VERSION.SDK_INT >= 21 && getBackground() != null) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {
|
||||
getBackground().setHotspot(event.getX(), event.getY());
|
||||
}
|
||||
}
|
||||
return super.onTouchEvent(event);
|
||||
}
|
||||
|
||||
public void setData(TLObject object, Object ec, CharSequence n, CharSequence s, boolean needCount) {
|
||||
currentName = n;
|
||||
if (object instanceof TLRPC.User) {
|
||||
user = (TLRPC.User) object;
|
||||
chat = null;
|
||||
} else if (object instanceof TLRPC.Chat) {
|
||||
chat = (TLRPC.Chat) object;
|
||||
user = null;
|
||||
}
|
||||
subLabel = s;
|
||||
drawCount = needCount;
|
||||
update(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
avatarImage.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
avatarImage.onAttachedToWindow();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), AndroidUtilities.dp(72));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
||||
if (user == null && chat == null && encryptedChat == null) {
|
||||
super.onLayout(changed, left, top, right, bottom);
|
||||
return;
|
||||
}
|
||||
if (changed) {
|
||||
buildLayout();
|
||||
}
|
||||
}
|
||||
|
||||
public void buildLayout() {
|
||||
CharSequence nameString;
|
||||
TextPaint currentNamePaint;
|
||||
|
||||
drawNameGroup = false;
|
||||
|
||||
{
|
||||
if (chat != null) {
|
||||
/*if (chat.id < 0) {
|
||||
dialog_id = AndroidUtilities.makeBroadcastId(chat.id);
|
||||
drawNameBroadcast = true;
|
||||
nameLockTop = AndroidUtilities.dp(28.5f);
|
||||
} else*/ {
|
||||
dialog_id = -chat.id;
|
||||
/*if (ChatObject.isChannel(chat) && !chat.megagroup) {
|
||||
drawNameBroadcast = true;
|
||||
nameLockTop = AndroidUtilities.dp(28.5f);
|
||||
} else*/ {
|
||||
drawNameGroup = true;
|
||||
nameLockTop = AndroidUtilities.dp(30);
|
||||
}
|
||||
}
|
||||
if (!LocaleController.isRTL) {
|
||||
nameLockLeft = AndroidUtilities.dp(AndroidUtilities.leftBaseline);
|
||||
nameLeft = AndroidUtilities.dp(AndroidUtilities.leftBaseline + 4) + (groupDrawable.getIntrinsicWidth());
|
||||
} else {
|
||||
nameLockLeft = getMeasuredWidth() - AndroidUtilities.dp(AndroidUtilities.leftBaseline + 2) - (groupDrawable.getIntrinsicWidth());
|
||||
nameLeft = AndroidUtilities.dp(11);
|
||||
}
|
||||
} else {
|
||||
dialog_id = user.id;
|
||||
if (!LocaleController.isRTL) {
|
||||
nameLeft = AndroidUtilities.dp(AndroidUtilities.leftBaseline);
|
||||
} else {
|
||||
nameLeft = AndroidUtilities.dp(11);
|
||||
}
|
||||
nameLockTop = AndroidUtilities.dp(17);
|
||||
}
|
||||
}
|
||||
|
||||
if (currentName != null) {
|
||||
nameString = currentName;
|
||||
} else {
|
||||
String nameString2 = "";
|
||||
if (chat != null) {
|
||||
nameString2 = chat.title;
|
||||
} else if (user != null) {
|
||||
nameString2 = UserObject.getUserName(user);
|
||||
}
|
||||
nameString = nameString2.replace('\n', ' ');
|
||||
}
|
||||
|
||||
currentNamePaint = namePaint;
|
||||
|
||||
int onlineWidth;
|
||||
int nameWidth;
|
||||
if (!LocaleController.isRTL) {
|
||||
onlineWidth = nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(14);
|
||||
} else {
|
||||
onlineWidth = nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(AndroidUtilities.leftBaseline);
|
||||
}
|
||||
/*if (drawNameLock) {
|
||||
nameWidth -= AndroidUtilities.dp(6) + lockDrawable.getIntrinsicWidth();
|
||||
} else*/ if (drawNameGroup) {
|
||||
nameWidth -= AndroidUtilities.dp(6) + groupDrawable.getIntrinsicWidth();
|
||||
}
|
||||
|
||||
if (drawCount) {
|
||||
TLRPC.TL_dialog dialog = MessagesController.getInstance().dialogs_dict.get(dialog_id);
|
||||
if (dialog != null && dialog.unread_count != 0) {
|
||||
lastUnreadCount = dialog.unread_count;
|
||||
String countString = String.format("%d", dialog.unread_count);
|
||||
countWidth = Math.max(AndroidUtilities.dp(12), (int) Math.ceil(countPaint.measureText(countString)));
|
||||
countLayout = new StaticLayout(countString, countPaint, countWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false);
|
||||
int w = countWidth + AndroidUtilities.dp(18);
|
||||
nameWidth -= w;
|
||||
if (!LocaleController.isRTL) {
|
||||
countLeft = getMeasuredWidth() - countWidth - AndroidUtilities.dp(19);
|
||||
} else {
|
||||
countLeft = AndroidUtilities.dp(19);
|
||||
nameLeft += w;
|
||||
}
|
||||
} else {
|
||||
lastUnreadCount = 0;
|
||||
countLayout = null;
|
||||
}
|
||||
} else {
|
||||
lastUnreadCount = 0;
|
||||
countLayout = null;
|
||||
}
|
||||
|
||||
CharSequence nameStringFinal = TextUtils.ellipsize(nameString, currentNamePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END);
|
||||
nameLayout = new StaticLayout(nameStringFinal, currentNamePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
|
||||
|
||||
if (chat == null || subLabel != null) {
|
||||
if (!LocaleController.isRTL) {
|
||||
onlineLeft = AndroidUtilities.dp(AndroidUtilities.leftBaseline);
|
||||
} else {
|
||||
onlineLeft = AndroidUtilities.dp(11);
|
||||
}
|
||||
|
||||
CharSequence onlineString = "";
|
||||
TextPaint currentOnlinePaint = offlinePaint;
|
||||
|
||||
if (subLabel != null) {
|
||||
onlineString = subLabel;
|
||||
} else if (user != null) {
|
||||
onlineString = "ErrOnline";
|
||||
}
|
||||
|
||||
CharSequence onlineStringFinal = TextUtils.ellipsize(onlineString, currentOnlinePaint, onlineWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END);
|
||||
onlineLayout = new StaticLayout(onlineStringFinal, currentOnlinePaint, onlineWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
|
||||
nameTop = AndroidUtilities.dp(13);
|
||||
if (subLabel != null && chat != null) {
|
||||
nameLockTop -= AndroidUtilities.dp(12);
|
||||
}
|
||||
} else {
|
||||
onlineLayout = null;
|
||||
nameTop = AndroidUtilities.dp(25);
|
||||
}
|
||||
|
||||
int avatarLeft;
|
||||
if (!LocaleController.isRTL) {
|
||||
avatarLeft = AndroidUtilities.dp(AndroidUtilities.isTablet() ? 13 : 9);
|
||||
} else {
|
||||
avatarLeft = getMeasuredWidth() - AndroidUtilities.dp(AndroidUtilities.isTablet() ? 65 : 61);
|
||||
}
|
||||
|
||||
avatarImage.setImageCoords(avatarLeft, AndroidUtilities.dp(10), AndroidUtilities.dp(52), AndroidUtilities.dp(52));
|
||||
|
||||
double widthpx;
|
||||
float left;
|
||||
if (LocaleController.isRTL) {
|
||||
if (nameLayout.getLineCount() > 0) {
|
||||
left = nameLayout.getLineLeft(0);
|
||||
if (left == 0) {
|
||||
widthpx = Math.ceil(nameLayout.getLineWidth(0));
|
||||
if (widthpx < nameWidth) {
|
||||
nameLeft += (nameWidth - widthpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (onlineLayout != null && onlineLayout.getLineCount() > 0) {
|
||||
left = onlineLayout.getLineLeft(0);
|
||||
if (left == 0) {
|
||||
widthpx = Math.ceil(onlineLayout.getLineWidth(0));
|
||||
if (widthpx < onlineWidth) {
|
||||
onlineLeft += (onlineWidth - widthpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (nameLayout.getLineCount() > 0) {
|
||||
left = nameLayout.getLineRight(0);
|
||||
if (left == nameWidth) {
|
||||
widthpx = Math.ceil(nameLayout.getLineWidth(0));
|
||||
if (widthpx < nameWidth) {
|
||||
nameLeft -= (nameWidth - widthpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (onlineLayout != null && onlineLayout.getLineCount() > 0) {
|
||||
left = onlineLayout.getLineRight(0);
|
||||
if (left == onlineWidth) {
|
||||
widthpx = Math.ceil(onlineLayout.getLineWidth(0));
|
||||
if (widthpx < onlineWidth) {
|
||||
onlineLeft -= (onlineWidth - widthpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void update(int mask) {
|
||||
TLRPC.FileLocation photo = null;
|
||||
if (user != null) {
|
||||
if (user.photo != null) {
|
||||
photo = user.photo.photo_small;
|
||||
}
|
||||
avatarDrawable.setInfoByUser(user);
|
||||
} else if (chat != null) {
|
||||
if (chat.photo != null) {
|
||||
photo = chat.photo.photo_small;
|
||||
}
|
||||
avatarDrawable.setInfoByChat(chat);
|
||||
} else {
|
||||
avatarDrawable.setInfoByName(null);
|
||||
}
|
||||
|
||||
if (mask != 0) {
|
||||
boolean continueUpdate = false;
|
||||
if ((mask & MessagesController.UPDATE_MASK_AVATAR) != 0 && user != null || (mask & MessagesController.UPDATE_MASK_CHAT_AVATAR) != 0 && chat != null) {
|
||||
if (lastAvatar != null && photo == null || lastAvatar == null && photo != null && lastAvatar != null && photo != null && (lastAvatar.volume_id != photo.volume_id || lastAvatar.local_id != photo.local_id)) {
|
||||
continueUpdate = true;
|
||||
}
|
||||
}
|
||||
if (!continueUpdate && (mask & MessagesController.UPDATE_MASK_STATUS) != 0 && user != null) {
|
||||
int newStatus = 0;
|
||||
if (newStatus != lastStatus) {
|
||||
continueUpdate = true;
|
||||
}
|
||||
}
|
||||
if (!continueUpdate && ((mask & MessagesController.UPDATE_MASK_NAME) != 0 && user != null) || (mask & MessagesController.UPDATE_MASK_CHAT_NAME) != 0 && chat != null) {
|
||||
String newName;
|
||||
if (user != null) {
|
||||
newName = user.first_name + user.last_name;
|
||||
} else {
|
||||
newName = chat.title;
|
||||
}
|
||||
if (!newName.equals(lastName)) {
|
||||
continueUpdate = true;
|
||||
}
|
||||
}
|
||||
if (!continueUpdate && drawCount && (mask & MessagesController.UPDATE_MASK_READ_DIALOG_MESSAGE) != 0) {
|
||||
TLRPC.TL_dialog dialog = MessagesController.getInstance().dialogs_dict.get(dialog_id);
|
||||
if (dialog != null && dialog.unread_count != lastUnreadCount) {
|
||||
continueUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!continueUpdate) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (user != null) {
|
||||
lastStatus = 0;
|
||||
lastName = user.first_name + user.last_name;
|
||||
} else if (chat != null) {
|
||||
lastName = chat.title;
|
||||
}
|
||||
|
||||
|
||||
lastAvatar = photo;
|
||||
avatarImage.setImage(photo, "50_50", avatarDrawable, null, false);
|
||||
|
||||
if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) {
|
||||
buildLayout();
|
||||
} else {
|
||||
requestLayout();
|
||||
}
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
if (user == null && chat == null && encryptedChat == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (useSeparator) {
|
||||
if (LocaleController.isRTL) {
|
||||
canvas.drawLine(0, getMeasuredHeight() - 1, getMeasuredWidth() - AndroidUtilities.dp(AndroidUtilities.leftBaseline), getMeasuredHeight() - 1, linePaint);
|
||||
} else {
|
||||
canvas.drawLine(AndroidUtilities.dp(AndroidUtilities.leftBaseline), getMeasuredHeight() - 1, getMeasuredWidth(), getMeasuredHeight() - 1, linePaint);
|
||||
}
|
||||
}
|
||||
|
||||
if (drawAlpha != 1) {
|
||||
canvas.saveLayerAlpha(0, 0, canvas.getWidth(), canvas.getHeight(), (int)(255 * drawAlpha), Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
|
||||
}
|
||||
|
||||
/*if (drawNameLock) {
|
||||
setDrawableBounds(lockDrawable, nameLockLeft, nameLockTop);
|
||||
lockDrawable.draw(canvas);
|
||||
} else*/ if (drawNameGroup) {
|
||||
setDrawableBounds(groupDrawable, nameLockLeft, nameLockTop);
|
||||
groupDrawable.draw(canvas);
|
||||
}
|
||||
|
||||
if (nameLayout != null) {
|
||||
canvas.save();
|
||||
canvas.translate(nameLeft, nameTop);
|
||||
nameLayout.draw(canvas);
|
||||
canvas.restore();
|
||||
}
|
||||
|
||||
if (onlineLayout != null) {
|
||||
canvas.save();
|
||||
canvas.translate(onlineLeft, AndroidUtilities.dp(40));
|
||||
onlineLayout.draw(canvas);
|
||||
canvas.restore();
|
||||
}
|
||||
|
||||
if (countLayout != null) {
|
||||
if (MessagesController.getInstance().isDialogMuted(dialog_id)) {
|
||||
setDrawableBounds(countDrawableGrey, countLeft - AndroidUtilities.dp(5.5f), countTop, countWidth + AndroidUtilities.dp(11), countDrawableGrey.getIntrinsicHeight());
|
||||
countDrawableGrey.draw(canvas);
|
||||
} else {
|
||||
setDrawableBounds(countDrawable, countLeft - AndroidUtilities.dp(5.5f), countTop, countWidth + AndroidUtilities.dp(11), countDrawable.getIntrinsicHeight());
|
||||
countDrawable.draw(canvas);
|
||||
}
|
||||
canvas.save();
|
||||
canvas.translate(countLeft, countTop + AndroidUtilities.dp(4));
|
||||
countLayout.draw(canvas);
|
||||
canvas.restore();
|
||||
}
|
||||
|
||||
avatarImage.draw(canvas);
|
||||
}
|
||||
}
|
||||
@@ -93,7 +93,6 @@ public class SharedDocumentCell extends FrameLayout implements MediaController.F
|
||||
extTextView = new TextView(context);
|
||||
extTextView.setTextColor(0xffffffff);
|
||||
extTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
extTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
extTextView.setLines(1);
|
||||
extTextView.setMaxLines(1);
|
||||
extTextView.setSingleLine(true);
|
||||
@@ -114,7 +113,6 @@ public class SharedDocumentCell extends FrameLayout implements MediaController.F
|
||||
nameTextView = new TextView(context);
|
||||
nameTextView.setTextColor(0xff212121);
|
||||
nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
|
||||
nameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
nameTextView.setLines(1);
|
||||
nameTextView.setMaxLines(1);
|
||||
nameTextView.setSingleLine(true);
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Messenger Android Frontend
|
||||
* (C) 2013-2016 Nikolai Kudashov
|
||||
* (C) 2017 Björn Petersen
|
||||
* Contact: r10s@b44t.com, http://b44t.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* This program 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.b44t.ui.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.b44t.messenger.AndroidUtilities;
|
||||
import com.b44t.messenger.LocaleController;
|
||||
import com.b44t.messenger.R;
|
||||
import com.b44t.messenger.TLRPC;
|
||||
import com.b44t.ui.ActionBar.Theme;
|
||||
import com.b44t.ui.Components.BackupImageView;
|
||||
import com.b44t.ui.Components.LayoutHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class StickerSetCell extends FrameLayout {
|
||||
|
||||
private TextView textView;
|
||||
private TextView valueTextView;
|
||||
private BackupImageView imageView;
|
||||
private boolean needDivider;
|
||||
private ImageView optionsButton;
|
||||
private TLRPC.TL_messages_stickerSet stickersSet;
|
||||
private Rect rect = new Rect();
|
||||
|
||||
private static Paint paint;
|
||||
|
||||
public StickerSetCell(Context context) {
|
||||
super(context);
|
||||
|
||||
if (paint == null) {
|
||||
paint = new Paint();
|
||||
paint.setColor(0xffd9d9d9);
|
||||
}
|
||||
|
||||
textView = new TextView(context);
|
||||
textView.setTextColor(0xff212121);
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
|
||||
textView.setLines(1);
|
||||
textView.setMaxLines(1);
|
||||
textView.setSingleLine(true);
|
||||
textView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
textView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
|
||||
addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, LocaleController.isRTL ? 40 : 71, 10, LocaleController.isRTL ? 71 : 40, 0));
|
||||
|
||||
valueTextView = new TextView(context);
|
||||
valueTextView.setTextColor(0xff8a8a8a);
|
||||
valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
|
||||
valueTextView.setLines(1);
|
||||
valueTextView.setMaxLines(1);
|
||||
valueTextView.setSingleLine(true);
|
||||
valueTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
|
||||
addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, LocaleController.isRTL ? 40 : 71, 35, LocaleController.isRTL ? 71 : 40, 0));
|
||||
|
||||
imageView = new BackupImageView(context);
|
||||
imageView.setAspectFit(true);
|
||||
addView(imageView, LayoutHelper.createFrame(48, 48, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, LocaleController.isRTL ? 0 : 12, 8, LocaleController.isRTL ? 12 : 0, 0));
|
||||
|
||||
optionsButton = new ImageView(context);
|
||||
optionsButton.setFocusable(false);
|
||||
optionsButton.setBackgroundDrawable(Theme.createBarSelectorDrawable(Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR));
|
||||
optionsButton.setImageResource(R.drawable.doc_actions_b);
|
||||
optionsButton.setScaleType(ImageView.ScaleType.CENTER);
|
||||
addView(optionsButton, LayoutHelper.createFrame(40, 40, (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.TOP));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(64) + (needDivider ? 1 : 0), MeasureSpec.EXACTLY));
|
||||
}
|
||||
|
||||
public void setStickersSet(TLRPC.TL_messages_stickerSet set, boolean divider) {
|
||||
needDivider = divider;
|
||||
stickersSet = set;
|
||||
|
||||
textView.setText(stickersSet.set.title);
|
||||
if (stickersSet.set.disabled) {
|
||||
textView.setAlpha(0.5f);
|
||||
valueTextView.setAlpha(0.5f);
|
||||
imageView.setAlpha(0.5f);
|
||||
} else {
|
||||
textView.setAlpha(1.0f);
|
||||
valueTextView.setAlpha(1.0f);
|
||||
imageView.setAlpha(1.0f);
|
||||
}
|
||||
ArrayList<TLRPC.Document> documents = set.documents;
|
||||
if (documents != null && !documents.isEmpty()) {
|
||||
valueTextView.setText(LocaleController.formatPluralString("Stickers", documents.size()));
|
||||
TLRPC.Document document = documents.get(0);
|
||||
if (document.thumb != null && document.thumb.location != null) {
|
||||
imageView.setImage(document.thumb.location, null, "webp", null);
|
||||
}
|
||||
} else {
|
||||
valueTextView.setText(LocaleController.formatPluralString("Stickers", 0));
|
||||
}
|
||||
}
|
||||
|
||||
public void setOnOptionsClick(OnClickListener listener) {
|
||||
optionsButton.setOnClickListener(listener);
|
||||
}
|
||||
|
||||
public TLRPC.TL_messages_stickerSet getStickersSet() {
|
||||
return stickersSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
if (Build.VERSION.SDK_INT >= 21 && getBackground() != null) {
|
||||
optionsButton.getHitRect(rect);
|
||||
if (rect.contains((int) event.getX(), (int) event.getY())) {
|
||||
return true;
|
||||
}
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {
|
||||
getBackground().setHotspot(event.getX(), event.getY());
|
||||
}
|
||||
}
|
||||
return super.onTouchEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
if (needDivider) {
|
||||
canvas.drawLine(0, getHeight() - 1, getWidth() - getPaddingRight(), getHeight() - 1, paint);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -153,10 +153,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
private TextView pagedownButtonCounter;
|
||||
private ChatAttachAlert chatAttachAlert;
|
||||
private PlayerView playerView;
|
||||
private TextView alertTextView;
|
||||
|
||||
private ObjectAnimator pagedownButtonAnimation;
|
||||
private ObjectAnimator iconAnimator;
|
||||
|
||||
private boolean openSearchKeyboard;
|
||||
|
||||
@@ -670,7 +668,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
actionModeTextView = new SimpleTextView(context);
|
||||
actionModeTextView.setTextSize(18);
|
||||
actionModeTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
actionModeTextView.setTextColor(Theme.ACTION_BAR_ACTION_MODE_TEXT_COLOR);
|
||||
actionModeTextView.setText(LocaleController.getString("Edit", R.string.Edit));
|
||||
actionModeTitleContainer.addView(actionModeTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT));
|
||||
@@ -1005,30 +1002,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
}
|
||||
});
|
||||
|
||||
FrameLayout alertView = new FrameLayout(context);
|
||||
alertView.setTag(1);
|
||||
alertView.setTranslationY(-AndroidUtilities.dp(50));
|
||||
alertView.setVisibility(View.GONE);
|
||||
alertView.setBackgroundResource(R.drawable.blockpanel);
|
||||
contentView.addView(alertView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 50, Gravity.TOP | Gravity.LEFT));
|
||||
|
||||
TextView alertNameTextView = new TextView(context);
|
||||
alertNameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
alertNameTextView.setTextColor(Theme.ALERT_PANEL_NAME_TEXT_COLOR);
|
||||
alertNameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
alertNameTextView.setSingleLine(true);
|
||||
alertNameTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
alertNameTextView.setMaxLines(1);
|
||||
alertView.addView(alertNameTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 8, 5, 8, 0));
|
||||
|
||||
alertTextView = new TextView(context);
|
||||
alertTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
alertTextView.setTextColor(Theme.ALERT_PANEL_MESSAGE_TEXT_COLOR);
|
||||
alertTextView.setSingleLine(true);
|
||||
alertTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
alertTextView.setMaxLines(1);
|
||||
alertView.addView(alertTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 8, 23, 8, 0));
|
||||
|
||||
pagedownButton = new FrameLayout(context);
|
||||
pagedownButton.setVisibility(View.INVISIBLE);
|
||||
contentView.addView(pagedownButton, LayoutHelper.createFrame(46, 59, Gravity.RIGHT | Gravity.BOTTOM, 0, 0, 7, 5));
|
||||
@@ -1049,7 +1022,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
pagedownButtonCounter = new TextView(context);
|
||||
pagedownButtonCounter.setVisibility(View.INVISIBLE);
|
||||
pagedownButtonCounter.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
pagedownButtonCounter.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
|
||||
pagedownButtonCounter.setTextColor(0xffffffff);
|
||||
pagedownButtonCounter.setGravity(Gravity.CENTER);
|
||||
@@ -1147,7 +1119,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
bottomOverlayChatText = new TextView(context);
|
||||
bottomOverlayChatText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
|
||||
//bottomOverlayChatText.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
bottomOverlayChatText.setTextColor(0xffb2b2b2); // same as hintTextColor of the keyboard
|
||||
bottomOverlayChat.addView(bottomOverlayChatText, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER));
|
||||
|
||||
@@ -1529,9 +1500,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); // was: BottomSheet.Builder
|
||||
//builder.setTitle(LocaleController.getString("Notifications", R.string.Notifications)); -- a title seems more confusing than helping -- the user has clicked "mute" before and there are several options all starting with "mute...", I think, this is very clear
|
||||
CharSequence[] items = new CharSequence[]{
|
||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 1)),
|
||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Hours", 8)),
|
||||
LocaleController.formatString("MuteFor", R.string.MuteFor, LocaleController.formatPluralString("Days", 2)),
|
||||
ApplicationLoader.applicationContext.getString(R.string.MuteFor1Hour),
|
||||
ApplicationLoader.applicationContext.getString(R.string.MuteFor8Hours),
|
||||
ApplicationLoader.applicationContext.getString(R.string.MuteFor2Days),
|
||||
LocaleController.getString("MuteAlways", R.string.MuteAlways)
|
||||
};
|
||||
builder.setItems(items, new DialogInterface.OnClickListener() {
|
||||
@@ -1551,7 +1522,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
editor.putInt("notify2_" + dialog_id, 3);
|
||||
editor.putInt("notifyuntil_" + dialog_id, untilTime);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
/*NotificationsController.getInstance().removeNotificationsForDialog(dialog_id);
|
||||
TLRPC.TL_dialog dialog = MessagesController.getInstance().dialogs_dict.get(dialog_id);
|
||||
if (dialog != null) {
|
||||
@@ -1569,7 +1540,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("notify2_" + dialog_id, 0);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
/*TLRPC.TL_dialog dialog = MessagesController.getInstance().dialogs_dict.get(dialog_id);
|
||||
if (dialog != null) {
|
||||
dialog.notify_settings = new TLRPC.TL_peerNotifySettings();
|
||||
@@ -1717,8 +1688,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
MessageObject message = null;
|
||||
if (view instanceof ChatMessageCell) {
|
||||
message = ((ChatMessageCell) view).getMessageObject();
|
||||
} else if (view instanceof ChatActionCell) {
|
||||
message = ((ChatActionCell) view).getMessageObject();
|
||||
}
|
||||
|
||||
if (message==null || !message.isSelectable()) {
|
||||
@@ -2050,10 +2019,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
if (chatListView != null) {
|
||||
chatListView.invalidateViews();
|
||||
}
|
||||
if (alertTextView != null) {
|
||||
alertTextView.invalidate();
|
||||
}
|
||||
|
||||
}
|
||||
else if (id == NotificationCenter.updateInterfaces)
|
||||
{
|
||||
@@ -2503,18 +2468,19 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
private void createDeleteMessagesAlert() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
builder.setMessage(LocaleController.formatString("AreYouSureDeleteMessages", R.string.AreYouSureDeleteMessages, LocaleController.formatPluralString("messages", selectedMessagesIds.size())));
|
||||
builder.setMessage(ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.AreYouSureDeleteMessages, selectedMessagesIds.size(), selectedMessagesIds.size()));
|
||||
builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
|
||||
ArrayList<Integer> ids = new ArrayList<>(selectedMessagesIds.keySet());
|
||||
if( ids.size()>0) {
|
||||
ArrayList<Integer> ids_list = new ArrayList<>(selectedMessagesIds.keySet());
|
||||
if( ids_list.size()>0) {
|
||||
int ids_arr[] = new int[selectedMessagesIds.size()], j = 0;
|
||||
for (HashMap.Entry<Integer, Integer> entry : selectedMessagesIds.entrySet()) {
|
||||
Integer id_to_del = entry.getKey();
|
||||
MrMailbox.deleteMsg(id_to_del);
|
||||
ids_arr[j++] = entry.getKey();
|
||||
}
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesDeleted, ids, 0);
|
||||
MrMailbox.deleteMsgs(ids_arr);
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesDeleted, ids_list, 0);
|
||||
}
|
||||
|
||||
actionBar.hideActionMode();
|
||||
@@ -2781,24 +2747,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
imageReceiver = cell.getPhotoImage();
|
||||
}
|
||||
}
|
||||
} else if (view instanceof ChatActionCell) {
|
||||
ChatActionCell cell = (ChatActionCell) view;
|
||||
MessageObject message = cell.getMessageObject();
|
||||
if (message != null) {
|
||||
if (messageObject != null) {
|
||||
if (message.getId() == messageObject.getId()) {
|
||||
imageReceiver = cell.getPhotoImage();
|
||||
}
|
||||
} else if (fileLocation != null && message.photoThumbs != null) {
|
||||
for (int b = 0; b < message.photoThumbs.size(); b++) {
|
||||
TLRPC.PhotoSize photoSize = message.photoThumbs.get(b);
|
||||
if (photoSize.location.volume_id == fileLocation.volume_id && photoSize.location.local_id == fileLocation.local_id) {
|
||||
imageReceiver = cell.getPhotoImage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (imageReceiver != null) {
|
||||
@@ -3090,38 +3038,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
chatMessageCell.setAllowAssistant(true);
|
||||
} else if (viewType == ROWTYPE_DATE_HEADLINE ) {
|
||||
view = new ChatActionCell(mContext);
|
||||
((ChatActionCell) view).setDelegate(new ChatActionCell.ChatActionCellDelegate() {
|
||||
@Override
|
||||
public void didClickedImage(ChatActionCell cell) {
|
||||
MessageObject message = cell.getMessageObject();
|
||||
PhotoViewer.getInstance().setParentActivity(getParentActivity());
|
||||
TLRPC.PhotoSize photoSize = FileLoader.getClosestPhotoSizeWithSize(message.photoThumbs, 640);
|
||||
if (photoSize != null) {
|
||||
PhotoViewer.getInstance().openPhoto(photoSize.location, ChatActivity.this);
|
||||
} else {
|
||||
PhotoViewer.getInstance().openPhoto(message, 0, 0, ChatActivity.this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void didLongPressed(ChatActionCell cell) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void needOpenUserProfile(int uid) {
|
||||
if (uid < 0) {
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("chat_id", -uid);
|
||||
presentFragment(new ChatActivity(args), true);
|
||||
} else if (uid != UserConfig.getClientUserId()) {
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("user_id", uid);
|
||||
ProfileActivity fragment = new ProfileActivity(args);
|
||||
fragment.setPlayProfileAnimation(false/*currentUser != null && currentUser.id == uid*/);
|
||||
presentFragment(fragment);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (viewType == ROWTYPE_UNREAD_HEADLINE) {
|
||||
view = new ChatUnreadCell(mContext);
|
||||
}
|
||||
@@ -3197,7 +3113,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
else if (view instanceof ChatUnreadCell)
|
||||
{
|
||||
ChatUnreadCell unreadCell = (ChatUnreadCell) view;
|
||||
unreadCell.setText(LocaleController.formatPluralString("NewMessages", markerUnreadCount));
|
||||
unreadCell.setText(mContext.getResources().getQuantityString(R.plurals.NewMessages, markerUnreadCount, markerUnreadCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -815,7 +815,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||
}
|
||||
startedDraggingX = -1;
|
||||
MediaController.getInstance().startRecording(dialog_id, replyingMessageObject);
|
||||
updateAudioRecordIntefrace();
|
||||
updateAudioRecordInterface();
|
||||
audioSendButton.getParent().requestDisallowInterceptTouchEvent(true);
|
||||
*/
|
||||
} else if (motionEvent.getAction() == MotionEvent.ACTION_UP || motionEvent.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||
@@ -824,14 +824,14 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||
startedDraggingX = -1;
|
||||
MediaController.getInstance().stopRecording(1);
|
||||
recordingAudio = false;
|
||||
updateAudioRecordIntefrace();
|
||||
updateAudioRecordInterface();
|
||||
*/
|
||||
} else if (motionEvent.getAction() == MotionEvent.ACTION_MOVE && recordingAudio) {
|
||||
float x = motionEvent.getX();
|
||||
if (x < -distCanMove) {
|
||||
MediaController.getInstance().stopRecording(0);
|
||||
recordingAudio = false;
|
||||
updateAudioRecordIntefrace();
|
||||
updateAudioRecordInterface();
|
||||
}
|
||||
|
||||
x = x + audioSendButton.getX();
|
||||
@@ -1524,7 +1524,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||
messageEditText.setLayoutParams(layoutParams);
|
||||
}
|
||||
|
||||
private void updateAudioRecordIntefrace() {
|
||||
private void updateAudioRecordInterface() {
|
||||
if (recordingAudio) {
|
||||
if (audioInterfaceState == 1) {
|
||||
return;
|
||||
@@ -1965,10 +1965,10 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||
if (height > AndroidUtilities.dp(50) && keyboardVisible) {
|
||||
if (isWidthGreater) {
|
||||
keyboardHeightLand = height;
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("emoji", 0).edit().putInt("kbd_height_land3", keyboardHeightLand).commit();
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("emoji", 0).edit().putInt("kbd_height_land3", keyboardHeightLand).apply();
|
||||
} else {
|
||||
keyboardHeight = height;
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("emoji", 0).edit().putInt("kbd_height", keyboardHeight).commit();
|
||||
ApplicationLoader.applicationContext.getSharedPreferences("emoji", 0).edit().putInt("kbd_height", keyboardHeight).apply();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2069,12 +2069,12 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||
if (recordingAudio) {
|
||||
MessagesController.getInstance().sendTyping(dialog_id, 2, 0);
|
||||
recordingAudio = false;
|
||||
updateAudioRecordIntefrace();
|
||||
updateAudioRecordInterface();
|
||||
}
|
||||
} else if (id == NotificationCenter.recordStarted) {
|
||||
if (!recordingAudio) {
|
||||
recordingAudio = true;
|
||||
updateAudioRecordIntefrace();
|
||||
updateAudioRecordInterface();
|
||||
}
|
||||
} else if (id == NotificationCenter.audioDidSent) {
|
||||
audioToSend = (TLRPC.TL_document) args[0];
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.ui.Components;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
@@ -61,7 +62,6 @@ public class ChatAvatarContainer extends FrameLayout {
|
||||
titleTextView.setTextColor(Theme.ACTION_BAR_TITLE_COLOR);
|
||||
titleTextView.setTextSize(18);
|
||||
titleTextView.setGravity(Gravity.LEFT);
|
||||
titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
titleTextView.setLeftDrawableTopPadding(-AndroidUtilities.dp(1.3f));
|
||||
titleTextView.setRightDrawableTopPadding(-AndroidUtilities.dp(1.3f));
|
||||
addView(titleTextView);
|
||||
|
||||
@@ -1001,7 +1001,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
|
||||
public void clearRecentEmoji() {
|
||||
SharedPreferences preferences = getContext().getSharedPreferences("emoji", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putBoolean("filled_default", true).commit();
|
||||
preferences.edit().putBoolean("filled_default", true).apply();
|
||||
emojiUseHistory.clear();
|
||||
recentEmoji.clear();
|
||||
saveRecentEmoji();
|
||||
@@ -1108,7 +1108,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
stringBuilder.append("=");
|
||||
stringBuilder.append(entry.getValue());
|
||||
}
|
||||
preferences.edit().putString("emojis2", stringBuilder.toString()).commit();
|
||||
preferences.edit().putString("emojis2", stringBuilder.toString()).apply();
|
||||
}
|
||||
|
||||
private void saveEmojiColors() {
|
||||
@@ -1122,7 +1122,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
stringBuilder.append("=");
|
||||
stringBuilder.append(entry.getValue());
|
||||
}
|
||||
preferences.edit().putString("color", stringBuilder.toString()).commit();
|
||||
preferences.edit().putString("color", stringBuilder.toString()).apply();
|
||||
}
|
||||
|
||||
private void saveRecentStickers() {
|
||||
@@ -1135,7 +1135,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
stringBuilder.append(newRecentStickers.get(a));
|
||||
}
|
||||
editor.putString("stickers2", stringBuilder.toString());
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public void switchToGifRecent() {
|
||||
@@ -1331,7 +1331,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
}
|
||||
}
|
||||
}
|
||||
preferences.edit().remove("emojis").commit();
|
||||
preferences.edit().remove("emojis").apply();
|
||||
saveRecentEmoji();
|
||||
} else {
|
||||
str = preferences.getString("emojis2", "");
|
||||
@@ -1355,7 +1355,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
for (int i = 0; i < newRecent.length; i++) {
|
||||
emojiUseHistory.put(newRecent[i], newRecent.length - i);
|
||||
}
|
||||
preferences.edit().putBoolean("filled_default", true).commit();
|
||||
preferences.edit().putBoolean("filled_default", true).apply();
|
||||
saveRecentEmoji();
|
||||
}
|
||||
}
|
||||
@@ -1412,7 +1412,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
preferences.edit().remove("stickers").commit();
|
||||
preferences.edit().remove("stickers").apply();
|
||||
saveRecentStickers();
|
||||
} else {
|
||||
str = preferences.getString("stickers2", "");
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.SurfaceTexture;
|
||||
import android.graphics.Typeface;
|
||||
import android.opengl.GLES20;
|
||||
import android.opengl.GLUtils;
|
||||
import android.os.Build;
|
||||
@@ -2087,7 +2088,6 @@ public class PhotoFilterView extends FrameLayout {
|
||||
cancelTextView.setBackgroundDrawable(Theme.createBarSelectorDrawable(Theme.ACTION_BAR_PICKER_SELECTOR_COLOR, false));
|
||||
cancelTextView.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
|
||||
cancelTextView.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase());
|
||||
cancelTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
frameLayout.addView(cancelTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT));
|
||||
|
||||
doneTextView = new TextView(context);
|
||||
@@ -2097,7 +2097,7 @@ public class PhotoFilterView extends FrameLayout {
|
||||
doneTextView.setBackgroundDrawable(Theme.createBarSelectorDrawable(Theme.ACTION_BAR_PICKER_SELECTOR_COLOR, false));
|
||||
doneTextView.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
|
||||
doneTextView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase());
|
||||
doneTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
doneTextView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
frameLayout.addView(doneTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT));
|
||||
|
||||
recyclerListView = new RecyclerListView(context);
|
||||
@@ -2315,7 +2315,6 @@ public class PhotoFilterView extends FrameLayout {
|
||||
} else if (a == 3) {
|
||||
curveTextView[a].setText(LocaleController.getString("CurvesBlue", R.string.CurvesBlue).toUpperCase());
|
||||
}
|
||||
curveTextView[a].setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
curveTextViewContainer.addView(curveTextView[a], LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28, a == 0 ? 0 : 30, 0, 0, 0));
|
||||
curveTextView[a].setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
@@ -2341,7 +2340,6 @@ public class PhotoFilterView extends FrameLayout {
|
||||
tintShadowsButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
tintShadowsButton.setGravity(Gravity.CENTER_VERTICAL);
|
||||
tintShadowsButton.setText(LocaleController.getString("TintShadows", R.string.TintShadows).toUpperCase());
|
||||
tintShadowsButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
tintTextViewContainer.addView(tintShadowsButton, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28));
|
||||
tintShadowsButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
@@ -2355,7 +2353,6 @@ public class PhotoFilterView extends FrameLayout {
|
||||
tintHighlightsButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
tintHighlightsButton.setGravity(Gravity.CENTER_VERTICAL);
|
||||
tintHighlightsButton.setText(LocaleController.getString("TintHighlights", R.string.TintHighlights).toUpperCase());
|
||||
tintHighlightsButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
tintTextViewContainer.addView(tintHighlightsButton, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, 28, 100, 0, 0, 0));
|
||||
tintHighlightsButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
package com.b44t.ui.Components;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
@@ -62,7 +63,6 @@ public class PickerBottomLayout extends FrameLayout {
|
||||
cancelButton.setBackgroundDrawable(Theme.createBarSelectorDrawable(isDarkTheme ? Theme.ACTION_BAR_PICKER_SELECTOR_COLOR : Theme.ACTION_BAR_AUDIO_SELECTOR_COLOR, false));
|
||||
cancelButton.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
|
||||
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase());
|
||||
cancelButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT));
|
||||
|
||||
doneButton = new LinearLayout(context);
|
||||
@@ -72,7 +72,6 @@ public class PickerBottomLayout extends FrameLayout {
|
||||
addView(doneButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT));
|
||||
|
||||
doneButtonBadgeTextView = new TextView(context);
|
||||
doneButtonBadgeTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
doneButtonBadgeTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
|
||||
doneButtonBadgeTextView.setTextColor(0xffffffff);
|
||||
doneButtonBadgeTextView.setGravity(Gravity.CENTER);
|
||||
@@ -87,7 +86,7 @@ public class PickerBottomLayout extends FrameLayout {
|
||||
doneButtonTextView.setGravity(Gravity.CENTER);
|
||||
doneButtonTextView.setCompoundDrawablePadding(AndroidUtilities.dp(8));
|
||||
doneButtonTextView.setText(LocaleController.getString("Send", R.string.Send).toUpperCase());
|
||||
doneButtonTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
doneButtonTextView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
doneButton.addView(doneButtonTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL));
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
@@ -248,7 +249,7 @@ public class PlayerView extends FrameLayout implements NotificationCenter.Notifi
|
||||
stringBuilder = new SpannableStringBuilder(String.format("%s - %s", messageObject.getMusicAuthor(), messageObject.getMusicTitle()));
|
||||
titleTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
}
|
||||
TypefaceSpan span = new TypefaceSpan(AndroidUtilities.getTypeface("fonts/rmedium.ttf"), 0, Theme.INAPP_PLAYER_PERFORMER_TEXT_COLOR);
|
||||
TypefaceSpan span = new TypefaceSpan(Typeface.DEFAULT_BOLD, 0, Theme.INAPP_PLAYER_PERFORMER_TEXT_COLOR);
|
||||
stringBuilder.setSpan(span, 0, messageObject.getMusicAuthor().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
|
||||
titleTextView.setText(stringBuilder);
|
||||
}
|
||||
|
||||
@@ -167,7 +167,6 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not
|
||||
titleTextView.setEllipsize(TextUtils.TruncateAt.MIDDLE);
|
||||
titleTextView.setPadding(AndroidUtilities.dp(18), 0, AndroidUtilities.dp(18), 0);
|
||||
titleTextView.setGravity(Gravity.CENTER_VERTICAL);
|
||||
titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
containerView.addView(titleTextView, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 48));
|
||||
titleTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
@@ -326,7 +325,6 @@ public class StickersAlert extends BottomSheet implements NotificationCenter.Not
|
||||
previewSendButton.setBackgroundColor(0xffffffff);
|
||||
previewSendButton.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
|
||||
previewSendButton.setText(LocaleController.getString("Close", R.string.Close).toUpperCase());
|
||||
previewSendButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
previewSendButton.setVisibility(View.GONE);
|
||||
stickerPreviewLayout.addView(previewSendButton, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.BOTTOM | Gravity.LEFT));
|
||||
previewSendButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Messenger Android Frontend
|
||||
* (C) 2013-2016 Nikolai Kudashov
|
||||
* (C) 2017 Björn Petersen
|
||||
* Contact: r10s@b44t.com, http://b44t.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* This program 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.b44t.ui.Components;
|
||||
|
||||
import android.text.TextPaint;
|
||||
|
||||
import com.b44t.messenger.AndroidUtilities;
|
||||
|
||||
public class URLSpanNoUnderlineBold extends URLSpanNoUnderline {
|
||||
public URLSpanNoUnderlineBold(String url) {
|
||||
super(url);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDrawState(TextPaint ds) {
|
||||
super.updateDrawState(ds);
|
||||
ds.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,6 @@ import com.b44t.messenger.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@TargetApi(10)
|
||||
public class VideoTimelineView extends View {
|
||||
|
||||
private long videoLength = 0;
|
||||
|
||||
@@ -136,7 +136,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||
else if( do_what == SELECT_CONTACTS_FOR_NEW_GROUP )
|
||||
{
|
||||
title = LocaleController.getString("NewGroup", R.string.NewGroup);
|
||||
subtitle = LocaleController.getString("MeAnd", R.string.MeAnd) + " " + LocaleController.formatPluralString("Members", 0);
|
||||
subtitle = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.MeAndMembers, 0, 0);
|
||||
}
|
||||
else if( do_what == ADD_CONTACTS_TO_GROUP )
|
||||
{
|
||||
@@ -163,7 +163,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||
private volatile boolean m_in_sync = false;
|
||||
|
||||
@Override
|
||||
public View createView(Context context) {
|
||||
public View createView(final Context context) {
|
||||
|
||||
// do sync?
|
||||
boolean do_sync_now = true;
|
||||
@@ -464,7 +464,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||
span.uid = user.id;
|
||||
ignoreChange = false;
|
||||
}
|
||||
actionBar.setSubtitle(LocaleController.getString("MeAnd", R.string.MeAnd) + " " + LocaleController.formatPluralString("Members", selectedContacts.size()));
|
||||
actionBar.setSubtitle(context.getResources().getQuantityString(R.plurals.MeAndMembers, selectedContacts.size(), selectedContacts.size()));
|
||||
if (searching || searchWas) {
|
||||
ignoreChange = true;
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder("");
|
||||
|
||||
@@ -66,7 +66,6 @@ import com.b44t.messenger.R;
|
||||
import com.b44t.messenger.UserConfig;
|
||||
import com.b44t.ui.Adapters.DialogsAdapter;
|
||||
import com.b44t.ui.Adapters.DialogsSearchAdapter;
|
||||
import com.b44t.ui.Cells.ProfileSearchCell;
|
||||
import com.b44t.ui.Cells.UserCell;
|
||||
import com.b44t.ui.Cells.DialogCell;
|
||||
import com.b44t.ui.ActionBar.ActionBar;
|
||||
@@ -695,18 +694,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||
}
|
||||
} else if (child instanceof UserCell) {
|
||||
((UserCell) child).update(mask);
|
||||
} else if (child instanceof ProfileSearchCell) {
|
||||
((ProfileSearchCell) child).update(mask);
|
||||
} /*else if (child instanceof RecyclerListView) {
|
||||
RecyclerListView innerListView = (RecyclerListView) child;
|
||||
int count2 = innerListView.getChildCount();
|
||||
for (int b = 0; b < count2; b++) {
|
||||
View child2 = innerListView.getChildAt(b);
|
||||
if (child2 instanceof HintDialogCell) {
|
||||
((HintDialogCell) child2).checkUnreadCounter(mask);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -192,7 +192,6 @@ public class DocumentSelectActivity extends BaseFragment {
|
||||
|
||||
selectedMessagesCountTextView = new NumberTextView(actionMode.getContext());
|
||||
selectedMessagesCountTextView.setTextSize(18);
|
||||
selectedMessagesCountTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
selectedMessagesCountTextView.setTextColor(0xff737373);
|
||||
selectedMessagesCountTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
|
||||
@@ -137,8 +137,11 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati
|
||||
}
|
||||
int i, icnt = selectedContacts.size();
|
||||
for( i = 0; i < icnt; i++ ) {
|
||||
if( 0==MrMailbox.addContactToChat(chat_id, selectedContacts.get(i)) ) {
|
||||
Toast.makeText(getParentActivity(), "ErrAddContact", Toast.LENGTH_LONG).show();
|
||||
int contact_id = selectedContacts.get(i);
|
||||
if( contact_id != MrContact.MR_CONTACT_ID_SELF ) {
|
||||
if (0 == MrMailbox.addContactToChat(chat_id, contact_id)) {
|
||||
Toast.makeText(getParentActivity(), "ErrAddContactToGroup", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,7 +271,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati
|
||||
}
|
||||
|
||||
GreySectionCell sectionCell = new GreySectionCell(context);
|
||||
sectionCell.setText(LocaleController.formatPluralString("Members", selectedContacts.size()));
|
||||
sectionCell.setText(context.getResources().getQuantityString(R.plurals.Members, selectedContacts.size(), selectedContacts.size()));
|
||||
linearLayout.addView(sectionCell);
|
||||
|
||||
listView = new ListView(context);
|
||||
|
||||
@@ -43,10 +43,13 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.b44t.messenger.AndroidUtilities;
|
||||
import com.b44t.messenger.ApplicationLoader;
|
||||
import com.b44t.messenger.LocaleController;
|
||||
import com.b44t.messenger.R;
|
||||
import com.b44t.ui.ActionBar.Theme;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class IntroActivity extends Activity {
|
||||
|
||||
private ViewPager viewPager;
|
||||
@@ -133,7 +136,7 @@ public class IntroActivity extends Activity {
|
||||
}
|
||||
viewPager = (ViewPager) findViewById(R.id.intro_view_pager);
|
||||
TextView startMessagingButton = (TextView) findViewById(R.id.start_messaging_button);
|
||||
startMessagingButton.setText(LocaleController.getString("StartMessaging", R.string.IntroStartMessaging).toUpperCase());
|
||||
startMessagingButton.setText(ApplicationLoader.applicationContext.getString(R.string.IntroStartMessaging).toUpperCase(Locale.getDefault()));
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
StateListAnimator animator = new StateListAnimator();
|
||||
animator.addState(new int[]{android.R.attr.state_pressed}, ObjectAnimator.ofFloat(startMessagingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4)).setDuration(200));
|
||||
|
||||
@@ -185,7 +185,6 @@ public class LanguageSelectActivity extends BaseFragment {
|
||||
}
|
||||
if (localeInfo != null) {
|
||||
LocaleController.getInstance().applyLanguage(localeInfo, true);
|
||||
MrMailbox.initStockStrings();
|
||||
parentLayout.rebuildAllFragmentViews(false);
|
||||
}
|
||||
finishFragment();
|
||||
|
||||
@@ -191,7 +191,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
enabled = preferences.getBoolean("EnableGroup", true);
|
||||
editor.putBoolean("EnableGroup", !enabled);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
} else if (i == messagePreviewRow /*|| i == groupPreviewRow*/) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
@@ -202,7 +202,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
// enabled = preferences.getBoolean("EnablePreviewGroup", true);
|
||||
// editor.putBoolean("EnablePreviewGroup", !enabled);
|
||||
//}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
} else if (i == messageSoundRow || i == groupSoundRow) {
|
||||
try {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
@@ -253,7 +253,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.clear();
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -267,13 +267,13 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
enabled = preferences.getBoolean("EnableInAppSounds", true);
|
||||
editor.putBoolean("EnableInAppSounds", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
} else if (i == inappVibrateRow) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
enabled = preferences.getBoolean("EnableInAppVibrate", true);
|
||||
editor.putBoolean("EnableInAppVibrate", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
/*} else if (i == inappPreviewRow) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
@@ -285,21 +285,21 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
enabled = preferences.getBoolean("EnableInChatSound", true);
|
||||
editor.putBoolean("EnableInChatSound", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
NotificationsController.getInstance().setInChatSoundEnabled(!enabled);
|
||||
} else if (i == badgeNumberRow) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
enabled = preferences.getBoolean("badgeNumber", true);
|
||||
editor.putBoolean("badgeNumber", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
NotificationsController.getInstance().setBadgeEnabled(!enabled);
|
||||
} else if (i == notificationsServiceConnectionRow) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
enabled = preferences.getBoolean("pushConnection", true);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("pushConnection", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (!enabled) {
|
||||
ConnectionsManager.getInstance().setPushConnectionEnabled(true);
|
||||
} else {
|
||||
@@ -310,7 +310,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
final SharedPreferences.Editor editor = preferences.edit();
|
||||
enabled = preferences.getBoolean("pushService", true);
|
||||
editor.putBoolean("pushService", !enabled);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
ApplicationLoader.stopPushService();
|
||||
ApplicationLoader.startPushService();
|
||||
} else if (i == messageLedRow || i == groupLedRow) {
|
||||
@@ -346,7 +346,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
editor.putInt("GroupLed", colorPickerView.getColor());
|
||||
textCell.setTextAndColor(LocaleController.getString("LedColor", R.string.LedColor), colorPickerView.getColor(), true);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
});
|
||||
builder.setNeutralButton(LocaleController.getString("Disabled", R.string.Disabled), new DialogInterface.OnClickListener() {
|
||||
@@ -362,7 +362,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
editor.putInt("GroupLed", 0);
|
||||
textCell.setTextAndColor(LocaleController.getString("LedColor", R.string.LedColor), 0, true);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
});
|
||||
@@ -396,7 +396,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
} else if (which == 4) {
|
||||
editor.putInt(param, 4);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -416,11 +416,11 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
if (i == messagePriorityRow) {
|
||||
preferences.edit().putInt("priority_messages", which).commit();
|
||||
preferences.edit().putInt("priority_messages", which).apply();
|
||||
} else if (i == groupPriorityRow) {
|
||||
preferences.edit().putInt("priority_group", which).commit();
|
||||
preferences.edit().putInt("priority_group", which).apply();
|
||||
} else if (i == inappPriorityRow) {
|
||||
preferences.edit().putInt("priority_inapp", which).commit();
|
||||
preferences.edit().putInt("priority_inapp", which).apply();
|
||||
}
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
@@ -434,12 +434,12 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
builder.setTitle(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications));
|
||||
builder.setItems(new CharSequence[]{
|
||||
LocaleController.getString("Disabled", R.string.Disabled),
|
||||
LocaleController.formatPluralString("Minutes", 5),
|
||||
LocaleController.formatPluralString("Minutes", 10),
|
||||
LocaleController.formatPluralString("Minutes", 30),
|
||||
LocaleController.formatPluralString("Hours", 1),
|
||||
LocaleController.formatPluralString("Hours", 2),
|
||||
LocaleController.formatPluralString("Hours", 4)
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, 5, 5),
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, 10, 10),
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, 30, 30),
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, 1, 1),
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, 2, 2),
|
||||
ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, 4, 4)
|
||||
}, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
@@ -458,7 +458,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
minutes = 60 * 4;
|
||||
}
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putInt("repeat_messages", minutes).commit();
|
||||
preferences.edit().putInt("repeat_messages", minutes).apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -513,7 +513,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
editor.putString("GroupSoundPath", "NoSound");
|
||||
}
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
}
|
||||
@@ -679,9 +679,9 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||
if (minutes == 0) {
|
||||
value = LocaleController.getString("Disabled", R.string.Disabled);
|
||||
} else if (minutes < 60) {
|
||||
value = LocaleController.formatPluralString("Minutes", minutes);
|
||||
value = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, minutes, minutes);
|
||||
} else {
|
||||
value = LocaleController.formatPluralString("Hours", minutes / 60);
|
||||
value = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, minutes / 60, minutes / 60);
|
||||
}
|
||||
textCell.setTextAndValue(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications), value, true);
|
||||
}
|
||||
|
||||
@@ -288,7 +288,6 @@ public class PasscodeActivity extends BaseFragment implements NotificationCenter
|
||||
dropDown.setMaxLines(1);
|
||||
dropDown.setEllipsize(TextUtils.TruncateAt.END);
|
||||
dropDown.setTextColor(0xffffffff);
|
||||
dropDown.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
dropDown.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_arrow_drop_down, 0);
|
||||
dropDown.setCompoundDrawablePadding(AndroidUtilities.dp(4));
|
||||
dropDown.setPadding(0, 0, AndroidUtilities.dp(10), 0);
|
||||
@@ -371,13 +370,13 @@ public class PasscodeActivity extends BaseFragment implements NotificationCenter
|
||||
if (value == 0) {
|
||||
return LocaleController.getString("Disabled", R.string.Disabled);
|
||||
} else if (value == 1) {
|
||||
return LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Minutes", 1));
|
||||
return ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, 1, 1);
|
||||
} else if (value == 2) {
|
||||
return LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Minutes", 5));
|
||||
return ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, 5, 5);
|
||||
} else if (value == 3) {
|
||||
return LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Hours", 1));
|
||||
return ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, 1, 1);
|
||||
} else if (value == 4) {
|
||||
return LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Hours", 5));
|
||||
return ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, 5, 5);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@@ -674,11 +673,11 @@ public class PasscodeActivity extends BaseFragment implements NotificationCenter
|
||||
if (UserConfig.autoLockIn == 0) {
|
||||
val = LocaleController.formatString("Disabled", R.string.Disabled);
|
||||
} else if (UserConfig.autoLockIn < 60 * 60) {
|
||||
val = LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Minutes", UserConfig.autoLockIn / 60));
|
||||
val = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, UserConfig.autoLockIn / 60, UserConfig.autoLockIn / 60);
|
||||
} else if (UserConfig.autoLockIn < 60 * 60 * 24) {
|
||||
val = LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Hours", (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60)));
|
||||
val = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Hours, (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60), (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60));
|
||||
} else {
|
||||
val = LocaleController.formatString("AutoLockInTime", R.string.AutoLockInTime, LocaleController.formatPluralString("Days", (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60 / 24)));
|
||||
val = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Days, (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60 / 24), (int) Math.ceil(UserConfig.autoLockIn / 60.0f / 60 / 24));
|
||||
}
|
||||
textCell.setTextAndValue(LocaleController.getString("AutoLock", R.string.AutoLock), val, true);
|
||||
textCell.setTextColor(0xff000000);
|
||||
|
||||
@@ -196,7 +196,6 @@ public class PhotoAlbumPickerActivity extends BaseFragment implements Notificati
|
||||
dropDown.setMaxLines(1);
|
||||
dropDown.setEllipsize(TextUtils.TruncateAt.END);
|
||||
dropDown.setTextColor(0xffffffff);
|
||||
dropDown.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
dropDown.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_arrow_drop_down, 0);
|
||||
dropDown.setCompoundDrawablePadding(AndroidUtilities.dp(4));
|
||||
dropDown.setPadding(0, 0, AndroidUtilities.dp(10), 0);
|
||||
|
||||
@@ -1288,9 +1288,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
menuItem.addSubItem(gallery_menu_openin, str, 0);
|
||||
menuItem.addSubItem(gallery_menu_save, LocaleController.getString("SaveToGallery", R.string.SaveToGallery), 0);
|
||||
//menuItem.addSubItem(gallery_menu_showall, LocaleController.getString("ShowAllMedia", R.string.ShowAllMedia), 0);
|
||||
menuItem.addSubItem(gallery_menu_share, LocaleController.getString("ShareFile", R.string.ShareFile), 0);
|
||||
menuItem.addSubItem(gallery_menu_forward, LocaleController.getString("Forward", R.string.Forward), 0);
|
||||
menuItem.addSubItem(gallery_menu_delete, LocaleController.getString("Delete", R.string.Delete), 0);
|
||||
|
||||
// the following 3 options are disabled for the moment, we'll add them if we have the time (bp)
|
||||
// (as a replacement, you can use "save to gallery" for sharing or the options from the chat for forwarding/delete)
|
||||
//menuItem.addSubItem(gallery_menu_share, LocaleController.getString("ShareFile", R.string.ShareFile), 0);
|
||||
//menuItem.addSubItem(gallery_menu_forward, LocaleController.getString("Forward", R.string.Forward), 0);
|
||||
//menuItem.addSubItem(gallery_menu_delete, LocaleController.getString("Delete", R.string.Delete), 0);
|
||||
|
||||
//captionDoneItem = menu.addItemWithWidth(gallery_menu_caption_done, R.drawable.ic_done, AndroidUtilities.dp(56));
|
||||
//captionItem = menu.addItemWithWidth(gallery_menu_caption, R.drawable.photo_text, AndroidUtilities.dp(56));
|
||||
@@ -1348,7 +1351,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
|
||||
nameTextView = new TextView(containerView.getContext());
|
||||
nameTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
nameTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
nameTextView.setSingleLine(true);
|
||||
nameTextView.setMaxLines(1);
|
||||
nameTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
@@ -1362,7 +1364,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
dateTextView.setMaxLines(1);
|
||||
dateTextView.setEllipsize(TextUtils.TruncateAt.END);
|
||||
dateTextView.setTextColor(0xffffffff);
|
||||
dateTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
dateTextView.setGravity(Gravity.LEFT);
|
||||
bottomLayout.addView(dateTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.LEFT, 16, 25, 50, 0));
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("notify2_" + MrChat.MR_CHAT_ID_DEADDROP, oldval==1? 2 /*always muted*/ : 0);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -38,6 +38,7 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
@@ -553,7 +554,6 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||
nameTextView[a].setTextColor(Theme.ACTION_BAR_TITLE_COLOR);
|
||||
nameTextView[a].setTextSize(18);
|
||||
nameTextView[a].setGravity(Gravity.LEFT);
|
||||
nameTextView[a].setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||
nameTextView[a].setLeftDrawableTopPadding(-AndroidUtilities.dp(1.3f));
|
||||
nameTextView[a].setRightDrawableTopPadding(-AndroidUtilities.dp(1.3f));
|
||||
nameTextView[a].setPivotX(0);
|
||||
|
||||
@@ -182,7 +182,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
} else if (which == 4) {
|
||||
editor.putInt("vibrate_" + dialog_id, 3);
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
@@ -210,7 +210,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
NotificationsController.getInstance().removeNotificationsForDialog(dialog_id);
|
||||
}*/
|
||||
//MessagesStorage.getInstance().setDialogFlags(dialog_id, which == 2 ? 1 : 0);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
TLRPC.TL_dialog dialog = MessagesController.getInstance().dialogs_dict.get(dialog_id);
|
||||
if (dialog != null) {
|
||||
dialog.notify_settings = new TLRPC.TL_peerNotifySettings();
|
||||
@@ -285,7 +285,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
final SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("color_" + dialog_id, colorPickerView.getColor());
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
});
|
||||
@@ -295,7 +295,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
final SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("color_" + dialog_id, 0);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
});
|
||||
@@ -305,7 +305,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
final SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.remove("color_" + dialog_id);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
});
|
||||
@@ -327,7 +327,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
which--;
|
||||
}
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putInt("priority_" + dialog_id, which).commit();
|
||||
preferences.edit().putInt("priority_" + dialog_id, which).apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -434,8 +434,8 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putInt("smart_max_count_" + dialog_id, numberPickerTimes.getValue()).commit();
|
||||
preferences.edit().putInt("smart_delay_" + dialog_id, numberPickerMinutes.getValue() * 60).commit();
|
||||
preferences.edit().putInt("smart_max_count_" + dialog_id, numberPickerTimes.getValue()).apply();
|
||||
preferences.edit().putInt("smart_delay_" + dialog_id, numberPickerMinutes.getValue() * 60).apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -445,7 +445,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||
preferences.edit().putInt("smart_max_count_" + dialog_id, 0).commit();
|
||||
preferences.edit().putInt("smart_max_count_" + dialog_id, 0).apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -491,7 +491,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
editor.putString("sound_path_" + dialog_id, "NoSound");
|
||||
}
|
||||
}
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
listView.invalidateViews();
|
||||
}
|
||||
}
|
||||
@@ -583,11 +583,14 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
if (delta <= 0) {
|
||||
val = LocaleController.getString("Enabled", R.string.Enabled);
|
||||
} else if (delta < 60 * 60) {
|
||||
val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Minutes", delta / 60));
|
||||
// @TODO: Maybe this should be reworded a bit.
|
||||
val = mContext.getResources().getQuantityString(R.plurals.Minutes, delta / 60, delta / 60);
|
||||
} else if (delta < 60 * 60 * 24) {
|
||||
val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Hours", (int) Math.ceil(delta / 60.0f / 60)));
|
||||
// @TODO: Maybe this should be reworded a bit.
|
||||
val = mContext.getResources().getQuantityString(R.plurals.Hours, (int) Math.ceil(delta / 60.0f / 60), (int) Math.ceil(delta / 60.0f / 60));
|
||||
} else if (delta < 60 * 60 * 24 * 365) {
|
||||
val = LocaleController.formatString("WillUnmuteIn", R.string.WillUnmuteIn, LocaleController.formatPluralString("Days", (int) Math.ceil(delta / 60.0f / 60 / 24)));
|
||||
// @TODO: Maybe this should be reworded a bit.
|
||||
val = mContext.getResources().getQuantityString(R.plurals.Days, (int) Math.ceil(delta / 60.0f / 60 / 24), (int) Math.ceil(delta / 60.0f / 60 / 24));
|
||||
} else {
|
||||
val = null;
|
||||
}
|
||||
@@ -628,9 +631,9 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||
if (notifyMaxCount == 0) {
|
||||
textCell.setTextAndValue(LocaleController.getString("SmartNotifications", R.string.SmartNotifications), LocaleController.getString("Disabled", R.string.Disabled), true);
|
||||
} else {
|
||||
String times = LocaleController.formatPluralString("Times", notifyMaxCount);
|
||||
String minutes = LocaleController.formatPluralString("Minutes", notifyDelay / 60);
|
||||
textCell.setTextAndValue(LocaleController.getString("SmartNotifications", R.string.SmartNotifications), LocaleController.formatString("SmartNotificationsInfo", R.string.SmartNotificationsInfo, times, minutes), true);
|
||||
String minutes = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Minutes, notifyDelay / 60, notifyDelay / 60);
|
||||
String value = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.MaxNotifications, notifyMaxCount, notifyMaxCount, minutes);
|
||||
textCell.setTextAndValue(LocaleController.getString("SmartNotifications", R.string.SmartNotifications), value, true);
|
||||
}
|
||||
}
|
||||
} else if (type == TYPE_COLOR_CELL) {
|
||||
|
||||
@@ -209,7 +209,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("msg_font_size", numberPicker.getValue());
|
||||
MessagesController.getInstance().fontSize = numberPicker.getValue();
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
@@ -221,7 +221,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
|
||||
boolean animations = preferences.getBoolean("view_animations", true);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("view_animations", !animations);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (view instanceof TextCheckCell) {
|
||||
((TextCheckCell) view).setChecked(!animations);
|
||||
}
|
||||
@@ -234,7 +234,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
|
||||
boolean send = preferences.getBoolean("send_by_enter", false);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("send_by_enter", !send);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
if (view instanceof TextCheckCell) {
|
||||
((TextCheckCell) view).setChecked(!send);
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
|
||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putBoolean("compress_video", isChecked);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
updateVideoEditedInfo();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -79,8 +79,6 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
|
||||
private ListAdapter listAdapter;
|
||||
private ImageView backgroundImage;
|
||||
private FrameLayout progressView;
|
||||
private View progressViewBackground;
|
||||
private int selectedBackground;
|
||||
private int selectedColor;
|
||||
private ArrayList<TLRPC.WallPaper> wallPapers = new ArrayList<>();
|
||||
@@ -175,7 +173,7 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("selectedBackground", selectedBackground);
|
||||
editor.putInt("selectedColor", selectedColor);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
ApplicationLoader.reloadWallpaper();
|
||||
}
|
||||
finishFragment();
|
||||
@@ -199,24 +197,6 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
}
|
||||
});
|
||||
|
||||
progressView = new FrameLayout(context);
|
||||
progressView.setVisibility(View.INVISIBLE);
|
||||
frameLayout.addView(progressView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT, 0, 0, 0, 52));
|
||||
|
||||
progressViewBackground = new View(context);
|
||||
progressViewBackground.setBackgroundResource(R.drawable.system_loader);
|
||||
progressView.addView(progressViewBackground, LayoutHelper.createFrame(36, 36, Gravity.CENTER));
|
||||
|
||||
ProgressBar progressBar = new ProgressBar(context);
|
||||
try {
|
||||
progressBar.setIndeterminateDrawable(context.getResources().getDrawable(R.drawable.loading_animation));
|
||||
} catch (Exception e) {
|
||||
//don't promt
|
||||
}
|
||||
progressBar.setIndeterminate(true);
|
||||
AndroidUtilities.setProgressBarAnimationDuration(progressBar, 1500);
|
||||
progressView.addView(progressBar, LayoutHelper.createFrame(32, 32, Gravity.CENTER));
|
||||
|
||||
RecyclerListView listView = new RecyclerListView(context);
|
||||
listView.setClipToPadding(false);
|
||||
listView.setTag(8);
|
||||
@@ -357,12 +337,9 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
String fileName = size.location.volume_id + "_" + size.location.local_id + ".jpg";
|
||||
File f = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName);
|
||||
if (!f.exists()) {
|
||||
int result[] = AndroidUtilities.calcDrawableColor(backgroundImage.getDrawable());
|
||||
progressViewBackground.getBackground().setColorFilter(new PorterDuffColorFilter(result[0], PorterDuff.Mode.MULTIPLY));
|
||||
loadingFile = fileName;
|
||||
loadingFileObject = f;
|
||||
doneButton.setEnabled(false);
|
||||
progressView.setVisibility(View.VISIBLE);
|
||||
loadingSize = size;
|
||||
selectedColor = 0;
|
||||
FileLoader.getInstance().loadFile(size, null, true);
|
||||
@@ -382,7 +359,6 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
backgroundImage.setBackgroundColor(0);
|
||||
selectedColor = 0;
|
||||
doneButton.setEnabled(true);
|
||||
progressView.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
if (loadingFile != null) {
|
||||
@@ -418,7 +394,6 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
loadingFile = null;
|
||||
loadingSize = null;
|
||||
doneButton.setEnabled(true);
|
||||
progressView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,14 +406,12 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
loadingFileObject = null;
|
||||
loadingFile = null;
|
||||
loadingSize = null;
|
||||
progressView.setVisibility(View.GONE);
|
||||
doneButton.setEnabled(false);
|
||||
}
|
||||
} else if (id == NotificationCenter.FileDidLoaded) {
|
||||
String location = (String) args[0];
|
||||
if (loadingFile != null && loadingFile.equals(location)) {
|
||||
backgroundImage.setImageURI(Uri.fromFile(loadingFileObject));
|
||||
progressView.setVisibility(View.GONE);
|
||||
backgroundImage.setBackgroundColor(0);
|
||||
doneButton.setEnabled(true);
|
||||
loadingFileObject = null;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 385 KiB After Width: | Height: | Size: 115 KiB |
Executable → Regular
+121
-121
@@ -1,122 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="128dp"
|
||||
android:orientation="horizontal"
|
||||
android:background="#ff424242" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_album_art"
|
||||
android:layout_width="128dp"
|
||||
android:layout_height="128dp"
|
||||
android:scaleType="fitXY"
|
||||
android:background="#ffc0c0c0" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_song_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="top|left"
|
||||
android:singleLine="true"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="16dp"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginRight="44dp"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_close"
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:layout_gravity="right"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_close_white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_author_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textColor="#ffc7c7c7"
|
||||
android:layout_marginTop="25dp"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="44dp"
|
||||
android:textSize="13dp" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_height="1dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="#ff606060"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:indeterminateDrawable="@drawable/loading_animation"
|
||||
android:indeterminateDuration="1500"
|
||||
android:id="@+id/player_progress_bar" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_previous"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_previous" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_pause"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_pause" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_play"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_play"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_next"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="128dp"
|
||||
android:orientation="horizontal"
|
||||
android:background="#ff424242" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_album_art"
|
||||
android:layout_width="128dp"
|
||||
android:layout_height="128dp"
|
||||
android:scaleType="fitXY"
|
||||
android:background="#ffc0c0c0" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_song_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="top|left"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="16dp"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginRight="44dp"
|
||||
android:maxLines="1" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_close"
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:layout_gravity="right"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_close_white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_author_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#ffc7c7c7"
|
||||
android:layout_marginTop="25dp"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="44dp"
|
||||
android:textSize="13dp"
|
||||
android:maxLines="1" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_height="1dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="#ff606060"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:indeterminateDrawable="@drawable/loading_animation"
|
||||
android:indeterminateDuration="1500"
|
||||
android:id="@+id/player_progress_bar" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_previous"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_previous" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_pause"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_pause" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_play"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_play"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_next"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
Executable → Regular
+115
-115
@@ -1,116 +1,116 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#ff424242" >
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/transparent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_album_art"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:scaleType="fitXY"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="12dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_song_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="top|left"
|
||||
android:singleLine="true"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="16dp"
|
||||
android:layout_marginLeft="64dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="180dp"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_close"
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_close_white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_author_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textColor="#ffc7c7c7"
|
||||
android:layout_marginTop="33dp"
|
||||
android:layout_marginLeft="64dp"
|
||||
android:layout_marginRight="180dp"
|
||||
android:textSize="13dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
android:gravity="center"
|
||||
android:layout_marginRight="40dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="56dp"
|
||||
android:indeterminateDrawable="@drawable/loading_animation"
|
||||
android:indeterminateDuration="1500"
|
||||
android:id="@+id/player_progress_bar" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_previous"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_previous" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_pause"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_pause" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_play"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_play"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_next"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#ff424242" >
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/transparent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_album_art"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:scaleType="fitXY"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="12dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_song_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="top|left"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="16dp"
|
||||
android:layout_marginLeft="64dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="180dp"
|
||||
android:maxLines="1" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_close"
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_close_white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_author_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#ffc7c7c7"
|
||||
android:layout_marginTop="33dp"
|
||||
android:layout_marginLeft="64dp"
|
||||
android:layout_marginRight="180dp"
|
||||
android:textSize="13dp"
|
||||
android:maxLines="1" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="48dp"
|
||||
android:gravity="center"
|
||||
android:layout_marginRight="40dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="56dp"
|
||||
android:indeterminateDrawable="@drawable/loading_animation"
|
||||
android:indeterminateDuration="1500"
|
||||
android:id="@+id/player_progress_bar" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_previous"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_previous" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_pause"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_pause" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_play"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_play"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/player_next"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scaleType="center"
|
||||
android:background="@drawable/bar_selector_white"
|
||||
android:src="@drawable/ic_action_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -4,7 +4,6 @@
|
||||
android:layout_alignParentRight="true">
|
||||
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="56dp"
|
||||
android:id="@+id/count_text"
|
||||
|
||||
@@ -13,16 +13,17 @@
|
||||
<string name="Yesterday">gestern</string>
|
||||
<string name="NoResult">Keine Ergebnisse</string>
|
||||
<string name="NoChats">Noch keine Chats.</string>
|
||||
<string name="WaitingForNetwork">Warte auf Netzwerk...</string>
|
||||
<string name="Connecting">Verbinde…</string>
|
||||
<string name="Updating">Aktualisiere…</string>
|
||||
<string name="WaitingForNetwork">Warte auf Netzwerk …</string>
|
||||
<string name="Connecting">Verbinde …</string>
|
||||
<string name="Updating">Aktualisiere …</string>
|
||||
<string name="DeleteChat">Chat löschen</string>
|
||||
<string name="SelectChat">Chat auswählen ...</string>
|
||||
<string name="SelectChat">Chat auswählen …</string>
|
||||
<string name="Search">Suche</string>
|
||||
<string name="MuteNotifications">Stummschalten</string>
|
||||
<string name="MuteFor">Stumm für %1$s</string>
|
||||
<string name="MuteFor1Hour">Stumm für 1 Stunde</string>
|
||||
<string name="MuteFor8Hours">Stumm für 8 Stunden</string>
|
||||
<string name="MuteFor2Days">Stumm für 2 Tage</string>
|
||||
<string name="UnmuteNotifications">Stumm aus</string>
|
||||
<string name="WillUnmuteIn">In %1$s</string>
|
||||
<string name="Draft">Entwurf</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Musikdateien der Android Musikbibliothek hinzufügen, um sie hier zu sehen.</string>
|
||||
@@ -34,7 +35,7 @@
|
||||
<string name="FreeOfTotal">Freier Speicher: %1$s von %2$s</string>
|
||||
<string name="UnknownError">Unbekannter Fehler</string>
|
||||
<string name="AccessError">Zugriffsfehler</string>
|
||||
<string name="NoFiles">Noch keine Dateien…</string>
|
||||
<string name="NoFiles">Noch keine Dateien …</string>
|
||||
<string name="FileUploadLimit">Die Datei darf nicht größer als %1$s sein</string>
|
||||
<string name="NotMounted">Speicher nicht eingebunden</string>
|
||||
<string name="UsbActive">USB-Transfer aktiv</string>
|
||||
@@ -61,11 +62,9 @@
|
||||
<string name="SaveToMusic">Musik speichern</string>
|
||||
<string name="ShareFile">Teilen</string>
|
||||
<string name="UnsupportedAttachment">Nicht unterstützte Datei</string>
|
||||
<string name="OpenInBrowser">ÖFFNEN MIT...</string>
|
||||
<string name="OpenInBrowser">ÖFFNEN MIT …</string>
|
||||
<string name="SendItems">%1$s senden</string>
|
||||
<string name="OpenUrlAlert">URL %1$s öffnen?</string>
|
||||
<string name="MoreInfo">Mehr Infos</string>
|
||||
<string name="ShareSendTo">Sende an...</string>
|
||||
<string name="ClearRecentEmoji">Zuletzt benutzte Emoji leeren?</string>
|
||||
<string name="AddShortcut">Auf Startbildschirm platzieren</string>
|
||||
<string name="ShortcutAdded">Widget zum Startbildschirm hinzugefügt</string>
|
||||
@@ -73,15 +72,12 @@
|
||||
<string name="Reply">Antworten</string>
|
||||
<string name="ReplyToGroup">%1$s antworten</string>
|
||||
<string name="ReplyToUser">%1$s antworten</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Keine Benutzer.</string>
|
||||
<string name="TodayAt">um</string>
|
||||
<string name="YesterdayAt">gestern um</string>
|
||||
<string name="LastSeen">zul. online</string>
|
||||
<string name="LastSeenDate">zul. online</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Sende Nachricht an…</string>
|
||||
<string name="SendMessageTo">Sende Nachricht an …</string>
|
||||
<string name="EnterGroupNamePlaceholder">Gruppenname</string>
|
||||
<string name="ShareLink">Link teilen</string>
|
||||
<!--group info view-->
|
||||
@@ -141,7 +137,7 @@
|
||||
<string name="NotificationsServiceConnection">Hintergrundverbindung</string>
|
||||
<string name="NotificationsServiceConnectionInfo">Nutzt eine batterieschonende Hintergrundverbindung, um Benachrichtigungen zu gewährleisten.</string>
|
||||
<string name="LedColor">LED-Farbe</string>
|
||||
<string name="BadgeNumber">Anzahl in Popup anzeigen</string>
|
||||
<string name="BadgeNumber">Anzahl auf Icon anzeigen, wenn möglich</string>
|
||||
<string name="Short">Kurz</string>
|
||||
<string name="Long">Lang</string>
|
||||
<string name="SystemDefault">Systemvorgabe</string>
|
||||
@@ -247,7 +243,7 @@
|
||||
<string name="ClearButton">Löschen</string>
|
||||
<string name="PickerPhotos">Bilder</string>
|
||||
<string name="PickerVideo">Video</string>
|
||||
<string name="AddCaption">Beschriftung...</string>
|
||||
<string name="AddCaption">Beschriftung …</string>
|
||||
<string name="PhotoCaption">Bildbeschriftung</string>
|
||||
<string name="VideoCaption">Videobeschriftung</string>
|
||||
<string name="Caption">Beschriftung</string>
|
||||
@@ -259,7 +255,7 @@
|
||||
<string name="EditVideo">Video bearbeiten</string>
|
||||
<string name="OriginalVideo">Originalvideo</string>
|
||||
<string name="EditedVideo">Bearbeitetes Video</string>
|
||||
<string name="SendingVideo">Sende Video...</string>
|
||||
<string name="SendingVideo">Sende Video …</string>
|
||||
<string name="CompressVideo">Video komprimieren</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Weiter</string>
|
||||
@@ -293,7 +289,7 @@
|
||||
<string name="AttachAudio">Sprachnachricht</string>
|
||||
<string name="FromSelf">Ich</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Lädt…</string>
|
||||
<string name="Loading">Lädt …</string>
|
||||
<string name="NoPlayerInstalled">Du hast keinen Videoplayer. Bitte installiere einen um fortzufahren.</string>
|
||||
<string name="NoHandleAppInstalled">Du hast keine Applikationen, die den Dateityp \'%1$s\' öffnen könnten. Bitte installiere eine entsprechende Anwendung um fortzufahren.</string>
|
||||
<string name="AddToTheGroupTitle">%1$s dem Chat %2$s hinzufügen?</string>
|
||||
@@ -308,14 +304,11 @@
|
||||
<string name="ShareYouLocationUnableManually">Selbst wählen</string>
|
||||
<string name="AreYouSureBlockContact">Diesen Benutzer wirklich blockieren?</string>
|
||||
<string name="AreYouSureDeleteContact">Diesen Benutzer wirklich löschen?</string>
|
||||
<string name="AreYouSureDeleteMessages">%1$s löschen? Die Nachrichten werden auch auf dem Server gelöscht.</string>
|
||||
<string name="RaiseToSpeakAlert">Möchtest du \"Zum Sprechen ans Ohr\" für Sprachnachrichten aktivieren?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Für eine einfache Kontaktaufnahme, benötigt Delta Chat Zugriff auf die Kontakte. Die Daten werden dabei nur lokal verarbeitet und zu keinem Server oder Dienst übertragen.</string>
|
||||
<string name="PermissionStorage">Um Bilder, Videos, Musik und Dateien senden und speichern zu können, benötigt Delta Chat Zugriff auf den Speicher.</string>
|
||||
<string name="PermissionNoAudio">Um Sprachnachrichten versenden zu können, benötigt Delta Chat Zugriff auf das Mikrofon.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat benötigt Zugriff auf deinen Standort, damit du ihn mit Freunden teilen kannst. </string>
|
||||
<string name="PermissionNoLocationPosition">Delta Chat benötigt Zugriff auf deinen Standort.</string>
|
||||
<string name="PermissionOpenSettings">Einstellungen</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
@@ -341,128 +334,69 @@
|
||||
|
||||
<string name="IntroStartMessaging">Jetzt beginnen</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d Mitglieder</string>
|
||||
<string name="Members_one">%1$d Mitglied</string>
|
||||
<string name="Members_two">%1$d Mitglieder</string>
|
||||
<string name="Members_few">%1$d Mitglieder</string>
|
||||
<string name="Members_many">%1$d Mitglieder</string>
|
||||
<string name="Members_other">%1$d Mitglieder</string>
|
||||
<string name="NewMessages_zero">keine neuen Nachrichten</string>
|
||||
<string name="NewMessages_one">%1$d neue Nachricht</string>
|
||||
<string name="NewMessages_two">%1$d neue Nachrichten</string>
|
||||
<string name="NewMessages_few">%1$d neue Nachrichten</string>
|
||||
<string name="NewMessages_many">%1$d neue Nachrichten</string>
|
||||
<string name="NewMessages_other">%1$d neue Nachrichten</string>
|
||||
<string name="messages_zero">keine Nachrichten</string>
|
||||
<string name="messages_one">%1$d Nachricht</string>
|
||||
<string name="messages_two">%1$d Nachrichten</string>
|
||||
<string name="messages_few">%1$d Nachrichten</string>
|
||||
<string name="messages_many">%1$d Nachrichten</string>
|
||||
<string name="messages_other">%1$d Nachrichten</string>
|
||||
<string name="items_zero">keine Objekte</string>
|
||||
<string name="items_one">%1$d Objekt</string>
|
||||
<string name="items_two">%1$d Objekte</string>
|
||||
<string name="items_few">%1$d Objekte</string>
|
||||
<string name="items_many">%1$d Objekte</string>
|
||||
<string name="items_other">%1$d Objekte</string>
|
||||
<string name="FromChats_zero">in keinen Chats</string>
|
||||
<string name="FromChats_one">in %1$d Chat</string>
|
||||
<string name="FromChats_two">in %1$d Chats</string>
|
||||
<string name="FromChats_few">in %1$d Chats</string>
|
||||
<string name="FromChats_many">in %1$d Chats</string>
|
||||
<string name="FromChats_other">in %1$d Chats</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d Mitglied</item>
|
||||
<item quantity="other">%d Mitglieder</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d Kontakt</item>
|
||||
<item quantity="other">%d Kontakte</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">Ich und %d Mitglied</item>
|
||||
<item quantity="other">Ich und %d Mitglieder</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d neue Nachricht</item>
|
||||
<item quantity="other">%d neue Nachrichten</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d Nachricht</item>
|
||||
<item quantity="other">%d Nachrichten</item>
|
||||
</plurals>
|
||||
<plurals name="AreYouSureDeleteMessages">
|
||||
<item quantity="one">%d Nachricht löschen? Die Nachricht wird auch auf dem Server gelöscht.</item>
|
||||
<item quantity="other">%d Nachrichten löschen? Die Nachrichten werden auch auf dem Server gelöscht.</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessagesInChats">
|
||||
<!-- Translators: the first string placeholder "%s" gets replaced with the
|
||||
text "%d new messages", so the complete sentence would be e.g.
|
||||
"4 new messages in 2 chats". -->
|
||||
<item quantity="one">%1$s in %2$d Chat</item>
|
||||
<item quantity="other">%1$s in %2$d Chats</item>
|
||||
</plurals>
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d Chat</item>
|
||||
<item quantity="other">%d Chats</item>
|
||||
</plurals>
|
||||
|
||||
<string name="Chats_zero">Keine Chats</string>
|
||||
<string name="Chats_one">%1$d Chat</string>
|
||||
<string name="Chats_two">%1$d Chats</string>
|
||||
<string name="Chats_few">%1$d Chats</string>
|
||||
<string name="Chats_many">%1$d Chats</string>
|
||||
<string name="Chats_other">%1$d Chats</string>
|
||||
|
||||
<string name="Seconds_zero">%1$d Sekunden</string>
|
||||
<string name="Seconds_one">%1$d Sekunde</string>
|
||||
<string name="Seconds_two">%1$d Sekunden</string>
|
||||
<string name="Seconds_few">%1$d Sekunden</string>
|
||||
<string name="Seconds_many">%1$d Sekunden</string>
|
||||
<string name="Seconds_other">%1$d Sekunden</string>
|
||||
<string name="Minutes_zero">%1$d Minuten</string>
|
||||
<string name="Minutes_one">%1$d Minute</string>
|
||||
<string name="Minutes_two">%1$d Minuten</string>
|
||||
<string name="Minutes_few">%1$d Minuten</string>
|
||||
<string name="Minutes_many">%1$d Minuten</string>
|
||||
<string name="Minutes_other">%1$d Minuten</string>
|
||||
<string name="Hours_zero">%1$d Stunden</string>
|
||||
<string name="Hours_one">%1$d Stunde</string>
|
||||
<string name="Hours_two">%1$d Stunden</string>
|
||||
<string name="Hours_few">%1$d Stunden</string>
|
||||
<string name="Hours_many">%1$d Stunden</string>
|
||||
<string name="Hours_other">%1$d Stunden</string>
|
||||
<string name="Days_zero">%1$d Tage</string>
|
||||
<string name="Days_one">%1$d Tag</string>
|
||||
<string name="Days_two">%1$d Tage</string>
|
||||
<string name="Days_few">%1$d Tage</string>
|
||||
<string name="Days_many">%1$d Tage</string>
|
||||
<string name="Days_other">%1$d Tage</string>
|
||||
<string name="Weeks_zero">%1$d Wochen</string>
|
||||
<string name="Weeks_one">%1$d Woche</string>
|
||||
<string name="Weeks_two">%1$d Wochen</string>
|
||||
<string name="Weeks_few">%1$d Wochen</string>
|
||||
<string name="Weeks_many">%1$d Wochen</string>
|
||||
<string name="Weeks_other">%1$d Wochen</string>
|
||||
<string name="Months_zero">%1$d Monate</string>
|
||||
<string name="Months_one">%1$d Monat</string>
|
||||
<string name="Months_two">%1$d Monate</string>
|
||||
<string name="Months_few">%1$d Monate</string>
|
||||
<string name="Months_many">%1$d Monate</string>
|
||||
<string name="Months_other">%1$d Monate</string>
|
||||
<string name="Years_zero">%1$d Jahre</string>
|
||||
<string name="Years_one">%1$d Jahr</string>
|
||||
<string name="Years_two">%1$d Jahre</string>
|
||||
<string name="Years_few">%1$d Jahre</string>
|
||||
<string name="Years_many">%1$d Jahre</string>
|
||||
<string name="Years_other">%1$d Jahre</string>
|
||||
<string name="Users_zero">%1$d Nutzer</string>
|
||||
<string name="Users_one">%1$d Nutzer</string>
|
||||
<string name="Users_two">%1$d Nutzer</string>
|
||||
<string name="Users_few">%1$d Nutzer</string>
|
||||
<string name="Users_many">%1$d Nutzer</string>
|
||||
<string name="Users_other">%1$d Nutzer</string>
|
||||
<string name="Times_zero">%1$d Mal</string>
|
||||
<string name="Times_one">%1$d Mal</string>
|
||||
<string name="Times_two">%1$d Mal</string>
|
||||
<string name="Times_few">%1$d Mal</string>
|
||||
<string name="Times_many">%1$d Mal</string>
|
||||
<string name="Times_other">%1$d Mal</string>
|
||||
<string name="Meters_zero">%1$d Meter</string>
|
||||
<string name="Meters_one">%1$d Meter</string>
|
||||
<string name="Meters_two">%1$d Meter</string>
|
||||
<string name="Meters_few">%1$d Meter</string>
|
||||
<string name="Meters_many">%1$d Meter</string>
|
||||
<string name="Meters_other">%1$d Meter</string>
|
||||
<string name="Stickers_zero">%1$d Sticker</string>
|
||||
<string name="Stickers_one">%1$d Sticker</string>
|
||||
<string name="Stickers_two">%1$d Sticker</string>
|
||||
<string name="Stickers_few">%1$d Sticker</string>
|
||||
<string name="Stickers_many">%1$d Sticker</string>
|
||||
<string name="Stickers_other">%1$d Sticker</string>
|
||||
<string name="Photos_zero">%1$d Bilder</string>
|
||||
<string name="Photos_one">%1$d Bild</string>
|
||||
<string name="Photos_two">%1$d Bilder</string>
|
||||
<string name="Photos_few">%1$d Bilder</string>
|
||||
<string name="Photos_many">%1$d Bilder</string>
|
||||
<string name="Photos_other">%1$d Bilder</string>
|
||||
<string name="LastSeenMinutes_zero">zul. online vor %1$d Minuten</string>
|
||||
<string name="LastSeenMinutes_one">zul. online vor %1$d Minute</string>
|
||||
<string name="LastSeenMinutes_two">zul. online vor %1$d Minuten</string>
|
||||
<string name="LastSeenMinutes_few">zul. online vor %1$d Minuten</string>
|
||||
<string name="LastSeenMinutes_many">zul. online vor %1$d Minuten</string>
|
||||
<string name="LastSeenMinutes_other">zul. online vor %1$d Minuten</string>
|
||||
<string name="LastSeenHours_zero">zul. online vor %1$d Stunden</string>
|
||||
<string name="LastSeenHours_one">zul. online vor %1$d Stunde</string>
|
||||
<string name="LastSeenHours_two">zul. online vor %1$d Stunden</string>
|
||||
<string name="LastSeenHours_few">zul. online vor %1$d Stunden</string>
|
||||
<string name="LastSeenHours_many">zul. online vor %1$d Stunden</string>
|
||||
<string name="LastSeenHours_other">zul. online vor %1$d Stunden</string>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d Minute</item>
|
||||
<item quantity="other">%d Minuten</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d Stunde</item>
|
||||
<item quantity="other">%d Stunden</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d Tag</item>
|
||||
<item quantity="other">%d Tage</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d Woche</item>
|
||||
<item quantity="other">%d Wochen</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d Monat</item>
|
||||
<item quantity="other">%d Monate</item>
|
||||
</plurals>
|
||||
<plurals name="MaxNotifications">
|
||||
<!-- Translators: the second string placeholder "%s" gets replaced with the
|
||||
text "%d minutes", so the complete sentence would be e.g.
|
||||
"At most 8 notifications within 3 minutes". -->
|
||||
<item quantity="one">Höchstens %1$d Benachrichtigung in %2$s</item>
|
||||
<item quantity="other">Höchstens %1$d Benachrichtigungen in %2$s</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">d. MMM</string>
|
||||
@@ -499,10 +433,6 @@
|
||||
<string name="AboutThisProgram">Über Delta Chat</string>
|
||||
<string name="NotSet">Nicht gesetzt</string>
|
||||
<string name="NewChat">Neuer Chat</string>
|
||||
<string name="ContactPl">## Kontakte</string>
|
||||
<string name="ContactSg">## Kontakt</string>
|
||||
<string name="MemberSg">## Mitglied</string>
|
||||
<string name="MemberPl">## Mitglieder</string>
|
||||
<string name="Deaddrop">Briefkasten</string>
|
||||
<string name="Media">Medien</string>
|
||||
<string name="DeaddropInChatlist">Briefkasten in Chatliste</string>
|
||||
@@ -515,29 +445,28 @@
|
||||
<string name="SeachUser">Benutzer suchen</string>
|
||||
<string name="Name">Name</string>
|
||||
<string name="EmailAddress">E-Mail-Adresse</string>
|
||||
<string name="MeAnd">Ich und</string>
|
||||
<string name="CannotDeleteContact">Der Benutzer kann nicht gelöscht werden, da er verwendet wird; er kann aber blockiert werden.</string>
|
||||
<string name="BadEmailAddress">Ungültige E-Mail-Adresse.</string>
|
||||
<string name="ContactDeleted">Benutzer gelöscht.</string>
|
||||
<string name="ContactCreated">Benutzer angelegt.</string>
|
||||
<string name="ViewProfile">Profil anzeigen</string>
|
||||
<string name="OneMomentPlease">Einen Moment, bitte...</string>
|
||||
<string name="OneMomentPlease">Einen Moment, bitte …</string>
|
||||
<string name="NoChatsHelp">Unten auf das Plussymbol für die erste Chatnachricht tippen; der Menüknopf öffnet die weiteren Optionen.</string>
|
||||
<string name="CannotDeleteChat">Kann Chat nicht löschen</string>
|
||||
<string name="ConfiguringAccount">Konto konfigurieren...</string>
|
||||
<string name="ConfiguringAccount">Konto konfigurieren …</string>
|
||||
<string name="InviteMenuEntry">Einladungen versenden</string>
|
||||
<string name="InviteText">Ich verwende nun auch den Delta Chat Messenger - %1$s - und bin dort unter %2$s erreichbar.</string>
|
||||
<string name="AdvancedSettings">Fortgeschrittene Einstellungen</string>
|
||||
<string name="CannotConnect"></string>
|
||||
<string name="CannotConnect">Verbindung mit dem Konto nicht möglich, bitte überprüfen Sie die Konfiguration.</string>
|
||||
<string name="AskResetNotifications">Alle Benachrichtigungseinstellungen und Töne dieser Seite und auch der einzelnen Chats zurücksetzen?</string>
|
||||
<string name="AttachFiles">Dateien anhängen</string>
|
||||
<string name="ErrGroupNameEmpty">Bitte einen Namen für die Gruppe eingeben.</string>
|
||||
<string name="MsgNewGroupDraft">Hallo, ich habe die Gruppe \"##\" für uns erstellt.</string>
|
||||
<string name="MsgNewGroupDraft">Hallo, ich habe die Gruppe \"%1$s\" für uns erstellt.</string>
|
||||
<string name="MsgNewGroupDraftHint">Eine erste Nachricht schreiben; dann können die anderen in der Gruppe antworten.\n\n• Gruppenmitglieder müssen hierzu Delta Chat nicht installiert haben.\n\n• Die Zustellung der ersten Nachricht kann einen Moment dauern.</string>
|
||||
<string name="MsgGroupImageChanged">Gruppenbild geändert.</string>
|
||||
<string name="MsgGroupNameChanged">Gruppenname von \"##\" in \"##\" geändert.</string>
|
||||
<string name="MsgMemberAddedToGroup">## zur Gruppe hinzugefügt.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">## aus Gruppe entfernt.</string>
|
||||
<string name="MsgGroupNameChanged">Gruppenname von \"%1$s\" in \"%2$s\" geändert.</string>
|
||||
<string name="MsgMemberAddedToGroup">%1$s zur Gruppe hinzugefügt.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">%1$s aus Gruppe entfernt.</string>
|
||||
<string name="AskAddMemberToGroup">Benutzer <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> zur Gruppe hinzufügen?</string>
|
||||
<string name="AskRemoveMemberFromGroup">Benutzer <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> aus Gruppe entfernen?</string>
|
||||
<string name="ErrSelfNotInGroup">Sie müssen ein Gruppenmitglied sein, um diese Aktion ausführen zu können.</string>
|
||||
@@ -548,5 +477,6 @@
|
||||
<string name="E2EManagePrivateKeys">Private Schlüssel verwalten</string>
|
||||
<string name="E2ECompareKeys">Schlüssel vergleichen</string>
|
||||
<string name="ResetUserKey">Benutzerschlüssel zurücksetzen</string>
|
||||
<string name="ForwardToTitle">Weiterleiten an ...</string>
|
||||
<string name="ForwardToTitle">Weiterleiten an …</string>
|
||||
<string name="Chats">Chats</string>
|
||||
</resources>
|
||||
|
||||
@@ -13,16 +13,14 @@
|
||||
<string name="Yesterday">ayer</string>
|
||||
<string name="NoResult">Sin resultados</string>
|
||||
<string name="NoChats">Aún sin chats.</string>
|
||||
<string name="WaitingForNetwork">Esperando red...</string>
|
||||
<string name="Connecting">Conectando...</string>
|
||||
<string name="Updating">Actualizando...</string>
|
||||
<string name="WaitingForNetwork">Esperando red…</string>
|
||||
<string name="Connecting">Conectando…</string>
|
||||
<string name="Updating">Actualizando…</string>
|
||||
<string name="DeleteChat">Eliminar chat</string>
|
||||
<string name="SelectChat">Elige el chat ...</string>
|
||||
<string name="SelectChat">Elige el chat …</string>
|
||||
<string name="Search">Buscar</string>
|
||||
<string name="MuteNotifications">Silenciar notificaciones</string>
|
||||
<string name="MuteFor">Silenciar %1$s</string>
|
||||
<string name="UnmuteNotifications">No silenciar</string>
|
||||
<string name="WillUnmuteIn">En %1$s</string>
|
||||
<string name="Draft">Borrador</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Por favor, añade archivos a la carpeta de música en tu dispositivo para verlos aquí.</string>
|
||||
@@ -34,7 +32,7 @@
|
||||
<string name="FreeOfTotal">%1$s de %2$s libres</string>
|
||||
<string name="UnknownError">Error desconocido</string>
|
||||
<string name="AccessError">Error de acceso</string>
|
||||
<string name="NoFiles">Aún sin archivos...</string>
|
||||
<string name="NoFiles">Aún sin archivos…</string>
|
||||
<string name="FileUploadLimit">El archivo no debe superar los %1$s</string>
|
||||
<string name="NotMounted">Almacenamiento no montado</string>
|
||||
<string name="UsbActive">Transferencia USB activa</string>
|
||||
@@ -61,11 +59,9 @@
|
||||
<string name="SaveToMusic">Guardar en música</string>
|
||||
<string name="ShareFile">Compartir</string>
|
||||
<string name="UnsupportedAttachment">Adjunto no soportado</string>
|
||||
<string name="OpenInBrowser">ABRIR EN...</string>
|
||||
<string name="OpenInBrowser">ABRIR EN…</string>
|
||||
<string name="SendItems">Enviar %1$s</string>
|
||||
<string name="OpenUrlAlert">¿Abrir %1$s?</string>
|
||||
<string name="MoreInfo">Más información</string>
|
||||
<string name="ShareSendTo">Enviar a...</string>
|
||||
<string name="ClearRecentEmoji">¿Borrar los emojis recientes?</string>
|
||||
<string name="AddShortcut">Añadir acceso directo</string>
|
||||
<string name="ShortcutAdded">Acceso directo añadido al escritorio</string>
|
||||
@@ -73,15 +69,12 @@
|
||||
<string name="Reply">Responder</string>
|
||||
<string name="ReplyToGroup">Responder a %1$s</string>
|
||||
<string name="ReplyToUser">Responder a %1$s</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Aún sin contactos</string>
|
||||
<string name="TodayAt">a las</string>
|
||||
<string name="YesterdayAt">ayer a las</string>
|
||||
<string name="LastSeen">últ. vez</string>
|
||||
<string name="LastSeenDate">últ. vez el</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Invitar a...</string>
|
||||
<string name="SendMessageTo">Invitar a…</string>
|
||||
<string name="EnterGroupNamePlaceholder">Nombre del grupo</string>
|
||||
<string name="ShareLink">Compartir enlace</string>
|
||||
<!--group info view-->
|
||||
@@ -247,7 +240,7 @@
|
||||
<string name="ClearButton">Borrar</string>
|
||||
<string name="PickerPhotos">Fotos</string>
|
||||
<string name="PickerVideo">Vídeo</string>
|
||||
<string name="AddCaption">Añadir un comentario...</string>
|
||||
<string name="AddCaption">Añadir un comentario…</string>
|
||||
<string name="PhotoCaption">Comentario de foto</string>
|
||||
<string name="VideoCaption">Comentario de vídeo</string>
|
||||
<string name="Caption">Comentario</string>
|
||||
@@ -259,7 +252,7 @@
|
||||
<string name="EditVideo">Editar vídeo</string>
|
||||
<string name="OriginalVideo">Vídeo original</string>
|
||||
<string name="EditedVideo">Vídeo editado</string>
|
||||
<string name="SendingVideo">Enviando vídeo...</string>
|
||||
<string name="SendingVideo">Enviando vídeo…</string>
|
||||
<string name="CompressVideo">Comprimir Vídeo</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Siguiente</string>
|
||||
@@ -293,7 +286,7 @@
|
||||
<string name="AttachAudio">Mensaje de voz</string>
|
||||
<string name="FromSelf">Tú</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Cargando...</string>
|
||||
<string name="Loading">Cargando…</string>
|
||||
<string name="NoPlayerInstalled">No tienes reproductor de vídeo. Por favor, instala uno para continuar.</string>
|
||||
<string name="NoHandleAppInstalled">No tienes aplicaciones que puedan manejar el tipo de archivo “%1$s”. Por favor, instala una para continuar.</string>
|
||||
<string name="AddToTheGroupTitle">¿Añadir a %1$s al chat %2$s?</string>
|
||||
@@ -308,132 +301,47 @@
|
||||
<string name="ShareYouLocationUnableManually">Elegir manualmente</string>
|
||||
<string name="AreYouSureBlockContact">¿Quieres bloquear este contacto?</string>
|
||||
<string name="AreYouSureDeleteContact">¿Quieres eliminar este contacto?</string>
|
||||
<string name="AreYouSureDeleteMessages">¿Quieres eliminar %1$s?</string>
|
||||
<string name="RaiseToSpeakAlert">¿Quieres habilitar “Elevar para hablar” para mensajes de voz?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat necesita el acceso a tus contactos, para que puedas comunicarte con ellos en todos tus dispositivos.</string>
|
||||
<string name="PermissionStorage">Delta Chat necesita acceso a tu almacenamiento, para que puedas enviar y guardar fotos, vídeos, música y otros archivos.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat necesita acceso a tu micrófono, para que puedas enviar mensajes de voz.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat necesita acceso a tu ubicación, para que puedas compartirla con tus amigos.</string>
|
||||
<string name="PermissionNoLocationPosition">Delta Chat necesita acceso a tu ubicación.</string>
|
||||
<string name="PermissionOpenSettings">Ajustes</string>
|
||||
<!--Intro view-->
|
||||
<string name="IntroStartMessaging">Empieza a conversar</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d miembros</string>
|
||||
<string name="Members_one">%1$d miembro</string>
|
||||
<string name="Members_two">%1$d miembros</string>
|
||||
<string name="Members_few">%1$d miembros</string>
|
||||
<string name="Members_many">%1$d miembros</string>
|
||||
<string name="Members_other">%1$d miembros</string>
|
||||
<string name="NewMessages_zero">Sin mensajes nuevos</string>
|
||||
<string name="NewMessages_one">%1$d nuevo mensaje</string>
|
||||
<string name="NewMessages_two">%1$d nuevos mensajes</string>
|
||||
<string name="NewMessages_few">%1$d nuevos mensajes</string>
|
||||
<string name="NewMessages_many">%1$d nuevos mensajes</string>
|
||||
<string name="NewMessages_other">%1$d nuevos mensajes</string>
|
||||
<string name="messages_zero">Sin mensajes</string>
|
||||
<string name="messages_one">%1$d mensaje</string>
|
||||
<string name="messages_two">%1$d mensajes</string>
|
||||
<string name="messages_few">%1$d mensajes</string>
|
||||
<string name="messages_many">%1$d mensajes</string>
|
||||
<string name="messages_other">%1$d mensajes</string>
|
||||
<string name="items_zero">Sin ítems</string>
|
||||
<string name="items_one">%1$d ítem</string>
|
||||
<string name="items_two">%1$d ítems</string>
|
||||
<string name="items_few">%1$d ítems</string>
|
||||
<string name="items_many">%1$d ítems</string>
|
||||
<string name="items_other">%1$d ítems</string>
|
||||
<string name="FromChats_zero">desde ningún chat</string>
|
||||
<string name="FromChats_one">desde %1$d chat</string>
|
||||
<string name="FromChats_two">desde %1$d chats</string>
|
||||
<string name="FromChats_few">desde %1$d chats</string>
|
||||
<string name="FromChats_many">desde %1$d chats</string>
|
||||
<string name="FromChats_other">desde %1$d chats</string>
|
||||
<string name="Seconds_zero">%1$d segundos</string>
|
||||
<string name="Seconds_one">%1$d segundo</string>
|
||||
<string name="Seconds_two">%1$d segundos</string>
|
||||
<string name="Seconds_few">%1$d segundos</string>
|
||||
<string name="Seconds_many">%1$d segundos</string>
|
||||
<string name="Seconds_other">%1$d segundos</string>
|
||||
<string name="Minutes_zero">%1$d minutos</string>
|
||||
<string name="Minutes_one">%1$d minuto</string>
|
||||
<string name="Minutes_two">%1$d minutos</string>
|
||||
<string name="Minutes_few">%1$d minutos</string>
|
||||
<string name="Minutes_many">%1$d minutos</string>
|
||||
<string name="Minutes_other">%1$d minutos</string>
|
||||
<string name="Hours_zero">%1$d horas</string>
|
||||
<string name="Hours_one">%1$d hora</string>
|
||||
<string name="Hours_two">%1$d horas</string>
|
||||
<string name="Hours_few">%1$d horas</string>
|
||||
<string name="Hours_many">%1$d horas</string>
|
||||
<string name="Hours_other">%1$d horas</string>
|
||||
<string name="Days_zero">%1$d días</string>
|
||||
<string name="Days_one">%1$d día</string>
|
||||
<string name="Days_two">%1$d días</string>
|
||||
<string name="Days_few">%1$d días</string>
|
||||
<string name="Days_many">%1$d días</string>
|
||||
<string name="Days_other">%1$d días</string>
|
||||
<string name="Weeks_zero">%1$d semanas</string>
|
||||
<string name="Weeks_one">%1$d semana</string>
|
||||
<string name="Weeks_two">%1$d semanas</string>
|
||||
<string name="Weeks_few">%1$d semanas</string>
|
||||
<string name="Weeks_many">%1$d semanas</string>
|
||||
<string name="Weeks_other">%1$d semanas</string>
|
||||
<string name="Months_zero">%1$d meses</string>
|
||||
<string name="Months_one">%1$d mes</string>
|
||||
<string name="Months_two">%1$d meses</string>
|
||||
<string name="Months_few">%1$d meses</string>
|
||||
<string name="Months_many">%1$d meses</string>
|
||||
<string name="Months_other">%1$d meses</string>
|
||||
<string name="Years_zero">%1$d años</string>
|
||||
<string name="Years_one">%1$d año</string>
|
||||
<string name="Years_two">%1$d años</string>
|
||||
<string name="Years_few">%1$d años</string>
|
||||
<string name="Years_many">%1$d años</string>
|
||||
<string name="Years_other">%1$d años</string>
|
||||
<string name="Users_zero">%1$d usuarios</string>
|
||||
<string name="Users_one">%1$d usuario</string>
|
||||
<string name="Users_two">%1$d usuarios</string>
|
||||
<string name="Users_few">%1$d usuarios</string>
|
||||
<string name="Users_many">%1$d usuarios</string>
|
||||
<string name="Users_other">%1$d usuarios</string>
|
||||
<string name="Times_zero">%1$d veces</string>
|
||||
<string name="Times_one">%1$d vez</string>
|
||||
<string name="Times_two">%1$d veces</string>
|
||||
<string name="Times_few">%1$d veces</string>
|
||||
<string name="Times_many">%1$d veces</string>
|
||||
<string name="Times_other">%1$d veces</string>
|
||||
<string name="Meters_zero">%1$d metros</string>
|
||||
<string name="Meters_one">%1$d metro</string>
|
||||
<string name="Meters_two">%1$d metros</string>
|
||||
<string name="Meters_few">%1$d metros</string>
|
||||
<string name="Meters_many">%1$d metros</string>
|
||||
<string name="Meters_other">%1$d metros</string>
|
||||
<string name="Stickers_zero">%1$d stickers</string>
|
||||
<string name="Stickers_one">%1$d sticker</string>
|
||||
<string name="Stickers_two">%1$d stickers</string>
|
||||
<string name="Stickers_few">%1$d stickers</string>
|
||||
<string name="Stickers_many">%1$d stickers</string>
|
||||
<string name="Stickers_other">%1$d stickers</string>
|
||||
<string name="Photos_zero">%1$d fotos</string>
|
||||
<string name="Photos_one">%1$d foto</string>
|
||||
<string name="Photos_two">%1$d fotos</string>
|
||||
<string name="Photos_few">%1$d fotos</string>
|
||||
<string name="Photos_many">%1$d fotos</string>
|
||||
<string name="Photos_other">%1$d fotos</string>
|
||||
<string name="LastSeenMinutes_zero">últ. vez hace %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_one">últ. vez hace %1$d minuto</string>
|
||||
<string name="LastSeenMinutes_two">últ. vez hace %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_few">últ. vez hace %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_many">últ. vez hace %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_other">últ. vez hace %1$d minutos</string>
|
||||
<string name="LastSeenHours_zero">últ. vez hace %1$d horas</string>
|
||||
<string name="LastSeenHours_one">últ. vez hace %1$d hora</string>
|
||||
<string name="LastSeenHours_two">últ. vez hace %1$d horas</string>
|
||||
<string name="LastSeenHours_few">últ. vez hace %1$d horas</string>
|
||||
<string name="LastSeenHours_many">últ. vez hace %1$d horas</string>
|
||||
<string name="LastSeenHours_other">últ. vez hace %1$d horas</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d miembro</item>
|
||||
<item quantity="other">%d miembros</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nuevo mensaje</item>
|
||||
<item quantity="other">%d nuevos mensajes</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d mensaje</item>
|
||||
<item quantity="other">%d mensajes</item>
|
||||
</plurals>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minuto</item>
|
||||
<item quantity="other">%d minutos</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d hora</item>
|
||||
<item quantity="other">%d horas</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d día</item>
|
||||
<item quantity="other">%d días</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d semana</item>
|
||||
<item quantity="other">%d semanas</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d mes</item>
|
||||
<item quantity="other">%d meses</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM \'de\' yyyy</string>
|
||||
<string name="formatterMonth">dd \'de\' MMM</string>
|
||||
@@ -448,5 +356,5 @@
|
||||
<string name="Media">Multimedia</string>
|
||||
<string name="SeachUser">Buscar</string>
|
||||
<string name="InviteMenuEntry">Invitar a amigos</string>
|
||||
<string name="ForwardToTitle">Elige el chat ...</string>
|
||||
<string name="ForwardToTitle">Elige el chat …</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,460 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<resources>
|
||||
<string name="AppName">Delta Chat</string>
|
||||
<string name="LanguageName">Français</string>
|
||||
<string name="LanguageNameInEnglish">French</string>
|
||||
<string name="LanguageCode">fr</string>
|
||||
<!--chats view-->
|
||||
<string name="Settings">Paramètres</string>
|
||||
<string name="NewGroup">Nouveau groupe</string>
|
||||
<string name="Yesterday">hier</string>
|
||||
<string name="NoResult">Aucun résultat.</string>
|
||||
<string name="NoChats">Aucune conversation.</string>
|
||||
<string name="WaitingForNetwork">En attente du réseau…</string>
|
||||
<string name="Connecting">Connexion…</string>
|
||||
<string name="Updating">Mise à jour…</string>
|
||||
<string name="DeleteChat">Supprimer la conversation</string>
|
||||
<string name="SelectChat">Selectionner la conversation…</string>
|
||||
<string name="Search">Rechercher</string>
|
||||
<string name="MuteNotifications">Désactiver les notifications</string>
|
||||
<string name="UnmuteNotifications">Activer les notifications</string>
|
||||
<string name="Draft">Brouillons</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Veuillez ajouter des fichiers dans votre bibliotèque musicale pour les voir ici.</string>
|
||||
<string name="AttachMusic">Musique</string>
|
||||
<string name="AudioUnknownArtist">Artiste inconnu</string>
|
||||
<string name="AudioUnknownTitle">Titre inconnu</string>
|
||||
<!--documents view-->
|
||||
<string name="SelectFile">Selectionner le fichier</string>
|
||||
<string name="FreeOfTotal">Free %1$s of %2$s</string>
|
||||
<string name="UnknownError">Erreur inconnue</string>
|
||||
<string name="AccessError">Erreur d\'accès</string>
|
||||
<string name="NoFiles">Aucun fichier pour le moment…</string>
|
||||
<string name="FileUploadLimit">La taille du fichier ne peut pas exéder %1$s</string>
|
||||
<string name="NotMounted">Stockage non monté</string>
|
||||
<string name="UsbActive">Transfert USB en cours</string>
|
||||
<string name="InternalStorage">Stockage interne</string>
|
||||
<string name="ExternalStorage">Stockage externe</string>
|
||||
<string name="SystemRoot">Racine</string>
|
||||
<string name="SdCard">Carte SD</string>
|
||||
<string name="Folder">Dossier</string>
|
||||
<string name="GalleryInfo">Pour envoyer des images sans compression</string>
|
||||
<!--chat view-->
|
||||
<string name="ChatGallery">Gallerie</string>
|
||||
<string name="ChatLocation">Localisation</string>
|
||||
<string name="ChatVideo">Vidéo</string>
|
||||
<string name="ChatDocument">Fichier</string>
|
||||
<string name="ChatCamera">Appareil photo</string>
|
||||
<string name="NoMessages">Aucun message.</string>
|
||||
<string name="ForwardedMessage">Message transmis</string>
|
||||
<string name="From">De</string>
|
||||
<string name="NoRecent">Pas de récents</string>
|
||||
<string name="TypeMessage">Message</string>
|
||||
<string name="SlideToCancel">GLISSER POUR ANNULER</string>
|
||||
<string name="SaveToDownloads">Enregistrer dans les téléchargements</string>
|
||||
<string name="DeleteGif">Supprimer GIF ?</string>
|
||||
<string name="SaveToMusic">Enregistrer dans les musiques</string>
|
||||
<string name="ShareFile">Partager</string>
|
||||
<string name="UnsupportedAttachment">Pièce jointe non gérée</string>
|
||||
<string name="OpenInBrowser">OUVRIR DANS…</string>
|
||||
<string name="SendItems">Envoyer %1$s</string>
|
||||
<string name="OpenUrlAlert">Ouvrir URL %1$s ?</string>
|
||||
<string name="ClearRecentEmoji">Vider les emokis récent ?</string>
|
||||
<string name="AddShortcut">Ajouter le widget à l\'écran d\'accueil</string>
|
||||
<string name="ShortcutAdded">Widget ajouté à l\'écran d\'accueil</string>
|
||||
<!--notification-->
|
||||
<string name="Reply">Répondre</string>
|
||||
<string name="ReplyToGroup">Répondre à %1$s</string>
|
||||
<string name="ReplyToUser">Répondre à %1$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Aucun utilisateur pour le moment.</string>
|
||||
<string name="TodayAt">à</string>
|
||||
<string name="YesterdayAt">hier à</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Envoyer un message à…</string>
|
||||
<string name="EnterGroupNamePlaceholder">Saisissez le nom du groupe</string>
|
||||
<string name="ShareLink">Partager le lien</string>
|
||||
<!--group info view-->
|
||||
<string name="SharedMedia">Media partagés</string>
|
||||
<string name="SETTINGS">Paramètres</string>
|
||||
<string name="AddMember">Ajouter un membre</string>
|
||||
<string name="Notifications">Notifications</string>
|
||||
<string name="RemoveMember">Supprimer un membre</string>
|
||||
<!--contact info view-->
|
||||
<string name="ShareContact">Partager</string>
|
||||
<string name="AddContact">Ajouter</string>
|
||||
<string name="NewContactTitle">Nouvel utilisateur</string>
|
||||
<string name="BlockContact">Bloquer le contact</string>
|
||||
<string name="DeleteContact">Supprimer le contact</string>
|
||||
<string name="Info">Info</string>
|
||||
<!--stickers view-->
|
||||
<string name="Stickers">Autocollants</string>
|
||||
<string name="AddStickers">Ajouter des autocollants</string>
|
||||
<string name="AddToStickers">Ajouter aux autocollants</string>
|
||||
<string name="AddStickersNotFound">Autocollants introuvables</string>
|
||||
<string name="StickersRemoved">Autocollants supprimés</string>
|
||||
<string name="AddStickersInstalled">Nouveaux autocollants ajoutés</string>
|
||||
<string name="StickersHide">Cacher</string>
|
||||
<string name="StickersShow">Montrer</string>
|
||||
<string name="StickersShare">Partager</string>
|
||||
<string name="StickersCopy">Copier le lien</string>
|
||||
<string name="StickersRemove">Effacer</string>
|
||||
<string name="NoStickers">Aucun autocollant pour le moment</string>
|
||||
<string name="SendSticker">ENVOYER L\'AUTOCOLLANT</string>
|
||||
<!--settings view-->
|
||||
<string name="TextSize">Taille de la police des messages</string>
|
||||
<string name="EnableAnimations">Animation des transitions</string>
|
||||
<string name="UnblockContact">Débloquer le contact</string>
|
||||
<string name="NoBlocked">Aucun contact bloqué</string>
|
||||
<string name="NormalMessages">Messages normaux</string>
|
||||
<string name="Alert">Alerte</string>
|
||||
<string name="MessagePreview">Prévisualisation du message</string>
|
||||
<string name="GroupMessages">Message de groupe</string>
|
||||
<string name="Sound">Son</string>
|
||||
<string name="InAppNotifications">Notifications dans l\'application</string>
|
||||
<string name="Vibrate">Vibrer</string>
|
||||
<string name="Reset">Reinitialiser</string>
|
||||
<string name="ResetAllNotifications">Réinitialiser les notifications</string>
|
||||
<string name="NotificationsAndSounds">Notifications et sons</string>
|
||||
<string name="BlockedUsers">Contacts bloqués</string>
|
||||
<string name="Default">Defaut</string>
|
||||
<string name="OnlyIfSilent">Seulement en silencieux</string>
|
||||
<string name="ChatBackground">Arrière-plan de conversation</string>
|
||||
<string name="SendByEnter">Envoyer avec "Entrée"</string>
|
||||
<string name="Language">Langue</string>
|
||||
<string name="Help">Aide</string>
|
||||
<string name="DeleteLocalization">Supprimer la localisation ?</string>
|
||||
<string name="Enabled">Activé</string>
|
||||
<string name="Disabled">Désactivé</string>
|
||||
<string name="NotificationsService">Service de continuité</string>
|
||||
<string name="NotificationsServiceInfo">Redémarre l\'application quand elle est arrêtée par le système ou l\'utilisateur. Vous serez assurés de recevoir les notifications.</string>
|
||||
<string name="NotificationsServiceConnection">Connexion en arrière-plan</string>
|
||||
<string name="NotificationsServiceConnectionInfo">Garde une connexion à faible impact en arrière-plan pour recevoir les notifications. Activer pour des notification fiables.</string>
|
||||
<string name="LedColor">Couleur de la notification par LED</string>
|
||||
<string name="BadgeNumber">Montrer le compte dans l\'icône, si possible</string>
|
||||
<string name="Short">Court</string>
|
||||
<string name="Long">Long</string>
|
||||
<string name="SystemDefault">Par défaut du système</string>
|
||||
<string name="RaiseToSpeak">Lever pour parler</string>
|
||||
<string name="EditName">Changer le nom</string>
|
||||
<string name="NotificationsPriority">Priorité de la notification</string>
|
||||
<string name="NotificationsPriorityDefault">Normal</string>
|
||||
<string name="NotificationsPriorityHigh">Haute</string>
|
||||
<string name="NotificationsPriorityMax">La plus haute</string>
|
||||
<string name="RepeatNotifications">Répéter les notifications</string>
|
||||
<string name="NotificationsOther">Autres</string>
|
||||
<string name="InChatSound">Sons dans la conversation</string>
|
||||
<string name="SoundDefault">Defaut</string>
|
||||
<string name="VibrationDefault">Defaut</string>
|
||||
<string name="SmartNotifications">Limiter les notifications</string>
|
||||
<string name="SmartNotificationsInfo">Notifications sonore au maximum %1$s fois toutes les %2$s</string>
|
||||
<string name="SmartNotificationsSoundAtMost">Notifier au maximum</string>
|
||||
<string name="SmartNotificationsTimes">fois</string>
|
||||
<string name="SmartNotificationsWithin">toutes les</string>
|
||||
<string name="SmartNotificationsMinutes">minutes</string>
|
||||
<string name="DirectShare">Partage direct</string>
|
||||
<string name="DirectShareInfo">Montrer les conversations récentes dans le menu de partage</string>
|
||||
<!--cache view-->
|
||||
<string name="CacheSettings">Stockage</string>
|
||||
<string name="LocalDatabase">Base de données locale</string>
|
||||
<string name="LocalDatabaseClear">Effacer tous les messages cachés localement ?</string>
|
||||
<string name="LocalDatabaseInfo">Effacer la base de données locale va supprimer les textes des messages cachés et compresser la base de données pour gagner de l\'espace disque sur le stockage interne. L\'application a besoin de certaines données pour fonctionner, donc, la base de données n\'aura pas un taille nulle.\n\nL\'opération peut prendre plusieurs minutes.</string>
|
||||
<string name="ClearMediaCache">Effacer le cache</string>
|
||||
<string name="CacheClear">Effacer</string>
|
||||
<string name="LocalDocumentCache">Documents</string>
|
||||
<string name="LocalPhotoCache">Photos</string>
|
||||
<string name="LocalAudioCache">Messages vocaux</string>
|
||||
<string name="LocalVideoCache">Vidéos</string>
|
||||
<string name="LocalMusicCache">Musique</string>
|
||||
<string name="LocalCache">Autres fichiers</string>
|
||||
<string name="CacheEmpty">Vide</string>
|
||||
<string name="KeepMedia">Conserver les fichier média</string>
|
||||
<string name="KeepMediaInfo">Les photos, vidéos et autres fichiers venant des conversations du cloud que vous n\'avez <![CDATA[<b>pas</b>]]> consultés pendant cette période seront supprimés pour libérer de l\'espace.</string>
|
||||
<string name="KeepMediaForever">Toujours</string>
|
||||
<!--passcode view-->
|
||||
<string name="Passcode">Verrouiller par mot de passe</string>
|
||||
<string name="ChangePasscode">Modifier le mot de passe</string>
|
||||
<string name="ChangePasscodeInfo">Quand vous ajoutez un mot de passe additionnel, une icône de verrouillage apparaîtra sur la page des conversations. Appuyez sur cette icône et déverrouillez l\'application.\n\nNote : si vous oubliez le mot de passe, vous devrez supprimer et réinstaller l\'application.</string>
|
||||
<string name="PasscodePIN">PIN</string>
|
||||
<string name="PasscodePassword">Mot de passe</string>
|
||||
<string name="EnterCurrentPasscode">Saississez votre mot de passe actuel</string>
|
||||
<string name="EnterNewFirstPasscode">Saississez un mot de passe</string>
|
||||
<string name="EnterNewPasscode">Saississez un nouveau mot de passe</string>
|
||||
<string name="EnterYourPasscode">Saississez votre mot de passe</string>
|
||||
<string name="ReEnterYourPasscode">Ressaississez votre mot de passe</string>
|
||||
<string name="PasscodeDoNotMatch">Les mots de passe ne correspondent pas</string>
|
||||
<string name="AutoLock">Verrouillage automatique</string>
|
||||
<string name="AutoLockInfo">Redemande le mot de passe en cas d\'inactivité prolongée.</string>
|
||||
<string name="AutoLockInTime">dans %1$s</string>
|
||||
<string name="UnlockFingerprint">Déverrouiller avec votre empreinte digitale</string>
|
||||
<string name="FingerprintInfo">Confirmer votre empreinte digitale pour continuer</string>
|
||||
<string name="FingerprintHelp">Capteur tactile</string>
|
||||
<string name="FingerprintNotRecognized">Empreinte non reconnue. Essayer encore</string>
|
||||
<!--photo gallery view-->
|
||||
<string name="ShowAllMedia">Montrer tous les médias</string>
|
||||
<string name="SaveToGallery">Enregistrer dans la galerie</string>
|
||||
<string name="Of">%1$d de %2$d</string>
|
||||
<string name="Gallery">Gallerie</string>
|
||||
<string name="AllPhotos">Toutes les photos</string>
|
||||
<string name="AllVideo">Toutes les vidéos</string>
|
||||
<string name="NoPhotos">Aucune photo pour le moment</string>
|
||||
<string name="NoVideo">Aucune vidéo pour le moement</string>
|
||||
<string name="PleaseDownload">Veuiller télécharger le média</string>
|
||||
<string name="NoRecentPhotos">Aucune photo récente</string>
|
||||
<string name="NoRecentGIFs">Aucun GIF récent</string>
|
||||
<string name="SearchImages">TROUVER LES IMAGES</string>
|
||||
<string name="SearchImagesInfo">RECHERCHER SUR LE WEB</string>
|
||||
<string name="SearchGifs">TROUVER DES GIFS</string>
|
||||
<string name="SearchImagesTitle">Recherche sur le web</string>
|
||||
<string name="SearchGifsTitle">Rechercher des GIF</string>
|
||||
<string name="CropImage">Couper les images</string>
|
||||
<string name="EditImage">Modifier les images</string>
|
||||
<string name="Enhance">Améliorer</string>
|
||||
<string name="Highlights">Surbriller</string>
|
||||
<string name="Contrast">Contraste</string>
|
||||
<string name="Exposure">Exposition</string>
|
||||
<string name="Warmth">Température</string>
|
||||
<string name="Saturation">Saturation</string>
|
||||
<string name="Vignette">Vignette</string>
|
||||
<string name="Shadows">Ombres</string>
|
||||
<string name="Grain">Grain</string>
|
||||
<string name="Sharpen">Netteté</string>
|
||||
<string name="Fade">Fondu</string>
|
||||
<string name="Tint">Teinte</string>
|
||||
<string name="TintShadows">OMBRES</string>
|
||||
<string name="TintHighlights">SURBRILLANCE</string>
|
||||
<string name="Curves">Courbes</string>
|
||||
<string name="CurvesAll">TOUT</string>
|
||||
<string name="CurvesRed">ROUGE</string>
|
||||
<string name="CurvesGreen">VERT</string>
|
||||
<string name="CurvesBlue">BLEU</string>
|
||||
<string name="Blur">Flou</string>
|
||||
<string name="BlurOff">Désactiver</string>
|
||||
<string name="BlurLinear">Linéaire</string>
|
||||
<string name="BlurRadial">Radial</string>
|
||||
<string name="DiscardChanges">Ignorer les changements ?</string>
|
||||
<string name="ClearSearch">Effacer l\'historique de recherche ?</string>
|
||||
<string name="ClearButton">Effacer</string>
|
||||
<string name="PickerPhotos">Photos</string>
|
||||
<string name="PickerVideo">Vidéo</string>
|
||||
<string name="AddCaption">Ajouter une légende…</string>
|
||||
<string name="PhotoCaption">Légende de photo</string>
|
||||
<string name="VideoCaption">Légende de vidéo</string>
|
||||
<string name="Caption">Légende</string>
|
||||
<!--privacy settings-->
|
||||
<string name="PrivacySettings">Vie privée et sécurité</string>
|
||||
<string name="PrivacyTitle">Vie privée</string>
|
||||
<string name="SecurityTitle">Securité</string>
|
||||
<!--edit video view-->
|
||||
<string name="EditVideo">Modifier la vidéo</string>
|
||||
<string name="OriginalVideo">Vidéo originale</string>
|
||||
<string name="EditedVideo">Vidéos modifiées</string>
|
||||
<string name="SendingVideo">Envoi de la vidéo…</string>
|
||||
<string name="CompressVideo">Compresser la vidéo</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Suivant</string>
|
||||
<string name="Back">Précédent</string>
|
||||
<string name="Done">Fait</string>
|
||||
<string name="Open">Ouvrir</string>
|
||||
<string name="Save">Enregistrer</string>
|
||||
<string name="Cancel">Annuler</string>
|
||||
<string name="Close">Fermer</string>
|
||||
<string name="Add">Ajouter</string>
|
||||
<string name="Edit">Modifier</string>
|
||||
<string name="Send">Envoyer</string>
|
||||
<string name="CopyToClipboard">Copier vers le presse-papier</string>
|
||||
<string name="Delete">Supprimer</string>
|
||||
<string name="Forward">Renvoyer</string>
|
||||
<string name="Retry">Réessayer</string>
|
||||
<string name="FromCamera">Depuis la caméra</string>
|
||||
<string name="FromGalley">Depuis la galerie</string>
|
||||
<string name="DeletePhoto">Supprimer la photo</string>
|
||||
<string name="Set">Définir</string>
|
||||
<string name="OK">OK</string>
|
||||
<string name="Crop">DÉCOUPER</string>
|
||||
<!--messages-->
|
||||
<string name="AttachPhoto">Photo</string>
|
||||
<string name="AttachVideo">Vidéo</string>
|
||||
<string name="AttachGif">GIF</string>
|
||||
<string name="AttachLocation">Localisation</string>
|
||||
<string name="AttachContact">Contact</string>
|
||||
<string name="AttachDocument">Fichier</string>
|
||||
<string name="AttachSticker">Autocollant</string>
|
||||
<string name="AttachAudio">Message vocal</string>
|
||||
<string name="FromSelf">Moi</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Chargement…</string>
|
||||
<string name="NoPlayerInstalled">Vous n\'avez pas de lecteur vidéo, installez-en un pour continuer</string>
|
||||
<string name="NoHandleAppInstalled">Vous n\'avez pas d\'application qui peut gérer le type \'%1$s\', veuillez en installer un pour continuer</string>
|
||||
<string name="AddToTheGroupTitle">Ajouter %1$s à la conversation %2$s?</string>
|
||||
<string name="AddToTheGroup">Ajouter %1$s au groupe ?</string>
|
||||
<string name="UserAlreadyInGroup">Ce contact est déjà dans ce groupe</string>
|
||||
<string name="ForwardMessagesTo">Renvoyer les messages sélectionnés à <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> ?</string>
|
||||
<string name="SendMessagesTo">Envoyer les messages à <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> ?</string>
|
||||
<string name="SendContactTo">Envoyer le contact à %1$s ?</string>
|
||||
<string name="AreYouSureDeleteAndExit">Êtes-vous sûr de vouloir quitter le groupe ? Vous ne recevrez plus de message de ce groupe.</string>
|
||||
<string name="AreYouSureDeleteThisChat">Êtes-vous sûr de vouloir supprimer cette conversation ? La conversation n\'apparaîtra plus dans la liste des conversations, mais les messages resteront sur le serveur.</string>
|
||||
<string name="ShareYouLocationUnable">L\'application n\'a pas pu déterminer votre localisation actuelle</string>
|
||||
<string name="ShareYouLocationUnableManually">Choisir manuellement</string>
|
||||
<string name="AreYouSureBlockContact">Êtes-vous sûr de vouloir bloquer cet utilisateur ?</string>
|
||||
<string name="AreYouSureDeleteContact">Êtes-vous sûr de vouloir supprimer cet utilisateur ?</string>
|
||||
<string name="RaiseToSpeakAlert">Voulez-vous activer le "Soulever pour parler" pour les messages vocaux ?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat a besoin d\'accéder aux contacts de façon à pouvoir vous connecter avec vos amis avec tous vos appareils.</string>
|
||||
<string name="PermissionStorage">Delta Chat a besoin d\'accéder au stockage pour envoyer vos photos, vidéos, musiques et autres médias.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat a besoin d\'accéder à votre microphone pour envoyer des messages vocaux.</string>
|
||||
<string name="PermissionOpenSettings">Paramètres</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
<string name="Intro1Message">La messagerie avec <![CDATA[<b>le plus grande portée</b>]]> dans le monde.<![CDATA[<br/><b>Libre</b>]]> et <![CDATA[<b>sécurisé</b>]]>.</string>
|
||||
|
||||
<string name="Intro2Headline">Indépendent</string>
|
||||
<string name="Intro2Message"><![CDATA[<b>Aucune dépendance</b>]]> à des ordinateurs ou services tiers. L\'application utilise juste votre serveur d\'e-mail.</string>
|
||||
|
||||
<string name="Intro3Headline">Rapide</string>
|
||||
<string name="Intro3Message">Envoyez des messages<![CDATA[<b>en quelques secondes</b>]]>.<![CDATA[<br/>]]>Interface rapide.</string>
|
||||
|
||||
<string name="Intro4Headline">Puissant</string>
|
||||
<string name="Intro4Message">Envoyer et recevez des messages, des photo, des vidéos, des messages audios et plus <![CDATA[<b>sans limite</b>]]>. Compatible multi-plateforme.</string>
|
||||
|
||||
<string name="Intro5Headline">Libre</string>
|
||||
<string name="Intro5Message"><![CDATA[<b>Delta Chat</b>]]> sera toujours libre.<![CDATA[<br/>]]>OpenSource. Pas de pub. Pas d\'inscription.</string>
|
||||
|
||||
<string name="Intro6Headline">Sûr</string>
|
||||
<string name="Intro6Message"><![CDATA[<b>Chiffré</b>]]> avec des algorithmes communs. Les messages restent sur vos serveurs.</string>
|
||||
|
||||
<string name="Intro7Headline">Fiable</string>
|
||||
|
||||
<string name="IntroStartMessaging">Commencez à converser</string>
|
||||
<!--plural-->
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d membre</item>
|
||||
<item quantity="other">%d membres</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d contact</item>
|
||||
<item quantity="other">%d contacts</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">Moi et %d membre</item>
|
||||
<item quantity="other">Moi et %d membres</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nouveau message</item>
|
||||
<item quantity="other">%d nouveaux messages</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d message</item>
|
||||
<item quantity="other">%d messages</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d conversation</item>
|
||||
<item quantity="other">%d conversations</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minute</item>
|
||||
<item quantity="other">%d minutes</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d heure</item>
|
||||
<item quantity="other">%d heures</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d jour</item>
|
||||
<item quantity="other">%d jours</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d semaine</item>
|
||||
<item quantity="other">%d semaines</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d mois</item>
|
||||
<item quantity="other">%d mois</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">dd MMM</string>
|
||||
<string name="formatterYear">dd.MM.yyyy</string>
|
||||
<string name="chatDate">EEE, d MMMM</string>
|
||||
<string name="chatFullDate">EEE, d MMMM yyyy</string>
|
||||
<string name="formatterWeek">EEE</string>
|
||||
<string name="formatterDay24H">HH:mm</string>
|
||||
<string name="formatterDay12H">h:mm a</string>
|
||||
<string name="formatDateAtTime">%1$s à %2$s</string>
|
||||
<string name="AccountSettings">Paramètres du compte</string>
|
||||
<string name="MyAccount">Mon compte</string>
|
||||
<string name="Yes">Oui</string>
|
||||
<string name="No">Non</string>
|
||||
<string name="MyName">Mon nom</string>
|
||||
<string name="MyNameExplain">Votre nom, tel que montré par les destinataires.\n\nSi vous ne saisissez pas un nom, les destinataires ne verront que votre adresse e-mail renseignée dans les paramètres de compte.</string>
|
||||
<string name="MyEmailAddress">Mon adresse e-mail</string>
|
||||
<string name="Password">Mot de passe</string>
|
||||
<string name="SmtpPassword">Mot de passe SMTP</string>
|
||||
<string name="FromAbove">de ci-dessus</string>
|
||||
<string name="SmtpLoginname">Identifiant SMTP</string>
|
||||
<string name="SmtpPort">Port SMTP</string>
|
||||
<string name="Automatic">automatique</string>
|
||||
<string name="ImapServer">Serveur IMAP</string>
|
||||
<string name="ImapLoginname">Identifiant IMAP</string>
|
||||
<string name="SmtpServer">Serveur SMTP</string>
|
||||
<string name="ImapPort">Port IMAP</string>
|
||||
<string name="InboxHeadline">Boîte de reception</string>
|
||||
<string name="OutboxHeadline">Boîte d\'envoi</string>
|
||||
<string name="BasicSettings">Paramètres de base</string>
|
||||
<string name="MyAccountExplain">Pour les fournisseurs e-mails connus, les paramètres suivants sont déterminés automatiquement.</string>
|
||||
<string name="MyAccountExplain2" >Parfois, les protocoles IMAP/SMTP doivent êtres activés depuis l\'interface web.\n\nSi vous rencontrez des problème, demandez à votre fournisseur ou à vos amis.</string>
|
||||
<string name="AccountNotConfigured">Compte non configuré</string>
|
||||
<string name="AboutThisProgram">À propos Delta Chat</string>
|
||||
<string name="NotSet">Non défini</string>
|
||||
<string name="NewChat">Nouvelle conversation</string>
|
||||
<string name="Deaddrop">Boîte de reception</string>
|
||||
<string name="Media">Média</string>
|
||||
<string name="DeaddropInChatlist">Montrer la boîte de reception dans la liste des conversations</string>
|
||||
<string name="MuteAlways">Toujours muet</string>
|
||||
<string name="AskStartChatWith">Lancer une conversation avec <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> ?</string>
|
||||
<string name="DeaddropHint">Pour lancer une conversation, cliquez sur le bouton de réponse en forme de flèche.</string>
|
||||
<string name="NotYetImplemented">This function is not available or incomplete.</string>
|
||||
<string name="DefaultStatusText">Envoyé avec ma messagerie Delta Chat</string>
|
||||
<string name="SubjectPrefix">Message instantanné</string>
|
||||
<string name="SeachUser">Recherche un contact</string>
|
||||
<string name="Name" >Nom</string>
|
||||
<string name="EmailAddress">Adresse e-mail</string>
|
||||
<string name="CannotDeleteContact">Impossible de supprimer les contacts en cours d\'utilisation, bloquez-les à la place.</string>
|
||||
<string name="BadEmailAddress">Mauvaise adresse e-mail.</string>
|
||||
<string name="ContactDeleted">Utilisateur supprimé.</string>
|
||||
<string name="ContactCreated">Utilisateur créé.</string>
|
||||
<string name="ViewProfile">Voir le profil</string>
|
||||
<string name="OneMomentPlease">Un moment…</string>
|
||||
<string name="CannotDeleteChat">Impossible de supprimer la conversation.</string>
|
||||
<string name="NoChatsHelp">Lancez une conversation en appuyant sur le bouton dans le coin inférieur droit ou appuyez sur le bouton menu pour plus d\'options.</string>
|
||||
<string name="ConfiguringAccount">Configuration du compte en cours…</string>
|
||||
<string name="CannotConnect">Connexion impossible, veuillez vérifier la configuration.</string>
|
||||
<string name="Intro7Message"><![CDATA[<b>Delta Chat</b>]]> est sûr pour une utilisation professionnelle, compatible et basé sur des standards.</string>
|
||||
<string name="InviteMenuEntry">Envoyer des invitations</string>
|
||||
<string name="InviteText">J\'utilise la messagerie Delta Chat maintenant - %1$s - vous pouvez me contacter à %2$s</string>
|
||||
<string name="AdvancedSettings">Paramètres avancés</string>
|
||||
<string name="AskResetNotifications" >Êtes-vous sûr de vouloir réinitialiser toutes les paramètres de notification et les sons de cette page et de vos contacts et groups ?</string>
|
||||
<string name="AttachFiles">Joindre des fichiers</string>
|
||||
<string name="Chats">Conversations</string>
|
||||
<string name="ErrGroupNameEmpty">Merci de saisir un nom pour le groupe.</string>
|
||||
<string name="MsgNewGroupDraftHint">Écrivez un premier message pour permettre aux autres de répondre dans ce group.\n\n• C\'est bon si tout les membres n\'utilisent pas Delta Chat.\n\n• La livraison du premier message peut prendre un moment.</string>
|
||||
<string name="MsgNewGroupDraft">Bonjour, je viens juste de créer le groupe \"%1$s\" pour nous.</string>
|
||||
<string name="MsgGroupNameChanged">Le nom du group a changé de \"%1$s\" à \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">L\'image du groupe a changé.</string>
|
||||
<string name="MsgMemberAddedToGroup">Le membre %1$s vient d\'être ajouté.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Le membre %1$s vient d\'être retiré.</string>
|
||||
<string name="AskAddMemberToGroup">Voulez-vous ajouter <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> au groupe ?</string>
|
||||
<string name="AskRemoveMemberFromGroup">Voulez-vous retirer <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> du groupe ?</string>
|
||||
<string name="ErrSelfNotInGroup">Vous devez être membre du groupe pour effectuer cette action.</string>
|
||||
<string name="MsgGroupLeft">Groupe quitté.</string>
|
||||
<string name="NoMessagesHint">Envoyez un message à <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>:\n\n• C\'est bon si <![CDATA[<b>]]>%2$s<![CDATA[</b>]]> .n\'utilise pas Delta Chat\n\n• La livraison du premier message peut prendre un moment.</string>
|
||||
<string name="SendNRcvReadReceipts">Recevoir et envoyer les accusés de lecture</string>
|
||||
<string name="E2EEncryption">Chiffrement bout à bout</string>
|
||||
<string name="E2EManagePrivateKeys">Gérer les clefs privées</string>
|
||||
<string name="E2ECompareKeys">Comparer les clefs</string>
|
||||
<string name="ResetUserKey">Reinitialiser les clefs de l\'utilisateur</string>
|
||||
<string name="ForwardToTitle">Renvoyer à…</string>
|
||||
</resources>
|
||||
@@ -13,16 +13,14 @@
|
||||
<string name="Yesterday">ieri</string>
|
||||
<string name="NoResult">Nessun risultato</string>
|
||||
<string name="NoChats">Ancora nessuna chat.</string>
|
||||
<string name="WaitingForNetwork">Attendo la rete...</string>
|
||||
<string name="WaitingForNetwork">Attendo la rete…</string>
|
||||
<string name="Connecting">Connetto…</string>
|
||||
<string name="Updating">Aggiorno…</string>
|
||||
<string name="DeleteChat">Elimina chat</string>
|
||||
<string name="SelectChat">Seleziona chat ...</string>
|
||||
<string name="SelectChat">Seleziona chat …</string>
|
||||
<string name="Search">Cerca</string>
|
||||
<string name="MuteNotifications">Silenzia notifiche</string>
|
||||
<string name="MuteFor">Silenzia per %1$s</string>
|
||||
<string name="UnmuteNotifications">Suona</string>
|
||||
<string name="WillUnmuteIn">Tra %1$s</string>
|
||||
<string name="Draft">Bozza</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Aggiungi file nella libreria musicale del tuo dispositivo per vederli qui.</string>
|
||||
@@ -34,7 +32,7 @@
|
||||
<string name="FreeOfTotal">Liberi %1$s di %2$s</string>
|
||||
<string name="UnknownError">Errore sconosciuto</string>
|
||||
<string name="AccessError">Errore durante l\'accesso</string>
|
||||
<string name="NoFiles">Ancora nessun file...</string>
|
||||
<string name="NoFiles">Ancora nessun file…</string>
|
||||
<string name="FileUploadLimit">La dimensione del file non dovrebbe superare i %1$s</string>
|
||||
<string name="NotMounted">Archiviazione non montata</string>
|
||||
<string name="UsbActive">Trasferimento USB attivo</string>
|
||||
@@ -61,11 +59,9 @@
|
||||
<string name="SaveToMusic">Salva nella musica</string>
|
||||
<string name="ShareFile">Condividi</string>
|
||||
<string name="UnsupportedAttachment">Allegato non supportato</string>
|
||||
<string name="OpenInBrowser">APRI IN...</string>
|
||||
<string name="OpenInBrowser">APRI IN…</string>
|
||||
<string name="SendItems">Invia %1$s</string>
|
||||
<string name="OpenUrlAlert">Aprire url %1$s?</string>
|
||||
<string name="MoreInfo">Maggiori info</string>
|
||||
<string name="ShareSendTo">Invia a...</string>
|
||||
<string name="ClearRecentEmoji">Cancellare le emoji recenti?</string>
|
||||
<string name="AddShortcut">Aggiungi scorciatoia</string>
|
||||
<string name="ShortcutAdded">Scorciatoia aggiunta alla schermata home</string>
|
||||
@@ -73,15 +69,12 @@
|
||||
<string name="Reply">Rispondi</string>
|
||||
<string name="ReplyToGroup">Rispondi a %1$s</string>
|
||||
<string name="ReplyToUser">Rispondi a %1$s</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Ancora nessun contatto</string>
|
||||
<string name="TodayAt">alle</string>
|
||||
<string name="YesterdayAt">ieri alle</string>
|
||||
<string name="LastSeen">ultimo accesso</string>
|
||||
<string name="LastSeenDate">ultimo accesso</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Invia messaggio a...</string>
|
||||
<string name="SendMessageTo">Invia messaggio a…</string>
|
||||
<string name="EnterGroupNamePlaceholder">Immetti il nome del gruppo</string>
|
||||
<string name="ShareLink">Condividi link</string>
|
||||
<!--group info view-->
|
||||
@@ -247,7 +240,7 @@
|
||||
<string name="ClearButton">Cancella</string>
|
||||
<string name="PickerPhotos">Foto</string>
|
||||
<string name="PickerVideo">Video</string>
|
||||
<string name="AddCaption">Aggiungi una didascalia...</string>
|
||||
<string name="AddCaption">Aggiungi una didascalia…</string>
|
||||
<string name="PhotoCaption">Didascalia foto</string>
|
||||
<string name="VideoCaption">Didascalia video</string>
|
||||
<string name="Caption">Didascalia</string>
|
||||
@@ -259,7 +252,7 @@
|
||||
<string name="EditVideo">Modifica video</string>
|
||||
<string name="OriginalVideo">Video originale</string>
|
||||
<string name="EditedVideo">Video modificato</string>
|
||||
<string name="SendingVideo">Invio video...</string>
|
||||
<string name="SendingVideo">Invio video…</string>
|
||||
<string name="CompressVideo">Comprimi video</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Avanti</string>
|
||||
@@ -308,140 +301,53 @@
|
||||
<string name="ShareYouLocationUnableManually">Scegli manualmente</string>
|
||||
<string name="AreYouSureBlockContact">Vuoi bloccare questo contatto?</string>
|
||||
<string name="AreYouSureDeleteContact">Sei sicuro di voler eliminare questo contatto?</string>
|
||||
<string name="AreYouSureDeleteMessages">Sei sicuro di voler eliminare %1$s?</string>
|
||||
<string name="RaiseToSpeakAlert">Vuoi attivare \"Alza per parlare\" per i messaggi vocali?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat deve accedere ai tuoi contatti per poterti connettere con i tuoi amici su tutti i tuoi dispositivi.</string>
|
||||
<string name="PermissionStorage">Delta Chat deve accedere alla tua memoria per poter inviare e salvare foto,video, musica e altri media.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat deve accedere al microfono per poter inviare messaggi vocali.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat deve accedere alla tua posizione per poterla condividere con i tuoi amici.</string>
|
||||
<string name="PermissionNoLocationPosition">Delta Chat deve accedere alla tua posizione.</string>
|
||||
<string name="PermissionOpenSettings">Impostazioni</string>
|
||||
<!--Intro view-->
|
||||
<string name="IntroStartMessaging">Inizia a chattare</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d membri</string>
|
||||
<string name="Members_one">%1$d membro</string>
|
||||
<string name="Members_two">%1$d membri</string>
|
||||
<string name="Members_few">%1$d membri</string>
|
||||
<string name="Members_many">%1$d membri</string>
|
||||
<string name="Members_other">%1$d membri</string>
|
||||
<string name="NewMessages_zero">nessun nuovo messaggio</string>
|
||||
<string name="NewMessages_one">%1$d nuovo messaggio</string>
|
||||
<string name="NewMessages_two">%1$d nuovi messaggi</string>
|
||||
<string name="NewMessages_few">%1$d nuovi messaggi</string>
|
||||
<string name="NewMessages_many">%1$d nuovi messaggi</string>
|
||||
<string name="NewMessages_other">%1$d nuovi messaggi</string>
|
||||
<string name="messages_zero">nessun messaggio</string>
|
||||
<string name="messages_one">%1$d messaggio</string>
|
||||
<string name="messages_two">%1$d messaggi</string>
|
||||
<string name="messages_few">%1$d messaggi</string>
|
||||
<string name="messages_many">%1$d messaggi</string>
|
||||
<string name="messages_other">%1$d messaggi</string>
|
||||
<string name="items_zero">nessun oggetto</string>
|
||||
<string name="items_one">%1$d oggetto</string>
|
||||
<string name="items_two">%1$d oggetti</string>
|
||||
<string name="items_few">%1$d oggetti</string>
|
||||
<string name="items_many">%1$d oggetti</string>
|
||||
<string name="items_other">%1$d oggetti</string>
|
||||
<string name="FromChats_zero">da nessuna chat</string>
|
||||
<string name="FromChats_one">da %1$d chat</string>
|
||||
<string name="FromChats_two">da %1$d chat</string>
|
||||
<string name="FromChats_few">da %1$d chat</string>
|
||||
<string name="FromChats_many">da %1$d chat</string>
|
||||
<string name="FromChats_other">da %1$d chat</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d membro</item>
|
||||
<item quantity="other">%d membri</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nuovo messaggio</item>
|
||||
<item quantity="other">%d nuovi messaggi</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d messaggio</item>
|
||||
<item quantity="other">%d messaggi</item>
|
||||
</plurals>
|
||||
|
||||
<string name="Chats_zero">Nessuna chat</string>
|
||||
<string name="Chats_one">%1$d chat</string>
|
||||
<string name="Chats_two">%1$d chat</string>
|
||||
<string name="Chats_few">%1$d chat</string>
|
||||
<string name="Chats_many">%1$d chat</string>
|
||||
<string name="Chats_other">%1$d chat</string>
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d chat</item>
|
||||
<item quantity="other">%d chat</item>
|
||||
</plurals>
|
||||
|
||||
<string name="Seconds_zero">%1$d secondi</string>
|
||||
<string name="Seconds_one">%1$d secondo</string>
|
||||
<string name="Seconds_two">%1$d secondi</string>
|
||||
<string name="Seconds_few">%1$d secondi</string>
|
||||
<string name="Seconds_many">%1$d secondi</string>
|
||||
<string name="Seconds_other">%1$d secondi</string>
|
||||
<string name="Minutes_zero">%1$d minuti</string>
|
||||
<string name="Minutes_one">%1$d minuto</string>
|
||||
<string name="Minutes_two">%1$d minuti</string>
|
||||
<string name="Minutes_few">%1$d minuti</string>
|
||||
<string name="Minutes_many">%1$d minuti</string>
|
||||
<string name="Minutes_other">%1$d minuti</string>
|
||||
<string name="Hours_zero">%1$d ore</string>
|
||||
<string name="Hours_one">%1$d ora</string>
|
||||
<string name="Hours_two">%1$d ore</string>
|
||||
<string name="Hours_few">%1$d ore</string>
|
||||
<string name="Hours_many">%1$d ore</string>
|
||||
<string name="Hours_other">%1$d ore</string>
|
||||
<string name="Days_zero">%1$d giorni</string>
|
||||
<string name="Days_one">%1$d giorno</string>
|
||||
<string name="Days_two">%1$d giorni</string>
|
||||
<string name="Days_few">%1$d giorni</string>
|
||||
<string name="Days_many">%1$d giorni</string>
|
||||
<string name="Days_other">%1$d giorni</string>
|
||||
<string name="Weeks_zero">%1$d settimane</string>
|
||||
<string name="Weeks_one">%1$d settimana</string>
|
||||
<string name="Weeks_two">%1$d settimane</string>
|
||||
<string name="Weeks_few">%1$d settimane</string>
|
||||
<string name="Weeks_many">%1$d settimane</string>
|
||||
<string name="Weeks_other">%1$d settimane</string>
|
||||
<string name="Months_zero">%1$d mesi</string>
|
||||
<string name="Months_one">%1$d mese</string>
|
||||
<string name="Months_two">%1$d mesi</string>
|
||||
<string name="Months_few">%1$d mesi</string>
|
||||
<string name="Months_many">%1$d mesi</string>
|
||||
<string name="Months_other">%1$d mesi</string>
|
||||
<string name="Years_zero">%1$d anni</string>
|
||||
<string name="Years_one">%1$d anno</string>
|
||||
<string name="Years_two">%1$d anni</string>
|
||||
<string name="Years_few">%1$d anni</string>
|
||||
<string name="Years_many">%1$d ann</string>
|
||||
<string name="Years_other">%1$d anni</string>
|
||||
<string name="Users_zero">%1$d utenti</string>
|
||||
<string name="Users_one">%1$d utente</string>
|
||||
<string name="Users_two">%1$d utenti</string>
|
||||
<string name="Users_few">%1$d utenti</string>
|
||||
<string name="Users_many">%1$d utenti</string>
|
||||
<string name="Users_other">%1$d utenti</string>
|
||||
<string name="Times_zero">%1$d volte</string>
|
||||
<string name="Times_one">%1$d volta</string>
|
||||
<string name="Times_two">%1$d volte</string>
|
||||
<string name="Times_few">%1$d volte</string>
|
||||
<string name="Times_many">%1$d volte</string>
|
||||
<string name="Times_other">%1$d volte</string>
|
||||
<string name="Meters_zero">%1$d metri</string>
|
||||
<string name="Meters_one">%1$d metro</string>
|
||||
<string name="Meters_two">%1$d metri</string>
|
||||
<string name="Meters_few">%1$d metri</string>
|
||||
<string name="Meters_many">%1$d metri</string>
|
||||
<string name="Meters_other">%1$d metri</string>
|
||||
<string name="Stickers_zero">%1$d sticker</string>
|
||||
<string name="Stickers_one">%1$d sticker</string>
|
||||
<string name="Stickers_two">%1$d sticker</string>
|
||||
<string name="Stickers_few">%1$d sticker</string>
|
||||
<string name="Stickers_many">%1$d sticker</string>
|
||||
<string name="Stickers_other">%1$d sticker</string>
|
||||
<string name="Photos_zero">%1$d foto</string>
|
||||
<string name="Photos_one">%1$d foto</string>
|
||||
<string name="Photos_two">%1$d foto</string>
|
||||
<string name="Photos_few">%1$d foto</string>
|
||||
<string name="Photos_many">%1$d foto</string>
|
||||
<string name="Photos_other">%1$d foto</string>
|
||||
<string name="LastSeenMinutes_zero">ultimo accesso %1$d minuti fa</string>
|
||||
<string name="LastSeenMinutes_one">ultimo accesso %1$d minuto fa</string>
|
||||
<string name="LastSeenMinutes_two">ultimo accesso %1$d minuti fa</string>
|
||||
<string name="LastSeenMinutes_few">ultimo accesso %1$d minuti fa</string>
|
||||
<string name="LastSeenMinutes_many">ultimo accesso %1$d minuti fa</string>
|
||||
<string name="LastSeenMinutes_other">ultimo accesso %1$d minuti fa</string>
|
||||
<string name="LastSeenHours_zero">ultimo accesso %1$d ore fa</string>
|
||||
<string name="LastSeenHours_one">ultimo accesso %1$d ora fa</string>
|
||||
<string name="LastSeenHours_two">ultimo accesso %1$d ore fa</string>
|
||||
<string name="LastSeenHours_few">ultimo accesso %1$d ore fa</string>
|
||||
<string name="LastSeenHours_many">ultimo accesso %1$d ore fa</string>
|
||||
<string name="LastSeenHours_other">ultimo accesso %1$d ore fa</string>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minuto</item>
|
||||
<item quantity="other">%d minuti</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d ora</item>
|
||||
<item quantity="other">%d ore</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d giorno</item>
|
||||
<item quantity="other">%d giorni</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d settimana</item>
|
||||
<item quantity="other">%d settimane</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d mese</item>
|
||||
<item quantity="other">%d mesi</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">dd MMM</string>
|
||||
@@ -456,5 +362,5 @@
|
||||
<string name="Media">Media</string>
|
||||
<string name="SeachUser">Cerca</string>
|
||||
<string name="InviteMenuEntry">Invita amici</string>
|
||||
<string name="ForwardToTitle">Seleziona chat ...</string>
|
||||
<string name="ForwardToTitle">Seleziona chat …</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,12 +17,10 @@
|
||||
<string name="Connecting">Verbinden</string>
|
||||
<string name="Updating">Bijwerken</string>
|
||||
<string name="DeleteChat">Chat verwijderen</string>
|
||||
<string name="SelectChat">Kies een chat ...</string>
|
||||
<string name="SelectChat">Kies een chat …</string>
|
||||
<string name="Search">Zoeken</string>
|
||||
<string name="MuteNotifications">Meldingen stil</string>
|
||||
<string name="MuteFor">%1$s stil</string>
|
||||
<string name="UnmuteNotifications">Stil uitschakelen</string>
|
||||
<string name="WillUnmuteIn">Over %1$s</string>
|
||||
<string name="Draft">Concept</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Voeg bestanden toe aan de muziekbibliotheek op je apparaat om ze hier te zien.</string>
|
||||
@@ -61,11 +59,9 @@
|
||||
<string name="SaveToMusic">Opslaan in muziek</string>
|
||||
<string name="ShareFile">Delen</string>
|
||||
<string name="UnsupportedAttachment">Bestandstype niet ondersteund</string>
|
||||
<string name="OpenInBrowser">OPENEN IN...</string>
|
||||
<string name="OpenInBrowser">OPENEN IN…</string>
|
||||
<string name="SendItems">%1$s versturen</string>
|
||||
<string name="OpenUrlAlert">URL %1$s openen?</string>
|
||||
<string name="MoreInfo">Meer informatie</string>
|
||||
<string name="ShareSendTo">Versturen naar...</string>
|
||||
<string name="ClearRecentEmoji">Recente emoji\'s wissen?</string>
|
||||
<string name="AddShortcut">Snelkoppeling toevoegen</string>
|
||||
<string name="ShortcutAdded">Snelkoppeling aan startscherm toegevoegd</string>
|
||||
@@ -73,13 +69,10 @@
|
||||
<string name="Reply">Antwoord</string>
|
||||
<string name="ReplyToGroup">Antwoord op %1$s</string>
|
||||
<string name="ReplyToUser">Antwoord op %1$s</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Nog geen contacten</string>
|
||||
<string name="TodayAt">om</string>
|
||||
<string name="YesterdayAt">gisteren om</string>
|
||||
<string name="LastSeen">gezien</string>
|
||||
<string name="LastSeenDate">gezien</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Bericht versturen naar</string>
|
||||
<string name="EnterGroupNamePlaceholder">Groepsnaam</string>
|
||||
@@ -308,132 +301,47 @@
|
||||
<string name="ShareYouLocationUnableManually">Handmatig kiezen</string>
|
||||
<string name="AreYouSureBlockContact">Weet je zeker dat je deze persoon wilt blokkeren?</string>
|
||||
<string name="AreYouSureDeleteContact">Contact echt verwijderen?</string>
|
||||
<string name="AreYouSureDeleteMessages">%1$s echt verwijderen?</string>
|
||||
<string name="RaiseToSpeakAlert">Wil je \"Houd bij oor\" inschakelen voor spraakberichten?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat heeft toegang tot je contacten nodig zodat je kan chatten met je vrienden vanaf al je apparaten.</string>
|
||||
<string name="PermissionStorage">Delta Chat heeft toegang tot je opslaggeheugen nodig zodat je foto\'s, video\'s, muziek en andere media kunt opslaan en versturen.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat heeft toegang tot je microfoon nodig om spraakberichten te kunnen verzenden.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat heeft toegang tot je locatie nodig om deze te kunnen delen met je vrienden.</string>
|
||||
<string name="PermissionNoLocationPosition">Delta Chat heeft toegang tot je locatie nodig.</string>
|
||||
<string name="PermissionOpenSettings">Instellingen</string>
|
||||
<!--Intro view-->
|
||||
<string name="IntroStartMessaging">Begin met chatten</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d leden</string>
|
||||
<string name="Members_one">%1$d leden</string>
|
||||
<string name="Members_two">%1$d leden</string>
|
||||
<string name="Members_few">%1$d leden</string>
|
||||
<string name="Members_many">%1$d leden</string>
|
||||
<string name="Members_other">%1$d leden</string>
|
||||
<string name="NewMessages_zero">geen nieuwe berichten</string>
|
||||
<string name="NewMessages_one">%1$d nieuw bericht</string>
|
||||
<string name="NewMessages_two">%1$d nieuwe berichten</string>
|
||||
<string name="NewMessages_few">%1$d nieuwe berichten</string>
|
||||
<string name="NewMessages_many">%1$d nieuwe berichten</string>
|
||||
<string name="NewMessages_other">%1$d nieuwe berichten</string>
|
||||
<string name="messages_zero">geen berichten</string>
|
||||
<string name="messages_one">%1$d bericht</string>
|
||||
<string name="messages_two">%1$d berichten</string>
|
||||
<string name="messages_few">%1$d berichten</string>
|
||||
<string name="messages_many">%1$d berichten</string>
|
||||
<string name="messages_other">%1$d berichten</string>
|
||||
<string name="items_zero">geen items</string>
|
||||
<string name="items_one">%1$d item</string>
|
||||
<string name="items_two">%1$d items</string>
|
||||
<string name="items_few">%1$d items</string>
|
||||
<string name="items_many">%1$d items</string>
|
||||
<string name="items_other">%1$d items</string>
|
||||
<string name="FromChats_zero">van geen chats</string>
|
||||
<string name="FromChats_one">van %1$d chat</string>
|
||||
<string name="FromChats_two">van %1$d chats</string>
|
||||
<string name="FromChats_few">van %1$d chats</string>
|
||||
<string name="FromChats_many">van %1$d chats</string>
|
||||
<string name="FromChats_other">van %1$d chats</string>
|
||||
<string name="Seconds_zero">%1$d seconden</string>
|
||||
<string name="Seconds_one">%1$d seconde</string>
|
||||
<string name="Seconds_two">%1$d seconden</string>
|
||||
<string name="Seconds_few">%1$d seconden</string>
|
||||
<string name="Seconds_many">%1$d seconden</string>
|
||||
<string name="Seconds_other">%1$d seconden</string>
|
||||
<string name="Minutes_zero">%1$d minuten</string>
|
||||
<string name="Minutes_one">%1$d minuut</string>
|
||||
<string name="Minutes_two">%1$d minuten</string>
|
||||
<string name="Minutes_few">%1$d minuten</string>
|
||||
<string name="Minutes_many">%1$d minuten</string>
|
||||
<string name="Minutes_other">%1$d minuten</string>
|
||||
<string name="Hours_zero">%1$d uur</string>
|
||||
<string name="Hours_one">%1$d uur</string>
|
||||
<string name="Hours_two">%1$d uur</string>
|
||||
<string name="Hours_few">%1$d uur</string>
|
||||
<string name="Hours_many">%1$d uur</string>
|
||||
<string name="Hours_other">%1$d uur</string>
|
||||
<string name="Days_zero">%1$d dagen</string>
|
||||
<string name="Days_one">%1$d dag</string>
|
||||
<string name="Days_two">%1$d dagen</string>
|
||||
<string name="Days_few">%1$d dagen</string>
|
||||
<string name="Days_many">%1$d dagen</string>
|
||||
<string name="Days_other">%1$d dagen</string>
|
||||
<string name="Weeks_zero">%1$d weken</string>
|
||||
<string name="Weeks_one">%1$d week</string>
|
||||
<string name="Weeks_two">%1$d weken</string>
|
||||
<string name="Weeks_few">%1$d weken</string>
|
||||
<string name="Weeks_many">%1$d weken</string>
|
||||
<string name="Weeks_other">%1$d weken</string>
|
||||
<string name="Months_zero">%1$d maanden</string>
|
||||
<string name="Months_one">%1$d maand</string>
|
||||
<string name="Months_two">%1$d maanden</string>
|
||||
<string name="Months_few">%1$d maanden</string>
|
||||
<string name="Months_many">%1$d maanden</string>
|
||||
<string name="Months_other">%1$d maanden</string>
|
||||
<string name="Years_zero">%1$d jaar</string>
|
||||
<string name="Years_one">%1$d jaar</string>
|
||||
<string name="Years_two">%1$d jaar</string>
|
||||
<string name="Years_few">%1$d jaar</string>
|
||||
<string name="Years_many">%1$d jaar</string>
|
||||
<string name="Years_other">%1$d jaar</string>
|
||||
<string name="Users_zero">%1$d gebruikers</string>
|
||||
<string name="Users_one">%1$d gebruiker</string>
|
||||
<string name="Users_two">%1$d gebruikers</string>
|
||||
<string name="Users_few">%1$d gebruikers</string>
|
||||
<string name="Users_many">%1$d gebruikers</string>
|
||||
<string name="Users_other">%1$d gebruikers</string>
|
||||
<string name="Times_zero">%1$d keer</string>
|
||||
<string name="Times_one">%1$d keer</string>
|
||||
<string name="Times_two">%1$d keer</string>
|
||||
<string name="Times_few">%1$d keer</string>
|
||||
<string name="Times_many">%1$d keer</string>
|
||||
<string name="Times_other">%1$d keer</string>
|
||||
<string name="Meters_zero">%1$d meter</string>
|
||||
<string name="Meters_one">%1$d meter</string>
|
||||
<string name="Meters_two">%1$d meter</string>
|
||||
<string name="Meters_few">%1$d meter</string>
|
||||
<string name="Meters_many">%1$d meter</string>
|
||||
<string name="Meters_other">%1$d meter</string>
|
||||
<string name="Stickers_zero">%1$d stickers</string>
|
||||
<string name="Stickers_one">%1$d sticker</string>
|
||||
<string name="Stickers_two">%1$d stickers</string>
|
||||
<string name="Stickers_few">%1$d stickers</string>
|
||||
<string name="Stickers_many">%1$d stickers</string>
|
||||
<string name="Stickers_other">%1$d stickers</string>
|
||||
<string name="Photos_zero">%1$d foto\'s</string>
|
||||
<string name="Photos_one">%1$d foto</string>
|
||||
<string name="Photos_two">%1$d foto\'s</string>
|
||||
<string name="Photos_few">%1$d foto\'s</string>
|
||||
<string name="Photos_many">%1$d foto\'s</string>
|
||||
<string name="Photos_other">%1$d foto\'s</string>
|
||||
<string name="LastSeenMinutes_zero">laatst gezien %1$d min geleden</string>
|
||||
<string name="LastSeenMinutes_one">laatst gezien %1$d minuut geleden</string>
|
||||
<string name="LastSeenMinutes_two">laatst gezien %1$d min geleden</string>
|
||||
<string name="LastSeenMinutes_few">laatst gezien %1$d min geleden</string>
|
||||
<string name="LastSeenMinutes_many">laatst gezien %1$d min geleden</string>
|
||||
<string name="LastSeenMinutes_other">laatst gezien %1$d min geleden</string>
|
||||
<string name="LastSeenHours_zero">laatst gezien %1$d uur geleden</string>
|
||||
<string name="LastSeenHours_one">laatst gezien %1$d uur geleden</string>
|
||||
<string name="LastSeenHours_two">laatst gezien %1$d uur geleden</string>
|
||||
<string name="LastSeenHours_few">laatst gezien %1$d uur geleden</string>
|
||||
<string name="LastSeenHours_many">laatst gezien %1$d uur geleden</string>
|
||||
<string name="LastSeenHours_other">laatst gezien %1$d uur geleden</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d leden</item>
|
||||
<item quantity="other">%d leden</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nieuw bericht</item>
|
||||
<item quantity="other">%d nieuwe berichten</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d bericht</item>
|
||||
<item quantity="other">%d berichten</item>
|
||||
</plurals>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minuut</item>
|
||||
<item quantity="other">%d minuten</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d uur</item>
|
||||
<item quantity="other">%d uur</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d dag</item>
|
||||
<item quantity="other">%d dagen</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d week</item>
|
||||
<item quantity="other">%d weken</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d maand</item>
|
||||
<item quantity="other">%d maanden</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">dd MMM</string>
|
||||
@@ -448,5 +356,5 @@
|
||||
<string name="Media">Media</string>
|
||||
<string name="SeachUser">Zoeken</string>
|
||||
<string name="InviteMenuEntry">Vrienden uitnodigen</string>
|
||||
<string name="ForwardToTitle">Kies een chat ...</string>
|
||||
<string name="ForwardToTitle">Kies een chat …</string>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,505 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
|
||||
<resources>
|
||||
<string name="AppName">Delta Chat</string>
|
||||
<string name="LanguageName">Polski</string>
|
||||
<string name="LanguageNameInEnglish">Polish</string>
|
||||
<string name="LanguageCode">pl</string>
|
||||
<!--chats view-->
|
||||
<string name="Settings">Ustawienia</string>
|
||||
<string name="NewGroup">Nowa grupa</string>
|
||||
<string name="Yesterday">wczoraj</string>
|
||||
<string name="NoResult">Nie ma wyników.</string>
|
||||
<string name="NoChats">Nie ma czatów.</string>
|
||||
<string name="WaitingForNetwork">Czekam na sieć…</string>
|
||||
<string name="Connecting">Łączenie…</string>
|
||||
<string name="Updating">Aktualizowanie…</string>
|
||||
<string name="DeleteChat">Usuń czat</string>
|
||||
<string name="SelectChat">Wybierz czat…</string>
|
||||
<string name="Search">Szukaj</string>
|
||||
<string name="MuteNotifications">Wyłącz powiadomienia</string>
|
||||
<string name="MuteFor1Hour">Wyłącz na 1 godzinę</string>
|
||||
<string name="MuteFor8Hours">Wyłącz na 8 godzin</string>
|
||||
<string name="MuteFor2Days">Wyłącz na 2 dni</string>
|
||||
<string name="UnmuteNotifications">Włącz powiadomienia</string>
|
||||
<string name="Draft">Szkic</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Dodaj pliki do biblioteki muzyki w urządzeniu, aby zobaczyć je tutaj.</string>
|
||||
<string name="AttachMusic">Muzyka</string>
|
||||
<string name="AudioUnknownArtist">Nieznany artysta</string>
|
||||
<string name="AudioUnknownTitle">Nieznany tytuł</string>
|
||||
<!--documents view-->
|
||||
<string name="SelectFile">Wybierz plik</string>
|
||||
<string name="FreeOfTotal">Wolne %1$s z %2$s</string>
|
||||
<string name="UnknownError">Nieznany błąd</string>
|
||||
<string name="AccessError">Błąd dostępu</string>
|
||||
<string name="NoFiles">Nie ma plików…</string>
|
||||
<string name="FileUploadLimit">Rozmiar pliku nie powinien być większy niż %1$s</string>
|
||||
<string name="NotMounted">Nie zamontowano pamięci</string>
|
||||
<string name="UsbActive">Aktywny transfer USB</string>
|
||||
<string name="InternalStorage">Pamięć wewnętrzna</string>
|
||||
<string name="ExternalStorage">Pamięć zewnętrzna</string>
|
||||
<string name="SystemRoot">Katalog systemowy</string>
|
||||
<string name="SdCard">Karta SD</string>
|
||||
<string name="Folder">Folder</string>
|
||||
<string name="GalleryInfo">Wyślij obrazki bez kompresji</string>
|
||||
<!--chat view-->
|
||||
<string name="ChatGallery">Galeria</string>
|
||||
<string name="ChatLocation">Lokalizacja</string>
|
||||
<string name="ChatVideo">Wideo</string>
|
||||
<string name="ChatDocument">Plik</string>
|
||||
<string name="ChatCamera">Kamera</string>
|
||||
<string name="NoMessages">Brak wiadomości.</string>
|
||||
<string name="ForwardedMessage">Przekazana wiadomość</string>
|
||||
<string name="From">Od</string>
|
||||
<string name="NoRecent">Nie ma wcześniejszych</string>
|
||||
<string name="TypeMessage">Wiadomość</string>
|
||||
<string name="SlideToCancel">PRZESUŃ, BY ANULOWAĆ</string>
|
||||
<string name="SaveToDownloads">Zapisz w pobranych</string>
|
||||
<string name="DeleteGif">Usunąć GIFa?</string>
|
||||
<string name="SaveToMusic">Zapisz w muzyce</string>
|
||||
<string name="ShareFile">Udostępnij</string>
|
||||
<string name="UnsupportedAttachment">Nieobsługiwany załącznik</string>
|
||||
<string name="OpenInBrowser">OTWÓRZ W…</string>
|
||||
<string name="SendItems">Wyślij %1$s</string>
|
||||
<string name="OpenUrlAlert">Otworzyć adres %1$s?</string>
|
||||
<string name="ClearRecentEmoji">Wyczyścić ostatnie emoji?</string>
|
||||
<string name="AddShortcut">Dodaj widget do ekranu głównego</string>
|
||||
<string name="ShortcutAdded">Widget dodany do ekranu głównego</string>
|
||||
<!--notification-->
|
||||
<string name="Reply">Odpowiedz</string>
|
||||
<string name="ReplyToGroup">Odpowiedz grupie %1$s</string>
|
||||
<string name="ReplyToUser">Odpowiedz grupie %1$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Nie ma użytkowników.</string>
|
||||
<string name="TodayAt">o</string>
|
||||
<string name="YesterdayAt">wczoraj o</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Wysłać wiadomości do…</string>
|
||||
<string name="EnterGroupNamePlaceholder">Podaj nazwę grupy</string>
|
||||
<string name="ShareLink">Udostępnij link</string>
|
||||
<!--group info view-->
|
||||
<string name="SharedMedia">Udostępnione media</string>
|
||||
<string name="SETTINGS">Ustawienia</string>
|
||||
<string name="AddMember">Dodaj członka</string>
|
||||
<string name="Notifications">Powiadomienia</string>
|
||||
<string name="RemoveMember">Usuń członka</string>
|
||||
<!--contact info view-->
|
||||
<string name="ShareContact">Udostępnij</string>
|
||||
<string name="AddContact">Dodaj</string>
|
||||
<string name="NewContactTitle">Nowy użytkownik</string>
|
||||
<string name="BlockContact">Zablokuj użytkownika</string>
|
||||
<string name="DeleteContact">Usuń użytkownika</string>
|
||||
<string name="Info">Informacje</string>
|
||||
<!--stickers view-->
|
||||
<string name="Stickers">Naklejki</string>
|
||||
<string name="AddStickers">Dodaj naklejki</string>
|
||||
<string name="AddToStickers">Dodaj do naklejek</string>
|
||||
<string name="AddStickersNotFound">Nie znaleziono naklejek</string>
|
||||
<string name="StickersRemoved">Naklejki zostały usunięte</string>
|
||||
<string name="AddStickersInstalled">Dodano nowe naklejki</string>
|
||||
<string name="StickersHide">Ukryj</string>
|
||||
<string name="StickersShow">Pokaż</string>
|
||||
<string name="StickersShare">Udostępnij</string>
|
||||
<string name="StickersCopy">Kopiuj link</string>
|
||||
<string name="StickersRemove">Usuń</string>
|
||||
<string name="NoStickers">Nie ma naklejek</string>
|
||||
<string name="SendSticker">WYŚLIJ NAKLEJKĘ</string>
|
||||
<!--settings view-->
|
||||
<string name="TextSize">Rozmiar czcionki w wiadomości</string>
|
||||
<string name="EnableAnimations">Animacja przejścia</string>
|
||||
<string name="UnblockContact">Odblokuj użytkownika</string>
|
||||
<string name="NoBlocked">Nie ma zablokowanych użytkowników</string>
|
||||
<string name="NormalMessages">Normalne wiadomości</string>
|
||||
<string name="Alert">Alarm</string>
|
||||
<string name="MessagePreview">Podgląd wiadomości</string>
|
||||
<string name="GroupMessages">Grupowe wiadomości</string>
|
||||
<string name="Sound">Dźwięki</string>
|
||||
<string name="InAppNotifications">Powiadomienia w aplikacji</string>
|
||||
<string name="Vibrate">Wibracje</string>
|
||||
<string name="Reset">Resetuj</string>
|
||||
<string name="ResetAllNotifications">Resetuj wszystkie powiadomienia</string>
|
||||
<string name="NotificationsAndSounds">Powiadomienia i dźwięki</string>
|
||||
<string name="BlockedUsers">Zablokowani użytkownicy</string>
|
||||
<string name="Default">Domyślne</string>
|
||||
<string name="OnlyIfSilent">Tylko jeśli wyciszony</string>
|
||||
<string name="ChatBackground">Tło czatu</string>
|
||||
<string name="SendByEnter">Wyślij wiadomość naciskając Enter</string>
|
||||
<string name="Language">Język</string>
|
||||
<string name="Help">Pomoc</string>
|
||||
<string name="DeleteLocalization">Usunąć lokalizację?</string>
|
||||
<string name="Enabled">Włączone</string>
|
||||
<string name="Disabled">Wyłączone</string>
|
||||
<string name="NotificationsService">Podtrzymywanie usługi</string>
|
||||
<string name="NotificationsServiceInfo">Uruchom ponownie aplikację, gdy zostanie wyłączona przez użytkownika lub przez system. Zapewni to otrzymywanie powiadomień.</string>
|
||||
<string name="NotificationsServiceConnection">Łączenie w tle</string>
|
||||
<string name="NotificationsServiceConnectionInfo">Utrzymuj niski wpływ połączenia w tle, by odbierać powiadomienia. Włącz dla zaufanych powiadomień.</string>
|
||||
<string name="LedColor">Kolor LED-a</string>
|
||||
<string name="BadgeNumber">Pokaż ilość na ikonie, jeśli to możliwe</string>
|
||||
<string name="Short">Krótkie</string>
|
||||
<string name="Long">Długie</string>
|
||||
<string name="SystemDefault">Domyślny systemu</string>
|
||||
<string name="RaiseToSpeak">Odbierz i mów / słuchaj</string>
|
||||
<string name="EditName">Edytuj nazwę</string>
|
||||
<string name="NotificationsPriority">Zobacz</string>
|
||||
<string name="NotificationsPriorityDefault">Normaly priorytet</string>
|
||||
<string name="NotificationsPriorityHigh">Wysoki priorytet</string>
|
||||
<string name="NotificationsPriorityMax">Najwyższy priorytet</string>
|
||||
<string name="RepeatNotifications">Powtarzanie powiadomień co</string>
|
||||
<string name="NotificationsOther">Inny</string>
|
||||
<string name="InChatSound">Dźwięki w czacie</string>
|
||||
<string name="SoundDefault">Domyślne</string>
|
||||
<string name="VibrationDefault">Domyślne</string>
|
||||
<string name="SmartNotifications">Limit powiadomień</string>
|
||||
<string name="SmartNotificationsInfo">Dźwięk, co najwyżej %1$s w ciągu %2$s</string>
|
||||
<string name="SmartNotificationsSoundAtMost">Dźwięk, co najwyżej</string>
|
||||
<string name="SmartNotificationsTimes">razy</string>
|
||||
<string name="SmartNotificationsWithin">w ciągu</string>
|
||||
<string name="SmartNotificationsMinutes">minut</string>
|
||||
<string name="DirectShare">Bezpośrednie udostępnianie</string>
|
||||
<string name="DirectShareInfo">Pokaż ostatnie czaty w menu udostępniania</string>
|
||||
<!--cache view-->
|
||||
<string name="CacheSettings">Pamięć</string>
|
||||
<string name="LocalDatabase">Lokalna baza danych</string>
|
||||
<string name="LocalDatabaseClear">Wyczyścić zbuforowane wiadomości?</string>
|
||||
<string name="LocalDatabaseInfo">Wyczyszczenie lokalnej bazy danych spowoduje usunięcie tekstów zbuforowanych wiadomości i skompresowanie bazy, by zaoszczędzić miejsce w pamięci wewnętrznej. Aplikacja do działania potrzebuje niektórych danych, więc rozmiar bazy danych nie osiągnie zero.
|
||||
|
||||
Operacja ta może potrwać kilka minut.</string>
|
||||
<string name="ClearMediaCache">Wyczyść pamięć podręczną</string>
|
||||
<string name="CacheClear">Wyczyść</string>
|
||||
<string name="LocalDocumentCache">Dokumenty</string>
|
||||
<string name="LocalPhotoCache">Zdjęcia</string>
|
||||
<string name="LocalAudioCache">Wiadomości głosowe</string>
|
||||
<string name="LocalVideoCache">Wideo</string>
|
||||
<string name="LocalMusicCache">Muzyka</string>
|
||||
<string name="LocalCache">Inne pliki</string>
|
||||
<string name="CacheEmpty">Pusty</string>
|
||||
<string name="KeepMedia">Przechowywanie multimediów</string>
|
||||
<string name="KeepMediaInfo">Zdjęcia, wideo i inne pliki z czatów w chmurze <b>nie używane</b> w tym okresie zostaną usunięte z urządzenia, by zaoszczędzić miejsce w pamięci.</string>
|
||||
<string name="KeepMediaForever">Na zawsze</string>
|
||||
<!--passcode view-->
|
||||
<string name="Passcode">Blokada kodem dostępu</string>
|
||||
<string name="ChangePasscode">Zmień kod dostępu</string>
|
||||
<string name="ChangePasscodeInfo">Po skonfigurowaniu dodatkowego kodu dostępu, na stronie czatów pojawi się ikona kłódki. Dotknij ją, aby zablokować lub odblokować aplikację.
|
||||
|
||||
Uwaga! Jeśli zapomnisz kod dostępu, musisz usunąć i ponownie zainstalować aplikację.</string>
|
||||
<string name="PasscodePIN">PIN</string>
|
||||
<string name="PasscodePassword">Hasło</string>
|
||||
<string name="EnterCurrentPasscode">Wprowadź aktualny kod dostępu</string>
|
||||
<string name="EnterNewFirstPasscode">Wprowadź kod dostępu</string>
|
||||
<string name="EnterNewPasscode">Wprowadź nowy kod dostępu</string>
|
||||
<string name="EnterYourPasscode">Wprowadź kod dostępu</string>
|
||||
<string name="ReEnterYourPasscode">Powtórz nowy kod dostępu</string>
|
||||
<string name="PasscodeDoNotMatch">Hasła są niezgodne</string>
|
||||
<string name="AutoLock">Automatyczna blokada</string>
|
||||
<string name="AutoLockInfo">Wymagaj kodu dostępu po dłuższej nieaktywności.</string>
|
||||
<string name="AutoLockInTime">za %1$s</string>
|
||||
<string name="UnlockFingerprint">Odblokuj odciskiem palca</string>
|
||||
<string name="FingerprintInfo">Potwierdź odcisk palca, aby kontynuować</string>
|
||||
<string name="FingerprintHelp">Czujnik dotykowy</string>
|
||||
<string name="FingerprintNotRecognized">Odcisk palca nie rozpoznany. Spróbuj ponownie</string>
|
||||
<!--photo gallery view-->
|
||||
<string name="ShowAllMedia">Pokaż wszystkie multimedia</string>
|
||||
<string name="SaveToGallery">Zapisz w galerii</string>
|
||||
<string name="Of">%1$d z %2$d</string>
|
||||
<string name="Gallery">Galeria</string>
|
||||
<string name="AllPhotos">Wszystkie zdjęcia</string>
|
||||
<string name="AllVideo">Wszystkie wideo</string>
|
||||
<string name="NoPhotos">Nie ma zdjęć</string>
|
||||
<string name="NoVideo">Nie ma jeszcze wideo</string>
|
||||
<string name="PleaseDownload">Pobierz najpierw multimedia</string>
|
||||
<string name="NoRecentPhotos">Nie ma wcześniejszych zdjęć</string>
|
||||
<string name="NoRecentGIFs">Nie ma wcześniejszych GIFów</string>
|
||||
<string name="SearchImages">SZUKAJ OBRAZY</string>
|
||||
<string name="SearchImagesInfo">W INTERNECIE</string>
|
||||
<string name="SearchGifs">SZUKAJ GIFY</string>
|
||||
<string name="SearchImagesTitle">Przeszukaj internet</string>
|
||||
<string name="SearchGifsTitle">Szukaj GIFy</string>
|
||||
<string name="CropImage">Przytnij zdjęcie</string>
|
||||
<string name="EditImage">Edytuj zdjęcie</string>
|
||||
<string name="Enhance">Ulepszenie</string>
|
||||
<string name="Highlights">Wyróżnienia</string>
|
||||
<string name="Contrast">Kontrast</string>
|
||||
<string name="Exposure">Ekspozycja</string>
|
||||
<string name="Warmth">Ciepło</string>
|
||||
<string name="Saturation">Saturacja</string>
|
||||
<string name="Vignette">Winieta</string>
|
||||
<string name="Shadows">Cienie</string>
|
||||
<string name="Grain">Ziarno</string>
|
||||
<string name="Sharpen">Wyostrzenie</string>
|
||||
<string name="Fade">Zanikanie</string>
|
||||
<string name="Tint">Odcień</string>
|
||||
<string name="TintShadows">CIENIE</string>
|
||||
<string name="TintHighlights">WYRÓŻNIENIA</string>
|
||||
<string name="Curves">Krzywe</string>
|
||||
<string name="CurvesAll">WSZYSTKIE</string>
|
||||
<string name="CurvesRed">CZERWONE</string>
|
||||
<string name="CurvesGreen">ZIELONE</string>
|
||||
<string name="CurvesBlue">NIEBIESKIE</string>
|
||||
<string name="Blur">Rozmycie</string>
|
||||
<string name="BlurOff">Wyłączone</string>
|
||||
<string name="BlurLinear">Liniowe</string>
|
||||
<string name="BlurRadial">Radialne</string>
|
||||
<string name="DiscardChanges">Odrzucić zmiany?</string>
|
||||
<string name="ClearSearch">Wyczyścić historię wyszukiwania?</string>
|
||||
<string name="ClearButton">Wyczyść</string>
|
||||
<string name="PickerPhotos">Zdjęcia</string>
|
||||
<string name="PickerVideo">Wideo</string>
|
||||
<string name="AddCaption">Dodaj podpis…</string>
|
||||
<string name="PhotoCaption">Podpis zdjęcia</string>
|
||||
<string name="VideoCaption">Podpis wideo</string>
|
||||
<string name="Caption">Podpis</string>
|
||||
<!--privacy settings-->
|
||||
<string name="PrivacySettings">Prywatność i bezpieczeństwo</string>
|
||||
<string name="PrivacyTitle">Prywatność</string>
|
||||
<string name="SecurityTitle">Bezpieczeństwo</string>
|
||||
<!--edit video view-->
|
||||
<string name="EditVideo">Edycja wideo</string>
|
||||
<string name="OriginalVideo">Oryginalne wideo</string>
|
||||
<string name="EditedVideo">Edytowane wideo</string>
|
||||
<string name="SendingVideo">Wysyłanie wideo…</string>
|
||||
<string name="CompressVideo">Kompresuj wideo</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Dalej</string>
|
||||
<string name="Back">Wstecz</string>
|
||||
<string name="Done">Gotowe</string>
|
||||
<string name="Open">Otwórz</string>
|
||||
<string name="Save">Zapisz</string>
|
||||
<string name="Cancel">Anuluj</string>
|
||||
<string name="Close">Zamknij</string>
|
||||
<string name="Add">Dodaj</string>
|
||||
<string name="Edit">Edytuj</string>
|
||||
<string name="Send">Wyślij</string>
|
||||
<string name="CopyToClipboard">Kopiuj do schowka</string>
|
||||
<string name="Delete">Usuń</string>
|
||||
<string name="Forward">Przekaż</string>
|
||||
<string name="Retry">Spróbuj ponownie</string>
|
||||
<string name="FromCamera">Z kamery</string>
|
||||
<string name="FromGalley">Z galerii</string>
|
||||
<string name="DeletePhoto">Usuń zdjęcie</string>
|
||||
<string name="Set">Ustaw</string>
|
||||
<string name="OK">OK</string>
|
||||
<string name="Crop">PRZYTNIJ</string>
|
||||
<!--messages-->
|
||||
<string name="AttachPhoto">Zdjęcie</string>
|
||||
<string name="AttachVideo">Wideo</string>
|
||||
<string name="AttachGif">GIF</string>
|
||||
<string name="AttachLocation">Lokalizacja</string>
|
||||
<string name="AttachContact">Kontakt</string>
|
||||
<string name="AttachDocument">Plik</string>
|
||||
<string name="AttachSticker">naklejka</string>
|
||||
<string name="AttachAudio">Wiadomość głosowa</string>
|
||||
<string name="FromSelf">Ja</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Wczytywanie…</string>
|
||||
<string name="NoPlayerInstalled">Nie masz odtwarzacza wideo. Zainstaluj jakiś, aby kontynuować.</string>
|
||||
<string name="NoHandleAppInstalled">Nie masz aplikacji obsługujących pliki typu „%1$s”. Zainstaluj jakąś, aby kontynuować.</string>
|
||||
<string name="AddToTheGroupTitle">Dodać %1$s do czatu %2$s?</string>
|
||||
<string name="AddToTheGroup">Dodać %1$s do grupy?</string>
|
||||
<string name="UserAlreadyInGroup">Ten użytkownik jest już w tej grupie</string>
|
||||
<string name="ForwardMessagesTo">Przekazać wybrane wiadomości do <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendMessagesTo">Wysłać wiadomość do <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendContactTo">Wysłać kontakt do użytkownika %1$s?</string>
|
||||
<string name="AreYouSureDeleteAndExit">Opuścić grupę? Nie będziesz już otrzymywać wiadomości od grupy.</string>
|
||||
<string name="AreYouSureDeleteThisChat">Usunąć ten czat? Czat nie będzie widoczny na liście czatów, wiadomości pozostaną na serwerze.</string>
|
||||
<string name="ShareYouLocationUnable">Aplikacja nie była w stanie określić twojej aktualnej lokalizacji</string>
|
||||
<string name="ShareYouLocationUnableManually">Wybierz ręcznie</string>
|
||||
<string name="AreYouSureBlockContact">Czy na pewno chcesz zablokować tego użytkownika?</string>
|
||||
<string name="AreYouSureDeleteContact">Czy na pewno chcesz usunąć tego użytkownika?</string>
|
||||
<string name="RaiseToSpeakAlert">Czy chcesz włączyć funkcję „Odbierz i mów / słuchaj” dla wiadomości głosowych?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Aby można było łączyć się ze znajomymi na wszystkich urządzeniach, Delta Chat musi mieć dostęp do listy kontaktów.</string>
|
||||
<string name="PermissionStorage">Aby wysyłać i zapisywać zdjęcia, wideo, muzykę i inne multimedia, Delta Chat musi mieć dostęp do pamięci.</string>
|
||||
<string name="PermissionNoAudio">Aby wysyłać wiadomości głosowe Delta Chat musi mieć dostęp do mikrofonu.</string>
|
||||
<string name="PermissionOpenSettings">Ustawienia</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
<string name="Intro1Message">Komunikator o <![CDATA[<b>największym zasięgu</b>]]> na świecie.<![CDATA[<br/><b>Darmowy</b>]]> i <![CDATA[<b>bezpieczny</b>]]>.</string>
|
||||
|
||||
<string name="Intro2Headline">Niezależny</string>
|
||||
<string name="Intro2Message"><![CDATA[<b>Niezależny</b>]]> od obcych komputerów i usług. Aplikacja wykorzystuje tylko twój serwer e-mail.</string>
|
||||
|
||||
<string name="Intro3Headline">Szybki</string>
|
||||
<string name="Intro3Message"><![CDATA[<b>Wiadomości push</b>]]> w kilka sekund.<![CDATA[<br/>]]>Szybki interfejs.</string>
|
||||
|
||||
<string name="Intro4Headline">Potężny</string>
|
||||
<string name="Intro4Message"><![CDATA[<b>Nieograniczone</b>]]> czaty, obrazy, filmy, wiadomości audio i wiele innych. Sprawny multi-klient.</string>
|
||||
|
||||
<string name="Intro5Headline">Darmowy</string>
|
||||
<string name="Intro5Message"><![CDATA[<b>Delta Chat</b>]]> jest zawsze darmowy.<![CDATA[<br/>]]>Otwarto źródłowy. Bez reklam. Bez abonamentu. No vendor lock-in. (Brak sprzedawców umowy o wyłączności ???)</string>
|
||||
|
||||
<string name="Intro6Headline">Bezpieczny</string>
|
||||
<string name="Intro6Message"><![CDATA[<b>Zaszyfrowany</b>]]> za pomocą wszystkich typowych algorytmów. Wiadomości pozostają na swoich serwerach.</string>
|
||||
|
||||
<string name="Intro7Headline">Godny zaufania</string>
|
||||
|
||||
<string name="IntroStartMessaging">Uruchom komunikator</string>
|
||||
<!--plural-->
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d członek</item>
|
||||
<item quantity="few">%d członków</item>
|
||||
<item quantity="other">%d członków</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d kontakt</item>
|
||||
<item quantity="few">kontaktów - %d</item>
|
||||
<item quantity="other">kontaktów - %d</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">Ja i %d członek</item>
|
||||
<item quantity="few">Ja i %d członków</item>
|
||||
<item quantity="other">Ja i %d członków</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nowa wiadomość</item>
|
||||
<item quantity="few">%d nowe wiadomości</item>
|
||||
<item quantity="other">%d nowych wiadomości</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d wiadomość</item>
|
||||
<item quantity="few">%d wiadomości</item>
|
||||
<item quantity="other">%d wiadomości</item>
|
||||
</plurals>
|
||||
<plurals name="AreYouSureDeleteMessages">
|
||||
<item quantity="one">Usunąć %d wiadomość? Wiadomość zostanie usunięta również z serwera.</item>
|
||||
<item quantity="few">Usunąć %d wiadomości? Wiadomości zostaną usunięte również z serwera.</item>
|
||||
<item quantity="other">Usunąć %d wiadomości? Wiadomości zostaną usunięte również z serwera.</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessagesInChats">
|
||||
<item quantity="one">%1$s w %2$d czacie</item>
|
||||
<item quantity="few">%1$s w %2$d czatach</item>
|
||||
<item quantity="other">%1$s w %2$d czatach</item>
|
||||
</plurals>
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d czat</item>
|
||||
<item quantity="few">%d czaty</item>
|
||||
<item quantity="other">czatów - %d</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minuta</item>
|
||||
<item quantity="few">%d min.</item>
|
||||
<item quantity="other">%d min.</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d godzina</item>
|
||||
<item quantity="few">%d godz.</item>
|
||||
<item quantity="other">%d godz.</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d dzień</item>
|
||||
<item quantity="few">%d dni</item>
|
||||
<item quantity="other">%d dni</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d tydzień</item>
|
||||
<item quantity="few">%d tyg.</item>
|
||||
<item quantity="other">%d tyg.</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d miesiąc</item>
|
||||
<item quantity="few">%d mies.</item>
|
||||
<item quantity="other">%d mies.</item>
|
||||
</plurals>
|
||||
<plurals name="MaxNotifications">
|
||||
<item quantity="one">Najwyżej %1$d powiadomienie w ciągu %2$s</item>
|
||||
<item quantity="few">Najwyżej %1$d powiadomienia w ciągu %2$s</item>
|
||||
<item quantity="other">Najwyżej %1$d powiadomień w ciągu %2$s</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">dd MMM</string>
|
||||
<string name="formatterYear">dd.MM.yyyy</string>
|
||||
<string name="chatDate">EEE, d MMMM</string>
|
||||
<string name="chatFullDate">EEE, d MMMM yyyy</string>
|
||||
<string name="formatterWeek">EEE</string>
|
||||
<string name="formatterDay24H">HH:mm</string>
|
||||
<string name="formatterDay12H">h:mm a</string>
|
||||
<string name="formatDateAtTime">%1$s o %2$s</string>
|
||||
<string name="AccountSettings">Ustawienia konta</string>
|
||||
<string name="MyAccount">Moje konto</string>
|
||||
<string name="Yes">Tak</string>
|
||||
<string name="No">Nie</string>
|
||||
<string name="MyName">Moja nazwa</string>
|
||||
<string name="MyNameExplain">Twoja nazwa, pokazywana odbiorcom.
|
||||
|
||||
Jeśli nie wprowadzisz nazwy, odbiorcy będą widzieć tylko twój adres e-mail z ustawień konta.</string>
|
||||
<string name="MyEmailAddress">Mój adres e-mail</string>
|
||||
<string name="Password">Hasło</string>
|
||||
<string name="SmtpPassword">SMTP hasło</string>
|
||||
<string name="FromAbove">jak powyżej</string>
|
||||
<string name="SmtpLoginname">SMTP nazwa użytkownika</string>
|
||||
<string name="SmtpPort">SMTP port</string>
|
||||
<string name="Automatic">atomatycznie</string>
|
||||
<string name="ImapServer">IMAP serwer</string>
|
||||
<string name="ImapLoginname">IMAP nazwa użytkownika</string>
|
||||
<string name="SmtpServer">SMTP serwer</string>
|
||||
<string name="ImapPort">IMAP port</string>
|
||||
<string name="InboxHeadline">Skrzynka odbiorcza</string>
|
||||
<string name="OutboxHeadline">Skrzynka nadawcza</string>
|
||||
<string name="BasicSettings">Ustawienia podstawowe</string>
|
||||
<string name="MyAccountExplain">Dla znanych dostawców usług poczty elektronicznej ponisze ustawienia są określane automatycznie.</string>
|
||||
<string name="MyAccountExplain2" >Czasami IMAP / SMTP musi być włączony w interfejsie www poczty internetowej.
|
||||
Z problemami należy zwrócić się do usługodawcy e-mail lub znajomym.</string>
|
||||
<string name="AccountNotConfigured">Konto nie jest skonfigurowane</string>
|
||||
<string name="AboutThisProgram">O Delta Chat</string>
|
||||
<string name="NotSet">Nie ustawiony</string>
|
||||
<string name="NewChat">Nowy czat</string>
|
||||
<string name="Deaddrop">Skrzynka pocztowa</string>
|
||||
<string name="Media">Multimedia</string>
|
||||
<string name="DeaddropInChatlist">Pokaż skrzynkę pocztową na liście czatów</string>
|
||||
<string name="MuteAlways">Zawsze wyłączone</string>
|
||||
<string name="AskStartChatWith">Rozpocząć czat z <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Aby rozpocząć czat, naciśnij na strzałkę odpowiedzi.</string>
|
||||
<string name="NotYetImplemented">Ta funkcja jest niedostępna lub niekompletna.</string>
|
||||
<string name="DefaultStatusText">Wysłane z komunikatora Delta Chat</string>
|
||||
<string name="SubjectPrefix">Wiadomości błyskawiczne</string>
|
||||
<string name="SeachUser">Szukaj użytkownika</string>
|
||||
<string name="Name" >Nazwa</string>
|
||||
<string name="EmailAddress">Adres e-mail</string>
|
||||
<string name="CannotDeleteContact">Nie możesz usunąć użytkowników w użyciu, zamiast tego zablokuj użytkownika.</string>
|
||||
<string name="BadEmailAddress">Zły adres e-mail</string>
|
||||
<string name="ContactDeleted">Użytkownik usunięty.</string>
|
||||
<string name="ContactCreated">Użytkownik utworzony.</string>
|
||||
<string name="ViewProfile">Pokaż profil</string>
|
||||
<string name="OneMomentPlease">Jedną chwilę, proszę…</string>
|
||||
<string name="CannotDeleteChat">Nie można usunąć czatu.</string>
|
||||
<string name="NoChatsHelp">Zacznij przesyłanie wiadomości, naciskając przycisk nowej wiadomości w prawym dolnym rogu lub naciśnij przycisk menu, aby uzyskać więcej opcji.</string>
|
||||
<string name="ConfiguringAccount">Konfigurowanie konta…</string>
|
||||
<string name="CannotConnect">Nie można nawiązać połączenia, sprawdź konfigurację.</string>
|
||||
<string name="Intro7Message"><![CDATA[<b>Delta Chat</b>]]> jest bezpieczny dla zastosowań biznesowych, zgodny i oparty na standardach.</string>
|
||||
<string name="InviteMenuEntry">Wyślij zaproszenia</string>
|
||||
<string name="InviteText">Teraz używam komunikatora Delta Chat - %1$s - możesz pisać do mnie na %2$s</string>
|
||||
<string name="AdvancedSettings">Usywienia zaawansowane</string>
|
||||
<string name="AskResetNotifications" >Zresetować wszystkie ustawienia powiadomień i dźwięków na tej stronie oraz dla swoich kontaktów i grup?</string>
|
||||
<string name="AttachFiles">Załącz pliki</string>
|
||||
<string name="Chats">Czaty</string>
|
||||
<string name="ErrGroupNameEmpty">Podaj nazwę dla grupy</string>
|
||||
<string name="MsgNewGroupDraftHint">Napisz pierwszą wiadomość, by inni mogli odpowiedzieć w tej grupie.
|
||||
|
||||
• Nie ma problemu, jeśli nie wszyscy członkowie korzystają z Delta Chat.
|
||||
|
||||
• Dostarczenie pierwszej wiadomości może chwilę potrwać.</string>
|
||||
<string name="MsgNewGroupDraft">Witam, właśnie utworzyłem dla nas grupę \"%1$s\".</string>
|
||||
<string name="MsgGroupNameChanged">Zmieniono nazwę grupy z \"%1$s\" na \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">Zmieniono obraz grupy.</string>
|
||||
<string name="MsgMemberAddedToGroup">Dodano członka %1$s</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Usunięto członka %1$s</string>
|
||||
<string name="AskAddMemberToGroup">Dodać użytkownika <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> do grupy?</string>
|
||||
<string name="AskRemoveMemberFromGroup">Usunąć użytkownika <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> z grupy?</string>
|
||||
<string name="ErrSelfNotInGroup">Musisz być członkiem grupy, aby wykonać tę czynność.</string>
|
||||
<string name="MsgGroupLeft">Grupa opuszczona.</string>
|
||||
<string name="NoMessagesHint">Wyślij wiadomość do <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>:
|
||||
|
||||
• Nie ma problemu, jeśli <![CDATA[<b>]]>%2$s<![CDATA[</b>]]> nie używa Delta Chat.
|
||||
|
||||
• Dostarczenie pierwszej wiadomości może chwilę potrwać.</string>
|
||||
<string name="SendNRcvReadReceipts">Odbieraj i wysyłaj potwierdzenia odczytu</string>
|
||||
<string name="E2EEncryption">Pełne szyfrowanie</string>
|
||||
<string name="E2EManagePrivateKeys">Zarządzaj prywatnymi kluczami</string>
|
||||
<string name="E2ECompareKeys">Porównaj klucze</string>
|
||||
<string name="ResetUserKey">Resetuj klucz użytkownika</string>
|
||||
<string name="ForwardToTitle">Przekaż do…</string>
|
||||
</resources>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--https://www.transifex.com/projects/p/telegram/language/pt_PT/members/-->
|
||||
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<resources>
|
||||
<string name="AppName">Delta Chat</string>
|
||||
<string name="LanguageName">Português</string>
|
||||
<string name="LanguageNameInEnglish">Portuguese</string>
|
||||
@@ -13,16 +13,14 @@
|
||||
<string name="Yesterday">ontem</string>
|
||||
<string name="NoResult">Nenhum resultado</string>
|
||||
<string name="NoChats">Ainda não há chats.</string>
|
||||
<string name="WaitingForNetwork">Aguardando rede...</string>
|
||||
<string name="Connecting">Conectando...</string>
|
||||
<string name="Updating">Atualizando...</string>
|
||||
<string name="WaitingForNetwork">Aguardando rede…</string>
|
||||
<string name="Connecting">Conectando…</string>
|
||||
<string name="Updating">Atualizando…</string>
|
||||
<string name="DeleteChat">Apagar conversa</string>
|
||||
<string name="SelectChat">Selecione um Chat ...</string>
|
||||
<string name="SelectChat">Selecione um Chat …</string>
|
||||
<string name="Search">Busca</string>
|
||||
<string name="MuteNotifications">Silenciar notificações</string>
|
||||
<string name="MuteFor">Silenciar por %1$s</string>
|
||||
<string name="UnmuteNotifications">Restaurar Som</string>
|
||||
<string name="WillUnmuteIn">Em %1$s</string>
|
||||
<string name="Draft">Rascunho</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Por favor, adicione arquivos à biblioteca de música de seu dispositivo para vê-los aqui.</string>
|
||||
@@ -61,11 +59,9 @@
|
||||
<string name="SaveToMusic">Salvar em músicas</string>
|
||||
<string name="ShareFile">Compartilhar</string>
|
||||
<string name="UnsupportedAttachment">Anexo não suportado</string>
|
||||
<string name="OpenInBrowser">ABRIR EM...</string>
|
||||
<string name="OpenInBrowser">ABRIR EM…</string>
|
||||
<string name="SendItems">Enviar %1$s</string>
|
||||
<string name="OpenUrlAlert">Abrir URL em %1$s?</string>
|
||||
<string name="MoreInfo">Mais informações</string>
|
||||
<string name="ShareSendTo">Enviar para...</string>
|
||||
<string name="ClearRecentEmoji">Limpar emojis recentes?</string>
|
||||
<string name="AddShortcut">Adicionar atalho</string>
|
||||
<string name="ShortcutAdded">Atalho adicionado à tela de início</string>
|
||||
@@ -73,15 +69,12 @@
|
||||
<string name="Reply">Responder</string>
|
||||
<string name="ReplyToGroup">Responder para %1$s</string>
|
||||
<string name="ReplyToUser">Responder para %1$s</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Ainda não há contatos</string>
|
||||
<string name="TodayAt">às</string>
|
||||
<string name="YesterdayAt">ontem às</string>
|
||||
<string name="LastSeen">visto</string>
|
||||
<string name="LastSeenDate">visto</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Enviar mensagem para...</string>
|
||||
<string name="SendMessageTo">Enviar mensagem para…</string>
|
||||
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
|
||||
<string name="ShareLink">Compartilhar Link</string>
|
||||
<!--group info view-->
|
||||
@@ -128,7 +121,7 @@
|
||||
<string name="NotificationsAndSounds">Notificações e Sons</string>
|
||||
<string name="BlockedUsers">Usuários bloqueados</string>
|
||||
<string name="Default">Padrão</string>
|
||||
<string name="OnlyIfSilent">Somente no silencioso </string>
|
||||
<string name="OnlyIfSilent">Somente no silencioso</string>
|
||||
<string name="ChatBackground">Papel de Parede</string>
|
||||
<string name="SendByEnter">Enviar usando \'Enter\'</string>
|
||||
<string name="Language">Idioma</string>
|
||||
@@ -247,7 +240,7 @@
|
||||
<string name="ClearButton">Limpar</string>
|
||||
<string name="PickerPhotos">Fotos</string>
|
||||
<string name="PickerVideo">Vídeo</string>
|
||||
<string name="AddCaption">Adicionar legenda...</string>
|
||||
<string name="AddCaption">Adicionar legenda…</string>
|
||||
<string name="PhotoCaption">Legenda da Foto</string>
|
||||
<string name="VideoCaption">Legenda do Vídeo</string>
|
||||
<string name="Caption">Legenda</string>
|
||||
@@ -259,7 +252,7 @@
|
||||
<string name="EditVideo">Editar Vídeo</string>
|
||||
<string name="OriginalVideo">Vídeo Original</string>
|
||||
<string name="EditedVideo">Vídeo Editado</string>
|
||||
<string name="SendingVideo">Enviando vídeo...</string>
|
||||
<string name="SendingVideo">Enviando vídeo…</string>
|
||||
<string name="CompressVideo">Compactar Vídeo</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Próximo</string>
|
||||
@@ -293,11 +286,11 @@
|
||||
<string name="AttachAudio">Mensagem de voz</string>
|
||||
<string name="FromSelf">Você</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Carregando...</string>
|
||||
<string name="Loading">Carregando…</string>
|
||||
<string name="NoPlayerInstalled">Você não possui um reprodutor de vídeo, instale um para continuar</string>
|
||||
<string name="NoHandleAppInstalled">Você não possui um aplicativo que suporte o tipo de arquivo \'%1$s\', por favor instale um para continuar</string>
|
||||
<string name="AddToTheGroupTitle">Adcione %1$s ao chat %2$s?</string>
|
||||
<string name="AskAddMemberToGroup">Adicionar <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> no grupo?</string>
|
||||
<string name="AskAddMemberToGroup">Adicionar <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> ao grupo?</string>
|
||||
<string name="UserAlreadyInGroup">Este usuário já está neste grupo</string>
|
||||
<string name="ForwardMessagesTo">Encaminhar mensagem para <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendMessagesTo">Enviar mensagens para <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
@@ -308,132 +301,75 @@
|
||||
<string name="ShareYouLocationUnableManually">Escolher manualmente</string>
|
||||
<string name="AreYouSureBlockContact">Você tem certeza que deseja bloquear este contato?</string>
|
||||
<string name="AreYouSureDeleteContact">Você tem certeza que deseja apagar este contato?</string>
|
||||
<string name="AreYouSureDeleteMessages">Você tem certeza que deseja apagar %1$s?</string>
|
||||
<string name="RaiseToSpeakAlert">Gostaria de habilitar o \"Levantar para Falar\" para mensagens de voz?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat precisa acessar seus contatos para que você possa se conectar aos seus amigos em todos os seus dispositivos.</string>
|
||||
<string name="PermissionStorage">Delta Chat precisa acessar seu armazenamento para que você possa enviar e salvar fotos, vídeos, músicas e outras mídias.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat precisa acessar seu microfone para que você possa enviar mensagens de voz.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat precisa acessar sua localização para que você possa compartilhar com seus amigos.</string>
|
||||
<string name="PermissionNoLocationPosition">O Delta Chat precisa acessar sua localização</string>
|
||||
<string name="PermissionOpenSettings">Configurações</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
<string name="Intro1Message">O aplicativo com o <![CDATA[<b>]]>maior número de usuários<![CDATA[</b>]]> do mundo.<br/><b>Grátis</b> e <b>seguro</b>.</string>
|
||||
|
||||
<string name="Intro2Headline">Independente</string>
|
||||
<string name="Intro2Message"><b>Independente</b> de serviços estrangeiros. Este aplicativo só precisa de um e-mail para funcionar.</string>
|
||||
|
||||
<string name="Intro3Headline">Rápido</string>
|
||||
<string name="Intro3Message"><b>Envie mensagens</b> num átimo.<br/> Interface leve.</string>
|
||||
|
||||
<string name="Intro4Headline">Poderoso</string>
|
||||
<string name="Intro4Message"><b>Sem limites</b> para chats, imagens, vídeos, áudio e mais. Multicliente.</string>
|
||||
|
||||
<string name="Intro5Headline">Grátis</string>
|
||||
<string name="Intro5Message"><b>Delta Chat</b> será sempre grátis, de Código livre e sem propagandas.</string>
|
||||
|
||||
<string name="Intro6Headline">Seguro</string>
|
||||
<string name="Intro6Message"><b>Criptografia</b> com as tecnologias mais usadas. Suas mensagens ficam no servidor de e-mail.</string>
|
||||
|
||||
<string name="Intro7Headline">Confiável</string>
|
||||
|
||||
<string name="IntroStartMessaging">Comece a conversar</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d membros</string>
|
||||
<string name="Members_one">%1$d membro</string>
|
||||
<string name="Members_two">%1$d membros</string>
|
||||
<string name="Members_few">%1$d membros</string>
|
||||
<string name="Members_many">%1$d membros</string>
|
||||
<string name="Members_other">%1$d membros</string>
|
||||
<string name="NewMessages_zero">sem novas mensagens</string>
|
||||
<string name="NewMessages_one">%1$d nova mensagem</string>
|
||||
<string name="NewMessages_two">%1$d novas mensagens</string>
|
||||
<string name="NewMessages_few">%1$d novas mensagens</string>
|
||||
<string name="NewMessages_many">%1$d novas mensagens</string>
|
||||
<string name="NewMessages_other">%1$d novas mensagens</string>
|
||||
<string name="messages_zero">sem mensagens</string>
|
||||
<string name="messages_one">%1$d mensagem</string>
|
||||
<string name="messages_two">%1$d mensagens</string>
|
||||
<string name="messages_few">%1$d mensagens</string>
|
||||
<string name="messages_many">%1$d mensagens</string>
|
||||
<string name="messages_other">%1$d mensagens</string>
|
||||
<string name="items_zero">nenhum item</string>
|
||||
<string name="items_one">%1$d item</string>
|
||||
<string name="items_two">%1$d itens</string>
|
||||
<string name="items_few">%1$d itens</string>
|
||||
<string name="items_many">%1$d itens</string>
|
||||
<string name="items_other">%1$d itens</string>
|
||||
<string name="FromChats_zero">de nenhum chat</string>
|
||||
<string name="FromChats_one">de %1$d chat</string>
|
||||
<string name="FromChats_two">de %1$d chats</string>
|
||||
<string name="FromChats_few">de %1$d chats</string>
|
||||
<string name="FromChats_many">de %1$d chats</string>
|
||||
<string name="FromChats_other">de %1$d chats</string>
|
||||
<string name="Seconds_zero">%1$d segundos</string>
|
||||
<string name="Seconds_one">%1$d segundo</string>
|
||||
<string name="Seconds_two">%1$d segundos</string>
|
||||
<string name="Seconds_few">%1$d segundos</string>
|
||||
<string name="Seconds_many">%1$d segundos</string>
|
||||
<string name="Seconds_other">%1$d segundos</string>
|
||||
<string name="Minutes_zero">%1$d minutos</string>
|
||||
<string name="Minutes_one">%1$d minuto</string>
|
||||
<string name="Minutes_two">%1$d minutos</string>
|
||||
<string name="Minutes_few">%1$d minutos</string>
|
||||
<string name="Minutes_many">%1$d minutos</string>
|
||||
<string name="Minutes_other">%1$d minutos</string>
|
||||
<string name="Hours_zero">%1$d horas</string>
|
||||
<string name="Hours_one">%1$d hora</string>
|
||||
<string name="Hours_two">%1$d horas</string>
|
||||
<string name="Hours_few">%1$d horas</string>
|
||||
<string name="Hours_many">%1$d horas</string>
|
||||
<string name="Hours_other">%1$d horas</string>
|
||||
<string name="Days_zero">%1$d dias</string>
|
||||
<string name="Days_one">%1$d dia</string>
|
||||
<string name="Days_two">%1$d dias</string>
|
||||
<string name="Days_few">%1$d dias</string>
|
||||
<string name="Days_many">%1$d dias</string>
|
||||
<string name="Days_other">%1$d dias</string>
|
||||
<string name="Weeks_zero">%1$d semanas</string>
|
||||
<string name="Weeks_one">%1$d semana</string>
|
||||
<string name="Weeks_two">%1$d semanas</string>
|
||||
<string name="Weeks_few">%1$d semanas</string>
|
||||
<string name="Weeks_many">%1$d semanas</string>
|
||||
<string name="Weeks_other">%1$d semanas</string>
|
||||
<string name="Months_zero">%1$d meses</string>
|
||||
<string name="Months_one">%1$d mês</string>
|
||||
<string name="Months_two">%1$d meses</string>
|
||||
<string name="Months_few">%1$d meses</string>
|
||||
<string name="Months_many">%1$d meses</string>
|
||||
<string name="Months_other">%1$d meses</string>
|
||||
<string name="Years_zero">%1$d anos</string>
|
||||
<string name="Years_one">%1$d ano</string>
|
||||
<string name="Years_two">%1$d anos</string>
|
||||
<string name="Years_few">%1$d anos</string>
|
||||
<string name="Years_many">%1$d anos</string>
|
||||
<string name="Years_other">%1$d anos</string>
|
||||
<string name="Users_zero">%1$d usuários</string>
|
||||
<string name="Users_one">%1$d usuário</string>
|
||||
<string name="Users_two">%1$d usuários</string>
|
||||
<string name="Users_few">%1$d usuários</string>
|
||||
<string name="Users_many">%1$d usuários</string>
|
||||
<string name="Users_other">%1$d usuários</string>
|
||||
<string name="Times_zero">%1$d vezes</string>
|
||||
<string name="Times_one">%1$d vez</string>
|
||||
<string name="Times_two">%1$d vezes</string>
|
||||
<string name="Times_few">%1$d vezes</string>
|
||||
<string name="Times_many">%1$d vezes</string>
|
||||
<string name="Times_other">%1$d vezes</string>
|
||||
<string name="Meters_zero">%1$d metros</string>
|
||||
<string name="Meters_one">%1$d metro</string>
|
||||
<string name="Meters_two">%1$d metros</string>
|
||||
<string name="Meters_few">%1$d metros</string>
|
||||
<string name="Meters_many">%1$d metros</string>
|
||||
<string name="Meters_other">%1$d metros</string>
|
||||
<string name="Stickers_zero">%1$d stickers</string>
|
||||
<string name="Stickers_one">%1$d sticker</string>
|
||||
<string name="Stickers_two">%1$d stickers</string>
|
||||
<string name="Stickers_few">%1$d stickers</string>
|
||||
<string name="Stickers_many">%1$d stickers</string>
|
||||
<string name="Stickers_other">%1$d stickers</string>
|
||||
<string name="Photos_zero">%1$d fotos</string>
|
||||
<string name="Photos_one">%1$d foto</string>
|
||||
<string name="Photos_two">%1$d fotos</string>
|
||||
<string name="Photos_few">%1$d fotos</string>
|
||||
<string name="Photos_many">%1$d fotos</string>
|
||||
<string name="Photos_other">%1$d fotos</string>
|
||||
<string name="LastSeenMinutes_zero">visto há %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_one">visto há %1$d minuto</string>
|
||||
<string name="LastSeenMinutes_two">visto há %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_few">visto há %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_many">visto há %1$d minutos</string>
|
||||
<string name="LastSeenMinutes_other">visto há %1$d minutos</string>
|
||||
<string name="LastSeenHours_zero">visto há %1$d horas</string>
|
||||
<string name="LastSeenHours_one">visto há %1$d hora</string>
|
||||
<string name="LastSeenHours_two">visto há %1$d horas</string>
|
||||
<string name="LastSeenHours_few">visto há %1$d horas</string>
|
||||
<string name="LastSeenHours_many">visto há %1$d horas</string>
|
||||
<string name="LastSeenHours_other">visto há %1$d horas</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d membro</item>
|
||||
<item quantity="other">%d membros</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d contato</item>
|
||||
<item quantity="other">%d contatos</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">Eu e %d membro</item>
|
||||
<item quantity="other">Eu e %d membros</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d nova mensagem</item>
|
||||
<item quantity="other">%d novas mensagens</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d mensagem</item>
|
||||
<item quantity="other">%d mensagens</item>
|
||||
</plurals>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minuto</item>
|
||||
<item quantity="other">%d minutos</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d hora</item>
|
||||
<item quantity="other">%d horas</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d dia</item>
|
||||
<item quantity="other">%d dias</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d semana</item>
|
||||
<item quantity="other">%d semanas</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d mês</item>
|
||||
<item quantity="other">%d meses</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">dd MMM</string>
|
||||
@@ -444,9 +380,77 @@
|
||||
<string name="formatterDay24H">HH:mm</string>
|
||||
<string name="formatterDay12H">h:mm a</string>
|
||||
<string name="formatDateAtTime">%1$s às %2$s</string>
|
||||
<string name="AccountSettings">Configurações de conta</string>
|
||||
<string name="MyAccount">Minha conta</string>
|
||||
<string name="Yes">Sim</string>
|
||||
<string name="No">Não</string>
|
||||
<string name="MyName">Meu nome</string>
|
||||
<string name="MyNameExplain">Este nome será exibido aos seus contatos.\n\nSe não inseri-lo os destinatários visualizarão o seu endereço de e-mail.</string>
|
||||
<string name="MyEmailAddress">Meu endereço de e-mail</string>
|
||||
<string name="Password">Senha</string>
|
||||
<string name="SmtpPassword">senha SMTP</string>
|
||||
<string name="FromAbove">de acima</string>
|
||||
<string name="SmtpLoginname">Nome de usuário SMTP</string>
|
||||
<string name="SmtpPort">Porta SMTP</string>
|
||||
<string name="Automatic">automático</string>
|
||||
<string name="ImapServer">Servidor IMAP</string>
|
||||
<string name="ImapLoginname">Nome de login IMAP</string>
|
||||
<string name="SmtpServer">Servidor SMTP</string>
|
||||
<string name="ImapPort">Porta IMAP</string>
|
||||
<string name="InboxHeadline">Caixa de entrada</string>
|
||||
<string name="OutboxHeadline">Caixa de saída</string>
|
||||
<string name="BasicSettings">Configurações básicas</string>
|
||||
<string name="MyAccountExplain">Para servidores de e-mail mais populares as configurações são detectadas automaticamente.</string>
|
||||
<string name="MyAccountExplain2" >Por vezes é necessário habilitar as funcionalidades IMAP/SMTP nas configurações do provedor escolhido.\n\nNão exite em pedir ajuda ao provedor ou aos seus amigos.</string>
|
||||
<string name="AccountNotConfigured">Conta não configurada</string>
|
||||
<string name="AboutThisProgram">Sobre o Delta Chat</string>
|
||||
<string name="NotSet">Não configurado</string>
|
||||
<string name="NewChat">Novo Chat</string>
|
||||
<string name="Deaddrop">Caixa de entrada</string>
|
||||
<string name="Media">Mídias</string>
|
||||
<string name="DeaddropInChatlist">Exibir caixa de entrada na lista de conversas</string>
|
||||
<string name="MuteAlways">Silenciar sempre</string>
|
||||
<string name="AskStartChatWith">Conversar com <b>%1$s</b>?</string>
|
||||
<string name="DeaddropHint">Para conversar clique na seta.</string>
|
||||
<string name="NotYetImplemented">Função ainda não implementada.</string>
|
||||
<string name="DefaultStatusText">Enviado pelo Delta Chat Messenger</string>
|
||||
<string name="SubjectPrefix">Mensagem instantânea</string>
|
||||
<string name="SeachUser">Busca</string>
|
||||
<string name="Name" >Nome</string>
|
||||
<string name="EmailAddress">Endereço de e-mail</string>
|
||||
<string name="CannotDeleteContact">Impossível deletar usuários ativos, bloqueie-os.</string>
|
||||
<string name="BadEmailAddress">E-mail inválido.</string>
|
||||
<string name="ContactDeleted">Usuário deletado.</string>
|
||||
<string name="ContactCreated">Usuário criado.</string>
|
||||
<string name="ViewProfile">Ver perfil</string>
|
||||
<string name="OneMomentPlease">Um momento, por favor…</string>
|
||||
<string name="CannotDeleteChat">Impossível deletar a conversa.</string>
|
||||
<string name="NoChatsHelp">Comece uma conversa pressionando o botão "+" no canto direito inferior. Alternativamente acesse a opção correspondente pelo menu.</string>
|
||||
<string name="ConfiguringAccount">Configurando conta…</string>
|
||||
<string name="CannotConnect">Não conectou! Revise as configurações.</string>
|
||||
<string name="Intro7Message"><b>Delta Chat</b> é seguro para fins comerciais e compatível com os padrões de uso.</string>
|
||||
<string name="InviteMenuEntry">Convidar Amigos</string>
|
||||
<string name="ForwardToTitle">Selecione um Chat ...</string>
|
||||
<string name="InviteText">Agora estou usando o Delta Chat - %1$s - contate-me às %2$s</string>
|
||||
<string name="AdvancedSettings">Configurações avançadas</string>
|
||||
<string name="AskResetNotifications" >Zerar configurações de som e notificação desta página, usuários e grupos?</string>
|
||||
<string name="AttachFiles">Anexar arquivos</string>
|
||||
<string name="Chats">Conversas</string>
|
||||
<string name="ErrGroupNameEmpty">Escolha o nome do grupo.</string>
|
||||
<string name="MsgNewGroupDraftHint">Escreva a primeira mensagem para que os demais possam interagir no grupo.\n\n• Não é necessário que todos usem o Delta Chat.\n\n• A primeira mensagem pode demorar um pouco.</string>
|
||||
<string name="MsgNewGroupDraft">Olá! Criei o grupo \"%1$s\" para conversarmos.</string>
|
||||
<string name="MsgGroupNameChanged">O nome do grupo mudou de \"%1$s\" para \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">Imagem do grupo alterada.</string>
|
||||
<string name="MsgMemberAddedToGroup">%1$s adicionado.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">%1$s removido.</string>
|
||||
<string name="AskRemoveMemberFromGroup">Remover <b>%1$s</b> so grupo?</string>
|
||||
<string name="ErrSelfNotInGroup">É preciso ser um membro do grupo para fazer isso.</string>
|
||||
<string name="MsgGroupLeft">Deixou o grupo.</string>
|
||||
<string name="NoMessagesHint">Enviar mensagem para <b>%1$s</b>:\n\n• <b>%2$s</b> não precisa usar o Delta Chat.\n\n• A primeira mensagem pode demorar um pouco.</string>
|
||||
<string name="SendNRcvReadReceipts">Enviar e receber confirmação</string>
|
||||
<string name="E2EEncryption">Criptografia ponta-a-ponta</string>
|
||||
<string name="E2EManagePrivateKeys">Gerir chaves privadas</string>
|
||||
<string name="E2ECompareKeys">Comparar chaves</string>
|
||||
<string name="ResetUserKey">Reconfigurar chave do usuário</string>
|
||||
<string name="ForwardToTitle">Selecione um Chat …</string>
|
||||
</resources>
|
||||
|
||||
|
||||
@@ -13,16 +13,17 @@
|
||||
<string name="Yesterday">yesterday</string>
|
||||
<string name="NoResult">No results.</string>
|
||||
<string name="NoChats">No chats yet.</string>
|
||||
<string name="WaitingForNetwork">Waiting for network...</string>
|
||||
<string name="Connecting">Connecting...</string>
|
||||
<string name="Updating">Updating...</string>
|
||||
<string name="WaitingForNetwork">Waiting for network …</string>
|
||||
<string name="Connecting">Connecting …</string>
|
||||
<string name="Updating">Updating …</string>
|
||||
<string name="DeleteChat">Delete chat</string>
|
||||
<string name="SelectChat">Select chat ...</string>
|
||||
<string name="SelectChat">Select chat …</string>
|
||||
<string name="Search">Search</string>
|
||||
<string name="MuteNotifications">Mute notifications</string>
|
||||
<string name="MuteFor">Mute for %1$s</string>
|
||||
<string name="MuteFor1Hour">Mute for 1 hour</string>
|
||||
<string name="MuteFor8Hours">Mute for 8 hours</string>
|
||||
<string name="MuteFor2Days">Mute for 2 days</string>
|
||||
<string name="UnmuteNotifications">Unmute</string>
|
||||
<string name="WillUnmuteIn">In %1$s</string>
|
||||
<string name="Draft">Draft</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Please add files to the music library on your device to see them here.</string>
|
||||
@@ -34,7 +35,7 @@
|
||||
<string name="FreeOfTotal">Free %1$s of %2$s</string>
|
||||
<string name="UnknownError">Unknown error</string>
|
||||
<string name="AccessError">Access error</string>
|
||||
<string name="NoFiles">No files yet...</string>
|
||||
<string name="NoFiles">No files yet …</string>
|
||||
<string name="FileUploadLimit">File size shouldn\'t be greater than %1$s</string>
|
||||
<string name="NotMounted">Storage not mounted</string>
|
||||
<string name="UsbActive">USB transfer active</string>
|
||||
@@ -61,11 +62,9 @@
|
||||
<string name="SaveToMusic">Save to music</string>
|
||||
<string name="ShareFile">Share</string>
|
||||
<string name="UnsupportedAttachment">Unsupported attachment</string>
|
||||
<string name="OpenInBrowser">OPEN IN...</string>
|
||||
<string name="OpenInBrowser">OPEN IN …</string>
|
||||
<string name="SendItems">Send %1$s</string>
|
||||
<string name="OpenUrlAlert">Open url %1$s?</string>
|
||||
<string name="MoreInfo">More info</string>
|
||||
<string name="ShareSendTo">Send to...</string>
|
||||
<string name="ClearRecentEmoji">Clear recent emoji?</string>
|
||||
<string name="AddShortcut">Add widget to home screen</string>
|
||||
<string name="ShortcutAdded">Widget added to home screen</string>
|
||||
@@ -73,15 +72,12 @@
|
||||
<string name="Reply">Reply</string>
|
||||
<string name="ReplyToGroup">Reply to %1$s</string>
|
||||
<string name="ReplyToUser">Reply to %1$s</string>
|
||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">No users yet.</string>
|
||||
<string name="TodayAt">at</string>
|
||||
<string name="YesterdayAt">yesterday at</string>
|
||||
<string name="LastSeen">last seen</string>
|
||||
<string name="LastSeenDate">last seen</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Send message to...</string>
|
||||
<string name="SendMessageTo">Send message to …</string>
|
||||
<string name="EnterGroupNamePlaceholder">Enter group name</string>
|
||||
<string name="ShareLink">Share Link</string>
|
||||
<!--group info view-->
|
||||
@@ -141,7 +137,7 @@
|
||||
<string name="NotificationsServiceConnection">Background connection</string>
|
||||
<string name="NotificationsServiceConnectionInfo">Keep a low impact background connection to receive notifications. Enable for reliable notifications.</string>
|
||||
<string name="LedColor">LED color</string>
|
||||
<string name="BadgeNumber">Show count in popup</string>
|
||||
<string name="BadgeNumber">Show count on icon if possible</string>
|
||||
<string name="Short">Short</string>
|
||||
<string name="Long">Long</string>
|
||||
<string name="SystemDefault">System default</string>
|
||||
@@ -193,6 +189,7 @@
|
||||
<string name="EnterYourPasscode">Enter your passcode</string>
|
||||
<string name="ReEnterYourPasscode">Re-enter your new passcode</string>
|
||||
<string name="PasscodeDoNotMatch">Passcodes do not match</string>
|
||||
<string name="AutoLock">Autolock</string>
|
||||
<string name="AutoLockInfo">Require passcode if away for a time.</string>
|
||||
<string name="AutoLockInTime">in %1$s</string>
|
||||
<string name="UnlockFingerprint">Unlock with Fingerprint</string>
|
||||
@@ -246,7 +243,7 @@
|
||||
<string name="ClearButton">Clear</string>
|
||||
<string name="PickerPhotos">Photos</string>
|
||||
<string name="PickerVideo">Video</string>
|
||||
<string name="AddCaption">Add a caption...</string>
|
||||
<string name="AddCaption">Add a caption …</string>
|
||||
<string name="PhotoCaption">Photo Caption</string>
|
||||
<string name="VideoCaption">Video Caption</string>
|
||||
<string name="Caption">Caption</string>
|
||||
@@ -258,7 +255,7 @@
|
||||
<string name="EditVideo">Edit Video</string>
|
||||
<string name="OriginalVideo">Original Video</string>
|
||||
<string name="EditedVideo">Edited Video</string>
|
||||
<string name="SendingVideo">Sending video...</string>
|
||||
<string name="SendingVideo">Sending video …</string>
|
||||
<string name="CompressVideo">Compress Video</string>
|
||||
<!--button titles-->
|
||||
<string name="Next">Next</string>
|
||||
@@ -292,7 +289,7 @@
|
||||
<string name="AttachAudio">Voice message</string>
|
||||
<string name="FromSelf">Me</string>
|
||||
<!--Alert messages-->
|
||||
<string name="Loading">Loading...</string>
|
||||
<string name="Loading">Loading …</string>
|
||||
<string name="NoPlayerInstalled">You don\'t have a video player, please install one to continue</string>
|
||||
<string name="NoHandleAppInstalled">You don\'t have applications that can handle the file type \'%1$s\', please install one to continue</string>
|
||||
<string name="AddToTheGroupTitle">Add %1$s to the chat %2$s?</string>
|
||||
@@ -307,14 +304,11 @@
|
||||
<string name="ShareYouLocationUnableManually">Choose manually</string>
|
||||
<string name="AreYouSureBlockContact">Are you sure you want to block this user?</string>
|
||||
<string name="AreYouSureDeleteContact">Are you sure you want to delete this user?</string>
|
||||
<string name="AreYouSureDeleteMessages">Delete %1$s? The messages will also be deleted from the server.</string>
|
||||
<string name="RaiseToSpeakAlert">Would you like to enable "Raise to speak" for voice messages?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat needs access to your contacts so that you can connect with your friends across all your devices.</string>
|
||||
<string name="PermissionStorage">Delta Chat needs access to your storage so that you can send and save photos, videos, music and other media.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat needs access to your microphone so that you can send voice messages.</string>
|
||||
<string name="PermissionNoLocation">Delta Chat needs access to your location so that you can share it with your friends.</string>
|
||||
<string name="PermissionNoLocationPosition">Delta Chat needs access to your location.</string>
|
||||
<string name="PermissionOpenSettings">Settings</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
@@ -339,128 +333,68 @@
|
||||
|
||||
<string name="IntroStartMessaging">Start Messaging</string>
|
||||
<!--plural-->
|
||||
<string name="Members_zero">%1$d members</string>
|
||||
<string name="Members_one">%1$d member</string>
|
||||
<string name="Members_two">%1$d members</string>
|
||||
<string name="Members_few">%1$d members</string>
|
||||
<string name="Members_many">%1$d members</string>
|
||||
<string name="Members_other">%1$d members</string>
|
||||
<string name="NewMessages_zero">no new messages</string>
|
||||
<string name="NewMessages_one">%1$d new message</string>
|
||||
<string name="NewMessages_two">%1$d new messages</string>
|
||||
<string name="NewMessages_few">%1$d new messages</string>
|
||||
<string name="NewMessages_many">%1$d new messages</string>
|
||||
<string name="NewMessages_other">%1$d new messages</string>
|
||||
<string name="messages_zero">no messages</string>
|
||||
<string name="messages_one">%1$d message</string>
|
||||
<string name="messages_two">%1$d messages</string>
|
||||
<string name="messages_few">%1$d messages</string>
|
||||
<string name="messages_many">%1$d messages</string>
|
||||
<string name="messages_other">%1$d messages</string>
|
||||
<string name="items_zero">no items</string>
|
||||
<string name="items_one">%1$d item</string>
|
||||
<string name="items_two">%1$d items</string>
|
||||
<string name="items_few">%1$d items</string>
|
||||
<string name="items_many">%1$d items</string>
|
||||
<string name="items_other">%1$d items</string>
|
||||
<string name="FromChats_zero">from no chats</string>
|
||||
<string name="FromChats_one">from %1$d chat</string>
|
||||
<string name="FromChats_two">from %1$d chats</string>
|
||||
<string name="FromChats_few">from %1$d chats</string>
|
||||
<string name="FromChats_many">from %1$d chats</string>
|
||||
<string name="FromChats_other">from %1$d chats</string>
|
||||
|
||||
<string name="Chats_zero">No chats</string>
|
||||
<string name="Chats_one">%1$d chat</string>
|
||||
<string name="Chats_two">%1$d chats</string>
|
||||
<string name="Chats_few">%1$d chats</string>
|
||||
<string name="Chats_many">%1$d chats</string>
|
||||
<string name="Chats_other">%1$d chats</string>
|
||||
|
||||
<string name="Seconds_zero">%1$d seconds</string>
|
||||
<string name="Seconds_one">%1$d second</string>
|
||||
<string name="Seconds_two">%1$d seconds</string>
|
||||
<string name="Seconds_few">%1$d seconds</string>
|
||||
<string name="Seconds_many">%1$d seconds</string>
|
||||
<string name="Seconds_other">%1$d seconds</string>
|
||||
<string name="Minutes_zero">%1$d minutes</string>
|
||||
<string name="Minutes_one">%1$d minute</string>
|
||||
<string name="Minutes_two">%1$d minutes</string>
|
||||
<string name="Minutes_few">%1$d minutes</string>
|
||||
<string name="Minutes_many">%1$d minutes</string>
|
||||
<string name="Minutes_other">%1$d minutes</string>
|
||||
<string name="Hours_zero">%1$d hours</string>
|
||||
<string name="Hours_one">%1$d hour</string>
|
||||
<string name="Hours_two">%1$d hours</string>
|
||||
<string name="Hours_few">%1$d hours</string>
|
||||
<string name="Hours_many">%1$d hours</string>
|
||||
<string name="Hours_other">%1$d hours</string>
|
||||
<string name="Days_zero">%1$d days</string>
|
||||
<string name="Days_one">%1$d day</string>
|
||||
<string name="Days_two">%1$d days</string>
|
||||
<string name="Days_few">%1$d days</string>
|
||||
<string name="Days_many">%1$d days</string>
|
||||
<string name="Days_other">%1$d days</string>
|
||||
<string name="Weeks_zero">%1$d weeks</string>
|
||||
<string name="Weeks_one">%1$d week</string>
|
||||
<string name="Weeks_two">%1$d weeks</string>
|
||||
<string name="Weeks_few">%1$d weeks</string>
|
||||
<string name="Weeks_many">%1$d weeks</string>
|
||||
<string name="Weeks_other">%1$d weeks</string>
|
||||
<string name="Months_zero">%1$d months</string>
|
||||
<string name="Months_one">%1$d month</string>
|
||||
<string name="Months_two">%1$d months</string>
|
||||
<string name="Months_few">%1$d months</string>
|
||||
<string name="Months_many">%1$d months</string>
|
||||
<string name="Months_other">%1$d months</string>
|
||||
<string name="Years_zero">%1$d years</string>
|
||||
<string name="Years_one">%1$d year</string>
|
||||
<string name="Years_two">%1$d years</string>
|
||||
<string name="Years_few">%1$d years</string>
|
||||
<string name="Years_many">%1$d years</string>
|
||||
<string name="Years_other">%1$d years</string>
|
||||
<string name="Users_zero">%1$d users</string>
|
||||
<string name="Users_one">%1$d user</string>
|
||||
<string name="Users_two">%1$d users</string>
|
||||
<string name="Users_few">%1$d users</string>
|
||||
<string name="Users_many">%1$d users</string>
|
||||
<string name="Users_other">%1$d users</string>
|
||||
<string name="Times_zero">%1$d times</string>
|
||||
<string name="Times_one">%1$d time</string>
|
||||
<string name="Times_two">%1$d times</string>
|
||||
<string name="Times_few">%1$d times</string>
|
||||
<string name="Times_many">%1$d times</string>
|
||||
<string name="Times_other">%1$d times</string>
|
||||
<string name="Meters_zero">%1$d meters</string>
|
||||
<string name="Meters_one">%1$d meter</string>
|
||||
<string name="Meters_two">%1$d meters</string>
|
||||
<string name="Meters_few">%1$d meters</string>
|
||||
<string name="Meters_many">%1$d meters</string>
|
||||
<string name="Meters_other">%1$d meters</string>
|
||||
<string name="Stickers_zero">%1$d stickers</string>
|
||||
<string name="Stickers_one">%1$d sticker</string>
|
||||
<string name="Stickers_two">%1$d stickers</string>
|
||||
<string name="Stickers_few">%1$d stickers</string>
|
||||
<string name="Stickers_many">%1$d stickers</string>
|
||||
<string name="Stickers_other">%1$d stickers</string>
|
||||
<string name="Photos_zero">%1$d photos</string>
|
||||
<string name="Photos_one">%1$d photo</string>
|
||||
<string name="Photos_two">%1$d photos</string>
|
||||
<string name="Photos_few">%1$d photos</string>
|
||||
<string name="Photos_many">%1$d photos</string>
|
||||
<string name="Photos_other">%1$d photos</string>
|
||||
<string name="LastSeenMinutes_zero">last seen %1$d minutes ago</string>
|
||||
<string name="LastSeenMinutes_one">last seen %1$d minute ago</string>
|
||||
<string name="LastSeenMinutes_two">last seen %1$d minutes ago</string>
|
||||
<string name="LastSeenMinutes_few">last seen %1$d minutes ago</string>
|
||||
<string name="LastSeenMinutes_many">last seen %1$d minutes ago</string>
|
||||
<string name="LastSeenMinutes_other">last seen %1$d minutes ago</string>
|
||||
<string name="LastSeenHours_zero">last seen %1$d hours ago</string>
|
||||
<string name="LastSeenHours_one">last seen %1$d hour ago</string>
|
||||
<string name="LastSeenHours_two">last seen %1$d hours ago</string>
|
||||
<string name="LastSeenHours_few">last seen %1$d hours ago</string>
|
||||
<string name="LastSeenHours_many">last seen %1$d hours ago</string>
|
||||
<string name="LastSeenHours_other">last seen %1$d hours ago</string>
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d member</item>
|
||||
<item quantity="other">%d members</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d contact</item>
|
||||
<item quantity="other">%d contacts</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">Me and %d member</item>
|
||||
<item quantity="other">Me and %d members</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d new message</item>
|
||||
<item quantity="other">%d new messages</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d message</item>
|
||||
<item quantity="other">%d messages</item>
|
||||
</plurals>
|
||||
<plurals name="AreYouSureDeleteMessages">
|
||||
<item quantity="one">Delete %d message? The message will also be deleted from the server.</item>
|
||||
<item quantity="other">Delete %d messages? The messages will also be deleted from the server.</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessagesInChats">
|
||||
<!-- Translators: the first string placeholder "%s" gets replaced with the
|
||||
text "%d new messages", so the complete sentence would be e.g.
|
||||
"4 new messages in 2 chats". -->
|
||||
<item quantity="one">%1$s in %2$d chat</item>
|
||||
<item quantity="other">%1$s in %2$d chats</item>
|
||||
</plurals>
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d chat</item>
|
||||
<item quantity="other">%d chats</item>
|
||||
</plurals>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minute</item>
|
||||
<item quantity="other">%d minutes</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d hour</item>
|
||||
<item quantity="other">%d hours</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d day</item>
|
||||
<item quantity="other">%d days</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d week</item>
|
||||
<item quantity="other">%d weeks</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d month</item>
|
||||
<item quantity="other">%d months</item>
|
||||
</plurals>
|
||||
<plurals name="MaxNotifications">
|
||||
<!-- Translators: the second string placeholder "%s" gets replaced with the
|
||||
text "%d minutes", so the complete sentence would be e.g.
|
||||
"At most 8 notifications within 3 minutes". -->
|
||||
<item quantity="one">At most %1$d notification within %2$s</item>
|
||||
<item quantity="other">At most %1$d notifications within %2$s</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM yyyy</string>
|
||||
<string name="formatterMonth">MMM dd</string>
|
||||
@@ -492,15 +426,11 @@
|
||||
<string name="OutboxHeadline">Outbox</string>
|
||||
<string name="BasicSettings">Basic settings</string>
|
||||
<string name="MyAccountExplain">For known e-mail providers, the following settings are determinated automatically.</string>
|
||||
<string name="MyAccountExplain2" >Sometimes, IMAP/SMPT needs to be enabled in the e-mail web frontend.\n\nOn problems, ask your e-mail-provider or your friends.</string>
|
||||
<string name="MyAccountExplain2" >Sometimes, IMAP/SMTP needs to be enabled in the e-mail web frontend.\n\nOn problems, ask your e-mail provider or your friends.</string>
|
||||
<string name="AccountNotConfigured">Account not configured</string>
|
||||
<string name="AboutThisProgram">About Delta Chat</string>
|
||||
<string name="NotSet">Not set</string>
|
||||
<string name="NewChat">New chat</string>
|
||||
<string name="MemberSg">## member</string>
|
||||
<string name="MemberPl">## members</string>
|
||||
<string name="ContactSg">## contact</string>
|
||||
<string name="ContactPl">## contacts</string>
|
||||
<string name="Deaddrop">Mailbox</string>
|
||||
<string name="Media">Media</string>
|
||||
<string name="DeaddropInChatlist">Show mailbox in chatlist</string>
|
||||
@@ -513,16 +443,15 @@
|
||||
<string name="SeachUser">Search user</string>
|
||||
<string name="Name" >Name</string>
|
||||
<string name="EmailAddress">E-mail address</string>
|
||||
<string name="MeAnd">Me and</string>
|
||||
<string name="CannotDeleteContact">Cannot delete users in use, block user instead.</string>
|
||||
<string name="BadEmailAddress">Bad e-mail address.</string>
|
||||
<string name="ContactDeleted">User deleted.</string>
|
||||
<string name="ContactCreated">User created.</string>
|
||||
<string name="ViewProfile">View profile</string>
|
||||
<string name="OneMomentPlease">One moment, please...</string>
|
||||
<string name="OneMomentPlease">One moment, please …</string>
|
||||
<string name="CannotDeleteChat">Cannot delete chat.</string>
|
||||
<string name="NoChatsHelp">Start messaging by pressing the new chat button in the bottom right corner or tap the menu button for more options.</string>
|
||||
<string name="ConfiguringAccount">Configuring account...</string>
|
||||
<string name="ConfiguringAccount">Configuring account …</string>
|
||||
<string name="CannotConnect">Cannot connect, please check the configuration.</string>
|
||||
<string name="Intro7Message"><![CDATA[<b>Delta Chat</b>]]> is safe for business use, compatible and standards-based.</string>
|
||||
<string name="InviteMenuEntry">Send invitations</string>
|
||||
@@ -533,11 +462,11 @@
|
||||
<string name="Chats">Chats</string>
|
||||
<string name="ErrGroupNameEmpty">Please enter a name for the group.</string>
|
||||
<string name="MsgNewGroupDraftHint">Write a first message to allow others to reply in this group.\n\n• It is okay if not all members use Delta Chat.\n\n• Delivering the first message may take a moment.</string>
|
||||
<string name="MsgNewGroupDraft">Hello, I\'ve just created the group \"##\" for us.</string>
|
||||
<string name="MsgGroupNameChanged">Group name changed from \"##\" to \"##\".</string>
|
||||
<string name="MsgNewGroupDraft">Hello, I\'ve just created the group \"%1$s\" for us.</string>
|
||||
<string name="MsgGroupNameChanged">Group name changed from \"%1$s\" to \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">Group image changed.</string>
|
||||
<string name="MsgMemberAddedToGroup">Member ## added.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Member ## removed.</string>
|
||||
<string name="MsgMemberAddedToGroup">Member %1$s added.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Member %1$s removed.</string>
|
||||
<string name="AskAddMemberToGroup">Add user <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> to group?</string>
|
||||
<string name="AskRemoveMemberFromGroup">Remove user <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> from group?</string>
|
||||
<string name="ErrSelfNotInGroup">You must be a member of the group to perform this action.</string>
|
||||
@@ -548,5 +477,5 @@
|
||||
<string name="E2EManagePrivateKeys">Manage private keys</string>
|
||||
<string name="E2ECompareKeys">Compare keys</string>
|
||||
<string name="ResetUserKey">Reset user\'s key</string>
|
||||
<string name="ForwardToTitle">Forward to ...</string>
|
||||
<string name="ForwardToTitle">Forward to …</string>
|
||||
</resources>
|
||||
|
||||
+1
-1
@@ -5,6 +5,6 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.1.2'
|
||||
classpath 'com.android.tools.build:gradle:2.2.3'
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
#Fri Dec 04 13:44:40 MSK 2015
|
||||
#Tue Jan 31 20:49:39 CET 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||
|
||||
Reference in New Issue
Block a user