Search in sources :

Example 11 with AccountHeaderBuilder

use of com.mikepenz.materialdrawer.AccountHeaderBuilder in project MaterialDrawer by mikepenz.

the class EmbeddedDrawerActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_embedded);
    // Handle Toolbar
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    //set the back arrow in the toolbar
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle(R.string.drawer_item_embedded_drawer);
    // Create a few sample profile
    // NOTE you have to define the loader logic too. See the CustomApplication for more details
    final IProfile profile = new ProfileDrawerItem().withName("Mike Penz").withEmail("mikepenz@gmail.com").withIcon("https://avatars3.githubusercontent.com/u/1476232?v=3&s=460");
    final IProfile profile2 = new ProfileDrawerItem().withName("Bernat Borras").withEmail("alorma@github.com").withIcon(Uri.parse("https://avatars3.githubusercontent.com/u/887462?v=3&s=460"));
    final IProfile profile3 = new ProfileDrawerItem().withName("Max Muster").withEmail("max.mustermann@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile2));
    final IProfile profile4 = new ProfileDrawerItem().withName("Felix House").withEmail("felix.house@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile3));
    final IProfile profile5 = new ProfileDrawerItem().withName("Mr. X").withEmail("mister.x.super@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile4)).withIdentifier(4);
    final IProfile profile6 = new ProfileDrawerItem().withName("Batman").withEmail("batman@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile5));
    // Create the AccountHeader
    headerResult = new AccountHeaderBuilder().withActivity(this).withHeaderBackground(R.drawable.header).withTranslucentStatusBar(false).addProfiles(profile, profile2, profile3, profile4, profile5, profile6, //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(GoogleMaterial.Icon.gmd_plus).withIdentifier(PROFILE_SETTING), new ProfileSettingDrawerItem().withName("Manage Account").withIcon(GoogleMaterial.Icon.gmd_settings)).withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {

        @Override
        public boolean onProfileChanged(View view, IProfile profile, boolean current) {
            //if the clicked item has the identifier 1 add a new profile ;)
            if (profile instanceof IDrawerItem && ((IDrawerItem) profile).getIdentifier() == PROFILE_SETTING) {
                IProfile newProfile = new ProfileDrawerItem().withNameShown(true).withName("Batman").withEmail("batman@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile5));
                if (headerResult.getProfiles() != null) {
                    //we know that there are 2 setting elements. set the new profile above them ;)
                    headerResult.addProfile(newProfile, headerResult.getProfiles().size() - 2);
                } else {
                    headerResult.addProfiles(newProfile);
                }
            }
            //false if you have not consumed the event and it should close the drawer
            return false;
        }
    }).withSavedInstance(savedInstanceState).build();
    result = new DrawerBuilder().withActivity(this).withToolbar(toolbar).withTranslucentStatusBar(false).withAccountHeader(//set the AccountHeader we created earlier for the header
    headerResult).addDrawerItems(new PrimaryDrawerItem().withName(R.string.drawer_item_compact_header).withIcon(GoogleMaterial.Icon.gmd_sun).withIdentifier(1), new PrimaryDrawerItem().withName(R.string.drawer_item_action_bar_drawer).withIcon(FontAwesome.Icon.faw_home).withBadge("22").withBadgeStyle(new BadgeStyle(Color.RED, Color.RED)).withIdentifier(2), new PrimaryDrawerItem().withName(R.string.drawer_item_multi_drawer).withIcon(FontAwesome.Icon.faw_gamepad).withIdentifier(3), new PrimaryDrawerItem().withName(R.string.drawer_item_non_translucent_status_drawer).withIcon(FontAwesome.Icon.faw_eye).withIdentifier(4), new PrimaryDrawerItem().withDescription("A more complex sample").withName(R.string.drawer_item_advanced_drawer).withIcon(GoogleMaterial.Icon.gmd_adb).withIdentifier(5), new SectionDrawerItem().withName(R.string.drawer_item_section_header), new SecondaryDrawerItem().withName(R.string.drawer_item_open_source).withIcon(FontAwesome.Icon.faw_github), new SecondaryDrawerItem().withName(R.string.drawer_item_contact).withIcon(GoogleMaterial.Icon.gmd_format_color_fill).withTag("Bullhorn"), new DividerDrawerItem(), new SwitchDrawerItem().withName("Switch").withIcon(Octicons.Icon.oct_tools).withChecked(true).withOnCheckedChangeListener(onCheckedChangeListener), new ToggleDrawerItem().withName("Toggle").withIcon(Octicons.Icon.oct_tools).withChecked(true).withOnCheckedChangeListener(onCheckedChangeListener)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            if (drawerItem instanceof Nameable) {
                Toast.makeText(EmbeddedDrawerActivity.this, ((Nameable) drawerItem).getName().getText(EmbeddedDrawerActivity.this), Toast.LENGTH_SHORT).show();
            }
            return false;
        }
    }).withSavedInstance(savedInstanceState).buildView();
    ((ViewGroup) findViewById(R.id.frame_container)).addView(result.getSlider());
}
Also used : IDrawerItem(com.mikepenz.materialdrawer.model.interfaces.IDrawerItem) PrimaryDrawerItem(com.mikepenz.materialdrawer.model.PrimaryDrawerItem) DividerDrawerItem(com.mikepenz.materialdrawer.model.DividerDrawerItem) ProfileSettingDrawerItem(com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem) ProfileDrawerItem(com.mikepenz.materialdrawer.model.ProfileDrawerItem) ViewGroup(android.view.ViewGroup) AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) SwitchDrawerItem(com.mikepenz.materialdrawer.model.SwitchDrawerItem) View(android.view.View) SecondaryDrawerItem(com.mikepenz.materialdrawer.model.SecondaryDrawerItem) ToggleDrawerItem(com.mikepenz.materialdrawer.model.ToggleDrawerItem) Nameable(com.mikepenz.materialdrawer.model.interfaces.Nameable) SectionDrawerItem(com.mikepenz.materialdrawer.model.SectionDrawerItem) BadgeStyle(com.mikepenz.materialdrawer.holder.BadgeStyle) IProfile(com.mikepenz.materialdrawer.model.interfaces.IProfile) DrawerBuilder(com.mikepenz.materialdrawer.DrawerBuilder) Toolbar(android.support.v7.widget.Toolbar)

