From 4a9627118a4499ae2e53b86471aef8ffbbacdaa1 Mon Sep 17 00:00:00 2001 From: "daniel.boehrs" Date: Mon, 8 Oct 2018 12:56:54 +0200 Subject: [PATCH] remove unused permissions, delay requests #68 --- AndroidManifest.xml | 7 --- .../securesms/ConversationActivity.java | 49 +++++++------------ .../securesms/RegistrationActivity.java | 14 ------ src/org/thoughtcrime/securesms/util/Util.java | 25 ---------- 4 files changed, 18 insertions(+), 77 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e3e1507bd..560ef041d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -24,13 +24,6 @@ - - - - - - - diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 78f0094eb..3e37a0591 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -27,7 +27,6 @@ import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.PorterDuff.Mode; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; @@ -136,12 +135,9 @@ import org.thoughtcrime.securesms.recipients.RecipientModifiedListener; import org.thoughtcrime.securesms.scribbles.ScribbleActivity; import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.sms.MessageSender; -import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage; import org.thoughtcrime.securesms.sms.OutgoingEndSessionMessage; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState; -import org.thoughtcrime.securesms.util.CommunicationActions; -import org.thoughtcrime.securesms.util.Dialogs; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.ExpirationUtil; @@ -166,7 +162,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import static org.thoughtcrime.securesms.TransportOption.Type; - import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; /** @@ -1428,35 +1423,27 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity outgoingMessage = outgoingMessageCandidate; } - Permissions.with(this) - .request(Manifest.permission.SEND_SMS, Manifest.permission.READ_SMS) - .ifNecessary(!isSecureText || forceSms) - .withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_needs_sms_permission_in_order_to_send_an_sms)) - .onAllGranted(() -> { - inputPanel.clearQuote(); - attachmentManager.clear(glideRequests, false); - composeText.setText(""); - final long id = fragment.stageOutgoingMessage(outgoingMessage); + inputPanel.clearQuote(); + attachmentManager.clear(glideRequests, false); + composeText.setText(""); + final long id = fragment.stageOutgoingMessage(outgoingMessage); - new AsyncTask() { - @Override - protected Long doInBackground(Void... param) { - if (initiating) { - DatabaseFactory.getRecipientDatabase(context).setProfileSharing(recipient, true); - } + new AsyncTask() { + @Override + protected Long doInBackground(Void... param) { + if (initiating) { + DatabaseFactory.getRecipientDatabase(context).setProfileSharing(recipient, true); + } - return MessageSender.send(context, outgoingMessage, threadId, forceSms, () -> fragment.releaseOutgoingMessage(id)); - } + return MessageSender.send(context, outgoingMessage, threadId, false, () -> fragment.releaseOutgoingMessage(id)); + } - @Override - protected void onPostExecute(Long result) { - sendComplete(result); - future.set(null); - } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - }) - .onAnyDenied(() -> future.set(null)) - .execute(); + @Override + protected void onPostExecute(Long result) { + sendComplete(result); + future.set(null); + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); return future; } diff --git a/src/org/thoughtcrime/securesms/RegistrationActivity.java b/src/org/thoughtcrime/securesms/RegistrationActivity.java index 4a7175485..f0b46a0a1 100644 --- a/src/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/org/thoughtcrime/securesms/RegistrationActivity.java @@ -1,7 +1,5 @@ package org.thoughtcrime.securesms; -import android.Manifest; -import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; @@ -72,7 +70,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve setContentView(R.layout.registration_activity); initializeResources(); - initializePermissions(); DcHelper.getContext(this).eventCenter.addObserver(this, DcContext.DC_EVENT_CONFIGURE_PROGRESS); } @@ -198,17 +195,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve } } - @SuppressLint("InlinedApi") - private void initializePermissions() { - Permissions.with(RegistrationActivity.this) - .request(Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_CONTACTS, - Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE) - .ifNecessary() - .withRationaleDialog(getString(R.string.RegistrationActivity_dialog_permission_text), - R.drawable.ic_contacts_white_48dp, R.drawable.ic_folder_white_48dp) - .execute(); - } - private void onLogin() { if (!verifyRequiredFields()) { Toast.makeText(this, R.string.RegistrationActivity_error_required_fields, Toast.LENGTH_LONG).show(); diff --git a/src/org/thoughtcrime/securesms/util/Util.java b/src/org/thoughtcrime/securesms/util/Util.java index 89c62587b..a5c45c0d4 100644 --- a/src/org/thoughtcrime/securesms/util/Util.java +++ b/src/org/thoughtcrime/securesms/util/Util.java @@ -33,7 +33,6 @@ import android.os.Looper; import android.provider.Telephony; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.annotation.RequiresPermission; import android.telephony.TelephonyManager; import android.text.Spannable; import android.text.SpannableString; @@ -43,9 +42,6 @@ import android.util.Log; import com.google.android.mms.pdu_alt.CharacterSets; import com.google.android.mms.pdu_alt.EncodedStringValue; -import com.google.i18n.phonenumbers.NumberParseException; -import com.google.i18n.phonenumbers.PhoneNumberUtil; -import com.google.i18n.phonenumbers.Phonenumber; import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.components.ComposeText; @@ -255,27 +251,6 @@ public class Util { return total; } - @RequiresPermission(anyOf = { - android.Manifest.permission.READ_PHONE_STATE, - android.Manifest.permission.READ_SMS, - android.Manifest.permission.READ_PHONE_NUMBERS - }) - @SuppressLint("MissingPermission") - public static Optional getDeviceNumber(Context context) { - try { - final String localNumber = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number(); - final Optional countryIso = getSimCountryIso(context); - - if (TextUtils.isEmpty(localNumber)) return Optional.absent(); - if (!countryIso.isPresent()) return Optional.absent(); - - return Optional.fromNullable(PhoneNumberUtil.getInstance().parse(localNumber, countryIso.get())); - } catch (NumberParseException e) { - Log.w(TAG, e); - return Optional.absent(); - } - } - public static Optional getSimCountryIso(Context context) { String simCountryIso = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getSimCountryIso(); return Optional.fromNullable(simCountryIso != null ? simCountryIso.toUpperCase() : null);