blob: c57770e3f187734f58a2210f32ed92d4e466f481 [file] [log] [blame]
Dianne Hackborne6b68032011-10-13 16:26:02 -07001//
2// Copyright 2011 The Android Open Source Project
3//
4// Build resource files from raw assets.
5//
6
7#ifndef RESOURCE_FILTER_H
8#define RESOURCE_FILTER_H
9
10#include "AaptAssets.h"
11
12/**
13 * Implements logic for parsing and handling "-c" and "--preferred-configurations"
14 * options.
15 */
16class ResourceFilter
17{
18public:
Anton Krumina2ef5c02014-03-12 14:46:44 -070019 ResourceFilter() : mData(), mContainsPseudoAccented(false),
20 mContainsPseudoBidi(false) {}
Dianne Hackborne6b68032011-10-13 16:26:02 -070021 status_t parse(const char* arg);
22 bool isEmpty() const;
Dianne Hackborne6b68032011-10-13 16:26:02 -070023 bool match(int axis, const ResTable_config& config) const;
24 bool match(const ResTable_config& config) const;
Narayan Kamath788fa412014-01-21 15:32:36 +000025 const SortedVector<AxisValue>* configsForAxis(int axis) const;
Anton Krumina2ef5c02014-03-12 14:46:44 -070026 inline bool containsPseudo() const { return mContainsPseudoAccented; }
27 inline bool containsPseudoBidi() const { return mContainsPseudoBidi; }
Dianne Hackborne6b68032011-10-13 16:26:02 -070028
29private:
Narayan Kamath788fa412014-01-21 15:32:36 +000030 bool match(int axis, const AxisValue& value) const;
31
32 KeyedVector<int,SortedVector<AxisValue> > mData;
Anton Krumina2ef5c02014-03-12 14:46:44 -070033 bool mContainsPseudoAccented;
34 bool mContainsPseudoBidi;
Dianne Hackborne6b68032011-10-13 16:26:02 -070035};
36
37#endif