From 6c3ff987589031efb6fe22a432c1257f394afb34 Mon Sep 17 00:00:00 2001
From: AbdullahM0hamed <25087116+AbdullahM0hamed@users.noreply.github.com>
Date: Sun, 27 Sep 2020 00:43:25 +0100
Subject: [PATCH] Add Dark Theme
---
.../java/com/termux/api/DialogActivity.java | 34 +++++++++++++++++++
app/src/main/res/values/styles.xml | 6 ++--
2 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/com/termux/api/DialogActivity.java b/app/src/main/java/com/termux/api/DialogActivity.java
index 0dacb93d2..2ded38a25 100644
--- a/app/src/main/java/com/termux/api/DialogActivity.java
+++ b/app/src/main/java/com/termux/api/DialogActivity.java
@@ -14,6 +14,7 @@
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
+import android.util.Log;
import androidx.annotation.NonNull;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@@ -44,12 +45,17 @@
import com.termux.api.util.ResultReturner;
import com.termux.api.util.TermuxApiPermissionActivity;
+import java.nio.charset.StandardCharsets;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
+import java.util.Properties;
/**
* API that allows receiving user input interactively in a variety of different ways
@@ -58,6 +64,31 @@ public class DialogActivity extends AppCompatActivity {
private boolean resultReturned = false;
+ protected boolean getBlackUI() {
+ File propsFile = new File("/data/data/com.termux/files/home/.termux/termux.properties");
+
+ if (!propsFile.exists())
+ propsFile = new File("/data/data/com.termux/files/home/.config/termux.properties");
+
+ boolean mUseBlackUi = false;
+
+ if (propsFile.exists()) {
+ Properties props = new Properties();
+ try {
+ if (propsFile.isFile() && propsFile.canRead()) {
+ try (FileInputStream in = new FileInputStream(propsFile)) {
+ props.load(new InputStreamReader(in, StandardCharsets.UTF_8));
+ }
+ }
+ mUseBlackUi = props.getProperty("use-black-ui").equals("true");
+ } catch (Exception e) {
+ Log.e("termux-api", "Error loading props", e);
+ }
+ }
+
+ return mUseBlackUi;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -67,6 +98,9 @@ protected void onCreate(Bundle savedInstanceState) {
String methodType = intent.hasExtra("input_method") ? intent.getStringExtra("input_method") : "";
+ if (getBlackUI())
+ this.setTheme(R.style.DialogTheme_Dark);
+
InputMethod method = InputMethodFactory.get(methodType, this);
method.create(this, result -> {
postResult(context, result);
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 62c845834..908699a04 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -17,9 +17,11 @@
- true
+
-
\ No newline at end of file
+