Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the same drawer to multiple activities #79

Open
phfrc opened this issue Mar 27, 2020 · 0 comments
Open

Add the same drawer to multiple activities #79

phfrc opened this issue Mar 27, 2020 · 0 comments

Comments

@phfrc
Copy link

phfrc commented Mar 27, 2020

Hello y'all,

I would like to add the drawer currently in MainActivity to Activities which are collapsable items. But I can't seem to find any tips on the web, should I do this by inheritance, if so, how or should I do this with fragments, and if so could you give me an example?

This is MainActivity :

class MainActivity : AppCompatActivity() {
    private lateinit var result: Drawer
    private lateinit var headerResult: AccountHeader

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)

        result = drawer {
            toolbar = [email protected]
            hasStableIds = true
            savedInstance = savedInstanceState
            showOnFirstLaunch = true

            headerResult = accountHeader {
                savedInstance = savedInstanceState
                translucentStatusBar = true



                    profile("CampusID", "[email protected]") {
                        iconUrl = "https://avatars3.githubusercontent.com/u/887462?v=3&s=460"
                        identifier = 101

                    }
            }
            sectionHeader("CampusiD"){
                divider= false
            }


            expandableItem("Mes infos") {
               // iicon = MaterialDesignIconic.Icon.gmi_collection_case_play
                identifier = 19
                selectable = false
                secondaryItem("Planning") {
                    level = 2
                    identifier = 2002
                    selectable = false
                    onClick(openActivity(PlanningActivity::class) )
                }
                secondaryItem("Relevés de notes") {
                    level = 2
                    identifier = 2003
                    selectable = false
                    onClick(openActivity(NotesActivity::class) )
                }

                secondaryItem("Trombinoscope") {
                    level = 2
                    identifier = 2004
                    selectable = false
                    onClick(openActivity(TrombinoscopeActivity::class) )
                }

                secondaryItem("Messages") {
                    level = 2
                    identifier = 2005
                    selectable = false
                    onClick(openActivity(MessagesActivity::class) )
                }
            }

            divider()

            expandableItem("Vie Etudiante") {
                // iicon = MaterialDesignIconic.Icon.gmi_collection_case_play
                identifier = 20
                selectable = false
                secondaryItem("Offres de stage") {
                    level = 2
                    identifier = 2006
                    selectable = false
                    onClick(openActivity(StagesActivity::class) )
                }
                secondaryItem("Petites Annonces") {
                    level = 2
                    identifier = 2007
                    selectable = false
                    onClick(openActivity(AnnoncesActivity::class) )
                }

                secondaryItem("Messages globaux") {
                    level = 2
                    identifier = 2008
                    selectable = false
                    onClick(openActivity(MessagesGlobauxActivity::class) )
                }
            }

            divider()

            expandableItem("Demandes Administratives") {
                // iicon = MaterialDesignIconic.Icon.gmi_collection_case_play
                identifier = 21
                selectable = false
                secondaryItem("Convention de stage") {
                    level = 2
                    identifier = 2009
                    selectable = false
                    onClick(openActivity(ConventionStageActivity::class) )
                }
                secondaryItem("Certificat de scolarité") {
                    level = 2
                    identifier = 2010
                    selectable = false
                    onClick(openActivity(CertificatScolariteActivity::class) )
                }
            }

            divider()

            primaryItem("Paramètres"){
                onClick(openActivity(ParametresActivity::class) )
            }

            divider()

            primaryItem("Contact") {
                onClick(openActivity(ContactActivity::class))
            }

            divider()
        }
    }

    private fun <T : Activity> openActivity(activity: KClass<T>): (View?) -> Boolean = {
        startActivity(Intent(this@MainActivity, activity.java))
        false
    }

    override fun onSaveInstanceState(outState: Bundle) {
        result.saveInstanceState(outState)
        headerResult.saveInstanceState(outState)
        super.onSaveInstanceState(outState)
    }

    override fun onBackPressed() {
        if (result.isDrawerOpen)
            result.closeDrawer()
        else
            super.onBackPressed()
    }

}

This is an example of a sub-activity :

class PlanningActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_planning)
    }
}

Thanking you in advance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant