migrate to blabber.im
12
CHANGELOG.md
|
@ -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
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1,005 B After Width: | Height: | Size: 5.3 KiB |
BIN
art/logo_800.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
art/logo_android.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
art/notification.png
Normal file
After Width: | Height: | Size: 15 KiB |
|
@ -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"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
include ':libs:android-transcoder'
|
||||
include ':libs:xmpp-addr'
|
||||
rootProject.name = 'PixArtMessenger'
|
||||
rootProject.name = 'blabber.im'
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 404 B |
BIN
src/main/res/drawable-hdpi/logo_800.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 302 B |
BIN
src/main/res/drawable-mdpi/logo_800.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 7 KiB |
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 668 B |
Before Width: | Height: | Size: 524 B After Width: | Height: | Size: 518 B |
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 511 B |
BIN
src/main/res/drawable-xhdpi/logo_800.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 983 B After Width: | Height: | Size: 1,011 B |
Before Width: | Height: | Size: 761 B After Width: | Height: | Size: 798 B |
Before Width: | Height: | Size: 686 B After Width: | Height: | Size: 763 B |
BIN
src/main/res/drawable-xxhdpi/logo_800.png
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1,022 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 913 B After Width: | Height: | Size: 1,006 B |
BIN
src/main/res/drawable-xxxhdpi/logo_800.png
Normal file
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 30 KiB |
|
@ -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>
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 8 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
@ -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>
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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 -->
|
||||
|
|
|
@ -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">
|
||||
|
|