diff --git a/src/org/smssecure/smssecure/ApplicationContext.java b/src/org/smssecure/smssecure/ApplicationContext.java index 7821b4b8bbdfe4ee62352e87df62ada40f378369..f6f3f1a7aea8689c86b62fa3a6b63e062fbeb3e6 100644 --- a/src/org/smssecure/smssecure/ApplicationContext.java +++ b/src/org/smssecure/smssecure/ApplicationContext.java @@ -34,8 +34,6 @@ import org.whispersystems.jobqueue.requirements.NetworkRequirementProvider; import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider; import org.whispersystems.libsignal.util.AndroidSignalProtocolLogger; -import java.security.Security; - import dagger.ObjectGraph; /** @@ -60,6 +58,7 @@ public class ApplicationContext extends Application implements DependencyInjecto @Override public void onCreate() { + super.onCreate(); initializeRandomNumberFix(); initializeLogging(); initializeJobManager(); diff --git a/src/org/smssecure/smssecure/ApplicationPreferencesActivity.java b/src/org/smssecure/smssecure/ApplicationPreferencesActivity.java index 341736a8a46826aedb5d36bbf0567f2c3178c9f3..d00159a2418e76525104dbdc97253c0f77a0092d 100644 --- a/src/org/smssecure/smssecure/ApplicationPreferencesActivity.java +++ b/src/org/smssecure/smssecure/ApplicationPreferencesActivity.java @@ -16,23 +16,18 @@ */ package org.smssecure.smssecure; -import android.app.AlertDialog; import android.content.ActivityNotFoundException; -import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Build.VERSION; import android.os.Bundle; -import android.preference.CheckBoxPreference; import android.preference.Preference; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.preference.PreferenceFragment; -import android.util.Log; import android.widget.Toast; import org.smssecure.smssecure.crypto.MasterSecret; @@ -43,15 +38,9 @@ import org.smssecure.smssecure.preferences.NotificationsPreferenceFragment; import org.smssecure.smssecure.preferences.SmsMmsPreferenceFragment; import org.smssecure.smssecure.preferences.ChatsPreferenceFragment; import org.smssecure.smssecure.service.KeyCachingService; -import org.smssecure.smssecure.util.Dialogs; import org.smssecure.smssecure.util.DynamicLanguage; import org.smssecure.smssecure.util.DynamicTheme; -import org.smssecure.smssecure.util.task.ProgressDialogAsyncTask; -import org.smssecure.smssecure.util.ResUtil; import org.smssecure.smssecure.util.SilencePreferences; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.io.IOException; /** * The Activity for application preference display and management. diff --git a/src/org/smssecure/smssecure/BaseActionBarActivity.java b/src/org/smssecure/smssecure/BaseActionBarActivity.java index 60e6a2de44d99d198fb2da3a99c4ef136d3df6fd..a44a63be124f1166cab3a63ad631326bc1b04dfe 100644 --- a/src/org/smssecure/smssecure/BaseActionBarActivity.java +++ b/src/org/smssecure/smssecure/BaseActionBarActivity.java @@ -1,6 +1,5 @@ package org.smssecure.smssecure; -import android.app.ActivityOptions; import android.content.Intent; import android.os.Build; import android.os.Bundle; @@ -13,7 +12,6 @@ import android.view.KeyEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.WindowManager; -import android.view.animation.AnimationUtils; import org.smssecure.smssecure.util.SilencePreferences; diff --git a/src/org/smssecure/smssecure/ContactSelectionActivity.java b/src/org/smssecure/smssecure/ContactSelectionActivity.java index 2ed2997b024b0531b0a9f55075e518bbc51ad96b..794efdf7ffc281176dc9112b20c6b7f7ba458351 100644 --- a/src/org/smssecure/smssecure/ContactSelectionActivity.java +++ b/src/org/smssecure/smssecure/ContactSelectionActivity.java @@ -17,13 +17,11 @@ package org.smssecure.smssecure; import android.graphics.Rect; -import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; -import android.util.Log; import android.view.TouchDelegate; import android.view.View; import android.widget.EditText; @@ -37,8 +35,6 @@ import org.smssecure.smssecure.util.DynamicNoActionBarTheme; import org.smssecure.smssecure.util.DynamicTheme; import org.smssecure.smssecure.util.ServiceUtil; -import java.io.IOException; - /** * Base activity container for selecting a list of contacts. * diff --git a/src/org/smssecure/smssecure/ContactSelectionListFragment.java b/src/org/smssecure/smssecure/ContactSelectionListFragment.java index e56a99e6b083e473abeec71b2084318f42d1f5f2..c7165466f05571a2e9e2dcf6c0df56e27f29c06e 100644 --- a/src/org/smssecure/smssecure/ContactSelectionListFragment.java +++ b/src/org/smssecure/smssecure/ContactSelectionListFragment.java @@ -34,7 +34,6 @@ import org.smssecure.smssecure.contacts.ContactSelectionListAdapter; import org.smssecure.smssecure.contacts.ContactSelectionListItem; import org.smssecure.smssecure.contacts.ContactsCursorLoader; import org.smssecure.smssecure.database.CursorRecyclerViewAdapter; -import org.smssecure.smssecure.util.SilencePreferences; import org.smssecure.smssecure.util.StickyHeaderDecoration; import org.smssecure.smssecure.util.ViewUtil; @@ -65,6 +64,7 @@ public class ContactSelectionListFragment extends Fragment @Override public void onActivityCreated(Bundle icicle) { + super.onActivityCreated(icicle); super.onCreate(icicle); initializeCursor(); } diff --git a/src/org/smssecure/smssecure/ConversationActivity.java b/src/org/smssecure/smssecure/ConversationActivity.java index 09afd50271f21c6431311498ed559b7b661fdaf4..b3a8b4c29688da881693e1219b3cd74236098d44 100644 --- a/src/org/smssecure/smssecure/ConversationActivity.java +++ b/src/org/smssecure/smssecure/ConversationActivity.java @@ -60,14 +60,11 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; -import com.google.protobuf.ByteString; - import org.smssecure.smssecure.TransportOptions.OnTransportChangedListener; import org.smssecure.smssecure.audio.AudioSlidePlayer; import org.smssecure.smssecure.color.MaterialColor; import org.smssecure.smssecure.components.AnimatingToggle; import org.smssecure.smssecure.components.ComposeText; -import org.smssecure.smssecure.components.KeyboardAwareLinearLayout; import org.smssecure.smssecure.components.KeyboardAwareLinearLayout.OnKeyboardShownListener; import org.smssecure.smssecure.components.SendButton; import org.smssecure.smssecure.components.InputAwareLayout; @@ -92,7 +89,6 @@ import org.smssecure.smssecure.mms.AttachmentManager; import org.smssecure.smssecure.mms.AttachmentManager.MediaType; import org.smssecure.smssecure.mms.AttachmentTypeSelectorAdapter; import org.smssecure.smssecure.mms.MediaConstraints; -import org.smssecure.smssecure.mms.MmsMediaConstraints; import org.smssecure.smssecure.mms.OutgoingMediaMessage; import org.smssecure.smssecure.mms.OutgoingSecureMediaMessage; import org.smssecure.smssecure.mms.Slide; @@ -107,7 +103,6 @@ import org.smssecure.smssecure.service.KeyCachingService; import org.smssecure.smssecure.sms.MessageSender; import org.smssecure.smssecure.sms.OutgoingEncryptedMessage; import org.smssecure.smssecure.sms.OutgoingTextMessage; -import org.smssecure.smssecure.util.concurrent.AssertedSuccessListener; import org.smssecure.smssecure.util.CharacterCalculator.CharacterState; import org.smssecure.smssecure.util.Dialogs; import org.smssecure.smssecure.util.DynamicLanguage; @@ -125,7 +120,6 @@ import org.smssecure.smssecure.util.dualsim.SubscriptionManagerCompat; import org.whispersystems.libsignal.InvalidMessageException; import org.whispersystems.libsignal.util.guava.Optional; -import java.io.IOException; import java.util.List; import ws.com.google.android.mms.ContentType; diff --git a/src/org/smssecure/smssecure/ConversationAdapter.java b/src/org/smssecure/smssecure/ConversationAdapter.java index 1e4af6097781ff35dcb13a8fcbeafd2083352add..e9e73e9936143eb56ef70b8c3930e9d49eef4127 100644 --- a/src/org/smssecure/smssecure/ConversationAdapter.java +++ b/src/org/smssecure/smssecure/ConversationAdapter.java @@ -18,13 +18,10 @@ package org.smssecure.smssecure; import android.content.Context; import android.database.Cursor; -import android.graphics.Canvas; -import android.graphics.Rect; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -38,7 +35,6 @@ import org.smssecure.smssecure.database.CursorRecyclerViewAdapter; import org.smssecure.smssecure.database.DatabaseFactory; import org.smssecure.smssecure.database.MmsSmsColumns; import org.smssecure.smssecure.database.MmsSmsDatabase; -import org.smssecure.smssecure.database.SmsDatabase; import org.smssecure.smssecure.database.model.MediaMmsMessageRecord; import org.smssecure.smssecure.database.model.MessageRecord; import org.smssecure.smssecure.recipients.Recipients; diff --git a/src/org/smssecure/smssecure/ConversationFragment.java b/src/org/smssecure/smssecure/ConversationFragment.java index 05bc7efaa6cd2174a3e37c87db9d6f500dd9bc9e..c9324a5729e91b1235cb67dee564d3dfa0c45fc2 100644 --- a/src/org/smssecure/smssecure/ConversationFragment.java +++ b/src/org/smssecure/smssecure/ConversationFragment.java @@ -33,7 +33,6 @@ import android.support.v7.app.AlertDialog; import android.support.v7.view.ActionMode; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ItemAnimator.ItemAnimatorFinishedListener; import android.support.v7.widget.RecyclerView.OnScrollListener; import android.text.ClipboardManager; import android.text.TextUtils; @@ -63,7 +62,6 @@ import org.smssecure.smssecure.mms.Slide; import org.smssecure.smssecure.recipients.RecipientFactory; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.sms.MessageSender; -import org.smssecure.smssecure.util.SilencePreferences; import org.smssecure.smssecure.util.task.ProgressDialogAsyncTask; import org.smssecure.smssecure.util.SaveAttachmentTask; import org.smssecure.smssecure.util.SaveAttachmentTask.Attachment; diff --git a/src/org/smssecure/smssecure/ConversationItem.java b/src/org/smssecure/smssecure/ConversationItem.java index fcdb0f449e40a54fda6c58043500703715d73c93..d42b3832087ee25c6e638a1dc650d83bf204156f 100644 --- a/src/org/smssecure/smssecure/ConversationItem.java +++ b/src/org/smssecure/smssecure/ConversationItem.java @@ -57,8 +57,6 @@ import org.smssecure.smssecure.database.model.MediaMmsMessageRecord; import org.smssecure.smssecure.database.model.MessageRecord; import org.smssecure.smssecure.database.model.NotificationMmsMessageRecord; import org.smssecure.smssecure.jobs.MmsDownloadJob; -import org.smssecure.smssecure.jobs.MmsSendJob; -import org.smssecure.smssecure.jobs.SmsSendJob; import org.smssecure.smssecure.mms.PartAuthority; import org.smssecure.smssecure.mms.Slide; import org.smssecure.smssecure.mms.SlideClickListener; diff --git a/src/org/smssecure/smssecure/ConversationPopupActivity.java b/src/org/smssecure/smssecure/ConversationPopupActivity.java index 03b36312d54621aa5172deaf53ca28224a123caf..beb4a50bb9e666a974476ce8681cd3797cc2040e 100644 --- a/src/org/smssecure/smssecure/ConversationPopupActivity.java +++ b/src/org/smssecure/smssecure/ConversationPopupActivity.java @@ -12,7 +12,6 @@ import android.view.Gravity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import android.view.View; import android.view.WindowManager; import org.smssecure.smssecure.crypto.MasterSecret; diff --git a/src/org/smssecure/smssecure/CountrySelectionActivity.java b/src/org/smssecure/smssecure/CountrySelectionActivity.java index a33a94032e37541c954f37b02d0ce6000cc095f3..7984d20934a71170ff3447321d22856d1872d43a 100644 --- a/src/org/smssecure/smssecure/CountrySelectionActivity.java +++ b/src/org/smssecure/smssecure/CountrySelectionActivity.java @@ -3,7 +3,6 @@ package org.smssecure.smssecure; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; public class CountrySelectionActivity extends BaseActivity implements CountrySelectionFragment.CountrySelectedListener diff --git a/src/org/smssecure/smssecure/GroupCreateActivity.java b/src/org/smssecure/smssecure/GroupCreateActivity.java index a06b9d8f4021e4b798f3b48515f954e92f101b7b..e2fdf9b26ac524c55401d83f28ad15945fc8c7db 100644 --- a/src/org/smssecure/smssecure/GroupCreateActivity.java +++ b/src/org/smssecure/smssecure/GroupCreateActivity.java @@ -20,7 +20,6 @@ package org.smssecure.smssecure; 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 android.support.annotation.NonNull; @@ -36,7 +35,6 @@ import org.smssecure.smssecure.components.PushRecipientsPanel; import org.smssecure.smssecure.contacts.RecipientsEditor; import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.database.DatabaseFactory; -import org.smssecure.smssecure.database.NotInDirectoryException; import org.smssecure.smssecure.database.ThreadDatabase; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.RecipientFactory; @@ -47,7 +45,6 @@ import org.smssecure.smssecure.util.InvalidNumberException; import org.smssecure.smssecure.util.SelectedRecipientsAdapter; import org.smssecure.smssecure.util.Util; -import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -236,9 +233,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity { private static ArrayList setToArrayList(Set set) { ArrayList arrayList = new ArrayList(set.size()); - for (T item : set) { - arrayList.add(item); - } + arrayList.addAll(set); return arrayList; } diff --git a/src/org/smssecure/smssecure/GroupMembersDialog.java b/src/org/smssecure/smssecure/GroupMembersDialog.java index f7425cec48621e5001f53857cf2d17bc1d7b6a9d..7f133a4c11668a7cec64294035dcd85a5fab14cc 100644 --- a/src/org/smssecure/smssecure/GroupMembersDialog.java +++ b/src/org/smssecure/smssecure/GroupMembersDialog.java @@ -9,7 +9,6 @@ import android.support.v7.app.AlertDialog; import android.util.Log; import org.smssecure.smssecure.recipients.Recipient; -import org.smssecure.smssecure.recipients.RecipientFactory; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.util.InvalidNumberException; import org.smssecure.smssecure.util.SilencePreferences; diff --git a/src/org/smssecure/smssecure/IntroScreenActivity.java b/src/org/smssecure/smssecure/IntroScreenActivity.java index 1a288e31aecd71ca6aec61f7d8984b46696c82a2..555446a377fedc94b49fe1a38e97053f2a9c8dd8 100644 --- a/src/org/smssecure/smssecure/IntroScreenActivity.java +++ b/src/org/smssecure/smssecure/IntroScreenActivity.java @@ -11,7 +11,6 @@ import android.os.Build; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.annotation.StringRes; import android.support.v4.app.NotificationCompat; import android.support.v4.view.ViewPager; import android.util.Log; @@ -24,7 +23,6 @@ import com.nineoldandroids.animation.ArgbEvaluator; import org.smssecure.smssecure.IntroPagerAdapter.IntroPage; import org.smssecure.smssecure.util.ServiceUtil; import org.smssecure.smssecure.util.SilencePreferences; -import org.smssecure.smssecure.util.Util; import org.smssecure.smssecure.util.ViewUtil; import org.whispersystems.libsignal.util.guava.Optional; diff --git a/src/org/smssecure/smssecure/KeyScanningActivity.java b/src/org/smssecure/smssecure/KeyScanningActivity.java index 07600c232dec0390825da775276fdf509e7a3f07..3685666f1abfbaf04d06bd25d171139b8d057c1e 100644 --- a/src/org/smssecure/smssecure/KeyScanningActivity.java +++ b/src/org/smssecure/smssecure/KeyScanningActivity.java @@ -17,7 +17,6 @@ package org.smssecure.smssecure; import android.content.Intent; -import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -26,7 +25,6 @@ import android.widget.Toast; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; -import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.util.Base64; import org.smssecure.smssecure.util.Dialogs; import org.smssecure.smssecure.util.DynamicLanguage; @@ -127,6 +125,7 @@ public abstract class KeyScanningActivity extends PassphraseRequiredActionBarAct Toast.makeText(this, R.string.VerifyIdentityActivity_you_do_not_have_an_identity_key, Toast.LENGTH_LONG).show(); } + } protected void initiateShare() { diff --git a/src/org/smssecure/smssecure/LogSubmitActivity.java b/src/org/smssecure/smssecure/LogSubmitActivity.java index 3ea70b1ef308e91f16a48d2912bf89b6cb3bdd2a..144a77163108a61e84df0089f7a0419b0a4a420c 100644 --- a/src/org/smssecure/smssecure/LogSubmitActivity.java +++ b/src/org/smssecure/smssecure/LogSubmitActivity.java @@ -2,7 +2,6 @@ package org.smssecure.smssecure; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; -import android.support.v7.app.ActionBarActivity; import android.view.MenuItem; import android.widget.Toast; diff --git a/src/org/smssecure/smssecure/MessageDetailsActivity.java b/src/org/smssecure/smssecure/MessageDetailsActivity.java index d4c05bba904b82ef7cb4bcba36ca6209d389ac60..dd3145b7f85b5836b2fa6c23f8a74979746c3ac2 100644 --- a/src/org/smssecure/smssecure/MessageDetailsActivity.java +++ b/src/org/smssecure/smssecure/MessageDetailsActivity.java @@ -43,7 +43,6 @@ import org.smssecure.smssecure.database.SmsDatabase; import org.smssecure.smssecure.database.loaders.MessageDetailsLoader; import org.smssecure.smssecure.database.model.MessageRecord; import org.smssecure.smssecure.notifications.MessageNotifier; -import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.RecipientFactory; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.util.DateUtils; @@ -52,12 +51,10 @@ import org.smssecure.smssecure.util.DynamicTheme; import org.smssecure.smssecure.util.SilencePreferences; import org.smssecure.smssecure.util.Util; -import java.io.IOException; import java.lang.ref.WeakReference; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.HashSet; -import java.util.LinkedList; import java.util.Locale; /** diff --git a/src/org/smssecure/smssecure/MessageRecipientListItem.java b/src/org/smssecure/smssecure/MessageRecipientListItem.java index 3d110265008886cf58453b88c1431548acbc771c..d489b66410530909dba7ea91d8b7470acbcd43c8 100644 --- a/src/org/smssecure/smssecure/MessageRecipientListItem.java +++ b/src/org/smssecure/smssecure/MessageRecipientListItem.java @@ -66,6 +66,7 @@ public class MessageRecipientListItem extends RelativeLayout @Override protected void onFinishInflate() { + super.onFinishInflate(); this.fromView = (FromTextView) findViewById(R.id.from); this.errorDescription = (TextView) findViewById(R.id.error_description); this.contactPhotoImage = (AvatarImageView) findViewById(R.id.contact_photo_image); diff --git a/src/org/smssecure/smssecure/NewConversationActivity.java b/src/org/smssecure/smssecure/NewConversationActivity.java index 8b144ad0968db13161d3ed5b69d5175522a04de3..5792a252ba9a55cdea452d41b123123895e48df8 100644 --- a/src/org/smssecure/smssecure/NewConversationActivity.java +++ b/src/org/smssecure/smssecure/NewConversationActivity.java @@ -19,7 +19,6 @@ package org.smssecure.smssecure; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; -import android.view.View; import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.database.DatabaseFactory; diff --git a/src/org/smssecure/smssecure/PassphraseRequiredActionBarActivity.java b/src/org/smssecure/smssecure/PassphraseRequiredActionBarActivity.java index cf82dd53a3d7b3bc27f3210189bf14667055d7b1..2cfd3c727998be3f437074d683350eaad870dd42 100644 --- a/src/org/smssecure/smssecure/PassphraseRequiredActionBarActivity.java +++ b/src/org/smssecure/smssecure/PassphraseRequiredActionBarActivity.java @@ -4,14 +4,12 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.os.Build; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; -import android.view.WindowManager; import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.crypto.MasterSecretUtil; diff --git a/src/org/smssecure/smssecure/PushContactSelectionActivity.java b/src/org/smssecure/smssecure/PushContactSelectionActivity.java index f370d6850f5a5bfb3ef924e55c810d1e78933cb0..aff94d222fcb5f1482a4abe77306e8d07ad60c56 100644 --- a/src/org/smssecure/smssecure/PushContactSelectionActivity.java +++ b/src/org/smssecure/smssecure/PushContactSelectionActivity.java @@ -19,16 +19,9 @@ package org.smssecure.smssecure; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import org.smssecure.smssecure.crypto.MasterSecret; -import org.smssecure.smssecure.util.DynamicLanguage; -import org.smssecure.smssecure.util.DynamicNoActionBarTheme; -import org.smssecure.smssecure.util.DynamicTheme; -import org.smssecure.smssecure.util.SilencePreferences; import java.util.ArrayList; import java.util.List; diff --git a/src/org/smssecure/smssecure/ReceiveKeyDialog.java b/src/org/smssecure/smssecure/ReceiveKeyDialog.java index cec56b428dac1a8287828c636b521ad787d8cb62..0d07955e4cd9c885b189be90c5dbfedf8f8a2146 100644 --- a/src/org/smssecure/smssecure/ReceiveKeyDialog.java +++ b/src/org/smssecure/smssecure/ReceiveKeyDialog.java @@ -52,7 +52,6 @@ import org.whispersystems.libsignal.InvalidVersionException; import org.whispersystems.libsignal.LegacyMessageException; import org.whispersystems.libsignal.protocol.PreKeySignalMessage; import org.whispersystems.libsignal.state.IdentityKeyStore; -import org.whispersystems.libsignal.util.guava.Optional; import java.io.IOException; diff --git a/src/org/smssecure/smssecure/ShareListItem.java b/src/org/smssecure/smssecure/ShareListItem.java index a70c49d157a6a8f3a64a87bfdac24d9c2c5ddb3c..a6c0d308cb9ebb18592e2c90d3c1fb95ec872a03 100644 --- a/src/org/smssecure/smssecure/ShareListItem.java +++ b/src/org/smssecure/smssecure/ShareListItem.java @@ -59,7 +59,8 @@ public class ShareListItem extends RelativeLayout @Override protected void onFinishInflate() { - this.fromView = (FromTextView) findViewById(R.id.from); + super.onFinishInflate(); + this.fromView = (FromTextView) findViewById(R.id.from); this.contactPhotoImage = (AvatarImageView) findViewById(R.id.contact_photo_image); } diff --git a/src/org/smssecure/smssecure/TransportOption.java b/src/org/smssecure/smssecure/TransportOption.java index 68a63470722f643a43b24cab447909baeda4cb54..43ad0cb1e5149cfcc2250509b17b98fe113dc1a3 100644 --- a/src/org/smssecure/smssecure/TransportOption.java +++ b/src/org/smssecure/smssecure/TransportOption.java @@ -5,8 +5,6 @@ import android.support.annotation.NonNull; import org.smssecure.smssecure.util.CharacterCalculator; import org.smssecure.smssecure.util.CharacterCalculator.CharacterState; -import org.smssecure.smssecure.util.EncryptedSmsCharacterCalculator; -import org.smssecure.smssecure.util.SmsCharacterCalculator; import org.whispersystems.libsignal.util.guava.Optional; public class TransportOption { diff --git a/src/org/smssecure/smssecure/attachments/AttachmentId.java b/src/org/smssecure/smssecure/attachments/AttachmentId.java index afce894fe911e7bb5470702057cc0a8a4c4653d2..f3faad336d67618420f248801faa14d59d509630 100644 --- a/src/org/smssecure/smssecure/attachments/AttachmentId.java +++ b/src/org/smssecure/smssecure/attachments/AttachmentId.java @@ -37,10 +37,9 @@ public class AttachmentId { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - AttachmentId attachmentId = (AttachmentId)o; + AttachmentId attachmentId = (AttachmentId) o; - if (rowId != attachmentId.rowId) return false; - return uniqueId == attachmentId.uniqueId; + return rowId == attachmentId.rowId && uniqueId == attachmentId.uniqueId; } @Override diff --git a/src/org/smssecure/smssecure/attachments/AttachmentServer.java b/src/org/smssecure/smssecure/attachments/AttachmentServer.java index 58e56693a1611eae891d7db1b2eb548361fafe07..7e560c96380f2e673f09b17c8b882b74191e345a 100644 --- a/src/org/smssecure/smssecure/attachments/AttachmentServer.java +++ b/src/org/smssecure/smssecure/attachments/AttachmentServer.java @@ -348,7 +348,7 @@ public class AttachmentServer implements Runnable { */ private String decodePercent(String str) throws InterruptedException { try { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); switch (c) { diff --git a/src/org/smssecure/smssecure/attachments/UriAttachment.java b/src/org/smssecure/smssecure/attachments/UriAttachment.java index 2bafb9731cf6efed7321c51fff28d102244d5d21..f9227edeaaa91382740a184f9780746200159e4e 100644 --- a/src/org/smssecure/smssecure/attachments/UriAttachment.java +++ b/src/org/smssecure/smssecure/attachments/UriAttachment.java @@ -1,16 +1,8 @@ package org.smssecure.smssecure.attachments; -import android.content.Context; import android.net.Uri; import android.support.annotation.NonNull; -import org.smssecure.smssecure.crypto.MasterSecret; -import org.smssecure.smssecure.util.MediaUtil; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.io.IOException; -import java.io.InputStream; - public class UriAttachment extends Attachment { private final @NonNull Uri dataUri; diff --git a/src/org/smssecure/smssecure/components/CustomDefaultPreference.java b/src/org/smssecure/smssecure/components/CustomDefaultPreference.java index 044f31ecd2f4fedc903100791e5250b75062c283..4fc268d3fc62601d6c09123d6783b77198d5ee3c 100644 --- a/src/org/smssecure/smssecure/components/CustomDefaultPreference.java +++ b/src/org/smssecure/smssecure/components/CustomDefaultPreference.java @@ -10,7 +10,6 @@ import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.util.AttributeSet; -import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.Button; diff --git a/src/org/smssecure/smssecure/components/FromTextView.java b/src/org/smssecure/smssecure/components/FromTextView.java index 1078f04b0ffa11ea7bf3219931453fc94cbc3117..22e74cd24a4e2389290ad8be422add970ccb8fc4 100644 --- a/src/org/smssecure/smssecure/components/FromTextView.java +++ b/src/org/smssecure/smssecure/components/FromTextView.java @@ -3,13 +3,11 @@ package org.smssecure.smssecure.components; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; -import android.graphics.drawable.Drawable; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.StyleSpan; import android.util.AttributeSet; -import android.util.Log; import org.smssecure.smssecure.R; import org.smssecure.smssecure.components.emoji.EmojiTextView; diff --git a/src/org/smssecure/smssecure/components/PushRecipientsPanel.java b/src/org/smssecure/smssecure/components/PushRecipientsPanel.java index 0302a236e0fe788f1b13eb0e54baf02df9be957c..8c2a3fb2f3988433db0be82ba05d09bc242ec80b 100644 --- a/src/org/smssecure/smssecure/components/PushRecipientsPanel.java +++ b/src/org/smssecure/smssecure/components/PushRecipientsPanel.java @@ -19,17 +19,12 @@ package org.smssecure.smssecure.components; import android.content.Context; import android.os.Build; import android.util.AttributeSet; -import android.util.Log; -import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; -import android.widget.AutoCompleteTextView; import android.widget.RelativeLayout; -import android.widget.TextView; import org.smssecure.smssecure.R; -import org.smssecure.smssecure.contacts.ContactAccessor; import org.smssecure.smssecure.contacts.RecipientsAdapter; import org.smssecure.smssecure.contacts.RecipientsEditor; import org.smssecure.smssecure.recipients.Recipient; @@ -38,11 +33,9 @@ import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.recipients.Recipients.RecipientsModifiedListener; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.Set; /** * Panel component combining both an editable field with a button for @@ -81,10 +74,8 @@ public class PushRecipientsPanel extends RelativeLayout implements RecipientsMod public void addRecipients(Recipients recipients) { List recipientList = recipients.getRecipientsList(); - Iterator iterator = recipientList.iterator(); - while (iterator.hasNext()) { - Recipient recipient = iterator.next(); + for (Recipient recipient : recipientList) { addRecipient(recipient.getName(), recipient.getNumber()); } } diff --git a/src/org/smssecure/smssecure/components/RepeatableImageKey.java b/src/org/smssecure/smssecure/components/RepeatableImageKey.java index a3ec89eed80538f74966d04712d5c463cb9b4527..25c534f820813f834dbd23b42a4d0838e8696497 100644 --- a/src/org/smssecure/smssecure/components/RepeatableImageKey.java +++ b/src/org/smssecure/smssecure/components/RepeatableImageKey.java @@ -6,11 +6,9 @@ import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.util.AttributeSet; import android.view.HapticFeedbackConstants; -import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; -import android.widget.EditText; import android.widget.ImageButton; public class RepeatableImageKey extends ImageButton { diff --git a/src/org/smssecure/smssecure/components/SingleRecipientPanel.java b/src/org/smssecure/smssecure/components/SingleRecipientPanel.java index 761b4bf8e9a7c1df11b1b6d2bd1ff38fe1d8e4fc..3ba5127c4bba9853d2cdf5388fd8046758aa42c8 100644 --- a/src/org/smssecure/smssecure/components/SingleRecipientPanel.java +++ b/src/org/smssecure/smssecure/components/SingleRecipientPanel.java @@ -76,12 +76,10 @@ public class SingleRecipientPanel extends RelativeLayout implements RecipientsMo public void addRecipients(Recipients recipients) { List recipientList = recipients.getRecipientsList(); - Iterator iterator = recipientList.iterator(); - while (iterator.hasNext()) { - Recipient recipient = iterator.next(); - addRecipient(recipient.getName(), recipient.getNumber()); - } + for (Recipient recipient : recipientList) { + addRecipient(recipient.getName(), recipient.getNumber()); + } } public void addContacts(List contacts) { diff --git a/src/org/smssecure/smssecure/components/ZoomingImageView.java b/src/org/smssecure/smssecure/components/ZoomingImageView.java index f82bf488279b23d991ea112aad369641d4e7fd0f..9a89cbb5f70637896fb04592f5d281d4d57f7d21 100644 --- a/src/org/smssecure/smssecure/components/ZoomingImageView.java +++ b/src/org/smssecure/smssecure/components/ZoomingImageView.java @@ -1,7 +1,6 @@ package org.smssecure.smssecure.components; import android.content.Context; -import android.graphics.Canvas; import android.net.Uri; import android.os.AsyncTask; import android.support.annotation.Nullable; @@ -15,9 +14,7 @@ import android.widget.ImageView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.drawable.GlideDrawable; -import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.GlideDrawableImageViewTarget; -import com.bumptech.glide.request.target.Target; import com.davemorrissey.labs.subscaleview.ImageSource; import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView; diff --git a/src/org/smssecure/smssecure/components/reminder/Reminder.java b/src/org/smssecure/smssecure/components/reminder/Reminder.java index 71ca5f029c18d2c1b8a40963c153464b0fb722ab..cfd18fadd1c5835487ba6c5e12f96713d5b70044 100644 --- a/src/org/smssecure/smssecure/components/reminder/Reminder.java +++ b/src/org/smssecure/smssecure/components/reminder/Reminder.java @@ -1,8 +1,6 @@ package org.smssecure.smssecure.components.reminder; -import android.content.Context; import android.support.annotation.NonNull; -import android.support.annotation.StringRes; import android.view.View.OnClickListener; public abstract class Reminder { diff --git a/src/org/smssecure/smssecure/components/subsampling/AttachmentBitmapDecoder.java b/src/org/smssecure/smssecure/components/subsampling/AttachmentBitmapDecoder.java index 05c4d49eb332d616ea8ecbabfd9d0b4a88291dc7..41c83fe6c48e372ab7ba8a7e3d213477b1ac33ad 100644 --- a/src/org/smssecure/smssecure/components/subsampling/AttachmentBitmapDecoder.java +++ b/src/org/smssecure/smssecure/components/subsampling/AttachmentBitmapDecoder.java @@ -4,7 +4,6 @@ package org.smssecure.smssecure.components.subsampling; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.graphics.Rect; import android.net.Uri; import com.davemorrissey.labs.subscaleview.decoder.ImageDecoder; diff --git a/src/org/smssecure/smssecure/contacts/ArrayListCursor.java b/src/org/smssecure/smssecure/contacts/ArrayListCursor.java index 4f76eae5df817a735aebaf2fe8c889cc0fc3ddf0..7edbc45334c40d849e7a6280015e3c9838e30e3b 100644 --- a/src/org/smssecure/smssecure/contacts/ArrayListCursor.java +++ b/src/org/smssecure/smssecure/contacts/ArrayListCursor.java @@ -34,8 +34,8 @@ public class ArrayListCursor extends AbstractCursor { int colCount = columnNames.length; boolean foundID = false; // Add an _id column if not in columnNames - for (int i = 0; i < colCount; ++i) { - if (columnNames[i].compareToIgnoreCase("_id") == 0) { + for (String columnName : columnNames) { + if (columnName.compareToIgnoreCase("_id") == 0) { mColumnNames = columnNames; foundID = true; break; diff --git a/src/org/smssecure/smssecure/contacts/ContactAccessor.java b/src/org/smssecure/smssecure/contacts/ContactAccessor.java index d92f140fe337458bf450cd4963f17d1851f1f397..8b95c397c6f3c56e70dedf280b074db33f543cee 100644 --- a/src/org/smssecure/smssecure/contacts/ContactAccessor.java +++ b/src/org/smssecure/smssecure/contacts/ContactAccessor.java @@ -25,13 +25,9 @@ import android.os.Parcel; import android.os.Parcelable; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; -import android.provider.ContactsContract.PhoneLookup; import android.telephony.PhoneNumberUtils; -import org.smssecure.smssecure.database.DatabaseFactory; - import java.util.ArrayList; -import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -258,9 +254,9 @@ public class ContactAccessor { if (phone.length() > 0) { ArrayList result = new ArrayList(); - result.add(Integer.valueOf(-1)); // ID - result.add(Long.valueOf(-1)); // CONTACT_ID - result.add(Integer.valueOf(Phone.TYPE_CUSTOM)); // TYPE + result.add(-1); // ID + result.add((long) -1); // CONTACT_ID + result.add(Phone.TYPE_CUSTOM); // TYPE result.add(phone); // NUMBER /* diff --git a/src/org/smssecure/smssecure/contacts/ContactSelectionListAdapter.java b/src/org/smssecure/smssecure/contacts/ContactSelectionListAdapter.java index efb57f797e649bbb15111e9fc03dde1fbfd16865..8c22c27b702e39f5be54337ab983e1467aa03e99 100644 --- a/src/org/smssecure/smssecure/contacts/ContactSelectionListAdapter.java +++ b/src/org/smssecure/smssecure/contacts/ContactSelectionListAdapter.java @@ -20,14 +20,10 @@ import android.content.Context; import android.content.res.TypedArray; import android.database.Cursor; import android.provider.ContactsContract; -import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; -import android.text.SpannableString; -import android.text.Spanned; import android.text.TextUtils; -import android.text.style.ImageSpan; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; diff --git a/src/org/smssecure/smssecure/contacts/ContactsCursorLoader.java b/src/org/smssecure/smssecure/contacts/ContactsCursorLoader.java index fb6102b97dc7645b26f1d21428437ed2d734ed33..eaeed81ab44f200694adea8ac74ee3d21fb44efb 100644 --- a/src/org/smssecure/smssecure/contacts/ContactsCursorLoader.java +++ b/src/org/smssecure/smssecure/contacts/ContactsCursorLoader.java @@ -21,7 +21,6 @@ import android.database.Cursor; import android.database.MergeCursor; import android.support.v4.content.CursorLoader; import android.text.TextUtils; -import android.util.Log; import org.smssecure.smssecure.database.DatabaseFactory; import org.smssecure.smssecure.util.NumberUtil; diff --git a/src/org/smssecure/smssecure/contacts/ContactsDatabase.java b/src/org/smssecure/smssecure/contacts/ContactsDatabase.java index 407885583b77ca7659e592d25ef978be5decd859..35368f52ab4884f59e073e26b6068b83da4cc6fc 100644 --- a/src/org/smssecure/smssecure/contacts/ContactsDatabase.java +++ b/src/org/smssecure/smssecure/contacts/ContactsDatabase.java @@ -30,9 +30,7 @@ import android.util.Pair; import org.smssecure.smssecure.R; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; /** diff --git a/src/org/smssecure/smssecure/contacts/RecipientsEditor.java b/src/org/smssecure/smssecure/contacts/RecipientsEditor.java index 9aebf37fcbdf32f3208420d73347569c6e90f2a2..9cbcaaee7b89e04da940044e4990d3840730902f 100644 --- a/src/org/smssecure/smssecure/contacts/RecipientsEditor.java +++ b/src/org/smssecure/smssecure/contacts/RecipientsEditor.java @@ -30,7 +30,6 @@ import android.text.Spanned; import android.text.TextUtils; import android.text.TextWatcher; import android.util.AttributeSet; -import android.util.Log; import android.view.ContextMenu.ContextMenuInfo; import android.view.MotionEvent; import android.view.inputmethod.EditorInfo; @@ -38,7 +37,6 @@ import android.widget.MultiAutoCompleteTextView; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.RecipientFactory; -import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.recipients.RecipientsFormatter; @@ -232,9 +230,8 @@ public class RecipientsEditor extends AppCompatMultiAutoCompleteTextView { } int line = layout.getLineForVertical(y); - int off = layout.getOffsetForHorizontal(line, x); - return off; + return layout.getOffsetForHorizontal(line, x); } @Override @@ -280,9 +277,9 @@ public class RecipientsEditor extends AppCompatMultiAutoCompleteTextView { } private static String getAnnotation(Annotation[] a, String key) { - for (int i = 0; i < a.length; i++) { - if (a[i].getKey().equals(key)) { - return a[i].getValue(); + for (Annotation anA : a) { + if (anA.getKey().equals(key)) { + return anA.getValue(); } } diff --git a/src/org/smssecure/smssecure/contacts/avatars/ContactPhotoFactory.java b/src/org/smssecure/smssecure/contacts/avatars/ContactPhotoFactory.java index 8f032394728a0848311d77c109e3cfe8472a6d6e..84b3392e8db35750efa924856c35e3b9f1fd692a 100644 --- a/src/org/smssecure/smssecure/contacts/avatars/ContactPhotoFactory.java +++ b/src/org/smssecure/smssecure/contacts/avatars/ContactPhotoFactory.java @@ -5,7 +5,6 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; diff --git a/src/org/smssecure/smssecure/contacts/avatars/GeneratedContactPhoto.java b/src/org/smssecure/smssecure/contacts/avatars/GeneratedContactPhoto.java index 95a3a08b468a5660a7646c0351e015d4b0d449d9..15fabeea74d7e00e46f7aac32f9a8a2bd781b327 100644 --- a/src/org/smssecure/smssecure/contacts/avatars/GeneratedContactPhoto.java +++ b/src/org/smssecure/smssecure/contacts/avatars/GeneratedContactPhoto.java @@ -4,7 +4,6 @@ import android.content.Context; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; import com.amulyakhare.textdrawable.TextDrawable; diff --git a/src/org/smssecure/smssecure/contacts/avatars/ResourceContactPhoto.java b/src/org/smssecure/smssecure/contacts/avatars/ResourceContactPhoto.java index 1708fd9c631535e870acf2663a598e6b5537c541..0b7d78a8e7cd18af28f9824289596748232594d5 100644 --- a/src/org/smssecure/smssecure/contacts/avatars/ResourceContactPhoto.java +++ b/src/org/smssecure/smssecure/contacts/avatars/ResourceContactPhoto.java @@ -2,12 +2,10 @@ package org.smssecure.smssecure.contacts.avatars; import android.content.Context; import android.graphics.Color; -import android.graphics.ColorFilter; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.support.annotation.DrawableRes; -import android.support.v4.graphics.ColorUtils; import android.widget.ImageView; import com.amulyakhare.textdrawable.TextDrawable; diff --git a/src/org/smssecure/smssecure/crypto/KeyExchangeInitiator.java b/src/org/smssecure/smssecure/crypto/KeyExchangeInitiator.java index 3aa5d973860a3ed6f8e4411b555da742b6fc85ce..191ff91261fc9ee632fdecb4d753e545669884b3 100644 --- a/src/org/smssecure/smssecure/crypto/KeyExchangeInitiator.java +++ b/src/org/smssecure/smssecure/crypto/KeyExchangeInitiator.java @@ -32,14 +32,12 @@ import org.smssecure.smssecure.crypto.storage.SilencePreKeyStore; import org.smssecure.smssecure.crypto.storage.SilenceSessionStore; import org.smssecure.smssecure.protocol.KeyExchangeMessage; import org.smssecure.smssecure.recipients.Recipient; -import org.smssecure.smssecure.recipients.RecipientFactory; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.sms.MessageSender; import org.smssecure.smssecure.sms.OutgoingEndSessionMessage; import org.smssecure.smssecure.sms.OutgoingKeyExchangeMessage; import org.smssecure.smssecure.sms.OutgoingTextMessage; import org.smssecure.smssecure.util.Base64; -import org.smssecure.smssecure.util.ResUtil; import org.whispersystems.libsignal.SignalProtocolAddress; import org.whispersystems.libsignal.state.IdentityKeyStore; import org.whispersystems.libsignal.state.PreKeyStore; diff --git a/src/org/smssecure/smssecure/crypto/MasterCipher.java b/src/org/smssecure/smssecure/crypto/MasterCipher.java index b0e73f9bfc4ecc7322206f1e459bbc3ff2ff33ae..a403b288275dbf7ec4017077b77f6ade6ab488e5 100644 --- a/src/org/smssecure/smssecure/crypto/MasterCipher.java +++ b/src/org/smssecure/smssecure/crypto/MasterCipher.java @@ -99,9 +99,8 @@ public class MasterCipher { byte[] encryptedBody = verifyMacBody(mac, decodedBody); Cipher cipher = getDecryptingCipher(masterSecret.getEncryptionKey(), encryptedBody); - byte[] encrypted = getDecryptedBody(cipher, encryptedBody); - return encrypted; + return getDecryptedBody(cipher, encryptedBody); } catch (GeneralSecurityException ge) { throw new InvalidMessageException(ge); } @@ -113,9 +112,8 @@ public class MasterCipher { Mac mac = getMac(masterSecret.getMacKey()); byte[] encryptedBody = getEncryptedBody(cipher, body); - byte[] encryptedAndMacBody = getMacBody(mac, encryptedBody); - return encryptedAndMacBody; + return getMacBody(mac, encryptedBody); } catch (GeneralSecurityException ge) { Log.w("bodycipher", ge); return null; diff --git a/src/org/smssecure/smssecure/crypto/SessionBuilder.java b/src/org/smssecure/smssecure/crypto/SessionBuilder.java index 222310e62c548a463d68de0842c1421c326cfa57..e66284f333deb9ecc325f4c343455bdb4e6cbef3 100644 --- a/src/org/smssecure/smssecure/crypto/SessionBuilder.java +++ b/src/org/smssecure/smssecure/crypto/SessionBuilder.java @@ -74,7 +74,7 @@ public class SessionBuilder { /** * Build a new session from a received {@link PreKeySignalMessage}. * - * After a session is constructed in this way, the embedded {@link SignalMessage} + * After a session is constructed in this way, the embedded {@link PreKeySignalMessage} * can be decrypted. * * @param message The received {@link PreKeySignalMessage}. @@ -200,7 +200,7 @@ public class SessionBuilder { } /** - * Build a new session from a {@link org.whispersystems.libsignal.protocol.KeyExchangeMessage} + * Build a new session from a {@link org.whispersystems.libsignal.protocol.SignalProtos.KeyExchangeMessage} * received from a remote client. * * @param message The received KeyExchangeMessage. diff --git a/src/org/smssecure/smssecure/crypto/SessionUtil.java b/src/org/smssecure/smssecure/crypto/SessionUtil.java index 8613a2d259c86b18a552509c8011cc32ecef2a78..f8920b95f420071e44d3513d2d7337cfae763144 100644 --- a/src/org/smssecure/smssecure/crypto/SessionUtil.java +++ b/src/org/smssecure/smssecure/crypto/SessionUtil.java @@ -6,6 +6,7 @@ import android.support.annotation.NonNull; import android.os.Build; import org.smssecure.smssecure.crypto.storage.SilenceSessionStore; +import org.smssecure.smssecure.util.dualsim.SubscriptionInfoCompat; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.util.dualsim.SubscriptionInfoCompat; import org.smssecure.smssecure.util.dualsim.SubscriptionManagerCompat; diff --git a/src/org/smssecure/smssecure/crypto/SmsCipher.java b/src/org/smssecure/smssecure/crypto/SmsCipher.java index 81ba7ee926daa80d263d00287cc21d406eff1c18..f83ed3eea1e3e8496b16cce91ce8e17c9cd42254 100644 --- a/src/org/smssecure/smssecure/crypto/SmsCipher.java +++ b/src/org/smssecure/smssecure/crypto/SmsCipher.java @@ -2,9 +2,7 @@ package org.smssecure.smssecure.crypto; import android.content.Context; -import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.RecipientFactory; -import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.sms.IncomingEncryptedMessage; import org.smssecure.smssecure.sms.IncomingKeyExchangeMessage; diff --git a/src/org/smssecure/smssecure/database/CanonicalAddressDatabase.java b/src/org/smssecure/smssecure/database/CanonicalAddressDatabase.java index d92a9e1956fa88b4c30886dbd592ca1f9ddf9511..d2447bd9e7572629a379505c0b63e2f8b1140996 100644 --- a/src/org/smssecure/smssecure/database/CanonicalAddressDatabase.java +++ b/src/org/smssecure/smssecure/database/CanonicalAddressDatabase.java @@ -230,14 +230,13 @@ public class CanonicalAddressDatabase { @VisibleForTesting static boolean isNumberAddress(@NonNull String number) { - if (number.contains("@")) return false; + if (number.contains("@")) return false; - final String networkNumber = PhoneNumberUtils.extractNetworkPortion(number); + final String networkNumber = PhoneNumberUtils.extractNetworkPortion(number); - if (TextUtils.isEmpty(networkNumber)) return false; - if (networkNumber.length() < 3) return false; + if (TextUtils.isEmpty(networkNumber)) return false; + return networkNumber.length() >= 3 && PhoneNumberUtils.isWellFormedSmsAddress(number); - return PhoneNumberUtils.isWellFormedSmsAddress(number); } private static class DatabaseHelper extends SQLiteOpenHelper { diff --git a/src/org/smssecure/smssecure/database/CanonicalSessionMigrator.java b/src/org/smssecure/smssecure/database/CanonicalSessionMigrator.java index 529eaa101eee38bfd765b8285a5a2b4b3510db59..9035ad78982caec4674fe345b6f8b28e8f302b3a 100644 --- a/src/org/smssecure/smssecure/database/CanonicalSessionMigrator.java +++ b/src/org/smssecure/smssecure/database/CanonicalSessionMigrator.java @@ -55,14 +55,14 @@ public class CanonicalSessionMigrator { String[] files = rootDirectory.list(); - for (int i=0;i threadIds) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); - String where = ""; + StringBuilder where = new StringBuilder(); Cursor cursor = null; for (long threadId : threadIds) { - where += THREAD_ID + " = '" + threadId + "' OR "; + where.append(THREAD_ID + " = '").append(threadId).append("' OR "); } - where = where.substring(0, where.length() - 4); + where = new StringBuilder(where.substring(0, where.length() - 4)); try { - cursor = db.query(TABLE_NAME, new String[] {ID}, where, null, null, null, null); + cursor = db.query(TABLE_NAME, new String[] {ID}, where.toString(), null, null, null, null); while (cursor != null && cursor.moveToNext()) { delete(cursor.getLong(0)); @@ -780,16 +775,16 @@ public class MmsDatabase extends MessagingDatabase { try { SQLiteDatabase db = databaseHelper.getReadableDatabase(); - String where = THREAD_ID + " = ? AND (CASE (" + MESSAGE_BOX + " & " + Types.BASE_TYPE_MASK + ") "; + StringBuilder where = new StringBuilder(THREAD_ID + " = ? AND (CASE (" + MESSAGE_BOX + " & " + Types.BASE_TYPE_MASK + ") "); for (long outgoingType : Types.OUTGOING_MESSAGE_TYPES) { - where += " WHEN " + outgoingType + " THEN " + DATE_SENT + " < " + date; + where.append(" WHEN ").append(outgoingType).append(" THEN ").append(DATE_SENT).append(" < ").append(date); } - where += (" ELSE " + DATE_RECEIVED + " < " + date + " END)"); + where.append(" ELSE " + DATE_RECEIVED + " < ").append(date).append(" END)"); Log.w("MmsDatabase", "Executing trim query: " + where); - cursor = db.query(TABLE_NAME, new String[] {ID}, where, new String[] {threadId+""}, null, null, null); + cursor = db.query(TABLE_NAME, new String[] {ID}, where.toString(), new String[] {threadId+""}, null, null, null); while (cursor != null && cursor.moveToNext()) { Log.w("MmsDatabase", "Trimming: " + cursor.getLong(0)); diff --git a/src/org/smssecure/smssecure/database/PlaintextBackupImporter.java b/src/org/smssecure/smssecure/database/PlaintextBackupImporter.java index dbc931e1614886fddf6c4f521da3b9bb67b69f04..d76ad44491f57c03d3c1b86f72ac6c41de168c9b 100644 --- a/src/org/smssecure/smssecure/database/PlaintextBackupImporter.java +++ b/src/org/smssecure/smssecure/database/PlaintextBackupImporter.java @@ -9,7 +9,6 @@ import android.util.Log; import org.smssecure.smssecure.crypto.MasterCipher; import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.recipients.RecipientFactory; -import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import org.xmlpull.v1.XmlPullParserException; diff --git a/src/org/smssecure/smssecure/database/SmsDatabase.java b/src/org/smssecure/smssecure/database/SmsDatabase.java index 62b571564fc31792c59a923653b335de8d82535a..9c6bbc850887ae4d6a9da9dbf5882cde3fad7402 100644 --- a/src/org/smssecure/smssecure/database/SmsDatabase.java +++ b/src/org/smssecure/smssecure/database/SmsDatabase.java @@ -35,12 +35,10 @@ import org.smssecure.smssecure.database.model.SmsMessageRecord; import org.smssecure.smssecure.jobs.TrimThreadJob; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.RecipientFactory; -import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import org.smssecure.smssecure.sms.IncomingKeyExchangeMessage; import org.smssecure.smssecure.sms.IncomingTextMessage; import org.smssecure.smssecure.sms.OutgoingTextMessage; -import org.smssecure.smssecure.util.InvalidNumberException; import org.smssecure.smssecure.util.JsonUtils; import org.whispersystems.jobqueue.JobManager; @@ -49,8 +47,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; -import static org.smssecure.smssecure.util.Util.canonicalizeNumber; - /** * Database for storage of SMS messages. * @@ -512,28 +508,28 @@ public class SmsDatabase extends MessagingDatabase { /*package*/void deleteMessagesInThreadBeforeDate(long threadId, long date) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); - String where = THREAD_ID + " = ? AND (CASE " + TYPE; + StringBuilder where = new StringBuilder(THREAD_ID + " = ? AND (CASE " + TYPE); for (long outgoingType : Types.OUTGOING_MESSAGE_TYPES) { - where += " WHEN " + outgoingType + " THEN " + DATE_SENT + " < " + date; + where.append(" WHEN ").append(outgoingType).append(" THEN ").append(DATE_SENT).append(" < ").append(date); } - where += (" ELSE " + DATE_RECEIVED + " < " + date + " END)"); + where.append(" ELSE " + DATE_RECEIVED + " < ").append(date).append(" END)"); - db.delete(TABLE_NAME, where, new String[] {threadId + ""}); + db.delete(TABLE_NAME, where.toString(), new String[] {threadId + ""}); } /*package*/ void deleteThreads(Set threadIds) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); - String where = ""; + StringBuilder where = new StringBuilder(); for (long threadId : threadIds) { - where += THREAD_ID + " = '" + threadId + "' OR "; + where.append(THREAD_ID + " = '").append(threadId).append("' OR "); } - where = where.substring(0, where.length() - 4); + where = new StringBuilder(where.substring(0, where.length() - 4)); - db.delete(TABLE_NAME, where, null); + db.delete(TABLE_NAME, where.toString(), null); } /*package */ void deleteAllThreads() { diff --git a/src/org/smssecure/smssecure/database/SmsMigrator.java b/src/org/smssecure/smssecure/database/SmsMigrator.java index df44bf8961b7d24825e329277aa0295255fb9496..7dbe41842698dfff5cc99473f5e4047250b8e12b 100644 --- a/src/org/smssecure/smssecure/database/SmsMigrator.java +++ b/src/org/smssecure/smssecure/database/SmsMigrator.java @@ -27,7 +27,6 @@ import android.util.Log; import org.smssecure.smssecure.crypto.MasterCipher; import org.smssecure.smssecure.crypto.MasterSecret; import org.smssecure.smssecure.recipients.RecipientFactory; -import org.smssecure.smssecure.recipients.RecipientFormattingException; import org.smssecure.smssecure.recipients.Recipients; import java.util.StringTokenizer; diff --git a/src/org/smssecure/smssecure/database/ThreadDatabase.java b/src/org/smssecure/smssecure/database/ThreadDatabase.java index 11fe8b3eea80618d6412b7b4f210ec6cadc48c23..585c749dc8e2ef3adc707273d8c6e679ec479a22 100644 --- a/src/org/smssecure/smssecure/database/ThreadDatabase.java +++ b/src/org/smssecure/smssecure/database/ThreadDatabase.java @@ -175,15 +175,15 @@ public class ThreadDatabase extends Database { private void deleteThreads(Set threadIds) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); - String where = ""; + StringBuilder where = new StringBuilder(); for (long threadId : threadIds) { - where += ID + " = '" + threadId + "' OR "; + where.append(ID + " = '").append(threadId).append("' OR "); } - where = where.substring(0, where.length() - 4); + where = new StringBuilder(where.substring(0, where.length() - 4)); - db.delete(TABLE_NAME, where, null); + db.delete(TABLE_NAME, where.toString(), null); notifyConversationListListeners(); } @@ -299,18 +299,18 @@ public class ThreadDatabase extends Database { List cursors = new LinkedList<>(); for (List recipientIds : partitionedRecipientIds) { - String selection = RECIPIENT_IDS + " = ?"; + StringBuilder selection = new StringBuilder(RECIPIENT_IDS + " = ?"); String[] selectionArgs = new String[recipientIds.size()]; for (int i=0;i 1 ? new MergeCursor(cursors.toArray(new Cursor[cursors.size()])) : cursors.get(0); diff --git a/src/org/smssecure/smssecure/database/XmlBackup.java b/src/org/smssecure/smssecure/database/XmlBackup.java index fd054b9b9a3cf44d449b4aa0dfb0b96bc3e1b813..83cf57078b399bc9a9b6aecdc4594699af2e1a16 100644 --- a/src/org/smssecure/smssecure/database/XmlBackup.java +++ b/src/org/smssecure/smssecure/database/XmlBackup.java @@ -209,11 +209,11 @@ public class XmlBackup { StringBuffer st = new StringBuffer(); while (matcher.find()) { - String escaped=""; + StringBuilder escaped= new StringBuilder(); for (char ch: matcher.group(0).toCharArray()) { - escaped += ("&#" + ((int) ch) + ";"); + escaped.append("&#").append((int) ch).append(";"); } - matcher.appendReplacement(st, escaped); + matcher.appendReplacement(st, escaped.toString()); } matcher.appendTail(st); return st.toString(); diff --git a/src/org/smssecure/smssecure/database/model/MediaMmsMessageRecord.java b/src/org/smssecure/smssecure/database/model/MediaMmsMessageRecord.java index e28f0c0ec8cb734bd9334b7e4644289bfe47bdcf..a8c1355812c0eb8d18a07ddd45d2eab8c6ed173d 100644 --- a/src/org/smssecure/smssecure/database/model/MediaMmsMessageRecord.java +++ b/src/org/smssecure/smssecure/database/model/MediaMmsMessageRecord.java @@ -28,7 +28,6 @@ import org.smssecure.smssecure.database.documents.NetworkFailure; import org.smssecure.smssecure.mms.SlideDeck; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.Recipients; -import org.smssecure.smssecure.util.SilencePreferences; import java.util.List; diff --git a/src/org/smssecure/smssecure/database/model/SmsMessageRecord.java b/src/org/smssecure/smssecure/database/model/SmsMessageRecord.java index 450cb4ea4f4a2f4a3b978571d5bc35e513d5605a..ccb840680e5cb601bf69d22959282229450a052a 100644 --- a/src/org/smssecure/smssecure/database/model/SmsMessageRecord.java +++ b/src/org/smssecure/smssecure/database/model/SmsMessageRecord.java @@ -27,7 +27,6 @@ import org.smssecure.smssecure.database.documents.NetworkFailure; import org.smssecure.smssecure.database.documents.IdentityKeyMismatch; import org.smssecure.smssecure.recipients.Recipient; import org.smssecure.smssecure.recipients.Recipients; -import org.smssecure.smssecure.util.SilencePreferences; import java.util.LinkedList; import java.util.List; diff --git a/src/org/smssecure/smssecure/database/model/ThreadRecord.java b/src/org/smssecure/smssecure/database/model/ThreadRecord.java index cd59076257dfd8ccc2471945b0b171b33229cd58..7837720958e6720ac379df2180924e58b8625546 100644 --- a/src/org/smssecure/smssecure/database/model/ThreadRecord.java +++ b/src/org/smssecure/smssecure/database/model/ThreadRecord.java @@ -28,9 +28,7 @@ import android.text.style.StyleSpan; import org.smssecure.smssecure.R; import org.smssecure.smssecure.database.MmsSmsColumns; import org.smssecure.smssecure.database.SmsDatabase; -import org.smssecure.smssecure.database.ThreadDatabase; import org.smssecure.smssecure.recipients.Recipients; -import org.smssecure.smssecure.util.SilencePreferences; /** * The message record model which represents thread heading messages. diff --git a/src/org/smssecure/smssecure/dom/NodeListImpl.java b/src/org/smssecure/smssecure/dom/NodeListImpl.java index c2d51a87d0ca4acb6db9f914b61c3b3deae5493d..6d7cd99b53a8906c312a0c28cfce5462a8b748fb 100644 --- a/src/org/smssecure/smssecure/dom/NodeListImpl.java +++ b/src/org/smssecure/smssecure/dom/NodeListImpl.java @@ -39,7 +39,7 @@ public class NodeListImpl implements NodeList { * @param rootNode The root Node of the search. * @param tagName The tag name to be searched for. If null, all descendants * will be returned. - * @param deep Limit the search to the direct children of rootNode if false, + * @param deepSearch Limit the search to the direct children of rootNode if false, * to all descendants otherwise. */ public NodeListImpl(Node rootNode, String tagName, boolean deepSearch) { @@ -95,8 +95,7 @@ public class NodeListImpl implements NodeList { *
  • Traverse children from left to right in preorder. * * This method fills the live node list. - * @param The root of preorder traversal - * @return The next match + * @param node The root of preorder traversal */ private void fillList(Node node) { // (Re)-initialize the container if this is the start of the search. diff --git a/src/org/smssecure/smssecure/dom/smil/ElementTimeImpl.java b/src/org/smssecure/smssecure/dom/smil/ElementTimeImpl.java index 5bae82de85c19b307b532199d435c5eca3ac578f..c914012f75c1732812e2abf8adc88accfafe60a9 100644 --- a/src/org/smssecure/smssecure/dom/smil/ElementTimeImpl.java +++ b/src/org/smssecure/smssecure/dom/smil/ElementTimeImpl.java @@ -73,9 +73,9 @@ public abstract class ElementTimeImpl implements ElementTime { // TODO: Check other constraints on parsed values, e.g., "single, non-negative offset values ArrayList