diff --git a/TMessagesProj/jni/mr_wrapper.c b/TMessagesProj/jni/mr_wrapper.c index 9a51b10cc..f7f7d7f0d 100644 --- a/TMessagesProj/jni/mr_wrapper.c +++ b/TMessagesProj/jni/mr_wrapper.c @@ -215,6 +215,15 @@ JNIEXPORT jstring Java_org_telegram_messenger_MrMailbox_MrMailboxGetConfig(JNIEn } +JNIEXPORT jint Java_org_telegram_messenger_MrMailbox_MrMailboxGetConfigInt(JNIEnv *env, jclass c, jlong hMailbox, jstring key, jint def) +{ + CHAR_REF(key); + jint ret = mrmailbox_get_config_int((mrmailbox_t*)hMailbox, keyPtr, def); + CHAR_UNREF(key); + return ret; +} + + /* MrMailbox - misc. */ JNIEXPORT jstring Java_org_telegram_messenger_MrMailbox_MrMailboxGetInfo(JNIEnv *env, jclass c, jlong hMailbox) diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java index 309eb5986..3fe59d9e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java @@ -299,6 +299,11 @@ public class ApplicationLoader extends Application { MrMailbox.hMailbox = MrMailbox.MrMailboxNew(); MrMailbox.MrStockAddStr(2, LocaleController.getString("FromYou", R.string.FromYou)); MrMailbox.MrStockAddStr(3, LocaleController.getString("Draft", R.string.Draft)); + MrMailbox.MrStockAddStr(4, LocaleController.getString("MemberSg", R.string.MemberSg)); + MrMailbox.MrStockAddStr(5, LocaleController.getString("MemberPl", R.string.MemberPl)); + MrMailbox.MrStockAddStr(6, LocaleController.getString("ContactSg", R.string.ContactSg)); + MrMailbox.MrStockAddStr(7, LocaleController.getString("ContactPl", R.string.ContactPl)); + MrMailbox.MrStockAddStr(8, LocaleController.getString("Strangers", R.string.Strangers)); applicationHandler = new Handler(applicationContext.getMainLooper()); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java b/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java index cb0e24d1a..b225aecb8 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java @@ -124,6 +124,7 @@ public class MrMailbox { public native static int MrMailboxSetConfig (long hMailbox, String key, String value); // value may be NULL public native static String MrMailboxGetConfig (long hMailbox, String key, String def); // def may be NULL, returns empty string as NULL + public native static int MrMailboxGetConfigInt (long hMailbox, String key, int def); // def may be NULL, returns empty string as NULL public native static String MrMailboxGetInfo (long hMailbox); public native static String MrMailboxExecute (long hMailbox, String cmd); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java index 3f4ab565d..acb54f23f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PrivacySettingsActivity.java @@ -9,27 +9,20 @@ package org.telegram.ui; import android.app.Activity; -import android.app.AlertDialog; -import android.app.ProgressDialog; import android.content.Context; -import android.content.DialogInterface; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.ListView; -import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.ContactsController; import org.telegram.messenger.LocaleController; import org.telegram.messenger.MessagesController; +import org.telegram.messenger.MrMailbox; import org.telegram.messenger.NotificationCenter; -import org.telegram.messenger.FileLog; import org.telegram.messenger.R; -import org.telegram.tgnet.ConnectionsManager; -import org.telegram.tgnet.RequestDelegate; -import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; import org.telegram.messenger.UserConfig; import org.telegram.ui.ActionBar.ActionBar; @@ -49,6 +42,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio private int privacySectionRow; private int blockedRow; + private int showUnknownSendersRow; private int lastSeenRow; private int groupsRow; private int groupsDetailRow; @@ -65,35 +59,34 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio private int secretDetailRow; private int rowCount; + private int typeTextCheck = 3; + @Override public boolean onFragmentCreate() { super.onFragmentCreate(); ContactsController.getInstance().loadPrivacySettings(); + // EDIT BY MR rowCount = 0; - privacySectionRow = -1; //rowCount++; - blockedRow = rowCount++; - lastSeenRow = -1; // EDIT BY MR -- rowCount++; - groupsRow = -1; // EDIT BY MR -- rowCount++; - groupsDetailRow = -1; // EDIT BY MR -- rowCount++; - securitySectionRow = -1; // EDIT BY MR -- rowCount++; - passcodeRow = rowCount++; - passwordRow = -1; // EDIT BY MR -- rowCount++; - sessionsRow = -1; // EDIT BY MR -- rowCount++; - sessionsDetailRow = -1; // EDIT BY MR -- rowCount++; - deleteAccountSectionRow = -1; // EDIT BY MR -- rowCount++; - deleteAccountRow = -1; // EDIT BY MR -- rowCount++; - deleteAccountDetailRow = -1; // EDIT BY MR -- rowCount++; - //if (MessagesController.getInstance().secretWebpagePreview != 1) { EDIT BY MR - secretSectionRow = -1; // EDIT BY MR -- rowCount++; - secretWebpageRow = rowCount++; - secretDetailRow = rowCount++; // EDIT BY MR -- rowCount++; - //} else { EDIT BY MR - // secretSectionRow = -1; - // secretWebpageRow = -1; - // secretDetailRow = -1; - //} /EDIT BY MR + privacySectionRow = -1; + passcodeRow = rowCount++; + blockedRow = rowCount++; + showUnknownSendersRow = rowCount++; + lastSeenRow = -1; + groupsRow = -1; + groupsDetailRow = -1; + securitySectionRow = -1; + passwordRow = -1; + sessionsRow = -1; + sessionsDetailRow = -1; + deleteAccountSectionRow = -1; + deleteAccountRow = -1; + deleteAccountDetailRow = -1; + secretSectionRow = -1; + secretWebpageRow = rowCount++; + secretDetailRow = rowCount++; + // /EDIT BY MR NotificationCenter.getInstance().addObserver(this, NotificationCenter.privacyRulesUpdated); @@ -227,6 +220,19 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio ((TextCheckCell) view).setChecked(MessagesController.getInstance().secretWebpagePreview == 1); } } + else if( i==showUnknownSendersRow) { + int oldval = MrMailbox.MrMailboxGetConfigInt(MrMailbox.hMailbox, "show_strangers", 0); + if( oldval == 1 ) { + MrMailbox.MrMailboxSetConfig(MrMailbox.hMailbox, "show_strangers", "0"); + } + else { + MrMailbox.MrMailboxSetConfig(MrMailbox.hMailbox, "show_strangers", "1"); + } + MrMailbox.MrCallback(MrMailbox.MR_EVENT_MSGS_UPDATED, 0, 0); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(oldval == 0); + } + } } }); @@ -315,6 +321,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio @Override public boolean isEnabled(int i) { return i == passcodeRow || i == passwordRow || i == blockedRow || i == sessionsRow || i == secretWebpageRow || + i==showUnknownSendersRow || i == groupsRow && !ContactsController.getInstance().getLoadingGroupInfo() || i == lastSeenRow && !ContactsController.getInstance().getLoadingLastSeenInfo() || i == deleteAccountRow && !ContactsController.getInstance().getLoadingDeleteInfo(); @@ -426,7 +433,7 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio } else if (i == secretSectionRow) { ((HeaderCell) view).setText(LocaleController.getString("SecretChat", R.string.SecretChat)); } - } else if (type == 3) { + } else if (type == typeTextCheck) { if (view == null) { view = new TextCheckCell(mContext); view.setBackgroundColor(0xffffffff); @@ -435,6 +442,12 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio if (i == secretWebpageRow) { textCell.setTextAndCheck(LocaleController.getString("SecretWebPage", R.string.SecretWebPage), MessagesController.getInstance().secretWebpagePreview == 1, true); } + else if( i==showUnknownSendersRow) { + textCell.setTextAndValueAndCheck(LocaleController.getString("Strangers", R.string.Strangers), + LocaleController.getString("StrangersExplain", R.string.StrangersExplain), + MrMailbox.MrMailboxGetConfigInt(MrMailbox.hMailbox, "show_strangers", 0)==0? false : true, + false, true); + } } return view; } @@ -447,8 +460,8 @@ public class PrivacySettingsActivity extends BaseFragment implements Notificatio return 1; } else if (i == securitySectionRow || i == deleteAccountSectionRow || i == privacySectionRow || i == secretSectionRow) { return 2; - } else if (i == secretWebpageRow) { - return 3; + } else if (i == secretWebpageRow || i==showUnknownSendersRow) { + return typeTextCheck; } return 0; } diff --git a/TMessagesProj/src/main/res/values-de/strings.xml b/TMessagesProj/src/main/res/values-de/strings.xml index e4aa1bd49..8ca5ed6a9 100644 --- a/TMessagesProj/src/main/res/values-de/strings.xml +++ b/TMessagesProj/src/main/res/values-de/strings.xml @@ -972,4 +972,11 @@ Nicht gesetzt Neuer Chat Neuer geheimer Chat + _ Kontakte + _ Kontakt + _ Mitglied + _ Mitglieder + Unbekannte Absender + Unbekannte Benutzer + Nachrichten von unbekannten Adressen anzeigen diff --git a/TMessagesProj/src/main/res/values/strings.xml b/TMessagesProj/src/main/res/values/strings.xml index 69cff9d19..560a3651f 100644 --- a/TMessagesProj/src/main/res/values/strings.xml +++ b/TMessagesProj/src/main/res/values/strings.xml @@ -972,4 +972,11 @@ About LibreChat Not set New chat + _ member + _ members + _ contact + _ contacts + Unknown senders + Unknown users + Show messages from unknown addresses