diff --git a/app/build.gradle b/app/build.gradle
index a7b05f11f..ae8a7a053 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -221,7 +221,11 @@ android {
'proguard/proguard-ez-vcard.pro',
'proguard/proguard.pro'
testProguardFiles 'proguard/proguard-automation.pro'
+
+ // Uncomment for testing this build type without signing.
+ // signingConfig signingConfigs.debug
}
+
debug {
minifyEnabled false
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2569434a2..024d2704f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -179,14 +179,6 @@
-
-
-
-
, ListView.OnItemClickListener
- {
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
- return inflater.inflate(R.layout.blocked_contacts_fragment, container, false);
- }
-
- @Override
- public void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- setListAdapter(new BlockedContactAdapter(getActivity(), GlideApp.with(this), null));
- getLoaderManager().initLoader(0, null, this);
- }
-
- @Override
- public void onActivityCreated(Bundle bundle) {
- super.onActivityCreated(bundle);
- getListView().setOnItemClickListener(this);
- }
-
- @Override
- public @NonNull Loader onCreateLoader(int id, Bundle args) {
- return new BlockedContactsLoader(getActivity());
- }
-
- @Override
- public void onLoadFinished(@NonNull Loader loader, Cursor data) {
- if (getListAdapter() != null) {
- ((CursorAdapter) getListAdapter()).changeCursor(data);
- }
- }
-
- @Override
- public void onLoaderReset(@NonNull Loader loader) {
- if (getListAdapter() != null) {
- ((CursorAdapter) getListAdapter()).changeCursor(null);
- }
- }
-
- @Override
- public void onItemClick(AdapterView> parent, View view, int position, long id) {
- Recipient recipient = ((BlockedContactListItem)view).getRecipient();
- Intent intent = new Intent(getActivity(), RecipientPreferenceActivity.class);
- intent.putExtra(RecipientPreferenceActivity.ADDRESS_EXTRA, recipient.getAddress());
-
- startActivity(intent);
- }
-
- private static class BlockedContactAdapter extends CursorAdapter {
-
- private final GlideRequests glideRequests;
-
- BlockedContactAdapter(@NonNull Context context, @NonNull GlideRequests glideRequests, @Nullable Cursor c) {
- super(context, c);
- this.glideRequests = glideRequests;
- }
-
- @Override
- public View newView(Context context, Cursor cursor, ViewGroup parent) {
- return LayoutInflater.from(context)
- .inflate(R.layout.blocked_contact_list_item, parent, false);
- }
-
- @Override
- public void bindView(View view, Context context, Cursor cursor) {
- String address = cursor.getString(1);
- Recipient recipient = Recipient.from(context, Address.fromSerialized(address), true);
-
- ((BlockedContactListItem) view).set(glideRequests, recipient);
- }
- }
-
- }
-
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java
deleted file mode 100644
index 31f079b72..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2015 Open Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.thoughtcrime.securesms;
-
-import android.os.Bundle;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-
-import org.thoughtcrime.securesms.components.ContactFilterToolbar;
-import org.thoughtcrime.securesms.loki.fragments.ContactSelectionListFragment;
-import org.thoughtcrime.securesms.loki.fragments.ContactSelectionListLoader.DisplayMode;
-import org.thoughtcrime.securesms.util.DynamicLanguage;
-import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
-import org.thoughtcrime.securesms.util.DynamicTheme;
-import org.thoughtcrime.securesms.util.ViewUtil;
-
-import network.loki.messenger.R;
-
-/**
- * Base activity container for selecting a list of contacts.
- *
- * @author Moxie Marlinspike
- *
- */
-public abstract class ContactSelectionActivity extends PassphraseRequiredActionBarActivity
- implements SwipeRefreshLayout.OnRefreshListener,
- ContactSelectionListFragment.OnContactSelectedListener
-{
- private static final String TAG = ContactSelectionActivity.class.getSimpleName();
-
- private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
- private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
-
- protected ContactSelectionListFragment contactsFragment;
-
- private ContactFilterToolbar toolbar;
-
- @Override
- protected void onPreCreate() {
- dynamicTheme.onCreate(this);
- dynamicLanguage.onCreate(this);
- }
-
- @Override
- protected void onCreate(Bundle icicle, boolean ready) {
- if (!getIntent().hasExtra(ContactSelectionListFragment.DISPLAY_MODE)) {
- getIntent().putExtra(ContactSelectionListFragment.DISPLAY_MODE, DisplayMode.FLAG_ALL);
- }
-
- setContentView(R.layout.contact_selection_activity);
-
- initializeToolbar();
- initializeResources();
- initializeSearch();
- }
-
- @Override
- public void onResume() {
- super.onResume();
- dynamicTheme.onResume(this);
- dynamicLanguage.onResume(this);
- }
-
- protected ContactFilterToolbar getToolbar() {
- return toolbar;
- }
-
- private void initializeToolbar() {
- this.toolbar = ViewUtil.findById(this, R.id.toolbar);
- setSupportActionBar(toolbar);
-
- assert getSupportActionBar() != null;
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
- getSupportActionBar().setDisplayShowTitleEnabled(false);
- getSupportActionBar().setIcon(null);
- getSupportActionBar().setLogo(null);
- }
-
- private void initializeResources() {
- contactsFragment = (ContactSelectionListFragment) getSupportFragmentManager().findFragmentById(R.id.contact_selection_list_fragment);
- contactsFragment.setOnContactSelectedListener(this);
- contactsFragment.setOnRefreshListener(this);
- }
-
- private void initializeSearch() {
- toolbar.setOnFilterChangedListener(filter -> contactsFragment.setQueryFilter(filter));
- }
-
- @Override
- public void onRefresh() { }
-
- @Override
- public void onContactSelected(String number) {}
-
- @Override
- public void onContactDeselected(String number) {}
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java b/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java
deleted file mode 100644
index ef044140d..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java
+++ /dev/null
@@ -1,605 +0,0 @@
-/*
- * Copyright (C) 2014 Open Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package org.thoughtcrime.securesms;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-import com.bumptech.glide.request.target.SimpleTarget;
-import com.bumptech.glide.request.transition.Transition;
-
-import org.thoughtcrime.securesms.avatar.AvatarSelection;
-import org.thoughtcrime.securesms.components.PushRecipientsPanel;
-import org.thoughtcrime.securesms.components.PushRecipientsPanel.RecipientsPanelChangedListener;
-import org.thoughtcrime.securesms.contacts.RecipientsEditor;
-import org.thoughtcrime.securesms.contacts.avatars.ContactColors;
-import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
-import org.thoughtcrime.securesms.conversation.ConversationActivity;
-import org.thoughtcrime.securesms.database.Address;
-import org.thoughtcrime.securesms.database.DatabaseFactory;
-import org.thoughtcrime.securesms.database.GroupDatabase;
-import org.thoughtcrime.securesms.database.GroupDatabase.GroupRecord;
-import org.thoughtcrime.securesms.database.RecipientDatabase;
-import org.thoughtcrime.securesms.database.ThreadDatabase;
-import org.thoughtcrime.securesms.groups.GroupManager;
-import org.thoughtcrime.securesms.groups.GroupManager.GroupActionResult;
-import org.thoughtcrime.securesms.logging.Log;
-import org.thoughtcrime.securesms.loki.fragments.ContactSelectionListFragment;
-import org.thoughtcrime.securesms.loki.fragments.ContactSelectionListLoader.DisplayMode;
-import org.thoughtcrime.securesms.mms.GlideApp;
-import org.thoughtcrime.securesms.recipients.Recipient;
-import org.thoughtcrime.securesms.util.BitmapUtil;
-import org.thoughtcrime.securesms.util.DynamicLanguage;
-import org.thoughtcrime.securesms.util.DynamicTheme;
-import org.thoughtcrime.securesms.util.SelectedRecipientsAdapter;
-import org.thoughtcrime.securesms.util.SelectedRecipientsAdapter.OnRecipientDeletedListener;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.thoughtcrime.securesms.util.ViewUtil;
-import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask;
-import org.session.libsignal.libsignal.util.guava.Optional;
-import org.session.libsignal.service.api.util.InvalidNumberException;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import network.loki.messenger.R;
-
-/**
- * Activity to create and update groups
- *
- * @author Jake McGinty
- */
-public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
- implements OnRecipientDeletedListener,
- RecipientsPanelChangedListener
-{
-
- private final static String TAG = GroupCreateActivity.class.getSimpleName();
-
- public static final String GROUP_ADDRESS_EXTRA = "group_recipient";
- public static final String GROUP_THREAD_EXTRA = "group_thread";
-
- private final DynamicTheme dynamicTheme = new DynamicTheme();
- private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
-
- private static final int PICK_CONTACT = 1;
- public static final int AVATAR_SIZE = 210;
-
- private EditText groupName;
- private ListView lv;
- private ImageView avatar;
- private TextView creatingText;
- private Bitmap avatarBmp;
-
- @NonNull private Optional groupToUpdate = Optional.absent();
-
- @Override
- protected void onPreCreate() {
- dynamicTheme.onCreate(this);
- dynamicLanguage.onCreate(this);
- }
-
- @Override
- protected void onCreate(Bundle state, boolean ready) {
- setContentView(R.layout.group_create_activity);
- //noinspection ConstantConditions
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- initializeResources();
- initializeExistingGroup();
- }
-
- @Override
- public void onResume() {
- super.onResume();
- dynamicTheme.onResume(this);
- dynamicLanguage.onResume(this);
- updateViewState();
- }
-
- private boolean isSignalGroup() {
- return TextSecurePreferences.isPushRegistered(this) && !getAdapter().hasNonPushMembers();
- }
-
- private void disableSignalGroupViews(int reasonResId) {
- View pushDisabled = findViewById(R.id.push_disabled);
- pushDisabled.setVisibility(View.VISIBLE);
- ((TextView) findViewById(R.id.push_disabled_reason)).setText(reasonResId);
- avatar.setEnabled(false);
- groupName.setEnabled(false);
- }
-
- private void enableSignalGroupViews() {
- findViewById(R.id.push_disabled).setVisibility(View.GONE);
- avatar.setEnabled(true);
- groupName.setEnabled(true);
- }
-
- @SuppressWarnings("ConstantConditions")
- private void updateViewState() {
- if (!TextSecurePreferences.isPushRegistered(this)) {
- disableSignalGroupViews(R.string.GroupCreateActivity_youre_not_registered_for_signal);
- getSupportActionBar().setTitle(R.string.GroupCreateActivity_actionbar_mms_title);
- } else if (getAdapter().hasNonPushMembers()) {
- disableSignalGroupViews(R.string.GroupCreateActivity_contacts_dont_support_push);
- getSupportActionBar().setTitle(R.string.GroupCreateActivity_actionbar_mms_title);
- } else {
- enableSignalGroupViews();
- getSupportActionBar().setTitle(groupToUpdate.isPresent()
- ? R.string.GroupCreateActivity_actionbar_edit_title
- : R.string.GroupCreateActivity_actionbar_title);
- }
- }
-
- private static boolean isActiveInDirectory(Recipient recipient) {
- return recipient.resolve().getRegistered() == RecipientDatabase.RegisteredState.REGISTERED;
- }
-
- private void addSelectedContacts(@NonNull Recipient... recipients) {
- new AddMembersTask(this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, recipients);
- }
-
- private void addSelectedContacts(@NonNull Collection recipients) {
- addSelectedContacts(recipients.toArray(new Recipient[recipients.size()]));
- }
-
- private void initializeResources() {
- RecipientsEditor recipientsEditor = ViewUtil.findById(this, R.id.recipients_text);
- PushRecipientsPanel recipientsPanel = ViewUtil.findById(this, R.id.recipients);
- lv = ViewUtil.findById(this, R.id.selected_contacts_list);
- avatar = ViewUtil.findById(this, R.id.avatar);
- groupName = ViewUtil.findById(this, R.id.group_name);
- creatingText = ViewUtil.findById(this, R.id.creating_group_text);
- SelectedRecipientsAdapter adapter = new SelectedRecipientsAdapter(this);
- adapter.setOnRecipientDeletedListener(this);
- lv.setAdapter(adapter);
- recipientsEditor.setHint(R.string.recipients_panel__add_members);
- recipientsPanel.setPanelChangeListener(this);
- findViewById(R.id.contacts_button).setOnClickListener(new AddRecipientButtonListener());
- avatar.setImageDrawable(new ResourceContactPhoto(R.drawable.ic_group_white_24dp).asDrawable(this, ContactColors.UNKNOWN_COLOR.toConversationColor(this)));
- avatar.setOnClickListener(view -> AvatarSelection.startAvatarSelection(this, false, false));
- }
-
- private void initializeExistingGroup() {
- final Address groupAddress = getIntent().getParcelableExtra(GROUP_ADDRESS_EXTRA);
-
- if (groupAddress != null) {
- new FillExistingGroupInfoAsyncTask(this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, groupAddress.toGroupString());
- }
- }
-
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- MenuInflater inflater = this.getMenuInflater();
- menu.clear();
-
- inflater.inflate(R.menu.menu_apply, menu);
- super.onPrepareOptionsMenu(menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- super.onOptionsItemSelected(item);
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- case R.id.applyButton:
- if (groupToUpdate.isPresent()) handleGroupUpdate();
- else handleGroupCreate();
- return true;
- }
-
- return false;
- }
-
- @Override
- public void onRecipientDeleted(Recipient recipient) {
- getAdapter().remove(recipient);
- updateViewState();
- }
-
- @Override
- public void onRecipientsPanelUpdate(List recipients) {
- if (recipients != null && !recipients.isEmpty()) addSelectedContacts(recipients);
- }
-
- private void handleGroupCreate() {
- if (getAdapter().getCount() < 1) {
- Log.i(TAG, getString(R.string.GroupCreateActivity_contacts_no_members));
- Toast.makeText(getApplicationContext(), R.string.GroupCreateActivity_contacts_no_members, Toast.LENGTH_SHORT).show();
- return;
- }
- if (isSignalGroup()) {
- Recipient local = Recipient.from(this, Address.fromSerialized(TextSecurePreferences.getLocalNumber(this)), false);
- new CreateSignalGroupTask(this, avatarBmp, getGroupName(), getAdapter().getRecipients(), Collections.singleton(local)).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- } else {
- new CreateMmsGroupTask(this, getAdapter().getRecipients()).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
-
- private void handleGroupUpdate() {
- new UpdateSignalGroupTask(this, groupToUpdate.get().id, avatarBmp,
- getGroupName(), getAdapter().getRecipients(), groupToUpdate.get().admins).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- private void handleOpenConversation(long threadId, Recipient recipient) {
- Intent intent = new Intent(this, ConversationActivity.class);
- intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId);
- intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT);
- intent.putExtra(ConversationActivity.ADDRESS_EXTRA, recipient.getAddress());
- startActivity(intent);
- finish();
- }
-
- private SelectedRecipientsAdapter getAdapter() {
- return (SelectedRecipientsAdapter)lv.getAdapter();
- }
-
- private @Nullable String getGroupName() {
- return groupName.getText() != null ? groupName.getText().toString() : null;
- }
-
- @Override
- public void onActivityResult(int reqCode, int resultCode, final Intent data) {
- super.onActivityResult(reqCode, resultCode, data);
- Uri outputFile = Uri.fromFile(new File(getCacheDir(), "cropped"));
-
- if (data == null || resultCode != Activity.RESULT_OK)
- return;
-
- switch (reqCode) {
- case PICK_CONTACT:
- List selected = data.getStringArrayListExtra("contacts");
-
- for (String contact : selected) {
- Address address = Address.fromExternal(this, contact);
- Recipient recipient = Recipient.from(this, address, false);
-
- addSelectedContacts(recipient);
- }
- break;
-
- case AvatarSelection.REQUEST_CODE_AVATAR:
- AvatarSelection.circularCropImage(this, data.getData(), outputFile, R.string.CropImageActivity_group_avatar);
- break;
- case AvatarSelection.REQUEST_CODE_CROP_IMAGE:
- final Uri resultUri = AvatarSelection.getResultUri(data);
- GlideApp.with(this)
- .asBitmap()
- .load(resultUri)
- .skipMemoryCache(true)
- .diskCacheStrategy(DiskCacheStrategy.NONE)
- .centerCrop()
- .override(AVATAR_SIZE, AVATAR_SIZE)
- .into(new SimpleTarget() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, Transition super Bitmap> transition) {
- setAvatar(resultUri, resource);
- }
- });
- }
- }
-
- private class AddRecipientButtonListener implements View.OnClickListener {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(GroupCreateActivity.this, PushContactSelectionActivity.class);
- intent.putExtra(ContactSelectionListFragment.DISPLAY_MODE, DisplayMode.FLAG_CONTACTS);
- startActivityForResult(intent, PICK_CONTACT);
- }
- }
-
- private static class CreateMmsGroupTask extends AsyncTask {
- private final GroupCreateActivity activity;
- private final Set members;
-
- public CreateMmsGroupTask(GroupCreateActivity activity, Set members) {
- this.activity = activity;
- this.members = members;
- }
-
- @Override
- protected GroupActionResult doInBackground(Void... avoid) {
- List memberAddresses = new LinkedList<>();
-
- for (Recipient recipient : members) {
- memberAddresses.add(recipient.getAddress());
- }
- Address local = Address.fromSerialized(TextSecurePreferences.getLocalNumber(activity));
- memberAddresses.add(local);
-
- String groupId = DatabaseFactory.getGroupDatabase(activity).getOrCreateGroupForMembers(memberAddresses, true, Collections.singletonList(local));
- Recipient groupRecipient = Recipient.from(activity, Address.fromSerialized(groupId), true);
- long threadId = DatabaseFactory.getThreadDatabase(activity).getOrCreateThreadIdFor(groupRecipient, ThreadDatabase.DistributionTypes.DEFAULT);
-
- return new GroupActionResult(groupRecipient, threadId);
- }
-
- @Override
- protected void onPostExecute(GroupActionResult result) {
- activity.handleOpenConversation(result.getThreadId(), result.getGroupRecipient());
- }
-
- @Override
- protected void onProgressUpdate(Void... values) {
- super.onProgressUpdate(values);
- }
- }
-
- private abstract static class SignalGroupTask extends AsyncTask> {
-
- protected GroupCreateActivity activity;
- protected Bitmap avatar;
- protected Set members;
- protected String name;
- protected Set admins;
-
- public SignalGroupTask(GroupCreateActivity activity,
- Bitmap avatar,
- String name,
- Set members,
- Set admins)
- {
- this.activity = activity;
- this.avatar = avatar;
- this.name = name;
- this.members = members;
- this.admins = admins;
- }
-
- @Override
- protected void onPreExecute() {
- activity.findViewById(R.id.group_details_layout).setVisibility(View.GONE);
- activity.findViewById(R.id.creating_group_layout).setVisibility(View.VISIBLE);
- activity.findViewById(R.id.applyButton).setVisibility(View.GONE);
- final int titleResId = activity.groupToUpdate.isPresent()
- ? R.string.GroupCreateActivity_updating_group
- : R.string.GroupCreateActivity_creating_group;
- activity.creatingText.setText(activity.getString(titleResId, activity.getGroupName()));
- }
-
- @Override
- protected void onPostExecute(Optional groupActionResultOptional) {
- if (activity.isFinishing()) return;
- activity.findViewById(R.id.group_details_layout).setVisibility(View.VISIBLE);
- activity.findViewById(R.id.creating_group_layout).setVisibility(View.GONE);
- activity.findViewById(R.id.applyButton).setVisibility(View.VISIBLE);
- }
- }
-
- private static class CreateSignalGroupTask extends SignalGroupTask {
- public CreateSignalGroupTask(GroupCreateActivity activity, Bitmap avatar, String name, Set members, Set admins) {
- super(activity, avatar, name, members, admins);
- }
-
- @Override
- protected Optional doInBackground(Void... aVoid) {
- return Optional.of(GroupManager.createGroup(activity, members, avatar, name, false, admins));
- }
-
- @Override
- protected void onPostExecute(Optional result) {
- if (result.isPresent() && result.get().getThreadId() > -1) {
- if (!activity.isFinishing()) {
- activity.handleOpenConversation(result.get().getThreadId(), result.get().getGroupRecipient());
- }
- } else {
- super.onPostExecute(result);
- Toast.makeText(activity.getApplicationContext(),
- R.string.GroupCreateActivity_contacts_invalid_number, Toast.LENGTH_LONG).show();
- }
- }
- }
-
- private static class UpdateSignalGroupTask extends SignalGroupTask {
- private String groupId;
-
- public UpdateSignalGroupTask(GroupCreateActivity activity, String groupId,
- Bitmap avatar, String name, Set members, Set admins)
- {
- super(activity, avatar, name, members, admins);
- this.groupId = groupId;
- }
-
- @Override
- protected Optional doInBackground(Void... aVoid) {
- try {
- return Optional.of(GroupManager.updateGroup(activity, groupId, members, avatar, name, admins));
- } catch (InvalidNumberException e) {
- return Optional.absent();
- }
- }
-
- @Override
- protected void onPostExecute(Optional result) {
- if (result.isPresent() && result.get().getThreadId() > -1) {
- if (!activity.isFinishing()) {
- Intent intent = activity.getIntent();
- intent.putExtra(GROUP_THREAD_EXTRA, result.get().getThreadId());
- intent.putExtra(GROUP_ADDRESS_EXTRA, result.get().getGroupRecipient().getAddress());
- activity.setResult(RESULT_OK, intent);
- activity.finish();
- }
- } else {
- super.onPostExecute(result);
- Toast.makeText(activity.getApplicationContext(),
- R.string.GroupCreateActivity_contacts_invalid_number, Toast.LENGTH_LONG).show();
- }
- }
- }
-
- private static class AddMembersTask extends AsyncTask> {
- static class Result {
- Optional recipient;
- boolean isPush;
- String reason;
-
- public Result(@Nullable Recipient recipient, boolean isPush, @Nullable String reason) {
- this.recipient = Optional.fromNullable(recipient);
- this.isPush = isPush;
- this.reason = reason;
- }
- }
-
- private GroupCreateActivity activity;
- private boolean failIfNotPush;
-
- public AddMembersTask(@NonNull GroupCreateActivity activity) {
- this.activity = activity;
- this.failIfNotPush = activity.groupToUpdate.isPresent();
- }
-
- @Override
- protected List doInBackground(Recipient... recipients) {
- final List results = new LinkedList<>();
-
- for (Recipient recipient : recipients) {
- boolean isPush = isActiveInDirectory(recipient);
-
- if (failIfNotPush && !isPush && !recipient.getAddress().isPhone()) {
- results.add(new Result(null, false, activity.getString(R.string.GroupCreateActivity_cannot_add_non_push_to_existing_group,
- recipient.toShortString())));
- } else if (TextUtils.equals(TextSecurePreferences.getLocalNumber(activity), recipient.getAddress().serialize())) {
- results.add(new Result(null, false, activity.getString(R.string.GroupCreateActivity_youre_already_in_the_group)));
- } else {
- results.add(new Result(recipient, isPush, null));
- }
- }
- return results;
- }
-
- @Override
- protected void onPostExecute(List results) {
- if (activity.isFinishing()) return;
-
- for (Result result : results) {
- if (result.recipient.isPresent()) {
- activity.getAdapter().add(result.recipient.get(), result.isPush);
- } else {
- Toast.makeText(activity, result.reason, Toast.LENGTH_SHORT).show();
- }
- }
- activity.updateViewState();
- }
- }
-
- private static class FillExistingGroupInfoAsyncTask extends ProgressDialogAsyncTask> {
- private GroupCreateActivity activity;
-
- public FillExistingGroupInfoAsyncTask(GroupCreateActivity activity) {
- super(activity,
- R.string.GroupCreateActivity_loading_group_details,
- R.string.please_wait);
- this.activity = activity;
- }
-
- @Override
- protected Optional doInBackground(String... groupIds) {
- final GroupDatabase db = DatabaseFactory.getGroupDatabase(activity);
- final List recipients = db.getGroupMembers(groupIds[0], false);
- final Optional group = db.getGroup(groupIds[0]);
- final Set existingContacts = new HashSet<>(recipients.size());
- existingContacts.addAll(recipients);
-
- if (group.isPresent()) {
- List adminList = group.get().getAdmins();
- final Set admins = new HashSet<>(adminList.size());
- for (Address admin : adminList) {
- admins.add(Recipient.from(getContext(), admin, false));
- }
- return Optional.of(new GroupData(groupIds[0],
- existingContacts,
- BitmapUtil.fromByteArray(group.get().getAvatar()),
- group.get().getAvatar(),
- group.get().getTitle(),
- admins));
- } else {
- return Optional.absent();
- }
- }
-
- @Override
- protected void onPostExecute(Optional group) {
- super.onPostExecute(group);
-
- if (group.isPresent() && !activity.isFinishing()) {
- activity.groupToUpdate = group;
-
- activity.groupName.setText(group.get().name);
- if (group.get().avatarBmp != null) {
- activity.setAvatar(group.get().avatarBytes, group.get().avatarBmp);
- }
- SelectedRecipientsAdapter adapter = new SelectedRecipientsAdapter(activity, group.get().recipients);
- adapter.setOnRecipientDeletedListener(activity);
- activity.lv.setAdapter(adapter);
- activity.updateViewState();
- }
- }
- }
-
- private void setAvatar(T model, Bitmap bitmap) {
- avatarBmp = bitmap;
- GlideApp.with(this)
- .load(model)
- .circleCrop()
- .skipMemoryCache(true)
- .diskCacheStrategy(DiskCacheStrategy.NONE)
- .into(avatar);
- }
-
- private static class GroupData {
- String id;
- Set recipients;
- Bitmap avatarBmp;
- byte[] avatarBytes;
- String name;
- Set admins;
-
- public GroupData(String id, Set recipients, Bitmap avatarBmp, byte[] avatarBytes, String name, Set admins) {
- this.id = id;
- this.recipients = recipients;
- this.avatarBmp = avatarBmp;
- this.avatarBytes = avatarBytes;
- this.name = name;
- this.admins = admins;
- }
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/PromptMmsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PromptMmsActivity.java
deleted file mode 100644
index cd1edabdb..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/PromptMmsActivity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.thoughtcrime.securesms;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.Button;
-
-import org.thoughtcrime.securesms.preferences.MmsPreferencesActivity;
-
-import network.loki.messenger.R;
-
-public class PromptMmsActivity extends PassphraseRequiredActionBarActivity {
-
- @Override
- protected void onCreate(Bundle bundle, boolean ready) {
- setContentView(R.layout.prompt_apn_activity);
- initializeResources();
- }
-
- private void initializeResources() {
- Button okButton = findViewById(R.id.ok_button);
- Button cancelButton = findViewById(R.id.cancel_button);
-
- okButton.setOnClickListener(v -> {
- Intent intent = new Intent(PromptMmsActivity.this, MmsPreferencesActivity.class);
- intent.putExtras(PromptMmsActivity.this.getIntent().getExtras());
- startActivity(intent);
- finish();
- });
-
- cancelButton.setOnClickListener(v -> finish());
- }
-
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/PushContactSelectionActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PushContactSelectionActivity.java
deleted file mode 100644
index 9dff2a69c..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/PushContactSelectionActivity.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2011 Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.thoughtcrime.securesms;
-
-import android.content.Intent;
-import android.os.Bundle;
-
-import org.thoughtcrime.securesms.loki.fragments.ContactSelectionListFragment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import network.loki.messenger.R;
-
-/**
- * Activity container for selecting a list of contacts.
- *
- * @author Moxie Marlinspike
- *
- */
-public class PushContactSelectionActivity extends ContactSelectionActivity {
-
- @SuppressWarnings("unused")
- private final static String TAG = PushContactSelectionActivity.class.getSimpleName();
-
- @Override
- protected void onCreate(Bundle icicle, boolean ready) {
- getIntent().putExtra(ContactSelectionListFragment.MULTI_SELECT, true);
- super.onCreate(icicle, ready);
-
- getToolbar().setNavigationIcon(R.drawable.ic_check_white_24dp);
- getToolbar().setNavigationOnClickListener(v -> {
- Intent resultIntent = getIntent();
- List selectedContacts = contactsFragment.getSelectedContacts();
-
- if (selectedContacts != null) {
- resultIntent.putStringArrayListExtra("contacts", new ArrayList<>(selectedContacts));
- }
-
- setResult(RESULT_OK, resultIntent);
- finish();
- });
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
index 6da037275..262987353 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
@@ -1,7 +1,6 @@
package org.thoughtcrime.securesms;
import android.annotation.SuppressLint;
-import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
@@ -13,19 +12,6 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import com.google.android.material.appbar.CollapsingToolbarLayout;
-import androidx.fragment.app.Fragment;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.core.view.ViewCompat;
-import androidx.appcompat.app.AlertDialog;
-import androidx.preference.CheckBoxPreference;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.appcompat.widget.Toolbar;
import android.telephony.PhoneNumberUtils;
import android.util.Pair;
import android.view.MenuItem;
@@ -35,8 +21,23 @@ import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.view.ViewCompat;
+import androidx.fragment.app.Fragment;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.google.android.material.appbar.CollapsingToolbarLayout;
+
+import org.session.libsignal.libsignal.util.guava.Optional;
import org.thoughtcrime.securesms.color.MaterialColor;
import org.thoughtcrime.securesms.color.MaterialColors;
import org.thoughtcrime.securesms.components.SwitchPreferenceCompat;
@@ -65,12 +66,9 @@ import org.thoughtcrime.securesms.notifications.NotificationChannels;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.preferences.CorrectedPreferenceFragment;
import org.thoughtcrime.securesms.preferences.widgets.ColorPickerPreference;
-import org.thoughtcrime.securesms.preferences.widgets.ContactPreference;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientModifiedListener;
import org.thoughtcrime.securesms.sms.MessageSender;
-import org.thoughtcrime.securesms.util.CommunicationActions;
-import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicTheme;
@@ -80,7 +78,6 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
-import org.session.libsignal.libsignal.util.guava.Optional;
import java.util.concurrent.ExecutionException;
@@ -92,17 +89,12 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private static final String TAG = RecipientPreferenceActivity.class.getSimpleName();
public static final String ADDRESS_EXTRA = "recipient_address";
- // public static final String CAN_HAVE_SAFETY_NUMBER_EXTRA = "can_have_safety_number";
private static final String PREFERENCE_MUTED = "pref_key_recipient_mute";
private static final String PREFERENCE_MESSAGE_TONE = "pref_key_recipient_ringtone";
- // private static final String PREFERENCE_CALL_TONE = "pref_key_recipient_call_ringtone";
private static final String PREFERENCE_MESSAGE_VIBRATE = "pref_key_recipient_vibrate";
- // private static final String PREFERENCE_CALL_VIBRATE = "pref_key_recipient_call_vibrate";
- // private static final String PREFERENCE_BLOCK = "pref_key_recipient_block";
private static final String PREFERENCE_COLOR = "pref_key_recipient_color";
private static final String PREFERENCE_IDENTITY = "pref_key_recipient_identity";
- // private static final String PREFERENCE_ABOUT = "pref_key_number";
private static final String PREFERENCE_CUSTOM_NOTIFICATIONS = "pref_key_recipient_custom_notifications";
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
@@ -262,8 +254,9 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
extends CorrectedPreferenceFragment
implements RecipientModifiedListener
{
+ private static final int REQ_CODE_CHANGE_MESSAGE_NOTIFICATION_TONE = 9920;
+
private Recipient recipient;
- private boolean canHaveSafetyNumber;
@Override
public void onCreate(Bundle icicle) {
@@ -272,11 +265,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
initializeRecipients();
- /*
- this.canHaveSafetyNumber = getActivity().getIntent()
- .getBooleanExtra(RecipientPreferenceActivity.CAN_HAVE_SAFETY_NUMBER_EXTRA, false);
- */
-
Preference customNotificationsPref = this.findPreference(PREFERENCE_CUSTOM_NOTIFICATIONS);
if (NotificationChannels.supported()) {
@@ -304,33 +292,15 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
}
this.findPreference(PREFERENCE_MESSAGE_TONE)
- .setOnPreferenceChangeListener(new RingtoneChangeListener(false));
+ .setOnPreferenceChangeListener(new RingtoneChangeListener());
this.findPreference(PREFERENCE_MESSAGE_TONE)
- .setOnPreferenceClickListener(new RingtoneClickedListener(false));
- /*
- this.findPreference(PREFERENCE_CALL_TONE)
- .setOnPreferenceChangeListener(new RingtoneChangeListener(true));
- this.findPreference(PREFERENCE_CALL_TONE)
- .setOnPreferenceClickListener(new RingtoneClickedListener(true));
- */
+ .setOnPreferenceClickListener(new RingtoneClickedListener());
this.findPreference(PREFERENCE_MESSAGE_VIBRATE)
- .setOnPreferenceChangeListener(new VibrateChangeListener(false));
- /*
- this.findPreference(PREFERENCE_CALL_VIBRATE)
- .setOnPreferenceChangeListener(new VibrateChangeListener(true));
- */
+ .setOnPreferenceChangeListener(new VibrateChangeListener());
this.findPreference(PREFERENCE_MUTED)
.setOnPreferenceClickListener(new MuteClickedListener());
- /*
- this.findPreference(PREFERENCE_BLOCK)
- .setOnPreferenceClickListener(new BlockClickedListener());
- */
this.findPreference(PREFERENCE_COLOR)
.setOnPreferenceChangeListener(new ColorChangeListener());
- /*
- ((ContactPreference)this.findPreference(PREFERENCE_ABOUT))
- .setListener(new AboutNumberClickedListener());
- */
}
@Override
@@ -341,6 +311,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
@@ -358,14 +329,17 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
- Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
+ super.onActivityResult(requestCode, resultCode, data);
- findPreference(PREFERENCE_MESSAGE_TONE).getOnPreferenceChangeListener().onPreferenceChange(findPreference(PREFERENCE_MESSAGE_TONE), uri);
- } else if (requestCode == 2 && resultCode == RESULT_OK && data != null) {
- Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
+ switch (requestCode) {
+ case REQ_CODE_CHANGE_MESSAGE_NOTIFICATION_TONE: {
+ if (resultCode == RESULT_OK && data != null) {
+ Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- // findPreference(PREFERENCE_CALL_TONE).getOnPreferenceChangeListener().onPreferenceChange(findPreference(PREFERENCE_CALL_TONE), uri);
+ findPreference(PREFERENCE_MESSAGE_TONE).getOnPreferenceChangeListener().onPreferenceChange(findPreference(PREFERENCE_MESSAGE_TONE), uri);
+ }
+ break;
+ }
}
}
@@ -378,33 +352,24 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
CheckBoxPreference mutePreference = (CheckBoxPreference) this.findPreference(PREFERENCE_MUTED);
Preference customPreference = this.findPreference(PREFERENCE_CUSTOM_NOTIFICATIONS);
Preference ringtoneMessagePreference = this.findPreference(PREFERENCE_MESSAGE_TONE);
- // Preference ringtoneCallPreference = this.findPreference(PREFERENCE_CALL_TONE);
ListPreference vibrateMessagePreference = (ListPreference) this.findPreference(PREFERENCE_MESSAGE_VIBRATE);
- // ListPreference vibrateCallPreference = (ListPreference) this.findPreference(PREFERENCE_CALL_VIBRATE);
ColorPickerPreference colorPreference = (ColorPickerPreference) this.findPreference(PREFERENCE_COLOR);
- // Preference blockPreference = this.findPreference(PREFERENCE_BLOCK);
Preference identityPreference = this.findPreference(PREFERENCE_IDENTITY);
PreferenceCategory callCategory = (PreferenceCategory)this.findPreference("call_settings");
PreferenceCategory aboutCategory = (PreferenceCategory)this.findPreference("about");
PreferenceCategory aboutDivider = (PreferenceCategory)this.findPreference("about_divider");
- // ContactPreference aboutPreference = (ContactPreference)this.findPreference(PREFERENCE_ABOUT);
PreferenceCategory privacyCategory = (PreferenceCategory) this.findPreference("privacy_settings");
PreferenceCategory divider = (PreferenceCategory) this.findPreference("divider");
mutePreference.setChecked(recipient.isMuted());
ringtoneMessagePreference.setSummary(ringtoneMessagePreference.isEnabled() ? getRingtoneSummary(getContext(), recipient.getMessageRingtone()) : "");
- // ringtoneCallPreference.setSummary(getRingtoneSummary(getContext(), recipient.getCallRingtone()));
Pair vibrateMessageSummary = getVibrateSummary(getContext(), recipient.getMessageVibrate());
- Pair vibrateCallSummary = getVibrateSummary(getContext(), recipient.getCallVibrate());
vibrateMessagePreference.setSummary(vibrateMessagePreference.isEnabled() ? vibrateMessageSummary.first : "");
vibrateMessagePreference.setValueIndex(vibrateMessageSummary.second);
- // vibrateCallPreference.setSummary(vibrateCallSummary.first);
- // vibrateCallPreference.setValueIndex(vibrateCallSummary.second);
-
if (recipient.isLocalNumber()) {
mutePreference.setVisible(false);
customPreference.setVisible(false);
@@ -428,26 +393,12 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
colorPreference.setColors(MaterialColors.CONVERSATION_PALETTE.asConversationColorArray(getActivity()));
colorPreference.setColor(recipient.getColor().toActionBarColor(getActivity()));
- /*
- aboutPreference.setTitle(formatAddress(recipient.getAddress()));
- aboutPreference.setSummary(recipient.getCustomLabel());
- aboutPreference.setSecure(recipient.getRegistered() == RecipientDatabase.RegisteredState.REGISTERED);
- */
-
- /*
- if (recipient.isBlocked()) blockPreference.setTitle(R.string.RecipientPreferenceActivity_unblock);
- else blockPreference.setTitle(R.string.RecipientPreferenceActivity_block);
- */
-
IdentityUtil.getRemoteIdentityKey(getActivity(), recipient).addListener(new ListenableFuture.Listener>() {
@Override
public void onSuccess(Optional result) {
if (result.isPresent()) {
if (identityPreference != null) identityPreference.setOnPreferenceClickListener(new IdentityClickedListener(result.get()));
if (identityPreference != null) identityPreference.setEnabled(true);
- } else if (canHaveSafetyNumber) {
- if (identityPreference != null) identityPreference.setSummary(R.string.RecipientPreferenceActivity_available_once_a_message_has_been_sent_or_received);
- if (identityPreference != null) identityPreference.setEnabled(false);
} else {
if (identityPreference != null) getPreferenceScreen().removePreference(identityPreference);
}
@@ -461,12 +412,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
}
}
- private @NonNull String formatAddress(@NonNull Address address) {
- if (address.isPhone()) return PhoneNumberUtils.formatNumber(address.toPhoneString());
- else if (address.isEmail()) return address.toEmailString();
- else return "";
- }
-
private @NonNull String getRingtoneSummary(@NonNull Context context, @Nullable Uri ringtone) {
if (ringtone == null) {
return context.getString(R.string.preferences__default);
@@ -504,22 +449,12 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private class RingtoneChangeListener implements Preference.OnPreferenceChangeListener {
- private final boolean calls;
-
- RingtoneChangeListener(boolean calls) {
- this.calls = calls;
- }
-
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final Context context = preference.getContext();
- Uri value = (Uri)newValue;
-
- Uri defaultValue;
-
- if (calls) defaultValue = TextSecurePreferences.getCallNotificationRingtone(context);
- else defaultValue = TextSecurePreferences.getNotificationRingtone(context);
+ Uri value = (Uri)newValue;
+ Uri defaultValue = TextSecurePreferences.getNotificationRingtone(context);
if (defaultValue.equals(value)) value = null;
else if (value == null) value = Uri.EMPTY;
@@ -528,12 +463,8 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
new AsyncTask() {
@Override
protected Void doInBackground(Uri... params) {
- if (calls) {
- DatabaseFactory.getRecipientDatabase(context).setCallRingtone(recipient, params[0]);
- } else {
- DatabaseFactory.getRecipientDatabase(context).setMessageRingtone(recipient, params[0]);
- NotificationChannels.updateMessageRingtone(context, recipient, params[0]);
- }
+ DatabaseFactory.getRecipientDatabase(context).setMessageRingtone(recipient, params[0]);
+ NotificationChannels.updateMessageRingtone(context, recipient, params[0]);
return null;
}
}.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, value);
@@ -544,24 +475,10 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private class RingtoneClickedListener implements Preference.OnPreferenceClickListener {
- private final boolean calls;
-
- RingtoneClickedListener(boolean calls) {
- this.calls = calls;
- }
-
@Override
public boolean onPreferenceClick(Preference preference) {
- Uri current;
- Uri defaultUri;
-
- if (calls) {
- current = recipient.getCallRingtone();
- defaultUri = TextSecurePreferences.getCallNotificationRingtone(getContext());
- } else {
- current = recipient.getMessageRingtone();
- defaultUri = TextSecurePreferences.getNotificationRingtone(getContext());
- }
+ Uri current = recipient.getMessageRingtone();
+ Uri defaultUri = TextSecurePreferences.getNotificationRingtone(getContext());
if (current == null) current = Settings.System.DEFAULT_NOTIFICATION_URI;
else if (current.toString().isEmpty()) current = null;
@@ -570,10 +487,10 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, defaultUri);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, calls ? RingtoneManager.TYPE_RINGTONE : RingtoneManager.TYPE_NOTIFICATION);
+ intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, current);
- startActivityForResult(intent, calls ? 2 : 1);
+ startActivityForResult(intent, REQ_CODE_CHANGE_MESSAGE_NOTIFICATION_TONE);
return true;
}
@@ -581,12 +498,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private class VibrateChangeListener implements Preference.OnPreferenceChangeListener {
- private final boolean call;
-
- VibrateChangeListener(boolean call) {
- this.call = call;
- }
-
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
int value = Integer.parseInt((String) newValue);
@@ -596,13 +507,8 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
new AsyncTask() {
@Override
protected Void doInBackground(Void... params) {
- if (call) {
- DatabaseFactory.getRecipientDatabase(context).setCallVibrate(recipient, vibrateState);
- }
- else {
- DatabaseFactory.getRecipientDatabase(context).setMessageVibrate(recipient, vibrateState);
- NotificationChannels.updateMessageVibrate(context, recipient, vibrateState);
- }
+ DatabaseFactory.getRecipientDatabase(context).setMessageVibrate(recipient, vibrateState);
+ NotificationChannels.updateMessageVibrate(context, recipient, vibrateState);
return null;
}
}.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
@@ -698,106 +604,6 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
}
}
- private class BlockClickedListener implements Preference.OnPreferenceClickListener {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- if (recipient.isBlocked()) handleUnblock(preference.getContext());
- else handleBlock(preference.getContext());
-
- return true;
- }
-
- private void handleBlock(@NonNull final Context context) {
- new AsyncTask>() {
-
- @Override
- protected Pair doInBackground(Void... voids) {
- int titleRes = R.string.RecipientPreferenceActivity_block_this_contact_question;
- int bodyRes = R.string.RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact;
-
- if (recipient.isGroupRecipient()) {
- bodyRes = R.string.RecipientPreferenceActivity_block_and_leave_group_description;
-
- if (recipient.isGroupRecipient() && DatabaseFactory.getGroupDatabase(context).isActive(recipient.getAddress().toGroupString())) {
- titleRes = R.string.RecipientPreferenceActivity_block_and_leave_group;
- } else {
- titleRes = R.string.RecipientPreferenceActivity_block_group;
- }
- }
-
- return new Pair<>(titleRes, bodyRes);
- }
-
- @Override
- protected void onPostExecute(Pair titleAndBody) {
- new AlertDialog.Builder(context)
- .setTitle(titleAndBody.first)
- .setMessage(titleAndBody.second)
- .setCancelable(true)
- .setNegativeButton(android.R.string.cancel, null)
- .setPositiveButton(R.string.RecipientPreferenceActivity_block, (dialog, which) -> {
- setBlocked(context, recipient, true);
- }).show();
- }
- }.execute();
- }
-
- private void handleUnblock(@NonNull Context context) {
- int titleRes = R.string.RecipientPreferenceActivity_unblock_this_contact_question;
- int bodyRes = R.string.RecipientPreferenceActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact;
-
- if (recipient.isGroupRecipient()) {
- titleRes = R.string.RecipientPreferenceActivity_unblock_this_group_question;
- bodyRes = R.string.RecipientPreferenceActivity_unblock_this_group_description;
- }
-
- new AlertDialog.Builder(context)
- .setTitle(titleRes)
- .setMessage(bodyRes)
- .setCancelable(true)
- .setNegativeButton(android.R.string.cancel, null)
- .setPositiveButton(R.string.RecipientPreferenceActivity_unblock, (dialog, which) -> setBlocked(context, recipient, false)).show();
- }
-
- private void setBlocked(@NonNull final Context context, final Recipient recipient, final boolean blocked) {
- new AsyncTask() {
- @Override
- protected Void doInBackground(Void... params) {
- DatabaseFactory.getRecipientDatabase(context)
- .setBlocked(recipient, blocked);
-
- if (recipient.isGroupRecipient() && DatabaseFactory.getGroupDatabase(context).isActive(recipient.getAddress().toGroupString())) {
- long threadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
- Optional leaveMessage = GroupUtil.createGroupLeaveMessage(context, recipient);
-
- if (threadId != -1 && leaveMessage.isPresent()) {
- MessageSender.send(context, leaveMessage.get(), threadId, false, null);
-
- GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context);
- String groupId = recipient.getAddress().toGroupString();
- groupDatabase.setActive(groupId, false);
- groupDatabase.removeMember(groupId, Address.fromSerialized(TextSecurePreferences.getLocalNumber(context)));
- } else {
- Log.w(TAG, "Failed to leave group. Can't block.");
- Toast.makeText(context, R.string.RecipientPreferenceActivity_error_leaving_group, Toast.LENGTH_LONG).show();
- }
- }
-
- if (blocked && (recipient.resolve().isSystemContact() || recipient.resolve().isProfileSharing())) {
- ApplicationContext.getInstance(context)
- .getJobManager()
- .add(new RotateProfileKeyJob());
- }
-
- ApplicationContext.getInstance(context)
- .getJobManager()
- .add(new MultiDeviceBlockedUpdateJob());
- return null;
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
-
private class CustomNotificationsChangedListener implements Preference.OnPreferenceChangeListener {
@Override
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java
deleted file mode 100644
index 8ae8e555f..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/ContactFilterToolbar.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.thoughtcrime.securesms.components;
-
-import android.content.Context;
-import android.graphics.Rect;
-import androidx.appcompat.widget.Toolbar;
-import android.text.Editable;
-import android.text.InputType;
-import android.text.TextWatcher;
-import android.util.AttributeSet;
-import android.view.TouchDelegate;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.util.ViewUtil;
-
-public class ContactFilterToolbar extends Toolbar {
- private OnFilterChangedListener listener;
-
- private EditText searchText;
- private AnimatingToggle toggle;
-// private ImageView keyboardToggle;
-// private ImageView dialpadToggle;
- private ImageView clearToggle;
- private LinearLayout toggleContainer;
-
- public ContactFilterToolbar(Context context) {
- this(context, null);
- }
-
- public ContactFilterToolbar(Context context, AttributeSet attrs) {
- this(context, attrs, R.attr.toolbarStyle);
- }
-
- public ContactFilterToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- inflate(context, R.layout.contact_filter_toolbar, this);
-
- this.searchText = ViewUtil.findById(this, R.id.search_view);
- this.toggle = ViewUtil.findById(this, R.id.button_toggle);
-// this.keyboardToggle = ViewUtil.findById(this, R.id.search_keyboard);
-// this.dialpadToggle = ViewUtil.findById(this, R.id.search_dialpad);
- this.clearToggle = ViewUtil.findById(this, R.id.search_clear);
- this.toggleContainer = ViewUtil.findById(this, R.id.toggle_container);
-
-// this.keyboardToggle.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View v) {
-// searchText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
-// ServiceUtil.getInputMethodManager(getContext()).showSoftInput(searchText, 0);
-// displayTogglingView(dialpadToggle);
-// }
-// });
-
-// this.dialpadToggle.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View v) {
-// searchText.setInputType(InputType.TYPE_CLASS_PHONE);
-// ServiceUtil.getInputMethodManager(getContext()).showSoftInput(searchText, 0);
-// displayTogglingView(keyboardToggle);
-// }
-// });
-
- this.clearToggle.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- searchText.setText("");
-
-// if (SearchUtil.isTextInput(searchText)) displayTogglingView(dialpadToggle);
-// else displayTogglingView(keyboardToggle);
- }
- });
-
- this.searchText.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
-
- }
-
- @Override
- public void afterTextChanged(Editable s) {
- if (!SearchUtil.isEmpty(searchText)) displayTogglingView(clearToggle);
- else displayTogglingView(null);
-// else if (SearchUtil.isTextInput(searchText)) displayTogglingView(dialpadToggle);
-// else if (SearchUtil.isPhoneInput(searchText)) displayTogglingView(keyboardToggle);
- notifyListener();
- }
- });
-
- setLogo(null);
- setContentInsetStartWithNavigation(0);
- displayTogglingView(null);
-// expandTapArea(toggleContainer, dialpadToggle);
- }
-
- public void clear() {
- searchText.setText("");
- notifyListener();
- }
-
- public void setOnFilterChangedListener(OnFilterChangedListener listener) {
- this.listener = listener;
- }
-
- private void notifyListener() {
- if (listener != null) listener.onFilterChanged(searchText.getText().toString());
- }
-
- private void displayTogglingView(View view) {
- toggle.display(view);
- if (view != null) {
- expandTapArea(toggleContainer, view);
- }
- }
-
- private void expandTapArea(final View container, final View child) {
- final int padding = getResources().getDimensionPixelSize(R.dimen.contact_selection_actions_tap_area);
-
- container.post(new Runnable() {
- @Override
- public void run() {
- Rect rect = new Rect();
- child.getHitRect(rect);
-
- rect.top -= padding;
- rect.left -= padding;
- rect.right += padding;
- rect.bottom += padding;
-
- container.setTouchDelegate(new TouchDelegate(rect, child));
- }
- });
- }
-
- private static class SearchUtil {
- static boolean isTextInput(EditText editText) {
- return (editText.getInputType() & InputType.TYPE_MASK_CLASS) == InputType.TYPE_CLASS_TEXT;
- }
-
- static boolean isPhoneInput(EditText editText) {
- return (editText.getInputType() & InputType.TYPE_MASK_CLASS) == InputType.TYPE_CLASS_PHONE;
- }
-
- public static boolean isEmpty(EditText editText) {
- return editText.getText().length() <= 0;
- }
- }
-
- public interface OnFilterChangedListener {
- void onFilterChanged(String filter);
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java
index ed62cbc9b..d9b22ced3 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java
@@ -85,12 +85,10 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.ExpirationDialog;
-import org.thoughtcrime.securesms.GroupCreateActivity;
import org.thoughtcrime.securesms.GroupMembersDialog;
import org.thoughtcrime.securesms.MediaOverviewActivity;
import org.thoughtcrime.securesms.MuteDialog;
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
-import org.thoughtcrime.securesms.PromptMmsActivity;
import org.thoughtcrime.securesms.ShortcutLauncherActivity;
import org.thoughtcrime.securesms.TransportOption;
import org.thoughtcrime.securesms.VerifyIdentityActivity;
@@ -184,7 +182,6 @@ import org.thoughtcrime.securesms.mms.StickerSlide;
import org.thoughtcrime.securesms.mms.TextSlide;
import org.thoughtcrime.securesms.mms.VideoSlide;
import org.thoughtcrime.securesms.notifications.MarkReadReceiver;
-import org.thoughtcrime.securesms.notifications.NotificationChannels;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.profiles.GroupShareProfileView;
import org.thoughtcrime.securesms.providers.BlobProvider;
@@ -281,12 +278,12 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
public static final String LAST_SEEN_EXTRA = "last_seen";
public static final String STARTING_POSITION_EXTRA = "starting_position";
- private static final int PICK_GALLERY = 1;
+// private static final int PICK_GALLERY = 1;
private static final int PICK_DOCUMENT = 2;
private static final int PICK_AUDIO = 3;
private static final int PICK_CONTACT = 4;
private static final int GET_CONTACT_DETAILS = 5;
- private static final int GROUP_EDIT = 6;
+// private static final int GROUP_EDIT = 6;
private static final int TAKE_PHOTO = 7;
private static final int ADD_CONTACT = 8;
private static final int PICK_LOCATION = 9;
@@ -337,7 +334,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
private long threadId;
private int distributionType;
private boolean archived;
- private boolean isSecureText;
+ private boolean isSecureText; //TODO AC: Refaactor these field, as they are not required anyumore.
private boolean isDefaultSms = false;
private boolean isMmsEnabled = false;
private boolean isSecurityInitialized = false;
@@ -624,16 +621,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
case GET_CONTACT_DETAILS:
sendSharedContact(data.getParcelableArrayListExtra(ContactShareEditActivity.KEY_CONTACTS));
break;
- case GROUP_EDIT:
- recipient = Recipient.from(this, data.getParcelableExtra(GroupCreateActivity.GROUP_ADDRESS_EXTRA), true);
- recipient.addListener(this);
- updateTitleTextView(recipient);
- updateProfilePicture();
- updateSubtitleTextView();
- NotificationChannels.updateContactChannelName(this, recipient);
- updateInputUI(recipient, isSecureText, isDefaultSms);
- supportInvalidateOptionsMenu();
- break;
case TAKE_PHOTO:
if (attachmentManager.getCaptureUri() != null) {
setMedia(attachmentManager.getCaptureUri(), MediaType.IMAGE);
@@ -907,6 +894,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
@@ -1258,20 +1246,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
keyboardHeight);
}
attachmentTypeSelector.show(this, attachButton);
- } else {
- handleManualMmsRequired();
}
}
- private void handleManualMmsRequired() {
- Toast.makeText(this, R.string.MmsDownloader_error_reading_mms_settings, Toast.LENGTH_LONG).show();
-
- Bundle extras = getIntent().getExtras();
- Intent intent = new Intent(this, PromptMmsActivity.class);
- if (extras != null) intent.putExtras(extras);
- startActivity(intent);
- }
-
private void handleUnverifiedRecipients() {
List unverifiedRecipients = identityRecords.getUnverifiedRecipients(this);
List unverifiedRecords = identityRecords.getUnverifiedRecords();
@@ -2297,9 +2274,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
Log.i(TAG, "isManual Selection: " + sendButton.isManualSelection());
Log.i(TAG, "forceSms: " + forceSms);
- if ((recipient.isMmsGroupRecipient() || recipient.getAddress().isEmail()) && !isMmsEnabled) {
- handleManualMmsRequired();
- } else if (!forceSms && identityRecords.isUnverified()) {
+ if (!forceSms && identityRecords.isUnverified()) {
handleUnverifiedRecipients();
}/* else if (!forceSms && identityRecords.isUntrusted()) {
handleUntrustedRecipients();
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java
index da47f6444..5b10b50d8 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java
@@ -5,25 +5,22 @@ import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.widget.Toast;
+
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.CheckBoxPreference;
import androidx.preference.Preference;
-import android.widget.Toast;
+import org.session.libsignal.service.api.SignalServiceAccountManager;
import org.thoughtcrime.securesms.ApplicationContext;
-import org.thoughtcrime.securesms.BlockedContactsActivity;
import org.thoughtcrime.securesms.PassphraseChangeActivity;
import org.thoughtcrime.securesms.components.SwitchPreferenceCompat;
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
import org.thoughtcrime.securesms.dependencies.InjectableType;
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
-import org.thoughtcrime.securesms.jobs.RefreshAttributesJob;
-import org.thoughtcrime.securesms.lock.RegistrationLockDialog;
import org.thoughtcrime.securesms.service.KeyCachingService;
-import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.session.libsignal.service.api.SignalServiceAccountManager;
import java.util.concurrent.TimeUnit;
@@ -34,9 +31,6 @@ import network.loki.messenger.R;
public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment implements InjectableType {
-// private static final String PREFERENCE_CATEGORY_BLOCKED = "preference_category_blocked";
-// private static final String PREFERENCE_UNIDENTIFIED_LEARN_MORE = "pref_unidentified_learn_more";
-
private CheckBoxPreference disablePassphrase;
@Inject
@@ -54,7 +48,6 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
disablePassphrase = (CheckBoxPreference) this.findPreference("pref_enable_passphrase_temporary");
-// this.findPreference(TextSecurePreferences.REGISTRATION_LOCK_PREF).setOnPreferenceClickListener(new AccountLockClickListener());
this.findPreference(TextSecurePreferences.SCREEN_LOCK).setOnPreferenceChangeListener(new ScreenLockListener());
this.findPreference(TextSecurePreferences.SCREEN_LOCK_TIMEOUT).setOnPreferenceClickListener(new ScreenLockTimeoutListener());
@@ -63,10 +56,6 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
this.findPreference(TextSecurePreferences.READ_RECEIPTS_PREF).setOnPreferenceChangeListener(new ReadReceiptToggleListener());
this.findPreference(TextSecurePreferences.TYPING_INDICATORS).setOnPreferenceChangeListener(new TypingIndicatorsToggleListener());
this.findPreference(TextSecurePreferences.LINK_PREVIEWS).setOnPreferenceChangeListener(new LinkPreviewToggleListener());
-// this.findPreference(PREFERENCE_CATEGORY_BLOCKED).setOnPreferenceClickListener(new BlockedContactsClickListener());
-// this.findPreference(TextSecurePreferences.SHOW_UNIDENTIFIED_DELIVERY_INDICATORS).setOnPreferenceChangeListener(new ShowUnidentifiedDeliveryIndicatorsChangedListener());
-// this.findPreference(TextSecurePreferences.UNIVERSAL_UNIDENTIFIED_ACCESS).setOnPreferenceChangeListener(new UniversalUnidentifiedAccessChangedListener());
-// this.findPreference(PREFERENCE_UNIDENTIFIED_LEARN_MORE).setOnPreferenceClickListener(new UnidentifiedLearnMoreClickListener());
disablePassphrase.setOnPreferenceChangeListener(new DisablePassphraseClickListener());
initializeVisibility();
@@ -154,28 +143,6 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
}
}
- private class AccountLockClickListener implements Preference.OnPreferenceClickListener {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- if (((SwitchPreferenceCompat)preference).isChecked()) {
- RegistrationLockDialog.showRegistrationUnlockPrompt(getContext(), (SwitchPreferenceCompat)preference, accountManager);
- } else {
- RegistrationLockDialog.showRegistrationLockPrompt(getContext(), (SwitchPreferenceCompat)preference, accountManager);
- }
-
- return true;
- }
- }
-
- private class BlockedContactsClickListener implements Preference.OnPreferenceClickListener {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- Intent intent = new Intent(getActivity(), BlockedContactsActivity.class);
- startActivity(intent);
- return true;
- }
- }
-
private class ReadReceiptToggleListener implements Preference.OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -266,8 +233,6 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
}
}
- // Derecated
-
private class ChangePassphraseClickListener implements Preference.OnPreferenceClickListener {
@Override
public boolean onPreferenceClick(Preference preference) {
@@ -333,37 +298,4 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
return false;
}
}
-
- private class ShowUnidentifiedDeliveryIndicatorsChangedListener implements Preference.OnPreferenceChangeListener {
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- boolean enabled = (boolean) newValue;
- ApplicationContext.getInstance(getContext())
- .getJobManager()
- .add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(getContext()),
- TextSecurePreferences.isTypingIndicatorsEnabled(getContext()),
- enabled,
- TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
-
- return true;
- }
- }
-
- private class UniversalUnidentifiedAccessChangedListener implements Preference.OnPreferenceChangeListener {
- @Override
- public boolean onPreferenceChange(Preference preference, Object o) {
- ApplicationContext.getInstance(getContext())
- .getJobManager()
- .add(new RefreshAttributesJob());
- return true;
- }
- }
-
- private class UnidentifiedLearnMoreClickListener implements Preference.OnPreferenceClickListener {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- CommunicationActions.openBrowserLink(preference.getContext(), "https://signal.org/blog/sealed-sender/");
- return true;
- }
- }
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java
deleted file mode 100644
index 8266b86ab..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.thoughtcrime.securesms.preferences;
-
-import android.content.Context;
-import android.os.Bundle;
-import androidx.annotation.Nullable;
-import androidx.preference.ListPreference;
-
-import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-import java.util.Arrays;
-
-public class AppearancePreferenceFragment extends ListSummaryPreferenceFragment {
-
- @Override
- public void onCreate(Bundle paramBundle) {
- super.onCreate(paramBundle);
-
- this.findPreference(TextSecurePreferences.THEME_PREF).setOnPreferenceChangeListener(new ListSummaryListener());
- this.findPreference(TextSecurePreferences.LANGUAGE_PREF).setOnPreferenceChangeListener(new ListSummaryListener());
- initializeListSummary((ListPreference)findPreference(TextSecurePreferences.THEME_PREF));
- initializeListSummary((ListPreference)findPreference(TextSecurePreferences.LANGUAGE_PREF));
- }
-
- @Override
- public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
- addPreferencesFromResource(R.xml.preferences_appearance);
- }
-
- @Override
- public void onStart() {
- super.onStart();
- getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener((ApplicationPreferencesActivity)getActivity());
- }
-
- @Override
- public void onResume() {
- super.onResume();
- ((ApplicationPreferencesActivity) getActivity()).getSupportActionBar().setTitle(R.string.preferences__appearance);
- }
-
- @Override
- public void onStop() {
- super.onStop();
- getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener((ApplicationPreferencesActivity) getActivity());
- }
-
- public static CharSequence getSummary(Context context) {
- String[] languageEntries = context.getResources().getStringArray(R.array.language_entries);
- String[] languageEntryValues = context.getResources().getStringArray(R.array.language_values);
- String[] themeEntries = context.getResources().getStringArray(R.array.pref_theme_entries);
- String[] themeEntryValues = context.getResources().getStringArray(R.array.pref_theme_values);
-
- int langIndex = Arrays.asList(languageEntryValues).indexOf(TextSecurePreferences.getLanguage(context));
- int themeIndex = Arrays.asList(themeEntryValues).indexOf(TextSecurePreferences.getTheme(context));
-
- if (langIndex == -1) langIndex = 0;
- if (themeIndex == -1) themeIndex = 0;
-
- return context.getString(R.string.ApplicationPreferencesActivity_appearance_summary,
- themeEntries[themeIndex],
- languageEntries[langIndex]);
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactListItem.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactListItem.java
deleted file mode 100644
index 6ae0518b9..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactListItem.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.thoughtcrime.securesms.preferences;
-
-import android.content.Context;
-import androidx.annotation.NonNull;
-import android.util.AttributeSet;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.components.AvatarImageView;
-import org.thoughtcrime.securesms.mms.GlideRequests;
-import org.thoughtcrime.securesms.recipients.Recipient;
-import org.thoughtcrime.securesms.recipients.RecipientModifiedListener;
-import org.thoughtcrime.securesms.util.Util;
-
-public class BlockedContactListItem extends RelativeLayout implements RecipientModifiedListener {
-
- private AvatarImageView contactPhotoImage;
- private TextView nameView;
- private GlideRequests glideRequests;
- private Recipient recipient;
-
- public BlockedContactListItem(Context context) {
- super(context);
- }
-
- public BlockedContactListItem(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public BlockedContactListItem(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
-
- @Override
- public void onFinishInflate() {
- super.onFinishInflate();
- this.contactPhotoImage = findViewById(R.id.contact_photo_image);
- this.nameView = findViewById(R.id.name);
- }
-
- public void set(@NonNull GlideRequests glideRequests, @NonNull Recipient recipients) {
- this.glideRequests = glideRequests;
- this.recipient = recipients;
-
- onModified(recipients);
- recipients.addListener(this);
- }
-
- @Override
- public void onModified(final Recipient recipients) {
- final AvatarImageView contactPhotoImage = this.contactPhotoImage;
- final TextView nameView = this.nameView;
-
- Util.runOnMain(() -> {
- contactPhotoImage.setAvatar(glideRequests, recipients, false);
- nameView.setText(recipients.toShortString());
- });
- }
-
- public Recipient getRecipient() {
- return recipient;
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesActivity.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesActivity.java
deleted file mode 100644
index d0e4d944e..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesActivity.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2011 Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.thoughtcrime.securesms.preferences;
-
-import android.os.Bundle;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-import android.view.MenuItem;
-
-import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
-import org.thoughtcrime.securesms.util.DynamicLanguage;
-import org.thoughtcrime.securesms.util.DynamicTheme;
-
-public class MmsPreferencesActivity extends PassphraseRequiredActionBarActivity {
-
- private final DynamicTheme dynamicTheme = new DynamicTheme();
- private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
-
- @Override
- protected void onPreCreate() {
- dynamicTheme.onCreate(this);
- dynamicLanguage.onCreate(this);
- }
-
- @Override
- protected void onCreate(Bundle icicle, boolean ready) {
- assert getSupportActionBar() != null;
- this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- Fragment fragment = new MmsPreferencesFragment();
- FragmentManager fragmentManager = getSupportFragmentManager();
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- fragmentTransaction.replace(android.R.id.content, fragment);
- fragmentTransaction.commit();
-
- }
-
- @Override
- public void onResume() {
- super.onResume();
- dynamicTheme.onResume(this);
- dynamicLanguage.onResume(this);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- }
-
- return false;
- }
-
- @Override
- public void onBackPressed() {
- super.onBackPressed();
- }
-
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java
deleted file mode 100644
index 70a2c5b3a..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Copyright (C) 2014 Open Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.thoughtcrime.securesms.preferences;
-
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import androidx.annotation.Nullable;
-
-import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.components.CustomDefaultPreference;
-import org.thoughtcrime.securesms.database.ApnDatabase;
-import org.thoughtcrime.securesms.logging.Log;
-import org.thoughtcrime.securesms.mms.LegacyMmsConnection;
-import org.thoughtcrime.securesms.util.TelephonyUtil;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-import java.io.IOException;
-
-
-public class MmsPreferencesFragment extends CorrectedPreferenceFragment {
-
- private static final String TAG = MmsPreferencesFragment.class.getSimpleName();
-
- @Override
- public void onCreate(Bundle paramBundle) {
- super.onCreate(paramBundle);
-
- ((PassphraseRequiredActionBarActivity) getActivity()).getSupportActionBar()
- .setTitle(R.string.preferences__advanced_mms_access_point_names);
- }
-
- @Override
- public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
- addPreferencesFromResource(R.xml.preferences_manual_mms);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- new LoadApnDefaultsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- private class LoadApnDefaultsTask extends AsyncTask {
-
- @Override
- protected LegacyMmsConnection.Apn doInBackground(Void... params) {
- try {
- Context context = getActivity();
-
- if (context != null) {
- return ApnDatabase.getInstance(context)
- .getDefaultApnParameters(TelephonyUtil.getMccMnc(context),
- TelephonyUtil.getApn(context));
- }
- } catch (IOException e) {
- Log.w(TAG, e);
- }
-
- return null;
- }
-
- @Override
- protected void onPostExecute(LegacyMmsConnection.Apn apnDefaults) {
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_HOST_PREF))
- .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.UriValidator())
- .setDefaultValue(apnDefaults.getMmsc());
-
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PROXY_HOST_PREF))
- .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.HostnameValidator())
- .setDefaultValue(apnDefaults.getProxy());
-
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PROXY_PORT_PREF))
- .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.PortValidator())
- .setDefaultValue(apnDefaults.getPort());
-
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_USERNAME_PREF))
- .setDefaultValue(apnDefaults.getPort());
-
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PASSWORD_PREF))
- .setDefaultValue(apnDefaults.getPassword());
-
- ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMS_USER_AGENT))
- .setDefaultValue(LegacyMmsConnection.USER_AGENT);
- }
- }
-
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
index 179d3c35f..7f1a862b2 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
@@ -64,10 +64,6 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
.setOnPreferenceChangeListener(new NotificationPrivacyListener());
this.findPreference(TextSecurePreferences.NOTIFICATION_PRIORITY_PREF)
.setOnPreferenceChangeListener(new ListSummaryListener());
- /*
- this.findPreference(TextSecurePreferences.CALL_RINGTONE_PREF)
- .setOnPreferenceChangeListener(new RingtoneSummaryListener());
- */
this.findPreference(TextSecurePreferences.VIBRATE_PREF)
.setOnPreferenceChangeListener((preference, newValue) -> {
NotificationChannels.updateMessageVibrate(getContext(), (boolean) newValue);
@@ -90,24 +86,6 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
return true;
});
- /*
- this.findPreference(TextSecurePreferences.CALL_RINGTONE_PREF)
- .setOnPreferenceClickListener(preference -> {
- Uri current = TextSecurePreferences.getCallNotificationRingtone(getContext());
-
- Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, Settings.System.DEFAULT_RINGTONE_URI);
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, current);
-
- startActivityForResult(intent, 2);
-
- return true;
- });
- */
-
initializeListSummary((ListPreference) findPreference(TextSecurePreferences.LED_COLOR_PREF));
initializeListSummary((ListPreference) findPreference(TextSecurePreferences.REPEAT_ALERTS_PREF));
initializeListSummary((ListPreference) findPreference(TextSecurePreferences.NOTIFICATION_PRIVACY_PREF));
@@ -126,9 +104,7 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
}
initializeRingtoneSummary(findPreference(TextSecurePreferences.RINGTONE_PREF));
-// initializeCallRingtoneSummary(findPreference(TextSecurePreferences.CALL_RINGTONE_PREF));
initializeMessageVibrateSummary((SwitchPreferenceCompat)findPreference(TextSecurePreferences.VIBRATE_PREF));
-// initializeCallVibrateSummary((SwitchPreferenceCompat)findPreference(TextSecurePreferences.CALL_VIBRATE_PREF));
}
@Override
@@ -154,12 +130,6 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
} else if (requestCode == 2 && resultCode == RESULT_OK && data != null) {
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- if (Settings.System.DEFAULT_RINGTONE_URI.equals(uri)) {
- TextSecurePreferences.removeCallNotificationRingtone(getContext());
- } else {
- TextSecurePreferences.setCallNotificationRingtone(getContext(), uri != null ? uri.toString() : Uri.EMPTY.toString());
- }
-
// initializeCallRingtoneSummary(findPreference(TextSecurePreferences.CALL_RINGTONE_PREF));
}
}
@@ -190,21 +160,10 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
listener.onPreferenceChange(pref, uri);
}
- private void initializeCallRingtoneSummary(Preference pref) {
- RingtoneSummaryListener listener = (RingtoneSummaryListener) pref.getOnPreferenceChangeListener();
- Uri uri = TextSecurePreferences.getCallNotificationRingtone(getContext());
-
- listener.onPreferenceChange(pref, uri);
- }
-
private void initializeMessageVibrateSummary(SwitchPreferenceCompat pref) {
pref.setChecked(TextSecurePreferences.isNotificationVibrateEnabled(getContext()));
}
- private void initializeCallVibrateSummary(SwitchPreferenceCompat pref) {
- pref.setChecked(TextSecurePreferences.isCallNotificationVibrateEnabled(getContext()));
- }
-
public static CharSequence getSummary(Context context) {
final int onCapsResId = R.string.ApplicationPreferencesActivity_On;
final int offCapsResId = R.string.ApplicationPreferencesActivity_Off;
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java
deleted file mode 100644
index 3681c6e7e..000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package org.thoughtcrime.securesms.preferences;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.provider.Telephony;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.thoughtcrime.securesms.util.Util;
-
-public class SmsMmsPreferenceFragment extends CorrectedPreferenceFragment {
- private static final String KITKAT_DEFAULT_PREF = "pref_set_default";
- private static final String MMS_PREF = "pref_mms_preferences";
-
- @Override
- public void onCreate(Bundle paramBundle) {
- super.onCreate(paramBundle);
-
-
- this.findPreference(MMS_PREF)
- .setOnPreferenceClickListener(new ApnPreferencesClickListener());
-
- initializePlatformSpecificOptions();
- }
-
- @Override
- public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
- addPreferencesFromResource(R.xml.preferences_sms_mms);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- ((ApplicationPreferencesActivity) getActivity()).getSupportActionBar().setTitle(R.string.preferences__sms_mms);
-
- initializeDefaultPreference();
- }
-
- private void initializePlatformSpecificOptions() {
- PreferenceScreen preferenceScreen = getPreferenceScreen();
- Preference defaultPreference = findPreference(KITKAT_DEFAULT_PREF);
- Preference allSmsPreference = findPreference(TextSecurePreferences.ALL_SMS_PREF);
- Preference allMmsPreference = findPreference(TextSecurePreferences.ALL_MMS_PREF);
- Preference manualMmsPreference = findPreference(MMS_PREF);
-
- if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
- if (allSmsPreference != null) preferenceScreen.removePreference(allSmsPreference);
- if (allMmsPreference != null) preferenceScreen.removePreference(allMmsPreference);
- } else if (defaultPreference != null) {
- preferenceScreen.removePreference(defaultPreference);
- }
-
- if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP && manualMmsPreference != null) {
- preferenceScreen.removePreference(manualMmsPreference);
- }
- }
-
- private void initializeDefaultPreference() {
- if (VERSION.SDK_INT < VERSION_CODES.KITKAT) return;
-
- Preference defaultPreference = findPreference(KITKAT_DEFAULT_PREF);
- if (Util.isDefaultSmsProvider(getActivity())) {
- if (VERSION.SDK_INT < VERSION_CODES.M) defaultPreference.setIntent(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
- if (VERSION.SDK_INT < VERSION_CODES.N) defaultPreference.setIntent(new Intent(Settings.ACTION_SETTINGS));
- else defaultPreference.setIntent(new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS));
-
- defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_enabled));
- defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_change_your_default_sms_app));
- } else {
- Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
- intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getActivity().getPackageName());
- defaultPreference.setIntent(intent);
- defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_disabled));
- defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_make_signal_your_default_sms_app));
- }
- }
-
- private class ApnPreferencesClickListener implements Preference.OnPreferenceClickListener {
-
- @Override
- public boolean onPreferenceClick(Preference preference) {
- Fragment fragment = new MmsPreferencesFragment();
- FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- fragmentTransaction.replace(android.R.id.content, fragment);
- fragmentTransaction.addToBackStack(null);
- fragmentTransaction.commit();
-
- return true;
- }
- }
-
- public static CharSequence getSummary(Context context) {
- final String on = context.getString(R.string.ApplicationPreferencesActivity_on);
- final String onCaps = context.getString(R.string.ApplicationPreferencesActivity_On);
- final String off = context.getString(R.string.ApplicationPreferencesActivity_off);
- final String offCaps = context.getString(R.string.ApplicationPreferencesActivity_Off);
- final int smsMmsSummaryResId = R.string.ApplicationPreferencesActivity_sms_mms_summary;
-
- boolean postKitkatSMS = Util.isDefaultSmsProvider(context);
- boolean preKitkatSMS = TextSecurePreferences.isInterceptAllSmsEnabled(context);
- boolean preKitkatMMS = TextSecurePreferences.isInterceptAllMmsEnabled(context);
-
- if (postKitkatSMS) return onCaps;
- else return offCaps;
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
index c48511040..3cb9521d9 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java
@@ -139,10 +139,6 @@ public class TextSecurePreferences {
private static final String ATTACHMENT_UNENCRYPTED_SECRET = "pref_attachment_unencrypted_secret";
private static final String NEEDS_SQLCIPHER_MIGRATION = "pref_needs_sql_cipher_migration";
- public static final String CALL_NOTIFICATIONS_PREF = "pref_call_notifications";
- public static final String CALL_RINGTONE_PREF = "pref_call_ringtone";
- public static final String CALL_VIBRATE_PREF = "pref_call_vibrate";
-
private static final String NEXT_PRE_KEY_ID = "pref_next_pre_key_id";
private static final String ACTIVE_SIGNED_PRE_KEY_ID = "pref_active_signed_pre_key_id";
private static final String NEXT_SIGNED_PRE_KEY_ID = "pref_next_signed_pre_key_id";
@@ -972,10 +968,6 @@ public class TextSecurePreferences {
return getBooleanPreference(context, NOTIFICATION_PREF, true);
}
- public static boolean isCallNotificationsEnabled(Context context) {
- return getBooleanPreference(context, CALL_NOTIFICATIONS_PREF, true);
- }
-
public static @NonNull Uri getNotificationRingtone(Context context) {
String result = getStringPreference(context, RINGTONE_PREF, Settings.System.DEFAULT_NOTIFICATION_URI.toString());
@@ -986,32 +978,14 @@ public class TextSecurePreferences {
return Uri.parse(result);
}
- public static @NonNull Uri getCallNotificationRingtone(Context context) {
- String result = getStringPreference(context, CALL_RINGTONE_PREF, Settings.System.DEFAULT_RINGTONE_URI.toString());
-
- if (result != null && result.startsWith("file:")) {
- result = Settings.System.DEFAULT_RINGTONE_URI.toString();
- }
-
- return Uri.parse(result);
- }
-
public static void removeNotificationRingtone(Context context) {
removePreference(context, RINGTONE_PREF);
}
- public static void removeCallNotificationRingtone(Context context) {
- removePreference(context, CALL_RINGTONE_PREF);
- }
-
public static void setNotificationRingtone(Context context, String ringtone) {
setStringPreference(context, RINGTONE_PREF, ringtone);
}
- public static void setCallNotificationRingtone(Context context, String ringtone) {
- setStringPreference(context, CALL_RINGTONE_PREF, ringtone);
- }
-
public static void setNotificationVibrateEnabled(Context context, boolean enabled) {
setBooleanPreference(context, VIBRATE_PREF, enabled);
}
@@ -1020,16 +994,6 @@ public class TextSecurePreferences {
return getBooleanPreference(context, VIBRATE_PREF, true);
}
- public static boolean isCallNotificationVibrateEnabled(Context context) {
- boolean defaultValue = true;
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- defaultValue = (Settings.System.getInt(context.getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, 1) == 1);
- }
-
- return getBooleanPreference(context, CALL_VIBRATE_PREF, defaultValue);
- }
-
public static String getNotificationLedColor(Context context) {
return getStringPreference(context, LED_COLOR_PREF, "blue");
}
diff --git a/app/src/main/res/layout/blocked_contact_list_item.xml b/app/src/main/res/layout/blocked_contact_list_item.xml
deleted file mode 100644
index 2a83568a1..000000000
--- a/app/src/main/res/layout/blocked_contact_list_item.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/blocked_contacts_fragment.xml b/app/src/main/res/layout/blocked_contacts_fragment.xml
deleted file mode 100644
index 49ccc82aa..000000000
--- a/app/src/main/res/layout/blocked_contacts_fragment.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/contact_filter_toolbar.xml b/app/src/main/res/layout/contact_filter_toolbar.xml
deleted file mode 100644
index f6615b762..000000000
--- a/app/src/main/res/layout/contact_filter_toolbar.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/contact_selection_activity.xml b/app/src/main/res/layout/contact_selection_activity.xml
deleted file mode 100644
index 38762aab7..000000000
--- a/app/src/main/res/layout/contact_selection_activity.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/group_create_activity.xml b/app/src/main/res/layout/group_create_activity.xml
deleted file mode 100644
index 9ac6b33bd..000000000
--- a/app/src/main/res/layout/group_create_activity.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/invite_activity.xml b/app/src/main/res/layout/invite_activity.xml
deleted file mode 100644
index e7f574cca..000000000
--- a/app/src/main/res/layout/invite_activity.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/preference_right_summary_widget.xml b/app/src/main/res/layout/preference_right_summary_widget.xml
index 3a0523458..bf9e77067 100644
--- a/app/src/main/res/layout/preference_right_summary_widget.xml
+++ b/app/src/main/res/layout/preference_right_summary_widget.xml
@@ -1,6 +1,6 @@
-
@@ -11,6 +11,7 @@
android:layout_gravity="right|center_vertical"
android:gravity="right|center_vertical"
android:textSize="@dimen/medium_font_size"
- android:textColor="@color/accent" />
+ android:textColor="@color/accent"
+ tools:text="Preference Summary"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/prompt_apn_activity.xml b/app/src/main/res/layout/prompt_apn_activity.xml
deleted file mode 100644
index 63cd653ea..000000000
--- a/app/src/main/res/layout/prompt_apn_activity.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/xml/preferences_manual_mms.xml b/app/src/main/res/xml/preferences_manual_mms.xml
deleted file mode 100644
index 8bf1d5e89..000000000
--- a/app/src/main/res/xml/preferences_manual_mms.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/xml/preferences_sms_mms.xml b/app/src/main/res/xml/preferences_sms_mms.xml
deleted file mode 100644
index 69249f315..000000000
--- a/app/src/main/res/xml/preferences_sms_mms.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-