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
public boolean onCreateOptionsMenu(Menu menu) {
// option for the open in clipboard shortcut
menu.add(R.string.shortcut_checkClipboard)
.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;
});
getMenuInflater().inflate(R.menu.activity_main, menu);
AndroidUtils.fixMenuIconColor(menu.findItem(R.id.menu_checkClipboard), this);
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
protected void onResume() {
super.onResume();

View File

@ -7,7 +7,6 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.text.SpannableStringBuilder;
@ -15,6 +14,7 @@ import android.text.style.ClickableSpan;
import android.util.Log;
import android.util.Patterns;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
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) {
// get drawable
var drawable = cntx.getResources().getDrawable(drawableId).mutate();
static void fixMenuIconColor(MenuItem menuItem, Context cntx) {
// get color
var resolvedAttr = new TypedValue();
cntx.getTheme().resolveAttribute(colorAttr, resolvedAttr, true);
cntx.getTheme().resolveAttribute(android.R.attr.textColorPrimary, resolvedAttr, true);
// tint
drawable.setColorFilter(cntx.getResources().getColor(resolvedAttr.resourceId), PorterDuff.Mode.SRC_IN);
return drawable;
menuItem.getIcon().setColorFilter(cntx.getResources().getColor(resolvedAttr.resourceId), PorterDuff.Mode.SRC_IN);
}
/**

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>