Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61aa419e authored by Michael W's avatar Michael W
Browse files

Dialer: Lookup: Remove OpenCnam

* No more free tier

Change-Id: I745b779f05475b01a87a7487c7cdd0bfde6a63b5
parent c8286f3d
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -27,13 +27,12 @@ public final class LookupSettings {
  public static final String FLP_DEFAULT = FLP_OPENSTREETMAP;

  /** Reverse lookup providers */
  public static final String RLP_OPENCNAM = "OpenCnam";
  public static final String RLP_YELLOWPAGES = "YellowPages";
  public static final String RLP_YELLOWPAGES_CA = "YellowPages_CA";
  public static final String RLP_ZABASEARCH = "ZabaSearch";
  public static final String RLP_CYNGN_CHINESE = "CyngnChinese";
  public static final String RLP_DASTELEFONBUCH = "DasTelefonbuch";
  public static final String RLP_DEFAULT = RLP_OPENCNAM;
  public static final String RLP_DEFAULT = RLP_YELLOWPAGES;

  /** Preferences */
  private static final String SHARED_PREFERENCES_NAME = "lookup_settings";
@@ -41,8 +40,6 @@ public final class LookupSettings {
  private static final String ENABLE_REVERSE_LOOKUP = "enable_reverse_lookup";
  private static final String FORWARD_LOOKUP_PROVIDER = "forward_lookup_provider2";
  private static final String REVERSE_LOOKUP_PROVIDER = "reverse_lookup_provider2";
  private static final String OPENCNAM_ACCOUNT_SID = "opencnam_account_sid";
  private static final String OPENCNAM_AUTH_TOKEN = "opencnam_auth_token";

  private LookupSettings() {
  }
@@ -82,16 +79,4 @@ public final class LookupSettings {
  public static void setReverseLookupProvider(Context context, String value) {
    getSharedPreferences(context).edit().putString(REVERSE_LOOKUP_PROVIDER, value).commit();
  }

  public static String getOpenCnamAccountSid(Context context) {
    return getSharedPreferences(context).getString(OPENCNAM_ACCOUNT_SID, null);
  }

  public static void setOpenCnamAccountSid(Context context, String value) {
    getSharedPreferences(context).edit().putString(OPENCNAM_ACCOUNT_SID, value).commit();
  }

  public static String getOpenCnamAuthToken(Context context) {
    return getSharedPreferences(context).getString(OPENCNAM_AUTH_TOKEN, null);
  }
}
+2 −8
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.util.Log;

import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.lookup.dastelefonbuch.TelefonbuchReverseLookup;
import com.android.dialer.lookup.opencnam.OpenCnamReverseLookup;
import com.android.dialer.lookup.yellowpages.YellowPagesReverseLookup;
import com.android.dialer.lookup.zabasearch.ZabaSearchReverseLookup;

@@ -40,9 +39,7 @@ public abstract class ReverseLookup {
    if (INSTANCE == null || !isInstance(provider)) {
      Log.d(TAG, "Chosen reverse lookup provider: " + provider);

      if (provider.equals(LookupSettings.RLP_OPENCNAM)) {
        INSTANCE = new OpenCnamReverseLookup(context);
      } else if (provider.equals(LookupSettings.RLP_YELLOWPAGES)
      if (provider.equals(LookupSettings.RLP_YELLOWPAGES)
          || provider.equals(LookupSettings.RLP_YELLOWPAGES_CA)) {
        INSTANCE = new YellowPagesReverseLookup(context, provider);
      } else if (provider.equals(LookupSettings.RLP_ZABASEARCH)) {
@@ -56,10 +53,7 @@ public abstract class ReverseLookup {
  }

  private static boolean isInstance(String provider) {
    if (provider.equals(LookupSettings.RLP_OPENCNAM)
        && INSTANCE instanceof OpenCnamReverseLookup) {
      return true;
    } else if ((provider.equals(LookupSettings.RLP_YELLOWPAGES)
    if ((provider.equals(LookupSettings.RLP_YELLOWPAGES)
        || provider.equals(LookupSettings.RLP_YELLOWPAGES_CA))
        && INSTANCE instanceof YellowPagesReverseLookup) {
      return true;
+0 −99
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 Xiao-Long Chen <chillermillerlong@hotmail.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.dialer.lookup.opencnam;

import android.content.Context;
import android.net.Uri;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;

import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.lookup.ContactBuilder;
import com.android.dialer.lookup.LookupSettings;
import com.android.dialer.lookup.LookupUtils;
import com.android.dialer.lookup.ReverseLookup;

import java.io.IOException;

public class OpenCnamReverseLookup extends ReverseLookup {
  private static final String TAG = OpenCnamReverseLookup.class.getSimpleName();

  private static final boolean DEBUG = false;

  private static final String LOOKUP_URL = "https://api.opencnam.com/v2/phone/";

  /** Query parameters for paid accounts */
  private static final String ACCOUNT_SID = "account_sid";
  private static final String AUTH_TOKEN = "auth_token";

  public OpenCnamReverseLookup(Context context) {
  }

  /**
   * Perform phone number lookup.
   *
   * @param context The application context
   * @param normalizedNumber The normalized phone number
   * @param formattedNumber The formatted phone number
   * @return The phone number info object
   */
  @Override
  public ContactInfo lookupNumber(Context context,
      String normalizedNumber, String formattedNumber) throws IOException {
    if (normalizedNumber.startsWith("+") && !normalizedNumber.startsWith("+1")) {
      // Any non-US number will return "We currently accept only US numbers"
      return null;
    }

    String displayName = httpGetRequest(context, normalizedNumber);
    if (DEBUG) Log.d(TAG, "Reverse lookup returned name: " + displayName);

    // Check displayName. The free tier of the service will return the
    // following for some numbers:
    // "CNAM for phone "NORMALIZED" is currently unavailable for Hobbyist Tier users."

    if (displayName.contains("Hobbyist Tier")) {
      return null;
    }

    String number = formattedNumber != null ? formattedNumber : normalizedNumber;

    return ContactBuilder.forReverseLookup(normalizedNumber, formattedNumber)
        .setName(ContactBuilder.Name.createDisplayName(displayName))
        .addPhoneNumber(ContactBuilder.PhoneNumber.createMainNumber(number))
        .setPhotoUri(ContactBuilder.PHOTO_URI_BUSINESS)
        .build();
  }

  private String httpGetRequest(Context context, String number) throws IOException {
    Uri.Builder builder = Uri.parse(LOOKUP_URL + number).buildUpon();

    // Paid account
    String accountSid = LookupSettings.getOpenCnamAccountSid(context);
    String authToken = LookupSettings.getOpenCnamAuthToken(context);

    if (!TextUtils.isEmpty(accountSid) && !TextUtils.isEmpty(authToken)) {
      Log.d(TAG, "Using paid account");

      builder.appendQueryParameter(ACCOUNT_SID, accountSid);
      builder.appendQueryParameter(AUTH_TOKEN, authToken);
    }

    return LookupUtils.httpGet(builder.build().toString(), null);
  }
}
+0 −2
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@

    <string-array name="reverse_lookup_providers" translatable="false">
        <item>DasTelefonbuch</item>
        <item>OpenCnam</item>
        <item>YellowPages</item>
        <item>YellowPages_CA</item>
        <item>ZabaSearch</item>
@@ -33,7 +32,6 @@

    <string-array name="reverse_lookup_provider_names" translatable="false">
        <item>Das Telefonbuch (DE)</item>
        <item>OpenCnam (US)</item>
        <item>YellowPages (US)</item>
        <item>YellowPages (CA)</item>
        <item>ZabaSearch (US)</item>