Example 12 with AccountHeaderBuilder

use of com.mikepenz.materialdrawer.AccountHeaderBuilder in project MaterialDrawer by mikepenz.

the class PersistentDrawerActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_persistent_drawer);
    //Remove line to test RTL support
    // getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
    //example how to implement a persistentDrawer as shown in the google material design guidelines
    //https://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0Bx4BSt6jniD7YVdKQlF3TEo2S3M/patterns_navdrawer_behavior_persistent2.png
    //https://www.google.com/design/spec/patterns/navigation-drawer.html#navigation-drawer-behavior
    // Handle Toolbar
    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle(R.string.drawer_item_persistent_compact_header);
    // Create a few sample profile
    final IProfile profile = new ProfileDrawerItem().withName("Mike Penz").withEmail("mikepenz@gmail.com").withIcon(R.drawable.profile);
    final IProfile profile2 = new ProfileDrawerItem().withName("Max Muster").withEmail("max.mustermann@gmail.com").withIcon(R.drawable.profile2);
    final IProfile profile3 = new ProfileDrawerItem().withName("Felix House").withEmail("felix.house@gmail.com").withIcon(R.drawable.profile3);
    final IProfile profile4 = new ProfileDrawerItem().withName("Mr. X").withEmail("mister.x.super@gmail.com").withIcon(R.drawable.profile4);
    final IProfile profile5 = new ProfileDrawerItem().withName("Batman").withEmail("batman@gmail.com").withIcon(R.drawable.profile5);
    // Create the AccountHeader
    headerResult = new AccountHeaderBuilder().withActivity(this).withCompactStyle(true).withTranslucentStatusBar(true).withHeaderBackground(new ColorDrawable(Color.parseColor("#FDFDFD"))).withHeightPx(UIUtils.getActionBarHeight(this)).withAccountHeader(R.layout.material_drawer_compact_persistent_header).withTextColor(Color.BLACK).addProfiles(profile, profile2, profile3, profile4, profile5).withSavedInstance(savedInstanceState).build();
    //Create the drawer
    result = new DrawerBuilder().withActivity(this).withTranslucentStatusBar(true).withAccountHeader(//set the AccountHeader we created earlier for the header
    headerResult).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).withEnabled(false), new SecondaryDrawerItem().withName(R.string.drawer_item_open_source).withIcon(FontAwesome.Icon.faw_github), new SecondaryDrawerItem().withName(R.string.drawer_item_contact).withIcon(FontAwesome.Icon.faw_bullhorn)).withGenerateMiniDrawer(true).withSavedInstance(savedInstanceState).buildView();
    // create the MiniDrawer and define the drawer and header to be used (it will automatically use the items from them)
    miniResult = result.getMiniDrawer().withIncludeSecondaryDrawerItems(true);
    //set the back arrow in the toolbar
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(false);
    //get the widths in px for the first and second panel
    int firstWidth = (int) com.mikepenz.crossfader.util.UIUtils.convertDpToPixel(300, this);
    int secondWidth = (int) com.mikepenz.crossfader.util.UIUtils.convertDpToPixel(72, this);
    //create and build our crossfader (see the MiniDrawer is also builded in here, as the build method returns the view to be used in the crossfader)
    crossFader = new Crossfader().withContent(findViewById(R.id.crossfade_content)).withFirst(result.getSlider(), firstWidth).withSecond(miniResult.build(this), secondWidth).withSavedInstance(savedInstanceState).build();
    //define the crossfader to be used with the miniDrawer. This is required to be able to automatically toggle open / close
    miniResult.withCrossFader(new CrossfadeWrapper(crossFader));
    //define and create the arrow ;)
    ImageView toggle = (ImageView) headerResult.getView().findViewById(R.id.material_drawer_account_header_toggle);
    //for RTL you would have to define the other arrow
    toggle.setImageDrawable(new IconicsDrawable(this, GoogleMaterial.Icon.gmd_chevron_left).sizeDp(16).color(Color.BLACK));
    toggle.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            crossFader.crossFade();
        }
    });
}
Also used : PrimaryDrawerItem(com.mikepenz.materialdrawer.model.PrimaryDrawerItem) ProfileDrawerItem(com.mikepenz.materialdrawer.model.ProfileDrawerItem) AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) SecondaryDrawerItem(com.mikepenz.materialdrawer.model.SecondaryDrawerItem) ImageView(android.widget.ImageView) View(android.view.View) SectionDrawerItem(com.mikepenz.materialdrawer.model.SectionDrawerItem) ColorDrawable(android.graphics.drawable.ColorDrawable) CrossfadeWrapper(com.mikepenz.materialdrawer.app.utils.CrossfadeWrapper) ImageView(android.widget.ImageView) IProfile(com.mikepenz.materialdrawer.model.interfaces.IProfile) DrawerBuilder(com.mikepenz.materialdrawer.DrawerBuilder) IconicsDrawable(com.mikepenz.iconics.IconicsDrawable) Toolbar(android.support.v7.widget.Toolbar) Crossfader(com.mikepenz.crossfader.Crossfader)

