Added more icons

This commit is contained in:
hajdam
2024-09-25 21:51:29 +02:00
parent 52ff157892
commit 12787d9965
30 changed files with 157 additions and 78 deletions
+2 -2
View File
@@ -334,7 +334,7 @@
<PersistentState>
<option name="values">
<map>
<entry key="url" value="file:$USER_HOME$/Android/Sdk/icons/material/materialicons/save/baseline_save_24.xml" />
<entry key="url" value="file:$USER_HOME$/Android/Sdk/icons/material/materialicons/exit_to_app/baseline_exit_to_app_24.xml" />
</map>
</option>
</PersistentState>
@@ -344,7 +344,7 @@
</option>
<option name="values">
<map>
<entry key="outputName" value="ic_action_save_24" />
<entry key="outputName" value="ic_exit_24" />
</map>
</option>
</PersistentState>
@@ -16,6 +16,7 @@
package org.exbin.bined.android.basic.color;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
@@ -164,18 +165,18 @@ public class BasicCodeAreaColorsProfile implements CodeAreaColorsProfile {
}
public void reinitialize() {
textColor = getThemeColor(androidx.appcompat.R.attr.editTextColor);
textColor = getThemeColor(androidx.appcompat.R.attr.color);
if (textColor == null) {
textColor = Color.BLACK;
textColor = isDarkMode() ? Color.WHITE : Color.BLACK;
}
textBackground = getThemeColor(androidx.appcompat.R.attr.editTextBackground);
textBackground = getThemeColor(androidx.appcompat.R.attr.panelBackground);
if (textBackground == null) {
textBackground = CodeAreaAndroidUtils.createNegativeColor(textColor);
}
selectionColor = getThemeColor(androidx.appcompat.R.attr.editTextColor);
if (selectionColor == null) {
selectionColor = Color.WHITE;
selectionColor = isDarkMode() ? Color.BLACK : Color.WHITE;
}
selectionBackground = getThemeColor(androidx.appcompat.R.attr.selectableItemBackground);
if (selectionBackground == null) {
@@ -183,9 +184,9 @@ public class BasicCodeAreaColorsProfile implements CodeAreaColorsProfile {
}
selectionMirrorColor = selectionColor;
selectionMirrorBackground = CodeAreaAndroidUtils.computeGrayColor(selectionBackground);
cursorColor = getThemeColor(androidx.appcompat.R.attr.colorControlActivated);
cursorColor = getThemeColor(androidx.appcompat.R.attr.color);
if (cursorColor == null) {
cursorColor = Color.BLACK;
cursorColor = isDarkMode() ? Color.WHITE : Color.BLACK;
}
cursorNegativeColor = CodeAreaAndroidUtils.createNegativeColor(cursorColor);
decorationLine = Color.GRAY;
@@ -215,4 +216,8 @@ public class BasicCodeAreaColorsProfile implements CodeAreaColorsProfile {
}
return null;
}
private boolean isDarkMode() {
return context != null && (context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
}
}
@@ -17,7 +17,9 @@ package org.exbin.bined.editor.android;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.LocaleList;
import android.text.Editable;
import android.text.InputType;
import android.text.method.KeyListener;
@@ -72,11 +74,12 @@ import org.exbin.framework.bined.BinaryStatusApi;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -134,10 +137,7 @@ public class MainActivity extends AppCompatActivity {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
String language = mainPreferences.getLocaleTag();
if (!"default".equals(theme)) {
AppCompatDelegate.setApplicationLocales(LocaleListCompat.create(Locale.forLanguageTag(language)));
}
AppCompatDelegate.setApplicationLocales(LocaleListCompat.wrap(getLanguageLocaleList()));
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@@ -154,17 +154,11 @@ public class MainActivity extends AppCompatActivity {
codeArea = findViewById(R.id.codeArea);
codeArea.setEditOperation(EditOperation.INSERT);
DefaultCodeAreaPainter painter = (DefaultCodeAreaPainter) codeArea.getPainter();
BasicCodeAreaColorsProfile basicColors = painter.getBasicColors();
basicColors.setContext(this);
basicColors.reinitialize();
painter.resetColors();
undoRedo = new CodeAreaUndoRedo(codeArea);
undoRedo.addChangeListener(() -> {
if (menu != null) {
menu.findItem(R.id.app_bar_undo).setEnabled(undoRedo.canUndo());
menu.findItem(R.id.app_bar_redo).setEnabled(undoRedo.canRedo());
updateUndoState();
}
// View undoAction = findViewById(R.id.app_bar_undo);
// if (undoAction != null) {
@@ -178,7 +172,12 @@ public class MainActivity extends AppCompatActivity {
CodeAreaOperationCommandHandler commandHandler = new CodeAreaOperationCommandHandler(codeArea.getContext(), codeArea, undoRedo);
codeArea.setCommandHandler(commandHandler);
codeArea.setPainter(new HighlightNonAsciiCodeAreaPainter(codeArea));
HighlightNonAsciiCodeAreaPainter painter = new HighlightNonAsciiCodeAreaPainter(codeArea);
codeArea.setPainter(painter);
BasicCodeAreaColorsProfile basicColors = painter.getBasicColors();
basicColors.setContext(this);
basicColors.reinitialize();
painter.resetColors();
registerForContextMenu(codeArea);
@@ -264,6 +263,18 @@ public class MainActivity extends AppCompatActivity {
applySettings();
}
@Nonnull
private LocaleList getLanguageLocaleList() {
String language = appPreferences.getMainPreferences().getLocaleTag();
if ("default".equals(language)) {
return LocaleList.getDefault();
} else if ("en".equals(language)) {
return LocaleList.getEmptyLocaleList();
}
return LocaleList.forLanguageTags(language);
}
private void applySettings() {
appPreferences.getCodeAreaPreferences().applyPreferences(codeArea);
try {
@@ -291,9 +302,21 @@ public class MainActivity extends AppCompatActivity {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
// If possible, attempt to show icons in the main menu via reflection
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
method.setAccessible(true);
method.invoke(menu, true);
} catch (NoSuchMethodException ex) {
Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
this.menu = menu;
menu.findItem(R.id.app_bar_undo).setEnabled(undoRedo.canUndo());
menu.findItem(R.id.app_bar_redo).setEnabled(undoRedo.canRedo());
updateUndoState();
menu.findItem(R.id.code_colorization).setChecked(appPreferences.getCodeAreaPreferences().isCodeColorization());
int bytesPerRow = appPreferences.getCodeAreaPreferences().getMaxBytesPerRow();
@@ -428,6 +451,9 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
intent.putExtra(Intent.EXTRA_LOCALE_LIST, getLanguageLocaleList());
}
// Optionally, specify a URI for the file that should appear in the
// system file picker when it loads.
@@ -448,6 +474,9 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
intent.putExtra(Intent.EXTRA_LOCALE_LIST, getLanguageLocaleList());
}
// Optionally, specify a URI for the file that should appear in the
// system file picker when it loads.
@@ -760,6 +789,17 @@ public class MainActivity extends AppCompatActivity {
binaryStatus.setEditMode(codeArea.getEditMode(), codeArea.getActiveOperation());
}
private void updateUndoState() {
boolean canUndo = undoRedo.canUndo();
MenuItem undoMenuItem = menu.findItem(R.id.app_bar_undo);
undoMenuItem.setEnabled(canUndo);
// TODO undoMenuItem.setIconTintList(new ColorStateList(ColorStateList.));
boolean canRedo = undoRedo.canRedo();
MenuItem redoMenuItem = menu.findItem(R.id.app_bar_redo);
redoMenuItem.setEnabled(canRedo);
}
private void openFileResultCallback(ActivityResult activityResult) {
int resultCode = activityResult.getResultCode();
Intent data = activityResult.getData();
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:color="@color/icon_tint" />
<item android:state_enabled="false" android:color="@color/disabled_icon_tint" />
</selector>
+5
View File
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:autoMirrored="true" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M10.09,15.59L11.5,17l5,-5 -5,-5 -1.41,1.41L12.67,11H3v2h9.67l-2.58,2.59zM19,3H5c-1.11,0 -2,0.9 -2,2v4h2V5h14v14H5v-4H3v4c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z"/>
</vector>
+5
View File
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z"/>
</vector>
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:autoMirrored="true" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M6,2c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2L18,22c1.1,0 2,-0.9 2,-2L20,8l-6,-6L6,2zM13,9L13,3.5L18.5,9L13,9z"/>
</vector>
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M14,2H6C4.9,2 4,2.9 4,4v16c0,1.1 0.89,2 1.99,2H15v-8h5V8L14,2zM13,9V3.5L18.5,9H13zM17,21.66V16h5.66v2h-2.24l2.95,2.95l-1.41,1.41L19,19.41l0,2.24H17z"/>
</vector>
@@ -1,4 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z"/>
@@ -1,4 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M21,12.4V7l-4,-4H5C3.89,3 3,3.9 3,5v14c0,1.1 0.89,2 2,2h7.4L21,12.4zM15,15c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3s1.34,-3 3,-3S15,13.34 15,15zM6,6h9v4H6V6zM19.99,16.25l1.77,1.77L16.77,23H15v-1.77L19.99,16.25zM23.25,16.51l-0.85,0.85l-1.77,-1.77l0.85,-0.85c0.2,-0.2 0.51,-0.2 0.71,0l1.06,1.06C23.45,16 23.45,16.32 23.25,16.51z"/>
@@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm1,15h-2v-6h2v6zm0,-8h-2V7h2v2z" />
</vector>
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="@color/icon_tint" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
</vector>
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M11.5,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.9,2 2,2zm6.5,-6v-5.5c0,-3.07 -2.13,-5.64 -5,-6.32V3.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,2.67 10,3.5v0.68c-2.87,0.68 -5,3.25 -5,6.32V16l-2,2v1h17v-1l-2,-2z" />
</vector>
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.49,2 2,6.49 2,12s4.49,10 10,10c1.38,0 2.5,-1.12 2.5,-2.5c0,-0.61 -0.23,-1.2 -0.64,-1.67c-0.08,-0.1 -0.13,-0.21 -0.13,-0.33c0,-0.28 0.22,-0.5 0.5,-0.5H16c3.31,0 6,-2.69 6,-6C22,6.04 17.51,2 12,2zM17.5,13c-0.83,0 -1.5,-0.67 -1.5,-1.5c0,-0.83 0.67,-1.5 1.5,-1.5s1.5,0.67 1.5,1.5C19,12.33 18.33,13 17.5,13zM14.5,9C13.67,9 13,8.33 13,7.5C13,6.67 13.67,6 14.5,6S16,6.67 16,7.5C16,8.33 15.33,9 14.5,9zM5,11.5C5,10.67 5.67,10 6.5,10S8,10.67 8,11.5C8,12.33 7.33,13 6.5,13S5,12.33 5,11.5zM11,7.5C11,8.33 10.33,9 9.5,9S8,8.33 8,7.5C8,6.67 8.67,6 9.5,6S11,6.67 11,7.5z"/>
</vector>
@@ -1,4 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M18.4,10.6C16.55,8.99 14.15,8 11.5,8c-4.65,0 -8.58,3.03 -9.96,7.22L3.9,16c1.05,-3.19 4.05,-5.5 7.6,-5.5 1.95,0 3.73,0.72 5.12,1.88L13,16h9V7l-3.6,3.6z"/>
@@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:fillColor="@android:color/white"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
</vector>
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM17.25,12c0,0.23 -0.02,0.46 -0.05,0.68l1.48,1.16c0.13,0.11 0.17,0.3 0.08,0.45l-1.4,2.42c-0.09,0.15 -0.27,0.21 -0.43,0.15l-1.74,-0.7c-0.36,0.28 -0.76,0.51 -1.18,0.69l-0.26,1.85c-0.03,0.17 -0.18,0.3 -0.35,0.3h-2.8c-0.17,0 -0.32,-0.13 -0.35,-0.29l-0.26,-1.85c-0.43,-0.18 -0.82,-0.41 -1.18,-0.69l-1.74,0.7c-0.16,0.06 -0.34,0 -0.43,-0.15l-1.4,-2.42c-0.09,-0.15 -0.05,-0.34 0.08,-0.45l1.48,-1.16c-0.03,-0.23 -0.05,-0.46 -0.05,-0.69 0,-0.23 0.02,-0.46 0.05,-0.68l-1.48,-1.16c-0.13,-0.11 -0.17,-0.3 -0.08,-0.45l1.4,-2.42c0.09,-0.15 0.27,-0.21 0.43,-0.15l1.74,0.7c0.36,-0.28 0.76,-0.51 1.18,-0.69l0.26,-1.85c0.03,-0.17 0.18,-0.3 0.35,-0.3h2.8c0.17,0 0.32,0.13 0.35,0.29l0.26,1.85c0.43,0.18 0.82,0.41 1.18,0.69l1.74,-0.7c0.16,-0.06 0.34,0 0.43,0.15l1.4,2.42c0.09,0.15 0.05,0.34 -0.08,0.45l-1.48,1.16c0.03,0.23 0.05,0.46 0.05,0.69z"/>
</vector>
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01,-.25 1.97,-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0,-4.42,-3.58,-8,-8,-8zm0 14c-3.31 0,-6,-2.69,-6,-6 0,-1.01.25,-1.97.7,-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4,-4,-4,-4v3z" />
</vector>
@@ -1,4 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:tint="@color/icon_tint" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12.5,8c-2.65,0 -5.05,0.99 -6.9,2.6L2,7v9h9l-3.62,-3.62c1.39,-1.16 3.16,-1.88 5.12,-1.88 3.54,0 6.55,2.31 7.6,5.5l2.37,-0.78C21.08,11.03 17.15,8 12.5,8z"/>
-9
View File
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#8A000000"
android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z" />
</vector>
-9
View File
@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#8A000000"
android:pathData="M12,4L12,1L8,5l4,4L12,6c3.31,0 6,2.69 6,6 0,1.01 -0.25,1.97 -0.7,2.8l1.46,1.46C19.54,15.03 20,13.57 20,12c0,-4.42 -3.58,-8 -8,-8zM12,18c-3.31,0 -6,-2.69 -6,-6 0,-1.01 0.25,-1.97 0.7,-2.8L5.24,7.74C4.46,8.97 4,10.43 4,12c0,4.42 3.58,8 8,8v3l4,-4 -4,-4v3z" />
</vector>
+1 -1
View File
@@ -160,7 +160,7 @@
<TableLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp">
android:layout_marginStart="5dp">
<TableRow
android:layout_width="match_parent"
+10 -5
View File
@@ -4,34 +4,36 @@
tools:context="org.exbin.bined.editor.android.MainActivity">
<item
android:id="@+id/app_bar_search"
android:icon="@drawable/ic_search_black_24dp"
android:icon="@drawable/ic_search_24"
android:title="@string/action_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom" />
<item
android:id="@+id/app_bar_undo"
android:icon="@drawable/ic_undo_24dp"
android:icon="@drawable/ic_undo_24"
android:title="@string/action_undo"
app:showAsAction="ifRoom" />
<item
android:id="@+id/app_bar_redo"
android:icon="@drawable/ic_redo_24dp"
android:icon="@drawable/ic_redo_24"
android:title="@string/action_redo"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_new"
android:icon="@drawable/ic_file_new_24"
android:title="@string/action_new" />
<item
android:id="@+id/action_open"
android:icon="@drawable/ic_file_open_24"
android:title="@string/action_open" />
<item
android:id="@+id/action_save"
android:enabled="false"
android:icon="@drawable/ic_action_save_24"
android:icon="@drawable/ic_file_save_24"
android:title="@string/action_save" />
<item
android:id="@+id/action_save_as"
android:icon="@drawable/ic_action_save_as_24"
android:icon="@drawable/ic_file_save_as_24"
android:title="@string/action_save_as" />
<item
android:id="@+id/view_menu"
@@ -138,11 +140,14 @@
</item>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_settings_24"
android:title="@string/action_settings" />
<item
android:id="@+id/action_about"
android:icon="@drawable/ic_info_24"
android:title="@string/action_about" />
<item
android:id="@+id/action_exit"
android:icon="@drawable/ic_exit_24"
android:title="@string/action_exit" />
</menu>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#1F2155</color>
<color name="colorPrimaryDark">#101F3F</color>
<color name="colorAccent">#FF4081</color>
<color name="icon_tint">#FFEFEFEF</color>
<color name="disabled_icon_tint">#FF6F6F6F</color>
</resources>
+2
View File
@@ -7,4 +7,6 @@
<color name="light_blue_600">#FF039BE5</color>
<color name="gray_400">#FFBDBDBD</color>
<color name="gray_600">#FF757575</color>
<color name="icon_tint">#FF202020</color>
<color name="disabled_icon_tint">#FF4F4F4F</color>
</resources>
-1
View File
@@ -25,5 +25,4 @@
<item name="android:minHeight">20dp</item>
<item name="android:minWidth">30dp</item>
</style>
</resources>
+2 -2
View File
@@ -2,12 +2,12 @@
<Preference
app:fragment="org.exbin.bined.editor.android.SettingsActivity$AppearanceFragment"
app:icon="@drawable/ic_info_black_24dp"
app:icon="@drawable/ic_info_24"
app:title="@string/pref_header_appearance" />
<Preference
app:fragment="org.exbin.bined.editor.android.SettingsActivity$ViewFragment"
app:icon="@drawable/messages"
app:icon="@drawable/ic_eye_24"
app:key="view_header"
app:title="@string/pref_view_header" />
@@ -4,6 +4,7 @@
app:defaultValue="default"
app:entries="@array/theme_entries"
app:entryValues="@array/theme_values"
app:icon="@drawable/ic_palette_24"
app:key="theme"
app:title="@string/visual_theme"
app:useSimpleSummaryProvider="true" />
@@ -12,6 +13,7 @@
app:defaultValue="default"
app:entries="@array/language_entries"
app:entryValues="@array/language_values"
app:icon="@drawable/ic_language_24"
app:key="language"
app:title="@string/language"
app:useSimpleSummaryProvider="true" />
+2 -1
View File
@@ -1,7 +1,8 @@
0.2.1
- Basic support for selection / clipboard
- Changed file dialog
- Added settings
- Added settings and preferences
- Added dark theme and language switching
0.2.0.1 (2024-09-05)
- Minor fix of keyboard support in preview
@@ -1 +1,14 @@
Early release with limited functionality
BinEd is a hex editor tool, which allows to directly browse and edit content of any file or binary data.
App is currently beta with limited functionality.
Features
--------
* Visualize data as numerical (hexadecimal) codes and text representation
* Codes can be also binary, octal or decimal
* Support for Unicode, UTF-8 and other charsets
* Insert and overwrite edit modes
* TODO: Searching for text / hexadecimal code with matching highlighting
* Support for undo/redo
* TODO: Support for files with size up to exabytes