1
0
Fork 1

migrate to blabber.im

This commit is contained in:
Christian Schneppe 2020-10-26 18:32:38 +01:00
parent 479864448a
commit e0283d0903
85 changed files with 183 additions and 101 deletions

View file

@ -1,5 +1,16 @@
### Changelog
#### Version 3.0.0
* Pix-Art Messenger is now blabber.im
* rework missed call notifications (PAM)
* UI improvements (PAM)
* search individual conversations
* notify user if message delivery fails
* remember display names (nicks) from Quicksy users across restarts
* add button to start Orbot (Tor) from notification if necessary
* handle GPX files
* bug fixes
#### Version 2.5.2
* fix crash on PlayStore version
@ -10,6 +21,7 @@
* colorize pinned chats (PAM)
* add 'Return to chat' to audio call screen
* improve keyboard shortcuts
* improve performance for backup restore
* bug fixes
#### Version 2.5.0

BIN
art/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,005 B

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
art/logo_800.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
art/logo_android.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
art/notification.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -105,7 +105,7 @@ android {
versionCode 310
versionName "3.0.0"
versionNameSuffix " beta_(2020-10-25)" // " beta_(XXXX-XX-XX)" // activate for beta versions
versionNameSuffix " beta_(2020-10-29)" // " beta_(XXXX-XX-XX)" // activate for beta versions
//resConfigs "en"
archivesBaseName += "-$versionName"

View file

@ -1,3 +1,3 @@
include ':libs:android-transcoder'
include ':libs:xmpp-addr'
rootProject.name = 'PixArtMessenger'
rootProject.name = 'blabber.im'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -61,7 +61,7 @@ import eu.siacs.conversations.xmpp.Jid;
public class DatabaseBackend extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "history";
public static final int DATABASE_VERSION = 52; // = Conversations DATABASE_VERSION + 5
public static final int DATABASE_VERSION = 53; // = Conversations DATABASE_VERSION + 6
private static DatabaseBackend instance = null;
private static String CREATE_CONTATCS_STATEMENT = "create table "
@ -583,6 +583,70 @@ public class DatabaseBackend extends SQLiteOpenHelper {
if (oldVersion < 52 && newVersion >= 52) {
db.execSQL("ALTER TABLE " + Contact.TABLENAME + " ADD COLUMN " + Contact.PRESENCE_NAME + " TEXT");
}
if (oldVersion < 53 && newVersion >= 53) {
final File oldMainDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pix-Art Messenger/");
final File oldPicturesDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pix-Art Messenger/Media/Pix-Art Messenger Images/");
final File oldFilesDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pix-Art Messenger/Media/Pix-Art Messenger Files/");
final File oldAudiosDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pix-Art Messenger/Media/Pix-Art Messenger Audios/");
final File oldVideosDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pix-Art Messenger/Media/Pix-Art Messenger Videos/");
if (oldPicturesDirectory.exists() && oldPicturesDirectory.isDirectory()) {
final File newPicturesDirectory = new File(Environment.getExternalStorageDirectory() + "/Pix-Art Messenger/Media/blabber.im Images/");
newPicturesDirectory.getParentFile().mkdirs();
final File[] files = oldPicturesDirectory.listFiles();
if (files == null) {
return;
}
if (oldPicturesDirectory.renameTo(newPicturesDirectory)) {
Log.d(Config.LOGTAG, "moved " + oldPicturesDirectory.getAbsolutePath() + " to " + newPicturesDirectory.getAbsolutePath());
}
}
if (oldFilesDirectory.exists() && oldFilesDirectory.isDirectory()) {
final File newFilesDirectory = new File(Environment.getExternalStorageDirectory() + "/Pix-Art Messenger/Media/blabber.im Files/");
newFilesDirectory.mkdirs();
final File[] files = oldFilesDirectory.listFiles();
if (files == null) {
return;
}
if (oldFilesDirectory.renameTo(newFilesDirectory)) {
Log.d(Config.LOGTAG, "moved " + oldFilesDirectory.getAbsolutePath() + " to " + newFilesDirectory.getAbsolutePath());
}
}
if (oldAudiosDirectory.exists() && oldAudiosDirectory.isDirectory()) {
final File newAudiosDirectory = new File(Environment.getExternalStorageDirectory() + "/Pix-Art Messenger/Media/blabber.im Audios/");
newAudiosDirectory.mkdirs();
final File[] files = oldAudiosDirectory.listFiles();
if (files == null) {
return;
}
if (oldAudiosDirectory.renameTo(newAudiosDirectory)) {
Log.d(Config.LOGTAG, "moved " + oldAudiosDirectory.getAbsolutePath() + " to " + newAudiosDirectory.getAbsolutePath());
}
}
if (oldVideosDirectory.exists() && oldVideosDirectory.isDirectory()) {
final File newVideosDirectory = new File(Environment.getExternalStorageDirectory() + "/Pix-Art Messenger/Media/blabber.im Videos/");
newVideosDirectory.mkdirs();
final File[] files = oldVideosDirectory.listFiles();
if (files == null) {
return;
}
if (oldVideosDirectory.renameTo(newVideosDirectory)) {
Log.d(Config.LOGTAG, "moved " + oldVideosDirectory.getAbsolutePath() + " to " + newVideosDirectory.getAbsolutePath());
}
}
if (oldMainDirectory.exists() && oldMainDirectory.isDirectory()) {
final File newMainDirectory = new File(Environment.getExternalStorageDirectory() + "/blabber.im/");
newMainDirectory.mkdirs();
final File[] files = oldMainDirectory.listFiles();
if (files == null) {
return;
}
if (oldMainDirectory.renameTo(newMainDirectory)) {
Log.d(Config.LOGTAG, "moved " + oldMainDirectory.getAbsolutePath() + " to " + newMainDirectory.getAbsolutePath());
}
}
}
}
private boolean isColumnExisting(SQLiteDatabase db, String TableName, String ColumnName) {

View file

@ -82,7 +82,7 @@ public class FileBackend {
private static final SimpleDateFormat fileDateFormat = new SimpleDateFormat("yyyyMMdd_HHmmssSSS", Locale.US);
private static final String FILE_PROVIDER = ".files";
private static final String APP_DIRECTORY = "Pix-Art Messenger";
private static final String APP_DIRECTORY = "blabber.im";
private XmppConnectionService mXmppConnectionService;

View file

@ -177,7 +177,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
private static Bitmap getRoundLauncherIcon(Resources resources) {
final Drawable drawable = ResourcesCompat.getDrawable(resources, R.drawable.ic_launcher, null);
final Drawable drawable = ResourcesCompat.getDrawable(resources, R.mipmap.ic_launcher, null);
if (drawable == null) {
return null;
}

View file

@ -44,7 +44,7 @@ public class AboutActivity extends XmppActivity {
privacyButton = findViewById(R.id.show_privacy_policy);
privacyButton.setOnClickListener(view -> {
try {
final Uri uri = Uri.parse("https://blabber.im/datenschutz/");
final Uri uri = Uri.parse("https://blabber.im/en/datenschutz/");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(browserIntent);
} catch (Exception e) {
@ -54,7 +54,7 @@ public class AboutActivity extends XmppActivity {
termsOfUseButton = findViewById(R.id.show_terms_of_use);
termsOfUseButton.setOnClickListener(view -> {
try {
final Uri uri = Uri.parse("https://blabber.im/nutzungsbedingungen/");
final Uri uri = Uri.parse("https://blabber.im/en/nutzungsbedingungen/");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(browserIntent);
} catch (Exception e) {

View file

@ -40,6 +40,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@ -84,6 +85,7 @@ import eu.siacs.conversations.ui.util.ActivityResult;
import eu.siacs.conversations.ui.util.ConversationMenuConfigurator;
import eu.siacs.conversations.ui.util.IntroHelper;
import eu.siacs.conversations.ui.util.PendingItem;
import eu.siacs.conversations.ui.util.StyledAttributes;
import eu.siacs.conversations.utils.EmojiWrapper;
import eu.siacs.conversations.utils.ExceptionHelper;
import eu.siacs.conversations.utils.MenuDoubleTabUtil;
@ -721,6 +723,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
final View view = getLayoutInflater().inflate(R.layout.ab_title, null);
getSupportActionBar().setCustomView(view);
actionBar.setIcon(null);
actionBar.setBackgroundDrawable(new ColorDrawable(StyledAttributes.getColor(this, R.attr.colorPrimary)));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
TextView abtitle = findViewById(android.R.id.text1);
@ -831,8 +834,9 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
}
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowCustomEnabled(false);
actionBar.setTitle(R.string.app_name);
actionBar.setIcon(R.drawable.ic_notification);
actionBar.setTitle(null);
actionBar.setIcon(R.drawable.logo_800);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.header_background)));
actionBar.setSubtitle(null);
actionBar.setDisplayHomeAsUpEnabled(false);
}

View file

@ -30,9 +30,9 @@ public class IntroActivity extends AppIntro2 {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final int backgroundColor = getResources().getColor(R.color.primary_dark_orange);
final int barColor = getResources().getColor(R.color.primary_orange);
final int indicatorColorActive = getResources().getColor(R.color.primary_dark_orange);
final int backgroundColor = getResources().getColor(R.color.header_background);
final int barColor = getResources().getColor(R.color.accent_orange);
final int indicatorColorActive = getResources().getColor(R.color.darkorange);
final int indicatorColorUsed = getResources().getColor(R.color.darkorange);
setBarColor(barColor);
@ -55,7 +55,7 @@ public class IntroActivity extends AppIntro2 {
SliderPage welcome = new SliderPage();
welcome.setTitle(getString(R.string.welcome_header));
welcome.setDescription(getString(R.string.intro_desc_main));
welcome.setImageDrawable(R.drawable.main_logo);
welcome.setImageDrawable(R.drawable.logo_800);
welcome.setBackgroundColor(backgroundColor);
addSlide(AppIntroFragment.newInstance(welcome));
@ -177,6 +177,7 @@ public class IntroActivity extends AppIntro2 {
@Override
public void onSkipPressed(Fragment currentFragment) {
super.onSkipPressed(currentFragment);
SaveIntroShown(getBaseContext(), activity, mode_multi);
finish();
}

View file

@ -33,18 +33,18 @@ import android.content.Intent;
public class ActivityResult {
public final int requestCode;
public final int resultCode;
public final Intent data;
public final int requestCode;
public final int resultCode;
public final Intent data;
private ActivityResult(int requestCode, int resultCode, final Intent data) {
this.requestCode = requestCode;
this.resultCode = resultCode;
this.data = data;
}
private ActivityResult(int requestCode, int resultCode, final Intent data) {
this.requestCode = requestCode;
this.resultCode = resultCode;
this.data = data;
}
public static ActivityResult of(int requestCode, int resultCode, Intent data) {
return new ActivityResult(requestCode, resultCode, data);
}
public static ActivityResult of(int requestCode, int resultCode, Intent data) {
return new ActivityResult(requestCode, resultCode, data);
}
}

View file

@ -13,28 +13,28 @@ import static eu.siacs.conversations.ui.IntroActivity.ACTIVITY;
import static eu.siacs.conversations.ui.IntroActivity.MULTICHAT;
public class IntroHelper {
public static void showIntro(Activity activity, boolean mode_multi) {
Thread t = new Thread(() -> {
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(activity.getBaseContext());
String activityname = activity.getClass().getSimpleName();
String INTRO = "intro_shown_on_activity_" + activityname + "_MultiMode_" + mode_multi;
boolean SHOW_INTRO = getPrefs.getBoolean(INTRO, true);
public static void showIntro(Activity activity, boolean mode_multi) {
Thread t = new Thread(() -> {
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(activity.getBaseContext());
String activityname = activity.getClass().getSimpleName();
String INTRO = "intro_shown_on_activity_" + activityname + "_MultiMode_" + mode_multi;
boolean SHOW_INTRO = getPrefs.getBoolean(INTRO, true);
if (SHOW_INTRO && Config.SHOW_INTRO) {
final Intent i = new Intent(activity, IntroActivity.class);
i.putExtra(ACTIVITY, activityname);
i.putExtra(MULTICHAT, mode_multi);
activity.runOnUiThread(() -> activity.startActivity(i));
}
});
t.start();
}
if (SHOW_INTRO && Config.SHOW_INTRO) {
final Intent i = new Intent(activity, IntroActivity.class);
i.putExtra(ACTIVITY, activityname);
i.putExtra(MULTICHAT, mode_multi);
activity.runOnUiThread(() -> activity.startActivity(i));
}
});
t.start();
}
public static void SaveIntroShown(Context context, String activity, boolean mode_multi) {
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(context);
String INTRO = "intro_shown_on_activity_" + activity + "_MultiMode_" + mode_multi;
SharedPreferences.Editor e = getPrefs.edit();
e.putBoolean(INTRO, false);
e.apply();
}
public static void SaveIntroShown(Context context, String activity, boolean mode_multi) {
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(context);
String INTRO = "intro_shown_on_activity_" + activity + "_MultiMode_" + mode_multi;
SharedPreferences.Editor e = getPrefs.edit();
e.putBoolean(INTRO, false);
e.apply();
}
}

View file

@ -31,25 +31,25 @@ package eu.siacs.conversations.ui.util;
public class PendingItem<T> {
private T item = null;
private T item = null;
public synchronized void push(T item) {
this.item = item;
}
public synchronized void push(T item) {
this.item = item;
}
public synchronized T pop() {
final T item = this.item;
this.item = null;
return item;
}
public synchronized T pop() {
final T item = this.item;
this.item = null;
return item;
}
public synchronized T peek() {
return item;
}
public synchronized T peek() {
return item;
}
public synchronized boolean clear() {
boolean notNull = this.item != null;
this.item = null;
return notNull;
}
public synchronized boolean clear() {
boolean notNull = this.item != null;
this.item = null;
return notNull;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 983 B

After

Width:  |  Height:  |  Size: 1,011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,022 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

After

Width:  |  Height:  |  Size: 1,006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/transparent" />
<item android:drawable="@color/header_background" />
<item>
<bitmap
android:gravity="center"
android:src="@drawable/splash_logo" />
android:src="@drawable/logo_800" />
</item>
</layer-list>

View file

@ -2,9 +2,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:topLeftRadius="0dp"
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp" />
android:topRightRadius="15dp"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp" />
<padding
android:bottom="2dp"
android:left="6dp"

View file

@ -3,9 +3,9 @@
<stroke android:width="2dp" android:color="@color/accent"/>
<corners
android:topLeftRadius="0dp"
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp" />
android:topRightRadius="15dp"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp" />
<padding
android:bottom="2dp"
android:left="6dp"

View file

@ -2,9 +2,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:topLeftRadius="0dp"
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp" />
android:topRightRadius="15dp"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp" />
<padding
android:bottom="4dp"
android:left="6dp"

View file

@ -3,9 +3,9 @@
<stroke android:width="2dp" android:color="@color/accent"/>
<corners
android:topLeftRadius="0dp"
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp" />
android:topRightRadius="15dp"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp" />
<padding
android:bottom="4dp"
android:left="6dp"

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:topLeftRadius="5dp"
android:topRightRadius="5dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="5dp" />
android:bottomLeftRadius="15dp" />
<padding
android:bottom="4dp"
android:left="6dp"

View file

@ -2,10 +2,10 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="2dp" android:color="@color/accent"/>
<corners
android:topLeftRadius="5dp"
android:topRightRadius="5dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="5dp" />
android:bottomLeftRadius="15dp" />
<padding
android:bottom="4dp"
android:left="6dp"

View file

@ -17,7 +17,7 @@
android:paddingTop="1dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/grey200" />
android:textColor="@color/realwhite" />
<TextView
android:id="@android:id/text2"
@ -32,6 +32,6 @@
android:paddingBottom="1dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/grey50"
android:textColor="@color/realwhite"
android:textSize="12sp" />
</RelativeLayout>

View file

@ -27,7 +27,7 @@
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
card_view:cardBackgroundColor="?attr/color_background_secondary">
card_view:cardBackgroundColor="@color/header_background">
<ImageView
android:id="@+id/logo"
@ -36,7 +36,7 @@
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:src="@drawable/main_logo" />
android:src="@drawable/logo_800" />
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView

View file

@ -127,7 +127,7 @@
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="8dp"
android:src="@drawable/main_logo" />
android:src="@mipmap/ic_launcher_foreground" />
</RelativeLayout>
</RelativeLayout>
</ScrollView>

View file

@ -104,7 +104,7 @@
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="8dp"
android:src="@drawable/main_logo" />
android:src="@mipmap/ic_launcher_foreground" />
</RelativeLayout>
</RelativeLayout>
</ScrollView>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -932,7 +932,7 @@
<string name="pref_use_invidious_summary">Invidious ist eine datenschutzfreundliche Alternative zu YouTube</string>
<string name="this_device">Dieses Gerät</string>
<string name="intro_desc_main">Mehr erfahren…</string>
<string name="welcome_header">Willkommen beim\nblabber.im</string>
<string name="welcome_header">Willkommen bei\nblabber.im</string>
<string name="intro_required_permissions">Erforderliche Berechtigungen</string>
<string name="intro_desc_required_permissions">Am Ende des Intros wirst du gefragt, Zugriff auf externen Speicher zuzulassen (erforderlich), wenn du ihn nicht bereits erteilt hast. Zusätzliche Berechtigungen werden bei Bedarf angefragt und sind optional.</string>
<string name="intro_account">Dein Profil</string>

View file

@ -15,8 +15,8 @@
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 © Daniel Gultsch)
\n\nDownload the modified source code at https://github.com/kriztan/Pix-Art-Messenger
\n\nblabber.im 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.
\n\nYou can support Christian Schneppe by making a donation in form of a gift in sense of § 516 ff BGB i.e. a gratuitous donation via PayPal for pix-art@pix-art.de
\n\nYou can support the blabber.im provider by making a donation. More information on https://blabber.im/en/unterstuetzen
</string>
<string name="pref_about_libraries" translatable="false"><b>Libraries</b>
\n\nhttps://www.bouncycastle.org\n(The MIT License (MIT))

View file

@ -4,12 +4,13 @@
<color name="primary">#ff0D47A1</color> <!-- blue 900 -->
<color name="primary_dark">#ff1A237E</color> <!-- indigo 900 -->
<color name="primary_orange">#ffff9843</color>
<color name="primary_dark_orange">#ffd77721</color>
<color name="primary_orange_dark">#ffff9843</color> <!-- #ffb75d00 -->
<color name="primary_dark_orange_dark">#ffd77721</color> <!-- #ff542600 -->
<color name="primary_orange">#ff363839</color>
<color name="primary_dark_orange">#ffff9843</color>
<color name="primary_orange_dark">#ff363839</color> <!-- #ffb75d00 -->
<color name="primary_dark_orange_dark">#ffff9843</color> <!-- #ff542600 -->
<color name="accent_orange">#ffff9843</color>
<color name="accent_light_orange">#1aff9843</color>
<color name="header_background">#ff363839</color>
<color name="accent">#ff0091ea</color> <!-- light blue accent -->
<color name="accent_light">#1a0091ea</color> <!-- light blue accent -->
@ -53,10 +54,10 @@
<color name="darkred">#ffb71c1c</color> <!-- red 900 -->
<color name="darkgreen">#ff1b5e20</color> <!-- green 900 -->
<color name="lightorange">#fffff4ec</color>
<color name="lightorange2">#ffffcba1</color>
<color name="middleorange">#ff995b28</color>
<color name="darkorange">#ff331e0d</color>
<color name="lightorange">#fffff4ec</color> <!-- light theme other -->
<color name="lightorange2">#ffe9eaee</color> <!-- light theme me -->
<color name="middleorange">#ffb26a2e</color> <!-- dark theme other -->
<color name="darkorange">#ff363839</color> <!-- dark theme me -->
<color name="online">#ff388e3c</color> <!-- green 700 -->
<color name="away">#ffff9800</color> <!-- orange 500 -->

View file

@ -28,7 +28,7 @@
<style name="TextAppearance.Conversations.Body1" parent="TextAppearance.AppCompat.Body1">
<item name="android:textSize">?TextSizeBody1</item>
<item name="android:textColorLink">?android:textColorPrimary</item>
<item name="android:textColorLink">?text_Color_Main</item>
</style>
<style name="TextAppearance.Conversations.Body1.Warning" parent="TextAppearance.AppCompat.Body1">