Example 13 with AccountHeaderBuilder

use of com.mikepenz.materialdrawer.AccountHeaderBuilder in project Tusky by tuskyapp.

the class MainActivity method setupDrawer.

private void setupDrawer() {
    headerResult = new AccountHeaderBuilder().withActivity(this).withDividerBelowHeader(false).withHeaderBackgroundScaleType(ImageView.ScaleType.CENTER_CROP).withCurrentProfileHiddenInList(true).withOnAccountHeaderListener((view, profile, current) -> handleProfileClick(profile, current)).addProfiles(new ProfileSettingDrawerItem().withIdentifier(DRAWER_ITEM_ADD_ACCOUNT).withName(R.string.add_account_name).withDescription(R.string.add_account_description).withIcon(GoogleMaterial.Icon.gmd_add)).build();
    headerResult.getView().findViewById(R.id.material_drawer_account_header_current).setContentDescription(getString(R.string.action_view_profile));
    ImageView background = headerResult.getHeaderBackgroundView();
    background.setColorFilter(ContextCompat.getColor(this, R.color.header_background_filter));
    background.setBackgroundColor(ContextCompat.getColor(this, R.color.window_background_dark));
    DrawerImageLoader.init(new AbstractDrawerImageLoader() {

        @Override
        public void set(ImageView imageView, Uri uri, Drawable placeholder, String tag) {
            Picasso.with(imageView.getContext()).load(uri).placeholder(placeholder).into(imageView);
        }

        @Override
        public void cancel(ImageView imageView) {
            Picasso.with(imageView.getContext()).cancelRequest(imageView);
        }
    });
    VectorDrawableCompat muteDrawable = VectorDrawableCompat.create(getResources(), R.drawable.ic_mute_24dp, getTheme());
    ThemeUtils.setDrawableTint(this, muteDrawable, R.attr.toolbar_icon_tint);
    List<IDrawerItem> listItem = new ArrayList<>();
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_EDIT_PROFILE).withName(getString(R.string.action_edit_profile)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_person));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_FAVOURITES).withName(getString(R.string.action_view_favourites)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_star));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_LISTS).withName(R.string.action_lists).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_list));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_MUTED_USERS).withName(getString(R.string.action_view_mutes)).withSelectable(false).withIcon(muteDrawable));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_BLOCKED_USERS).withName(getString(R.string.action_view_blocks)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_block));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_SEARCH).withName(getString(R.string.action_search)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_search));
    listItem.add(new PrimaryDrawerItem().withIdentifier(DRAWER_ITEM_SAVED_TOOT).withName(getString(R.string.action_access_saved_toot)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_save));
    listItem.add(new DividerDrawerItem());
    listItem.add(new SecondaryDrawerItem().withIdentifier(DRAWER_ITEM_PREFERENCES).withName(getString(R.string.action_view_preferences)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_settings));
    listItem.add(new SecondaryDrawerItem().withIdentifier(DRAWER_ITEM_ABOUT).withName(getString(R.string.about_title_activity)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_info));
    listItem.add(new SecondaryDrawerItem().withIdentifier(DRAWER_ITEM_LOG_OUT).withName(getString(R.string.action_logout)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_exit_to_app));
    IDrawerItem[] array = new IDrawerItem[listItem.size()];
    // fill the array
    listItem.toArray(array);
    drawer = new DrawerBuilder().withActivity(this).withAccountHeader(headerResult).withHasStableIds(true).withSelectedItem(-1).addDrawerItems(array).withOnDrawerItemClickListener((view, position, drawerItem) -> {
        if (drawerItem != null) {
            long drawerItemIdentifier = drawerItem.getIdentifier();
            if (drawerItemIdentifier == DRAWER_ITEM_EDIT_PROFILE) {
                Intent intent = new Intent(MainActivity.this, EditProfileActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_FAVOURITES) {
                Intent intent = new Intent(MainActivity.this, FavouritesActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_MUTED_USERS) {
                Intent intent = new Intent(MainActivity.this, AccountListActivity.class);
                intent.putExtra("type", AccountListActivity.Type.MUTES);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_BLOCKED_USERS) {
                Intent intent = new Intent(MainActivity.this, AccountListActivity.class);
                intent.putExtra("type", AccountListActivity.Type.BLOCKS);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_SEARCH) {
                Intent intent = new Intent(MainActivity.this, SearchActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_PREFERENCES) {
                Intent intent = new Intent(MainActivity.this, PreferencesActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_ABOUT) {
                Intent intent = new Intent(MainActivity.this, AboutActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_LOG_OUT) {
                logout();
            } else if (drawerItemIdentifier == DRAWER_ITEM_FOLLOW_REQUESTS) {
                Intent intent = new Intent(MainActivity.this, AccountListActivity.class);
                intent.putExtra("type", AccountListActivity.Type.FOLLOW_REQUESTS);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_SAVED_TOOT) {
                Intent intent = new Intent(MainActivity.this, SavedTootActivity.class);
                startActivity(intent);
            } else if (drawerItemIdentifier == DRAWER_ITEM_LISTS) {
                startActivity(ListsActivity.newIntent(this));
            }
        }
        return false;
    }).build();
    if (BuildConfig.DEBUG) {
        IDrawerItem debugItem = new SecondaryDrawerItem().withIdentifier(1337).withName("debug").withDisabledTextColor(Color.GREEN).withSelectable(false).withEnabled(false);
        drawer.addItem(debugItem);
    }
    updateProfiles();
}
Also used : ImageButton(android.widget.ImageButton) Bundle(android.os.Bundle) Uri(android.net.Uri) ImageView(android.widget.ImageView) LocalBroadcastManager(android.support.v4.content.LocalBroadcastManager) Drawable(android.graphics.drawable.Drawable) DrawerImageLoader(com.mikepenz.materialdrawer.util.DrawerImageLoader) Picasso(com.squareup.picasso.Picasso) ActionButtonActivity(com.keylesspalace.tusky.interfaces.ActionButtonActivity) Account(com.keylesspalace.tusky.entity.Account) ProfileSettingDrawerItem(com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem) DispatchingAndroidInjector(dagger.android.DispatchingAndroidInjector) NotificationHelper(com.keylesspalace.tusky.util.NotificationHelper) Log(android.util.Log) FloatingActionButton(android.support.design.widget.FloatingActionButton) AndroidInjector(dagger.android.AndroidInjector) AccountHeader(com.mikepenz.materialdrawer.AccountHeader) Fragment(android.support.v4.app.Fragment) ContextCompat(android.support.v4.content.ContextCompat) PrimaryDrawerItem(com.mikepenz.materialdrawer.model.PrimaryDrawerItem) GoogleMaterial(com.mikepenz.google_material_typeface_library.GoogleMaterial) List(java.util.List) DrawerBuilder(com.mikepenz.materialdrawer.DrawerBuilder) SecondaryDrawerItem(com.mikepenz.materialdrawer.model.SecondaryDrawerItem) Nullable(android.support.annotation.Nullable) HasSupportFragmentInjector(dagger.android.support.HasSupportFragmentInjector) Call(retrofit2.Call) AccountEntity(com.keylesspalace.tusky.db.AccountEntity) KeyEvent(android.view.KeyEvent) VectorDrawableCompat(android.support.graphics.drawable.VectorDrawableCompat) ViewPager(android.support.v4.view.ViewPager) Intent(android.content.Intent) IProfile(com.mikepenz.materialdrawer.model.interfaces.IProfile) NonNull(android.support.annotation.NonNull) IDrawerItem(com.mikepenz.materialdrawer.model.interfaces.IDrawerItem) Response(retrofit2.Response) ArrayList(java.util.ArrayList) TabLayout(android.support.design.widget.TabLayout) Inject(javax.inject.Inject) Drawer(com.mikepenz.materialdrawer.Drawer) ThemeUtils(com.keylesspalace.tusky.util.ThemeUtils) ProfileDrawerItem(com.mikepenz.materialdrawer.model.ProfileDrawerItem) TimelinePagerAdapter(com.keylesspalace.tusky.pager.TimelinePagerAdapter) TimelineReceiver(com.keylesspalace.tusky.receiver.TimelineReceiver) Color(android.graphics.Color) AbstractDrawerImageLoader(com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader) AlertDialog(android.support.v7.app.AlertDialog) SharedPreferences(android.content.SharedPreferences) Callback(retrofit2.Callback) Configuration(android.content.res.Configuration) AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) MastodonApi(com.keylesspalace.tusky.network.MastodonApi) AccountManager(com.keylesspalace.tusky.db.AccountManager) DividerDrawerItem(com.mikepenz.materialdrawer.model.DividerDrawerItem) AbstractDrawerImageLoader(com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader) IDrawerItem(com.mikepenz.materialdrawer.model.interfaces.IDrawerItem) PrimaryDrawerItem(com.mikepenz.materialdrawer.model.PrimaryDrawerItem) DividerDrawerItem(com.mikepenz.materialdrawer.model.DividerDrawerItem) ProfileSettingDrawerItem(com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem) Drawable(android.graphics.drawable.Drawable) ArrayList(java.util.ArrayList) AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) Intent(android.content.Intent) Uri(android.net.Uri) VectorDrawableCompat(android.support.graphics.drawable.VectorDrawableCompat) SecondaryDrawerItem(com.mikepenz.materialdrawer.model.SecondaryDrawerItem) ImageView(android.widget.ImageView) DrawerBuilder(com.mikepenz.materialdrawer.DrawerBuilder)

Example 14 with AccountHeaderBuilder

use of com.mikepenz.materialdrawer.AccountHeaderBuilder in project Weather by Sparker0i.

the class WeatherActivity method initDrawer.

public void initDrawer() {
    final IProfile profile = new ProfileDrawerItem().withName(getString(R.string.app_name)).withEmail("Version : " + BuildConfig.VERSION_NAME).withIcon(R.mipmap.ic_launcher_x);
    AccountHeader headerResult = new AccountHeaderBuilder().withActivity(this).withHeaderBackground(R.drawable.header).withTextColor(ContextCompat.getColor(this, R.color.md_amber_400)).addProfiles(profile).withSelectionListEnabled(false).withProfileImagesClickable(false).build();
    SecondaryDrawerItem item1 = new SecondaryDrawerItem().withName(R.string.drawer_item_home).withIcon(new IconicsDrawable(this).icon(WeatherIcons.Icon.wic_day_sunny)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            wf = new WeatherFragment();
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment, wf).commit();
            return true;
        }
    });
    SecondaryDrawerItem item2 = new SecondaryDrawerItem().withName(R.string.drawer_item_graph).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_trending_up)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            if (!(f instanceof GraphsFragment)) {
                GraphsFragment graphsFragment = newGraphInstance(new ArrayList<>(wf.getDailyJson()));
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment, graphsFragment).commit();
            }
            return true;
        }
    });
    SecondaryDrawerItem item3 = new SecondaryDrawerItem().withName(R.string.drawer_item_map).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_map)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            if (!(f instanceof MapsFragment)) {
                MapsFragment mapsFragment = new MapsFragment();
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment, mapsFragment).commit();
            }
            return true;
        }
    });
    SecondaryDrawerItem item4 = new SecondaryDrawerItem().withName(R.string.drawer_item_add_city).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_add_location)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            showCityDialog();
            return true;
        }
    }).withSelectable(false);
    SecondaryDrawerItem item8 = new SecondaryDrawerItem().withName(R.string.drawer_item_about).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_info)).withSelectable(false).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            startActivity(new Intent(WeatherActivity.this, AboutActivity.class));
            return true;
        }
    });
    SecondaryDrawerItem item9 = new SecondaryDrawerItem().withName(R.string.settings).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_settings)).withSelectable(false).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

        @Override
        public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
            startActivity(new Intent(WeatherActivity.this, SettingsActivity.class));
            return true;
        }
    });
    DrawerBuilder drawerBuilder = new DrawerBuilder();
    drawerBuilder.withActivity(this).withToolbar(toolbar).withTranslucentStatusBar(true).withAccountHeader(headerResult).withActionBarDrawerToggleAnimated(true).addDrawerItems(item1, item2, item3, new DividerDrawerItem(), item4).addStickyDrawerItems(item8, item9);
    List<String> cities = dbHelper.getCities();
    final ListIterator<String> listIterator = cities.listIterator(cities.size());
    while (listIterator.hasPrevious()) {
        final String city = listIterator.previous();
        drawerBuilder.addDrawerItems(new SecondaryDrawerItem().withName(city).withIcon(new IconicsDrawable(this).icon(GoogleMaterial.Icon.gmd_place)).withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {

            @Override
            public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
                wf = new WeatherFragment().setCity(city);
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment, wf).commit();
                return true;
            }
        }));
    }
    drawer = drawerBuilder.build();
}
Also used : IDrawerItem(com.mikepenz.materialdrawer.model.interfaces.IDrawerItem) DividerDrawerItem(com.mikepenz.materialdrawer.model.DividerDrawerItem) ProfileDrawerItem(com.mikepenz.materialdrawer.model.ProfileDrawerItem) ArrayList(java.util.ArrayList) AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) Intent(android.content.Intent) WeatherFragment(com.a5corp.weather.fragment.WeatherFragment) Drawer(com.mikepenz.materialdrawer.Drawer) SecondaryDrawerItem(com.mikepenz.materialdrawer.model.SecondaryDrawerItem) View(android.view.View) AccountHeader(com.mikepenz.materialdrawer.AccountHeader) MapsFragment(com.a5corp.weather.fragment.MapsFragment) IProfile(com.mikepenz.materialdrawer.model.interfaces.IProfile) DrawerBuilder(com.mikepenz.materialdrawer.DrawerBuilder) IconicsDrawable(com.mikepenz.iconics.IconicsDrawable) GraphsFragment(com.a5corp.weather.fragment.GraphsFragment)

