Disable Contact Join Notification via Action.

This commit is contained in:
Alex Hart
2020-08-06 15:47:34 -03:00
committed by Greyson Parrelli
parent 25c17082f2
commit 36d1e7c44a
9 changed files with 154 additions and 37 deletions

View File

@@ -0,0 +1,69 @@
package org.thoughtcrime.securesms.contacts;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessagingDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.notifications.MarkReadReceiver;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
import java.util.List;
/**
* Activity which displays a dialog to confirm whether to turn off "Contact Joined Signal" notifications.
*/
public class TurnOffContactJoinedNotificationsActivity extends AppCompatActivity {
private final static String EXTRA_THREAD_ID = "thread_id";
public static Intent newIntent(@NonNull Context context, long threadId) {
Intent intent = new Intent(context, TurnOffContactJoinedNotificationsActivity.class);
intent.putExtra(EXTRA_THREAD_ID, threadId);
return intent;
}
@Override
protected void onResume() {
super.onResume();
new AlertDialog.Builder(this)
.setMessage(R.string.TurnOffContactJoinedNotificationsActivity__turn_off_contact_joined_signal)
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
handlePositiveAction(dialog);
})
.setNegativeButton(android.R.string.cancel, ((dialog, which) -> {
dialog.dismiss();
finish();
}))
.show();
}
private void handlePositiveAction(@NonNull DialogInterface dialog) {
SimpleTask.run(getLifecycle(), () -> {
ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(this);
List<MessagingDatabase.MarkedMessageInfo> marked = threadDatabase.setRead(getIntent().getLongExtra(EXTRA_THREAD_ID, -1), false);
MarkReadReceiver.process(this, marked);
TextSecurePreferences.setNewContactsNotificationEnabled(this, false);
ApplicationDependencies.getMessageNotifier().updateNotification(this);
return null;
}, unused -> {
dialog.dismiss();
finish();
});
}
}

View File

@@ -37,9 +37,9 @@ import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.notifications.NotificationChannels;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.registration.RegistrationUtil;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.sms.IncomingJoinedMessage;
import org.thoughtcrime.securesms.util.FeatureFlags;