@@ -315,23 +315,24 @@ class AaptSymbolEntry
315315{
316316public:
317317 AaptSymbolEntry ()
318- : isPublic(false ), typeCode(TYPE_UNKNOWN)
318+ : isPublic(false ), isJavaSymbol( false ), typeCode(TYPE_UNKNOWN)
319319 {
320320 }
321321 AaptSymbolEntry (const String8& _name)
322- : name(_name), isPublic(false ), typeCode(TYPE_UNKNOWN)
322+ : name(_name), isPublic(false ), isJavaSymbol( false ), typeCode(TYPE_UNKNOWN)
323323 {
324324 }
325325 AaptSymbolEntry (const AaptSymbolEntry& o)
326326 : name(o.name), sourcePos(o.sourcePos), isPublic(o.isPublic)
327- , comment(o.comment), typeComment(o.typeComment)
327+ , isJavaSymbol(o.isJavaSymbol), comment(o.comment), typeComment(o.typeComment)
328328 , typeCode(o.typeCode), int32Val(o.int32Val), stringVal(o.stringVal)
329329 {
330330 }
331331 AaptSymbolEntry operator =(const AaptSymbolEntry& o)
332332 {
333333 sourcePos = o.sourcePos ;
334334 isPublic = o.isPublic ;
335+ isJavaSymbol = o.isJavaSymbol ;
335336 comment = o.comment ;
336337 typeComment = o.typeComment ;
337338 typeCode = o.typeCode ;
@@ -344,6 +345,7 @@ class AaptSymbolEntry
344345
345346 SourcePos sourcePos;
346347 bool isPublic;
348+ bool isJavaSymbol;
347349
348350 String16 comment;
349351 String16 typeComment;
@@ -401,6 +403,15 @@ class AaptSymbols : public RefBase
401403 return NO_ERROR;
402404 }
403405
406+ status_t makeSymbolJavaSymbol (const String8& name, const SourcePos& pos) {
407+ if (!check_valid_symbol_name (name, pos, " symbol" )) {
408+ return BAD_VALUE;
409+ }
410+ AaptSymbolEntry& sym = edit_symbol (name, &pos);
411+ sym.isJavaSymbol = true ;
412+ return NO_ERROR;
413+ }
414+
404415 void appendComment (const String8& name, const String16& comment, const SourcePos& pos) {
405416 if (comment.size () <= 0 ) {
406417 return ;
@@ -441,6 +452,8 @@ class AaptSymbols : public RefBase
441452 return sym;
442453 }
443454
455+ status_t applyJavaSymbols (const sp<AaptSymbols>& javaSymbols);
456+
444457 const KeyedVector<String8, AaptSymbolEntry>& getSymbols () const
445458 { return mSymbols ; }
446459 const DefaultKeyedVector<String8, sp<AaptSymbols> >& getNestedSymbols () const
@@ -509,7 +522,11 @@ class AaptAssets : public AaptDir
509522 virtual ~AaptAssets () { delete mRes ; }
510523
511524 const String8& getPackage () const { return mPackage ; }
512- void setPackage (const String8& package) { mPackage = package; mSymbolsPrivatePackage = package; }
525+ void setPackage (const String8& package) {
526+ mPackage = package;
527+ mSymbolsPrivatePackage = package;
528+ mHavePrivateSymbols = false ;
529+ }
513530
514531 const SortedVector<AaptGroupEntry>& getGroupEntries () const ;
515532
@@ -532,11 +549,22 @@ class AaptAssets : public AaptDir
532549
533550 sp<AaptSymbols> getSymbolsFor (const String8& name);
534551
552+ sp<AaptSymbols> getJavaSymbolsFor (const String8& name);
553+
554+ status_t applyJavaSymbols ();
555+
535556 const DefaultKeyedVector<String8, sp<AaptSymbols> >& getSymbols () const { return mSymbols ; }
536557
537558 String8 getSymbolsPrivatePackage () const { return mSymbolsPrivatePackage ; }
538- void setSymbolsPrivatePackage (const String8& pkg) { mSymbolsPrivatePackage = pkg; }
539-
559+ void setSymbolsPrivatePackage (const String8& pkg) {
560+ mSymbolsPrivatePackage = pkg;
561+ mHavePrivateSymbols = mSymbolsPrivatePackage != mPackage ;
562+ }
563+
564+ bool havePrivateSymbols () const { return mHavePrivateSymbols ; }
565+
566+ bool isJavaSymbol (const AaptSymbolEntry& sym, bool includePrivate) const ;
567+
540568 status_t buildIncludedResources (Bundle* bundle);
541569 status_t addIncludedResources (const sp<AaptFile>& file);
542570 const ResTable& getIncludedResources () const ;
@@ -576,7 +604,9 @@ class AaptAssets : public AaptDir
576604 String8 mPackage ;
577605 SortedVector<AaptGroupEntry> mGroupEntries ;
578606 DefaultKeyedVector<String8, sp<AaptSymbols> > mSymbols ;
607+ DefaultKeyedVector<String8, sp<AaptSymbols> > mJavaSymbols ;
579608 String8 mSymbolsPrivatePackage ;
609+ bool mHavePrivateSymbols ;
580610
581611 Vector<sp<AaptDir> > mResDirs ;
582612
0 commit comments