Compare commits
29 commits
master
...
thedevstac
Author | SHA1 | Date | |
---|---|---|---|
4b8575467b | |||
|
5475a64946 | ||
|
668580f311 | ||
|
de3b30bb34 | ||
|
25434a72dc | ||
|
659bfb0b8b | ||
|
ae791a5a4a | ||
|
815e972b2c | ||
|
20501a168c | ||
|
65ed07ffa9 | ||
|
8d9eb1d35f | ||
|
c105516754 | ||
|
d5f68f6d79 | ||
c8aebf62b8 | |||
|
8337f23f3e | ||
|
7e8243a6e5 | ||
|
246d7cad2a | ||
|
4f06309b14 | ||
|
653af7463e | ||
|
8c3d75db38 | ||
|
f23453c0a7 | ||
|
d288d6bb16 | ||
|
ba61b4c008 | ||
|
811f3b0926 | ||
|
abde267e5c | ||
|
08244e218a | ||
|
77fb7577ee | ||
|
db182b96c2 | ||
|
3c15fbcd49 |
79 changed files with 1148 additions and 1171 deletions
17
Notes.md
Normal file
17
Notes.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Research Notes
|
||||
|
||||
## Q & A
|
||||
|
||||
### What is the MultiDex?
|
||||
```
|
||||
Android application (APK) files contain executable bytecode files in the form of Dalvik Executable (DEX) files, which contain the compiled code used to run your app. The Dalvik Executable specification limits the total number of methods that can be referenced within a single DEX file to 65,536, including Android framework methods, library methods, and methods in your own code. Getting past this limit requires that you configure your app build process to generate more than one DEX file, known as a multidex configuration.
|
||||
```
|
||||
https://stackoverflow.com/questions/33588459/what-is-android-multidex
|
||||
|
||||
### What is android:appCategory?
|
||||
|
||||
### What is android:largeHeap?
|
||||
|
||||
### What does " tools:ignore="GoogleAppIndexingWarning"" mean?
|
||||
|
||||
### What does "tools:replace="android:label, android:allowBackup"" mean?
|
50
build.gradle
50
build.gradle
|
@ -2,8 +2,9 @@
|
|||
// sub-projects/modules.
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
maven {
|
||||
url "https://mvn.thedevstack.de/mvn"
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.4.1'
|
||||
|
@ -14,21 +15,15 @@ apply plugin: 'com.android.application'
|
|||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url "https://jitpack.io"
|
||||
url "https://mvn.thedevstack.de/mvn"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url "https://jitpack.io"
|
||||
url "https://mvn.thedevstack.de/mvn"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,6 +81,7 @@ dependencies {
|
|||
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
|
||||
implementation 'com.google.guava:guava:27.1-android'
|
||||
implementation project(':libs:thedevstacklogcat')
|
||||
}
|
||||
|
||||
ext {
|
||||
|
@ -93,24 +89,29 @@ ext {
|
|||
preDexEnabled = System.getProperty("pre-dex", "true")
|
||||
}
|
||||
|
||||
|
||||
android {
|
||||
|
||||
compileSdkVersion 28
|
||||
|
||||
def appId = "de.thedevstack.piratx"
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
|
||||
versionCode 266
|
||||
versionName "2.2.7"
|
||||
versionCode 4
|
||||
versionName "0.0.4"
|
||||
|
||||
archivesBaseName += "-$versionName"
|
||||
applicationId "de.pixart.messenger"
|
||||
applicationId appId
|
||||
multiDexEnabled true
|
||||
buildConfigField("String", "UPDATE_URL", '"https://xmpp.pix-art.de/Pix-Art_Messenger/update/"')
|
||||
resValue "string", "applicationId", applicationId
|
||||
resValue "string", "app_name", "Pix-Art Messenger"
|
||||
dimension "distribution"
|
||||
|
||||
buildConfigField 'String', 'STATICMAP_URL', '"https://piratx.thedevstack.de/staticmap"'
|
||||
buildConfigField 'String', 'INVITE_HOST', '"jabber.thedevstack.de"'
|
||||
buildConfigField 'String', 'TERMS_OF_USE_URL', '"https://piratx.thedevstack.de/termsofuse.html"'
|
||||
buildConfigField 'String', 'PRIVACY_URL', '"https://piratx.thedevstack.de/privacy.html"'
|
||||
}
|
||||
|
||||
dataBinding {
|
||||
|
@ -129,13 +130,24 @@ android {
|
|||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
flavorDimensions("distribution")
|
||||
flavorDimensions("distribution", "stage")
|
||||
|
||||
productFlavors {
|
||||
beta {
|
||||
dimension "stage"
|
||||
applicationIdSuffix ".beta"
|
||||
versionNameSuffix "-beta"
|
||||
resValue "string", "applicationId", appId + applicationIdSuffix
|
||||
}
|
||||
piratx {
|
||||
dimension "distribution"
|
||||
}
|
||||
standardPush {
|
||||
dimension "distribution"
|
||||
}
|
||||
standard
|
||||
standard {
|
||||
dimension "distribution"
|
||||
}
|
||||
}
|
||||
if (project.hasProperty('mStoreFile') &&
|
||||
project.hasProperty('mStorePassword') &&
|
||||
|
@ -194,4 +206,4 @@ android {
|
|||
exclude 'META-INF/BCKEY.DSA'
|
||||
exclude 'META-INF/BCKEY.SF'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
1
libs/thedevstacklogcat/.gitignore
vendored
Normal file
1
libs/thedevstacklogcat/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/build
|
21
libs/thedevstacklogcat/build.gradle
Normal file
21
libs/thedevstacklogcat/build.gradle
Normal file
|
@ -0,0 +1,21 @@
|
|||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package de.thedevstack.android.logcat;
|
||||
|
||||
import android.app.Application;
|
||||
import android.test.ApplicationTestCase;
|
||||
|
||||
/**
|
||||
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
|
||||
*/
|
||||
public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||
public ApplicationTest() {
|
||||
super(Application.class);
|
||||
}
|
||||
}
|
4
libs/thedevstacklogcat/src/main/AndroidManifest.xml
Normal file
4
libs/thedevstacklogcat/src/main/AndroidManifest.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="de.thedevstack.android.logcat">
|
||||
|
||||
</manifest>
|
|
@ -0,0 +1,148 @@
|
|||
package de.thedevstack.android.logcat;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Utility class to prefix every log tag.
|
||||
* This can be used for better filtering in the log cat output activity.
|
||||
*/
|
||||
public class Logging {
|
||||
/**
|
||||
* The prefix for every log tag.
|
||||
*/
|
||||
protected static String LOG_TAG_PREFIX = "thedevstack.";
|
||||
|
||||
/**
|
||||
* Changes the default log tag prefix.
|
||||
* The default value is <code>thedevstack.</code>
|
||||
* @param logTagPrefix the new log tag prefix to use
|
||||
*/
|
||||
public static void initLogTagPrefix(String logTagPrefix) {
|
||||
if (null != logTagPrefix) {
|
||||
LOG_TAG_PREFIX = logTagPrefix;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current log tag prefix.
|
||||
* @return value of Logging.LOG_TAG_PREFIX
|
||||
*/
|
||||
public static String getLogTagPrefix() {
|
||||
return LOG_TAG_PREFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#VERBOSE} log message.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
*/
|
||||
public static int v(String tag, String msg) {
|
||||
return Log.v(Logging.LOG_TAG_PREFIX + tag, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#VERBOSE} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int v(String tag, String msg, Throwable tr) {
|
||||
return Log.v(Logging.LOG_TAG_PREFIX + tag, msg + '\n' + Log.getStackTraceString(tr));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#DEBUG} log message.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
*/
|
||||
public static int d(String tag, String msg) {
|
||||
return Log.d(Logging.LOG_TAG_PREFIX + tag, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#DEBUG} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int d(String tag, String msg, Throwable tr) {
|
||||
return Log.d(Logging.LOG_TAG_PREFIX + tag, msg + '\n' + Log.getStackTraceString(tr));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an {@link Log#INFO} log message.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
*/
|
||||
public static int i(String tag, String msg) {
|
||||
return Log.i(Logging.LOG_TAG_PREFIX + tag, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#INFO} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int i(String tag, String msg, Throwable tr) {
|
||||
return Log.i(Logging.LOG_TAG_PREFIX + tag, msg + '\n' + Log.getStackTraceString(tr));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#WARN} log message.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
*/
|
||||
public static int w(String tag, String msg) {
|
||||
return Log.w(Logging.LOG_TAG_PREFIX + tag, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#WARN} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int w(String tag, String msg, Throwable tr) {
|
||||
return Log.w(Logging.LOG_TAG_PREFIX + tag, msg + '\n' + Log.getStackTraceString(tr));
|
||||
}
|
||||
|
||||
/*
|
||||
* Send a {@link #WARN} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int w(String tag, Throwable tr) {
|
||||
return Log.w(Logging.LOG_TAG_PREFIX + tag, Log.getStackTraceString(tr));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an {@link Log#ERROR} log message.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
*/
|
||||
public static int e(String tag, String msg) {
|
||||
return Log.e(Logging.LOG_TAG_PREFIX + tag, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a {@link Log#ERROR} log message and log the exception.
|
||||
* @param tag Used to identify the source of a log message. It usually identifies
|
||||
* the class or activity where the log call occurs.
|
||||
* @param msg The message you would like logged.
|
||||
* @param tr An exception to log
|
||||
*/
|
||||
public static int e(String tag, String msg, Throwable tr) {
|
||||
return Log.e(Logging.LOG_TAG_PREFIX + tag, msg + '\n' + Log.getStackTraceString(tr));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
package de.thedevstack.android.logcat.adapters;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by tzur on 20.11.2015.
|
||||
*/
|
||||
public class LogCatArrayAdapter extends ArrayAdapter<String> {
|
||||
private ArrayList<String> logcatItems = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a TextView to use when
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource) {
|
||||
super(context, resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a layout to use when
|
||||
* instantiating views.
|
||||
* @param textViewResourceId The id of the TextView within the layout resource to be populated
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource, int textViewResourceId) {
|
||||
super(context, resource, textViewResourceId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a TextView to use when
|
||||
* instantiating views.
|
||||
* @param objects The objects to represent in the ListView.
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource, String[] objects) {
|
||||
super(context, resource, objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a layout to use when
|
||||
* instantiating views.
|
||||
* @param textViewResourceId The id of the TextView within the layout resource to be populated
|
||||
* @param objects The objects to represent in the ListView.
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource, int textViewResourceId, String[] objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a TextView to use when
|
||||
* instantiating views.
|
||||
* @param objects The objects to represent in the ListView.
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource, List<String> objects) {
|
||||
super(context, resource, objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param context The current context.
|
||||
* @param resource The resource ID for a layout file containing a layout to use when
|
||||
* instantiating views.
|
||||
* @param textViewResourceId The id of the TextView within the layout resource to be populated
|
||||
* @param objects The objects to represent in the ListView.
|
||||
*/
|
||||
public LogCatArrayAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(String object) {
|
||||
super.add(object);
|
||||
logcatItems.add(object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addAll(Collection<? extends String> collection) {
|
||||
super.addAll(collection);
|
||||
logcatItems.addAll(collection);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addAll(String... items) {
|
||||
super.addAll(items);
|
||||
Collections.addAll(logcatItems, items);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
super.clear();
|
||||
logcatItems.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(String object) {
|
||||
super.remove(object);
|
||||
logcatItems.remove(object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an unmodifiable copy of the log cat entries.
|
||||
* @return UnmodifiableList of logcat entries.
|
||||
*/
|
||||
public List<String> getItems() {
|
||||
return Collections.unmodifiableList(this.logcatItems);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
package de.thedevstack.android.logcat.tasks;
|
||||
|
||||
import android.os.AsyncTask;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import de.thedevstack.android.logcat.Logging;
|
||||
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;
|
||||
|
||||
/**
|
||||
* Task to read the logcat of the App.
|
||||
* The command <code>logcat -d -v time</code> is used to load the logs.
|
||||
* This reader uses a white list to restrict the messages to display, otherwise it might be flooded with useless log messages.
|
||||
* The white list checks if a log messages contains one of the following strings:
|
||||
* <ul>
|
||||
* <li>{@value Logging#LOG_TAG_PREFIX}</li>
|
||||
* <li><code>E/</code> - for every error message</li>
|
||||
* <li><code>W/</code> - for every warning message</li>
|
||||
* </ul>
|
||||
*/
|
||||
public class ReadLogCatAsyncTask extends AsyncTask<Void, Void, String[]> {
|
||||
/**
|
||||
* The array adapter to publish the log messages to.
|
||||
*/
|
||||
private final LogCatArrayAdapter arrayAdapter;
|
||||
/**
|
||||
* The command to execute logcat.
|
||||
*/
|
||||
private static final String[] LOG_CAT_CMD = { "logcat", "-d", "-v", "time"};
|
||||
/**
|
||||
* The white list to filter log messages.
|
||||
*/
|
||||
private static final String[] WHITE_LIST = { Logging.getLogTagPrefix(), "E/", "W/" };
|
||||
|
||||
/**
|
||||
* Initializes the Task with the array adapter to publish the log messages to.
|
||||
* @param arrayAdapter the array adapter
|
||||
*/
|
||||
public ReadLogCatAsyncTask(LogCatArrayAdapter arrayAdapter) {
|
||||
this.arrayAdapter = arrayAdapter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the logcat command, reads the output of the command and returns all log messages.
|
||||
* @param params no params will be passed. (interface compliance)
|
||||
* @return the array of log messages
|
||||
*/
|
||||
@Override
|
||||
protected String[] doInBackground(Void... params) {
|
||||
ArrayList<String> logCatOutput = new ArrayList<>();
|
||||
BufferedReader bufferedReader = null;
|
||||
BufferedReader errorReader = null;
|
||||
try {
|
||||
Process process = Runtime.getRuntime().exec(ReadLogCatAsyncTask.LOG_CAT_CMD);
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||
errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
|
||||
String line = "";
|
||||
while ((line = bufferedReader.readLine()) != null) {
|
||||
logCatOutput.add(line);
|
||||
}
|
||||
|
||||
String errorLine = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
while ((errorLine = errorReader.readLine()) != null) {
|
||||
sb.append(errorLine);
|
||||
sb.append('\n');
|
||||
}
|
||||
int exitValue = process.waitFor();
|
||||
|
||||
Logging.d("ReadLogCat", "Logcat command returned with exitValue '" + exitValue + "'.");
|
||||
|
||||
String errorMessage = sb.toString();
|
||||
if (0 != exitValue && !errorMessage.isEmpty()) {
|
||||
Logging.e("ReadLogCat", errorMessage);
|
||||
logCatOutput.add(errorMessage);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Logging.e("ReadLogCat", "error while retrieving information from logcat: " + e.getMessage(), e);
|
||||
} catch (InterruptedException e) {
|
||||
Logging.e("ReadLogCat", "error while retrieving information from logcat: " + e.getMessage(), e);
|
||||
} finally {
|
||||
if (null != bufferedReader) {
|
||||
try {
|
||||
bufferedReader.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
if (null != errorReader) {
|
||||
try {
|
||||
errorReader.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
logCatOutput.trimToSize();
|
||||
return logCatOutput.toArray(new String[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the array adapter and adds the filtered log messages.
|
||||
* @param items all log messages
|
||||
*/
|
||||
@Override
|
||||
protected void onPostExecute(String[] items) {
|
||||
this.arrayAdapter.clear();
|
||||
if (null != items && items.length > 0) {
|
||||
for (String item : items) {
|
||||
if (!filter(item)) {
|
||||
this.arrayAdapter.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a log message contains a white listed string or not.
|
||||
* @param item the item to filter
|
||||
* @return <code>true</code> if the string should be filtered (removed from the list) <code>false</code> otherwise.
|
||||
*/
|
||||
protected boolean filter(String item) {
|
||||
for (String whiteListed : ReadLogCatAsyncTask.WHITE_LIST) {
|
||||
if (item.contains(whiteListed)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
3
libs/thedevstacklogcat/src/main/res/values/strings.xml
Normal file
3
libs/thedevstacklogcat/src/main/res/values/strings.xml
Normal file
|
@ -0,0 +1,3 @@
|
|||
<resources>
|
||||
<string name="thedevstack_logcat_copy">Copy</string>
|
||||
</resources>
|
|
@ -1,4 +1,5 @@
|
|||
include ':libs:android-transcoder'
|
||||
include ':libs:xmpp-addr'
|
||||
include ':libs:fullscreenvideoview'
|
||||
rootProject.name = 'PixArtMessenger'
|
||||
include ':libs:thedevstacklogcat'
|
||||
rootProject.name = 'PiratX'
|
||||
|
|
BIN
src/beta/res/drawable-hdpi/ic_launcher.png
Normal file
BIN
src/beta/res/drawable-hdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5 KiB |
BIN
src/beta/res/drawable-mdpi/ic_launcher.png
Normal file
BIN
src/beta/res/drawable-mdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3 KiB |
BIN
src/beta/res/drawable-xhdpi/ic_launcher.png
Normal file
BIN
src/beta/res/drawable-xhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
BIN
src/beta/res/drawable-xxhdpi/ic_launcher.png
Normal file
BIN
src/beta/res/drawable-xxhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
src/beta/res/drawable-xxxhdpi/ic_launcher.png
Normal file
BIN
src/beta/res/drawable-xxxhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
4
src/beta/res/values/strings.xml
Normal file
4
src/beta/res/values/strings.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">PiratX BETA</string>
|
||||
</resources>
|
|
@ -48,7 +48,7 @@
|
|||
android:required="false" />
|
||||
|
||||
<application
|
||||
android:name="android.support.multidex.MultiDexApplication"
|
||||
android:name="de.thedevstack.piratx.PiratXApplication"
|
||||
android:allowBackup="false"
|
||||
android:appCategory="social"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
|
@ -132,7 +132,7 @@
|
|||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data android:scheme="https" />
|
||||
<data android:host="jabber.pix-art.de" />
|
||||
<data android:host="jabber.thedevstack.de" />
|
||||
<data android:pathPrefix="/i/" />
|
||||
<data android:pathPrefix="/j/" />
|
||||
</intent-filter>
|
||||
|
@ -246,7 +246,7 @@
|
|||
|
||||
<meta-data
|
||||
android:name="android.service.chooser.chooser_target_service"
|
||||
android:value=".services.ContactChooserTargetService" />
|
||||
android:value="de.pixart.messenger.services.ContactChooserTargetService" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.RecordingActivity"
|
||||
|
@ -281,12 +281,6 @@
|
|||
<category android:name="android.intent.category.PREFERENCE" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.UpdaterActivity"
|
||||
android:configChanges="orientation|screenSize"
|
||||
android:label="@string/title_activity_updater"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/ConversationsTheme" />
|
||||
<activity
|
||||
android:name=".ui.ShortcutActivity"
|
||||
android:label="@string/contact">
|
||||
|
@ -315,6 +309,10 @@
|
|||
<activity
|
||||
android:name=".ui.ChannelDiscoveryActivity"
|
||||
android:label="@string/discover_channels" />
|
||||
<activity
|
||||
android:name="de.thedevstack.piratx.ui.preferences.LogCatOutputActivity"
|
||||
android:label="@string/piratx_title_activity_loginformation"
|
||||
android:launchMode="singleTask" />
|
||||
|
||||
<service android:name=".services.ExportBackupService" />
|
||||
<service android:name=".services.ImportBackupService" />
|
||||
|
|
|
@ -40,20 +40,21 @@ public final class Config {
|
|||
}
|
||||
|
||||
|
||||
public static final String LOGTAG = "Pix-Art_Messenger";
|
||||
public static final String LOGTAG = "thedevstack.piratx";
|
||||
|
||||
public static final Jid BUG_REPORTS = Jid.of("bugs@pix-art.de");
|
||||
public static final Jid BUG_REPORTS = Jid.of("piratx+bugs@conference.thedevstack.de");
|
||||
|
||||
public static final String inviteUserURL = "https://jabber.pix-art.de/i/";
|
||||
public static final String inviteMUCURL = "https://jabber.pix-art.de/j/";
|
||||
public static final String inviteHostURL = "jabber.pix-art.de"; // without http(s)
|
||||
public static final String inviteUrlScheme = "https";
|
||||
public static final String inviteHostURL = BuildConfig.INVITE_HOST; // without http(s)
|
||||
|
||||
public static final String inviteUserURL = inviteUrlScheme + "://" + inviteHostURL + "/i/";
|
||||
public static final String inviteMUCURL = inviteUrlScheme + "://" + inviteHostURL + "/j/";
|
||||
public static final String CHANGELOG_URL = "https://github.com/kriztan/Pix-Art-Messenger/blob/master/CHANGELOG.md";
|
||||
|
||||
public static final String XMPP_IP = null; //BuildConfig.XMPP_IP; // set to null means disable
|
||||
public static final Integer[] XMPP_Ports = null; //BuildConfig.XMPP_Ports; // set to null means disable
|
||||
public static final String DOMAIN_LOCK = null; //BuildConfig.DOMAIN_LOCK; //only allow account creation for this domain
|
||||
public static final String MAGIC_CREATE_DOMAIN = "blabber.im";
|
||||
public static final String QUICKSY_DOMAIN = "quicksy.im";
|
||||
public static final String MAGIC_CREATE_DOMAIN = null; //"blabber.im";
|
||||
public static final String CHANNEL_DISCOVERY = "https://search.jabbercat.org";
|
||||
public static final boolean DISALLOW_REGISTRATION_IN_UI = false; //hide the register checkbox
|
||||
|
||||
|
@ -139,11 +140,8 @@ public final class Config {
|
|||
|
||||
public static final int EXPIRY_INTERVAL = 30 * 60 * 1000; // 30 minutes
|
||||
|
||||
public static final String UPDATE_URL = BuildConfig.UPDATE_URL;
|
||||
public static final long UPDATE_CHECK_TIMER = 24 * 60 * 60; // 24 h in seconds
|
||||
|
||||
public static final String ISSUE_URL = "xmpp://support@room.pix-art.de?join";
|
||||
|
||||
public static final String[] ENABLED_CIPHERS = {
|
||||
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
||||
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384",
|
||||
|
|
|
@ -418,11 +418,6 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
|
|||
messages.clear();
|
||||
messages.addAll(this.messages);
|
||||
}
|
||||
for (Iterator<Message> iterator = messages.iterator(); iterator.hasNext(); ) {
|
||||
if (iterator.next().wasMergedIntoPrevious()) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -589,7 +584,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
|
|||
return contactJid.getLocal() != null ? contactJid.getLocal() : contactJid;
|
||||
}
|
||||
}
|
||||
} else if ((QuickConversationsService.isConversations() || !Config.QUICKSY_DOMAIN.equals(contactJid.getDomain())) && isWithStranger()) {
|
||||
} else if ((QuickConversationsService.isConversations()) && isWithStranger()) {
|
||||
return contactJid;
|
||||
} else {
|
||||
return this.getContact().getDisplayName();
|
||||
|
@ -1173,7 +1168,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
|
|||
&& !contact.isOwnServer()
|
||||
&& !contact.showInContactList()
|
||||
&& !contact.isSelf()
|
||||
&& !Config.QUICKSY_DOMAIN.equals(contact.getJid().toEscapedString())
|
||||
// WHAT IS THIS::: && !Config.QUICKSY_DOMAIN.equals(contact.getJid().toEscapedString())
|
||||
&& sentMessagesCount() == 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -640,59 +640,10 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable
|
|||
}
|
||||
}
|
||||
|
||||
public static class MergeSeparator {
|
||||
}
|
||||
|
||||
public SpannableStringBuilder getMergedBody() {
|
||||
SpannableStringBuilder body = new SpannableStringBuilder(MessageUtils.filterLtrRtl(this.body).trim());
|
||||
Message current = this;
|
||||
while (current.mergeable(current.next())) {
|
||||
current = current.next();
|
||||
if (current == null) {
|
||||
break;
|
||||
}
|
||||
body.append("\n\n");
|
||||
body.setSpan(new MergeSeparator(), body.length() - 2, body.length(), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
body.append(MessageUtils.filterLtrRtl(current.getBody()).trim());
|
||||
}
|
||||
return body;
|
||||
}
|
||||
|
||||
public boolean hasMeCommand() {
|
||||
return this.body.trim().startsWith(ME_COMMAND);
|
||||
}
|
||||
|
||||
public int getMergedStatus() {
|
||||
int status = this.status;
|
||||
Message current = this;
|
||||
while (current.mergeable(current.next())) {
|
||||
current = current.next();
|
||||
if (current == null) {
|
||||
break;
|
||||
}
|
||||
status = current.status;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
public long getMergedTimeSent() {
|
||||
long time = this.timeSent;
|
||||
Message current = this;
|
||||
while (current.mergeable(current.next())) {
|
||||
current = current.next();
|
||||
if (current == null) {
|
||||
break;
|
||||
}
|
||||
time = current.timeSent;
|
||||
}
|
||||
return time;
|
||||
}
|
||||
|
||||
public boolean wasMergedIntoPrevious() {
|
||||
Message prev = this.prev();
|
||||
return prev != null && prev.mergeable(this);
|
||||
}
|
||||
|
||||
public boolean trusted() {
|
||||
Contact contact = this.getContact();
|
||||
return status > STATUS_RECEIVED || (contact != null && (contact.showInContactList() || contact.isSelf()));
|
||||
|
|
|
@ -65,7 +65,7 @@ public class PresenceGenerator extends AbstractGenerator {
|
|||
Element cap = packet.addChild("c",
|
||||
"http://jabber.org/protocol/caps");
|
||||
cap.setAttribute("hash", "sha-1");
|
||||
cap.setAttribute("node", "http://jabber.pix-art.de");
|
||||
cap.setAttribute("node", "http://thedevstack.de");
|
||||
cap.setAttribute("ver", capHash);
|
||||
}
|
||||
return packet;
|
||||
|
|
|
@ -1035,23 +1035,6 @@ public class NotificationService {
|
|||
cancel(FOREGROUND_NOTIFICATION_ID);
|
||||
}
|
||||
|
||||
Notification AppUpdateNotification(PendingIntent intent, String version, String filesize) {
|
||||
Notification.Builder mBuilder = new Notification.Builder(mXmppConnectionService);
|
||||
mBuilder.setContentTitle(mXmppConnectionService.getString(R.string.app_name));
|
||||
mBuilder.setContentText(String.format(mXmppConnectionService.getString(R.string.update_available), version, filesize));
|
||||
mBuilder.setSmallIcon(R.drawable.ic_update_notification);
|
||||
mBuilder.setContentIntent(intent);
|
||||
mBuilder.setOngoing(true);
|
||||
if (Compatibility.runsTwentySix()) {
|
||||
mBuilder.setChannelId(UPDATE_CHANNEL_ID);
|
||||
}
|
||||
return mBuilder.build();
|
||||
}
|
||||
|
||||
public void AppUpdateServiceNotification(Notification notification) {
|
||||
notify(FOREGROUND_NOTIFICATION_ID, notification);
|
||||
}
|
||||
|
||||
private void notify(String tag, int id, Notification notification) {
|
||||
final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mXmppConnectionService);
|
||||
try {
|
||||
|
|
|
@ -1,205 +0,0 @@
|
|||
package de.pixart.messenger.services;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
|
||||
import de.pixart.messenger.BuildConfig;
|
||||
import de.pixart.messenger.Config;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.ui.UpdaterActivity;
|
||||
|
||||
import static de.pixart.messenger.http.HttpConnectionManager.getProxy;
|
||||
|
||||
public class UpdateService extends AsyncTask<String, Object, UpdateService.Wrapper> {
|
||||
private boolean mUseTor;
|
||||
private Context context;
|
||||
private String store;
|
||||
private NotificationService getNotificationService;
|
||||
public UpdateService() {
|
||||
}
|
||||
|
||||
public UpdateService(Context context, String Store, XmppConnectionService mXmppConnectionService) {
|
||||
this.context = context;
|
||||
this.store = Store;
|
||||
this.mUseTor = mXmppConnectionService.useTorToConnect();
|
||||
this.getNotificationService = mXmppConnectionService.getNotificationService();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Wrapper doInBackground(String... params) {
|
||||
StringBuilder jsonString = new StringBuilder();
|
||||
boolean UpdateAvailable = false;
|
||||
boolean showNoUpdateToast = false;
|
||||
boolean isError = false;
|
||||
|
||||
if (params[0].equals("true")) {
|
||||
showNoUpdateToast = true;
|
||||
}
|
||||
|
||||
HttpsURLConnection connection = null;
|
||||
|
||||
try {
|
||||
URL url = new URL(Config.UPDATE_URL);
|
||||
if (mUseTor) {
|
||||
connection = (HttpsURLConnection) url.openConnection(getProxy());
|
||||
} else {
|
||||
connection = (HttpsURLConnection) url.openConnection();
|
||||
}
|
||||
connection.setConnectTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||
connection.setReadTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||
connection.setRequestProperty("User-Agent", context.getString(R.string.app_name));
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
jsonString.append(line);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
} finally {
|
||||
if (connection != null) {
|
||||
connection.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
JSONObject json = new JSONObject(jsonString.toString());
|
||||
if (json.getBoolean("success") && json.has("latestVersion") && json.has("appURI") && json.has("filesize")) {
|
||||
String version = json.getString("latestVersion");
|
||||
String ownVersion = BuildConfig.VERSION_NAME;
|
||||
String url = json.getString("appURI");
|
||||
String filesize = json.getString("filesize");
|
||||
String changelog = "";
|
||||
if (json.has("changelog")) {
|
||||
changelog = json.getString("changelog");
|
||||
}
|
||||
if (checkVersion(version, ownVersion) >= 1) {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: Version " + ownVersion + " should be updated to " + version);
|
||||
UpdateAvailable = true;
|
||||
showNotification(url, changelog, version, filesize, store);
|
||||
} else {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: Version " + ownVersion + " is up to date");
|
||||
UpdateAvailable = false;
|
||||
}
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Wrapper w = new Wrapper();
|
||||
w.isError = isError;
|
||||
w.UpdateAvailable = UpdateAvailable;
|
||||
w.NoUpdate = showNoUpdateToast;
|
||||
return w;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Wrapper w) {
|
||||
super.onPostExecute(w);
|
||||
if (w.isError) {
|
||||
showToastMessage(true, true);
|
||||
return;
|
||||
}
|
||||
if (!w.UpdateAvailable) {
|
||||
showToastMessage(w.NoUpdate, false);
|
||||
}
|
||||
}
|
||||
|
||||
private void showToastMessage(boolean show, final boolean error) {
|
||||
if (!show) {
|
||||
return;
|
||||
}
|
||||
Handler handler = new Handler(Looper.getMainLooper());
|
||||
handler.post(() -> {
|
||||
String ToastMessage = "";
|
||||
if (error) {
|
||||
ToastMessage = context.getString(R.string.failed);
|
||||
} else {
|
||||
ToastMessage = context.getString(R.string.no_update_available);
|
||||
}
|
||||
Toast.makeText(context, ToastMessage, Toast.LENGTH_LONG).show();
|
||||
});
|
||||
}
|
||||
|
||||
private void showNotification(String url, String changelog, String version, String filesize, String store) {
|
||||
Intent intent = new Intent(context, UpdaterActivity.class);
|
||||
intent.putExtra("update", "PixArtMessenger_UpdateService");
|
||||
intent.putExtra("url", url);
|
||||
intent.putExtra("changelog", changelog);
|
||||
intent.putExtra("store", store);
|
||||
PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
getNotificationService.AppUpdateServiceNotification(getNotificationService.AppUpdateNotification(pi, version, filesize));
|
||||
}
|
||||
|
||||
private int checkVersion(String remoteVersion, String installedVersion) {
|
||||
// Use this instead of String.compareTo() for a non-lexicographical
|
||||
// comparison that works for version strings. e.g. "1.10".compareTo("1.6").
|
||||
//
|
||||
// @param str1 a string of ordinal numbers separated by decimal points.
|
||||
// @param str2 a string of ordinal numbers separated by decimal points.
|
||||
// @return The result is a negative integer if str1 is _numerically_ less than str2.
|
||||
// The result is a positive integer if str1 is _numerically_ greater than str2.
|
||||
// The result is zero if the strings are _numerically_ equal.
|
||||
// @note It does not work if "1.10" is supposed to be equal to "1.10.0".
|
||||
|
||||
String[] remote = null;
|
||||
String[] installed = null;
|
||||
String[] remoteV = null;
|
||||
String[] installedV = null;
|
||||
try {
|
||||
installedV = installedVersion.split(" ");
|
||||
Log.d(Config.LOGTAG, "AppUpdater: Version installed: " + installedV[0]);
|
||||
installed = installedV[0].split("\\.");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
remoteV = remoteVersion.split(" ");
|
||||
if (installedV != null && installedV.length > 1) {
|
||||
if (installedV[1] != null) {
|
||||
remoteV[0] = remoteV[0] + ".1";
|
||||
}
|
||||
}
|
||||
Log.d(Config.LOGTAG, "AppUpdater: Version on server: " + remoteV[0]);
|
||||
remote = remoteV[0].split("\\.");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
int i = 0;
|
||||
// set index to first non-equal ordinal or length of shortest localVersion string
|
||||
if (remote != null && installed != null) {
|
||||
while (i < remote.length && i < installed.length && remote[i].equals(installed[i])) {
|
||||
i++;
|
||||
}
|
||||
// compare first non-equal ordinal number
|
||||
if (i < remote.length && i < installed.length) {
|
||||
int diff = Integer.valueOf(remote[i]).compareTo(Integer.valueOf(installed[i]));
|
||||
return Integer.signum(diff);
|
||||
}
|
||||
// the strings are equal or one string is a substring of the other
|
||||
// e.g. "1.2.3" = "1.2.3" or "1.2.3" < "1.2.3.4"
|
||||
return Integer.signum(remote.length - installed.length);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
class Wrapper {
|
||||
boolean UpdateAvailable = false;
|
||||
boolean NoUpdate = false;
|
||||
boolean isError = false;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ import android.net.Uri;
|
|||
import android.os.Bundle;
|
||||
import android.widget.Button;
|
||||
|
||||
import de.pixart.messenger.BuildConfig;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.utils.ThemeHelper;
|
||||
|
||||
|
@ -33,13 +34,13 @@ public class AboutActivity extends XmppActivity {
|
|||
|
||||
privacyButton = findViewById(R.id.show_privacy_policy);
|
||||
privacyButton.setOnClickListener(view -> {
|
||||
final Uri uri = Uri.parse("https://jabber.pix-art.de/privacy/");
|
||||
final Uri uri = Uri.parse(BuildConfig.PRIVACY_URL);
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
termsOfUseButton = findViewById(R.id.show_terms_of_use);
|
||||
termsOfUseButton.setOnClickListener(view -> {
|
||||
final Uri uri = Uri.parse("https://jabber.pix-art.de/termsofuse/");
|
||||
final Uri uri = Uri.parse(BuildConfig.TERMS_OF_USE_URL);
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
|
|
@ -657,18 +657,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
if (uuid == null) {
|
||||
return messages.size() - 1;
|
||||
}
|
||||
for (int i = 0; i < messages.size(); ++i) {
|
||||
for (int i = messages.size() - 1; i >= 0; i--) {
|
||||
if (uuid.equals(messages.get(i).getUuid())) {
|
||||
return i;
|
||||
} else {
|
||||
Message next = messages.get(i);
|
||||
while (next != null && next.wasMergedIntoPrevious()) {
|
||||
if (uuid.equals(next.getUuid())) {
|
||||
return i;
|
||||
}
|
||||
next = next.next();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
|
@ -1095,8 +1086,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
boolean hasAttachments = mediaPreviewAdapter != null && mediaPreviewAdapter.hasAttachments();
|
||||
menuInflater.inflate(R.menu.fragment_conversation, menu);
|
||||
final MenuItem menuInviteContact = menu.findItem(R.id.action_invite);
|
||||
final MenuItem menuNeedHelp = menu.findItem(R.id.action_create_issue);
|
||||
final MenuItem menuSearchUpdates = menu.findItem(R.id.action_check_updates);
|
||||
final MenuItem menuArchiveChat = menu.findItem(R.id.action_archive_chat);
|
||||
final MenuItem menuGroupDetails = menu.findItem(R.id.action_group_details);
|
||||
final MenuItem menuContactDetails = menu.findItem(R.id.action_contact_details);
|
||||
|
@ -1125,13 +1114,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
menuContactDetails.setVisible(false);
|
||||
}
|
||||
menuMediaBrowser.setVisible(true);
|
||||
menuNeedHelp.setVisible(true);
|
||||
menuSearchUpdates.setVisible(false);
|
||||
ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu, activity.xmppConnectionService.getAttachmentChoicePreference(), hasAttachments);
|
||||
ConversationMenuConfigurator.configureEncryptionMenu(conversation, menu);
|
||||
} else {
|
||||
menuNeedHelp.setVisible(false);
|
||||
menuSearchUpdates.setVisible(true);
|
||||
menuInviteContact.setVisible(false);
|
||||
menuGroupDetails.setVisible(false);
|
||||
menuContactDetails.setVisible(false);
|
||||
|
@ -1259,7 +1244,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
if (!m.isFileOrImage() && !encrypted && !m.isGeoUri() && !m.treatAsDownloadable()) {
|
||||
copyMessage.setVisible(true);
|
||||
quoteMessage.setVisible(!showError && MessageUtils.prepareQuote(m).length() > 0);
|
||||
String body = m.getMergedBody().toString();
|
||||
String body = m.getBody();
|
||||
if (ShareUtil.containsXmppUri(body)) {
|
||||
copyLink.setTitle(R.string.copy_jabber_id);
|
||||
copyLink.setVisible(true);
|
||||
|
@ -1796,7 +1781,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
}
|
||||
}
|
||||
if (message != null) {
|
||||
while (message.next() != null && message.next().wasMergedIntoPrevious()) {
|
||||
while (message.next() != null) {
|
||||
message = message.next();
|
||||
}
|
||||
return message.getUuid();
|
||||
|
@ -2949,7 +2934,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
}
|
||||
|
||||
private boolean messageContainsQuery(Message m, String q) {
|
||||
return m != null && m.getMergedBody().toString().toLowerCase().contains(q.toLowerCase());
|
||||
return m != null && m.getBody().toLowerCase().contains(q.toLowerCase());
|
||||
}
|
||||
|
||||
private void startPendingIntent(PendingIntent pendingIntent, int requestCode) {
|
||||
|
|
|
@ -443,7 +443,6 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
|||
getMenuInflater().inflate(R.menu.activity_conversations, menu);
|
||||
final MenuItem qrCodeScanMenuItem = menu.findItem(R.id.action_scan_qr_code);
|
||||
final MenuItem menuEditProfiles = menu.findItem(R.id.action_accounts);
|
||||
final MenuItem inviteUser = menu.findItem(R.id.action_invite_user);
|
||||
if (qrCodeScanMenuItem != null) {
|
||||
if (isCameraFeatureAvailable()) {
|
||||
Fragment fragment = getFragmentManager().findFragmentById(R.id.main_fragment);
|
||||
|
@ -460,11 +459,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
|||
} else {
|
||||
menuEditProfiles.setTitle(R.string.action_accounts);
|
||||
}
|
||||
if (xmppConnectionServiceBound && xmppConnectionService.getAccounts().size() > 0) {
|
||||
inviteUser.setVisible(true);
|
||||
} else {
|
||||
inviteUser.setVisible(false);
|
||||
}
|
||||
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
@ -565,16 +560,6 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
|||
case R.id.action_scan_qr_code:
|
||||
UriHandlerActivity.scan(this);
|
||||
return true;
|
||||
case R.id.action_check_updates:
|
||||
if (xmppConnectionService.hasInternetConnection()) {
|
||||
openInstallFromUnknownSourcesDialogIfNeeded(true);
|
||||
} else {
|
||||
Toast.makeText(this, R.string.account_status_no_internet, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
break;
|
||||
case R.id.action_invite_user:
|
||||
inviteUser();
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import java.util.Set;
|
|||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import de.pixart.messenger.BuildConfig;
|
||||
import de.pixart.messenger.Config;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.crypto.axolotl.AxolotlService;
|
||||
|
@ -625,12 +626,12 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
|
|||
this.binding.accountRegisterNew.setVisibility(View.GONE);
|
||||
}
|
||||
this.binding.showPrivacyPolicy.setOnClickListener(view -> {
|
||||
final Uri uri = Uri.parse("https://jabber.pix-art.de/privacy/");
|
||||
final Uri uri = Uri.parse(BuildConfig.PRIVACY_URL);
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
this.binding.showTermsOfUse.setOnClickListener(view -> {
|
||||
final Uri uri = Uri.parse("https://jabber.pix-art.de/termsofuse/");
|
||||
final Uri uri = Uri.parse(BuildConfig.TERMS_OF_USE_URL);
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
|
|
@ -1,420 +0,0 @@
|
|||
package de.pixart.messenger.ui;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.PowerManager;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
import de.pixart.messenger.Config;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.persistance.FileBackend;
|
||||
import de.pixart.messenger.services.XmppConnectionService;
|
||||
import de.pixart.messenger.utils.WakeLockHelper;
|
||||
|
||||
import static de.pixart.messenger.http.HttpConnectionManager.getProxy;
|
||||
import static de.pixart.messenger.services.XmppConnectionService.FDroid;
|
||||
import static de.pixart.messenger.services.XmppConnectionService.PlayStore;
|
||||
|
||||
public class UpdaterActivity extends XmppActivity {
|
||||
static final private String FileName = "update.apk";
|
||||
String appURI = "";
|
||||
String changelog = "";
|
||||
Integer filesize = 0;
|
||||
String store;
|
||||
ProgressDialog mProgressDialog;
|
||||
DownloadTask downloadTask;
|
||||
TextView textView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
//set activity
|
||||
setContentView(R.layout.activity_updater);
|
||||
this.mTheme = findTheme();
|
||||
setTheme(this.mTheme);
|
||||
|
||||
textView = findViewById(R.id.updater);
|
||||
|
||||
mProgressDialog = new ProgressDialog(UpdaterActivity.this) {
|
||||
//show warning on back pressed
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
showCancelDialog();
|
||||
}
|
||||
};
|
||||
mProgressDialog.setMessage(getString(R.string.download_started));
|
||||
mProgressDialog.setProgressNumberFormat(null);
|
||||
mProgressDialog.setIndeterminate(true);
|
||||
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
|
||||
mProgressDialog.setCancelable(false);
|
||||
mProgressDialog.setCanceledOnTouchOutside(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void refreshUiReal() {
|
||||
//ignored
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
this.mTheme = findTheme();
|
||||
setTheme(this.mTheme);
|
||||
setTitle(getString(R.string.update_service));
|
||||
textView.setText(R.string.update_info);
|
||||
setSupportActionBar(findViewById(R.id.toolbar));
|
||||
configureActionBar(getSupportActionBar());
|
||||
if (getIntent() != null && getIntent().getStringExtra("update").equals("PixArtMessenger_UpdateService")) {
|
||||
try {
|
||||
appURI = getIntent().getStringExtra("url");
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(getApplicationContext(), getText(R.string.failed), Toast.LENGTH_LONG).show();
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
try {
|
||||
changelog = getIntent().getStringExtra("changelog");
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(getApplicationContext(), getText(R.string.failed), Toast.LENGTH_LONG).show();
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
try {
|
||||
store = getIntent().getStringExtra("store");
|
||||
} catch (Exception e) {
|
||||
store = null;
|
||||
}
|
||||
//delete old downloaded localVersion files
|
||||
File dir = new File(FileBackend.getAppUpdateDirectory());
|
||||
if (dir.isDirectory()) {
|
||||
String[] children = dir.list();
|
||||
for (String aChildren : children) {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: delete old update files " + aChildren + " in " + dir);
|
||||
new File(dir, aChildren).delete();
|
||||
}
|
||||
}
|
||||
|
||||
//oh yeah we do need an upgrade, let the user know send an alert message
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(UpdaterActivity.this);
|
||||
builder.setCancelable(false);
|
||||
//open link to changelog
|
||||
//if the user agrees to upgrade
|
||||
builder.setMessage(getString(R.string.install_update))
|
||||
.setPositiveButton(R.string.update, (dialog, id) -> {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: downloading " + FileName + " from " + appURI);
|
||||
//ask for permissions on devices >= SDK 23
|
||||
if (isStoragePermissionGranted() && isNetworkAvailable(getApplicationContext())) {
|
||||
//start downloading the file using the download manager
|
||||
if (store != null && store.equalsIgnoreCase(PlayStore)) {
|
||||
Uri uri = Uri.parse("market://details?id=de.pixart.messenger");
|
||||
Intent marketIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
PackageManager manager = getApplicationContext().getPackageManager();
|
||||
List<ResolveInfo> infos = manager.queryIntentActivities(marketIntent, 0);
|
||||
if (infos.size() > 0) {
|
||||
startActivity(marketIntent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
} else {
|
||||
uri = Uri.parse("https://jabber.pix-art.de/");
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
}
|
||||
} else if (store != null && store.equalsIgnoreCase(FDroid)) {
|
||||
Uri uri = Uri.parse("https://f-droid.org/de/packages/de.pixart.messenger/");
|
||||
Intent marketIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
PackageManager manager = getApplicationContext().getPackageManager();
|
||||
List<ResolveInfo> infos = manager.queryIntentActivities(marketIntent, 0);
|
||||
if (infos.size() > 0) {
|
||||
startActivity(marketIntent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
} else {
|
||||
uri = Uri.parse("https://f-droid.org/de/packages/de.pixart.messenger/");
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
startActivity(browserIntent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(getApplicationContext(), getText(R.string.download_started), Toast.LENGTH_LONG).show();
|
||||
downloadTask = new DownloadTask(UpdaterActivity.this);
|
||||
downloadTask.execute(appURI);
|
||||
}
|
||||
} else {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: failed - has storage permissions " + isStoragePermissionGranted() + " and internet " + isNetworkAvailable(getApplicationContext()));
|
||||
}
|
||||
})
|
||||
.setNeutralButton(R.string.changelog, (dialog, id) -> {
|
||||
Uri uri = Uri.parse(Config.CHANGELOG_URL); // missing 'http://' will cause crash
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
//restart updater to show dialog again after coming back after opening changelog
|
||||
recreate();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.remind_later, (dialog, id) -> {
|
||||
// User cancelled the dialog
|
||||
UpdaterActivity.this.finish();
|
||||
});
|
||||
//show the alert message
|
||||
builder.create().show();
|
||||
} else {
|
||||
Toast.makeText(getApplicationContext(), getText(R.string.failed), Toast.LENGTH_LONG).show();
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
void onBackendConnected() {
|
||||
//ignored
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle savedInstanceState) {
|
||||
super.onSaveInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
//check for internet connection
|
||||
private boolean isNetworkAvailable(Context context) {
|
||||
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (connectivity != null) {
|
||||
NetworkInfo[] info = connectivity.getAllNetworkInfo();
|
||||
if (info != null) {
|
||||
for (NetworkInfo anInfo : info) {
|
||||
if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isStoragePermissionGranted() {
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
|
||||
return false;
|
||||
}
|
||||
} else { //permission is automatically granted on sdk<23 upon installation
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//show warning on back pressed
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
showCancelDialog();
|
||||
}
|
||||
|
||||
private void showCancelDialog() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(R.string.cancel_update)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton(R.string.yes, (dialog, id) -> {
|
||||
if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
|
||||
downloadTask.cancel(true);
|
||||
}
|
||||
if (mProgressDialog.isShowing()) {
|
||||
mProgressDialog.dismiss();
|
||||
}
|
||||
UpdaterActivity.this.finish();
|
||||
})
|
||||
.setNegativeButton(R.string.no, (dialog, id) -> dialog.cancel());
|
||||
AlertDialog alert = builder.create();
|
||||
alert.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
|
||||
downloadTask.cancel(true);
|
||||
}
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
if (downloadTask != null && !downloadTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
|
||||
downloadTask.cancel(true);
|
||||
}
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
|
||||
private class DownloadTask extends AsyncTask<String, Integer, String> {
|
||||
|
||||
File dir = new File(FileBackend.getAppUpdateDirectory());
|
||||
File file = new File(dir, FileName);
|
||||
XmppConnectionService xmppConnectionService;
|
||||
private Context context;
|
||||
private PowerManager.WakeLock mWakeLock;
|
||||
private long startTime = 0;
|
||||
private boolean mUseTor;
|
||||
|
||||
DownloadTask(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
startTime = System.currentTimeMillis();
|
||||
// take CPU lock to prevent CPU from going off if the user
|
||||
// presses the power button during download
|
||||
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
if (pm != null) {
|
||||
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, getClass().getName());
|
||||
mWakeLock.acquire();
|
||||
mUseTor = xmppConnectionService != null && xmppConnectionService.useTorToConnect();
|
||||
}
|
||||
mProgressDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onProgressUpdate(Integer... progress) {
|
||||
super.onProgressUpdate(progress);
|
||||
// if we get here, length is known, now set indeterminate to false
|
||||
mProgressDialog.setIndeterminate(false);
|
||||
mProgressDialog.setMax(100);
|
||||
mProgressDialog.setProgress(progress[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(String... sUrl) {
|
||||
InputStream is = null;
|
||||
OutputStream os = null;
|
||||
HttpURLConnection connection = null;
|
||||
try {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: save file to " + file.toString());
|
||||
Log.d(Config.LOGTAG, "AppUpdater: download update from url: " + sUrl[0] + " to file name: " + file.toString());
|
||||
|
||||
URL url = new URL(sUrl[0]);
|
||||
|
||||
if (mUseTor) {
|
||||
connection = (HttpURLConnection) url.openConnection(getProxy());
|
||||
} else {
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
}
|
||||
connection.connect();
|
||||
|
||||
// expect HTTP 200 OK, so we don't mistakenly save error report
|
||||
// instead of the file
|
||||
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||
Toast.makeText(getApplicationContext(), getText(R.string.failed), Toast.LENGTH_LONG).show();
|
||||
return connection.getResponseCode() + ": " + connection.getResponseMessage();
|
||||
}
|
||||
|
||||
// this will be useful to display download percentage
|
||||
// might be -1: server did not report the length
|
||||
int fileLength = connection.getContentLength();
|
||||
|
||||
// create folders
|
||||
File parentDirectory = file.getParentFile();
|
||||
if (parentDirectory.mkdirs()) {
|
||||
Log.d(Config.LOGTAG, "created " + parentDirectory.getAbsolutePath());
|
||||
}
|
||||
|
||||
// download the file
|
||||
is = connection.getInputStream();
|
||||
os = new FileOutputStream(file);
|
||||
|
||||
byte data[] = new byte[4096];
|
||||
long total = 0;
|
||||
int count;
|
||||
while ((count = is.read(data)) != -1) {
|
||||
// allow canceling with back button
|
||||
if (isCancelled()) {
|
||||
is.close();
|
||||
return "canceled";
|
||||
}
|
||||
total += count;
|
||||
// publishing the progress....
|
||||
if (fileLength > 0) // only if total length is known
|
||||
publishProgress((int) (total * 100 / fileLength));
|
||||
os.write(data, 0, count);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.toString();
|
||||
} finally {
|
||||
try {
|
||||
if (os != null)
|
||||
os.close();
|
||||
if (is != null)
|
||||
is.close();
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
|
||||
if (connection != null)
|
||||
connection.disconnect();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
WakeLockHelper.release(mWakeLock);
|
||||
mProgressDialog.dismiss();
|
||||
if (result != null) {
|
||||
Toast.makeText(getApplicationContext(), getString(R.string.failed), Toast.LENGTH_LONG).show();
|
||||
Log.d(Config.LOGTAG, "AppUpdater: failed with " + result);
|
||||
UpdaterActivity.this.finish();
|
||||
} else {
|
||||
Log.d(Config.LOGTAG, "AppUpdater: download ready in " + ((System.currentTimeMillis() - startTime) / 1000) + " sec");
|
||||
|
||||
//start the installation of the latest localVersion
|
||||
Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
|
||||
installIntent.setDataAndType(FileBackend.getUriForFile(UpdaterActivity.this, file), "application/vnd.android.package-archive");
|
||||
installIntent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
|
||||
installIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
|
||||
installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
installIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
startActivity(installIntent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
UpdaterActivity.this.finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -64,7 +64,6 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.RejectedExecutionException;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
|
@ -80,7 +79,6 @@ import de.pixart.messenger.entities.Presences;
|
|||
import de.pixart.messenger.services.AvatarService;
|
||||
import de.pixart.messenger.services.BarcodeProvider;
|
||||
import de.pixart.messenger.services.EmojiService;
|
||||
import de.pixart.messenger.services.UpdateService;
|
||||
import de.pixart.messenger.services.XmppConnectionService;
|
||||
import de.pixart.messenger.services.XmppConnectionService.XmppConnectionBinder;
|
||||
import de.pixart.messenger.ui.util.PresenceSelector;
|
||||
|
@ -364,9 +362,6 @@ public abstract class XmppActivity extends ActionBarActivity {
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(final MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_create_issue:
|
||||
createIssue();
|
||||
break;
|
||||
case R.id.action_settings:
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
|
@ -955,72 +950,6 @@ public abstract class XmppActivity extends ActionBarActivity {
|
|||
return null;
|
||||
}
|
||||
|
||||
public void inviteUser() {
|
||||
if (!xmppConnectionServiceBound) {
|
||||
Toast.makeText(this, R.string.not_connected_try_again, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
if (xmppConnectionService.getAccounts() == null){
|
||||
Toast.makeText(this, R.string.no_accounts, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
if (!xmppConnectionService.multipleAccounts()) {
|
||||
Account mAccount = xmppConnectionService.getAccounts().get(0);
|
||||
String user = Jid.of(mAccount.getJid()).getLocal();
|
||||
String domain = Jid.of(mAccount.getJid()).getDomain();
|
||||
String inviteURL = AdHocInviteUri(mAccount);
|
||||
if (inviteURL == null) {
|
||||
inviteURL = Config.inviteUserURL + user + "/" + domain;
|
||||
}
|
||||
Log.d(Config.LOGTAG, "Invite uri = " + inviteURL);
|
||||
String inviteText = getString(R.string.InviteText, user);
|
||||
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
|
||||
intent.setType("text/plain");
|
||||
intent.putExtra(Intent.EXTRA_SUBJECT, user + " " + getString(R.string.inviteUser_Subject) + " " + getString(R.string.app_name));
|
||||
intent.putExtra(Intent.EXTRA_TEXT, inviteText + "\n\n" + inviteURL);
|
||||
startActivity(Intent.createChooser(intent, getString(R.string.invite_contact)));
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
} else {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle(R.string.chooce_account);
|
||||
final View dialogView = this.getLayoutInflater().inflate(R.layout.choose_account_dialog, null);
|
||||
final Spinner spinner = dialogView.findViewById(R.id.account);
|
||||
builder.setView(dialogView);
|
||||
List<String> mActivatedAccounts = new ArrayList<>();
|
||||
for (Account account : xmppConnectionService.getAccounts()) {
|
||||
if (account.getStatus() != Account.State.DISABLED) {
|
||||
if (Config.DOMAIN_LOCK != null) {
|
||||
mActivatedAccounts.add(account.getJid().getLocal());
|
||||
} else {
|
||||
mActivatedAccounts.add(account.getJid().asBareJid().toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
StartConversationActivity.populateAccountSpinner(this, mActivatedAccounts, spinner);
|
||||
builder.setPositiveButton(R.string.ok,
|
||||
(dialog, id) -> {
|
||||
String selection = spinner.getSelectedItem().toString();
|
||||
Account mAccount = xmppConnectionService.findAccountByJid(Jid.of(selection).asBareJid());
|
||||
String user = Jid.of(mAccount.getJid()).getLocal();
|
||||
String domain = Jid.of(mAccount.getJid()).getDomain();
|
||||
String inviteURL = AdHocInviteUri(mAccount);
|
||||
if (inviteURL == null) {
|
||||
inviteURL = Config.inviteUserURL + user + "/" + domain;
|
||||
}
|
||||
Log.d(Config.LOGTAG, "Invite uri = " + inviteURL);
|
||||
String inviteText = getString(R.string.InviteText, user);
|
||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||
intent.setType("text/plain");
|
||||
intent.putExtra(Intent.EXTRA_SUBJECT, user + " " + getString(R.string.inviteUser_Subject) + " " + getString(R.string.app_name));
|
||||
intent.putExtra(Intent.EXTRA_TEXT, inviteText + "\n\n" + inviteURL);
|
||||
startActivity(Intent.createChooser(intent, getString(R.string.invite_contact)));
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
builder.create().show();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean AdHocInvite(Account account) {
|
||||
if (!xmppConnectionServiceBound) {
|
||||
return false;
|
||||
|
@ -1050,14 +979,6 @@ public abstract class XmppActivity extends ActionBarActivity {
|
|||
return null;
|
||||
}
|
||||
|
||||
private void createIssue() {
|
||||
String IssueURL = Config.ISSUE_URL;
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(IssueURL));
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||
}
|
||||
|
||||
protected void shareLink(boolean http) {
|
||||
String uri = getShareableUri(http);
|
||||
if (uri == null || uri.isEmpty()) {
|
||||
|
@ -1347,17 +1268,9 @@ public abstract class XmppActivity extends ActionBarActivity {
|
|||
startActivityForResult(intent, REQUEST_UNKNOWN_SOURCE_OP);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(XmppActivity.this, R.string.device_does_not_support_unknown_source_op, Toast.LENGTH_SHORT).show();
|
||||
} finally {
|
||||
UpdateService task = new UpdateService(this, xmppConnectionService.installedFrom(), xmppConnectionService);
|
||||
task.executeOnExecutor(UpdateService.THREAD_POOL_EXECUTOR, ShowToast);
|
||||
Log.d(Config.LOGTAG, "AppUpdater started");
|
||||
}
|
||||
});
|
||||
builder.create().show();
|
||||
} else {
|
||||
UpdateService task = new UpdateService(this, xmppConnectionService.installedFrom(), xmppConnectionService);
|
||||
task.executeOnExecutor(UpdateService.THREAD_POOL_EXECUTOR, ShowToast);
|
||||
Log.d(Config.LOGTAG, "AppUpdater started");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -232,7 +232,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapte
|
|||
}
|
||||
|
||||
if (activity.xmppConnectionService.indicateReceived()) {
|
||||
switch (message.getMergedStatus()) {
|
||||
switch (message.getStatus()) {
|
||||
case Message.STATUS_SEND_RECEIVED:
|
||||
viewHolder.binding.indicatorReceived.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
|
|
|
@ -46,6 +46,7 @@ import java.util.Locale;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.pixart.messenger.BuildConfig;
|
||||
import de.pixart.messenger.Config;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.crypto.axolotl.FingerprintStatus;
|
||||
|
@ -77,6 +78,7 @@ import de.pixart.messenger.utils.CryptoHelper;
|
|||
import de.pixart.messenger.utils.EmojiWrapper;
|
||||
import de.pixart.messenger.utils.Emoticons;
|
||||
import de.pixart.messenger.utils.GeoHelper;
|
||||
import de.pixart.messenger.utils.MessageUtils;
|
||||
import de.pixart.messenger.utils.RichPreview;
|
||||
import de.pixart.messenger.utils.StylingHelper;
|
||||
import de.pixart.messenger.utils.UIHelper;
|
||||
|
@ -99,6 +101,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
private static final int RECEIVED = 1;
|
||||
private static final int STATUS = 2;
|
||||
private static final int DATE_SEPARATOR = 3;
|
||||
private static final int VIEWTYPE_ME_COMMAND = 4;
|
||||
|
||||
boolean isResendable = false;
|
||||
|
||||
|
@ -164,10 +167,13 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
|
||||
@Override
|
||||
public int getViewTypeCount() {
|
||||
return 4;
|
||||
return 5;
|
||||
}
|
||||
|
||||
private int getItemViewType(Message message) {
|
||||
if (BuildConfig.FLAVOR_distribution.equalsIgnoreCase("piratx") && message.hasMeCommand()) {
|
||||
return VIEWTYPE_ME_COMMAND;
|
||||
}
|
||||
if (message.getType() == Message.TYPE_STATUS) {
|
||||
if (DATE_SEPARATOR_BODY.equals(message.getBody())) {
|
||||
return DATE_SEPARATOR;
|
||||
|
@ -222,7 +228,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
}
|
||||
final Transferable transferable = message.getTransferable();
|
||||
boolean multiReceived = message.getConversation().getMode() == Conversation.MODE_MULTI
|
||||
&& message.getMergedStatus() <= Message.STATUS_RECEIVED;
|
||||
&& message.getStatus() <= Message.STATUS_RECEIVED;
|
||||
if (message.isFileOrImage() || transferable != null) {
|
||||
FileParams params = message.getFileParams();
|
||||
filesize = params.size > 0 ? UIHelper.filesizeToString(params.size) : null;
|
||||
|
@ -230,7 +236,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
error = true;
|
||||
}
|
||||
}
|
||||
switch (message.getMergedStatus()) {
|
||||
switch (message.getStatus()) {
|
||||
case Message.STATUS_WAITING:
|
||||
info = getContext().getString(R.string.waiting);
|
||||
break;
|
||||
|
@ -350,7 +356,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
viewHolder.indicator.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
String formatedTime = UIHelper.readableTimeDifferenceFull(getContext(), message.getMergedTimeSent());
|
||||
String formatedTime = UIHelper.readableTimeDifferenceFull(getContext(), message.getTimeSent());
|
||||
if (message.getStatus() <= Message.STATUS_RECEIVED) {
|
||||
if ((filesize != null) && (info != null)) {
|
||||
viewHolder.time.setText(formatedTime + " \u00B7 " + filesize + " \u00B7 " + info);
|
||||
|
@ -532,7 +538,9 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
viewHolder.messageBody.setTypeface(null, Typeface.NORMAL);
|
||||
if (message.getBody() != null) {
|
||||
final String nick = UIHelper.getMessageDisplayName(message);
|
||||
SpannableStringBuilder body = message.getMergedBody();
|
||||
String messageBody = message.getBody();
|
||||
SpannableStringBuilder body = new SpannableStringBuilder(MessageUtils.filterLtrRtl(messageBody).trim());
|
||||
|
||||
boolean hasMeCommand = message.hasMeCommand();
|
||||
if (hasMeCommand) {
|
||||
body = body.replace(0, Message.ME_COMMAND.length(), nick);
|
||||
|
@ -541,12 +549,6 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
body = new SpannableStringBuilder(body, 0, Config.MAX_DISPLAY_MESSAGE_CHARS);
|
||||
body.append("\u2026");
|
||||
}
|
||||
Message.MergeSeparator[] mergeSeparators = body.getSpans(0, body.length(), Message.MergeSeparator.class);
|
||||
for (Message.MergeSeparator mergeSeparator : mergeSeparators) {
|
||||
int start = body.getSpanStart(mergeSeparator);
|
||||
int end = body.getSpanEnd(mergeSeparator);
|
||||
body.setSpan(new DividerSpan(true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
boolean startsWithQuote = handleTextQuotes(body, darkBackground);
|
||||
if (!message.isPrivateMessage()) {
|
||||
if (hasMeCommand) {
|
||||
|
@ -965,6 +967,23 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
viewHolder.status_message = view.findViewById(R.id.status_message);
|
||||
viewHolder.load_more_messages = view.findViewById(R.id.load_more_messages);
|
||||
break;
|
||||
case VIEWTYPE_ME_COMMAND:
|
||||
view = activity.getLayoutInflater().inflate(R.layout.message_mecmd, parent, false);
|
||||
viewHolder.message_box = view.findViewById(R.id.message_box);
|
||||
viewHolder.contact_picture = view.findViewById(R.id.message_photo);
|
||||
viewHolder.messageBody = view.findViewById(R.id.message_body);
|
||||
viewHolder.time = view.findViewById(R.id.message_time);
|
||||
viewHolder.indicator = view.findViewById(R.id.security_indicator);
|
||||
viewHolder.indicatorReceived = view.findViewById(R.id.indicator_received);
|
||||
viewHolder.encryption = view.findViewById(R.id.message_encryption);
|
||||
viewHolder.audioPlayer = view.findViewById(R.id.audio_player);
|
||||
viewHolder.download_button = view.findViewById(R.id.download_button);
|
||||
viewHolder.image = view.findViewById(R.id.message_image);
|
||||
viewHolder.gifImage = view.findViewById(R.id.message_image_gif);
|
||||
viewHolder.richlinkview = view.findViewById(R.id.richLinkView);
|
||||
viewHolder.indicatorReceived = view.findViewById(R.id.indicator_received);
|
||||
viewHolder.indicatorRead = view.findViewById(R.id.indicator_read);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Unknown view type");
|
||||
}
|
||||
|
@ -1021,7 +1040,12 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
|||
}
|
||||
return view;
|
||||
} else {
|
||||
AvatarWorkerTask.loadAvatar(message, viewHolder.contact_picture, R.dimen.avatar);
|
||||
if (message.getStatus() > Message.STATUS_RECEIVED && !message.hasMeCommand()) {
|
||||
view.findViewById(R.id.placeholder).setVisibility(View.GONE);
|
||||
viewHolder.contact_picture.setVisibility(View.GONE);
|
||||
} else {
|
||||
AvatarWorkerTask.loadAvatar(message, viewHolder.contact_picture, R.dimen.avatar);
|
||||
}
|
||||
}
|
||||
|
||||
resetClickListener(viewHolder.message_box, viewHolder.messageBody);
|
||||
|
|
|
@ -53,7 +53,7 @@ public class ShareUtil {
|
|||
shareIntent.putExtra(Intent.EXTRA_TEXT, message.getBody());
|
||||
shareIntent.setType("text/plain");
|
||||
} else if (!message.isFileOrImage()) {
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, message.getMergedBody().toString());
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, message.getBody());
|
||||
shareIntent.setType("text/plain");
|
||||
} else {
|
||||
final DownloadableFile file = activity.xmppConnectionService.getFileBackend().getFile(message);
|
||||
|
@ -80,7 +80,7 @@ public class ShareUtil {
|
|||
}
|
||||
|
||||
public static void copyToClipboard(XmppActivity activity, Message message) {
|
||||
if (activity.copyTextToClipboard(message.getMergedBody().toString(), R.string.message)) {
|
||||
if (activity.copyTextToClipboard(message.getBody(), R.string.message)) {
|
||||
Toast.makeText(activity, R.string.message_copied_to_clipboard, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ public class ShareUtil {
|
|||
}
|
||||
|
||||
public static void copyLinkToClipboard(XmppActivity activity, Message message) {
|
||||
String body = message.getMergedBody().toString();
|
||||
String body = message.getBody();
|
||||
Matcher xmppPatternMatcher = Patterns.XMPP_PATTERN.matcher(body);
|
||||
if (xmppPatternMatcher.find()) {
|
||||
try {
|
||||
|
|
|
@ -12,6 +12,7 @@ import java.util.ArrayList;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.pixart.messenger.BuildConfig;
|
||||
import de.pixart.messenger.Config;
|
||||
import de.pixart.messenger.R;
|
||||
import de.pixart.messenger.entities.Contact;
|
||||
|
@ -42,7 +43,8 @@ public class GeoHelper {
|
|||
} catch (NumberFormatException nfe) {
|
||||
return null;
|
||||
}
|
||||
return "https://xmpp.pix-art.de/staticmap/staticmap.php?center=" + latitude + "," + longitude + "&size=500x500&markers=" + latitude + "," + longitude + "&zoom= " + Config.DEFAULT_ZOOM;
|
||||
|
||||
return BuildConfig.STATICMAP_URL + "?center=" + latitude + "," + longitude + "&size=500x500&markers=" + latitude + "," + longitude + "&zoom=" + Config.DEFAULT_ZOOM;
|
||||
}
|
||||
|
||||
private static GeoPoint parseGeoPoint(String body) throws IllegalArgumentException {
|
||||
|
|
|
@ -43,7 +43,7 @@ public class MessageUtils {
|
|||
private static final String EMPTY_STRING = "";
|
||||
public static String prepareQuote(Message message) {
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
final String body = message.getMergedBody().toString();
|
||||
final String body = message.getBody();
|
||||
for (String line : body.split("\n")) {
|
||||
if (line.length() <= 0) {
|
||||
continue;
|
||||
|
|
|
@ -85,11 +85,6 @@ public class StylingHelper {
|
|||
|
||||
public static void format(final Editable editable, @ColorInt int textColor) {
|
||||
int end = 0;
|
||||
Message.MergeSeparator[] spans = editable.getSpans(0, editable.length() - 1, Message.MergeSeparator.class);
|
||||
for (Message.MergeSeparator span : spans) {
|
||||
format(editable, end, editable.getSpanStart(span), textColor);
|
||||
end = editable.getSpanEnd(span);
|
||||
}
|
||||
format(editable, end, editable.length() - 1, textColor);
|
||||
}
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ public class XmppUri {
|
|||
String scheme = uri.getScheme();
|
||||
String host = uri.getHost();
|
||||
List<String> segments = uri.getPathSegments();
|
||||
if ("https".equalsIgnoreCase(scheme) && "jabber.pix-art.de".equalsIgnoreCase(host)) {
|
||||
if (Config.inviteUrlScheme.equalsIgnoreCase(scheme) && Config.inviteHostURL.equalsIgnoreCase(host)) {
|
||||
if (segments.size() >= 2 && segments.get(1).contains("@")) {
|
||||
// sample : https://conversations.im/i/foo@bar.com
|
||||
try {
|
||||
|
|
|
@ -11,6 +11,5 @@ public class Patches {
|
|||
XmppConnection.Identity.SLACK
|
||||
);
|
||||
public static final List<String> ENCRYPTION_EXCEPTIONS = Arrays.asList(
|
||||
"bugs@pix-art.de"
|
||||
);
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/color_background_tertiary"
|
||||
tools:context="${applicationId}.ui.UpdaterActivity">
|
||||
|
||||
<include xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/toolbar"
|
||||
layout="@layout/toolbar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/updater"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/toolbar"
|
||||
android:layout_alignParentTop="false"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:padding="@dimen/card_padding_regular"
|
||||
android:textAppearance="@style/TextAppearance.Conversations.Body1"
|
||||
android:textStyle="normal" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/UpdateProgressBar"
|
||||
style="?android:attr/progressBarStyleLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_centerVertical="true" />
|
||||
|
||||
</RelativeLayout>
|
|
@ -18,14 +18,5 @@
|
|||
android:orderInCategory="100"
|
||||
android:title="@string/action_settings"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_check_updates"
|
||||
android:title="@string/action_check_update"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_invite_user"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/invite_user"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
|
@ -78,11 +78,6 @@
|
|||
android:orderInCategory="60"
|
||||
android:title="@string/action_end_conversation"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_create_issue"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/create_issue"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_group_details"
|
||||
android:icon="@drawable/ic_group_white_24dp"
|
||||
|
|
|
@ -302,11 +302,9 @@
|
|||
<string name="title_activity_updater">خدمة التحديث</string>
|
||||
<string name="remind_later">لاحقا</string>
|
||||
<string name="update">تحديث</string>
|
||||
<string name="no_update_available">لا يوجد تحديثات</string>
|
||||
<string name="download_started">بدأ التنزيل</string>
|
||||
<string name="account_status_tor_unavailable">شبكة تور غير متوفرة</string>
|
||||
<string name="pref_presence_settings">التوفر</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">إضافة حساب يحوي شهادة</string>
|
||||
<string name="unable_to_parse_certificate">لا يمكن تحليل لشهادة</string>
|
||||
<string name="mam_prefs">خيارات الأرشفة</string>
|
||||
|
@ -370,8 +368,6 @@
|
|||
<string name="creating_conference">عملية انشاء فريق المحادثة جارية…</string>
|
||||
<string name="import_database">استيراد نسخة احتياطية</string>
|
||||
<string name="invite_again">إعادة دعوته مجددا</string>
|
||||
<string name="inviteUser_Subject">قام بدعوتك عبر</string>
|
||||
<string name="invite_user">الدعوة إلى بيكس آرت ماسنجر</string>
|
||||
<string name="please_wait">يُرجى الانتظار…</string>
|
||||
<string name="payment_required">الدفع مطلوب</string>
|
||||
<string name="me">أنا</string>
|
||||
|
@ -433,7 +429,6 @@
|
|||
<string name="pref_validate_hostname">تأكيد اسم المضيف عبر DNSSEC</string>
|
||||
<string name="mark_as_read">اعتبرها مقروءة</string>
|
||||
<string name="server_info_partial">جزئيا</string>
|
||||
<string name="update_service">خدمة التحديث لـ Pix-Art Messenger</string>
|
||||
<string name="install_update">تنصيب التحديث؟</string>
|
||||
<string name="no_application_found_to_open_link">تعذر العثور على تطبيق يمكنه فتح هذا الرابط</string>
|
||||
<string name="pref_warn_unencrypted_chat">التنبيه إن كانت المحادثة غير مشفّرة</string>
|
||||
|
|
|
@ -89,9 +89,7 @@
|
|||
<string name="offering">təklif edilir…</string>
|
||||
<string name="waiting">gözləyir…</string>
|
||||
<string name="no_pgp_key">OpenPGP Açarı tapılmadı</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger, mesajlarınızın şifrələməsinə imkan vermir, çünki kontaktınız onun ictimai anonsunu elan etmir. \n
|
||||
\n
|
||||
<small>OpenPGP-in qurulmasına müraciət edin.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX, mesajlarınızın şifrələməsinə imkan vermir, çünki kontaktınız onun ictimai anonsunu elan etmir. \n\n \n\n <small>OpenPGP-in qurulmasına müraciət edin.</small></string>
|
||||
<string name="pref_general">Ümumi</string>
|
||||
<string name="pref_accept_files_wifi">WiFi bağlantılarında faylları qəbul et</string>
|
||||
<string name="pref_accept_files_mobile">Mobil bağlantılarda faylları qəbul et</string>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<string name="offering">предлагане ...</string>
|
||||
<string name="waiting">чакане…</string>
|
||||
<string name="no_pgp_key">Не е намерен ключ на OpenPGP</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger не може да шифрова вашите съобщения, защото вашият контакт не съобщава публичния си ключ. Помолете вашия контакт да настрои OpenPGP. </small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX не може да шифрова вашите съобщения, защото вашият контакт не съобщава публичния си ключ. Помолете вашия контакт да настрои OpenPGP. </string>
|
||||
<string name="no_pgp_keys">Не е намерен OpenPGP ключ</string>
|
||||
<string name="pref_general">Основни</string>
|
||||
<string name="pref_accept_files_wifi">Приеми фаилове само на безжични връзки \"WiFi\"</string>
|
||||
|
@ -430,10 +430,8 @@
|
|||
<string name="download_failed_could_not_write_file">Неуспешно изтегляне: Файлът не можа да бъде записан</string>
|
||||
<string name="action_check_update">Провери за Подновеване</string>
|
||||
<string name="title_activity_updater">Услуга за подновеване</string>
|
||||
<string name="update_available">Налична е версия на %1$s.\n\nРазмер на файла: %2$s\n\nПодновеване на версия %1$s сега?</string>
|
||||
<string name="remind_later">по късно</string>
|
||||
<string name="update">поднови</string>
|
||||
<string name="no_update_available">Нема налично подновение</string>
|
||||
<string name="download_started">Изтеглянето започна</string>
|
||||
<string name="account_status_tor_unavailable">Tor мрежата е недостъпна</string>
|
||||
<string name="account_status_bind_failure">Отказ на свързване</string>
|
||||
|
@ -443,11 +441,9 @@
|
|||
<string name="pref_away_when_screen_off">Kогато си отсъстващ изключи екрана</string>
|
||||
<string name="pref_away_when_screen_off_summary">Маркира вашия ресурс когато сте отсъстващ когато екранът е изключен</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Не безпокойте\" в безшумен режим</string>
|
||||
<string name="update_info">Pix-Art Messenger автоматично изтегля и инсталира новата версия.\n\nЧакай…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Маркира вашия ресурс като \"Не безпокойте\", когато устройството е в безшумен режим</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Третирайте вибрацията като безшумен режим</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Маркира вашия ресурс като \"Не ме безпокойте\", когато устройството е на вибрaция</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Добавете акаунт със сертификат</string>
|
||||
<string name="unable_to_parse_certificate">Сертификатът не може да се анализира</string>
|
||||
<string name="authenticate_with_certificate">Оставете празно, за да удостоверите w/ сертификата</string>
|
||||
|
@ -538,12 +534,10 @@
|
|||
<string name="creating_conference">Създаване на групов чат...</string>
|
||||
<string name="import_database">Възтановеване на резервно копие</string>
|
||||
<string name="invite_again">Покани отново</string>
|
||||
<string name="inviteUser_Subject">те покани чрез</string>
|
||||
<string name="InviteText">Здравей,\n\nпотребителя %s ви покани на Messenger Messenger. Ако използвате Android, опитайте го и кликнете върху следната връзка, за да започнете отначало...</string>
|
||||
<string name="InviteText">Здравей, потребителя %s ви покани на Messenger Messenger. Ако използвате Android, опитайте го и кликнете върху следната връзка, за да започнете отначало...</string>
|
||||
<string name="pref_broadcast_last_activity">Излъчване на Последното Взаимодействие с Потребителя</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Нека всичките ви контакти знаят, когато използвате Pix-Art Messenger</string>
|
||||
<string name="invite_user">Поканете в Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger ще ви помоли да разрешите няколко разрешения. Важно е да разрешите на всички тези разрешения да използват всички функции на този пратеник. Ако отхвърлите някое от тези разрешения, приложението ще се затвори.</string>
|
||||
<string name="request_permissions_message">PiratX ще ви помоли да разрешите няколко разрешения. Важно е да разрешите на всички тези разрешения да използват всички функции на този пратеник. Ако отхвърлите някое от тези разрешения, приложението ще се затвори.</string>
|
||||
<string name="request_permissions_message_again">Отказахте някои или всички разрешения, необходими за Pix-Art Messenger. Искате ли да преминете към настройките и да разрешите тези разрешения? Ако отхвърлите някое от тези разрешения, приложението ще се затвори.</string>
|
||||
<string name="unable_to_connect_to_keychain">Не може да се свърже с OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Това устройство вече не се използва</string>
|
||||
|
@ -675,7 +669,6 @@
|
|||
<string name="server_info_partial">частично</string>
|
||||
<string name="pref_show_foreground_service_summary">Някои устройства с Android ще затворят някои приложения след определен период от време и няма да можете да получавате нови съобщения. Ако имате такива проблеми, опитайте да активирате услугата на преден план. Но имайте предвид, че ще имате постоянно уведомление с тази опция.</string>
|
||||
<string name="pref_show_foreground_service">Използвай услугата на преден план</string>
|
||||
<string name="update_service">Услугата за подновеване на Pix-Art Messenger</string>
|
||||
<string name="install_update">Инсталирай подножението?</string>
|
||||
<string name="highlight_in_muc">маркирай потребителя</string>
|
||||
<string name="no_application_found_to_open_link">Не е намерена програма за отваряне на адреса</string>
|
||||
|
@ -824,7 +817,7 @@
|
|||
<string name="open_with">Отвори със…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc команди: покани потребителя</string>
|
||||
<string name="choose_account">Избери профил</string>
|
||||
<string name="set_profile_picture">Снимка на профила на Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Снимка на профила на</string>
|
||||
<string name="restore_backup">Възстанови архив</string>
|
||||
<string name="restore">Възстановяване</string>
|
||||
<string name="enter_password_to_restore">Въведете паролата си за профила %s, за да възстановите архива.</string>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<string name="offering">Oferint…</string>
|
||||
<string name="waiting">Esperant…</string>
|
||||
<string name="no_pgp_key">Clau OpenPGP no localitzada</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger no ha pogut xifrar els teus missatges per què el teu contacte no està anunciant la seva clau pública.\n\n<small>Si us plau, demana als teus contactes que configurin OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX no ha pogut xifrar els teus missatges per què el teu contacte no està anunciant la seva clau pública.\n\n<small>Si us plau, demana als teus contactes que configurin OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Claus OpenPGP no trobades</string>
|
||||
<string name="pref_general">General</string>
|
||||
<string name="pref_accept_files_wifi">Acceptar arxius en connexions WiFi</string>
|
||||
|
@ -434,10 +434,8 @@
|
|||
<string name="download_failed_could_not_write_file"> Error a la descarga: No es pot escriure al fitxer</string>
|
||||
<string name="action_check_update">Comprovar actualizacions</string>
|
||||
<string name="title_activity_updater">Servei d\'actualizació</string>
|
||||
<string name="update_available">Versió %1$s està disponible.\n\nTamany arxiu: %2$s\n\nActualizació a la versió %1$s ara?</string>
|
||||
<string name="remind_later">Després</string>
|
||||
<string name="update">Actualizar</string>
|
||||
<string name="no_update_available">No hi ha actualizacions disponibles</string>
|
||||
<string name="download_started">S\'ha iniciat la descarrèga</string>
|
||||
<string name="account_status_tor_unavailable">Red Tor no disponible</string>
|
||||
<string name="account_status_bind_failure">Error de enllaç</string>
|
||||
|
@ -447,11 +445,9 @@
|
|||
<string name="pref_away_when_screen_off">Absent amb pantalla apagada</string>
|
||||
<string name="pref_away_when_screen_off_summary">Canviar el teu estat a absent quant la pantalla està apagada</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"No molestar\" en mode silenci</string>
|
||||
<string name="update_info">Pix-Art Messenger està descarregant i instal·lant la nova versió automàticament.\n\nSi us plau, espera…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Canvia el teu estat a \"no molestar\" quant el dispositiu està en mode silenci</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Mode vibració como a mode silenci</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Canvia el teu estat a \"no molestar\" quant el dispositiu està en mode vibració</string>
|
||||
<string name="hostname_example">xmpp.exemple.com</string>
|
||||
<string name="action_add_account_with_certificate">Afegir compte amb certificat</string>
|
||||
<string name="unable_to_parse_certificate">No s\'ha pogut llegir el certificat</string>
|
||||
<string name="authenticate_with_certificate">Deixar buit per a autentificar el certificat w/ </string>
|
||||
|
@ -543,12 +539,10 @@
|
|||
<string name="creating_conference">Crear xat de grup…</string>
|
||||
<string name="import_database">Importar còpia de seguretat</string>
|
||||
<string name="invite_again">Convidar de nou</string>
|
||||
<string name="inviteUser_Subject">t\'ha convidat a través de</string>
|
||||
<string name="InviteText">Hola,\n\n%s t\'ha convidat a una conversa amb Pix-Art Messenger. Si ets un usuar d\'Android, prova\'l i fes click en el següent enllaç...</string>
|
||||
<string name="InviteText">Hola,\n\n%s t\'ha convidat a una conversa amb PiratX Messenger. Si ets un usuar d\'Android, prova\'l i fes click en el següent enllaç...</string>
|
||||
<string name="pref_broadcast_last_activity">Informar de la teva última interacció</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Informar als teus contactes quant utilitzes Pix-Art Messenger</string>
|
||||
<string name="invite_user">Convidar a Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger li demanarà que concedeix alguns permissos. És important que permetis que tots aquest permissos utilitzen totes les característíques d\'aquest missatger Si vosté nega qualsevol d\'aquests permissos, l\'aplicació es tancarà sola.</string>
|
||||
<string name="request_permissions_message">PiratX li demanarà que concedeix alguns permissos. És important que permetis que tots aquest permissos utilitzen totes les característíques d\'aquest missatger Si vosté nega qualsevol d\'aquests permissos, l\'aplicació es tancarà sola.</string>
|
||||
<string name="request_permissions_message_again">Vosté ha negat un o tots els permissos requerits per a Pix-Art Messenger. ¿Desitja anar a la configuració per a permetre aquests permissos? Si refuses un d\'aquests permissos, l\'aplicació es tancarà.</string>
|
||||
<string name="unable_to_connect_to_keychain">No s\'ha pogut connectar a OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Aquest dispositiu ja no està en ús</string>
|
||||
|
@ -680,7 +674,6 @@
|
|||
<string name="server_info_partial">Parcial</string>
|
||||
<string name="pref_show_foreground_service_summary">Alguns dispositius Android tancaràn algunes aplicacions després d\'un temps i no podràs rebre nous missatges. Si tens aquests problemes, intenta activar el servei de primer pla. Però tingues en compte que tindrà una notificació permanent amb aquesta opció marcada.</string>
|
||||
<string name="pref_show_foreground_service">Utilitzar servei en primer pla</string>
|
||||
<string name="update_service">Servei d\'actualizació de Pix-Art Messenger</string>
|
||||
<string name="install_update">Instal·lar actualizació?</string>
|
||||
<string name="highlight_in_muc">anomena usuari</string>
|
||||
<string name="no_application_found_to_open_link">No s\'ha trobat aplicació per a obrir la pàgina web</string>
|
||||
|
@ -834,7 +827,7 @@
|
|||
<string name="open_with">Obrir amb…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc Commands: invitació d\'usuari</string>
|
||||
<string name="choose_account">Escull compte</string>
|
||||
<string name="set_profile_picture">Imatge de perfil de Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Imatge de perfil</string>
|
||||
<string name="restore_backup">Restaurar còpia de seguretat</string>
|
||||
<string name="restore">Restaurar</string>
|
||||
<string name="enter_password_to_restore">Escriu la teva contrasenya pel compte %s per a restaurar la còpia de seguretat.</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">paghalad…</string>
|
||||
<string name="waiting">napa-abot…</string>
|
||||
<string name="no_pgp_key">Walay OpenPGP nga yawe nga nakita</string>
|
||||
<string name="contact_has_no_pgp_key">Ang Pix-Art Messenger dili makahimo sa pag-encrypt sa imong mga mensahe tungod kay ang imong contact wala magpahibalo sa iyang public yawe.\n\n<small>Palihog pangutana sa imung kontak nga e-setup ang OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">Ang PiratX dili makahimo sa pag-encrypt sa imong mga mensahe tungod kay ang imong contact wala magpahibalo sa iyang public yawe.\n\n<small>Palihog pangutana sa imung kontak nga e-setup ang OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Walay OpenPGP nga mga Yawe ang nakita</string>
|
||||
<string name="pref_general">General</string>
|
||||
<string name="pref_accept_files_wifi">Dawat nga mga file sa WiFi nga mga koneksiyon</string>
|
||||
|
@ -358,10 +358,8 @@
|
|||
<string name="download_failed_could_not_write_file">Napkayas pag-download: Dili makasuwat sa file</string>
|
||||
<string name="action_check_update">Susiha ang mga Kausaban</string>
|
||||
<string name="title_activity_updater">Kausaban sa serbisyo</string>
|
||||
<string name="update_available">Bersiyon %1$s kay wala.\n\n Sukod sa File:%2$s\n\nKausaban sa bersiyon %1$s karun?</string>
|
||||
<string name="remind_later">taud-taud</string>
|
||||
<string name="update">kabaguhan</string>
|
||||
<string name="no_update_available">Walay kanag-uhan ang anaa</string>
|
||||
<string name="download_started">Nagsugod na ug download</string>
|
||||
<string name="account_status_tor_unavailable">Tor network wa wala</string>
|
||||
<string name="account_status_bind_failure">Pugong kapakyasan</string>
|
||||
|
@ -370,11 +368,9 @@
|
|||
<string name="pref_away_when_screen_off">Layo kung ang screen kay gepalong</string>
|
||||
<string name="pref_away_when_screen_off_summary">Markahe ang imung gepanguhaan ingon nga layo kong ang screen gipalong</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Ayaw ug samoka\" sa hilom nga mode</string>
|
||||
<string name="update_info">Ang Pix-Art Messenger kay nag-download ug nag-install sa bag-o nga bersiyon awtomatik.\n\nPalihug paabot…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Markahi imung gepanguhaan sa \"Ayaw ug Samoka\" kung ang device kay naa sa hilum nga mode</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Tratuha ang pag-vibrate ingun nga hilum nga mode</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Markahi ang imung gepanguhaan as \"Ayaw ug samoka\" kung ang device naka vibrate</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Idugang ang account sa sertipiko</string>
|
||||
<string name="unable_to_parse_certificate">Dili ma-parse ang certificate</string>
|
||||
<string name="authenticate_with_certificate">Biyai ang walay sulod aron pamatud-an ang w / certificate</string>
|
||||
|
@ -462,12 +458,10 @@
|
|||
<string name="creating_conference">Nagbuhat ug grupo sa chat…</string>
|
||||
<string name="import_database">Import nga tabang</string>
|
||||
<string name="invite_again">Pagdapit pag-usab</string>
|
||||
<string name="inviteUser_Subject">nagdapit kanimo pinaagi sa</string>
|
||||
<string name="InviteText">Hello,\n\n ang user %s nag-imbitar sa imuha nga sa Pix-Art Messenger. kung ikaw naggamit ug Android, suwayi dayun ug pislite ang mga nagsunod nga link para sugod ug balik...</string>
|
||||
<string name="InviteText">Hello,\n\n ang user %s nag-imbitar sa imuha nga sa PiratX Messenger. kung ikaw naggamit ug Android, suwayi dayun ug pislite ang mga nagsunod nga link para sugod ug balik...</string>
|
||||
<string name="pref_broadcast_last_activity">Broadcast Last Interaction sa Gumagamit</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Hibal-i ang tanan nimong contact kung gamiton ang Pix-Art Messenger</string>
|
||||
<string name="invite_user">Pagdapit sa Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger mangutana sa imuha kung musugyot ka gayud sa pipila ka mga permiso. Importante nga imong tugotan ang tanan nga mga permiso nga gamiton ang tanang bahin niini nga mensahero. Kung imu ilimod bisag asa niini nga mga permiso ang app musira sa iyang kaugalingon.</string>
|
||||
<string name="request_permissions_message">PiratX mangutana sa imuha kung musugyot ka gayud sa pipila ka mga permiso. Importante nga imong tugotan ang tanan nga mga permiso nga gamiton ang tanang bahin niini nga mensahero. Kung imu ilimod bisag asa niini nga mga permiso ang app musira sa iyang kaugalingon.</string>
|
||||
<string name="request_permissions_message_again">Imuhang gelimod ang uban o tanang permisong kinahanglanun para sa Pix-Art Messenger. Gusto ka bang moambak sa mga setting ug tugotan kini nga mga permiso? Kung imu ilimod bisag unsa ining mag permiso, ang app mismo musira sa iyang kaugalingun.</string>
|
||||
<string name="unable_to_connect_to_keychain">Dili maka konek sa OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Ang kini nga device kay wala na ginagamit</string>
|
||||
|
@ -559,7 +553,6 @@
|
|||
<string name="server_info_partial">parsyal</string>
|
||||
<string name="pref_show_foreground_service_summary">Ang ubang mga device sa Android magsarado sa pipila ka mga oras ug dili naka makadawat ug mga bag-o nga mensahe. Kung naa kay ing ana nga problema, suwayi ug pag-aktibo sa foreground nga serbisyo. Pero timan-e, nga maana-a kay permamente nga pagpahibalo kauban niini nga opsiyong gitan-aw.</string>
|
||||
<string name="pref_show_foreground_service">Gamit ug serbisyo sa foreground</string>
|
||||
<string name="update_service">Pix-Art Messenger nabag-o nga serbisyo</string>
|
||||
<string name="install_update">I-install ang pagbag-o?</string>
|
||||
<string name="highlight_in_muc">ipaklaro ang user</string>
|
||||
<string name="no_application_found_to_open_link">Walay aplikasyon nakita para ablihan ang link</string>
|
||||
|
|
|
@ -356,7 +356,6 @@
|
|||
<string name="pref_away_when_screen_off">Pryč při vypnuté obrazovce</string>
|
||||
<string name="pref_away_when_screen_off_summary">Při vypnuté obrazovce označí váš stav jako pryč</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Vibrační mód brát stejně jako tichý</string>
|
||||
<string name="hostname_example">xmpp.server.cz</string>
|
||||
<string name="action_add_account_with_certificate">Přidat účet s certifikátem</string>
|
||||
<string name="unable_to_parse_certificate">Nelze načíst certifikát</string>
|
||||
<string name="authenticate_with_certificate">Nechat prázdné pro ověření s certifikátem</string>
|
||||
|
|
|
@ -60,8 +60,8 @@
|
|||
<string name="unblock">Entsperren</string>
|
||||
<string name="save">Speichern</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="crash_report_title">Pix-Art Messenger ist abgestürzt</string>
|
||||
<string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Pix-Art Messenger.\n<b>Achtung:</b> Dies wird dein XMPP-Profil benutzen, um den Entwickler zu kontaktieren.</string>
|
||||
<string name="crash_report_title">PiratX ist abgestürzt</string>
|
||||
<string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von PiratX.\n<b>Achtung:</b> Dies wird dein XMPP-Profil benutzen, um den Entwickler zu kontaktieren.</string>
|
||||
<string name="send_now">Jetzt abschicken</string>
|
||||
<string name="send_never">Nie mehr nachfragen</string>
|
||||
<string name="problem_connecting_to_account">Es gibt Probleme beim Verbindungsaufbau mit einem Profil</string>
|
||||
|
@ -87,13 +87,13 @@
|
|||
<string name="send_unencrypted">Normal verschicken</string>
|
||||
<string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen privaten Schlüssel.</string>
|
||||
<string name="openkeychain_required">OpenKeychain</string>
|
||||
<string name="openkeychain_required_long">Pix-Art Messenger benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte Pix-Art Messenger danach neu.)</small></string>
|
||||
<string name="openkeychain_required_long">PiratX benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte PiratX danach neu.)</small></string>
|
||||
<string name="restart">Neu starten</string>
|
||||
<string name="install">Installieren</string>
|
||||
<string name="offering">angeboten…</string>
|
||||
<string name="waiting">warten…</string>
|
||||
<string name="no_pgp_key">Kein OpenPGP-Schlüssel gefunden</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen Schlüssel nicht preisgibt.\n\n<small>Bitte deinen Kontakt darum, OpenPGP zu installieren.</small> </string>
|
||||
<string name="contact_has_no_pgp_key">"PiratX ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen Schlüssel nicht preisgibt.\n\n<small>Bitte deinen Kontakt darum, OpenPGP zu installieren.</small> "</string>
|
||||
<string name="no_pgp_keys">Keine OpenPGP-Schlüssel gefunden</string>
|
||||
<string name="pref_general">Allgemeines</string>
|
||||
<string name="pref_accept_files_wifi">Dateien im WLAN annehmen</string>
|
||||
|
@ -111,7 +111,7 @@
|
|||
<string name="pref_sound">Benachrichtigungston</string>
|
||||
<string name="pref_sound_summary">Benachrichtigungston wiedergeben</string>
|
||||
<string name="pref_send_crash">Absturzberichte senden</string>
|
||||
<string name="pref_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du bei der Verbesserung von Pix-Art Messenger</string>
|
||||
<string name="pref_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du bei der Verbesserung von PiratX</string>
|
||||
<string name="pref_confirm_messages">Lese- und Empfangsbestätigung senden</string>
|
||||
<string name="pref_confirm_messages_summary">Informiere deine Kontakte, wenn du eine Nachricht empfangen und gelesen hast</string>
|
||||
<string name="pref_ui_options">Benutzeroberfläche</string>
|
||||
|
@ -160,7 +160,7 @@
|
|||
<string name="mgmt_account_delete_confirm_message">Wenn du dein Profil löschst, gehen deine lokal gespeicherten Chatverläufe verloren.\n\nWenn du dein Profil vom Server löschst, wird dein gesamtes Benutzerprofil ebenfalls gelöscht, du wirst dich nicht mehr einloggen können bis du ein neues Profil erstellt hast.</string>
|
||||
<string name="attach_record_voice">Sprache aufzeichnen</string>
|
||||
<string name="account_settings_jabber_id">Jabber-ID</string>
|
||||
<string name="account_settings_example_jabber_id">benutzer@pix-art.de</string>
|
||||
<string name="account_settings_example_jabber_id">benutzer@jabber.org</string>
|
||||
<string name="password">Passwort</string>
|
||||
<string name="invalid_jid">Ungültige Jabber-ID</string>
|
||||
<string name="error_out_of_memory">Zu wenig Speicher vorhanden. Das Bild ist zu groß</string>
|
||||
|
@ -434,10 +434,8 @@
|
|||
<string name="download_failed_could_not_write_file">Download fehlgeschlagen: Datei kann nicht gespeichert werden</string>
|
||||
<string name="action_check_update">Auf Updates prüfen</string>
|
||||
<string name="title_activity_updater">Update Dienst</string>
|
||||
<string name="update_available">Version %1$s ist verfügbar.\n\nDateigröße: %2$s\n\nJetzt auf Version %1$s aktualisieren?</string>
|
||||
<string name="remind_later">später</string>
|
||||
<string name="update">aktualisieren</string>
|
||||
<string name="no_update_available">Kein Update verfügbar</string>
|
||||
<string name="download_started">Download gestartet</string>
|
||||
<string name="account_status_tor_unavailable">Tor-Netzwerk nicht verfügbar</string>
|
||||
<string name="account_status_bind_failure">Bindungsfehler</string>
|
||||
|
@ -447,11 +445,9 @@
|
|||
<string name="pref_away_when_screen_off">Abwesend bei abgeschaltetem Bildschirm</string>
|
||||
<string name="pref_away_when_screen_off_summary">Setze deinen Status auf \"abwesend\", solange dein Bildschirm abgeschaltet ist</string>
|
||||
<string name="pref_dnd_on_silent_mode">Bitte nicht stören bei Stummschaltung</string>
|
||||
<string name="update_info">Pix-Art Messenger lädt und installiert die neue Version automatisch.\n\nBitte warten…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Setze deinen Status auf \"Bitte nicht stören\", solange dein Gerät stummgeschaltet ist</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Vibration als Lautlos behandeln</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Setze deinen Status auf \"Bitte nicht stören\", solange das Gerät auf Vibration geschaltet ist</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Profil mit Zertifikat hinzufügen</string>
|
||||
<string name="unable_to_parse_certificate">Zertifikat kann nicht gelesen werden</string>
|
||||
<string name="authenticate_with_certificate">Leer lassen, um mit Zertifikat anzumelden</string>
|
||||
|
@ -479,9 +475,9 @@
|
|||
<item quantity="other">%d Nachrichten</item>
|
||||
</plurals>
|
||||
<string name="load_more_messages">weitere Nachrichten laden</string>
|
||||
<string name="no_storage_permission">Pix-Art Messenger benötigt Zugriff auf externen Speicher</string>
|
||||
<string name="no_storage_permission">PiratX benötigt Zugriff auf externen Speicher</string>
|
||||
<string name="sync_with_contacts">Mit Kontakten synchronisieren</string>
|
||||
<string name="sync_with_contacts_long">Pix-Art Messenger möchte deine XMPP-Kontaktliste mit deinen Kontakten abgleichen, um deren vollständige Namen und Profilbilder anzuzeigen.\n\nPix-Art Messenger wird deine Kontakte nur lokal lesen und abgleichen und überträgt diese nicht auf den Server.\n\nDu wirst nun gefragt, ob du den Zugriff auf deine Kontakte erlauben möchtest.</string>
|
||||
<string name="sync_with_contacts_long">PiratX möchte deine XMPP-Kontaktliste mit deinen Kontakten abgleichen, um deren vollständige Namen und Profilbilder anzuzeigen.\n\nPiratX wird deine Kontakte nur lokal lesen und abgleichen und überträgt diese nicht auf den Server.\n\nDu wirst nun gefragt, ob du den Zugriff auf deine Kontakte erlauben möchtest.</string>
|
||||
<string name="notify_on_all_messages">Bei allen Nachrichten benachrichtigen</string>
|
||||
<string name="notify_only_when_highlighted">Nur benachrichtigen, wenn ich erwähnt werde</string>
|
||||
<string name="notify_never">Benachrichtigungen deaktiviert</string>
|
||||
|
@ -496,8 +492,8 @@
|
|||
<string name="video_original">original (unkomprimiert)</string>
|
||||
<string name="always">Immer</string>
|
||||
<string name="battery_optimizations_enabled">Batterieoptimierung aktiv</string>
|
||||
<string name="battery_optimizations_enabled_explained">Dein Telefon wendet Batterioptimierungen bei Pix-Art Messenger an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können.\nEs ist empfehlenswert diese zu deaktivieren.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Dein Telefon wendet Batterioptimierungen bei Pix-Art Messenger an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können. Es ist empfehlenswert dies zu deaktivieren.</string>
|
||||
<string name="battery_optimizations_enabled_explained">Dein Telefon wendet Batterioptimierungen bei PiratX an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können.\nEs ist empfehlenswert diese zu deaktivieren.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Dein Telefon wendet Batterioptimierungen bei PiratX an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können. Es ist empfehlenswert dies zu deaktivieren.</string>
|
||||
<string name="install_from_unknown_sources_disabled">Installation von unbekannter Quelle ist nicht erlaubt</string>
|
||||
<string name="install_from_unknown_sources_disabled_dialog">Dein Gerät erlaubt keine Installationen von Apps aus unbekannten Quellen außer über Google PlayStore. Dies verursacht Probleme mit automatischen Updates des Messengers.\n\nDu wirst nun gefragt, die Installation von Apps aus unbekannten Quellen zu erlauben.</string>
|
||||
<string name="disable">Deaktivieren</string>
|
||||
|
@ -509,7 +505,7 @@
|
|||
<string name="correct_message">Nachricht korrigieren</string>
|
||||
<string name="send_corrected_message">Korrigierte Nachricht senden</string>
|
||||
<string name="no_keys_just_confirm">Du vertraust diesem Kontakt bereits. Durch Auswählen von Fertig bestätigst du, dass %s Teil dieses Gruppenchats ist.</string>
|
||||
<string name="contacts_have_no_pgp_keys">Pix-Art Messenger ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihren öffentlichen Schlüssel nicht preisgeben.\n\n<small>Bitte sage deinen Kontakten, sie mögen OpenPGP einrichten.</small></string>
|
||||
<string name="contacts_have_no_pgp_keys">PiratX ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihren öffentlichen Schlüssel nicht preisgeben.\n\n<small>Bitte sage deinen Kontakten, sie mögen OpenPGP einrichten.</small></string>
|
||||
<string name="this_account_is_disabled">Du hast dieses Profil deaktiviert</string>
|
||||
<string name="no_application_to_share_uri">Keine Anwendung zum Teilen der URI gefunden</string>
|
||||
<string name="share_uri_with">Teile URI mit…</string>
|
||||
|
@ -544,13 +540,11 @@
|
|||
<string name="import_text">Falls ein Backup verfügbar ist, kannst du es über den unten stehenden Button importieren.</string>
|
||||
<string name="import_database">Backup importieren</string>
|
||||
<string name="invite_again">Erneut hinzufügen</string>
|
||||
<string name="inviteUser_Subject">hat dich eingeladen über</string>
|
||||
<string name="InviteText">Hallo,\n\n%s hat dich zu einem Gespräch mit Pix-Art Messenger eingeladen. Falls du Android Nutzer bist, probiere es aus und klicke folgenden Link…</string>
|
||||
<string name="InviteText">Hallo,\n\n%s hat dich zu einem Gespräch mit PiratX Messenger eingeladen. Falls du Android Nutzer bist, probiere es aus und klicke folgenden Link…</string>
|
||||
<string name="pref_broadcast_last_activity">Zuletzt gesehen senden</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Lasse deine Kontakte wissen, wann du Pix-Art Messenger nutzt</string>
|
||||
<string name="invite_user">Zu Pix-Art Messenger einladen</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger wird dich nach ein paar Berechtigungen fragen. Es ist wichtig, dass du alle Berechtigungen erlaubst, um alle Funktionen nutzen zu können. Falls du eine dieser Berechtigungen ablehnst wird sich die App schließen.</string>
|
||||
<string name="request_permissions_message_again">Du hast eine oder alle Berechtigungen, welche für Pix-Art Messenger benötigt werden abgelehnt. Willst du zu den Einstellungen springen, um diese Berechtigungen zu erlauben? Falls du eine dieser Berechtigungen ablehnst wird sich die App schließen.</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Lasse deine Kontakte wissen, wann du PiratX nutzt</string>
|
||||
<string name="request_permissions_message">PiratX wird dich nach ein paar Berechtigungen fragen. Es ist wichtig, dass du alle Berechtigungen erlaubst, um alle Funktionen nutzen zu können. Falls du eine dieser Berechtigungen ablehnst wird sich die App schließen.</string>
|
||||
<string name="request_permissions_message_again">Du hast eine oder alle Berechtigungen, welche für PiratX benötigt werden abgelehnt. Willst du zu den Einstellungen springen, um diese Berechtigungen zu erlauben? Falls du eine dieser Berechtigungen ablehnst wird sich die App schließen.</string>
|
||||
<string name="unable_to_connect_to_keychain">Keine Verbindung zu OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Dieses Gerät wird nicht länger verwendet</string>
|
||||
<string name="please_wait">Bitte warten…</string>
|
||||
|
@ -578,8 +572,8 @@
|
|||
<string name="show_error_message">Zeige Fehlermeldung</string>
|
||||
<string name="error_message">Fehlermeldung</string>
|
||||
<string name="data_saver_enabled">Datensparmodus aktiviert</string>
|
||||
<string name="data_saver_enabled_explained">Dein Betriebssystem verbietet Pix-Art Messenger im Hintergrund den Zugang zum Internet. Um Benachrichtigungen erhalten zu können, solltest du Pix-Art Messenger den Zugang erlauben, wenn der Datensparmodus aktiv ist. Pix-Art Messenger wird dennoch versuchen, so viele Daten wie möglich einzusparen.</string>
|
||||
<string name="device_does_not_support_data_saver">Dein Gerät unterstützt den Datensparmodus für Pix-Art Messenger nicht.</string>
|
||||
<string name="data_saver_enabled_explained">Dein Betriebssystem verbietet PiratX im Hintergrund den Zugang zum Internet. Um Benachrichtigungen erhalten zu können, solltest du PiratX den Zugang erlauben, wenn der Datensparmodus aktiv ist. PiratX wird dennoch versuchen, so viele Daten wie möglich einzusparen.</string>
|
||||
<string name="device_does_not_support_data_saver">Dein Gerät unterstützt den Datensparmodus für PiratX nicht.</string>
|
||||
<string name="add_to_contact_list">Zur Kontaktliste hinzufügen</string>
|
||||
<string name="contact">Kontakt</string>
|
||||
<string name="unable_to_start_recording">Aufnahme kann nicht gestartet werden</string>
|
||||
|
@ -681,7 +675,6 @@
|
|||
<string name="server_info_partial">teilweise</string>
|
||||
<string name="pref_show_foreground_service_summary">Einige Android Geräte schließen manche Apps nach einer gewissen Zeitspanne automatisch und du wirst keine neuen Nachrichten mehr empfangen können. Falls du solche Probleme hast, versuche den Vordergrunddienst zu aktivieren. Bitte beachte, dass dadurch ein permanenter Eintrag in der Benachrichtigungsleiste erscheint.</string>
|
||||
<string name="pref_show_foreground_service">Nutze Vordergrunddienst</string>
|
||||
<string name="update_service">Pix-Art Messenger Update Dienst</string>
|
||||
<string name="install_update">Update installieren?</string>
|
||||
<string name="highlight_in_muc">Benutzer erwähnen</string>
|
||||
<string name="no_application_found_to_open_link">Keine Anwendung zum Öffnen von Webseiten gefunden</string>
|
||||
|
@ -703,7 +696,7 @@
|
|||
<string name="no_write_access_in_public_muc">Du bist kein Mitglied dieser Gruppe und hast aktuell keine Erlaubnis zum Schreiben.\nBitte gehe in die Gruppenchat-Details indem du <b>OK</b> klickst und sende eine private Nachricht an einen Moderator, Administrator oder Eigentümer dadurch, dass du auf den Namen eines dieser Mitglieder am Anfang der Liste lange klickst und bitte um Erlaubnis schreiben zu dürfen.</string>
|
||||
<string name="snooze">Schlummern</string>
|
||||
<string name="huawei_protected_apps">Geschützte Apps</string>
|
||||
<string name="huawei_protected_apps_summary">Um Benachrichtigungen zu erhalten, selbst wenn der Bildschirm ausgeschaltet ist, füge Pix-Art Messenger bitte der Liste geschützter Apps hinzu.</string>
|
||||
<string name="huawei_protected_apps_summary">Um Benachrichtigungen zu erhalten, selbst wenn der Bildschirm ausgeschaltet ist, füge PiratX bitte der Liste geschützter Apps hinzu.</string>
|
||||
<string name="pref_enable_multi_accounts_title">Mehrprofil-Modus aktivieren</string>
|
||||
<string name="pref_enable_multi_accounts_summary">Möchtest du mehrere Profile benutzen?</string>
|
||||
<string name="mtm_accept_cert">Unbekanntes Zertifikat akzeptieren?</string>
|
||||
|
@ -716,13 +709,13 @@
|
|||
<string name="qr_code_scanner_needs_access_to_camera">Der QR-Code Scanner benötigt Zugriff auf die Kamera</string>
|
||||
<string name="pref_scroll_to_bottom_summary">Nach dem abschicken einer Nachricht zum Ende springen</string>
|
||||
<string name="pref_scroll_to_bottom">Zum Ende springen</string>
|
||||
<string name="no_camera_permission">Pix-Art Messenger benötigt Zugriff auf die Kamera</string>
|
||||
<string name="no_camera_permission">PiratX benötigt Zugriff auf die Kamera</string>
|
||||
<string name="edit_status_message_title">Statusnachricht bearbeiten</string>
|
||||
<string name="edit_status_message">Statusnachricht bearbeiten</string>
|
||||
<string name="pref_automatically_delete_messages_description">Nachrichten von diesem Gerät nach dem eingestellten Zeitfenster automatisch löschen.</string>
|
||||
<string name="pref_automatically_delete_messages">Nachrichten automatisch löschen</string>
|
||||
<string name="disable_encryption">Verschlüsselung deaktivieren</string>
|
||||
<string name="error_trustkey_general">Pix-Art Messenger ist nicht in der Lage verschlüsselte Nachrichten an %1$s zu senden. Dies kann daran liegen, dass dein Kontakt einen veralteten Server oder Client verwendet, der die OMEMO -Verschlüsselung nicht unterstützt.</string>
|
||||
<string name="error_trustkey_general">Es können keine verschlüsselten Nachrichten an %1$s gesendet werden. Dies kann daran liegen, dass dein Kontakt einen veralteten Server oder Client verwendet, der die OMEMO -Verschlüsselung nicht unterstützt.</string>
|
||||
<string name="error_trustkey_device_list">Geräteliste konnte nicht abgerufen werden</string>
|
||||
<string name="error_trustkey_bundle">Gerätebündel konnten nicht abgerufen werden</string>
|
||||
<string name="error_trustkey_hint_mutual">Tipp: In manchen Fällen kann dies behoben werden, indem man sich gegenseitig in die Kontaktlisten hinzufügt.</string>
|
||||
|
@ -747,7 +740,7 @@
|
|||
<string name="large">Groß</string>
|
||||
<string name="create_shortcut">Verknüpfung erstellen</string>
|
||||
<string name="not_encrypted_for_this_device">Die Nachricht wurde für dieses Gerät nicht verschlüsselt.</string>
|
||||
<string name="no_microphone_permission">Pix-Art Messenger benötigt Zugriff auf das Mikrofon</string>
|
||||
<string name="no_microphone_permission">PiratX benötigt Zugriff auf das Mikrofon</string>
|
||||
<string name="search_messages">Nachrichten suchen</string>
|
||||
<string name="gif">GIF</string>
|
||||
<string name="view_conversation">Unterhaltung öffnen</string>
|
||||
|
@ -777,14 +770,14 @@
|
|||
<string name="conference_destroyed">Dieser Gruppenchat wurde aufgelöst</string>
|
||||
<string name="no_application_found_to_view_contact">Keine Anwendung zum Anzeigen von Kontakten gefunden</string>
|
||||
<string name="welcome_server_info">Wir empfehlen dir blabber.im als Anbieter.</string>
|
||||
<string name="no_location_permission">Pix-Art Messenger benötigt Zugriff auf die Standortdienste</string>
|
||||
<string name="no_location_permission">PiratX benötigt Zugriff auf die Standortdienste</string>
|
||||
<string name="pref_show_record_voice_btn_summary">Zeige Sprachaufnahme-Taste als Schnell-Taste in den Chats</string>
|
||||
<string name="pref_show_record_voice_btn">Zeige Sprachaufnahme-Taste</string>
|
||||
<string name="pref_use_quick_share_attachment_choice_summary">Ersetze Absende-Knopf durch Anlagen-Auswahl, wenn keine Nachricht eingetippt wurde. Andernfalls zeige Schnell-Tasten, welche in der folgenden Einstellung konfiguriert werden können.</string>
|
||||
<string name="pref_quick_share_attachment_choice">Anlagen-Auswahl</string>
|
||||
<string name="unable_to_save_recording">Aufnahme kann nicht gespeichert werden</string>
|
||||
<string name="foreground_service_channel_name">Vordergrunddienst</string>
|
||||
<string name="foreground_service_channel_description">Diese Benachrichtigungskategorie zeigt eine Benachrichtigung, wenn Pix-Art Messenger ausgeführt wird.</string>
|
||||
<string name="foreground_service_channel_description">Diese Benachrichtigungskategorie zeigt eine Benachrichtigung, wenn PiratX ausgeführt wird.</string>
|
||||
<string name="notification_group_status_information">Statusinformation</string>
|
||||
<string name="error_channel_name">Verbindungsprobleme</string>
|
||||
<string name="error_channel_description">Diese Benachrichtigungskategorie zeigt eine Benachrichtigung, wenn ein Verbindungsproblem besteht.</string>
|
||||
|
@ -835,7 +828,7 @@
|
|||
<string name="open_with">Öffnen mit…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc Commands: Benutzer einladen</string>
|
||||
<string name="choose_account">Profil wählen</string>
|
||||
<string name="set_profile_picture">Pix-Art Messenger Profilbild</string>
|
||||
<string name="set_profile_picture">Profilbild</string>
|
||||
<string name="restore_backup">Sicherung wiederherstellen</string>
|
||||
<string name="restore">Wiederherstellen</string>
|
||||
<string name="enter_password_to_restore">Um die Sicherung wiederherzustellen, gib für das Profil %s dein Kennwort ein.</string>
|
||||
|
@ -896,7 +889,7 @@
|
|||
<string name="password_forgotten_title">Passwort vergessen</string>
|
||||
<string name="password_forgotten_text">Du hast dein Passwort vergessen? Wir versuchen, die Support-Website deines Providers zu öffnen.</string>
|
||||
<string name="set_settings_intro">Hier kannst du einige wichtige Einstellungen zur Privatsphäre nach deinen Wünschen vornehmen. Alle Änderungen können auch später angepasst werden.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Zeige eine Vorschau von Standorten direkt im Chat, dabei wird eine Verbindung zum Pix-Art-Server hergestellt.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Zeige eine Vorschau von Standorten direkt im Chat, dabei wird eine Verbindung zum PiratX-Server hergestellt.</string>
|
||||
<string name="pref_show_mappreview_inside">Zeige Karten-Vorschau im Chat</string>
|
||||
<string name="pref_use_internal_updater_summary">Lasse den Messenger einmal am Tag nach einer neuen Version suchen</string>
|
||||
<string name="pref_use_internal_updater">Nach Updates suchen</string>
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
<string name="offering">προσφορά...</string>
|
||||
<string name="waiting">αναμονή...</string>
|
||||
<string name="no_pgp_key">Δεν βρέθηκε κλειδί OpenPGP</string>
|
||||
<string name="contact_has_no_pgp_key">Το Pix-Art Messenger αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί η επαφή σας δεν ανακοινώνει το δημόσιο κλειδί της.\n\n<small>Παρακαλώ ζητήστε από την επαφή σας να εγκαταστήσει το OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">Το PiratX αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί η επαφή σας δεν ανακοινώνει το δημόσιο κλειδί της.\n\n<small>Παρακαλώ ζητήστε από την επαφή σας να εγκαταστήσει το OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Δεν βρέθηκαν κλειδιά OpenPGP</string>
|
||||
<string name="pref_general">Γενικά</string>
|
||||
<string name="pref_vibrate">Δόνηση</string>
|
||||
|
|
|
@ -60,8 +60,8 @@
|
|||
<string name="unblock">Desbloquear</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="ok">Aceptar</string>
|
||||
<string name="crash_report_title">Pix-Art Messenger se ha detenido.</string>
|
||||
<string name="crash_report_message">Si envías informes de fallos ayudas al desarrollo de Pix-Art Messenger\n<b>Aviso:</b> Esto usará tu cuenta XMPP para enviar los registros de error al desarrollador.</string>
|
||||
<string name="crash_report_title">PiratX se ha detenido.</string>
|
||||
<string name="crash_report_message">Si envías informes de fallos ayudas al desarrollo de PiratX\n<b>Aviso:</b> Esto usará tu cuenta XMPP para enviar los registros de error al desarrollador.</string>
|
||||
<string name="send_now">Enviar ahora</string>
|
||||
<string name="send_never">No preguntar de nuevo</string>
|
||||
<string name="problem_connecting_to_account">No se ha podido conectar a la cuenta</string>
|
||||
|
@ -87,13 +87,13 @@
|
|||
<string name="send_unencrypted">Enviar sin cifrar</string>
|
||||
<string name="decryption_failed">Falló el descifrado. Tal vez no tengas la clave privada apropiada.</string>
|
||||
<string name="openkeychain_required">OpenKeychain</string>
|
||||
<string name="openkeychain_required_long">Pix-Art Messenger utiliza una aplicación de terceros llamada <b>OpenKeychain</b> para cifrar y descifrar mensajes y gestionar tus claves públicas.\n\nOpenKeychain está publicado bajo licencia GPLv3 y disponible on F-Droid y Google Play.\n\n<small>(Por favor, reinicie Pix-Art Messenger después.)</small></string>
|
||||
<string name="openkeychain_required_long">PiratX utiliza una aplicación de terceros llamada <b>OpenKeychain</b> para cifrar y descifrar mensajes y gestionar tus claves públicas.\n\nOpenKeychain está publicado bajo licencia GPLv3 y disponible on F-Droid y Google Play.\n\n<small>(Por favor, reinicie PiratX después.)</small></string>
|
||||
<string name="restart">Reiniciar</string>
|
||||
<string name="install">Instalar</string>
|
||||
<string name="offering">ofreciendo…</string>
|
||||
<string name="waiting">esperando…</string>
|
||||
<string name="no_pgp_key">Clave OpenPGP no encontrada</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger no ha podido cifrar tus mensajes porque tu contacto no está anunciando su clave pública.\n\n<small>Por favor, pide a tu contacto que configure OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX no ha podido cifrar tus mensajes porque tu contacto no está anunciando su clave pública.\n\n<small>Por favor, pide a tu contacto que configure OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Claves OpenPGP no encontradas</string>
|
||||
<string name="pref_general">General</string>
|
||||
<string name="pref_accept_files_wifi">Aceptar archivos en conexiones WiFi</string>
|
||||
|
@ -111,7 +111,7 @@
|
|||
<string name="pref_sound">Tono</string>
|
||||
<string name="pref_sound_summary">Reproduce tono con la notificación</string>
|
||||
<string name="pref_send_crash">Enviar informes de errores</string>
|
||||
<string name="pref_send_crash_summary">Enviando informes de errores, puedes ayudar al desarrollo continuo de Pix-Art Messenger</string>
|
||||
<string name="pref_send_crash_summary">Enviando informes de errores, puedes ayudar al desarrollo continuo de PiratX</string>
|
||||
<string name="pref_confirm_messages">Confirmar mensajes</string>
|
||||
<string name="pref_confirm_messages_summary">Permitir a tus contactos saber cuando has recibido y leído sus mensajes</string>
|
||||
<string name="pref_ui_options">Pantalla</string>
|
||||
|
@ -253,7 +253,7 @@
|
|||
<string name="pref_allow_message_correction">Corrección de mensaje</string>
|
||||
<string name="pref_allow_message_correction_summary">Permitir a tus contactos editar mensajes previamente enviados</string>
|
||||
<string name="pref_expert_options">Opciones para expertos</string>
|
||||
<string name="title_activity_about">Acerca de Pix-Art Messenger</string>
|
||||
<string name="title_activity_about">Acerca de PiratX</string>
|
||||
<string name="pref_about_conversations_summary">Información de compilación y licencia</string>
|
||||
<string name="title_pref_quiet_hours">Horario de silencio</string>
|
||||
<string name="title_pref_quiet_hours_start_time">Hora de comienzo</string>
|
||||
|
@ -434,10 +434,8 @@
|
|||
<string name="download_failed_could_not_write_file">Falló la descarga: No se puede escribir el fichero</string>
|
||||
<string name="action_check_update">Comprobar actualizaciones</string>
|
||||
<string name="title_activity_updater">Servicio de actualización</string>
|
||||
<string name="update_available">Versión %1$s está disponible.\n\nTamaño archivo: %2$s\n\nActualización a la versión %1$s ahora?</string>
|
||||
<string name="remind_later">después</string>
|
||||
<string name="update">Actualizar</string>
|
||||
<string name="no_update_available">No hay actualizaciones disponibles</string>
|
||||
<string name="download_started">Se ha iniciado la descarga</string>
|
||||
<string name="account_status_tor_unavailable">Red Tor no disponible</string>
|
||||
<string name="account_status_bind_failure">Fallo de enlace</string>
|
||||
|
@ -447,11 +445,9 @@
|
|||
<string name="pref_away_when_screen_off">Ausente con pantalla apagada</string>
|
||||
<string name="pref_away_when_screen_off_summary">Cambia tu estado a ausente cuando la pantalla está apagada</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"No molestar\" en modo silencio</string>
|
||||
<string name="update_info">Pix-Art Messenger está descargando e instalando la nueva versión automáticamente.\n\nPor favor, espere…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Cambia tu estado a \"no molestar\" cuando el dispositivo está en modo silencio</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Modo vibración como modo silencio</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Cambia tu estado a \"no molestar\" cuando el dispositivo está en modo vibración</string>
|
||||
<string name="hostname_example">xmpp.ejemplo.com</string>
|
||||
<string name="action_add_account_with_certificate">Añadir cuenta con certificado</string>
|
||||
<string name="unable_to_parse_certificate">No se ha podido leer el certificado</string>
|
||||
<string name="authenticate_with_certificate">Dejar vacío para autenticar certificado w/ </string>
|
||||
|
@ -479,9 +475,9 @@
|
|||
<item quantity="other">%d mensajes</item>
|
||||
</plurals>
|
||||
<string name="load_more_messages">Cargar más mensajes</string>
|
||||
<string name="no_storage_permission">Pix-Art Messenger necesita acceder al almacenamiento externo</string>
|
||||
<string name="no_storage_permission">PiratX necesita acceder al almacenamiento externo</string>
|
||||
<string name="sync_with_contacts">Sincronizar contactos</string>
|
||||
<string name="sync_with_contacts_long">Pix-Art Messenger quiere cruzar tu lista de contactos de XMPP con tus contactos del móvil para mostrar sus nombres completos y sus fotos de perfil.\n\nPix-Art Messenger solo leerá tus contactos y los cruzará localmente sin subirlos a tu servidor.\n\nEl sistema te preguntará ahora para conceder los permisos de acceso a tus contactos del móvil.</string>
|
||||
<string name="sync_with_contacts_long">PiratX quiere cruzar tu lista de contactos de XMPP con tus contactos del móvil para mostrar sus nombres completos y sus fotos de perfil.\n\nPiratX solo leerá tus contactos y los cruzará localmente sin subirlos a tu servidor.\n\nEl sistema te preguntará ahora para conceder los permisos de acceso a tus contactos del móvil.</string>
|
||||
<string name="notify_on_all_messages">Notificar para todos los mensajes</string>
|
||||
<string name="notify_only_when_highlighted">Notificar solo cuando eres mencionado</string>
|
||||
<string name="notify_never">Notificaciones deshabilitadas</string>
|
||||
|
@ -496,8 +492,8 @@
|
|||
<string name="video_original">original (sin comprimir)</string>
|
||||
<string name="always">Siempre</string>
|
||||
<string name="battery_optimizations_enabled">Optimizaciones de uso de batería habilitadas</string>
|
||||
<string name="battery_optimizations_enabled_explained">Tu dispositivo está realizando optimizaciones de uso de batería en Pix-Art Messenger que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\nEs recomendable deshabilitarlas.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Tu dispositivo está realizando optimizaciones de uso de batería en Pix-Art Messenger que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\n\nEl sistema te preguntará ahora para deshabilitarlas.</string>
|
||||
<string name="battery_optimizations_enabled_explained">Tu dispositivo está realizando optimizaciones de uso de batería en PiratX que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\nEs recomendable deshabilitarlas.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Tu dispositivo está realizando optimizaciones de uso de batería en PiratX que pueden hacer que los mensajes se retrasen o incluso hacer que se pierdan.\n\nEl sistema te preguntará ahora para deshabilitarlas.</string>
|
||||
<string name="install_from_unknown_sources_disabled">Instalación desde orígenes desconocidos desactivada</string>
|
||||
<string name="install_from_unknown_sources_disabled_dialog">El dispositivo está configurado para no permitir la instalación de aplicaciones desde orígenes desconocidos, salvo desde Google PlayStore.\n\nAhora se le pedirá que permita la instalación de aplicaciones desde orígenes desconocidos.</string>
|
||||
<string name="disable">Deshabilitar</string>
|
||||
|
@ -509,7 +505,7 @@
|
|||
<string name="correct_message">Corregir mensaje</string>
|
||||
<string name="send_corrected_message">Enviar mensaje corregido</string>
|
||||
<string name="no_keys_just_confirm">Ya confías en este contacto. Seleccionando \'hecho\', estás confirmando que %s es parte de este grupo.</string>
|
||||
<string name="contacts_have_no_pgp_keys">Pix-Art Messenger no ha podido cifrar tus mensajes porque tus contactos no están anunciando su clave pública.\n\n<small>Por favor, pide a tus contactos que configuren OpenPGP.</small></string>
|
||||
<string name="contacts_have_no_pgp_keys">PiratX no ha podido cifrar tus mensajes porque tus contactos no están anunciando su clave pública.\n\n<small>Por favor, pide a tus contactos que configuren OpenPGP.</small></string>
|
||||
<string name="this_account_is_disabled">Has deshabilitado esta cuenta</string>
|
||||
<string name="no_application_to_share_uri">No se ha encontrado ninguna aplicación para compartir la URI</string>
|
||||
<string name="share_uri_with">Compartir URI con...</string>
|
||||
|
@ -544,13 +540,11 @@
|
|||
<string name="import_text">Si hay una copia de seguridad disponible, puedes importarla pulsando el botón de debajo.</string>
|
||||
<string name="import_database">Importar copia de seguridad</string>
|
||||
<string name="invite_again">Invitar de nuevo</string>
|
||||
<string name="inviteUser_Subject">te ha invitado a través de</string>
|
||||
<string name="InviteText">Hola,\n\n%s te ha invitado a una conversación con Pix-Art Messenger. Si eres usuario de Android, pruébalo y haz clic en el siguiente enlace...</string>
|
||||
<string name="InviteText">Hola,\n\n%s te ha invitado a una conversación con PiratX Messenger. Si eres usuario de Android, pruébalo y haz clic en el siguiente enlace...</string>
|
||||
<string name="pref_broadcast_last_activity">Informar de tu última interacción</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Informar a tus contactos cuando usas Pix-Art Messenger</string>
|
||||
<string name="invite_user">Invitar a Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger le pedirá que conceda algunos permisos. Es importante que permitas que todos estos permisos usen todas las características de este mensajero. Si usted niega cualquiera de estos permisos, la aplicación se cerrará sola.</string>
|
||||
<string name="request_permissions_message_again">Usted ha negado uno o todos los permisos requeridos para Pix-Art Messenger. ¿Desea ir a la configuración para permitir estos permisos? Si rechaza uno de estos permisos, la aplicación se cerrará.</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Informar a tus contactos cuando usas PiratX</string>
|
||||
<string name="request_permissions_message">PiratX le pedirá que conceda algunos permisos. Es importante que permitas que todos estos permisos usen todas las características de este mensajero. Si usted niega cualquiera de estos permisos, la aplicación se cerrará sola.</string>
|
||||
<string name="request_permissions_message_again">Usted ha negado uno o todos los permisos requeridos para PiratX. ¿Desea ir a la configuración para permitir estos permisos? Si rechaza uno de estos permisos, la aplicación se cerrará.</string>
|
||||
<string name="unable_to_connect_to_keychain">No se ha podido conectar a OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Este dispositivo ya no está en uso</string>
|
||||
<string name="please_wait">Espere, por favor…</string>
|
||||
|
@ -578,8 +572,8 @@
|
|||
<string name="show_error_message">Mostrar mensaje de error</string>
|
||||
<string name="error_message">Mensaje de error</string>
|
||||
<string name="data_saver_enabled">Optimización de datos habilitado</string>
|
||||
<string name="data_saver_enabled_explained">Tu sistema operativo está restringiendo a Pix-Art Messenger acceder a internet cuando está en segundo plano. Para recibir notificaciones de nuevos mensajes deberías permitir a Pix-Art Messenger acceder a internet cuando la optimización de datos está habilitada.\nPix-Art Messenger realizará igualmente optimizaciones para ahorrar datos cuando sea posible.</string>
|
||||
<string name="device_does_not_support_data_saver">Tu dispositivo no soporta la opción de deshabilitar la optimización de datos para Pix-Art Messenger</string>
|
||||
<string name="data_saver_enabled_explained">Tu sistema operativo está restringiendo a PiratX acceder a internet cuando está en segundo plano. Para recibir notificaciones de nuevos mensajes deberías permitir a PiratX acceder a internet cuando la optimización de datos está habilitada.\nPiratX realizará igualmente optimizaciones para ahorrar datos cuando sea posible.</string>
|
||||
<string name="device_does_not_support_data_saver">Tu dispositivo no soporta la opción de deshabilitar la optimización de datos para PiratX</string>
|
||||
<string name="add_to_contact_list">Añadir a contactos</string>
|
||||
<string name="contact">Contacto</string>
|
||||
<string name="unable_to_start_recording">No se puede iniciar la grabación</string>
|
||||
|
@ -681,7 +675,6 @@
|
|||
<string name="server_info_partial">Parcial</string>
|
||||
<string name="pref_show_foreground_service_summary">Algunos dispositivos Android cerrarán algunas aplicaciones al cabo de un tiempo y no podrás recibir nuevos mensajes. Si tiene estos problemas, intente activar el servicio de primer plano. Pero tenga en cuenta que tendrá una notificación permanente con esta opción marcada.</string>
|
||||
<string name="pref_show_foreground_service">Usar servicio en primer plano</string>
|
||||
<string name="update_service">Servicio de actualización de Pix-Art Messenger</string>
|
||||
<string name="install_update">¿Instalar actualización?</string>
|
||||
<string name="highlight_in_muc">menciona usuario</string>
|
||||
<string name="no_application_found_to_open_link">No se ha encontrado aplicación para abrir la página web</string>
|
||||
|
@ -703,7 +696,7 @@
|
|||
<string name="no_write_access_in_public_muc">De momento no estás participando en este grupo y no puedes escribir en él\nPor favor, ve a los detalles del grupo presionando <b>OK</b> y envía un mensaje privado a un moderador, administrador o propietario haciendo un clic largo en el nombre de los miembros en la parte superior de la lista para solicitar acceso de escritura en el grupo.</string>
|
||||
<string name="snooze">Dormitar</string>
|
||||
<string name="huawei_protected_apps">Aplicaciones protegidas</string>
|
||||
<string name="huawei_protected_apps_summary">Para recibir notificaciones incluso cuando la pantalla está apagada, por favor añade Pix-Art Messenger a la lista de aplicaciones protegidas.</string>
|
||||
<string name="huawei_protected_apps_summary">Para recibir notificaciones incluso cuando la pantalla está apagada, por favor añade PiratX a la lista de aplicaciones protegidas.</string>
|
||||
<string name="pref_enable_multi_accounts_title">Habilitar múltiples cuentas</string>
|
||||
<string name="pref_enable_multi_accounts_summary">¿Quieres usar cuentas múltiples?</string>
|
||||
<string name="mtm_accept_cert">¿Aceptar certificado desconocido?</string>
|
||||
|
@ -716,13 +709,13 @@
|
|||
<string name="qr_code_scanner_needs_access_to_camera">El escáner de código QR necesita acceso a la cámara</string>
|
||||
<string name="pref_scroll_to_bottom_summary">Desplazarse hasta abajo después de enviar un mensaje</string>
|
||||
<string name="pref_scroll_to_bottom">Desplazarse hasta abajo</string>
|
||||
<string name="no_camera_permission">Pix-Art Messenger necesita acceder a la cámara</string>
|
||||
<string name="no_camera_permission">PiratX necesita acceder a la cámara</string>
|
||||
<string name="edit_status_message_title">Editar el mensaje de estado</string>
|
||||
<string name="edit_status_message">Editar el mensaje de estado</string>
|
||||
<string name="pref_automatically_delete_messages_description">Eliminar automáticamente los mensajes del dispositivo que sean anteriores al tiempo seleccionado.</string>
|
||||
<string name="pref_automatically_delete_messages">Borrado automático de mensajes</string>
|
||||
<string name="disable_encryption">Desactivar cifrado</string>
|
||||
<string name="error_trustkey_general">Pix-Art Messenger no puede enviar mensajes cifrados a %1$s. Esto puede ser debido a que tu contacto está usando un servidor o un cliente desactualizado que no puede manejar las claves OMEMO.</string>
|
||||
<string name="error_trustkey_general">PiratX no puede enviar mensajes cifrados a %1$s. Esto puede ser debido a que tu contacto está usando un servidor o un cliente desactualizado que no puede manejar las claves OMEMO.</string>
|
||||
<string name="error_trustkey_device_list">No se pudo obtener la lista de dispositivos</string>
|
||||
<string name="error_trustkey_bundle">No se han podido conseguir las claves del dispositivo</string>
|
||||
<string name="error_trustkey_hint_mutual">Consejo: En algunas ocasiones esto se puede arreglar al agregarse cada uno a su lista de contactos.</string>
|
||||
|
@ -747,7 +740,7 @@
|
|||
<string name="large">Grande</string>
|
||||
<string name="create_shortcut">Crear atajo</string>
|
||||
<string name="not_encrypted_for_this_device">El mensaje no fue cifrado para este dispositivo.</string>
|
||||
<string name="no_microphone_permission">Pix-Art Messenger necesita acceder al micrófono</string>
|
||||
<string name="no_microphone_permission">PiratX necesita acceder al micrófono</string>
|
||||
<string name="search_messages">Buscar mensajes</string>
|
||||
<string name="gif">GIF</string>
|
||||
<string name="view_conversation">Ver conversación</string>
|
||||
|
@ -777,14 +770,14 @@
|
|||
<string name="conference_destroyed">Este grupo de chat ha sido destruido</string>
|
||||
<string name="no_application_found_to_view_contact">No se ha encontrado ninguna aplicación con la que ver este contacto</string>
|
||||
<string name="welcome_server_info">Recomendamos el uso de blabber.im como tu proveedor.</string>
|
||||
<string name="no_location_permission">Pix-Art Messenger necesita acceder a los servicios de ubicación</string>
|
||||
<string name="no_location_permission">PiratX necesita acceder a los servicios de ubicación</string>
|
||||
<string name="pref_show_record_voice_btn_summary">Mostrar el botón de grabación de voz en conversaciones como acción rápida</string>
|
||||
<string name="pref_show_record_voice_btn">Mostrar botón de grabación de voz</string>
|
||||
<string name="pref_use_quick_share_attachment_choice_summary">Reemplazar el botón de enviar con selección de adjunto si no se está tecleando un mensaje. En otro caso mostrar acciones rápidas, que pueden ser configuradas en la siguiente opción.</string>
|
||||
<string name="pref_quick_share_attachment_choice">Seleccionar adjunto</string>
|
||||
<string name="unable_to_save_recording">Imposible guardar la grabación</string>
|
||||
<string name="foreground_service_channel_name">Servicio en primer plano</string>
|
||||
<string name="foreground_service_channel_description">Esta categoría se usa para mostrar una notificación permanente indicando que Pix-Art Messenger se está ejecutando.</string>
|
||||
<string name="foreground_service_channel_description">Esta categoría se usa para mostrar una notificación permanente indicando que PiratX se está ejecutando.</string>
|
||||
<string name="notification_group_status_information">Información de estado</string>
|
||||
<string name="error_channel_name">Problemas de conectividad</string>
|
||||
<string name="error_channel_description">Esta categoría se usa para mostrar una notificación en el caso de que exista algún problema conectando a una cuenta.</string>
|
||||
|
@ -835,7 +828,7 @@
|
|||
<string name="open_with">Abrir con…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc Commands: invitación de usuario</string>
|
||||
<string name="choose_account">Elige cuenta</string>
|
||||
<string name="set_profile_picture">Imagen de perfil de Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Imagen de perfil</string>
|
||||
<string name="restore_backup">Restaurar copia de seguridad</string>
|
||||
<string name="restore">Restaurar</string>
|
||||
<string name="enter_password_to_restore">Escribe tu contraseña para la cuenta %s para restaurar la copia de seguridad.</string>
|
||||
|
@ -896,7 +889,7 @@
|
|||
<string name="password_forgotten_title">Contraseña olvidada</string>
|
||||
<string name="password_forgotten_text">¿Has olvidado la contraseña de tu cuenta? Ahora intentaremos abrir la web de soporte de tu proveedor.</string>
|
||||
<string name="set_settings_intro">Aquí puedes establecer algunas configuraciones de privacidad importantes. Todas las configuraciones pueden ser modificadas más tarde.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Mostrar previsualizaciones de mapas directamente en la vista de chat, se establecerá una conexión al servidor Pix-Art.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Mostrar previsualizaciones de mapas directamente en la vista de chat, se establecerá una conexión al servidor PiratX.</string>
|
||||
<string name="pref_show_mappreview_inside">Mostrar previsualizaciones de localizaciones en el chat</string>
|
||||
<string name="pref_use_internal_updater_summary">Permitir que la aplicación busque actualizaciones una vez al día</string>
|
||||
<string name="pref_use_internal_updater">buscar actualizaciones</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">eskeintzen…</string>
|
||||
<string name="waiting">itxaroten…</string>
|
||||
<string name="no_pgp_key">Ez da OpenPGP gakorik aurkitu</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger ez da zure mezuak enkriptatzeko gai zure kontaktua bere gako publikoa jakinarazten ez dagoelako.\n\n<small>Mesedez eskatu ezaiozu zure kontaktuari openPGP konfigura dezan.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX ez da zure mezuak enkriptatzeko gai zure kontaktua bere gako publikoa jakinarazten ez dagoelako.\n\n<small>Mesedez eskatu ezaiozu zure kontaktuari openPGP konfigura dezan.</small></string>
|
||||
<string name="no_pgp_keys">Ez da OpenPGP gakorik aurkitu</string>
|
||||
<string name="pref_general">Orokorrak</string>
|
||||
<string name="pref_attachments">Eranskinak</string>
|
||||
|
@ -387,7 +387,6 @@
|
|||
<string name="pref_dnd_on_silent_mode_summary">Zure baliabidea \"Ez gogaitu\" bezala markatzen du gailua modu isilean dagoenean</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Dardara modu isila bezala tratatu</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Zure baliabidea \"Ez gogaitu\" bezala markatzen du gailua dardara moduan dagoenean</string>
|
||||
<string name="hostname_example">xmpp.adibidea.com</string>
|
||||
<string name="action_add_account_with_certificate">Kontua ziurtagiriarekin gehitu</string>
|
||||
<string name="unable_to_parse_certificate">Ezin izan da ziurtagiria aztertu</string>
|
||||
<string name="authenticate_with_certificate">Utzi hutsik ziurtagiririk gabe autentifikatzeko</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">handog…</string>
|
||||
<string name="waiting">maghintay…</string>
|
||||
<string name="no_pgp_key">Walang OpenPGP Key na natagpuan</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger ay hindi na encrypt sa iyong mensahe dahil sa iyong kontak na hindi nagpasabi sa public key.\n\n<small>Pakitanong sa iyo\nng kontat na i-setup ang OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX ay hindi na encrypt sa iyong mensahe dahil sa iyong kontak na hindi nagpasabi sa public key.\n\n<small>Pakitanong sa iyo\nng kontat na i-setup ang OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Walang OpenPGP na natagpuan</string>
|
||||
<string name="pref_general">Heneral</string>
|
||||
<string name="pref_accept_files_wifi">Tanggapin ang mga dokumento sa pamamagitan ng wifi koneksyon</string>
|
||||
|
@ -390,10 +390,8 @@
|
|||
<string name="download_failed_could_not_write_file">Nabigo ang pag-download: Hindi ma-isulat ang file</string>
|
||||
<string name="action_check_update">Tingnan ang Mga Update</string>
|
||||
<string name="title_activity_updater">I-update ang serbisyo</string>
|
||||
<string name="update_available">Ang bersyon na %1$s ay magagamit. \n\nFilipino:%2$s\n\nUpdate sa bersyon na %1$s ngayon?</string>
|
||||
<string name="remind_later">mamaya</string>
|
||||
<string name="update">magpabago</string>
|
||||
<string name="no_update_available">Walang available na update</string>
|
||||
<string name="download_started">Nagsimula ang pag-download</string>
|
||||
<string name="account_status_tor_unavailable">Hindi magagamit ang network ng Tor</string>
|
||||
<string name="account_status_bind_failure">Bind failure</string>
|
||||
|
@ -402,11 +400,9 @@
|
|||
<string name="pref_away_when_screen_off">Lumayo kapag naka-off ang screen</string>
|
||||
<string name="pref_away_when_screen_off_summary">Tinitiyak ang iyong mapagkukunan bilang malayo kapag naka-off ang screen</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Huwag abalahin\" sa tahimik na mode</string>
|
||||
<string name="update_info">Ang Pix-Art Messenger ay awtomatikong nagda-download at nag-install ng bagong bersyon. \n\nMangyari lamang na maghintay…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Markahan ang iyong mapagkukunan bilang \"Huwag abalahin\" kapag ang aparato ay nasa tahimik na mode</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Tratuhin ang vibrate bilang silent mode</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Binibigyang marka ang iyong mapagkukunan bilang \"Huwag mang-istorbo\" kapag ang aparato ay nasa vibrate</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Magdagdag ng account na may sertipiko</string>
|
||||
<string name="unable_to_parse_certificate">Hindi ma-parse ang certificate</string>
|
||||
<string name="authenticate_with_certificate">Mag-iwan ng walang laman upang mapatunayan ang w / certificate</string>
|
||||
|
@ -490,12 +486,10 @@
|
|||
<string name="creating_conference">Paglikha ng grupo ng chat…</string>
|
||||
<string name="import_database">Mag-import ng backup</string>
|
||||
<string name="invite_again">Mag-imbita muli</string>
|
||||
<string name="inviteUser_Subject">ay inanyayahan ka sa pamamagitan ng</string>
|
||||
<string name="InviteText">Kumusta, \n\ninanyayahan ka ng user %s sa Pix-Art Messenger. Kung gumagamit ka ng Android, subukan ito at i-click ang sumusunod na link upang magsimula...</string>
|
||||
<string name="InviteText">Kumusta, \n\ninanyayahan ka ng user %s sa PiratX Messenger. Kung gumagamit ka ng Android, subukan ito at i-click ang sumusunod na link upang magsimula...</string>
|
||||
<string name="pref_broadcast_last_activity">Broadcast Last User Interaction</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Hayaan ang lahat ng iyong mga contact malaman kapag gumagamit ng Pix-Art Messenger</string>
|
||||
<string name="invite_user">Mag-imbita sa Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Hinihiling ka ng Pix-Art Messenger na pahintulutan ang ilang mga pahintulot. Mahalaga na payagan mo ang lahat ng mga pahintulot na gamitin ang lahat ng mga tampok ng sugo na ito. Kung tinatanggihan mo ang alinman sa mga pahintulot na ito ay sarhan ang app mismo.</string>
|
||||
<string name="request_permissions_message">Hinihiling ka ng PiratX na pahintulutan ang ilang mga pahintulot. Mahalaga na payagan mo ang lahat ng mga pahintulot na gamitin ang lahat ng mga tampok ng sugo na ito. Kung tinatanggihan mo ang alinman sa mga pahintulot na ito ay sarhan ang app mismo.</string>
|
||||
<string name="request_permissions_message_again">Tinanggihan mo ang ilan o lahat ng mga pahintulot na kinakailangan para sa Pix-Art Messenger. Gusto mo bang tumalon sa mga setting at payagan ang mga pahintulot na ito? Kung tinanggihan mo ang alinman sa mga pahintulot na ito, tutuparin ng app ang sarili nito.</string>
|
||||
<string name="unable_to_connect_to_keychain">Hindi makakonekta sa OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Hindi na ginagamit ang aparatong ito</string>
|
||||
|
@ -595,7 +589,6 @@
|
|||
<string name="server_info_partial">bahagyang</string>
|
||||
<string name="pref_show_foreground_service_summary">Isasara ng ilang mga Android device ang ilang mga app pagkatapos ng isang matagal na panahon at hindi ka makakakuha ng mga bagong mensahe. Kung mayroon kayong mga problema, subukang gawing aktibo ang serbisyo sa harapan. Ngunit tandaan, na magkakaroon ka ng isang permanenteng abiso sa naka-check na opsiyon na ito.</string>
|
||||
<string name="pref_show_foreground_service">Gumamit ng serbisyo sa harapan</string>
|
||||
<string name="update_service">Serbisyo sa pag-update ng Pix-Art Messenger</string>
|
||||
<string name="install_update">I-install ang update?</string>
|
||||
<string name="highlight_in_muc">i-highlight ang user</string>
|
||||
<string name="no_application_found_to_open_link">Walang nakitang application upang buksan ang link</string>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<string name="offering">Proposition…</string>
|
||||
<string name="waiting">Patientez…</string>
|
||||
<string name="no_pgp_key">Aucune clef OpenPGP trouvée.</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger ne peut pas chiffrer vos messages car votre contact n’a pas communiqué sa clef publique.\n\n<small>Demandez-lui de configurer OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX ne peut pas chiffrer vos messages car votre contact n’a pas communiqué sa clef publique.\n\n<small>Demandez-lui de configurer OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Aucune clef OpenPGP n\'a été trouvée.</string>
|
||||
<string name="pref_general">Général</string>
|
||||
<string name="pref_accept_files_wifi">Accepter les fichier en mode Wi-Fi</string>
|
||||
|
@ -427,10 +427,8 @@
|
|||
<string name="download_failed_could_not_write_file">Échec du téléchargement : Écriture impossible</string>
|
||||
<string name="action_check_update">Vérifier les mises à jour</string>
|
||||
<string name="title_activity_updater">Mise à jour du service</string>
|
||||
<string name="update_available">Version %1$s est disponible.\n\nTaille du fichier : %2$s\n\nMettre à jour maintenant vers %1$s ?</string>
|
||||
<string name="remind_later">ultérieurement</string>
|
||||
<string name="update">mettre à jour</string>
|
||||
<string name="no_update_available">Aucune mise à jour disponible</string>
|
||||
<string name="download_started">Le téléchargement a commencé</string>
|
||||
<string name="account_status_tor_unavailable">Réseau Tor inaccessible</string>
|
||||
<string name="account_status_bind_failure">La liaison a échoué</string>
|
||||
|
@ -440,11 +438,9 @@
|
|||
<string name="pref_away_when_screen_off">Absent lorsque l’écran est éteint</string>
|
||||
<string name="pref_away_when_screen_off_summary">Marquer votre ressource comme absente lorsque l’écran est éteint</string>
|
||||
<string name="pref_dnd_on_silent_mode">Indisponible en mode silencieux</string>
|
||||
<string name="update_info">Pix-Art Messenger est entrain de télécharger et d’installer la nouvelle version automatiquement.\n\nVeuillez patienter …</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Marquer votre ressource comme « Ne pas déranger » lorsque l’appareil est en mode silencieux</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Indisponible en mode vibreur</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Marquer votre ressource comme « Ne pas déranger » lorsque l’appareil est en mode vibreur</string>
|
||||
<string name="hostname_example">xmpp.example.com</string>
|
||||
<string name="action_add_account_with_certificate">Compte avec certificat</string>
|
||||
<string name="unable_to_parse_certificate">Impossible d’analyser le certificat</string>
|
||||
<string name="authenticate_with_certificate">Laisser vide pour s’authentifier avec un certificat</string>
|
||||
|
@ -535,12 +531,10 @@
|
|||
<string name="creating_conference">Création de la conférence …</string>
|
||||
<string name="import_database">Importer une sauvegarde</string>
|
||||
<string name="invite_again">Inviter à nouveau</string>
|
||||
<string name="inviteUser_Subject">vous a invité via</string>
|
||||
<string name="InviteText">Bonjour,\n\nl’utilisateur·rice %s vous a invité sur Pix-Art Messenger. Si vous utilisez Android, essayez-le en cliquant sur le lien suivant pour continuer …</string>
|
||||
<string name="InviteText">Bonjour,\n\nl’utilisateur·rice %s vous a invité sur PiratX Messenger. Si vous utilisez Android, essayez-le en cliquant sur le lien suivant pour continuer …</string>
|
||||
<string name="pref_broadcast_last_activity">Diffuser la dernière action utilisateur</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Informer tous vos contacts lorsque vous utilisez Pix-Art Messenger</string>
|
||||
<string name="invite_user">Inviter à Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger vous demandera quelques permissions. Il est important que vous autorisiez toutes ces permissions afin de pouvoir utiliser toutes les fonctionnalités de ce messager. Si vous refusez l\'une de ces permissions, l\'application se fermera d\'elle-même.</string>
|
||||
<string name="request_permissions_message">PiratX vous demandera quelques permissions. Il est important que vous autorisiez toutes ces permissions afin de pouvoir utiliser toutes les fonctionnalités de ce messager. Si vous refusez l\'une de ces permissions, l\'application se fermera d\'elle-même.</string>
|
||||
<string name="request_permissions_message_again">Vous avez refusé tout ou partie des permissions requises pour Pix-Art Messenger. Souhaitez-vous passer aux paramètres et autoriser ces permissions ? Si vous refusez l\'une de ces permissions, l\'application se fermera d\'elle-même.</string>
|
||||
<string name="unable_to_connect_to_keychain">Connection à OpenKeychain impossible</string>
|
||||
<string name="this_device_is_no_longer_in_use">Cet appareil n\'est plus utilisé</string>
|
||||
|
@ -672,7 +666,6 @@
|
|||
<string name="server_info_partial">partiel</string>
|
||||
<string name="pref_show_foreground_service_summary">Certains appareils Android fermeront certaines applications après un certain temps et vous ne pourrez plus recevoir de nouveaux messages. Si vous rencontrez de tels problèmes, essayez d\'activer le service en avant-plan. Mais gardez à l\'esprit que vous aurez une notification permanente avec cette option cochée.</string>
|
||||
<string name="pref_show_foreground_service">Utiliser le service en premier plan</string>
|
||||
<string name="update_service">Service de mise à jour de Pix-Art Messenger</string>
|
||||
<string name="install_update">Installer la mise à jour ?</string>
|
||||
<string name="highlight_in_muc">mettre en évidence l’utilisateur·rice</string>
|
||||
<string name="no_application_found_to_open_link">Aucune application disponible pour ouvrir le lien</string>
|
||||
|
@ -712,7 +705,7 @@
|
|||
<string name="pref_automatically_delete_messages_description">Supprimer automatiquement de cet appareil les anciens messages ayant dépassé la période spécifiée.</string>
|
||||
<string name="pref_automatically_delete_messages">Suppression automatique des messages</string>
|
||||
<string name="disable_encryption">Désactiver le chiffrement</string>
|
||||
<string name="error_trustkey_general">Pix-Art Messenger ne peut envoyer de messages chiffrés à %1$s. Il se peut que votre contact utilise soit un serveur ou un client anciens ne prenant pas en charge le chiffrement via OMEMO.</string>
|
||||
<string name="error_trustkey_general">PiratX ne peut envoyer de messages chiffrés à %1$s. Il se peut que votre contact utilise soit un serveur ou un client anciens ne prenant pas en charge le chiffrement via OMEMO.</string>
|
||||
<string name="error_trustkey_device_list">Impossible d’obtenir la liste des appareils</string>
|
||||
<string name="error_trustkey_bundle">Impossible d’obtenir la liste des appareils</string>
|
||||
<string name="error_trustkey_hint_mutual">Astuce : Dans certains cas ceci peut être résolu en se rajoutant mutuellement dans les listes de contacts.</string>
|
||||
|
@ -821,7 +814,7 @@
|
|||
<string name="open_with">Ouvrir avec …</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050 : Commandes ad-hoc : invitation utilisateur</string>
|
||||
<string name="choose_account">Sélectionnez un compte</string>
|
||||
<string name="set_profile_picture">Image du profil Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Image du profil</string>
|
||||
<string name="restore_backup">Restaurer une sauvegarde</string>
|
||||
<string name="restore">Restaurer</string>
|
||||
<string name="enter_password_to_restore">Entrez votre mot de passe pour le compte %s afin de procéder à la restauration de la sauvegarde.</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">ofrecendo…</string>
|
||||
<string name="waiting">agardando...</string>
|
||||
<string name="no_pgp_key">Clave OpenPGP non atopada</string>
|
||||
<string name="contact_has_no_pgp_key">Conversations non foi quen de cifrar as túas mensaxes porque o teu contactos non está anunciando a súa clave pública.\n\n<small>Por favor, pídelle ao teu contacto que configure OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX non foi quen de cifrar as túas mensaxes porque o teu contactos non está anunciando a súa clave pública.\n\n<small>Por favor, pídelle ao teu contacto que configure OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Non se atoparon chaves OpenPGP</string>
|
||||
<string name="pref_general">Xeral</string>
|
||||
<string name="pref_attachments">Engadidos</string>
|
||||
|
@ -387,7 +387,6 @@
|
|||
<string name="pref_dnd_on_silent_mode_summary">Marca o seu recurso como \"Non molestar\" cando o dispositivo está en modo silencioso</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Trata a vibración como modo silencioso</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Marca o seu recurso como \"Non molestar\" cando o dispositivo está en modo vibración</string>
|
||||
<string name="hostname_example">xmpp.exemplo.com</string>
|
||||
<string name="action_add_account_with_certificate">Engadir conta con certificado</string>
|
||||
<string name="unable_to_parse_certificate">Non se puido procesar o certificado</string>
|
||||
<string name="authenticate_with_certificate">Deixar baldeiro autenticar con certificado</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">penawaran…</string>
|
||||
<string name="waiting">menunggu…</string>
|
||||
<string name="no_pgp_key">Tidak ada kunci OpenPGP yang ditemukan</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger tidak dapat mengenkripsi pesan anda karena kontak anda tidak menampilkan kunci publik miliknya.\n\n<small>Mintalah kontak anda untuk menyiapkan OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX tidak dapat mengenkripsi pesan anda karena kontak anda tidak menampilkan kunci publik miliknya.\n\n<small>Mintalah kontak anda untuk menyiapkan OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Tidak ada kunci OpenPGP yang ditemukan</string>
|
||||
<string name="pref_general">Umum</string>
|
||||
<string name="pref_accept_files_wifi">Menerima berkas di jaringan WiFi</string>
|
||||
|
@ -389,10 +389,8 @@
|
|||
<string name="download_failed_could_not_write_file">Unduh gagal: tidak bisa menulis berkas</string>
|
||||
<string name="action_check_update">Periksa pembaruan</string>
|
||||
<string name="title_activity_updater">Perbaruan layanan</string>
|
||||
<string name="update_available">Versi %1$s tersedia.\n\nUkuran berkas: %2$s\n\nPerbarui ke versi %1$s sekarang?</string>
|
||||
<string name="remind_later">kemudian</string>
|
||||
<string name="update">memperbarui</string>
|
||||
<string name="no_update_available">Tidak ada pembaruan yang tersedia</string>
|
||||
<string name="download_started">Unduhan dimulai</string>
|
||||
<string name="account_status_tor_unavailable">Jaringan Tor tidak tersedia</string>
|
||||
<string name="account_status_bind_failure">Bind failure</string>
|
||||
|
@ -401,11 +399,9 @@
|
|||
<string name="pref_away_when_screen_off">Jauh saat layar mati</string>
|
||||
<string name="pref_away_when_screen_off_summary">Tandai sumber daya Anda saat tidak aktif saat layar dimatikan</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Jangan diganggu\" dalam mode diam</string>
|
||||
<string name="update_info">Pix-Art Messenger sedang di unduh dan memasang versi baru secara otomatis.\n\nHarap tunggu…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Tandai sumber Anda sebagai \"Jangan diganggu\" saat perangkat dalam mode senyap</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Perlakukan getar sebagai mode senyap</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Tandai sumber Anda sebagai \"Jangan diganggu\" saat perangkat bergetar</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Tambahkan akun dengan sertifikat</string>
|
||||
<string name="unable_to_parse_certificate">Tidak bisa mengurai sertifikat</string>
|
||||
<string name="authenticate_with_certificate">Biarkan kosong untuk mengotentikasi w / sertifikat</string>
|
||||
|
@ -487,12 +483,10 @@
|
|||
<string name="creating_conference">Membuat obrolan kelompok…</string>
|
||||
<string name="import_database">Impor cadangan</string>
|
||||
<string name="invite_again">Undang lagi</string>
|
||||
<string name="inviteUser_Subject">telah mengundang Anda melalui</string>
|
||||
<string name="InviteText">Halo, \n\n pengguna %s telah mengundang Anda ke Pix-Art Messenger. Jika Anda menggunakan Android, cobalah dan klik tautan berikut untuk memulai kembali...</string>
|
||||
<string name="InviteText">Halo, \n\n pengguna %s telah mengundang Anda ke PiratX Messenger. Jika Anda menggunakan Android, cobalah dan klik tautan berikut untuk memulai kembali...</string>
|
||||
<string name="pref_broadcast_last_activity">Siaran Interaksi Pengguna Terakhir</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Biarkan semua kontak Anda tahu saat menggunakan Pix-Art Messenger</string>
|
||||
<string name="invite_user">Mengundang ke Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger akan meminta Anda mengizinkan beberapa izin. Penting bahwa Anda mengizinkan semua hak akses ini untuk menggunakan semua fitur messenger ini. Jika Anda menolak izin ini, aplikasi akan menutup dengan sendiri.</string>
|
||||
<string name="request_permissions_message">PiratX akan meminta Anda mengizinkan beberapa izin. Penting bahwa Anda mengizinkan semua hak akses ini untuk menggunakan semua fitur messenger ini. Jika Anda menolak izin ini, aplikasi akan menutup dengan sendiri.</string>
|
||||
<string name="request_permissions_message_again">Anda telah menolak beberapa atau semua izin yang dibutuhkan untuk Pix-Art Messenger. Apakah Anda ingin beralih ke pengaturan dan mengizinkan izin ini? Jika Anda menolak semua izin ini, aplikasi akan menutup dengan sendiri.</string>
|
||||
<string name="unable_to_connect_to_keychain">Tidak dapat terhubung ke OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Perangkat ini tidak lagi digunakan</string>
|
||||
|
@ -591,7 +585,6 @@
|
|||
<string name="server_info_partial">sebagian</string>
|
||||
<string name="pref_show_foreground_service_summary">Beberapa perangkat Android akan menutup beberapa aplikasi setelah jangka waktu tertentu dan Anda tidak akan dapat menerima pesan baru. Jika Anda memiliki masalah seperti itu, cobalah untuk mengaktifkan layanan latar depan. Namun perlu diingat, bahwa Anda akan memiliki pemberitahuan permanen dengan pilihan ini dicentang.</string>
|
||||
<string name="pref_show_foreground_service">Gunakan layanan latar depan</string>
|
||||
<string name="update_service">Layanan memperbarui Pix-Art Messenger</string>
|
||||
<string name="install_update">Memasang pembaharuan?</string>
|
||||
<string name="highlight_in_muc">sorot pengguna</string>
|
||||
<string name="no_application_found_to_open_link">Tidak ada aplikasi yang ditemukan untuk membuka tautan</string>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<string name="offering">offrendo…</string>
|
||||
<string name="waiting">in attesa…</string>
|
||||
<string name="no_pgp_key">Nessuna chiave OpenPGP trovata</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger non è in grado di cifrare i tuoi messaggi perché il contatto non sta annunciando la sua chiave pubblica.\n\n<small>Per favore chiedi al tuo contatto di configurare OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX non è in grado di cifrare i tuoi messaggi perché il contatto non sta annunciando la sua chiave pubblica.\n\n<small>Per favore chiedi al tuo contatto di configurare OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Nessuna chiave OpenPGP trovata</string>
|
||||
<string name="pref_general">Generale</string>
|
||||
<string name="pref_accept_files_wifi">Accetta files con connessioni WiFi</string>
|
||||
|
@ -434,10 +434,8 @@
|
|||
<string name="download_failed_could_not_write_file">Scaricamento fallito: scrittura del file impossibile</string>
|
||||
<string name="action_check_update">Controlla Aggiornamenti</string>
|
||||
<string name="title_activity_updater">Servizio di aggiornamento</string>
|
||||
<string name="update_available">La versione %1$s è disponibile.\n\nDimensione: %2$s\n\nAggiornare alla versione %1$s ora?</string>
|
||||
<string name="remind_later">più tardi</string>
|
||||
<string name="update">aggiorna</string>
|
||||
<string name="no_update_available">Nessun aggiornamento disponibile</string>
|
||||
<string name="download_started">Scaricamento iniziato</string>
|
||||
<string name="account_status_tor_unavailable">Rete Tor non disponibile</string>
|
||||
<string name="account_status_bind_failure">Bind fallito</string>
|
||||
|
@ -447,11 +445,9 @@
|
|||
<string name="pref_away_when_screen_off">\"Non disponibile\" a schermo spento</string>
|
||||
<string name="pref_away_when_screen_off_summary">Imposta la tua risorsa come non disponibile quando lo schermo è spento</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Non disturbare\" in modalità silenziosa</string>
|
||||
<string name="update_info">Pix-Art Messenger sta scaricando e installando la nuova versione automaticamente.\n\nAttendere prego…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Segna la tua risorsa come \"Non disturbare\" quando il dispositivo è in modalità silenziosa</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Tratta vibrazione come modalità silenziosa</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Segna la tua risorsa come \"Non disturbare\" quando il dispositivo ha solo la vibrazione</string>
|
||||
<string name="hostname_example">xmpp.esempio.it</string>
|
||||
<string name="action_add_account_with_certificate">Aggiungi account con certificato</string>
|
||||
<string name="unable_to_parse_certificate">Impossibile analizzare il certificato</string>
|
||||
<string name="authenticate_with_certificate">Lasciare vuoto per autenticarsi con certificato</string>
|
||||
|
@ -544,12 +540,10 @@
|
|||
<string name="import_text">Se un backup fosse disponibile puoi importarlo premendo il pulsante qui sotto.</string>
|
||||
<string name="import_database">Importa backup</string>
|
||||
<string name="invite_again">Invita di nuovo</string>
|
||||
<string name="inviteUser_Subject">ti ha invitato via</string>
|
||||
<string name="InviteText">Ciao,\n\nl\'utente %s ti ha invitato su Pix-Art Messenger. Se utilizzi Android, puoi provarlo cliccando il seguente collegamento per iniziare...</string>
|
||||
<string name="InviteText">Ciao,\n\nl\'utente %s ti ha invitato su PiratX Messenger. Se utilizzi Android, puoi provarlo cliccando il seguente collegamento per iniziare...</string>
|
||||
<string name="pref_broadcast_last_activity">Trasmetti ultima interazione utente</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Fai sapere ai tuoi contatti quando usi Pix-Art Messenger</string>
|
||||
<string name="invite_user">Invita su Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger ti chiederà di concedere solo poche autorizzazioni. È importante che tu permetta tutte queste richieste per utilizzare tutte le funzionalità di questa app. Se neghi alcune di queste l\'app si chiuderà da sola.</string>
|
||||
<string name="request_permissions_message">PiratX ti chiederà di concedere solo poche autorizzazioni. È importante che tu permetta tutte queste richieste per utilizzare tutte le funzionalità di questa app. Se neghi alcune di queste l\'app si chiuderà da sola.</string>
|
||||
<string name="request_permissions_message_again">Hai negato alcune o tutte le autorizzazioni richieste da Pix-Art Messenger. Vuoi andare nelle impostazioni e concedere questi permessi? Se neghi qualsiasi di queste autorizzazioni, l\'app si chiuderà da sola.</string>
|
||||
<string name="unable_to_connect_to_keychain">Impossibile connettersi a OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Questo dispositivo non è più in uso</string>
|
||||
|
@ -681,7 +675,6 @@
|
|||
<string name="server_info_partial">parziale</string>
|
||||
<string name="pref_show_foreground_service_summary">Alcuni dispositivi Android terminano alcune applicazioni dopo un certo periodo di tempo e non sarai in grado di ricevere nuovi messaggi. Se hai questi problemi, prova ad attivare il servizio in primo piano. Tieni conto che avrai una notifica permanente con questa opzione attiva.</string>
|
||||
<string name="pref_show_foreground_service">Usa servizio in primo piano</string>
|
||||
<string name="update_service">Servizio di aggiornamento Pix-Art Messenger</string>
|
||||
<string name="install_update">Installare l\'aggiornamento?</string>
|
||||
<string name="highlight_in_muc">evidenzia utente</string>
|
||||
<string name="no_application_found_to_open_link">Nessuna applicazione trovata per aprire il link</string>
|
||||
|
@ -835,7 +828,7 @@
|
|||
<string name="open_with">Apri con…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Comandi Ad-Hoc: invito utente</string>
|
||||
<string name="choose_account">Scegli account</string>
|
||||
<string name="set_profile_picture">Immagine di profilo Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Immagine di profilo</string>
|
||||
<string name="restore_backup">Ripristino backup</string>
|
||||
<string name="restore">Ripristino</string>
|
||||
<string name="enter_password_to_restore">Inserisci la password per l\'account %s per ripristinare il backup.</string>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<string name="unblock">Deblokkeren</string>
|
||||
<string name="save">Opslaan</string>
|
||||
<string name="ok">Oké</string>
|
||||
<string name="crash_report_title">Pix-Art Messenger is gecrasht</string>
|
||||
<string name="crash_report_title">PiratX is gecrasht</string>
|
||||
<string name="crash_report_message">Door het versturen van crashrapportages help je de ontwikkeling van Pix-Art Messenger.\n\n<b>Waarschuwing:</b> Deze app zal je XMPP-account gebruiken om de crashrapportages te versturen naar de ontwikkelaars.</string>
|
||||
<string name="send_now">Nu versturen</string>
|
||||
<string name="send_never">Niet opnieuw vragen</string>
|
||||
|
@ -91,7 +91,7 @@
|
|||
<string name="offering">bezig met aanbieden…</string>
|
||||
<string name="waiting">wachten…</string>
|
||||
<string name="no_pgp_key">Geen OpenPGP-sleutel gevonden</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger kan je berichten niet versleutelen omdat je contact geen publieke sleutel heeft ingesteld.\n\n<small>Vraag je contact om OpenPGP te configureren.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX kan je berichten niet versleutelen omdat je contact geen publieke sleutel heeft ingesteld.\n\n<small>Vraag je contact om OpenPGP te configureren.</small></string>
|
||||
<string name="no_pgp_keys">Geen OpenPGP-sleutels gevonden</string>
|
||||
<string name="pref_general">Algemeen</string>
|
||||
<string name="pref_attachments">Bijlagen</string>
|
||||
|
@ -415,7 +415,6 @@
|
|||
<string name="pref_dnd_on_silent_mode_summary">Stelt je bron in als “Niet storen” wanneer je apparaat in stille modus staat</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Trillen behandelen als stille modus</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Stelt je bron in als “Niet storen” wanneer je apparaat in trilmodus staat</string>
|
||||
<string name="hostname_example">xmpp.voorbeeld.be</string>
|
||||
<string name="action_add_account_with_certificate">Account met certificaat toevoegen</string>
|
||||
<string name="unable_to_parse_certificate">Kan certificaat niet verwerken</string>
|
||||
<string name="authenticate_with_certificate">Laat leeg om te authenticeren met certificaat</string>
|
||||
|
@ -498,7 +497,6 @@
|
|||
<string name="invite_again">Opnieuw uitnodigen</string>
|
||||
<string name="pref_broadcast_last_activity">Laatste gebruikersinteractie uitzenden</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Laat al je contacten weten wanneer je Pix-Art Messenger gebruikt</string>
|
||||
<string name="invite_user">Uitnodigen voor Pix-Art Messenger</string>
|
||||
<string name="unable_to_connect_to_keychain">Verbinden met OpenKeychain mislukt</string>
|
||||
<string name="this_device_is_no_longer_in_use">Dit apparaat wordt niet meer gebruikt</string>
|
||||
<string name="please_wait">Even geduld…</string>
|
||||
|
@ -617,7 +615,6 @@
|
|||
<string name="error_no_keys_to_trust_presence">Er zijn geen bruikbare sleutels beschikbaar voor dit contact.\nZorg dat je allebei op elkaars aanwezigheidsupdates bent geabonneerd.</string>
|
||||
<string name="mark_as_read">Als gelezen markeren</string>
|
||||
<string name="server_info_partial">gedeeltelijk</string>
|
||||
<string name="update_service">Pix-Art Messenger update dienst</string>
|
||||
<string name="no_application_found_to_open_link">Geen applicatie om verwijzing te openen</string>
|
||||
<string name="contacts_have_read_up_to_this_point">%s hebben tot hier gelezen</string>
|
||||
<string name="contact_has_read_up_to_this_point">%s heeft tot hier gelezen</string>
|
||||
|
|
|
@ -93,7 +93,7 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
|
|||
<string name="offering">oferowanie...</string>
|
||||
<string name="waiting">oczekiwanie...</string>
|
||||
<string name="no_pgp_key">Nie znaleziono klucza OpenPGP</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger nie może zaszyfrować wiadomości, ponieważ kontakt nie udostępnia klucza publicznego.\n\n<small>Zasugeruj rozmówcy instalację OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX nie może zaszyfrować wiadomości, ponieważ kontakt nie udostępnia klucza publicznego.\n\n<small>Zasugeruj rozmówcy instalację OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Nie znaleziono kluczy OpenPGP</string>
|
||||
<string name="pref_general">Główne</string>
|
||||
<string name="pref_accept_files_wifi">Akceptuj pliki w połączeniach WiFi</string>
|
||||
|
@ -421,10 +421,8 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
|
|||
<string name="download_failed_could_not_write_file">Pobieranie niepowiodło się: brak możliwości zapisu pliku</string>
|
||||
<string name="action_check_update">Sprawdź aktualizacje</string>
|
||||
<string name="title_activity_updater">Usługa aktualizacji</string>
|
||||
<string name="update_available">Wersja %1$s jest udostępniona.\n\nWielkość pliku: %2$s\n\nZaktualizować na wersje %1$s?</string>
|
||||
<string name="remind_later">później</string>
|
||||
<string name="update">aktualizacja</string>
|
||||
<string name="no_update_available">Brak dostępnych aktualizacji</string>
|
||||
<string name="download_started">Rozpoczęto pobieranie</string>
|
||||
<string name="account_status_tor_unavailable">Sieć TOR jest niedostepna</string>
|
||||
<string name="account_status_bind_failure">Błąd połączenia (zasób)</string>
|
||||
|
@ -434,11 +432,9 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
|
|||
<string name="pref_away_when_screen_off">Status \"Oddalony\" gdy wyświetlacz jest wyłączony</string>
|
||||
<string name="pref_away_when_screen_off_summary">Oznacza Twój zasób jako \"Oddalony\", gdy wyświetlacz jest wyłączony</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Nie przeszkadzać\" w trybie cichym</string>
|
||||
<string name="update_info">Pix-Art Messenger pobiera i instaluje automatycznie nową wersję.\n\nPotrwa to chwilkę…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Oznacza Twój zasób jako \"Nie przeszkadzać\", gdy urządzenie jest w trybie cichym</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Traktuj tryb wibracji jak tryb cichy</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Oznacza Twój zasób jako \"Nie przeszkadzać\", gdy urządzenie jest w trybie wibracji</string>
|
||||
<string name="hostname_example">xmpp.examle.com</string>
|
||||
<string name="action_add_account_with_certificate">Dodaj konto za pomocą certyfikatu</string>
|
||||
<string name="unable_to_parse_certificate">Nie mogę odczytać certyfikatu</string>
|
||||
<string name="authenticate_with_certificate">Pozostaw puste by autoryzować za pomocą certyfikatu</string>
|
||||
|
@ -523,10 +519,8 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
|
|||
<string name="creating_conference">Utwórz czat grupowy…</string>
|
||||
<string name="import_database">Importować backup</string>
|
||||
<string name="invite_again">Zaproś ponownie</string>
|
||||
<string name="inviteUser_Subject">zaprosił/a Cie poprzez</string>
|
||||
<string name="pref_broadcast_last_activity">Dziel się ostatnią interakcją.</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Powiadamiaj kontakty, że używasz Pix-Art Messenger</string>
|
||||
<string name="invite_user">Zaproś do Pix-Art Messengera</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger poprosi o zezwolenie na kilka uprawnień. Ważne jest, zezwolenie wszystkich uprawnień aby korzystać ze wszystkich funkcji tego komunikatora. Jeśli odmówisz któreś z tych uprawnień, aplikacja zamknie się.</string>
|
||||
<string name="unable_to_connect_to_keychain">Nie można połączyć się z OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">Urządzenie to nie jest już używane</string>
|
||||
|
@ -664,7 +658,6 @@ Pix-Art Messenger będzie wciąż ograniczał transfer danych, kiedy tylko to je
|
|||
<string name="error_no_keys_to_trust_presence">Brak dostępnych kluczy dla tego kontaktu.\nUpewnij się, że wzajemnie powiadamiacie się o obecności.</string>
|
||||
<string name="mark_as_read">oznacz jako przeczytane</string>
|
||||
<string name="server_info_partial">częściowo</string>
|
||||
<string name="update_service">Usługa aktualizacji Messengera Pix-Art</string>
|
||||
<string name="install_update">Zainstalować aktualizację?</string>
|
||||
<string name="highlight_in_muc">wymień użytkownika</string>
|
||||
<string name="contacts_have_read_up_to_this_point">%s przeczytał do tego miejsca</string>
|
||||
|
@ -763,7 +756,7 @@ Pix-Art Messenger będzie wciąż ograniczał transfer danych, kiedy tylko to je
|
|||
<string name="pref_play_gif_inside_summary">Odtwarzaj pliki GIF bezpośrednio w czacie.</string>
|
||||
<string name="open_with">Otwórz za pomocą…</string>
|
||||
<string name="choose_account">Wybierz konto</string>
|
||||
<string name="set_profile_picture">Zdjęcie profilowe Pix-Art Messengera</string>
|
||||
<string name="set_profile_picture">Zdjęcie profilowe</string>
|
||||
<string name="restore_backup">Przywróć kopię zapasową</string>
|
||||
<string name="restore">Przywróć</string>
|
||||
<string name="enter_password_to_restore">Wprowadź hasło konta %s, aby przywrócić kopię zapasową.</string>
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<string name="offering">oferecendo...</string>
|
||||
<string name="waiting">aguardando...</string>
|
||||
<string name="no_pgp_key">Nenhuma chave OpenPGP encontrada</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger não é capaz de encriptar as suas mensagens porque o seu contato não está anunciando a sua chave pública.\n\n<small>Por favor peça ao seu contato para configurar o OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX não é capaz de encriptar as suas mensagens porque o seu contato não está anunciando a sua chave pública.\n\n<small>Por favor peça ao seu contato para configurar o OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Não foram encontradas chaves OpenPGP</string>
|
||||
<string name="pref_general">Geral</string>
|
||||
<string name="pref_attachments">Anexos</string>
|
||||
|
@ -353,7 +353,6 @@
|
|||
<string name="pref_away_when_screen_off">Ausente quando a tela está apagada</string>
|
||||
<string name="pref_away_when_screen_off_summary">Define o seu recurso como ausente quando a tela está apagada</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Tratar vibrar como modo silencioso</string>
|
||||
<string name="hostname_example">xmpp.exemplo.com</string>
|
||||
<string name="action_add_account_with_certificate">Adicionar conta com certificado</string>
|
||||
<string name="unable_to_parse_certificate">Não foi possível processar o certificado</string>
|
||||
<string name="authenticate_with_certificate">Deixar vazio para autenticar com certificado</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">transmit...</string>
|
||||
<string name="waiting">în așteptare...</string>
|
||||
<string name="no_pgp_key">Nu am găsit cheia OpenPGP</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger nu a putut să cripteze mesajele tale deoarece contactul nu își anunță cheia publică.\n\n<small>Rugați contactul să își configureze OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX nu a putut să cripteze mesajele tale deoarece contactul nu își anunță cheia publică.\n\n<small>Rugați contactul să își configureze OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Nu am găsit chei OpenPGP</string>
|
||||
<string name="pref_general">General</string>
|
||||
<string name="pref_attachments">Atașamente</string>
|
||||
|
@ -393,7 +393,6 @@
|
|||
<string name="pref_dnd_on_silent_mode_summary">Prezintă clientul drept \"Nu deranja\" atunci când dispozitivul este în mod silențios</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Tratează modul vibrație ca silențios</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Prezintă clientul drept \"Nu deranja\" atunci când dispozitivul este în mod vibrație</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Adaugă un cont cu certificat</string>
|
||||
<string name="unable_to_parse_certificate">Nu se poate analiza certificatul</string>
|
||||
<string name="authenticate_with_certificate">Lăsați gol pentru a autentifica cu un certificat</string>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<string name="offering">предложение…</string>
|
||||
<string name="waiting">ожидание…</string>
|
||||
<string name="no_pgp_key">Не найден ключ OpenPGP</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger не может зашифровать ваше сообщение, потому что ваш собеседник не анонсировал свой публичный ключ.\n\n<small>Пожалуйста, попросите вашего собеседника установить OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX не может зашифровать ваше сообщение, потому что ваш собеседник не анонсировал свой публичный ключ.\n\n<small>Пожалуйста, попросите вашего собеседника установить OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Не найдены ключи OpenPGP</string>
|
||||
<string name="pref_general">Общее</string>
|
||||
<string name="pref_accept_files_wifi">Принимать файлы по WiFi</string>
|
||||
|
@ -427,21 +427,17 @@
|
|||
<string name="download_failed_could_not_write_file">Загрузка прервана: невозможно записать файл</string>
|
||||
<string name="action_check_update">Проверить наличие обновлений</string>
|
||||
<string name="title_activity_updater">Служба обновления</string>
|
||||
<string name="update_available">Доступна версия %1$s.\n\nРазмер: %2$s\n\nОбновить до версии %1$s сейчас?</string>
|
||||
<string name="remind_later">позже</string>
|
||||
<string name="update">обновить</string>
|
||||
<string name="no_update_available">Нет доступных обновлений</string>
|
||||
<string name="download_started">Загрузка начата</string>
|
||||
<string name="account_status_tor_unavailable">Сеть Tor недоступна</string>
|
||||
<string name="pref_presence_settings">Доступность</string>
|
||||
<string name="pref_away_when_screen_off">Статус \"Отошел\", когда экран выключен</string>
|
||||
<string name="pref_away_when_screen_off_summary">Статус \"Отошел\" при гашении экрана</string>
|
||||
<string name="pref_dnd_on_silent_mode">Статус \"Не беспокоить\" в беззвучном режиме</string>
|
||||
<string name="update_info">Pix-Art Messenger скачивает и устанавливает новую версию.\n\nПожалуйста, подождите…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Статус \"Не беспокоить\", когда устройство в беззвучном режиме</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Считать режим вибрации беззвучным режимом</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Статус \"Не беспокоить\", когда устройство в режиме вибрации</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Добавить аккаунт с сертификатом</string>
|
||||
<string name="unable_to_parse_certificate">Не удается обработать сертификат</string>
|
||||
<string name="authenticate_with_certificate">Оставьте пустым для аутентификации с сертификатом</string>
|
||||
|
@ -535,11 +531,9 @@
|
|||
<string name="creating_conference">Создание группового чата...</string>
|
||||
<string name="import_database">Импортировать резервную копию</string>
|
||||
<string name="invite_again">Пригласить снова</string>
|
||||
<string name="inviteUser_Subject">приглашает вас присоединиться через</string>
|
||||
<string name="InviteText">Здравствуйте! \n\n Пользователь %s приглашает вас использовать Pix-Art Messenger. Если вы используете Android - нажмите на ссылку, чтобы попробовать...</string>
|
||||
<string name="InviteText">Здравствуйте! \n\n Пользователь %s приглашает вас использовать PiratX Messenger. Если вы используете Android - нажмите на ссылку, чтобы попробовать...</string>
|
||||
<string name="pref_broadcast_last_activity">Отображать последнюю активность пользователя</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Позволяет вашим контактам видеть, когда вы пользуетесь Pix-Art Messenger</string>
|
||||
<string name="invite_user">Пригласить в Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger запросит у вас несколько разрешений. Чтобы пользоваться всеми возможностями этого мессенджера, нужно дать эти разрешения. Если какое-то разрешение не будет получено - приложение будет закрыто.</string>
|
||||
<string name="request_permissions_message_again">Вы не дали некоторых разрешений, нужных для работы Pix-Art Messenger. Хотите перейти в настройки разрешений сейчас? Если вы не дадите какого-либо из этих разрешений - приложение будет закрыто.</string>
|
||||
<string name="unable_to_connect_to_keychain">Не удается подключиться к OpenKeychain</string>
|
||||
|
@ -672,7 +666,6 @@
|
|||
<string name="mark_as_read">Отметить как прочитанное</string>
|
||||
<string name="pref_show_foreground_service_summary">Некоторые устройства Android закрывают приложения по прошествии некоторого времени, и вы теряете возможность получать новые сообщения. Если вы столкнулись с такой проблемой - попробуйте активировать фоновую службу. Имейте ввиду, что если эта опция включена - значок уведомления будет отображаться постоянно.</string>
|
||||
<string name="pref_show_foreground_service">Использовать фоновую службу</string>
|
||||
<string name="update_service">Служба обновления Pix-Art Messenger</string>
|
||||
<string name="install_update">Установить обновление?</string>
|
||||
<string name="highlight_in_muc">отметить пользователя</string>
|
||||
<string name="no_application_found_to_open_link">Не удалось найти подходящее приложение для открытия ссылки</string>
|
||||
|
@ -814,7 +807,7 @@
|
|||
<string name="open_with">Открыть с помощью...</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc Commands: user invite</string>
|
||||
<string name="choose_account">Выберите аккаунт</string>
|
||||
<string name="set_profile_picture">Изображение профиля Pix-Art Messenger</string>
|
||||
<string name="set_profile_picture">Изображение профиля</string>
|
||||
<string name="restore_backup">Восстановить резервную копию</string>
|
||||
<string name="restore">Восстановить</string>
|
||||
<string name="enter_password_to_restore">Введите пароль от аккаунта %s для восстановления резервной копии.</string>
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<string name="offering">erbjuder…</string>
|
||||
<string name="waiting">väntar…</string>
|
||||
<string name="no_pgp_key">Ingen OpenPGP-nyckel funnen</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">Inga OpenPGP-nycklar funna</string>
|
||||
<string name="pref_general">Generellt</string>
|
||||
<string name="pref_attachments">Bifogningar</string>
|
||||
|
@ -367,7 +367,6 @@
|
|||
<string name="pref_away_when_screen_off">Status borta när skärmen är av</string>
|
||||
<string name="pref_away_when_screen_off_summary">Sätter din tillgänglighet till borta när skrämen är av</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Hantera vibrationsläge som tyst läge</string>
|
||||
<string name="hostname_example">xmpp.example.com</string>
|
||||
<string name="action_add_account_with_certificate">Lägg till konto med certifikat</string>
|
||||
<string name="unable_to_parse_certificate">Kan inte läsa certifikat</string>
|
||||
<string name="authenticate_with_certificate">Lämna tom för att för att logga in med certifikat</string>
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<string name="offering">teklif yapılıyor…</string>
|
||||
<string name="waiting">Bekleniyor…</string>
|
||||
<string name="no_pgp_key">Hiç OpenPGP anahtarı bulunamadı</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger, mesajlarınızı şifreleyemiyor; çünkü kişi sizin veya onun genel anahtarınızı ilan etmiyor.\n\n<small>Lütfen iletişim bilgilerinizden OpenPGP\'yi kurmasını isteyin.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX, mesajlarınızı şifreleyemiyor; çünkü kişi sizin veya onun genel anahtarınızı ilan etmiyor.\n\n<small>Lütfen iletişim bilgilerinizden OpenPGP\'yi kurmasını isteyin.</small></string>
|
||||
<string name="no_pgp_keys">OpenPGP anahtarları bulunamadı</string>
|
||||
<string name="pref_general">Genel</string>
|
||||
<string name="pref_accept_files_wifi">WiFi bağlantılarındaki dosyaları kabul et</string>
|
||||
|
@ -390,10 +390,8 @@
|
|||
<string name="download_failed_could_not_write_file">İndirme başarısız: Dosya yazılamadı</string>
|
||||
<string name="action_check_update">Güncellemeleri kontrol et</string>
|
||||
<string name="title_activity_updater">Servisi güncelle</string>
|
||||
<string name="update_available">Sürüm% 1 $ s mevcut. \ N \ nFilesize:% 2 $ s \ n \ n% 1 $ s sürümüne şimdi mi güncelleştiniz?</string>
|
||||
<string name="remind_later">sonra</string>
|
||||
<string name="update">güncelle</string>
|
||||
<string name="no_update_available">Güncelleme mevcut değil</string>
|
||||
<string name="download_started">İndirme başlatıldı</string>
|
||||
<string name="account_status_tor_unavailable">Tor ağ kullanılamıyor</string>
|
||||
<string name="account_status_bind_failure">Bağlanma hatası</string>
|
||||
|
@ -402,11 +400,9 @@
|
|||
<string name="pref_away_when_screen_off">Uzakta ekran kapalıyken</string>
|
||||
<string name="pref_away_when_screen_off_summary">Ekran kapalıyken kaynağını uzakta olarak işaretler</string>
|
||||
<string name="pref_dnd_on_silent_mode">Sessiz modda \'\'Rahatsız etme\'\'</string>
|
||||
<string name="update_info">Pix-Art Messenger yeni sürümü otomatik olarak indiriyor ve yükleniliyor. \n\nLütfen bekleyin…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Cihaz sessiz moddayken kaynağınızı \"Rahatsız etmeyin\" olarak işaretler</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Titreşimsiz mod olarak işlem yap</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Cihaz titrediğinde kaynağı \"Rahatsız etmeyin\" olarak işaretler</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="action_add_account_with_certificate">Sertifika ile hesap ekle</string>
|
||||
<string name="unable_to_parse_certificate">Sertifika çözümlenemedi</string>
|
||||
<string name="authenticate_with_certificate">Sertifikanın kimliğini doğrulamak için boş bırakın</string>
|
||||
|
@ -490,11 +486,9 @@
|
|||
<string name="creating_conference">Grup sohbeti oluşturuluyor…</string>
|
||||
<string name="import_database">Yedeği içeri aktar</string>
|
||||
<string name="invite_again">Tekrar davet et</string>
|
||||
<string name="inviteUser_Subject">sizi davet etti</string>
|
||||
<string name="InviteText">Merhaba, \n\n kullanıcı %s sizi Pix-Art Messenger\'a davet etti. Android kullanıyorsanız, bir deneme yapın ve baştan başlamak için aşağıdaki bağlantıyı tıklayın...</string>
|
||||
<string name="InviteText">Merhaba, \n\n kullanıcı %s sizi PiratX Messenger\'a davet etti. Android kullanıyorsanız, bir deneme yapın ve baştan başlamak için aşağıdaki bağlantıyı tıklayın...</string>
|
||||
<string name="pref_broadcast_last_activity">Son kullanıcı etkileşimlerini yayınla</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Pix-Art Messenger\'ı kullanırken tüm kişilerinize haber verin</string>
|
||||
<string name="invite_user">Pix-Art Messenger\'a davet et</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger birkaç izin vermenizi isteyecektir. Tüm bu izinlerin bu mesajlaşma aracının tüm özelliklerine sahip olmasına izin vermeniz önemlidir. Bu izinlerden herhangi birini reddederseniz, uygulama kendiliğinden kapanacaktır.</string>
|
||||
<string name="request_permissions_message_again">Pix-Art Messenger için gerekli bazı veya tüm izinleri reddettiniz. Ayarlara atlamak ve bu izinlere izin vermek ister misiniz? Bu izinlerden herhangi birine siz karar verirseniz, uygulama kendiliğinden kapanacaktır.</string>
|
||||
<string name="unable_to_connect_to_keychain">OpenKeyChain\'e bağlanılamıyor</string>
|
||||
|
@ -595,7 +589,6 @@
|
|||
<string name="server_info_partial">kısmi</string>
|
||||
<string name="pref_show_foreground_service_summary">Bazı Android cihazlar belirli bir süre sonra bazı uygulamaları kapatacak ve yeni mesajlar alamayacaksınız. Bu tür sorunlarınız varsa, ön plan hizmetini etkinleştirmeyi deneyin. Fakat, bu seçeneği işaretleyerek kalıcı bir bildirimde bulunacağınızı unutmayın.</string>
|
||||
<string name="pref_show_foreground_service">Ön plan hizmetini kullan</string>
|
||||
<string name="update_service">Pix-Art Messenger güncelleme servisi</string>
|
||||
<string name="install_update">Güncellemeyi yükle?</string>
|
||||
<string name="highlight_in_muc">kullanıcıyı vurgula</string>
|
||||
<string name="no_application_found_to_open_link">Link\'i açmak için uyguluma bulunamadı</string>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="welcome_header" translatable="false">Pix-Art Messenger</string>
|
||||
<string name="welcome_header" translatable="false">PiratX</string>
|
||||
<string name="type_pc" translatable="false">Computer</string>
|
||||
<string name="type_phone" translatable="false">Mobile phone</string>
|
||||
<string name="type_tablet" translatable="false">Tablet</string>
|
||||
<string name="type_web" translatable="false">Web browser</string>
|
||||
<string name="type_console" translatable="false">Console</string>
|
||||
<string name="pref_about_message" translatable="false"><b>Pix-Art Messenger</b>
|
||||
\n\nCopyright © 2014-2019 Christian Schneppe
|
||||
\n\nhttp://jabber.pix-art.de
|
||||
<string name="pref_about_message" translatable="false"><b>PiratX Messenger</b>
|
||||
PiratX is a privacy focused and improved version of Pix-Art Messenger which is based on Conversations.
|
||||
\n\nThe extensions are designed and developed by thedevstack.de
|
||||
\n\nThis 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
|
||||
|
@ -19,10 +19,6 @@
|
|||
GNU General Public License for more details.
|
||||
\n\nYou should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see https://www.gnu.org/licenses
|
||||
\n\nDownload the full original source code at https://github.com/siacs/Conversations (Copyright © 2014-2019 Daniel Gultsch)
|
||||
\n\nDownload the modified source code at https://github.com/kriztan/Pix-Art-Messenger
|
||||
\n\nPix-Art Messenger recommends blabber.im as provider. More information can be found at https://blabber.im
|
||||
\n\nYou can support me by making a donation in form of a gift in sense of § 516 ff BGB i.e. a gratuitous donation.
|
||||
</string>
|
||||
<string name="pref_about_libraries" translatable="false"><b>Libraries</b>
|
||||
\n\nhttps://www.bouncycastle.org\n(The MIT License (MIT))
|
||||
|
@ -116,12 +112,12 @@
|
|||
<bool name="prefer_xmpp_avatar">true</bool>
|
||||
<bool name="show_links_inside">true</bool>
|
||||
<bool name="show_maps_inside">true</bool>
|
||||
<bool name="use_internal_updater">true</bool>
|
||||
<bool name="use_internal_updater">false</bool>
|
||||
<bool name="show_own_accounts">true</bool>
|
||||
|
||||
<string-array name="domains">
|
||||
<item>pix-art.de</item>
|
||||
<item>conversations.im</item>
|
||||
<item>jabber.thedevstack.de</item>
|
||||
<item>jabber.thehappy.de</item>
|
||||
<item>jabber.cat</item>
|
||||
<item>jabbers.one</item>
|
||||
<item>jabjab.de</item>
|
||||
|
@ -240,6 +236,8 @@
|
|||
<item>nsa.li</item>
|
||||
<item>blabber.im</item>
|
||||
<item>buzon.uy</item>
|
||||
<item>pix-art.de</item>
|
||||
<item>conversations.im</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="support_domains">
|
||||
|
|
|
@ -59,8 +59,8 @@
|
|||
<string name="unblock">Unblock</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="crash_report_title">Pix-Art Messenger has crashed</string>
|
||||
<string name="crash_report_message">By sending in stack traces you are helping the ongoing development of Pix-Art Messenger\n<b>Warning:</b> This will use your XMPP account to send the stack trace to the developer.</string>
|
||||
<string name="crash_report_title">PiratX has crashed</string>
|
||||
<string name="crash_report_message">By sending in stack traces you are helping the ongoing development of PiratX\n<b>Warning:</b> This will use your XMPP account to send the stack trace to the developer.</string>
|
||||
<string name="send_now">Send now</string>
|
||||
<string name="send_never">Never ask again</string>
|
||||
<string name="problem_connecting_to_account">Unable to connect to account</string>
|
||||
|
@ -86,13 +86,13 @@
|
|||
<string name="send_unencrypted">Send unencrypted</string>
|
||||
<string name="decryption_failed">Decryption failed. Maybe you don’t have the proper private key.</string>
|
||||
<string name="openkeychain_required">OpenKeychain</string>
|
||||
<string name="openkeychain_required_long">Pix-Art Messenger utilizes a third party app called <b>OpenKeychain</b> to encrypt and decrypt messages and to manage your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\n<small>(Please restart Pix-Art Messenger afterwards.)</small></string>
|
||||
<string name="openkeychain_required_long">PiratX utilizes a third party app called <b>OpenKeychain</b> to encrypt and decrypt messages and to manage your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\n<small>(Please restart PiratX afterwards.)</small></string>
|
||||
<string name="restart">Restart</string>
|
||||
<string name="install">Install</string>
|
||||
<string name="offering">offering…</string>
|
||||
<string name="waiting">waiting…</string>
|
||||
<string name="no_pgp_key">No OpenPGP Key found</string>
|
||||
<string name="contact_has_no_pgp_key">Pix-Art Messenger is unable to encrypt your messages because your contact is not announcing his or hers public key.\n\n<small>Please ask your contact to setup OpenPGP.</small></string>
|
||||
<string name="contact_has_no_pgp_key">PiratX is unable to encrypt your messages because your contact is not announcing his or hers public key.\n\n<small>Please ask your contact to setup OpenPGP.</small></string>
|
||||
<string name="no_pgp_keys">No OpenPGP Keys found</string>
|
||||
<string name="pref_general">General</string>
|
||||
<string name="pref_accept_files_wifi">Accept files in WiFi connections</string>
|
||||
|
@ -110,7 +110,7 @@
|
|||
<string name="pref_sound">Ringtone</string>
|
||||
<string name="pref_sound_summary">Play sound when a new message arrives</string>
|
||||
<string name="pref_send_crash">Send crash reports</string>
|
||||
<string name="pref_send_crash_summary">By sending stack traces you are helping the ongoing development of Pix-Art Messenger</string>
|
||||
<string name="pref_send_crash_summary">By sending stack traces you are helping the ongoing development of PiratX</string>
|
||||
<string name="pref_confirm_messages">Confirm Messages</string>
|
||||
<string name="pref_confirm_messages_summary">Let your contacts know when you have received and read their messages</string>
|
||||
<string name="pref_ui_options">UI</string>
|
||||
|
@ -159,7 +159,7 @@
|
|||
<string name="mgmt_account_delete_confirm_message">If you delete your account, your entire local conversation history will be lost.\n\nIf you delete your account from server, your entire account will be deleted from server too, you will not be able to login anymore until you register a new account.</string>
|
||||
<string name="attach_record_voice">Record voice</string>
|
||||
<string name="account_settings_jabber_id">Jabber-ID</string>
|
||||
<string name="account_settings_example_jabber_id">username@pix-art.de</string>
|
||||
<string name="account_settings_example_jabber_id">username@jabber.org</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="invalid_jid">This is not a valid Jabber-ID</string>
|
||||
<string name="error_out_of_memory">Out of memory. Image is too large</string>
|
||||
|
@ -302,7 +302,7 @@
|
|||
<string name="verified">Verified!</string>
|
||||
<string name="smp_requested">Contact requested SMP verification</string>
|
||||
<string name="no_otr_session_found">No valid OTR session has been found!</string>
|
||||
<string name="conversations_foreground_service" translatable="false">Pix-Art Messenger</string>
|
||||
<string name="conversations_foreground_service" translatable="false">PiratX</string>
|
||||
<string name="pref_create_backup">Create backup</string>
|
||||
<string name="pref_create_backup_summary">Write backup files to %s</string>
|
||||
<string name="notification_create_backup_title">Creating backup files</string>
|
||||
|
@ -434,10 +434,8 @@
|
|||
<string name="download_failed_could_not_write_file">Download failed: Could not write file</string>
|
||||
<string name="action_check_update">Check for Updates</string>
|
||||
<string name="title_activity_updater">Update service</string>
|
||||
<string name="update_available">Version %1$s is available.\n\nFilesize: %2$s\n\nUpdate to version %1$s now?</string>
|
||||
<string name="remind_later">later</string>
|
||||
<string name="update">update</string>
|
||||
<string name="no_update_available">No update available</string>
|
||||
<string name="download_started">Download started</string>
|
||||
<string name="account_status_tor_unavailable">Tor network unavailable</string>
|
||||
<string name="account_status_bind_failure">Bind failure</string>
|
||||
|
@ -447,11 +445,10 @@
|
|||
<string name="pref_away_when_screen_off">Away when screen is off</string>
|
||||
<string name="pref_away_when_screen_off_summary">Marks your resource as away when the screen is turned off</string>
|
||||
<string name="pref_dnd_on_silent_mode">\"Do not disturb\" in silent mode</string>
|
||||
<string name="update_info">Pix-Art Messenger is downloading and installing the new version automatically.\n\nPlease wait…</string>
|
||||
<string name="pref_dnd_on_silent_mode_summary">Marks your resource as \"Do not disturb\" when device is in silent mode</string>
|
||||
<string name="pref_treat_vibrate_as_silent">Treat vibrate as silent mode</string>
|
||||
<string name="pref_treat_vibrate_as_dnd_summary">Marks your resource as \"Do not disturb\" when device is on vibrate</string>
|
||||
<string name="hostname_example">xmpp.pix-art.de</string>
|
||||
<string name="hostname_example" translatable="false">jabber.thedevstack.de</string>
|
||||
<string name="action_add_account_with_certificate">Add account with certificate</string>
|
||||
<string name="unable_to_parse_certificate">Unable to parse certificate</string>
|
||||
<string name="authenticate_with_certificate">Leave empty to authenticate w/ certificate</string>
|
||||
|
@ -479,9 +476,9 @@
|
|||
<item quantity="other">%d messages</item>
|
||||
</plurals>
|
||||
<string name="load_more_messages">Load more messages</string>
|
||||
<string name="no_storage_permission">Pix-Art Messenger needs access to external storage</string>
|
||||
<string name="no_storage_permission">PiratX needs access to external storage</string>
|
||||
<string name="sync_with_contacts">Synchronize with contacts</string>
|
||||
<string name="sync_with_contacts_long">Pix-Art Messenger wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nPix-Art Messenger will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts.</string>
|
||||
<string name="sync_with_contacts_long">PiratX wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nPiratX will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts.</string>
|
||||
<string name="notify_on_all_messages">Notify on all messages</string>
|
||||
<string name="notify_only_when_highlighted">Notify only when mentioned</string>
|
||||
<string name="notify_never">Notifications disabled</string>
|
||||
|
@ -496,8 +493,8 @@
|
|||
<string name="video_original">original (uncompressed)</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="battery_optimizations_enabled">Battery optimizations enabled</string>
|
||||
<string name="battery_optimizations_enabled_explained">Your device is doing some heavy battery optimizations on Pix-Art Messenger that might lead to delayed notifications or even message loss.\nIt is recommended to disable those.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on Pix-Art Messenger that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string>
|
||||
<string name="battery_optimizations_enabled_explained">Your device is doing some heavy battery optimizations on PiratX that might lead to delayed notifications or even message loss.\nIt is recommended to disable those.</string>
|
||||
<string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on PiratX that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string>
|
||||
<string name="install_from_unknown_sources_disabled">Install from unknown sources disabled</string>
|
||||
<string name="install_from_unknown_sources_disabled_dialog">Your device is configured to not allow app installs from unknown sources except from Google PlayStore. This will cause problems with the in app updater.\n\nYou will now be asked to allow app installs from unknown sources.</string>
|
||||
<string name="disable">Disable</string>
|
||||
|
@ -509,7 +506,7 @@
|
|||
<string name="correct_message">Correct message</string>
|
||||
<string name="send_corrected_message">Send corrected message</string>
|
||||
<string name="no_keys_just_confirm">You already trust this contact. By selecting ’done’ you are just confirming that %s is part of this group chat.</string>
|
||||
<string name="contacts_have_no_pgp_keys">Pix-Art Messenger is unable to encrypt your messages because your contacts are not announcing their public keys.\n\n</string>
|
||||
<string name="contacts_have_no_pgp_keys">PiratX is unable to encrypt your messages because your contacts are not announcing their public keys.\n\n</string>
|
||||
<string name="this_account_is_disabled">You have disabled this account</string>
|
||||
<string name="no_application_to_share_uri">No application found to share URI</string>
|
||||
<string name="share_uri_with">Share URI with…</string>
|
||||
|
@ -544,13 +541,11 @@
|
|||
<string name="import_text">If there is a backup available you can import this by pressing the button below.</string>
|
||||
<string name="import_database">Import backup</string>
|
||||
<string name="invite_again">Invite again</string>
|
||||
<string name="inviteUser_Subject">has invited you via</string>
|
||||
<string name="InviteText">Hello,\n\nthe user %s has invited you to Pix-Art Messenger. If you are using Android, give it a try and click the following link to start over...</string>
|
||||
<string name="InviteText">Hello,\n\nthe user %s has invited you to PiratX Messenger. If you are using Android, give it a try and click the following link to start over...</string>
|
||||
<string name="pref_broadcast_last_activity">Broadcast Last User Interaction</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Let all your contacts know when use Pix-Art Messenger</string>
|
||||
<string name="invite_user">Invite to Pix-Art Messenger</string>
|
||||
<string name="request_permissions_message">Pix-Art Messenger will ask you to allow a few permissions. It is important that you allow all these permissions to use all features of this messenger. If you deny any of these permissions the app will close itself.</string>
|
||||
<string name="request_permissions_message_again">You have denied some or all permissions needed for Pix-Art Messenger. Would you like to jump to the settings and allow these permissions? If you denie any of these permissions, the app will close itself.</string>
|
||||
<string name="pref_broadcast_last_activity_summary">Let all your contacts know when use PiratX</string>
|
||||
<string name="request_permissions_message">PiratX will ask you to allow a few permissions. It is important that you allow all these permissions to use all features of this messenger. If you deny any of these permissions the app will close itself.</string>
|
||||
<string name="request_permissions_message_again">You have denied some or all permissions needed for PiratX. Would you like to jump to the settings and allow these permissions? If you denie any of these permissions, the app will close itself.</string>
|
||||
<string name="unable_to_connect_to_keychain">Unable to connect to OpenKeychain</string>
|
||||
<string name="this_device_is_no_longer_in_use">This device is no longer in use</string>
|
||||
<string name="please_wait">Please wait…</string>
|
||||
|
@ -578,8 +573,8 @@
|
|||
<string name="show_error_message">Show error message</string>
|
||||
<string name="error_message">Error Message</string>
|
||||
<string name="data_saver_enabled">Data saver enabled</string>
|
||||
<string name="data_saver_enabled_explained">Your operating system is restricting Pix-Art Messenger from accessing the Internet when in background. To receive notifications of new messages you should allow Pix-Art Messenger unrestricted access when Data saver is on.\\nPix-Art Messenger will still make an effort to save data when possible.</string>
|
||||
<string name="device_does_not_support_data_saver">Your device does not supporting disabling data saver for Pix-Art Messenger.</string>
|
||||
<string name="data_saver_enabled_explained">Your operating system is restricting PiratX from accessing the Internet when in background. To receive notifications of new messages you should allow PiratX unrestricted access when Data saver is on.\\nPiratX will still make an effort to save data when possible.</string>
|
||||
<string name="device_does_not_support_data_saver">Your device does not supporting disabling data saver for PiratX.</string>
|
||||
<string name="add_to_contact_list">Add to contact list</string>
|
||||
<string name="contact">Contact</string>
|
||||
<string name="unable_to_start_recording">Unable to start recording</string>
|
||||
|
@ -681,7 +676,6 @@
|
|||
<string name="server_info_partial">partial</string>
|
||||
<string name="pref_show_foreground_service_summary">Some Android devices will close some apps after a period of time and you won’t be able to receive new messages. If you have such problems, try to activate the foreground service. But keep in mind, that you will have a permanent notification with this option checked.</string>
|
||||
<string name="pref_show_foreground_service">Use foreground service</string>
|
||||
<string name="update_service">Pix-Art Messenger update service</string>
|
||||
<string name="install_update">Install update?</string>
|
||||
<string name="highlight_in_muc">highlight user</string>
|
||||
<string name="no_application_found_to_open_link">No application found to open link</string>
|
||||
|
@ -703,7 +697,7 @@
|
|||
<string name="no_write_access_in_public_muc">You are not participating this group chat and have no write access at the moment.\nPlease go to the group chat details by pressing <b>OK</b> and send a private message to a moderator, administrator or owner by long clicking one of the members name at the top of the list to ask for write access.</string>
|
||||
<string name="snooze">Snooze</string>
|
||||
<string name="huawei_protected_apps">Protected Apps</string>
|
||||
<string name="huawei_protected_apps_summary">To keep receiving notifications, even when the screen is turned off, you need to add Pix-Art Messenger to the list of protected apps.</string>
|
||||
<string name="huawei_protected_apps_summary">To keep receiving notifications, even when the screen is turned off, you need to add PiratX to the list of protected apps.</string>
|
||||
<string name="pref_enable_multi_accounts_title">Enable multiple accounts</string>
|
||||
<string name="pref_enable_multi_accounts_summary">Do you want to use multiple accounts?</string>
|
||||
<string name="mtm_accept_cert">Accept Unknown Certificate?</string>
|
||||
|
@ -716,13 +710,13 @@
|
|||
<string name="qr_code_scanner_needs_access_to_camera">The QR code scanner needs access to the camera</string>
|
||||
<string name="pref_scroll_to_bottom_summary">Scroll down after sending a message</string>
|
||||
<string name="pref_scroll_to_bottom">Scroll to bottom</string>
|
||||
<string name="no_camera_permission">Pix-Art Messenger needs access to the camera</string>
|
||||
<string name="no_camera_permission">PiratX needs access to the camera</string>
|
||||
<string name="edit_status_message_title">Edit Status Message</string>
|
||||
<string name="edit_status_message">Edit status message</string>
|
||||
<string name="pref_automatically_delete_messages_description">Automatically delete messages from this device that are older than the configured time frame.</string>
|
||||
<string name="pref_automatically_delete_messages">Automatic message deletion</string>
|
||||
<string name="disable_encryption">Disable encryption</string>
|
||||
<string name="error_trustkey_general">Pix-Art Messenger is unable to send encrypted messages to %1$s. This may be due to your contact using an outdated server or client that can not handle OMEMO.</string>
|
||||
<string name="error_trustkey_general">Unable to send encrypted messages to %1$s. This may be due to your contact using an outdated server or client that can not handle OMEMO.</string>
|
||||
<string name="error_trustkey_device_list">Unable to fetch device list</string>
|
||||
<string name="error_trustkey_bundle">Unable to fetch device bundles</string>
|
||||
<string name="error_trustkey_hint_mutual">Hint: In some cases this can be fixed by adding each other your contact lists.</string>
|
||||
|
@ -747,7 +741,7 @@
|
|||
<string name="large">Large</string>
|
||||
<string name="create_shortcut">Create Shortcut</string>
|
||||
<string name="not_encrypted_for_this_device">Message was not encrypted for this device.</string>
|
||||
<string name="no_microphone_permission">Pix-Art Messenger needs access to the microphone</string>
|
||||
<string name="no_microphone_permission">PiratX needs access to the microphone</string>
|
||||
<string name="search_messages">Search messages</string>
|
||||
<string name="gif">GIF</string>
|
||||
<string name="view_conversation">View conversation</string>
|
||||
|
@ -777,14 +771,14 @@
|
|||
<string name="conference_destroyed">This group chat has been destroyed</string>
|
||||
<string name="no_application_found_to_view_contact">No application found to view contact</string>
|
||||
<string name="welcome_server_info">We recommend the use of blabber.im as your provider.</string>
|
||||
<string name="no_location_permission">Pix-Art Messenger needs access to location services</string>
|
||||
<string name="no_location_permission">PiratX needs access to location services</string>
|
||||
<string name="pref_show_record_voice_btn_summary">Show record voice button in chats as quick action</string>
|
||||
<string name="pref_show_record_voice_btn">Show record voice button</string>
|
||||
<string name="pref_use_quick_share_attachment_choice_summary">Replace send button with attachment choice if no message is typed. Otherwise show quick actions, which can be cofigured in the following setting.</string>
|
||||
<string name="pref_quick_share_attachment_choice">Attachment choice</string>
|
||||
<string name="unable_to_save_recording">Unable to save recording</string>
|
||||
<string name="foreground_service_channel_name">Foreground service</string>
|
||||
<string name="foreground_service_channel_description">This notification category is used to display a permanent notification indicating that Pix-Art Messenger is running.</string>
|
||||
<string name="foreground_service_channel_description">This notification category is used to display a permanent notification indicating that PiratX is running.</string>
|
||||
<string name="notification_group_status_information">Status Information</string>
|
||||
<string name="error_channel_name">Connectivity Problems</string>
|
||||
<string name="error_channel_description">This notification category is used to display a notification in case there is a problem connecting to an account.</string>
|
||||
|
@ -835,7 +829,7 @@
|
|||
<string name="open_with">Open with…</string>
|
||||
<string name="server_info_adhoc_invite">XEP-0050: Ad-Hoc Commands: user invite</string>
|
||||
<string name="choose_account">Choose account</string>
|
||||
<string name="set_profile_picture">Pix-Art Messenger profile picture</string>
|
||||
<string name="set_profile_picture">Profile picture</string>
|
||||
<string name="restore_backup">Restore backup</string>
|
||||
<string name="restore">Restore</string>
|
||||
<string name="enter_password_to_restore">Enter your password for the account %s to restore the backup.</string>
|
||||
|
@ -896,7 +890,7 @@
|
|||
<string name="password_forgotten_title">Password forgotten</string>
|
||||
<string name="password_forgotten_text">You have forgotten your account password? We will now try to open the support website of your provider.</string>
|
||||
<string name="set_settings_intro">Here you can set some important privacy settings to your needs. All the settings can also be modified later.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Show map previews directly inside the chat view, a connection to the Pix-Art-Server will be established.</string>
|
||||
<string name="pref_show_mappreview_inside_summary">Show map previews directly inside the chat view, a connection to the PiratX-Server will be established.</string>
|
||||
<string name="pref_show_mappreview_inside">Show previews of locations in chat</string>
|
||||
<string name="pref_use_internal_updater_summary">Let the messenger look for new app updates once a day</string>
|
||||
<string name="pref_use_internal_updater">look for updates</string>
|
||||
|
|
|
@ -465,5 +465,8 @@
|
|||
android:icon="?attr/ic_settings_about"
|
||||
android:summary="@string/pref_about_conversations_summary"
|
||||
android:title="@string/title_activity_about" />
|
||||
<de.thedevstack.piratx.ui.preferences.LogInformationPreference
|
||||
android:summary="@string/pref_show_logcat_summary"
|
||||
android:title="@string/pref_show_logcat_title"/>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package de.pixart.messenger.services;
|
||||
|
||||
import de.pixart.messenger.entities.Account;
|
||||
|
||||
public class PushManagementService {
|
||||
|
||||
protected final XmppConnectionService mXmppConnectionService;
|
||||
|
||||
public PushManagementService(XmppConnectionService service) {
|
||||
this.mXmppConnectionService = service;
|
||||
}
|
||||
|
||||
public void registerPushTokenOnServer(Account account) {
|
||||
//stub implementation. only affects playstore flavor
|
||||
}
|
||||
|
||||
public boolean available(Account account) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isStub() {
|
||||
return true;
|
||||
}
|
||||
}
|
38
src/piratx/java/de/thedevstack/piratx/PiratXApplication.java
Normal file
38
src/piratx/java/de/thedevstack/piratx/PiratXApplication.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
package de.thedevstack.piratx;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.multidex.MultiDexApplication;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class PiratXApplication extends MultiDexApplication {
|
||||
/**
|
||||
* Application instance for static access
|
||||
*/
|
||||
private static PiratXApplication instance;
|
||||
|
||||
/**
|
||||
* Initializes the application and saves its instance.
|
||||
*/
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
PiratXApplication.instance = this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the instance of the application
|
||||
* @return this application instance
|
||||
*/
|
||||
public static PiratXApplication getInstance() {
|
||||
return PiratXApplication.instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the application's context.
|
||||
* @return Context the application's context
|
||||
*/
|
||||
public static Context getAppContext() {
|
||||
return PiratXApplication.instance.getApplicationContext();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package de.thedevstack.piratx.ui.listeners;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.thedevstack.android.logcat.Logging;
|
||||
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;
|
||||
import de.thedevstack.piratx.utils.ClipboardUtil;
|
||||
|
||||
/**
|
||||
* OnClickListener to copy logcat entries from LogCatArrayAdapter to clipboard.
|
||||
*/
|
||||
public class LogCatOutputCopyOnClickListener implements View.OnClickListener {
|
||||
private final LogCatArrayAdapter logCatOutputAdapter;
|
||||
|
||||
public LogCatOutputCopyOnClickListener(LogCatArrayAdapter logCatOutputAdapter) {
|
||||
this.logCatOutputAdapter = logCatOutputAdapter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the entries of LogCatArrayAdapter separated by a new line to the clipboard.
|
||||
*
|
||||
* @param v The view that was clicked.
|
||||
*/
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Logging.d("copylogcat", "Start Copying log cat");
|
||||
List<String> items = this.logCatOutputAdapter.getItems();
|
||||
String textToCopy = null;
|
||||
if (null != items && !items.isEmpty()) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String item : items) {
|
||||
sb.append(item);
|
||||
sb.append("\n");
|
||||
}
|
||||
textToCopy = sb.toString();
|
||||
}
|
||||
ClipboardUtil.copyToClipboard("c+logcat", textToCopy);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package de.thedevstack.piratx.ui.preferences;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
|
||||
import de.pixart.messenger.R;
|
||||
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;
|
||||
import de.thedevstack.android.logcat.tasks.ReadLogCatAsyncTask;
|
||||
import de.thedevstack.piratx.ui.listeners.LogCatOutputCopyOnClickListener;
|
||||
import de.thedevstack.piratx.utils.ClipboardUtil;
|
||||
|
||||
/**
|
||||
* Activity to display the logcat output.
|
||||
*/
|
||||
public class LogCatOutputActivity extends Activity {
|
||||
/**
|
||||
* List adapter containing the logcat entries.
|
||||
*/
|
||||
private LogCatArrayAdapter logCatArrayAdapter;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_logcatoutput);
|
||||
ListView lv = findViewById(R.id.actLogInfoOutput);
|
||||
this.logCatArrayAdapter = new LogCatArrayAdapter(this, R.layout.list_item_logcatoutput);
|
||||
lv.setAdapter(this.logCatArrayAdapter);
|
||||
new ReadLogCatAsyncTask(this.logCatArrayAdapter).execute();
|
||||
Button copyButton = findViewById(R.id.actLogOutputCopyButton);
|
||||
copyButton.setOnClickListener(new LogCatOutputCopyOnClickListener(this.logCatArrayAdapter));
|
||||
registerForContextMenu(lv);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
|
||||
super.onCreateContextMenu(menu, v, menuInfo);
|
||||
menu.add(0, 123456789, 0, R.string.piratx_copy_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
if (123456789 == item.getItemId()) {
|
||||
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
|
||||
String itemText = this.logCatArrayAdapter.getItems().get(info.position);
|
||||
ClipboardUtil.copyToClipboard(itemText);
|
||||
return true;
|
||||
}
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package de.thedevstack.piratx.ui.preferences;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.preference.Preference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class LogInformationPreference extends Preference {
|
||||
public LogInformationPreference(final Context context, final AttributeSet attrs, final int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
public LogInformationPreference(final Context context, final AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
public LogInformationPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
final Intent intent = new Intent(getContext(), LogCatOutputActivity.class);
|
||||
getContext().startActivity(intent);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package de.thedevstack.piratx.utils;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import de.pixart.messenger.R;
|
||||
import de.thedevstack.piratx.PiratXApplication;
|
||||
|
||||
/**
|
||||
* Util class to work with the Clipboard.
|
||||
*/
|
||||
public final class ClipboardUtil {
|
||||
private static final String CLIPBOARD_LABEL = "piratx+clipboard";
|
||||
|
||||
/**
|
||||
* Copies a text to the clipboard.
|
||||
* @param clipboardLabel the label to show to a user to allow identifying the text in clipboard.
|
||||
* @param text the text to copy
|
||||
*/
|
||||
public static void copyToClipboard(String clipboardLabel, String text) {
|
||||
Context context = PiratXApplication.getAppContext();
|
||||
if (null != text && !text.isEmpty()) {
|
||||
String label = (null == clipboardLabel) ? CLIPBOARD_LABEL : clipboardLabel;
|
||||
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
ClipData clip = ClipData.newPlainText(label, text);
|
||||
clipboard.setPrimaryClip(clip);
|
||||
Toast.makeText(context, R.string.piratx_copied_to_clipboard, Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
Toast.makeText(context, R.string.piratx_not_copied_to_clipboard_empty, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies a text to the clipboard.
|
||||
* @param text the text to copy
|
||||
*/
|
||||
public static void copyToClipboard(String text) {
|
||||
copyToClipboard(CLIPBOARD_LABEL, text);
|
||||
}
|
||||
|
||||
private ClipboardUtil() {
|
||||
// helper class - avoid instantiation
|
||||
}
|
||||
}
|
15
src/piratx/res/drawable/mecmd_message_border.xml
Normal file
15
src/piratx/res/drawable/mecmd_message_border.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
|
||||
<corners android:radius="2dp" />
|
||||
|
||||
<padding
|
||||
android:bottom="1.5dp"
|
||||
android:left="1.5dp"
|
||||
android:right="1.5dp"
|
||||
android:top="1.5dp" />
|
||||
|
||||
<solid android:color="@color/black12" />
|
||||
|
||||
</shape>
|
19
src/piratx/res/layout/activity_logcatoutput.xml
Normal file
19
src/piratx/res/layout/activity_logcatoutput.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<Button
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/piratx_copy_to_clipboard"
|
||||
android:id="@+id/actLogOutputCopyButton" />
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/actLogInfoOutput"
|
||||
android:scrollbars="vertical"
|
||||
android:textSize="12sp"
|
||||
android:textIsSelectable="true"/>
|
||||
</LinearLayout>
|
7
src/piratx/res/layout/list_item_logcatoutput.xml
Normal file
7
src/piratx/res/layout/list_item_logcatoutput.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/listItemLogcatoutputText"
|
||||
android:scrollbars="vertical"
|
||||
android:textSize="12sp"/>
|
110
src/piratx/res/layout/message_mecmd.xml
Normal file
110
src/piratx/res/layout/message_mecmd.xml
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingTop="3dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingBottom="3dp">
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/message_photo"
|
||||
android:layout_width="@dimen/msg_mecmd_avatar_size"
|
||||
android:layout_height="@dimen/msg_mecmd_avatar_size"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:scaleType="fitXY"
|
||||
app:riv_corner_radius="@dimen/rounded_image_border" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/message_box"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginRight="4dp"
|
||||
android:layout_toEndOf="@+id/message_photo"
|
||||
android:layout_toRightOf="@+id/message_photo"
|
||||
android:background="@drawable/message_bubble_received_light"
|
||||
android:longClickable="true"
|
||||
android:minHeight="48dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:padding="2dp">
|
||||
|
||||
<include layout="@layout/message_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:orientation="horizontal"
|
||||
android:paddingBottom="2dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/message_encryption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="4sp"
|
||||
android:layout_marginRight="4sp"
|
||||
android:gravity="center_vertical"
|
||||
android:textAppearance="@style/TextAppearance.Conversations.Caption.OnDark.Bold" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/security_indicator"
|
||||
android:layout_width="?attr/TextSizeCaption"
|
||||
android:layout_height="?attr/TextSizeCaption"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="4sp"
|
||||
android:layout_marginRight="4sp"
|
||||
android:alpha="0.70"
|
||||
android:gravity="center_vertical"
|
||||
android:src="@drawable/ic_lock_black_18dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/message_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/sending"
|
||||
android:textAppearance="@style/TextAppearance.Conversations.Caption" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/indicator_received"
|
||||
android:layout_width="?attr/TextSizeCaption"
|
||||
android:layout_height="?attr/TextSizeCaption"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="4sp"
|
||||
android:layout_marginLeft="4sp"
|
||||
android:gravity="center_vertical"
|
||||
android:src="@drawable/ic_received_indicator"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/indicator_read"
|
||||
android:layout_width="?attr/TextSizeCaption"
|
||||
android:layout_height="?attr/TextSizeCaption"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="-8sp"
|
||||
android:layout_marginLeft="-8sp"
|
||||
android:adjustViewBounds="false"
|
||||
android:gravity="center_vertical"
|
||||
android:src="@drawable/ic_read_indicator"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
42
src/piratx/res/values-de/strings.xml
Normal file
42
src/piratx/res/values-de/strings.xml
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="pref_show_logcat_title">Zeige logcat-Ausgabe</string>
|
||||
<string name="pref_show_logcat_summary">Zeigt die Ausgabe von logcat an. Hilfreich für die Fehlersuche.</string>
|
||||
<string name="piratx_title_activity_loginformation">Logausgaben</string>
|
||||
<string name="piratx_copy_item">Zeile kopieren</string>
|
||||
<string name="piratx_copy_to_clipboard">Kopieren</string>
|
||||
<string name="piratx_copied_to_clipboard">In Zwischenablage kopiert</string>
|
||||
<string name="piratx_not_copied_to_clipboard_empty">Nichts zu kopieren.</string>
|
||||
<string name="action_accounts">Konten verwalten</string>
|
||||
<string name="action_add_new_account">Neues Konto erstellen</string>
|
||||
<string name="title_activity_manage_accounts">Konten verwalten</string>
|
||||
<string name="register_account">Neues Konto auf Server erstellen</string>
|
||||
<string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von PiratX.\n<b>Achtung:</b> Dies wird dein XMPP-Konto benutzen, um den Entwickler zu kontaktieren.</string>
|
||||
<string name="touch_to_fix">Hier tippen, um deine Konten zu verwalten</string>
|
||||
<string name="your_account">Dein Konto</string>
|
||||
<string name="action_account">Konto bearbeiten</string>
|
||||
<string name="mgmt_account_delete_confirm_message">Wenn du dein Konto löschst, gehen deine lokal gespeicherten Chatverläufe verloren.\n\nWenn du dein Konto vom Server löschst, wird dein gesamtes Benutzerprofil ebenfalls gelöscht, du wirst dich nicht mehr einloggen können bis du ein neues Konto erstellt hast.</string>
|
||||
<string name="account_already_exists">Das Konto existiert bereits</string>
|
||||
<string name="using_account">Verwendetes Konto: %s</string>
|
||||
<string name="account_details">Mein Konto</string>
|
||||
<string name="notification_restored_backup_subtitle">Vergiss nicht, das Konto zu aktivieren.</string>
|
||||
<string name="action_add_account_with_certificate">Konto mit Zertifikat hinzufügen</string>
|
||||
<string name="connected_accounts">%1$d von %2$d Konten verbunden</string>
|
||||
<string name="no_accounts">(Keine aktivierten Konten)</string>
|
||||
<string name="this_account_is_disabled">Du hast dieses Konto deaktiviert</string>
|
||||
<string name="magic_create_text">Wir erstellen nun mit dir gemeinsam ein Konto mit einem zufällig generierten Passwort, welches du benutzen oder auf der nächsten Seite ändern kannst\nDanach kannst du mit Kontakten auf diesem und anderen Servern in Kontakt treten, indem du ihnen deine Jabber-ID gibst.</string>
|
||||
<string name="create_account">Neues Konto erstellen</string>
|
||||
<string name="welcome_existing_account">Ich habe ein Konto</string>
|
||||
<string name="unable_to_update_account">Konto kann nicht aktualisiert werden.</string>
|
||||
<string name="pref_show_connection_options_summary">Hostname- und Port-Optionen bei Kontoeinrichtung anzeigen</string>
|
||||
<string name="title_activity_share_via_account">Teilen mit Konto</string>
|
||||
<string name="pref_enable_multi_accounts_title">Multikonto-Modus aktivieren</string>
|
||||
<string name="pref_enable_multi_accounts_summary">Möchtest du mehrere Konten benutzen?</string>
|
||||
<string name="chooce_account">Konto wählen</string>
|
||||
<string name="choose_account">Konto wählen</string>
|
||||
<string name="enter_password_to_restore">Um die Sicherung wiederherzustellen, gib für das Konto %s dein Kennwort ein.</string>
|
||||
<string name="go_online_to_delete">Du musst online sein, um dein Konto vom Server löschen zu können.</string>
|
||||
<string name="action_add_existing_account">Bestehendes Konto hinzufügen</string>
|
||||
<string name="pref_show_own_accounts_summary">Zeige eigenes Konto in Chats und Kontakten, falls du mehrere Konten nutzt.</string>
|
||||
<string name="pref_show_own_accounts">Zeige eigenes Konto</string>
|
||||
</resources>
|
3
src/piratx/res/values/dimens.xml
Normal file
3
src/piratx/res/values/dimens.xml
Normal file
|
@ -0,0 +1,3 @@
|
|||
<resources>
|
||||
<dimen name="msg_mecmd_avatar_size">24dp</dimen>
|
||||
</resources>
|
10
src/piratx/res/values/strings.xml
Normal file
10
src/piratx/res/values/strings.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="pref_show_logcat_title">Show logcat output</string>
|
||||
<string name="pref_show_logcat_summary">Shows the output of logcat. This is useful for debugging.</string>
|
||||
<string name="piratx_title_activity_loginformation">Log information</string>
|
||||
<string name="piratx_copy_item">Copy item</string>
|
||||
<string name="piratx_copy_to_clipboard">Copy to clipboard</string>
|
||||
<string name="piratx_copied_to_clipboard">Copied to clipboard</string>
|
||||
<string name="piratx_not_copied_to_clipboard_empty">Nothing to copy.</string>
|
||||
</resources>
|
Reference in a new issue