summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/contacts/NonPhoneActivity.java4
-rw-r--r--src/com/android/contacts/activities/AttachPhotoActivity.java2
-rw-r--r--src/com/android/contacts/activities/ContactEditorActivity.java4
-rw-r--r--src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java2
-rw-r--r--src/com/android/contacts/activities/ContactSelectionActivity.java4
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java4
-rw-r--r--src/com/android/contacts/activities/RequestPermissionsActivity.java10
-rwxr-xr-xsrc/com/android/contacts/activities/ShowOrCreateActivity.java2
-rw-r--r--src/com/android/contacts/editor/ContactEditorFragment.java4
-rw-r--r--src/com/android/contacts/editor/RawContactEditorView.java10
-rw-r--r--src/com/android/contacts/quickcontact/QuickContactActivity.java3
-rw-r--r--src/com/android/contacts/vcard/ExportVCardActivity.java2
-rw-r--r--src/com/android/contacts/vcard/NfcImportVCardActivity.java2
13 files changed, 28 insertions, 25 deletions
diff --git a/src/com/android/contacts/NonPhoneActivity.java b/src/com/android/contacts/NonPhoneActivity.java
index 066c4d32a..ba56d7090 100644
--- a/src/com/android/contacts/NonPhoneActivity.java
+++ b/src/com/android/contacts/NonPhoneActivity.java
@@ -44,9 +44,7 @@ public class NonPhoneActivity extends ContactsActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
- return;
- }
+ RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
final String phoneNumber = getPhoneNumber();
if (TextUtils.isEmpty(phoneNumber)) {
diff --git a/src/com/android/contacts/activities/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
index 62e6ca4d7..bde3dc1c1 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -95,7 +95,7 @@ public class AttachPhotoActivity extends ContactsActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index 24e48ef49..8f488e173 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -319,9 +319,7 @@ public class ContactEditorActivity extends AppCompatContactsActivity implements
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
- return;
- }
+ RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
final Intent intent = getIntent();
final String action = intent.getAction();
diff --git a/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java b/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java
index 5ad05dc05..cf2ce9cff 100644
--- a/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java
@@ -84,7 +84,7 @@ public class ContactEditorSpringBoardActivity extends AppCompatContactsActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index 654263b21..eaa89a1ea 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -107,9 +107,7 @@ public class ContactSelectionActivity extends AppCompatContactsActivity implemen
protected void onCreate(Bundle savedState) {
super.onCreate(savedState);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
- return;
- }
+ RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
if (savedState != null) {
mActionCode = savedState.getInt(KEY_ACTION_CODE);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index c0798bb78..e5ae3a312 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -349,9 +349,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements
mAccountTypeManager = AccountTypeManager.getInstance(this);
mContactListFilterController = ContactListFilterController.getInstance(this);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
- return;
- }
+ RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
if (!processIntent(false)) {
finish();
diff --git a/src/com/android/contacts/activities/RequestPermissionsActivity.java b/src/com/android/contacts/activities/RequestPermissionsActivity.java
index 02ddf34e1..bcfa12842 100644
--- a/src/com/android/contacts/activities/RequestPermissionsActivity.java
+++ b/src/com/android/contacts/activities/RequestPermissionsActivity.java
@@ -18,6 +18,7 @@ package com.android.contacts.activities;
import android.Manifest.permission;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.support.v4.content.LocalBroadcastManager;
@@ -42,7 +43,14 @@ public class RequestPermissionsActivity extends RequestPermissionsActivityBase {
return getPermissions(getPackageManager());
}
- public static boolean startPermissionActivity(Activity activity) {
+ /**
+ * Method to check if the required permissions are given.
+ */
+ public static boolean hasRequiredPermissions(Context context) {
+ return hasPermissions(context, getPermissions(context.getPackageManager()));
+ }
+
+ public static boolean startPermissionActivityIfNeeded(Activity activity) {
return startPermissionActivity(activity,
getPermissions(activity.getPackageManager()),
RequestPermissionsActivity.class);
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index 91c93b99e..8c943640e 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -87,7 +87,7 @@ public final class ShowOrCreateActivity extends ContactsActivity
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 84c2b1f7c..d5522dd4c 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -64,6 +64,7 @@ import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
import com.android.contacts.activities.ContactEditorActivity;
import com.android.contacts.activities.ContactEditorActivity.ContactEditor;
import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.activities.RequestPermissionsActivity;
import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
import com.android.contacts.group.GroupUtil;
import com.android.contacts.list.UiIntentActions;
@@ -1310,7 +1311,8 @@ public class ContactEditorFragment extends Fragment implements
}
return false;
}
- return true;
+ // Don't attempt to bind anything if we have no permissions.
+ return RequestPermissionsActivity.hasRequiredPermissions(mContext);
}
/**
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 0c6e02972..320a19a8a 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -58,8 +58,6 @@ import com.android.contacts.model.RawContactDelta;
import com.android.contacts.model.RawContactDeltaList;
import com.android.contacts.model.RawContactModifier;
import com.android.contacts.model.ValuesDelta;
-import com.android.contacts.model.account.AccountDisplayInfo;
-import com.android.contacts.model.account.AccountDisplayInfoFactory;
import com.android.contacts.model.account.AccountInfo;
import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.AccountWithDataSet;
@@ -72,7 +70,6 @@ import com.android.contacts.util.UiClosables;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -380,7 +377,7 @@ public class RawContactEditorView extends LinearLayout implements View.OnClickLi
* Get the raw contact ID for the current photo.
*/
public long getPhotoRawContactId() {
- return mCurrentRawContactDelta.getRawContactId();
+ return mCurrentRawContactDelta == null ? - 1 : mCurrentRawContactDelta.getRawContactId();
}
public StructuredNameEditorView getNameEditorView() {
@@ -464,6 +461,11 @@ public class RawContactEditorView extends LinearLayout implements View.OnClickLi
return;
}
pickRawContactDelta();
+ if (mCurrentRawContactDelta == null) {
+ elog("Couldn't pick a raw contact delta.");
+ if (mListener != null) mListener.onBindEditorsFailed();
+ return;
+ }
// Apply any intent extras now that we have selected a raw contact delta.
applyIntentExtras();
parseRawContactDelta();
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index dc1cfcfef..2007e1068 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -71,7 +71,6 @@ import android.provider.ContactsContract.DisplayNameSources;
import android.provider.ContactsContract.Intents;
import android.provider.ContactsContract.QuickContact;
import android.provider.ContactsContract.RawContacts;
-import android.support.graphics.drawable.VectorDrawableCompat;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.content.res.ResourcesCompat;
@@ -719,7 +718,7 @@ public class QuickContactActivity extends ContactsActivity {
Trace.beginSection("onCreate()");
super.onCreate(savedInstanceState);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}
diff --git a/src/com/android/contacts/vcard/ExportVCardActivity.java b/src/com/android/contacts/vcard/ExportVCardActivity.java
index 1f1e21bcd..690f2070c 100644
--- a/src/com/android/contacts/vcard/ExportVCardActivity.java
+++ b/src/com/android/contacts/vcard/ExportVCardActivity.java
@@ -76,7 +76,7 @@ public class ExportVCardActivity extends Activity implements ServiceConnection,
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
- if (RequestImportVCardPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestImportVCardPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}
diff --git a/src/com/android/contacts/vcard/NfcImportVCardActivity.java b/src/com/android/contacts/vcard/NfcImportVCardActivity.java
index 4eb9b577b..b8b76dacc 100644
--- a/src/com/android/contacts/vcard/NfcImportVCardActivity.java
+++ b/src/com/android/contacts/vcard/NfcImportVCardActivity.java
@@ -170,7 +170,7 @@ public class NfcImportVCardActivity extends Activity implements ServiceConnectio
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
- if (RequestPermissionsActivity.startPermissionActivity(this)) {
+ if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
return;
}