Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Enums](https://developer.android.com/reference/java/util/Locale.FilteringMode#enumconstants) \| [Methods](https://developer.android.com/reference/java/util/Locale.FilteringMode#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/Locale.FilteringMode#inhmethods)

# Locale.FilteringMode


`
public
static
final

enum
Locale.FilteringMode
`


`


`

`

extends https://developer.android.com/reference/java/lang/Enum<https://developer.android.com/reference/java/util/Locale.FilteringMode>


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.lang.Enum](https://developer.android.com/reference/java/lang/Enum)\<[java.util.Locale.FilteringMode](https://developer.android.com/reference/java/util/Locale.FilteringMode)\> ||
|   | ↳ | java.util.Locale.FilteringMode |

<br />

*** ** * ** ***

This enum provides constants to select a filtering mode for locale
matching. Refer to [RFC 4647
Matching of Language Tags](https://tools.ietf.org/html/rfc4647) for details.

As an example, think of two Language Priority Lists each of which
includes only one language range and a set of following language tags:

```
   de (German)
   de-DE (German, Germany)
   de-Deva (German, in Devanagari script)
   de-Deva-DE (German, in Devanagari script, Germany)
   de-DE-1996 (German, Germany, orthography of 1996)
   de-Latn-DE (German, in Latin script, Germany)
   de-Latn-DE-1996 (German, in Latin script, Germany, orthography of 1996)
```
The filtering method will behave as follows:

| Filtering Mode | Language Priority List: `"de-DE"` | Language Priority List: `"de-*-DE"` |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode#AUTOSELECT_FILTERING` | Performs *basic* filtering and returns `"de-DE"` and `"de-DE-1996"`. | Performs *extended* filtering and returns `"de-DE"`, `"de-Deva-DE"`, `"de-DE-1996"`, `"de-Latn-DE"`, and `"de-Latn-DE-1996"`. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode#EXTENDED_FILTERING` | Performs *extended* filtering and returns `"de-DE"`, `"de-Deva-DE"`, `"de-DE-1996"`, `"de-Latn-DE"`, and `"de-Latn-DE-1996"`. | Same as above. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode#IGNORE_EXTENDED_RANGES` | Performs *basic* filtering and returns `"de-DE"` and `"de-DE-1996"`. | Performs *basic* filtering and returns `null` because nothing matches. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode#MAP_EXTENDED_RANGES` | Same as above. | Performs *basic* filtering and returns `"de-DE"` and `"de-DE-1996"` because `"de-*-DE"` is mapped to `"de-DE"`. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode#REJECT_EXTENDED_RANGES` | Same as above. | Throws `https://developer.android.com/reference/java/lang/IllegalArgumentException` because `"de-*-DE"` is not a valid basic language range. |
|---|---|---|
[Filtering method behavior]

<br />

**See also:**

- `https://developer.android.com/reference/java/util/Locale#filter(java.util.List<java.util.Locale.LanguageRange>,%20java.util.Collection<java.util.Locale>,%20java.util.Locale.FilteringMode)`
- `https://developer.android.com/reference/java/util/Locale#filterTags(java.util.List<java.util.Locale.LanguageRange>,%20java.util.Collection<java.lang.String>,%20java.util.Locale.FilteringMode)`

## Summary

| ### Enum values ||
|---|---|
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | `AUTOSELECT_FILTERING` Specifies automatic filtering mode based on the given Language Priority List consisting of language ranges. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | `EXTENDED_FILTERING` Specifies extended filtering. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | `IGNORE_EXTENDED_RANGES` Specifies basic filtering: Note that any extended language ranges included in the given Language Priority List are ignored. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | `MAP_EXTENDED_RANGES` Specifies basic filtering: If any extended language ranges are included in the given Language Priority List, they are mapped to the basic language range. |
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | `REJECT_EXTENDED_RANGES` Specifies basic filtering: If any extended language ranges are included in the given Language Priority List, the list is rejected and the filtering method throws `https://developer.android.com/reference/java/lang/IllegalArgumentException`. |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/java/util/Locale.FilteringMode` | ` https://developer.android.com/reference/java/util/Locale.FilteringMode#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` |
| ` static final https://developer.android.com/reference/java/util/Locale.FilteringMode` | ` https://developer.android.com/reference/java/util/Locale.FilteringMode#values()() ` |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Enum ` |---|---| | ` final https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Enum#clone()() ` Throws CloneNotSupportedException. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#compareTo(E)(https://developer.android.com/reference/java/util/Locale.FilteringMode o) ` Compares this enum with the specified object for order. | | ` final boolean` | ` https://developer.android.com/reference/java/lang/Enum#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other) ` Returns true if the specified object is equal to this enum constant. | | ` final void` | ` https://developer.android.com/reference/java/lang/Enum#finalize()() ` enum classes cannot have finalize methods. | | ` final https://developer.android.com/reference/java/lang/Class<https://developer.android.com/reference/java/util/Locale.FilteringMode>` | ` https://developer.android.com/reference/java/lang/Enum#getDeclaringClass()() ` Returns the Class object corresponding to this enum constant's enum type. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#hashCode()() ` Returns a hash code for this enum constant. | | ` final https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Enum#name()() ` Returns the name of this enum constant, exactly as declared in its enum declaration. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#ordinal()() ` Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero). | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Enum#toString()() ` Returns the name of this enum constant, as contained in the declaration. | | ` static <T extends https://developer.android.com/reference/java/lang/Enum<T>> T` | ` https://developer.android.com/reference/java/lang/Enum#valueOf(java.lang.Class<T>,%20java.lang.String)(https://developer.android.com/reference/java/lang/Class<T> enumClass, https://developer.android.com/reference/java/lang/String name) ` Returns the enum constant of the specified enum class with the specified name. | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/java/lang/Comparable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(https://developer.android.com/reference/java/util/Locale.FilteringMode o) ` Compares this object with the specified object for order. | ||

## Enum values

### AUTOSELECT_FILTERING

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Locale.FilteringMode AUTOSELECT_FILTERING
```

Specifies automatic filtering mode based on the given Language
Priority List consisting of language ranges. If all of the ranges
are basic, basic filtering is selected. Otherwise, extended
filtering is selected.

<br />

### EXTENDED_FILTERING

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Locale.FilteringMode EXTENDED_FILTERING
```

Specifies extended filtering.

<br />

### IGNORE_EXTENDED_RANGES

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Locale.FilteringMode IGNORE_EXTENDED_RANGES
```

Specifies basic filtering: Note that any extended language ranges
included in the given Language Priority List are ignored.

<br />

### MAP_EXTENDED_RANGES

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Locale.FilteringMode MAP_EXTENDED_RANGES
```

Specifies basic filtering: If any extended language ranges are
included in the given Language Priority List, they are mapped to the
basic language range. Specifically, a language range starting with a
subtag `"*"` is treated as a language range `"*"`. For
example, `"*-US"` is treated as `"*"`. If `"*"` is
not the first subtag, `"*"` and extra `"-"` are removed.
For example, `"ja-*-JP"` is mapped to `"ja-JP"`.

<br />

### REJECT_EXTENDED_RANGES

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Locale.FilteringMode REJECT_EXTENDED_RANGES
```

Specifies basic filtering: If any extended language ranges are
included in the given Language Priority List, the list is rejected
and the filtering method throws `https://developer.android.com/reference/java/lang/IllegalArgumentException`.

<br />

## Public methods

### valueOf

```
public static Locale.FilteringMode valueOf (String name)
```

<br />

<br />

| Parameters ||
|---|---|
| `name` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | <br /> |

### values

```
public static final FilteringMode[] values ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Locale.FilteringMode` | <br /> |