Improved drawer look

This commit is contained in:
Eugen Rochko 2017-03-10 04:00:09 +01:00
parent 6f25405ad4
commit e72227abf0
3 changed files with 47 additions and 52 deletions

View File

@ -40,4 +40,5 @@ dependencies {
transitive = true transitive = true
} }
compile 'com.github.chrisbanes:PhotoView:1.3.1' compile 'com.github.chrisbanes:PhotoView:1.3.1'
compile 'com.mikepenz:google-material-typeface:3.0.1.0.original@aar'
} }

View File

@ -33,10 +33,12 @@ import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import com.keylesspalace.tusky.entity.Account; import com.keylesspalace.tusky.entity.Account;
import com.mikepenz.google_material_typeface_library.GoogleMaterial;
import com.mikepenz.materialdrawer.AccountHeader; import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.AccountHeaderBuilder; import com.mikepenz.materialdrawer.AccountHeaderBuilder;
import com.mikepenz.materialdrawer.Drawer; import com.mikepenz.materialdrawer.Drawer;
import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.DrawerBuilder;
import com.mikepenz.materialdrawer.model.DividerDrawerItem;
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
import com.mikepenz.materialdrawer.model.ProfileDrawerItem; import com.mikepenz.materialdrawer.model.ProfileDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
@ -86,22 +88,8 @@ public class MainActivity extends BaseActivity {
headerResult = new AccountHeaderBuilder() headerResult = new AccountHeaderBuilder()
.withActivity(this) .withActivity(this)
.withSelectionListEnabledForSingleProfile(false) .withSelectionListEnabledForSingleProfile(false)
.withTranslucentStatusBar(true) .withDividerBelowHeader(false)
.withCompactStyle(true) .withCompactStyle(true)
.withOnAccountHeaderProfileImageListener(new AccountHeader.OnAccountHeaderProfileImageListener() {
@Override
public boolean onProfileImageClick(View view, IProfile profile, boolean current) {
Intent intent = new Intent(MainActivity.this, AccountActivity.class);
intent.putExtra("id", loggedInAccountId);
startActivity(intent);
return false;
}
@Override
public boolean onProfileImageLongClick(View view, IProfile profile, boolean current) {
return false;
}
})
.build(); .build();
DrawerImageLoader.init(new AbstractDrawerImageLoader() { DrawerImageLoader.init(new AbstractDrawerImageLoader() {
@ -119,15 +107,16 @@ public class MainActivity extends BaseActivity {
drawer = new DrawerBuilder() drawer = new DrawerBuilder()
.withActivity(this) .withActivity(this)
.withToolbar(toolbar) .withToolbar(toolbar)
.withTranslucentStatusBar(true)
.withAccountHeader(headerResult) .withAccountHeader(headerResult)
.withHasStableIds(true) .withHasStableIds(true)
.withSelectedItem(-1) .withSelectedItem(-1)
.addDrawerItems( .addDrawerItems(
new PrimaryDrawerItem().withIdentifier(1).withName(getString(R.string.action_view_favourites)).withSelectable(false), new PrimaryDrawerItem().withIdentifier(0).withName(R.string.action_view_profile).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_person),
new PrimaryDrawerItem().withIdentifier(2).withName(getString(R.string.action_view_blocks)).withSelectable(false), new PrimaryDrawerItem().withIdentifier(1).withName(getString(R.string.action_view_favourites)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_star),
new PrimaryDrawerItem().withIdentifier(3).withName(getString(R.string.action_view_preferences)).withSelectable(false), new PrimaryDrawerItem().withIdentifier(2).withName(getString(R.string.action_view_blocks)).withSelectable(false).withIcon(GoogleMaterial.Icon.gmd_block),
new PrimaryDrawerItem().withIdentifier(4).withName(getString(R.string.action_logout)).withSelectable(false) new DividerDrawerItem(),
new SecondaryDrawerItem().withIdentifier(3).withName(getString(R.string.action_view_preferences)).withSelectable(false),
new SecondaryDrawerItem().withIdentifier(4).withName(getString(R.string.action_logout)).withSelectable(false)
) )
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override @Override
@ -135,7 +124,11 @@ public class MainActivity extends BaseActivity {
if (drawerItem != null) { if (drawerItem != null) {
long drawerItemIdentifier = drawerItem.getIdentifier(); long drawerItemIdentifier = drawerItem.getIdentifier();
if (drawerItemIdentifier == 1) { if (drawerItemIdentifier == 0) {
Intent intent = new Intent(MainActivity.this, AccountActivity.class);
intent.putExtra("id", loggedInAccountId);
startActivity(intent);
} else if (drawerItemIdentifier == 1) {
Intent intent = new Intent(MainActivity.this, FavouritesActivity.class); Intent intent = new Intent(MainActivity.this, FavouritesActivity.class);
startActivity(intent); startActivity(intent);
} else if (drawerItemIdentifier == 2) { } else if (drawerItemIdentifier == 2) {
@ -236,39 +229,40 @@ public class MainActivity extends BaseActivity {
final String domain = preferences.getString("domain", null); final String domain = preferences.getString("domain", null);
String id = preferences.getString("loggedInAccountId", null); String id = preferences.getString("loggedInAccountId", null);
String username = preferences.getString("loggedInAccountUsername", null); String username = preferences.getString("loggedInAccountUsername", null);
//if (id != null && username != null) {
// loggedInAccountId = id;
// loggedInAccountUsername = username;
//} else {
mastodonAPI.accountVerifyCredentials().enqueue(new Callback<Account>() {
@Override
public void onResponse(Call<Account> call, retrofit2.Response<Account> response) {
Account me = response.body();
ImageView background = headerResult.getHeaderBackgroundView();
Picasso.with(MainActivity.this) if (id != null && username != null) {
.load(me.header) loggedInAccountId = id;
.placeholder(R.drawable.account_header_missing) loggedInAccountUsername = username;
.resize(background.getWidth(), background.getHeight()) }
.centerCrop()
.into(background);
headerResult.addProfiles( mastodonAPI.accountVerifyCredentials().enqueue(new Callback<Account>() {
new ProfileDrawerItem() @Override
.withName(me.displayName) public void onResponse(Call<Account> call, retrofit2.Response<Account> response) {
.withEmail(String.format("%s@%s", me.username, domain)) Account me = response.body();
.withIcon(me.avatar) ImageView background = headerResult.getHeaderBackgroundView();
);
//onFetchUserInfoSuccess(response.body().id, response.body().username); Picasso.with(MainActivity.this)
} .load(me.header)
.placeholder(R.drawable.account_header_missing)
.resize(background.getWidth(), background.getHeight())
.centerCrop()
.into(background);
@Override headerResult.addProfiles(
public void onFailure(Call<Account> call, Throwable t) { new ProfileDrawerItem()
onFetchUserInfoFailure((Exception) t); .withName(me.displayName)
} .withEmail(String.format("%s@%s", me.username, domain))
}); .withIcon(me.avatar)
//} );
//onFetchUserInfoSuccess(response.body().id, response.body().username);
}
@Override
public void onFailure(Call<Account> call, Throwable t) {
onFetchUserInfoFailure((Exception) t);
}
});
} }
private void onFetchUserInfoSuccess(String id, String username) { private void onFetchUserInfoSuccess(String id, String username) {

View File

@ -56,13 +56,13 @@
<item name="report_status_background_color">@color/report_status_background_dark</item> <item name="report_status_background_color">@color/report_status_background_dark</item>
<item name="report_status_divider_drawable">@drawable/report_status_divider_dark</item> <item name="report_status_divider_drawable">@drawable/report_status_divider_dark</item>
<item name="material_drawer_background">@color/color_primary_dark</item> <item name="material_drawer_background">@color/window_background_dark</item>
<item name="material_drawer_primary_text">@color/text_color_primary_dark</item> <item name="material_drawer_primary_text">@color/text_color_primary_dark</item>
<item name="material_drawer_primary_icon">@color/toolbar_icon_dark</item> <item name="material_drawer_primary_icon">@color/toolbar_icon_dark</item>
<item name="material_drawer_secondary_text">@color/text_color_secondary_dark</item> <item name="material_drawer_secondary_text">@color/text_color_secondary_dark</item>
<item name="material_drawer_hint_text">@color/text_color_tertiary_dark</item> <item name="material_drawer_hint_text">@color/text_color_tertiary_dark</item>
<item name="material_drawer_divider">@color/color_primary_dark_dark</item> <item name="material_drawer_divider">@color/color_primary_dark_dark</item>
<item name="material_drawer_selected">@color/window_background_dark</item> <item name="material_drawer_selected">@color/color_primary_dark</item>
<item name="material_drawer_selected_text">@color/text_color_primary_dark</item> <item name="material_drawer_selected_text">@color/text_color_primary_dark</item>
<item name="material_drawer_header_selection_text">@color/text_color_primary_dark</item> <item name="material_drawer_header_selection_text">@color/text_color_primary_dark</item>
</style> </style>