Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Can't extend Activities. #265

Closed
Closed

Description

@renaudcerrato

Hi there!

For my application, I need 2 activities :

  • A classical one, for Tablets, using AA.
  • The second one, for Phone, using the "android:configChanges" attribute (to avoid application restart on orientation change).

Both will share the same code, excepted the 2nd one which will handle "onConfigurationChange" by itself.
Since we can't duplicate activities in the Manifest, my plan was to extends the first one :

class MyPhoneActivity extends MyTabletActivity_ { ... }

BUT, using @EActivity on MyTabletActivity, the generated class is final!

Is there any workaround possible, that's really frustrating!

(To those asking why I'm not using the same activity for both tablets and phone : the phone activity has the same layout in both portrait and landscape, while the tablet activity have different one. Thus, application restarting is useless concerning phone. Even more considering that handling configuration change is the ONLY way to keep webviews state.)

Activity

  1. pyricau commented on Jul 6, 2012

    @pyricau
    Contributor

    If you make MyTabletActivity abstract, then MyTabletActivity_ will not be final :) .

    Won't be perfect for your use case though, because you'd want to create an instance of MyTabletActivity too. I guess you could have an empty subclass of MyTabletActivity_, but it's not nice.

    Anyway : inheritance is usually a sign that's something wrong :) . You could extract the common behavior in a fragment or in an @EBean, and use activities that have nothing in common.

    Regarding webview state handling, you are quite right. Webviews are meant to be reloaded on configuration change.

  2. renaudcerrato commented on Jul 6, 2012

    @renaudcerrato
    Author

    Sounds like an interesting workaround, will try that.

    Concerning your suggestions, I'm already using fragments, but there's still some things like @OptionsItems and @ViewById/@FragmentById that can't be merged into an @ebean, leading to duplicate common code in both activities. Am I right?

  3. mathieuboniface commented on Nov 24, 2012

    @mathieuboniface
    Contributor

    Already fixed by #283

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions