AppCompat v22.1.*: drawable tinting
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
package i2p.bote.android;
|
package i2p.bote.android;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.ColorStateList;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.support.v4.graphics.drawable.DrawableCompat;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -100,8 +100,12 @@ public class FolderListAdapter extends RecyclerView.Adapter<FolderListAdapter.Vi
|
|||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||||
final EmailFolder folder = mFolders.get(position);
|
final EmailFolder folder = mFolders.get(position);
|
||||||
|
final boolean isSelected = position == mSelectedFolder;
|
||||||
|
|
||||||
|
Drawable folderIcon = DrawableCompat.wrap(BoteHelper.getFolderIcon(mCtx, folder));
|
||||||
|
DrawableCompat.setTintList(folderIcon, mCtx.getResources().getColorStateList(R.color.folder_icon));
|
||||||
|
holder.mIcon.setImageDrawable(folderIcon);
|
||||||
|
|
||||||
holder.mIcon.setImageDrawable(BoteHelper.getFolderIcon(mCtx, folder));
|
|
||||||
try {
|
try {
|
||||||
holder.mName.setText(BoteHelper.getFolderDisplayNameWithNew(mCtx, folder));
|
holder.mName.setText(BoteHelper.getFolderDisplayNameWithNew(mCtx, folder));
|
||||||
} catch (PasswordException e) {
|
} catch (PasswordException e) {
|
||||||
@@ -109,9 +113,9 @@ public class FolderListAdapter extends RecyclerView.Adapter<FolderListAdapter.Vi
|
|||||||
holder.mName.setText(BoteHelper.getFolderDisplayName(mCtx, folder));
|
holder.mName.setText(BoteHelper.getFolderDisplayName(mCtx, folder));
|
||||||
}
|
}
|
||||||
|
|
||||||
holder.itemView.setSelected(position == mSelectedFolder);
|
holder.itemView.setSelected(isSelected);
|
||||||
|
|
||||||
holder.mName.setTextAppearance(mCtx, position == mSelectedFolder ?
|
holder.mName.setTextAppearance(mCtx, isSelected ?
|
||||||
R.style.TextAppearance_AppCompat_NavDrawer_Selected :
|
R.style.TextAppearance_AppCompat_NavDrawer_Selected :
|
||||||
R.style.TextAppearance_AppCompat_NavDrawer);
|
R.style.TextAppearance_AppCompat_NavDrawer);
|
||||||
|
|
||||||
@@ -119,16 +123,10 @@ public class FolderListAdapter extends RecyclerView.Adapter<FolderListAdapter.Vi
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
int position = holder.getAdapterPosition();
|
int position = holder.getAdapterPosition();
|
||||||
boolean alreadySelected = position == mSelectedFolder;
|
|
||||||
setSelected(position);
|
setSelected(position);
|
||||||
mListener.onDrawerFolderSelected(folder, alreadySelected);
|
mListener.onDrawerFolderSelected(folder, isSelected);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
|
|
||||||
holder.mIcon.setImageTintList(position == mSelectedFolder ?
|
|
||||||
new ColorStateList(new int[][]{{}},
|
|
||||||
new int[]{mCtx.getResources().getColor(R.color.primary)}) : null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the size of the dataset (invoked by the layout manager)
|
// Return the size of the dataset (invoked by the layout manager)
|
||||||
|
|||||||
5
app/src/main/res/color/folder_icon.xml
Normal file
5
app/src/main/res/color/folder_icon.xml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="@color/primary" android:state_selected="true"/>
|
||||||
|
<item android:color="@color/grey_600"/>
|
||||||
|
</selector>
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
<color name="uva_color">#c31756</color>
|
<color name="uva_color">#c31756</color>
|
||||||
<color name="error_color">#f00</color>
|
<color name="error_color">#f00</color>
|
||||||
|
|
||||||
|
<color name="grey_600">#757575</color>
|
||||||
|
|
||||||
<color name="green">#4caf50</color>
|
<color name="green">#4caf50</color>
|
||||||
<color name="red">#f44336</color>
|
<color name="red">#f44336</color>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user