Make header text and tertiary text color themeable

This commit is contained in:
Thialfihar
2015-06-26 11:08:26 +02:00
parent 58cb6bb4b7
commit 13983be799
20 changed files with 44 additions and 36 deletions

View File

@@ -53,6 +53,7 @@ import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import org.sufficientlysecure.keychain.ui.adapter.MultiUserIdsAdapter; import org.sufficientlysecure.keychain.ui.adapter.MultiUserIdsAdapter;
import org.sufficientlysecure.keychain.ui.base.CachingCryptoOperationFragment; import org.sufficientlysecure.keychain.ui.base.CachingCryptoOperationFragment;
import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.widget.CertifyKeySpinner; import org.sufficientlysecure.keychain.ui.widget.CertifyKeySpinner;
import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences; import org.sufficientlysecure.keychain.util.Preferences;
@@ -154,7 +155,7 @@ public class CertifyKeyFragment
// make certify image gray, like action icons // make certify image gray, like action icons
ImageView vActionCertifyImage = ImageView vActionCertifyImage =
(ImageView) view.findViewById(R.id.certify_key_action_certify_image); (ImageView) view.findViewById(R.id.certify_key_action_certify_image);
vActionCertifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light), vActionCertifyImage.setColorFilter(FormattingUtils.getColorFromAttr(getActivity(), R.attr.colorTertiaryText),
PorterDuff.Mode.SRC_IN); PorterDuff.Mode.SRC_IN);
View vCertifyButton = view.findViewById(R.id.certify_key_certify_button); View vCertifyButton = view.findViewById(R.id.certify_key_certify_button);

View File

@@ -28,7 +28,6 @@ import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources.Theme;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
@@ -47,7 +46,6 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.util.TypedValue;
import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AbsListView.MultiChoiceModeListener;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ListView; import android.widget.ListView;
@@ -70,6 +68,7 @@ import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.ui.adapter.KeyAdapter; import org.sufficientlysecure.keychain.ui.adapter.KeyAdapter;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.ui.util.Notify.Style;
import org.sufficientlysecure.keychain.util.FabContainer; import org.sufficientlysecure.keychain.util.FabContainer;
@@ -710,10 +709,7 @@ public class KeyListFragment extends LoaderFragment
// let the adapter handle setting up the row views // let the adapter handle setting up the row views
View v = super.getView(position, convertView, parent); View v = super.getView(position, convertView, parent);
TypedValue typedValue = new TypedValue(); int colorEmphasis = FormattingUtils.getColorFromAttr(mContext, R.attr.colorEmphasis);
Theme theme = mContext.getTheme();
theme.resolveAttribute(R.attr.colorEmphasis, typedValue, true);
int colorEmphasis = typedValue.data;
if (mSelection.get(position) != null) { if (mSelection.get(position) != null) {
// selected position color // selected position color

View File

@@ -37,6 +37,7 @@ import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.ImportKeyringParcel; import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.ui.base.BaseActivity; import org.sufficientlysecure.keychain.ui.base.BaseActivity;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.ParcelableFileCache; import org.sufficientlysecure.keychain.util.ParcelableFileCache;
@@ -81,7 +82,7 @@ public class SafeSlingerActivity extends BaseActivity
}); });
ImageView buttonIcon = (ImageView) findViewById(R.id.safe_slinger_button_image); ImageView buttonIcon = (ImageView) findViewById(R.id.safe_slinger_button_image);
buttonIcon.setColorFilter(getResources().getColor(R.color.tertiary_text_light), buttonIcon.setColorFilter(FormattingUtils.getColorFromAttr(this, R.attr.colorTertiaryText),
PorterDuff.Mode.SRC_IN); PorterDuff.Mode.SRC_IN);
View button = findViewById(R.id.safe_slinger_button); View button = findViewById(R.id.safe_slinger_button);

View File

