This repository was archived by the owner on Feb 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
The order of the ancestor elements are random #1591
Copy link
Copy link
Closed
Labels
Description
While I was working with #1156, I found a strange behavior of AA with ancestors elements.
Here is a test case for ancestors elements.
@EActivity
@OptionsMenu(R.menu.menu_1)
public abstract class TopActivity extends AppCompatActivity {
}
@EActivity
@OptionsMenu(R.menu.menu_2)
public abstract class SubActivity extends TopActivity {
}
@EActivity
@OptionsMenu(R.menu.menu_main)
public class MainActivity extends SubActivity {
}In this case, the generated code expected to be
public final class MainActivity_
extends MainActivity
implements HasViews
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_1, menu);
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_2, menu);
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
...However, it "sometimes" generate this code.
public final class MainActivity_
extends MainActivity
implements HasViews
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_2, menu);
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_1, menu);
menuInflater.inflate(com.github.shiraji.myapplication.R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
...If there is grand-parents class, the order of the ancestor elements are random. This is because how AA traverses and stores ancestors. Now, I am ready for pull request for this issue. Could you confirm this is a problem?