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 @@ + + + + -