@@ -58,6 +58,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider; import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.ui.util.Notify.Style;
@@ -111,7 +112,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
View vKeyClipboardButton = view.findViewById(R.id.view_key_action_key_clipboard); View vKeyClipboardButton = view.findViewById(R.id.view_key_action_key_clipboard);
ImageButton vKeySafeSlingerButton = (ImageButton) view.findViewById(R.id.view_key_action_key_safeslinger); ImageButton vKeySafeSlingerButton = (ImageButton) view.findViewById(R.id.view_key_action_key_safeslinger);
View vKeyUploadButton = view.findViewById(R.id.view_key_action_upload); View vKeyUploadButton = view.findViewById(R.id.view_key_action_upload);
vKeySafeSlingerButton.setColorFilter(getResources().getColor(R.color.tertiary_text_light), vKeySafeSlingerButton.setColorFilter(FormattingUtils.getColorFromAttr(getActivity(), R.attr.colorTertiaryText),
PorterDuff.Mode.SRC_IN); PorterDuff.Mode.SRC_IN);
vFingerprintShareButton.setOnClickListener(new View.OnClickListener() { vFingerprintShareButton.setOnClickListener(new View.OnClickListener() {

View File

@@ -42,6 +42,7 @@ import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing;
import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
@@ -49,6 +50,7 @@ public class KeyAdapter extends CursorAdapter {
protected String mQuery; protected String mQuery;
protected LayoutInflater mInflater; protected LayoutInflater mInflater;
protected Context mContext;
// These are the rows that we will retrieve. // These are the rows that we will retrieve.
public static final String[] PROJECTION = new String[]{ public static final String[] PROJECTION = new String[]{
@@ -77,6 +79,7 @@ public class KeyAdapter extends CursorAdapter {
public KeyAdapter(Context context, Cursor c, int flags) { public KeyAdapter(Context context, Cursor c, int flags) {
super(context, c, flags); super(context, c, flags);
mContext = context;
mInflater = LayoutInflater.from(context); mInflater = LayoutInflater.from(context);
} }
@@ -151,7 +154,7 @@ public class KeyAdapter extends CursorAdapter {
mStatus.setVisibility(View.GONE); mStatus.setVisibility(View.GONE);
if (mSlingerButton.hasOnClickListeners()) { if (mSlingerButton.hasOnClickListeners()) {
mSlingerButton.setColorFilter( mSlingerButton.setColorFilter(
context.getResources().getColor(R.color.tertiary_text_light), FormattingUtils.getColorFromAttr(context, R.attr.colorTertiaryText),
PorterDuff.Mode.SRC_IN); PorterDuff.Mode.SRC_IN);
mSlinger.setVisibility(View.VISIBLE); mSlinger.setVisibility(View.VISIBLE);
} else { } else {

View File

@@ -28,5 +28,4 @@ public class CustomAlertDialogBuilder extends AlertDialog.Builder {
public CustomAlertDialogBuilder(Context context) { public CustomAlertDialogBuilder(Context context) {
super(context); super(context);
} }
} }

View File

@@ -18,9 +18,11 @@
package org.sufficientlysecure.keychain.ui.util; package org.sufficientlysecure.keychain.ui.util;
import android.content.Context; import android.content.Context;
import android.content.res.Resources.Theme;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.StrikethroughSpan; import android.text.style.StrikethroughSpan;
import android.util.TypedValue;
public class FormattingUtils { public class FormattingUtils {
@@ -32,4 +34,10 @@ public class FormattingUtils {
return (int) ((px / context.getResources().getDisplayMetrics().density) + 0.5f); return (int) ((px / context.getResources().getDisplayMetrics().density) + 0.5f);
} }
public static int getColorFromAttr(Context context, int attr) {
TypedValue typedValue = new TypedValue();
Theme theme = context.getTheme();
theme.resolveAttribute(attr, typedValue, true);
return typedValue.data;
}
} }

View File

@@ -18,12 +18,11 @@
package org.sufficientlysecure.keychain.ui.util; package org.sufficientlysecure.keychain.ui.util;
import android.content.Context; import android.content.Context;
import android.content.res.Resources.Theme;
import android.text.Spannable; import android.text.Spannable;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.TypedValue;
import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -47,10 +46,7 @@ public class Highlighter {
Pattern pattern = Pattern.compile("(?i)(" + mQuery.trim().replaceAll("\\s+", "|") + ")"); Pattern pattern = Pattern.compile("(?i)(" + mQuery.trim().replaceAll("\\s+", "|") + ")");
Matcher matcher = pattern.matcher(text); Matcher matcher = pattern.matcher(text);
TypedValue typedValue = new TypedValue(); int colorEmphasis = FormattingUtils.getColorFromAttr(mContext, R.attr.colorEmphasis);
Theme theme = mContext.getTheme();
theme.resolveAttribute(R.attr.colorEmphasis, typedValue, true);
int colorEmphasis = typedValue.data;
while (matcher.find()) { while (matcher.find()) {
highlight.setSpan( highlight.setSpan(

View File

@@ -6,6 +6,6 @@
android:height="2dp" android:height="2dp"
android:width="1000dp" /> android:width="1000dp" />
<solid android:color="@color/header_text" /> <solid android:color="?attr/colorHeaderText" />
</shape> </shape>

View File

@@ -29,7 +29,7 @@
android:id="@+id/add_user_id_comment" android:id="@+id/add_user_id_comment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/tertiary_text_light" android:textColor="?attr/colorTertiaryText"
android:singleLine="true" android:singleLine="true"
android:lines="1" android:lines="1"
android:maxLines="1" android:maxLines="1"

View File

@@ -28,7 +28,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:text="@string/label_name" android:text="@string/label_name"
android:textColor="@color/tertiary_text_light" android:textColor="?attr/colorTertiaryText"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView <TextView
@@ -44,7 +44,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:text="@string/label_email" android:text="@string/label_email"
android:textColor="@color/tertiary_text_light" android:textColor="?attr/colorTertiaryText"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView <TextView

View File

@@ -25,7 +25,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/none" android:text="@string/none"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:textColor="@color/header_text" /> android:textColor="?attr/colorHeaderText" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout

View File

@@ -34,7 +34,7 @@
android:id="@+id/user_id_item_comment" android:id="@+id/user_id_item_comment"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/tertiary_text_light" android:textColor="?attr/colorTertiaryText"
android:text="comment" android:text="comment"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />

View File

@@ -4,5 +4,7 @@
<attr name="colorFab" format="color" /> <attr name="colorFab" format="color" />
<attr name="colorFabPressed" format="color" /> <attr name="colorFabPressed" format="color" />
<attr name="colorEmphasis" format="color" /> <attr name="colorEmphasis" format="color" />
<attr name="colorHeaderText" format="color" />
<attr name="colorTertiaryText" format="color" />
</declare-styleable> </declare-styleable>
</resources> </resources>

View File

@@ -4,11 +4,7 @@
<color name="icons">#FFFFFF</color> <color name="icons">#FFFFFF</color>
<color name="transparent">#00FFFFFF</color> <color name="transparent">#00FFFFFF</color>
<color name="header_text">#212121</color>
<color name="bg_gray">#cecbce</color> <color name="bg_gray">#cecbce</color>
<color name="tertiary_text_light">#808080</color>
<color name="alert">#ffdd3333</color>
<color name="holo_gray_bright">#33CCCCCC</color> <color name="holo_gray_bright">#33CCCCCC</color>

View File

@@ -7,7 +7,7 @@
<item name="android:layout_marginTop">16dp</item> <item name="android:layout_marginTop">16dp</item>
<item name="android:paddingLeft">16dp</item> <item name="android:paddingLeft">16dp</item>
<item name="android:textStyle">normal</item> <item name="android:textStyle">normal</item>
<item name="android:textColor">@color/header_text</item> <item name="android:textColor">?attr/colorHeaderText</item>
<item name="android:textSize">17sp</item> <item name="android:textSize">17sp</item>
</style> </style>
@@ -17,7 +17,7 @@
<item name="android:layout_marginTop">8dp</item> <item name="android:layout_marginTop">8dp</item>
<item name="android:paddingLeft">8dp</item> <item name="android:paddingLeft">8dp</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:textColor">@color/header_text</item> <item name="android:textColor">?attr/colorHeaderText</item>
<item name="android:textSize">14sp</item> <item name="android:textSize">14sp</item>
</style> </style>

View File

@@ -10,6 +10,9 @@
<item name="colorFabPressed">#1976d2</item> <item name="colorFabPressed">#1976d2</item>
<item name="colorEmphasis">#2196f3</item> <item name="colorEmphasis">#2196f3</item>
<item name="colorHeaderText">#212121</item>
<item name="colorTertiaryText">#808080</item>
<!-- remove actionbar and title, we use toolbar! --> <!-- remove actionbar and title, we use toolbar! -->
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
@@ -28,6 +31,8 @@
<item name="colorFabPressed">#1976d2</item> <item name="colorFabPressed">#1976d2</item>
<item name="colorEmphasis">#2196f3</item> <item name="colorEmphasis">#2196f3</item>
<item name="colorHeaderText">#a0a0a0</item>
<item name="colorTertiaryText">#808080</item>
<!-- remove actionbar and title, we use toolbar! --> <!-- remove actionbar and title, we use toolbar! -->
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>