/** * Starts the database upgrade process in the background. */ public void startSmartDialUpdateThread() { if (PermissionsUtil.hasContactsPermissions(mContext)) { new SmartDialUpdateAsyncTask().execute(); } }
public static boolean hasPermissions(Context context, final String... permissions) { for (final String permission : permissions) { if (!hasPermission(context, permission)) { return false; } } return true; }
/** * @return the geocoded country code detected by the {@link LocationManager}. */ private String getLocationBasedCountryIso() { if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) { return null; } final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext); return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null); }
@Override public void show() { final boolean hasContactsPermission = PermissionsUtil.hasContactsPermissions(DialtactsActivity.this); final Menu menu = getMenu(); final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents); clearFrequents.setVisible(mListsFragment != null && mListsFragment.getSpeedDialFragment() != null && mListsFragment.getSpeedDialFragment().hasFrequents() && hasContactsPermission); menu.findItem(R.id.menu_import_export).setVisible(hasContactsPermission); menu.findItem(R.id.menu_add_contact).setVisible(hasContactsPermission); menu.findItem(R.id.menu_history).setVisible( PermissionsUtil.hasPhonePermissions(DialtactsActivity.this)); super.show(); } }
/** Updates all new calls to mark them as old. */ public void markNewCallsAsOld() { if (!PermissionsUtil.hasPhonePermissions(mContext)) { return; } // Mark all "new" calls as not new anymore. StringBuilder where = new StringBuilder(); where.append(Calls.NEW); where.append(" = 1"); ContentValues values = new ContentValues(1); values.put(Calls.NEW, "0"); startUpdate(UPDATE_MARK_AS_OLD_TOKEN, null, TelecomUtil.getCallLogUri(mContext), values, where.toString(), null); }
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) { if (grantResults.length == 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) { PermissionsUtil.notifyPermissionGranted(getActivity(), READ_CONTACTS); } } } }
public static boolean hasNecessaryRequiredPermissions(Context context) { return hasPermissions(context, sRequiredPermissions); }
public static boolean startPermissionActivity(Activity activity) { if (!PermissionsUtil.hasNecessaryRequiredPermissions(activity)) { Intent intent = new Intent(activity, ForceRequestPermissionsActivity.class); intent.putExtra(PREVIOUS_ACTIVITY_INTENT, activity.getIntent()); activity.startActivity(intent); activity.finish(); return true; } return false; }
@Override public void onStop() { PermissionsUtil.unregisterPermissionReceiver(getActivity(), mReadContactsPermissionGrantedReceiver); super.onStop(); }
@Override public void onStart() { super.onStart(); PermissionsUtil.registerPermissionReceiver(getActivity(), mReadContactsPermissionGrantedReceiver, READ_CONTACTS); }
redirect(); } else { Dialog dialog = PermissionsUtil.createPermissionSettingDialog(this, mForbiddenPermissionList.toString()); dialog.show();
/** Updates all missed calls to mark them as read. */ public void markMissedCallsAsRead() { if (!PermissionsUtil.hasPhonePermissions(mContext)) { return; } ContentValues values = new ContentValues(1); values.put(Calls.IS_READ, "1"); startUpdate(UPDATE_MARK_MISSED_CALL_AS_READ_TOKEN, null, Calls.CONTENT_URI, values, getUnreadMissedCallsQuery(), null); }
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == PERMISSION_REQUEST_CODE) { setupEmptyView(); if (grantResults != null && grantResults.length == 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) { PermissionsUtil.notifyPermissionGranted(getActivity(), mPermissionToRequest); } } }
public static boolean hasLocationPermissions(Context context) { return hasPermission(context, LOCATION); }
public static ContactPhotoManager getInstance(Context context) { if (sInstance == null) { Context applicationContext = context.getApplicationContext(); sInstance = createContactPhotoManager(applicationContext); applicationContext.registerComponentCallbacks(sInstance); if (PermissionsUtil.hasContactsPermissions(context)) { sInstance.preloadPhotosInBackground(); } } return sInstance; }
/** Fetch all missed calls received since last time the tab was opened. */ public void fetchMissedCallsUnreadCount() { if (!PermissionsUtil.hasPhonePermissions(mContext)) { return; } startQuery(QUERY_MISSED_CALLS_UNREAD_COUNT_TOKEN, null, Calls.CONTENT_URI, new String[]{Calls._ID}, getUnreadMissedCallsQuery(), null, null); }
public static void registerForLocationUpdates(Context context, LocationManager locationManager) { if (!PermissionsUtil.hasLocationPermissions(context)) { Log.w(TAG, "No location permissions, not registering for location updates."); return; } if (!Geocoder.isPresent()) { // Certain devices do not have an implementation of a geocoder - in that case there is // no point trying to get location updates because we cannot retrieve the country based // on the location anyway. return; } final Intent activeIntent = new Intent(context, LocationChangedReceiver.class); final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT); locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, TIME_BETWEEN_UPDATES_MS, DISTANCE_BETWEEN_UPDATES_METERS, pendingIntent); }
public static boolean hasPhonePermissions(Context context) { return hasPermission(context, PHONE); }
return null; if (!PermissionsUtil.hasContactsPermissions(mContext)) { return ContactInfo.EMPTY;
public static void markCallAsRead(final Context context, final long[] callIds) { if (!PermissionsUtil.hasPhonePermissions(context)) { return; } if (sAsyncTaskExecutor == null) { initTaskExecutor(); } sAsyncTaskExecutor.submit(Tasks.MARK_CALL_READ, new AsyncTask<Void, Void, Void>() { @Override public Void doInBackground(Void... params) { StringBuilder where = new StringBuilder(); where.append(CallLog.Calls.TYPE).append(" = ").append(CallLog.Calls.MISSED_TYPE); where.append(" AND "); Long[] callIdLongs = new Long[callIds.length]; for (int i = 0; i < callIds.length; i++) { callIdLongs[i] = callIds[i]; } where.append(CallLog.Calls._ID).append( " IN (" + TextUtils.join(",", callIdLongs) + ")"); ContentValues values = new ContentValues(1); values.put(CallLog.Calls.IS_READ, "1"); context.getContentResolver().update( CallLog.Calls.CONTENT_URI, values, where.toString(), null); return null; } }); }