@Override public void onValidationFinished(ValidationType validationType) { if (validationType.equals(ValidationType.SKIPPED)) { Log.d("ValidationType: ", "SKIPPED. Launching login activity..."); startActivityForResult(new Intent(getBaseContext(), WelcomeActivity.class), 364); Bundle data = new Bundle(); data.putString(WelcomeActivity.VALIDATION_TYPE, ValidationType.SKIPPED.name()); Intent missingToken = new Intent(getBaseContext(), WelcomeActivity.class); missingToken.putExtras(data); startActivityForResult(missingToken, 364); } else if (validationType.equals(ValidationType.MISSING_CREDENTIALS)) { Log.d("ValidationType: ", "MISSING_CREDENTIALS. Launching login activity..."); Bundle data = new Bundle(); data.putString(WelcomeActivity.VALIDATION_TYPE, ValidationType.MISSING_CREDENTIALS.name()); Intent missingToken = new Intent(getBaseContext(), WelcomeActivity.class); missingToken.putExtras(data); startActivityForResult(missingToken, 364); } else if (validationType.equals(ValidationType.MISSING_TOKEN)) { Log.d("ValidationType:", "MISSING_TOKEN. Launching Login Activity"); Bundle data = new Bundle(); data.putString(WelcomeActivity.VALIDATION_TYPE, ValidationType.MISSING_TOKEN.name()); Intent missingToken = new Intent(getBaseContext(), WelcomeActivity.class); missingToken.putExtras(data); startActivityForResult(missingToken, 364); } else if (validationType.equals(ValidationType.SUCCESS)) { Log.d("ValidationType: ", "SUCCESS. Get user info/retrieve updated data from server"); onLoginSuccess( new LinodeUser( LinodeApi.getInstance().getPreferences().getCurrentUsername(), LinodeApi.getInstance().getPreferences().getCurrentPassword(), LinodeApi.getInstance().getPreferences().getCurrentApiKey())); } else if (validationType.equals(ValidationType.UNKNOWN_ERROR)) { AndroidHelper.shortToast(getBaseContext(), "Unknown error. ¯\\_(ツ)_/¯"); } }
@Override public void onLoginSuccess(final LinodeUser linodeUser) { LinodeApi.getInstance().saveLinodeUser(linodeUser); LinodeApi.getInstance().switchAccount(linodeUser); ProfileDrawerItem profileDrawerItem = new ProfileDrawerItem() .withName(linodeUser.getUsername()) .withIcon(linodeUser.getProfileImageUrl()); accountHeader.setActiveProfile(profileDrawerItem); }
private AccountHeader buildHeader() { final AccountHeaderBuilder headerBuilder = new AccountHeaderBuilder().withActivity(this).withHeaderBackground(R.drawable.header_img); headerBuilder.withOnAccountHeaderListener(this); final long PROFILE = 100000; ProfileSettingDrawerItem settingDrawerItem = new ProfileSettingDrawerItem() .withName("Add Account") .withDescription("Sign into another Linode account") .withIcon( new IconicsDrawable(this, GoogleMaterial.Icon.gmd_add) .actionBar() .paddingDp(5) .colorRes(R.color.material_drawer_primary_text)) .withIdentifier(PROFILE); headerBuilder.addProfiles(settingDrawerItem); if (!LinodeApi.getInstance().getLinodeUsers().isEmpty()) { String username, password, token; username = LinodePreferences.getInstance(getBaseContext()).getCurrentUsername(); password = LinodePreferences.getInstance(getBaseContext()).getCurrentPassword(); token = LinodePreferences.getInstance(getBaseContext()).getCurrentApiKey(); final LinodeUser user = new LinodeUser(username, password, token); ProfileDrawerItem profileDrawerItem = new ProfileDrawerItem() .withName(LinodePreferences.getInstance(getBaseContext()).getCurrentUsername()) .withIcon(user.getProfileImageUrl()); headerBuilder.addProfiles(profileDrawerItem); } return headerBuilder.build(); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fabric.with(this, new Crashlytics()); setContentView(R.layout.activity_main); // Find the toolbar in XML toolbar = (Toolbar) findViewById(R.id.toolbar); // Set it's title text color to white toolbar.setTitleTextColor(Color.parseColor("#FFFFFF")); // Change activity's action bar to toolbar setSupportActionBar(toolbar); LinodeApi.init(getBaseContext(), this); initImageLoader(); accountHeader = buildHeader(); // Set up a new drawer builder drawer = new DrawerBuilder() .withActivity(this) // Bind it to this activity .withToolbar(toolbar) // Bind it to the toolbar attached to this activity .withAccountHeader(accountHeader) .withTranslucentNavigationBar(true) // Disable translucent navigation menu/bar .addDrawerItems( // Add our drawer items // Regular drawer items new PrimaryDrawerItem() .withIcon(R.drawable.server) // Icon .withSelectedIcon(R.drawable.server_tinted) // Tinted icon .withName(getResources().getString(R.string.item1)) // Title .withIdentifier(1) // ID = 1 .withTextColor(Color.parseColor("#444444")) // Text color .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)), new PrimaryDrawerItem() .withIcon(R.drawable.sitemap) .withSelectedIcon(R.drawable.sitemap_tinted) // Tinted icon .withName(getResources().getString(R.string.item2)) .withIdentifier(2) // ID = 2 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)), new PrimaryDrawerItem() .withIcon(R.drawable.dns) .withSelectedIcon(R.drawable.dns_tinted) // Tinted icon .withName(getResources().getString(R.string.item3)) .withIdentifier(3) // ID = 3 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)), new PrimaryDrawerItem() .withIcon(R.drawable.library) .withSelectedIcon(R.drawable.library_tinted) // Tinted icon .withName(getResources().getString(R.string.item4)) .withIdentifier(4) // ID = 4 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)), // Divider new DividerDrawerItem(), // Small/secondary drawer items new SecondaryDrawerItem() .withIcon(R.drawable.account) .withSelectedIcon( R.drawable .account_tinted) // Tinted icon; not mandatory since this won't be // highlighted .withName(getResources().getString(R.string.item5)) .withIdentifier(5) // ID = 5 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)) .withSelectable(false), // Not a fragment; don't highlight new SecondaryDrawerItem() .withIcon(R.drawable.information) .withSelectedIcon(R.drawable.information_tinted) .withName(getResources().getString(R.string.item6)) .withIdentifier(6) // ID = 6 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)) .withSelectable(false), // Not a fragment; don't highlight new SecondaryDrawerItem() .withIcon(R.drawable.logout) .withSelectedIcon(R.drawable.logout_tinted) .withName(getResources().getString(R.string.item7)) .withIdentifier(7) // ID = 7 .withTextColor(Color.parseColor("#444444")) .withSelectedTextColor(getResources().getColor(R.color.toolbar_green)) .withSelectable(false) // Not a fragment; don't highlight ) // Attach onClickListeners for each drawer item (not dividers!) .withOnDrawerItemClickListener( new Drawer.OnDrawerItemClickListener() { @Override public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { if (drawerItem != null) { // update the main content by replacing fragments Fragment fragment = new LinodesFragment(); FragmentManager fragmentManager = getFragmentManager(); switch ((int) drawerItem.getIdentifier()) { case 1: fragment = new LinodesFragment(); break; case 2: fragment = new NodesFragment(); break; case 3: fragment = new DNSFragment(); break; case 4: fragment = new LibraryFragment(); break; case 5: // Account Toast.makeText(getBaseContext(), "Demo Only", Toast.LENGTH_SHORT).show(); break; case 6: // About Intent about = new Intent(MainActivity.this, AboutActivity.class); startActivity(about); break; case 7: // Log out Toast.makeText(getBaseContext(), "Demo Only", Toast.LENGTH_SHORT).show(); break; } fragmentManager .beginTransaction() .replace(R.id.content_frame, fragment) .commit(); if (drawerItem instanceof Nameable) { setTitle( ((Nameable) drawerItem).getName().getText(getApplicationContext())); } } return false; } }) .withFireOnInitialOnClick(true) .withSavedInstance(savedInstanceState) .build(); // Set a custom shadow that overlays the main content when the drawer opens drawer.getDrawerLayout().setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); ActionBar mActionBar = getSupportActionBar(); int color = getResources().getColor(R.color.toolbar_green); if (mActionBar != null) { toolbar.setBackgroundColor(color); drawer .getDrawerLayout() .setStatusBarBackgroundColor( AndroidHelper.darkenColor(getResources().getColor(R.color.toolbar_green), 0.8f)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { toolbar.setElevation(8); getWindow() .setNavigationBarColor( AndroidHelper.darkenColor(getResources().getColor(R.color.toolbar_green), 0.8f)); } } }