Lines Matching refs:Feature
472 * Represents a feature that has been automatically added due to
480 * Name of the implied feature.
490 * List of human-readable reasons for why this feature was implied.
495 struct Feature {
496 Feature() : required(false), version(-1) {}
497 Feature(bool required, int32_t version = -1) : required(required), version(version) {}
500 * Whether the feature is required.
505 * What version of the feature is requested.
511 * Represents a <feature-group> tag in the AndroidManifest.xml
524 KeyedVector<String8, Feature> features;
540 ImpliedFeature* feature = &impliedFeatures->editValueAt(idx);
542 // A non-sdk 23 implied feature takes precedence.
543 if (feature->impliedBySdk23 && !sdk23) {
544 feature->impliedBySdk23 = false;
546 feature->reasons.add(String8(reason));
551 printf("feature-group: label='%s'\n", grp.label.string());
559 const Feature& feature = grp.features[i];
560 const bool required = feature.required;
561 const int32_t version = feature.version;
564 printf(" uses-feature%s: name='%s'", (required ? "" : "-not-required"),
578 // The feature is explicitly set, no need to use implied
587 printf(" uses-feature%s: name='%s'\n", sdk23Suffix, printableFeatureName.string());
588 printf(" uses-implied-feature%s: name='%s' reason='", sdk23Suffix,
615 grp->features.add(String8("android.hardware.camera"), Feature(true));
618 grp->features.add(String8("android.hardware.location"), Feature(true));
620 grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
622 grp->features.add(String8("android.hardware.touchscreen.multitouch"), Feature(true));
623 grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
1015 // some new uses-feature constants in 2.1 and 2.2. In most cases, the
1017 // request the corresponding <uses-feature>, presume it's there anyway".
1438 } else if (tag == "feature-group") {
1449 } else if (tag == "uses-feature") {
1473 commonFeatures.features.add(name, Feature(req != 0, version));
1796 } else if (withinFeatureGroup && tag == "uses-feature") {
1802 Feature feature(true);
1807 feature.version = featureVers;
1815 top.features.add(name, feature);
2009 "default feature for all apps", false);
2013 // If no <feature-group> tags were defined, apply auto-implied features.
2017 // <feature-group> tags are defined, so we ignore implied features and
2025 // Merge the features defined in the top level (not inside a <feature-group>)
2026 // with this feature group.