Created
July 13, 2015 19:51
-
-
Save cloudshooterhuman/60e02b50a661fc254440 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mikepenz.materialdrawer.app; | |
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.FragmentManager; | |
import android.support.v4.app.FragmentTransaction; | |
import android.support.v7.app.AppCompatActivity; | |
import android.support.v7.widget.Toolbar; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.widget.AdapterView; | |
import com.mikepenz.google_material_typeface_library.GoogleMaterial; | |
import com.mikepenz.iconics.IconicsDrawable; | |
import com.mikepenz.iconics.typeface.FontAwesome; | |
import com.mikepenz.materialdrawer.Drawer; | |
import com.mikepenz.materialdrawer.DrawerBuilder; | |
import com.mikepenz.materialdrawer.accountswitcher.AccountHeader; | |
import com.mikepenz.materialdrawer.accountswitcher.AccountHeaderBuilder; | |
import com.mikepenz.materialdrawer.app.activities.CoursFragment; | |
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; | |
import com.mikepenz.materialdrawer.model.ProfileDrawerItem; | |
import com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem; | |
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem; | |
import com.mikepenz.materialdrawer.model.SectionDrawerItem; | |
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; | |
import com.mikepenz.materialdrawer.model.interfaces.IProfile; | |
import com.mikepenz.materialdrawer.model.interfaces.Nameable; | |
public class SimpleCompactHeaderDrawerActivity extends AppCompatActivity { | |
private static final int PROFILE_SETTING = 1; | |
//save our header or result | |
private AccountHeader headerResult = null; | |
private Drawer result = null; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_sample); | |
// Handle Toolbar | |
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | |
setSupportActionBar(toolbar); | |
// Create a few sample profile | |
final IProfile profile = new ProfileDrawerItem().withName("Mike Penz").withEmail("2eme Back Sc. Exp SWT").withIcon(getResources().getDrawable(R.drawable.profile)); | |
// Create the AccountHeader | |
headerResult = new AccountHeaderBuilder() | |
.withActivity(this) | |
.withCompactStyle(true) | |
.withHeaderBackground(R.drawable.header) | |
.addProfiles( | |
profile, | |
//don't ask but google uses 14dp for the add account icon in gmail but 20dp for the normal icons (like manage account) | |
new ProfileSettingDrawerItem().withName("Add Account").withDescription("Add new GitHub Account").withIcon(new IconicsDrawable(this, GoogleMaterial.Icon.gmd_add).actionBarSize().paddingDp(5).colorRes(R.color.material_drawer_dark_primary_text)).withIdentifier(PROFILE_SETTING), | |
new ProfileSettingDrawerItem().withName("Manage Account").withIcon(GoogleMaterial.Icon.gmd_settings) | |
) | |
.withSavedInstance(savedInstanceState) | |
.build(); | |
//Create the drawer | |
result = new DrawerBuilder() | |
.withActivity(this) | |
.withAccountHeader(headerResult) //set the AccountHeader we created earlier for the header | |
.addDrawerItems( | |
new PrimaryDrawerItem().withName(R.string.drawer_item_home).withIcon(FontAwesome.Icon.faw_home).withIdentifier(1), | |
new PrimaryDrawerItem().withName(R.string.drawer_item_free_play).withIcon(FontAwesome.Icon.faw_gamepad), | |
new PrimaryDrawerItem().withName(R.string.drawer_item_custom).withIcon(FontAwesome.Icon.faw_eye), | |
new SectionDrawerItem().withName(R.string.drawer_item_section_header), | |
new SecondaryDrawerItem().withName(R.string.drawer_item_settings).withIcon(FontAwesome.Icon.faw_cog), | |
new SecondaryDrawerItem().withName(R.string.drawer_item_help).withIcon(FontAwesome.Icon.faw_question), | |
new SecondaryDrawerItem().withName(R.string.drawer_item_open_source).withIcon(FontAwesome.Icon.faw_github) | |
) | |
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { | |
@Override | |
public boolean onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) { | |
if (drawerItem != null && drawerItem.getIdentifier() == 1) { | |
//startSupportActionMode(new ActionBarCallBack()); | |
//findViewById(R.id.action_mode_bar).setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(SimpleCompactHeaderDrawerActivity.this, R.attr.colorPrimary, R.color.material_drawer_primary)); | |
//Intent i = new Intent(getApplicationContext(), CoursActivity.class); | |
//startActivity(i); | |
Fragment fragment = new CoursFragment(); | |
FragmentManager fragmentManager = getSupportFragmentManager(); | |
fragmentManager.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) | |
.replace(R.id.frame_container, fragment).commit(); | |
getSupportActionBar().setDisplayHomeAsUpEnabled(true); | |
getSupportActionBar().setHomeButtonEnabled(false); | |
} | |
if (drawerItem instanceof Nameable) { | |
toolbar.setTitle(((Nameable) drawerItem).getNameRes()); | |
} | |
return false; | |
} | |
}) | |
.withSavedInstance(savedInstanceState) | |
.build(); | |
// set the selection to the item with the identifier 5 | |
//result.setSelectionByIdentifier(5, false); | |
//set the back arrow in the toolbar | |
getSupportActionBar().setDisplayHomeAsUpEnabled(false); | |
getSupportActionBar().setHomeButtonEnabled(true); | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
//handle the click on the back arrow click | |
switch (item.getItemId()) { | |
case android.R.id.home: | |
onBackPressed(); | |
return true; | |
default: | |
return false; | |
} | |
} | |
@Override | |
public void onBackPressed() { | |
//handle the back press :D close the drawer first and if the drawer is closed close the activity | |
if (result != null && result.isDrawerOpen()) { | |
result.closeDrawer(); | |
} else { | |
//super.onBackPressed(); | |
getSupportActionBar().setTitle("Annajah"); | |
Fragment fragment = new Fragment(); | |
FragmentManager fragmentManager = getSupportFragmentManager(); | |
fragmentManager.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) | |
.replace(R.id.frame_container, fragment).commit(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment