From 2dfacc48588cf600da2d14ef09757ef3f97ca503 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Wed, 21 Dec 2016 23:04:52 +0100 Subject: [PATCH] Make 'Reset notifications and sounds' work. --- .../com/b44t/messenger/MediaController.java | 2 +- .../b44t/messenger/MessagesController.java | 2 - .../messenger/NotificationsController.java | 68 ++----------------- .../ui/NotificationsSettingsActivity.java | 66 ++++++++---------- .../src/main/res/values-de/strings.xml | 1 + MessengerProj/src/main/res/values/strings.xml | 1 + 6 files changed, 36 insertions(+), 104 deletions(-) diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MediaController.java b/MessengerProj/src/main/java/com/b44t/messenger/MediaController.java index e493f7953..2a6c1958c 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MediaController.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MediaController.java @@ -2500,7 +2500,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener, try { Vibrator v = (Vibrator) ApplicationLoader.applicationContext.getSystemService(Context.VIBRATOR_SERVICE); v.vibrate(50); - //NotificationsController.getInstance().playRecordSound(); + //NotificationsController.getInstance().playRecordSound(); -- was also disabled in Telegram; playing a sound while recording may result in a feedback } catch (Exception e) { FileLog.e("messenger", e); } diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java b/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java index b7cdd7f53..ef089ccd8 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MessagesController.java @@ -35,7 +35,6 @@ public class MessagesController implements NotificationCenter.NotificationCenter private String uploadingAvatar = null; - public boolean enableJoined = true; public int fontSize = AndroidUtilities.dp(16); public int ratingDecay; @@ -75,7 +74,6 @@ public class MessagesController implements NotificationCenter.NotificationCenter NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidLoaded); NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidFailedLoad); SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE); - enableJoined = preferences.getBoolean("EnableContactJoined", true); preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE); secretWebpagePreview = preferences.getInt("secretWebpage2", 2); diff --git a/MessengerProj/src/main/java/com/b44t/messenger/NotificationsController.java b/MessengerProj/src/main/java/com/b44t/messenger/NotificationsController.java index 943ab0c1c..3011da51d 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/NotificationsController.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/NotificationsController.java @@ -386,7 +386,11 @@ public class NotificationsController { MrChat mrChat = MrMailbox.getChat(chat_id); boolean isGroupChat = mrChat.getType()==MrChat.MR_CHAT_GROUP; - int popup = preferences.getInt(isGroupChat ? "popupGroup" : "popupAll", 0); + boolean value = !( (!preferences.getBoolean("EnableAll", true) || isGroupChat && !preferences.getBoolean("EnableGroup", true)) && notifyOverride == 0); + + if( value ) { + + } /* old func: public void processNewMessages(final ArrayList messageObjects, final boolean isLast) @@ -433,19 +437,12 @@ public class NotificationsController { Boolean value = settingsCache.get(dialog_id); boolean isChat = (int) dialog_id < 0; - popup = (int) dialog_id == 0 ? 0 : preferences.getInt(isChat ? "popupGroup" : "popupAll", 0); if (value == null) { int notifyOverride = getNotifyOverride(preferences, dialog_id); value = !(notifyOverride == 2 || (!preferences.getBoolean("EnableAll", true) || isChat && !preferences.getBoolean("EnableGroup", true)) && notifyOverride == 0); settingsCache.put(dialog_id, value); } - if (popup != 0 && messageObject.messageOwner.to_id.channel_id != 0) { - popup = 0; - } if (value) { - if (popup != 0) { - popupArray.add(0, messageObject); - } delayedPushMessages.add(messageObject); pushMessages.add(0, messageObject); pushMessagesDict.put(mid, messageObject); @@ -459,23 +456,7 @@ public class NotificationsController { notifyCheck = isLast; } - if (!popupArray.isEmpty() && oldCount != popupArray.size() && !AndroidUtilities.needShowPasscode(false)) { - final int popupFinal = popup; - AndroidUtilities.runOnUIThread(new Runnable() { - @Override - public void run() { - popupMessages = popupArray; - if (ApplicationLoader.mainInterfacePaused || !ApplicationLoader.isScreenOn && !UserConfig.isWaitingForPasscodeEnter) { - MessageObject messageObject = messageObjects.get(0); - if (popupFinal == 3 || popupFinal == 1 && ApplicationLoader.isScreenOn || popupFinal == 2 && !ApplicationLoader.isScreenOn) { - Intent popupIntent = new Intent(ApplicationLoader.applicationContext, PopupNotificationActivity.class); - popupIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_FROM_BACKGROUND); - ApplicationLoader.applicationContext.startActivity(popupIntent); - } - } - } - }); - } + } }); */ @@ -1061,43 +1042,6 @@ public class NotificationsController { } } - /*public void playRecordSound() { - try { - if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) { - return; - } - notificationsQueue.postRunnable(new Runnable() { - @Override - public void run() { - try { - if (soundPool == null) { - soundPool = new SoundPool(3, AudioManager.STREAM_SYSTEM, 0); - soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { - @Override - public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { - if (status == 0) { - soundPool.play(sampleId, 1.0f, 1.0f, 1, 0, 1.0f); - } - } - }); - } - if (soundRecord == 0 && !soundRecordLoaded) { - soundRecordLoaded = true; - soundRecord = soundPool.load(ApplicationLoader.applicationContext, R.raw.sound_record, 1); - } - if (soundRecord != 0) { - soundPool.play(soundRecord, 1.0f, 1.0f, 1, 0, 1.0f); - } - } catch (Exception e) { - FileLog.e("messenger", e); - } - } - }); - } catch (Exception e) { - FileLog.e("messenger", e); - } - }*/ - private void playInChatSound() { if (!inChatSoundEnabled || MediaController.getInstance().isRecordingAudio()) { return; diff --git a/MessengerProj/src/main/java/com/b44t/ui/NotificationsSettingsActivity.java b/MessengerProj/src/main/java/com/b44t/ui/NotificationsSettingsActivity.java index 1c3e8b51b..048521db1 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/NotificationsSettingsActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/NotificationsSettingsActivity.java @@ -18,6 +18,7 @@ import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Build; +import android.os.Bundle; import android.provider.Settings; import android.view.Gravity; import android.view.View; @@ -26,8 +27,11 @@ import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ListView; +import android.widget.Toast; +import com.b44t.messenger.AndroidUtilities; import com.b44t.messenger.LocaleController; +import com.b44t.messenger.MrMailbox; import com.b44t.messenger.NotificationsController; import com.b44t.messenger.NotificationCenter; import com.b44t.messenger.ApplicationLoader; @@ -48,7 +52,6 @@ import com.b44t.ui.Components.LayoutHelper; public class NotificationsSettingsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { private ListView listView; - private boolean reseting = false; private int notificationsServiceRow; private int notificationsServiceConnectionRow; @@ -78,8 +81,6 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif private int otherSectionRow; private int badgeNumberRow; private int repeatRow; - private int resetSectionRow2; - private int resetSectionRow; private int resetNotificationsRow; private int rowCount = 0; @@ -132,8 +133,6 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif notificationsServiceConnectionRow = rowCount++; badgeNumberRow = rowCount++; repeatRow = rowCount++; - resetSectionRow2 = rowCount++; - resetSectionRow = rowCount++; resetNotificationsRow = rowCount++; NotificationCenter.getInstance().addObserver(this, NotificationCenter.notificationsSettingsUpdated); @@ -240,34 +239,25 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif FileLog.e("messenger", e); } } else if (i == resetNotificationsRow) { - if (reseting) { - return; - } - reseting = true; - /*TLRPC.TL_account_resetNotifySettings req = new TLRPC.TL_account_resetNotifySettings(); - ConnectionsManager.getInstance().sendRequest(req, new RequestDelegate() { + + AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); + builder.setMessage(LocaleController.formatString("AskResetNotifications", R.string.AskResetNotifications)); + builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null); + builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), new DialogInterface.OnClickListener() { @Override - public void run(TLObject response, TLRPC.TL_error error) { - AndroidUtilities.runOnUIThread(new Runnable() { - @Override - public void run() { - MessagesController.getInstance().enableJoined = true; - reseting = false; - SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE); - SharedPreferences.Editor editor = preferences.edit(); - editor.clear(); - editor.commit(); - if (listView != null) { - listView.invalidateViews(); - } - if (getParentActivity() != null) { - Toast toast = Toast.makeText(getParentActivity(), LocaleController.getString("ResetNotificationsText", R.string.ResetNotificationsText), Toast.LENGTH_SHORT); - toast.show(); - } - } - }); + public void onClick(DialogInterface dialogInterface, int i) { + SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + editor.clear(); + editor.commit(); + if (listView != null) { + listView.invalidateViews(); + } } - });*/ + }); + showDialog(builder.create()); + + } else if (i == inappSoundRow) { SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); @@ -550,9 +540,9 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif @Override public boolean isEnabled(int i) { return !(i == messageSectionRow || i == groupSectionRow || i == inappSectionRow || - i == otherSectionRow || i == resetSectionRow || + i == otherSectionRow || i == groupSectionRow2 || - i == inappSectionRow2 || i == otherSectionRow2 || i == resetSectionRow2); + i == inappSectionRow2 || i == otherSectionRow2 ); } @Override @@ -590,8 +580,6 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif ((HeaderCell) view).setText(LocaleController.getString("InAppNotifications", R.string.InAppNotifications)); } else if (i == otherSectionRow) { ((HeaderCell) view).setText(LocaleController.getString("NotificationsOther", R.string.NotificationsOther)); - } else if (i == resetSectionRow) { - ((HeaderCell) view).setText(LocaleController.getString("Reset", R.string.Reset)); } } if (type == TYPE_CHECK_CELL) { if (view == null) { @@ -648,7 +636,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, true); } else if (i == resetNotificationsRow) { textCell.setMultilineDetail(true); - textCell.setTextAndValue(LocaleController.getString("ResetAllNotifications", R.string.ResetAllNotifications), LocaleController.getString("UndoAllCustom", R.string.UndoAllCustom), false); + textCell.setTextAndValue(LocaleController.getString("Reset", R.string.Reset), LocaleController.getString("ResetAllNotifications", R.string.ResetAllNotifications), false); } else if (i == messageVibrateRow || i == groupVibrateRow) { textCell.setMultilineDetail(false); int value = 0; @@ -679,7 +667,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif } else { value = LocaleController.formatPluralString("Hours", minutes / 60); } - textCell.setTextAndValue(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications), value, false); + textCell.setTextAndValue(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications), value, true); } else if (i == messagePriorityRow || i == groupPriorityRow) { textCell.setMultilineDetail(false); int value = 0; @@ -720,7 +708,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif @Override public int getItemViewType(int i) { if (i == messageSectionRow || i == groupSectionRow || i == inappSectionRow || - i == otherSectionRow || i == resetSectionRow) { + i == otherSectionRow ) { return TYPE_HEADER; } else if (i == messageAlertRow || i == messagePreviewRow || i == groupAlertRow || i == groupPreviewRow || i == inappSoundRow || i == inappVibrateRow || @@ -731,7 +719,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif } else if (i == messageLedRow || i == groupLedRow) { return TYPE_COLOR_CELL; } else if ( i == groupSectionRow2 || - i == inappSectionRow2 || i == otherSectionRow2 || i == resetSectionRow2) { + i == inappSectionRow2 || i == otherSectionRow2 ) { return TYPE_SHADOW; } else { return TYPE_TEXT_DETAIL; diff --git a/MessengerProj/src/main/res/values-de/strings.xml b/MessengerProj/src/main/res/values-de/strings.xml index 3e6a49d6b..0e2f8e915 100644 --- a/MessengerProj/src/main/res/values-de/strings.xml +++ b/MessengerProj/src/main/res/values-de/strings.xml @@ -660,4 +660,5 @@ Ich verwende nun auch den Delta Chat Messenger - %1$s - und bin dort unter %2$s erreichbar. Fortgeschrittene Einstellungen + Alle Benachrichtigungseinstellungen und Töne dieser Seite, der Kontakte und der Gruppen zurücksetzen? diff --git a/MessengerProj/src/main/res/values/strings.xml b/MessengerProj/src/main/res/values/strings.xml index 7f72a8705..360505b50 100644 --- a/MessengerProj/src/main/res/values/strings.xml +++ b/MessengerProj/src/main/res/values/strings.xml @@ -660,4 +660,5 @@ Send invitations I\'m using Delta Chat messenger now - %1$s - you can text me at %2$s Advanced settings + Reset all notification settings and sounds of this page and of your contacts and groups?