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 +