Example 15 with AccountHeaderBuilder

use of com.mikepenz.materialdrawer.AccountHeaderBuilder in project TeamCityApp by vase4kin.

the class DrawerViewImpl method initAccountHeader.

/**
 * Init account header
 */
private void initAccountHeader() {
    mHeaderResult = new AccountHeaderBuilder().withActivity(mActivity).withProfiles(mProfileList).withProfileImagesVisible(true).withHeaderBackground(mDefaultColor).withTextColorRes(R.color.md_white_1000).withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {

        @Override
        public boolean onProfileChanged(View view, IProfile iProfile, boolean b) {
            if (iProfile != null) {
                switch((int) iProfile.getIdentifier()) {
                    case PROFILES_MANAGING:
                        mOnDrawerPresenterListener.startAccountListActivity();
                        break;
                    default:
                        if (!mOnDrawerPresenterListener.isActiveProfile(iProfile.getEmail().toString(), iProfile.getName().toString())) {
                            mOnDrawerPresenterListener.setActiveUser(iProfile.getEmail().toString(), iProfile.getName().toString());
                            mOnDrawerPresenterListener.startRootProjectsActivityWhenSwitchingAccounts();
                            mOnDrawerPresenterListener.onUserChange();
                        }
                        break;
                }
            }
            return false;
        }
    }).withProfileImagesVisible(false).build();
}
Also used : AccountHeaderBuilder(com.mikepenz.materialdrawer.AccountHeaderBuilder) IProfile(com.mikepenz.materialdrawer.model.interfaces.IProfile) View(android.view.View)

