diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java
index f3395716..a84a7be7 100644
--- a/app/src/main/java/com/termux/app/TermuxActivity.java
+++ b/app/src/main/java/com/termux/app/TermuxActivity.java
@@ -127,6 +127,8 @@ public final class TermuxActivity extends Activity implements ServiceConnection
*/
boolean mIsVisible;
+ boolean mIsUsingBlackUI;
+
final SoundPool mBellSoundPool = new SoundPool.Builder().setMaxStreams(1).setAudioAttributes(
new AudioAttributes.Builder().setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION).build()).build();
@@ -203,11 +205,24 @@ public final class TermuxActivity extends Activity implements ServiceConnection
@Override
public void onCreate(Bundle bundle) {
+ mSettings = new TermuxPreferences(this);
+ mIsUsingBlackUI = mSettings.isUsingBlackUI();
+ if (mIsUsingBlackUI) {
+ this.setTheme(R.style.Theme_Termux_Black);
+ } else {
+ this.setTheme(R.style.Theme_Termux);
+ }
+
super.onCreate(bundle);
- mSettings = new TermuxPreferences(this);
-
setContentView(R.layout.drawer_layout);
+
+ if (mIsUsingBlackUI) {
+ findViewById(R.id.left_drawer).setBackgroundColor(
+ getResources().getColor(android.R.color.background_dark)
+ );
+ }
+
mTerminalView = findViewById(R.id.terminal_view);
mTerminalView.setOnKeyListener(new TermuxViewClient(this));
@@ -434,7 +449,11 @@ public final class TermuxActivity extends Activity implements ServiceConnection
boolean sessionRunning = sessionAtRow.isRunning();
TextView firstLineView = row.findViewById(R.id.row_line);
-
+ if (mIsUsingBlackUI) {
+ firstLineView.setBackground(
+ getResources().getDrawable(R.drawable.selected_session_background_black)
+ );
+ }
String name = sessionAtRow.mSessionName;
String sessionTitle = sessionAtRow.getTitle();
@@ -454,7 +473,8 @@ public final class TermuxActivity extends Activity implements ServiceConnection
} else {
firstLineView.setPaintFlags(firstLineView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
}
- int color = sessionRunning || sessionAtRow.getExitStatus() == 0 ? Color.WHITE : Color.RED;
+ int defaultColor = mIsUsingBlackUI ? Color.WHITE : Color.BLACK;
+ int color = sessionRunning || sessionAtRow.getExitStatus() == 0 ? defaultColor : Color.RED;
firstLineView.setTextColor(color);
return row;
}
diff --git a/app/src/main/java/com/termux/app/TermuxPreferences.java b/app/src/main/java/com/termux/app/TermuxPreferences.java
index 16a996ed..f6095837 100644
--- a/app/src/main/java/com/termux/app/TermuxPreferences.java
+++ b/app/src/main/java/com/termux/app/TermuxPreferences.java
@@ -58,6 +58,7 @@ final class TermuxPreferences {
private static final String CURRENT_SESSION_KEY = "current_session";
private static final String SCREEN_ALWAYS_ON_KEY = "screen_always_on";
+ private String mUseDarkUI;
private boolean mScreenAlwaysOn;
private int mFontSize;
@@ -126,6 +127,10 @@ final class TermuxPreferences {
return mScreenAlwaysOn;
}
+ boolean isUsingBlackUI() {
+ return mUseDarkUI.toLowerCase().equals("true");
+ }
+
void setScreenAlwaysOn(Context context, boolean newValue) {
mScreenAlwaysOn = newValue;
PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean(SCREEN_ALWAYS_ON_KEY, newValue).apply();
@@ -173,6 +178,8 @@ final class TermuxPreferences {
break;
}
+ mUseDarkUI = props.getProperty("use-black-ui", "false");
+
try {
JSONArray arr = new JSONArray(props.getProperty("extra-keys", "[['ESC', 'TAB', 'CTRL', 'ALT', '-', 'DOWN', 'UP']]"));
diff --git a/app/src/main/res/drawable/current_session.xml b/app/src/main/res/drawable/current_session.xml
index 6a926499..90dd2818 100644
--- a/app/src/main/res/drawable/current_session.xml
+++ b/app/src/main/res/drawable/current_session.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/app/src/main/res/drawable/current_session_black.xml b/app/src/main/res/drawable/current_session_black.xml
new file mode 100644
index 00000000..6a926499
--- /dev/null
+++ b/app/src/main/res/drawable/current_session_black.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/selected_session_background_black.xml b/app/src/main/res/drawable/selected_session_background_black.xml
new file mode 100644
index 00000000..25b7506f
--- /dev/null
+++ b/app/src/main/res/drawable/selected_session_background_black.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/session_ripple.xml b/app/src/main/res/drawable/session_ripple.xml
index 21423eb5..9c4a1e79 100644
--- a/app/src/main/res/drawable/session_ripple.xml
+++ b/app/src/main/res/drawable/session_ripple.xml
@@ -2,6 +2,6 @@
-
-
+
diff --git a/app/src/main/res/drawable/session_ripple_black.xml b/app/src/main/res/drawable/session_ripple_black.xml
new file mode 100644
index 00000000..21423eb5
--- /dev/null
+++ b/app/src/main/res/drawable/session_ripple_black.xml
@@ -0,0 +1,7 @@
+
+
+ -
+
+
+
diff --git a/app/src/main/res/layout/drawer_layout.xml b/app/src/main/res/layout/drawer_layout.xml
index 14ea1b64..c5117f14 100644
--- a/app/src/main/res/layout/drawer_layout.xml
+++ b/app/src/main/res/layout/drawer_layout.xml
@@ -26,7 +26,7 @@
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
- android:background="@android:color/background_dark"
+ android:background="@android:color/white"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5dac43a1..1f352423 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,9 +1,34 @@
+
+
+
+
-