0
0
mirror of https://github.com/TrianguloY/UrlChecker.git synced 2024-09-19 20:02:16 +02:00

replace hardcoded menu with resource

This commit is contained in:
TrianguloY 2024-01-28 20:10:47 +01:00
parent 5bf88d6dc3
commit 56aa53fdba
3 changed files with 24 additions and 21 deletions

View File

@ -43,21 +43,20 @@ public class MainActivity extends Activity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// option for the open in clipboard shortcut getMenuInflater().inflate(R.menu.activity_main, menu);
menu.add(R.string.shortcut_checkClipboard) AndroidUtils.fixMenuIconColor(menu.findItem(R.id.menu_checkClipboard), this);
.setIcon(AndroidUtils.getColoredDrawable(R.drawable.ic_clipboard, android.R.attr.textColorPrimary, this))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setOnMenuItemClickListener(o -> {
PackageUtils.startActivity(
new Intent(this, ShortcutsActivity.class),
R.string.toast_noApp,
this
);
return true;
});
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_checkClipboard) {
// the open in clipboard shortcut
PackageUtils.startActivity(new Intent(this, ShortcutsActivity.class), R.string.toast_noApp, this);
}
return super.onOptionsItemSelected(item);
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();

View File

@ -7,7 +7,6 @@ import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
@ -15,6 +14,7 @@ import android.text.style.ClickableSpan;
import android.util.Log; import android.util.Log;
import android.util.Patterns; import android.util.Patterns;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -206,19 +206,15 @@ public interface AndroidUtils {
} }
/** /**
* Returns a drawable with a different color * Fixes the color of a MenuItem icon (colorFilter=textColorPrimary)
*/ */
static Drawable getColoredDrawable(int drawableId, int colorAttr, Context cntx) { static void fixMenuIconColor(MenuItem menuItem, Context cntx) {
// get drawable
var drawable = cntx.getResources().getDrawable(drawableId).mutate();
// get color // get color
var resolvedAttr = new TypedValue(); var resolvedAttr = new TypedValue();
cntx.getTheme().resolveAttribute(colorAttr, resolvedAttr, true); cntx.getTheme().resolveAttribute(android.R.attr.textColorPrimary, resolvedAttr, true);
// tint // tint
drawable.setColorFilter(cntx.getResources().getColor(resolvedAttr.resourceId), PorterDuff.Mode.SRC_IN); menuItem.getIcon().setColorFilter(cntx.getResources().getColor(resolvedAttr.resourceId), PorterDuff.Mode.SRC_IN);
return drawable;
} }
/** /**

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_checkClipboard"
android:icon="@drawable/ic_clipboard"
android:showAsAction="ifRoom|withText"
android:title="@string/shortcut_checkClipboard" />
</menu>