/* * Copyright (C) 2013 The Android Open Source Project * * 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.util; import android.support.annotation.Nullable; import android.text.TextUtils; /** Static utility methods for Strings. */ public class MoreStrings { /** * Returns the given string if it is non-null; the empty string otherwise. * * @param string the string to test and possibly return * @return {@code string} itself if it is non-null; {@code ""} if it is null */ public static String nullToEmpty(@Nullable String string) { return (string == null) ? "" : string; } /** * Returns the given string if it is nonempty; {@code null} otherwise. * * @param string the string to test and possibly return * @return {@code string} itself if it is nonempty; {@code null} if it is empty or null */ @Nullable public static String emptyToNull(@Nullable String string) { return TextUtils.isEmpty(string) ? null : string; } public static String toSafeString(String value) { if (value == null) { return null; } // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare // sanitized phone numbers. final StringBuilder builder = new StringBuilder(); for (int i = 0; i < value.length(); i++) { final char c = value.charAt(i); if (c == '-' || c == '@' || c == '.') { builder.append(c); } else { builder.append('x'); } } return builder.toString(); } }