diff options
Diffstat (limited to 'java/com/android/dialer/searchfragment')
103 files changed, 3690 insertions, 0 deletions
diff --git a/java/com/android/dialer/searchfragment/README.md b/java/com/android/dialer/searchfragment/README.md new file mode 100644 index 000000000..b3b9135e5 --- /dev/null +++ b/java/com/android/dialer/searchfragment/README.md @@ -0,0 +1,62 @@ +# Dialer Search Ui + +searchfragment/ contains all code relevant to loading, rendering and filtering +search results in both dialpad search and regular search. + +## Loading + +### On Device Contacts + +On device contacts loading happens in SearchContactsCursorLoader. It is used in +conjunction with NewSearchFragment and Loader Callbacks to return a cursor from +cp2 containing all of the relevant info needed to rendering. + +### Business Search + +// TODO(calderwoodra) + +### Google Directory Search + +// TODO(calderwoodra) + +## Rendering + +NewSearchFragment, SearchAdapter, SearchContactViewHolder and +SearchCursorManager are used to render contact information. The fragment's +recyclerview, adapter and viewholder work as expected like a normal recyclerview +paradigm. + +The are three things to note about rendering: + +* There are three data sources rendered: On device contacts, business search + results and google directory results. +* SearchContactsCursorLoader returns its cursor from cp2 and we filter/wrap it + with SearchContactCursor to render useful results (see below). +* SearchCursorManager is used to coalesce all three data sources to help with + determining row count, row type and returning the correct data source for + each position. + +## Filtering + +On device contacts are filtered using SearchContactCursor. We wrap the cursor +returned from SearchContactsCursorLoader in NewSearchFragment#onLoadFinished in +order to abstract away the filtering logic from the recyclerview adapter and +viewholders. + +SearchContactCursor applies filtering in SearchContactCursor#filter to remove +duplicate phone numbers returned from cp2 and phone numbers that do not match +the given search query. + +Filtering methods used are: + +* T9/dialpad search methods + * Initial match (957 matches [W]illiam [J]ohn [S]mith) + * Number + name match (1800946 matches [1800-Win]-A-Prize) +* Numeric/dialpad search methods + * Simple number match (510333 matches [510-333]-7596) + * Country-code agnostic matching for E164 normalized numbers (9177 matches + +65[9177]6930) + * Country-code agnostic matching (510333 matches 1-[510-333]-7596) + * Area-code agnostic matching (333 matches 510-[333]-7596) +* Name/keyboard search methods: + * Simple name match (564 matches [Joh]n) diff --git a/java/com/android/dialer/searchfragment/common/AndroidManifest.xml b/java/com/android/dialer/searchfragment/common/AndroidManifest.xml new file mode 100644 index 000000000..178cd83c3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/AndroidManifest.xml @@ -0,0 +1,16 @@ +<!-- + ~ Copyright (C) 2017 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 + --> +<manifest package="com.android.dialer.searchfragment.common"/>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/common/Projections.java b/java/com/android/dialer/searchfragment/common/Projections.java new file mode 100644 index 000000000..37e20d195 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/Projections.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2017 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.searchfragment.common; + +import android.provider.ContactsContract.CommonDataKinds.Phone; + +/** Class containing relevant projections for searching contacts. */ +public class Projections { + + public static final int PHONE_ID = 0; + public static final int PHONE_TYPE = 1; + public static final int PHONE_LABEL = 2; + public static final int PHONE_NUMBER = 3; + public static final int PHONE_DISPLAY_NAME = 4; + public static final int PHONE_PHOTO_ID = 5; + public static final int PHONE_PHOTO_URI = 6; + public static final int PHONE_LOOKUP_KEY = 7; + public static final int PHONE_CARRIER_PRESENCE = 8; + + @SuppressWarnings("unused") + public static final int PHONE_SORT_KEY = 9; + + public static final String[] PHONE_PROJECTION = + new String[] { + Phone._ID, // 0 + Phone.TYPE, // 1 + Phone.LABEL, // 2 + Phone.NUMBER, // 3 + Phone.DISPLAY_NAME_PRIMARY, // 4 + Phone.PHOTO_ID, // 5 + Phone.PHOTO_THUMBNAIL_URI, // 6 + Phone.LOOKUP_KEY, // 7 + Phone.CARRIER_PRESENCE, // 8 + Phone.SORT_KEY_PRIMARY // 9 + }; +} diff --git a/java/com/android/dialer/searchfragment/common/QueryBoldingUtil.java b/java/com/android/dialer/searchfragment/common/QueryBoldingUtil.java new file mode 100644 index 000000000..7bdd69567 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/QueryBoldingUtil.java @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2017 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.searchfragment.common; + +import android.graphics.Typeface; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.StyleSpan; + +/** Utility class for handling bolding queries contained in string. */ +public class QueryBoldingUtil { + + /** + * Compares a name and query and returns a {@link CharSequence} with bolded characters. + * + * <p>Some example: + * + * <ul> + * <li>"query" would bold "John [query] Smith" + * <li>"222" would bold "[AAA] Mom" + * <li>"222" would bold "[A]llen [A]lex [A]aron" + * </ul> + * + * @param query containing any characters + * @param name of a contact/string that query will compare to + * @return name with query bolded if query can be found in the name. + */ + public static CharSequence getNameWithQueryBolded(@Nullable String query, @NonNull String name) { + if (TextUtils.isEmpty(query)) { + return name; + } + + int index = -1; + int numberOfBoldedCharacters = 0; + + if (QueryFilteringUtil.nameMatchesT9Query(query, name)) { + // Bold the characters that match the t9 query + String t9 = QueryFilteringUtil.getT9Representation(name); + index = QueryFilteringUtil.indexOfQueryNonDigitsIgnored(query, t9); + if (index == -1) { + return getNameWithInitialsBolded(query, name); + } + numberOfBoldedCharacters = query.length(); + + for (int i = 0; i < query.length(); i++) { + char c = query.charAt(i); + if (!Character.isDigit(c)) { + numberOfBoldedCharacters--; + } + } + + for (int i = 0; i < index + numberOfBoldedCharacters; i++) { + if (!Character.isLetterOrDigit(name.charAt(i))) { + if (i < index) { + index++; + } else { + numberOfBoldedCharacters++; + } + } + } + } + + if (index == -1) { + // Bold the query as an exact match in the name + index = name.toLowerCase().indexOf(query); + numberOfBoldedCharacters = query.length(); + } + + return index == -1 ? name : getBoldedString(name, index, numberOfBoldedCharacters); + } + + private static CharSequence getNameWithInitialsBolded(String query, String name) { + SpannableString boldedInitials = new SpannableString(name); + name = name.toLowerCase(); + int initialsBolded = 0; + int nameIndex = -1; + + while (++nameIndex < name.length() && initialsBolded < query.length()) { + if ((nameIndex == 0 || name.charAt(nameIndex - 1) == ' ') + && QueryFilteringUtil.getDigit(name.charAt(nameIndex)) == query.charAt(initialsBolded)) { + boldedInitials.setSpan( + new StyleSpan(Typeface.BOLD), + nameIndex, + nameIndex + 1, + Spanned.SPAN_INCLUSIVE_INCLUSIVE); + initialsBolded++; + } + } + return boldedInitials; + } + + /** + * Compares a number and a query and returns a {@link CharSequence} with bolded characters. + * + * <ul> + * <li>"123" would bold "(650)34[1-23]24" + * <li>"123" would bold "+1([123])111-2222 + * </ul> + * + * @param query containing only numbers and phone number related characters "(", ")", "-", "+" + * @param number phone number of a contact that the query will compare to. + * @return number with query bolded if query can be found in the number. + */ + public static CharSequence getNumberWithQueryBolded( + @Nullable String query, @NonNull String number) { + if (TextUtils.isEmpty(query) || !QueryFilteringUtil.numberMatchesNumberQuery(query, number)) { + return number; + } + + int index = QueryFilteringUtil.indexOfQueryNonDigitsIgnored(query, number); + int boldedCharacters = query.length(); + + for (char c : query.toCharArray()) { + if (!Character.isDigit(c)) { + boldedCharacters--; + } + } + + for (int i = 0; i < index + boldedCharacters; i++) { + if (!Character.isDigit(number.charAt(i))) { + if (i <= index) { + index++; + } else { + boldedCharacters++; + } + } + } + return getBoldedString(number, index, boldedCharacters); + } + + private static SpannableString getBoldedString(String s, int index, int numBolded) { + SpannableString span = new SpannableString(s); + span.setSpan( + new StyleSpan(Typeface.BOLD), index, index + numBolded, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return span; + } +} diff --git a/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java b/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java new file mode 100644 index 000000000..b23315b15 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/QueryFilteringUtil.java @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2017 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.searchfragment.common; + +import android.support.annotation.NonNull; +import android.telephony.PhoneNumberUtils; +import android.text.TextUtils; +import java.util.regex.Pattern; + +/** Utility class for filtering, comparing and handling strings and queries. */ +public class QueryFilteringUtil { + + /** Matches strings with "-", "(", ")", 2-9 of at least length one. */ + static final Pattern T9_PATTERN = Pattern.compile("[\\-()2-9]+"); + + /** + * @return true if the query is of T9 format and the name's T9 representation belongs to the + * query; false otherwise. + */ + public static boolean nameMatchesT9Query(String query, String name) { + if (!T9_PATTERN.matcher(query).matches()) { + return false; + } + + // Substring + if (indexOfQueryNonDigitsIgnored(query, getT9Representation(name)) != -1) { + return true; + } + + // Check matches initials + // TODO investigate faster implementation + query = digitsOnly(query); + int queryIndex = 0; + + String[] names = name.toLowerCase().split("\\s"); + for (int i = 0; i < names.length && queryIndex < query.length(); i++) { + if (TextUtils.isEmpty(names[i])) { + continue; + } + + if (getDigit(names[i].charAt(0)) == query.charAt(queryIndex)) { + queryIndex++; + } + } + + return queryIndex == query.length(); + } + + /** @return true if the number belongs to the query. */ + public static boolean numberMatchesNumberQuery(String query, String number) { + return PhoneNumberUtils.isGlobalPhoneNumber(query) + && indexOfQueryNonDigitsIgnored(query, number) != -1; + } + + /** + * Checks if query is contained in number while ignoring all characters in both that are not + * digits (i.e. {@link Character#isDigit(char)} returns false). + * + * @return index where query is found with all non-digits removed, -1 if it's not found. + */ + static int indexOfQueryNonDigitsIgnored(@NonNull String query, @NonNull String number) { + return digitsOnly(number).indexOf(digitsOnly(query)); + } + + // Returns string with letters replaced with their T9 representation. + static String getT9Representation(String s) { + StringBuilder builder = new StringBuilder(s.length()); + for (char c : s.toLowerCase().toCharArray()) { + builder.append(getDigit(c)); + } + return builder.toString(); + } + + /** @return String s with only digits recognized by Character#isDigit() remaining */ + public static String digitsOnly(String s) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (Character.isDigit(c)) { + sb.append(c); + } + } + return sb.toString(); + } + + // Returns the T9 representation of a lower case character, otherwise returns the character. + static char getDigit(char c) { + switch (c) { + case 'a': + case 'b': + case 'c': + return '2'; + case 'd': + case 'e': + case 'f': + return '3'; + case 'g': + case 'h': + case 'i': + return '4'; + case 'j': + case 'k': + case 'l': + return '5'; + case 'm': + case 'n': + case 'o': + return '6'; + case 'p': + case 'q': + case 'r': + case 's': + return '7'; + case 't': + case 'u': + case 'v': + return '8'; + case 'w': + case 'x': + case 'y': + case 'z': + return '9'; + default: + return c; + } + } +} diff --git a/java/com/android/dialer/searchfragment/common/res/layout/search_contact_row.xml b/java/com/android/dialer/searchfragment/common/res/layout/search_contact_row.xml new file mode 100644 index 000000000..dd871af70 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/res/layout/search_contact_row.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="@dimen/search_row_height" + android:paddingStart="8dp" + android:paddingEnd="8dp" + android:background="?android:attr/selectableItemBackground"> + + <QuickContactBadge + android:id="@+id/photo" + android:layout_width="@dimen/search_row_height" + android:layout_height="@dimen/search_row_height" + android:padding="@dimen/search_photo_padding" + android:clickable="false"/> + + <LinearLayout + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_toEndOf="@+id/photo" + android:layout_toStartOf="@+id/call_to_action" + android:layout_centerVertical="true"> + + <TextView + android:id="@+id/primary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="@dimen/search_text_padding_start" + android:gravity="center_vertical|start" + android:fontFamily="sans-serif" + style="@style/PrimaryText"/> + + <TextView + android:id="@+id/secondary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="@dimen/search_text_padding_start" + android:gravity="center_vertical|start" + android:fontFamily="sans-serif" + style="@style/SecondaryText"/> + </LinearLayout> + + <ImageView + android:id="@+id/call_to_action" + android:layout_width="@dimen/search_row_height" + android:layout_height="@dimen/search_row_height" + android:layout_alignParentEnd="true" + android:padding="@dimen/call_to_action_padding" + android:tint="@color/dialer_secondary_text_color" + android:visibility="gone" + android:scaleType="center"/> +</RelativeLayout>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/common/res/values/dimens.xml b/java/com/android/dialer/searchfragment/common/res/values/dimens.xml new file mode 100644 index 000000000..d5459ddb3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/common/res/values/dimens.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> +<resources> + <dimen name="search_row_height">56dp</dimen> + <dimen name="search_photo_padding">8dp</dimen> + <dimen name="call_to_action_padding">8dp</dimen> + <dimen name="search_text_padding_start">16dp</dimen> + <dimen name="new_search_text_size">16sp</dimen> +</resources>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java b/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java new file mode 100644 index 000000000..a2ef58c3c --- /dev/null +++ b/java/com/android/dialer/searchfragment/cp2/SearchContactCursor.java @@ -0,0 +1,392 @@ +/* + * Copyright (C) 2017 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.searchfragment.cp2; + +import android.content.ContentResolver; +import android.database.CharArrayBuffer; +import android.database.ContentObserver; +import android.database.Cursor; +import android.database.DataSetObserver; +import android.net.Uri; +import android.os.Bundle; +import android.support.annotation.IntDef; +import android.support.annotation.Nullable; +import android.text.TextUtils; +import com.android.dialer.searchfragment.common.Projections; +import com.android.dialer.searchfragment.common.QueryFilteringUtil; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; +import java.util.List; + +/** + * Wrapper for a cursor returned by {@link SearchContactsCursorLoader}. + * + * <p>This cursor removes duplicate phone numbers associated with the same contact and can filter + * contacts based on a query by calling {@link #filter(String)}. + */ +public final class SearchContactCursor implements Cursor { + + private final Cursor cursor; + // List of cursor ids that are valid for displaying after filtering. + private final List<Integer> queryFilteredPositions = new ArrayList<>(); + + private int currentPosition = 0; + + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + Qualification.NUMBERS_ARE_NOT_DUPLICATES, + Qualification.NEW_NUMBER_IS_MORE_QUALIFIED, + Qualification.CURRENT_MORE_QUALIFIED + }) + private @interface Qualification { + /** Numbers are not duplicates (i.e. neither is more qualified than the other). */ + int NUMBERS_ARE_NOT_DUPLICATES = 0; + /** Number are duplicates and new number is more qualified than the existing number. */ + int NEW_NUMBER_IS_MORE_QUALIFIED = 1; + /** Numbers are duplicates but current/existing number is more qualified than new number. */ + int CURRENT_MORE_QUALIFIED = 2; + } + + /** + * @param cursor with projection {@link Projections#PHONE_PROJECTION}. + * @param query to filter cursor results. + */ + public SearchContactCursor(Cursor cursor, @Nullable String query) { + // TODO investigate copying this into a MatrixCursor and holding in memory + this.cursor = cursor; + filter(query); + } + + /** + * Filters out contacts that do not match the query. + * + * <p>The query can have at least 1 of 3 forms: + * + * <ul> + * <li>A phone number + * <li>A T9 representation of a name (matches {@link QueryFilteringUtil#T9_PATTERN}). + * <li>A name + * </ul> + * + * <p>A contact is considered a match if: + * + * <ul> + * <li>Its phone number contains the phone number query + * <li>Its name represented in T9 contains the T9 query + * <li>Its name contains the query + * </ul> + */ + public void filter(@Nullable String query) { + if (query == null) { + query = ""; + } + queryFilteredPositions.clear(); + + // On some devices, contacts have multiple rows with identical phone numbers. These numbers are + // considered duplicates. Since the order might not be guaranteed, we compare all of the numbers + // and hold onto the most qualified one as the one we want to display to the user. + // See #getQualification for details on how qualification is determined. + int previousMostQualifiedPosition = 0; + String previousName = ""; + String previousMostQualifiedNumber = ""; + + query = query.toLowerCase(); + cursor.moveToPosition(-1); + + while (cursor.moveToNext()) { + int position = cursor.getPosition(); + String currentNumber = cursor.getString(Projections.PHONE_NUMBER); + String currentName = cursor.getString(Projections.PHONE_DISPLAY_NAME); + + if (!previousName.equals(currentName)) { + previousName = currentName; + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + } else { + // Since the contact name is the same, check if this number is a duplicate + switch (getQualification(currentNumber, previousMostQualifiedNumber)) { + case Qualification.CURRENT_MORE_QUALIFIED: + // Number is a less qualified duplicate, ignore it. + continue; + case Qualification.NEW_NUMBER_IS_MORE_QUALIFIED: + // If number wasn't filtered out before, remove it and add it's more qualified version. + if (queryFilteredPositions.contains(previousMostQualifiedPosition)) { + queryFilteredPositions.remove(previousMostQualifiedPosition); + queryFilteredPositions.add(position); + } + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + continue; + case Qualification.NUMBERS_ARE_NOT_DUPLICATES: + default: + previousMostQualifiedNumber = currentNumber; + previousMostQualifiedPosition = position; + } + } + + if (TextUtils.isEmpty(query) + || QueryFilteringUtil.nameMatchesT9Query(query, previousName) + || QueryFilteringUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber) + || previousName.contains(query)) { + queryFilteredPositions.add(previousMostQualifiedPosition); + } + } + currentPosition = 0; + cursor.moveToFirst(); + } + + /** + * @param number that may or may not be more qualified than the existing most qualified number + * @param mostQualifiedNumber currently most qualified number associated with same contact + * @return {@link Qualification} where the more qualified number is the number with the most + * digits. If the digits are the same, the number with the most formatting is more qualified. + */ + private @Qualification int getQualification(String number, String mostQualifiedNumber) { + // Ignore formatting + String numberDigits = QueryFilteringUtil.digitsOnly(number); + String qualifiedNumberDigits = QueryFilteringUtil.digitsOnly(mostQualifiedNumber); + + // If the numbers are identical, return version with more formatting + if (qualifiedNumberDigits.equals(numberDigits)) { + if (mostQualifiedNumber.length() >= number.length()) { + return Qualification.CURRENT_MORE_QUALIFIED; + } else { + return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED; + } + } + + // If one number is a suffix of another, then return the longer one. + // If they are equal, then return the current most qualified number. + if (qualifiedNumberDigits.endsWith(numberDigits)) { + return Qualification.CURRENT_MORE_QUALIFIED; + } + if (numberDigits.endsWith(qualifiedNumberDigits)) { + return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED; + } + return Qualification.NUMBERS_ARE_NOT_DUPLICATES; + } + + @Override + public boolean moveToPosition(int position) { + currentPosition = position; + return currentPosition < getCount() + && cursor.moveToPosition(queryFilteredPositions.get(currentPosition)); + } + + @Override + public boolean move(int offset) { + currentPosition += offset; + return moveToPosition(currentPosition); + } + + @Override + public int getCount() { + return queryFilteredPositions.size(); + } + + @Override + public boolean isFirst() { + return currentPosition == 0; + } + + @Override + public boolean isLast() { + return currentPosition == getCount() - 1; + } + + @Override + public int getPosition() { + return currentPosition; + } + + @Override + public boolean moveToFirst() { + return moveToPosition(0); + } + + @Override + public boolean moveToLast() { + return moveToPosition(getCount() - 1); + } + + @Override + public boolean moveToNext() { + return moveToPosition(++currentPosition); + } + + @Override + public boolean moveToPrevious() { + return moveToPosition(--currentPosition); + } + + // Methods below simply call the corresponding method in cursor. + @Override + public boolean isBeforeFirst() { + return cursor.isBeforeFirst(); + } + + @Override + public boolean isAfterLast() { + return cursor.isAfterLast(); + } + + @Override + public int getColumnIndex(String columnName) { + return cursor.getColumnIndex(columnName); + } + + @Override + public int getColumnIndexOrThrow(String columnName) { + return cursor.getColumnIndexOrThrow(columnName); + } + + @Override + public String getColumnName(int columnIndex) { + return cursor.getColumnName(columnIndex); + } + + @Override + public String[] getColumnNames() { + return cursor.getColumnNames(); + } + + @Override + public int getColumnCount() { + return cursor.getColumnCount(); + } + + @Override + public byte[] getBlob(int columnIndex) { + return cursor.getBlob(columnIndex); + } + + @Override + public String getString(int columnIndex) { + return cursor.getString(columnIndex); + } + + @Override + public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { + cursor.copyStringToBuffer(columnIndex, buffer); + } + + @Override + public short getShort(int columnIndex) { + return cursor.getShort(columnIndex); + } + + @Override + public int getInt(int columnIndex) { + return cursor.getInt(columnIndex); + } + + @Override + public long getLong(int columnIndex) { + return cursor.getLong(columnIndex); + } + + @Override + public float getFloat(int columnIndex) { + return cursor.getFloat(columnIndex); + } + + @Override + public double getDouble(int columnIndex) { + return cursor.getDouble(columnIndex); + } + + @Override + public int getType(int columnIndex) { + return cursor.getType(columnIndex); + } + + @Override + public boolean isNull(int columnIndex) { + return cursor.isNull(columnIndex); + } + + @Override + public void deactivate() { + cursor.deactivate(); + } + + @Override + public boolean requery() { + return cursor.requery(); + } + + @Override + public void close() { + cursor.close(); + } + + @Override + public boolean isClosed() { + return cursor.isClosed(); + } + + @Override + public void registerContentObserver(ContentObserver observer) { + cursor.registerContentObserver(observer); + } + + @Override + public void unregisterContentObserver(ContentObserver observer) { + cursor.unregisterContentObserver(observer); + } + + @Override + public void registerDataSetObserver(DataSetObserver observer) { + cursor.registerDataSetObserver(observer); + } + + @Override + public void unregisterDataSetObserver(DataSetObserver observer) { + cursor.unregisterDataSetObserver(observer); + } + + @Override + public void setNotificationUri(ContentResolver cr, Uri uri) { + cursor.setNotificationUri(cr, uri); + } + + @Override + public Uri getNotificationUri() { + return cursor.getNotificationUri(); + } + + @Override + public boolean getWantsAllOnMoveCalls() { + return cursor.getWantsAllOnMoveCalls(); + } + + @Override + public void setExtras(Bundle extras) { + cursor.setExtras(extras); + } + + @Override + public Bundle getExtras() { + return cursor.getExtras(); + } + + @Override + public Bundle respond(Bundle extras) { + return cursor.respond(extras); + } +} diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java new file mode 100644 index 000000000..5f06b5991 --- /dev/null +++ b/java/com/android/dialer/searchfragment/cp2/SearchContactViewHolder.java @@ -0,0 +1,204 @@ +/* + * Copyright (C) 2017 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.searchfragment.cp2; + +import android.content.Context; +import android.content.res.Resources; +import android.database.Cursor; +import android.net.Uri; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Contacts; +import android.support.annotation.IntDef; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.text.TextUtils; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; +import android.widget.QuickContactBadge; +import android.widget.TextView; +import com.android.contacts.common.ContactPhotoManager; +import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.dialer.callintent.CallInitiationType.Type; +import com.android.dialer.callintent.CallIntentBuilder; +import com.android.dialer.common.Assert; +import com.android.dialer.searchfragment.common.Projections; +import com.android.dialer.searchfragment.common.QueryBoldingUtil; +import com.android.dialer.searchfragment.common.R; +import com.android.dialer.telecom.TelecomUtil; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** ViewHolder for a contact row. */ +public final class SearchContactViewHolder extends ViewHolder implements OnClickListener { + + /** IntDef for the different types of actions that can be shown. */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({CallToAction.NONE, CallToAction.VIDEO_CALL, CallToAction.SHARE_AND_CALL}) + @interface CallToAction { + int NONE = 0; + int VIDEO_CALL = 1; + int SHARE_AND_CALL = 2; + } + + private final QuickContactBadge photo; + private final TextView nameOrNumberView; + private final TextView numberView; + private final ImageView callToActionView; + private final Context context; + + private String number; + private @CallToAction int currentAction; + + public SearchContactViewHolder(View view) { + super(view); + view.setOnClickListener(this); + photo = view.findViewById(R.id.photo); + nameOrNumberView = view.findViewById(R.id.primary); + numberView = view.findViewById(R.id.secondary); + callToActionView = view.findViewById(R.id.call_to_action); + context = view.getContext(); + } + + /** + * Binds the ViewHolder with a cursor from {@link SearchContactsCursorLoader} with the data found + * at the cursors set position. + */ + public void bind(Cursor cursor, String query) { + number = cursor.getString(Projections.PHONE_NUMBER); + String name = cursor.getString(Projections.PHONE_DISPLAY_NAME); + String label = getLabel(context.getResources(), cursor); + String secondaryInfo = + TextUtils.isEmpty(label) + ? number + : context.getString( + com.android.contacts.common.R.string.call_subject_type_and_number, label, number); + + nameOrNumberView.setText(QueryBoldingUtil.getNameWithQueryBolded(query, name)); + numberView.setText(QueryBoldingUtil.getNumberWithQueryBolded(query, secondaryInfo)); + setCallToAction(cursor); + + if (shouldShowPhoto(cursor, name)) { + nameOrNumberView.setVisibility(View.VISIBLE); + photo.setVisibility(View.VISIBLE); + String photoUri = cursor.getString(Projections.PHONE_PHOTO_URI); + ContactPhotoManager.getInstance(context) + .loadDialerThumbnailOrPhoto( + photo, + getContactUri(cursor), + cursor.getLong(Projections.PHONE_PHOTO_ID), + photoUri == null ? null : Uri.parse(photoUri), + name, + LetterTileDrawable.TYPE_DEFAULT); + } else { + nameOrNumberView.setVisibility(View.GONE); + photo.setVisibility(View.INVISIBLE); + } + } + + private boolean shouldShowPhoto(Cursor cursor, String currentName) { + int currentPosition = cursor.getPosition(); + if (currentPosition == 0) { + return true; + } else { + cursor.moveToPosition(currentPosition - 1); + String previousName = cursor.getString(Projections.PHONE_DISPLAY_NAME); + cursor.moveToPosition(currentPosition); + return !currentName.equals(previousName); + } + } + + private static Uri getContactUri(Cursor cursor) { + long contactId = cursor.getLong(Projections.PHONE_ID); + String lookupKey = cursor.getString(Projections.PHONE_LOOKUP_KEY); + return Contacts.getLookupUri(contactId, lookupKey); + } + + // TODO: handle CNAP and cequint types. + // TODO: unify this into a utility method with CallLogAdapter#getNumberType + private static String getLabel(Resources resources, Cursor cursor) { + int numberType = cursor.getInt(Projections.PHONE_TYPE); + String numberLabel = cursor.getString(Projections.PHONE_LABEL); + + // Returns empty label instead of "custom" if the custom label is empty. + if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) { + return ""; + } + return (String) Phone.getTypeLabel(resources, numberType, numberLabel); + } + + private void setCallToAction(Cursor cursor) { + currentAction = getCallToAction(cursor); + switch (currentAction) { + case CallToAction.NONE: + callToActionView.setVisibility(View.GONE); + callToActionView.setOnClickListener(null); + break; + case CallToAction.SHARE_AND_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(com.android.contacts.common.R.drawable.ic_phone_attach)); + callToActionView.setOnClickListener(this); + break; + case CallToAction.VIDEO_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(R.drawable.quantum_ic_videocam_white_24)); + callToActionView.setOnClickListener(this); + break; + default: + throw Assert.createIllegalStateFailException( + "Invalid Call to action type: " + currentAction); + } + } + + private static @CallToAction int getCallToAction(Cursor cursor) { + int carrierPresence = cursor.getInt(Projections.PHONE_CARRIER_PRESENCE); + if ((carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) == 1) { + return CallToAction.VIDEO_CALL; + } + + // TODO: enriched calling + return CallToAction.NONE; + } + + @Override + public void onClick(View view) { + if (view == callToActionView) { + switch (currentAction) { + case CallToAction.SHARE_AND_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(com.android.contacts.common.R.drawable.ic_phone_attach)); + // TODO: open call composer. + break; + case CallToAction.VIDEO_CALL: + callToActionView.setVisibility(View.VISIBLE); + callToActionView.setImageDrawable( + context.getDrawable(R.drawable.quantum_ic_videocam_white_24)); + // TODO: place a video call + break; + case CallToAction.NONE: + default: + throw Assert.createIllegalStateFailException( + "Invalid Call to action type: " + currentAction); + } + } else { + // TODO: set the correct call initiation type. + TelecomUtil.placeCall(context, new CallIntentBuilder(number, Type.REGULAR_SEARCH).build()); + } + } +} diff --git a/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java new file mode 100644 index 000000000..c72f28b25 --- /dev/null +++ b/java/com/android/dialer/searchfragment/cp2/SearchContactsCursorLoader.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2017 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.searchfragment.cp2; + +import android.content.Context; +import android.content.CursorLoader; +import android.database.Cursor; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import com.android.dialer.searchfragment.common.Projections; + +/** Cursor Loader for CP2 contacts. */ +public final class SearchContactsCursorLoader extends CursorLoader { + + public SearchContactsCursorLoader(Context context) { + super( + context, + Phone.CONTENT_URI, + Projections.PHONE_PROJECTION, + null, + null, + Phone.SORT_KEY_PRIMARY + " ASC"); + } + + @Override + public Cursor loadInBackground() { + return new SearchContactCursor(super.loadInBackground(), null); + } +} diff --git a/java/com/android/dialer/searchfragment/list/AndroidManifest.xml b/java/com/android/dialer/searchfragment/list/AndroidManifest.xml new file mode 100644 index 000000000..e0890cc2c --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/AndroidManifest.xml @@ -0,0 +1,16 @@ +<!-- + ~ Copyright (C) 2017 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 + --> +<manifest package="com.android.dialer.searchfragment.list"/>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/list/HeaderViewHolder.java b/java/com/android/dialer/searchfragment/list/HeaderViewHolder.java new file mode 100644 index 000000000..dd35b13ee --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/HeaderViewHolder.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2017 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.searchfragment.list; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +/** ViewHolder for header rows in {@link NewSearchFragment}. */ +final class HeaderViewHolder extends RecyclerView.ViewHolder { + + private final TextView header; + + HeaderViewHolder(View view) { + super(view); + header = view.findViewById(R.id.header); + } + + public void setHeader(String header) { + this.header.setText(header); + } +} diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java new file mode 100644 index 000000000..fcc87c386 --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2017 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.searchfragment.list; + +import android.app.Fragment; +import android.app.LoaderManager.LoaderCallbacks; +import android.content.Loader; +import android.database.Cursor; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor; +import com.android.dialer.common.concurrent.ThreadUtil; +import com.android.dialer.searchfragment.cp2.SearchContactsCursorLoader; +import com.android.dialer.searchfragment.nearbyplaces.NearbyPlacesCursorLoader; + +/** Fragment used for searching contacts. */ +public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> { + + // Since some of our queries can generate network requests, we should delay them until the user + // stops typing to prevent generating too much network traffic. + private static final int NETWORK_SEARCH_DELAY_MILLIS = 300; + + private static final int CONTACTS_LOADER_ID = 0; + private static final int NEARBY_PLACES_ID = 1; + + private RecyclerView recyclerView; + private SearchAdapter adapter; + private String query; + + private final Runnable loadNearbyPlacesRunnable = + () -> getLoaderManager().restartLoader(NEARBY_PLACES_ID, null, this); + + @Nullable + @Override + public View onCreateView( + LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) { + getLoaderManager().initLoader(0, null, this); + View view = inflater.inflate(R.layout.fragment_search, parent, false); + adapter = new SearchAdapter(getContext()); + recyclerView = view.findViewById(R.id.recycler_view); + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + recyclerView.setAdapter(adapter); + + getLoaderManager().initLoader(CONTACTS_LOADER_ID, null, this); + loadNearbyPlacesCursor(); + return view; + } + + @Override + public Loader<Cursor> onCreateLoader(int id, Bundle bundle) { + // TODO add enterprise loader + if (id == CONTACTS_LOADER_ID) { + return new SearchContactsCursorLoader(getContext()); + } else if (id == NEARBY_PLACES_ID) { + return new NearbyPlacesCursorLoader(getContext(), query); + } else { + throw new IllegalStateException("Invalid loader id: " + id); + } + } + + @Override + public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { + if (loader instanceof SearchContactsCursorLoader) { + adapter.setContactsCursor(cursor); + } else if (loader instanceof NearbyPlacesCursorLoader) { + adapter.setNearbyPlacesCursor(cursor); + } else { + throw new IllegalStateException("Invalid loader: " + loader); + } + } + + @Override + public void onLoaderReset(Loader<Cursor> loader) { + adapter.clear(); + recyclerView.setAdapter(null); + } + + public void setQuery(String query) { + this.query = query; + if (adapter != null) { + adapter.setQuery(query); + loadNearbyPlacesCursor(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + // close adapters + adapter.setNearbyPlacesCursor(null); + adapter.setContactsCursor(null); + ThreadUtil.getUiThreadHandler().removeCallbacks(loadNearbyPlacesRunnable); + } + + private void loadNearbyPlacesCursor() { + // Cancel existing load if one exists. + ThreadUtil.getUiThreadHandler().removeCallbacks(loadNearbyPlacesRunnable); + + // If nearby places is not enabled, do not try to load them. + if (!PhoneDirectoryExtenderAccessor.get(getContext()).isEnabled(getContext())) { + return; + } + ThreadUtil.getUiThreadHandler() + .postDelayed(loadNearbyPlacesRunnable, NETWORK_SEARCH_DELAY_MILLIS); + } +} diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java new file mode 100644 index 000000000..023513e47 --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2017 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.searchfragment.list; + +import android.content.Context; +import android.database.Cursor; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.view.LayoutInflater; +import android.view.ViewGroup; +import com.android.dialer.common.Assert; +import com.android.dialer.searchfragment.cp2.SearchContactViewHolder; +import com.android.dialer.searchfragment.list.SearchCursorManager.RowType; +import com.android.dialer.searchfragment.nearbyplaces.NearbyPlaceViewHolder; + +/** RecyclerView adapter for {@link NewSearchFragment}. */ +class SearchAdapter extends RecyclerView.Adapter<ViewHolder> { + + private final SearchCursorManager searchCursorManager; + private final Context context; + + private String query; + + SearchAdapter(Context context) { + searchCursorManager = new SearchCursorManager(); + this.context = context; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup root, @RowType int rowType) { + switch (rowType) { + case RowType.CONTACT_ROW: + return new SearchContactViewHolder( + LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false)); + case RowType.NEARBY_PLACES_ROW: + return new NearbyPlaceViewHolder( + LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false)); + case RowType.DIRECTORY_HEADER: + case RowType.NEARBY_PLACES_HEADER: + return new HeaderViewHolder( + LayoutInflater.from(context).inflate(R.layout.header_layout, root, false)); + case RowType.DIRECTORY_ROW: // TODO: add directory rows to search + case RowType.INVALID: + default: + throw Assert.createIllegalStateFailException("Invalid RowType: " + rowType); + } + } + + @Override + public @RowType int getItemViewType(int position) { + return searchCursorManager.getRowType(position); + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + if (holder instanceof SearchContactViewHolder) { + Cursor cursor = searchCursorManager.getCursor(position); + ((SearchContactViewHolder) holder).bind(cursor, query); + } else if (holder instanceof NearbyPlaceViewHolder) { + Cursor cursor = searchCursorManager.getCursor(position); + ((NearbyPlaceViewHolder) holder).bind(cursor, query); + } else if (holder instanceof HeaderViewHolder) { + String header = context.getString(searchCursorManager.getHeaderText(position)); + ((HeaderViewHolder) holder).setHeader(header); + } else { + throw Assert.createIllegalStateFailException("Invalid ViewHolder: " + holder); + } + } + + void setContactsCursor(Cursor cursor) { + searchCursorManager.setContactsCursor(cursor); + notifyDataSetChanged(); + } + + void clear() { + searchCursorManager.clear(); + } + + @Override + public int getItemCount() { + return searchCursorManager.getCount(); + } + + public void setQuery(String query) { + this.query = query; + searchCursorManager.setQuery(query); + notifyDataSetChanged(); + } + + public void setNearbyPlacesCursor(Cursor nearbyPlacesCursor) { + searchCursorManager.setNearbyPlacesCursor(nearbyPlacesCursor); + notifyDataSetChanged(); + } +} diff --git a/java/com/android/dialer/searchfragment/list/SearchCursorManager.java b/java/com/android/dialer/searchfragment/list/SearchCursorManager.java new file mode 100644 index 000000000..216a9ada9 --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/SearchCursorManager.java @@ -0,0 +1,273 @@ +/* + * Copyright (C) 2017 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.searchfragment.list; + +import android.database.Cursor; +import android.support.annotation.IntDef; +import android.support.annotation.StringRes; +import com.android.dialer.common.Assert; +import com.android.dialer.searchfragment.cp2.SearchContactCursor; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Manages all of the cursors needed for {@link SearchAdapter}. + * + * <p>This class accepts three cursors: + * + * <ul> + * <li>A contacts cursor {@link #setContactsCursor(Cursor)} + * <li>A google search results cursor {@link #setNearbyPlacesCursor(Cursor)} + * <li>A work directory cursor {@link #setCorpDirectoryCursor(Cursor)} + * </ul> + * + * <p>The key purpose of this class is to compose three aforementioned cursors together to function + * as one cursor. The key methods needed to utilize this class as a cursor are: + * + * <ul> + * <li>{@link #getCursor(int)} + * <li>{@link #getCount()} + * <li>{@link #getRowType(int)} + * </ul> + */ +final class SearchCursorManager { + + /** IntDef for the different types of rows that can be shown when searching. */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + SearchCursorManager.RowType.INVALID, + SearchCursorManager.RowType.CONTACT_ROW, + SearchCursorManager.RowType.NEARBY_PLACES_HEADER, + SearchCursorManager.RowType.NEARBY_PLACES_ROW, + SearchCursorManager.RowType.DIRECTORY_HEADER, + SearchCursorManager.RowType.DIRECTORY_ROW + }) + @interface RowType { + int INVALID = 0; + /** A row containing contact information for contacts stored locally on device. */ + int CONTACT_ROW = 1; + /** Header to mark the end of contact rows and start of nearby places rows. */ + int NEARBY_PLACES_HEADER = 2; + /** A row containing nearby places information/search results. */ + int NEARBY_PLACES_ROW = 3; + /** Header to mark the end of the previous row set and start of directory rows. */ + int DIRECTORY_HEADER = 4; + /** A row containing contact information for contacts stored externally in corp directories. */ + int DIRECTORY_ROW = 5; + } + + private Cursor contactsCursor = null; + private Cursor nearbyPlacesCursor = null; + private Cursor corpDirectoryCursor = null; + + void setContactsCursor(Cursor cursor) { + if (cursor == contactsCursor) { + return; + } + + if (contactsCursor != null && !contactsCursor.isClosed()) { + contactsCursor.close(); + } + + if (cursor != null && cursor.getCount() > 0) { + contactsCursor = cursor; + } else { + contactsCursor = null; + } + } + + void setNearbyPlacesCursor(Cursor cursor) { + if (cursor == nearbyPlacesCursor) { + return; + } + + if (nearbyPlacesCursor != null && !nearbyPlacesCursor.isClosed()) { + nearbyPlacesCursor.close(); + } + + if (cursor != null && cursor.getCount() > 0) { + nearbyPlacesCursor = cursor; + } else { + nearbyPlacesCursor = null; + } + } + + void setCorpDirectoryCursor(Cursor cursor) { + if (cursor == corpDirectoryCursor) { + return; + } + + if (corpDirectoryCursor != null && !corpDirectoryCursor.isClosed()) { + corpDirectoryCursor.close(); + } + + if (cursor != null && cursor.getCount() > 0) { + corpDirectoryCursor = cursor; + } else { + corpDirectoryCursor = null; + } + } + + void setQuery(String query) { + if (contactsCursor != null) { + // TODO: abstract this + ((SearchContactCursor) contactsCursor).filter(query); + } + } + + /** @return the sum of counts of all cursors, including headers. */ + int getCount() { + int count = 0; + if (contactsCursor != null) { + count += contactsCursor.getCount(); + } + + if (nearbyPlacesCursor != null) { + count++; // header + count += nearbyPlacesCursor.getCount(); + } + + if (corpDirectoryCursor != null) { + count++; // header + count += corpDirectoryCursor.getCount(); + } + + return count; + } + + @RowType + int getRowType(int position) { + if (contactsCursor != null) { + position -= contactsCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.CONTACT_ROW; + } + } + + if (nearbyPlacesCursor != null) { + if (position == 0) { + return SearchCursorManager.RowType.NEARBY_PLACES_HEADER; + } else { + position--; // header + } + + position -= nearbyPlacesCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.NEARBY_PLACES_ROW; + } + } + + if (corpDirectoryCursor != null) { + if (position == 0) { + return SearchCursorManager.RowType.DIRECTORY_HEADER; + } else { + position--; // header + } + + position -= corpDirectoryCursor.getCount(); + + if (position < 0) { + return SearchCursorManager.RowType.DIRECTORY_ROW; + } + } + + throw Assert.createIllegalStateFailException("No valid row type."); + } + + /** + * Gets cursor corresponding to position in coelesced list of search cursors. Callers should + * ensure that {@link #getRowType(int)} doesn't correspond to header position, otherwise an + * exception will be thrown. + * + * @param position in coalecsed list of search cursors + * @return Cursor moved to position specific to passed in position. + */ + Cursor getCursor(int position) { + if (contactsCursor != null) { + int count = contactsCursor.getCount(); + + if (position - count < 0) { + contactsCursor.moveToPosition(position); + return contactsCursor; + } + position -= count; + } + + if (nearbyPlacesCursor != null) { + Assert.checkArgument(position != 0, "No valid cursor, position is nearby places header."); + position--; // header + int count = nearbyPlacesCursor.getCount(); + + if (position - count < 0) { + nearbyPlacesCursor.moveToPosition(position); + return nearbyPlacesCursor; + } + position -= count; + } + + if (corpDirectoryCursor != null) { + Assert.checkArgument(position != 0, "No valid cursor, position is directory search header."); + position--; // header + int count = corpDirectoryCursor.getCount(); + + if (position - count < 0) { + corpDirectoryCursor.moveToPosition(position); + return corpDirectoryCursor; + } + position -= count; + } + + throw Assert.createIllegalStateFailException("No valid cursor."); + } + + @StringRes + int getHeaderText(int position) { + @RowType int rowType = getRowType(position); + switch (rowType) { + case RowType.NEARBY_PLACES_HEADER: + return R.string.nearby_places; + case RowType.DIRECTORY_HEADER: // TODO + case RowType.DIRECTORY_ROW: + case RowType.CONTACT_ROW: + case RowType.NEARBY_PLACES_ROW: + case RowType.INVALID: + default: + throw Assert.createIllegalStateFailException( + "Invalid row type, position " + position + " is rowtype " + rowType); + } + } + + /** removes all cursors. */ + void clear() { + if (contactsCursor != null) { + contactsCursor.close(); + contactsCursor = null; + } + + if (nearbyPlacesCursor != null) { + nearbyPlacesCursor.close(); + nearbyPlacesCursor = null; + } + + if (corpDirectoryCursor != null) { + corpDirectoryCursor.close(); + corpDirectoryCursor = null; + } + } +} diff --git a/java/com/android/dialer/searchfragment/list/res/layout/fragment_search.xml b/java/com/android/dialer/searchfragment/list/res/layout/fragment_search.xml new file mode 100644 index 000000000..06f234889 --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/res/layout/fragment_search.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> +<android.support.v7.widget.RecyclerView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/recycler_view" + android:layout_width="match_parent" + android:layout_height="match_parent"/> diff --git a/java/com/android/dialer/searchfragment/list/res/layout/header_layout.xml b/java/com/android/dialer/searchfragment/list/res/layout/header_layout.xml new file mode 100644 index 000000000..36af42ed9 --- /dev/null +++ b/java/com/android/dialer/searchfragment/list/res/layout/header_layout.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/header" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="16dp" + style="@style/SecondaryText"/> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/AndroidManifest.xml b/java/com/android/dialer/searchfragment/nearbyplaces/AndroidManifest.xml new file mode 100644 index 000000000..178cd83c3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/AndroidManifest.xml @@ -0,0 +1,16 @@ +<!-- + ~ Copyright (C) 2017 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 + --> +<manifest package="com.android.dialer.searchfragment.common"/>
\ No newline at end of file diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlaceViewHolder.java b/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlaceViewHolder.java new file mode 100644 index 000000000..b6e5a9013 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlaceViewHolder.java @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2017 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.searchfragment.nearbyplaces; + +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.provider.ContactsContract; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.QuickContactBadge; +import android.widget.TextView; +import com.android.contacts.common.ContactPhotoManager; +import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.dialer.callintent.CallInitiationType; +import com.android.dialer.callintent.CallIntentBuilder; +import com.android.dialer.searchfragment.common.Projections; +import com.android.dialer.searchfragment.common.QueryBoldingUtil; +import com.android.dialer.searchfragment.common.R; +import com.android.dialer.telecom.TelecomUtil; + +/** ViewHolder for a nearby place row. */ +public final class NearbyPlaceViewHolder extends RecyclerView.ViewHolder + implements View.OnClickListener { + + private final Context context; + private final TextView placeName; + private final TextView placeAddress; + private final QuickContactBadge photo; + + private String number; + + public NearbyPlaceViewHolder(View view) { + super(view); + view.setOnClickListener(this); + photo = view.findViewById(R.id.photo); + placeName = view.findViewById(R.id.primary); + placeAddress = view.findViewById(R.id.secondary); + context = view.getContext(); + } + + /** + * Binds the ViewHolder with a cursor from {@link NearbyPlacesCursorLoader} with the data found at + * the cursors set position. + */ + public void bind(Cursor cursor, String query) { + number = cursor.getString(Projections.PHONE_NUMBER); + String name = cursor.getString(Projections.PHONE_DISPLAY_NAME); + String address = cursor.getString(Projections.PHONE_LABEL); + + placeName.setText(QueryBoldingUtil.getNameWithQueryBolded(query, name)); + placeAddress.setText(QueryBoldingUtil.getNameWithQueryBolded(query, address)); + + String photoUri = cursor.getString(Projections.PHONE_PHOTO_URI); + ContactPhotoManager.getInstance(context) + .loadDialerThumbnailOrPhoto( + photo, + getContactUri(cursor), + cursor.getLong(Projections.PHONE_PHOTO_ID), + photoUri == null ? null : Uri.parse(photoUri), + name, + LetterTileDrawable.TYPE_DEFAULT); + } + + private static Uri getContactUri(Cursor cursor) { + long contactId = cursor.getLong(Projections.PHONE_ID); + String lookupKey = cursor.getString(Projections.PHONE_LOOKUP_KEY); + return ContactsContract.Contacts.getLookupUri(contactId, lookupKey); + } + + @Override + public void onClick(View v) { + TelecomUtil.placeCall( + context, new CallIntentBuilder(number, CallInitiationType.Type.REGULAR_SEARCH).build()); + } +} diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlacesCursorLoader.java b/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlacesCursorLoader.java new file mode 100644 index 000000000..9f3193e92 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/NearbyPlacesCursorLoader.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2017 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.searchfragment.nearbyplaces; + +import android.content.Context; +import android.content.CursorLoader; +import android.net.Uri; +import android.provider.ContactsContract; +import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor; +import com.android.dialer.searchfragment.common.Projections; + +/** Cursor loader for nearby places search results. */ +public final class NearbyPlacesCursorLoader extends CursorLoader { + + private static final String MAX_RESULTS = "3"; + + public NearbyPlacesCursorLoader(Context context, String query) { + super(context, getContentUri(context, query), Projections.PHONE_PROJECTION, null, null, null); + } + + private static Uri getContentUri(Context context, String query) { + return PhoneDirectoryExtenderAccessor.get(context) + .getContentUri() + .buildUpon() + .appendPath(query) + .appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, MAX_RESULTS) + .build(); + } +} diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-af/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-af/strings.xml new file mode 100644 index 000000000..21eb4b11d --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-af/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Nabygeleë plekke"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-am/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-am/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-am/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ar/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ar/strings.xml new file mode 100644 index 000000000..d68b4d1ee --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ar/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"الأماكن المجاورة"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-az/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-az/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-az/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-b+sr+Latn/strings.xml new file mode 100644 index 000000000..bb9f06fe7 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-b+sr+Latn/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Obližnja mesta"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-be/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-be/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-be/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bg/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bg/strings.xml new file mode 100644 index 000000000..e8839532a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bg/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Места в района"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bn/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bn/strings.xml new file mode 100644 index 000000000..4bc3fedb4 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bn/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"আশপাশের জায়গাগুলি"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bs/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bs/strings.xml new file mode 100644 index 000000000..f3fb92187 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-bs/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Mjesta u blizini"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ca/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ca/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ca/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cs/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cs/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cs/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-da/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-da/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-da/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-de/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-de/strings.xml new file mode 100644 index 000000000..9e2db4a32 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-de/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Orte in der Nähe"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-el/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-el/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-el/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rAU/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rAU/strings.xml new file mode 100644 index 000000000..077827315 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rAU/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Places nearby"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rGB/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rGB/strings.xml new file mode 100644 index 000000000..077827315 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rGB/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Places nearby"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rIN/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rIN/strings.xml new file mode 100644 index 000000000..077827315 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rIN/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Places nearby"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rUS/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rUS/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rUS/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es/strings.xml new file mode 100644 index 000000000..fada6bcaf --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Sitios cercanos"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-et/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-et/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-et/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eu/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eu/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eu/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fa/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fa/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fa/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fi/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fi/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fi/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr-rCA/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr-rCA/strings.xml new file mode 100644 index 000000000..d65e7bd55 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr-rCA/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Adresses à proximité"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr/strings.xml new file mode 100644 index 000000000..d65e7bd55 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fr/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Adresses à proximité"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gl/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gl/strings.xml new file mode 100644 index 000000000..5a4cce7e0 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gl/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Lugares próximos"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gu/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gu/strings.xml new file mode 100644 index 000000000..ee32e466f --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gu/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"નજીકના સ્થળો"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hi/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hi/strings.xml new file mode 100644 index 000000000..079c03e04 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hi/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"आस-पास के स्थल"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hr/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hr/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hr/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hu/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hu/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hu/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hy/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hy/strings.xml new file mode 100644 index 000000000..3a2ba3938 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-hy/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Մոտակա վայրեր"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-in/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-in/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-in/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-is/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-is/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-is/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-it/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-it/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-it/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-iw/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-iw/strings.xml new file mode 100644 index 000000000..0f07995f3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-iw/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"מקומות קרובים"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ja/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ja/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ja/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ka/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ka/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ka/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kk/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kk/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kk/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-km/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-km/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-km/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kn/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kn/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kn/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ko/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ko/strings.xml new file mode 100644 index 000000000..f05a33289 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ko/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"주변 장소"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ky/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ky/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ky/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lo/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lo/strings.xml new file mode 100644 index 000000000..2ff0e8548 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lo/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"ສະຖານທີ່ໃກ້ຄຽງ"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lt/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lt/strings.xml new file mode 100644 index 000000000..9baf54044 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lt/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Netoliese esančios vietos"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lv/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lv/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lv/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mk/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mk/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mk/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ml/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ml/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ml/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mn/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mn/strings.xml new file mode 100644 index 000000000..707a6c955 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mn/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Ойролцоох газрууд"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mr/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mr/strings.xml new file mode 100644 index 000000000..862cd0419 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-mr/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"जवळपासची ठिकाणे"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ms/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ms/strings.xml new file mode 100644 index 000000000..aed0bbb4d --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ms/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Tempat berdekatan"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-my/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-my/strings.xml new file mode 100644 index 000000000..74e60a089 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-my/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"အနီးတဝိုက်ရှိ နေရာများ"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nb/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nb/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nb/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ne/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ne/strings.xml new file mode 100644 index 000000000..29b6854fe --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ne/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"नजिकका स्थानहरू"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nl/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nl/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-nl/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-no/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-no/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-no/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pa/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pa/strings.xml new file mode 100644 index 000000000..1d4d472a3 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pa/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"ਨਜ਼ਦੀਕੀ ਸਥਾਨ"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pl/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pl/strings.xml new file mode 100644 index 000000000..c00b6081a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pl/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Miejsca w pobliżu"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rBR/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rBR/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rBR/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rPT/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rPT/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt-rPT/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-pt/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ro/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ro/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ro/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ru/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ru/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ru/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-si/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-si/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-si/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sk/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sk/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sk/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sl/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sl/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sl/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sq/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sq/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sq/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sr/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sr/strings.xml new file mode 100644 index 000000000..21af04328 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sr/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Оближња места"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sv/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sv/strings.xml new file mode 100644 index 000000000..c309b8df4 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sv/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Platser i närheten"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sw/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sw/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sw/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ta/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ta/strings.xml new file mode 100644 index 000000000..ce7496e53 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ta/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"அருகிலுள்ள இடங்கள்"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-te/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-te/strings.xml new file mode 100644 index 000000000..c8229fb64 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-te/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"సమీప స్థలాలు"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-th/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-th/strings.xml new file mode 100644 index 000000000..1167d2f57 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-th/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"สถานที่ใกล้เคียง"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tl/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tl/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tl/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tr/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tr/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-tr/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uk/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uk/strings.xml new file mode 100644 index 000000000..a3936be25 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uk/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"Місця поблизу"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ur/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ur/strings.xml new file mode 100644 index 000000000..1a220b3c2 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ur/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"قریبی مقامات"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uz/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uz/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-uz/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vi/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vi/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vi/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rCN/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rCN/strings.xml new file mode 100644 index 000000000..e060cb589 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rCN/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"附近的地点"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rHK/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rHK/strings.xml new file mode 100644 index 000000000..5cdf5b9a7 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rHK/strings.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="nearby_places" msgid="275117539511113867">"附近地點"</string> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rTW/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rTW/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zh-rTW/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zu/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zu/strings.xml new file mode 100644 index 000000000..8039ea04a --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-zu/strings.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- no translation found for nearby_places (275117539511113867) --> + <skip /> +</resources> diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values/strings.xml new file mode 100644 index 000000000..ed8068018 --- /dev/null +++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values/strings.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> +<resources> + <!-- Label for a list of local search results [CHAR LIMIT=30]--> + <string name="nearby_places">Nearby places</string> +</resources>
\ No newline at end of file |