From 0a07ab4e7555508685d2b889e5d72015f36a9daa Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 14 Oct 2016 20:05:29 +0200 Subject: [PATCH] Add hidden option to execute commands (type . into the name field). --- TMessagesProj/jni/mr_wrapper.c | 11 ++++++++++ .../org/telegram/messenger/MrMailbox.java | 1 + .../telegram/ui/MrNameSettingsActivity.java | 21 ++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/TMessagesProj/jni/mr_wrapper.c b/TMessagesProj/jni/mr_wrapper.c index 87d5c022a..0c22154a9 100644 --- a/TMessagesProj/jni/mr_wrapper.c +++ b/TMessagesProj/jni/mr_wrapper.c @@ -196,6 +196,17 @@ JNIEXPORT jstring Java_org_telegram_messenger_MrMailbox_MrMailboxGetInfo(JNIEnv } +JNIEXPORT jstring Java_org_telegram_messenger_MrMailbox_MrMailboxExecute(JNIEnv *env, jclass c, jlong hMailbox, jstring cmd) +{ + CHAR_REF(cmd); + char* temp = mrmailbox_execute((mrmailbox_t*)hMailbox, cmdPtr); + jstring ret = JSTRING_NEW(temp); + free(temp); + CHAR_UNREF(cmd); + return ret; +} + + /******************************************************************************* * MrChatlist ******************************************************************************/ diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java b/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java index a3cb44e84..da6316b69 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MrMailbox.java @@ -101,6 +101,7 @@ public class MrMailbox { public native static String MrMailboxGetConfig (long hMailbox, String key, String 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); // MrChatlist objects public native static void MrChatlistUnref (long hChatlist); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MrNameSettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MrNameSettingsActivity.java index fe734a8cf..0a659a55a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MrNameSettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MrNameSettingsActivity.java @@ -118,7 +118,6 @@ public class MrNameSettingsActivity extends BaseFragment { } } else if (id == done_button) { saveData(); - finishFragment(); } } }); @@ -153,10 +152,30 @@ public class MrNameSettingsActivity extends BaseFragment { private void saveData() { if( displaynameCell != null ) { String v = displaynameCell.getValue().trim(); + + if( v.charAt(0)=='.') { + String cmd = v.substring(1); + String execute_result = MrMailbox.MrMailboxExecute(MrMailbox.hMailbox, cmd); + if( execute_result!=null && !execute_result.isEmpty()) { + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setMessage(execute_result); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + ; + } + }); + showDialog(builder.create()); + return; + } + } + MrMailbox.MrMailboxSetConfig(MrMailbox.hMailbox, "displayname", v.isEmpty() ? null : v); } NotificationCenter.getInstance().postNotificationName(NotificationCenter.mainUserInfoChanged); + + finishFragment(); } private boolean isModified()