| 711 | } |
| 712 | |
| 713 | static void fullyQualifyClassName(const String8& package, sp<XMLNode> node, |
| 714 | const String16& attrName) { |
| 715 | XMLNode::attribute_entry* attr = node->editAttribute( |
| 716 | String16("http://schemas.android.com/apk/res/android"), attrName); |
| 717 | if (attr != NULL) { |
| 718 | String8 name(attr->string); |
| 719 | |
| 720 | // asdf --> package.asdf |
| 721 | // .asdf .a.b --> package.asdf package.a.b |
| 722 | // asdf.adsf --> asdf.asdf |
| 723 | String8 className; |
| 724 | const char* p = name.string(); |
| 725 | const char* q = strchr(p, '.'); |
| 726 | if (p == q) { |
| 727 | className += package; |
| 728 | className += name; |
| 729 | } else if (q == NULL) { |
| 730 | className += package; |
| 731 | className += "."; |
| 732 | className += name; |
| 733 | } else { |
| 734 | className += name; |
| 735 | } |
| 736 | NOISY(printf("Qualifying class '%s' to '%s'", name.string(), className.string())); |
| 737 | attr->string.setTo(String16(className)); |
| 738 | } |
| 739 | } |
| 740 | |
| 741 | status_t massageManifest(Bundle* bundle, sp<XMLNode> root) |
| 742 | { |
no test coverage detected