Aggregations

AccountHeaderBuilder (com.mikepenz.materialdrawer.AccountHeaderBuilder)15 DrawerBuilder (com.mikepenz.materialdrawer.DrawerBuilder)14 View (android.view.View)13 IProfile (com.mikepenz.materialdrawer.model.interfaces.IProfile)13 PrimaryDrawerItem (com.mikepenz.materialdrawer.model.PrimaryDrawerItem)12 SecondaryDrawerItem (com.mikepenz.materialdrawer.model.SecondaryDrawerItem)11 IDrawerItem (com.mikepenz.materialdrawer.model.interfaces.IDrawerItem)11 ProfileDrawerItem (com.mikepenz.materialdrawer.model.ProfileDrawerItem)10 Toolbar (android.support.v7.widget.Toolbar)8 Drawer (com.mikepenz.materialdrawer.Drawer)8 Intent (android.content.Intent)7 SectionDrawerItem (com.mikepenz.materialdrawer.model.SectionDrawerItem)7 DividerDrawerItem (com.mikepenz.materialdrawer.model.DividerDrawerItem)6 ProfileSettingDrawerItem (com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem)6 IconicsDrawable (com.mikepenz.iconics.IconicsDrawable)5 AccountHeader (com.mikepenz.materialdrawer.AccountHeader)5 Nameable (com.mikepenz.materialdrawer.model.interfaces.Nameable)4 LibsBuilder (com.mikepenz.aboutlibraries.LibsBuilder)3 BadgeStyle (com.mikepenz.materialdrawer.holder.BadgeStyle)3 SharedPreferences (android.content.SharedPreferences)2