From 1c88b45b5607f4f5adb6edabbf984d499850491a Mon Sep 17 00:00:00 2001 From: David Kramer Date: Tue, 12 Jun 2018 21:26:24 -0600 Subject: [PATCH] Add BrightnessAPI --- app/src/main/AndroidManifest.xml | 3 +++ .../java/com/termux/api/BrightnessAPI.java | 26 +++++++++++++++++++ .../com/termux/api/TermuxApiReceiver.java | 26 +++++++++++++++---- 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/termux/api/BrightnessAPI.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d3595a67f..886baa1b4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -21,6 +22,8 @@ + diff --git a/app/src/main/java/com/termux/api/BrightnessAPI.java b/app/src/main/java/com/termux/api/BrightnessAPI.java new file mode 100644 index 000000000..3780e900d --- /dev/null +++ b/app/src/main/java/com/termux/api/BrightnessAPI.java @@ -0,0 +1,26 @@ +package com.termux.api; + +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.provider.Settings; + +import com.termux.api.util.ResultReturner; + +public class BrightnessAPI { + + public static void onReceive(final TermuxApiReceiver receiver, final Context context, final Intent intent) { + final ContentResolver contentResolver = context.getContentResolver(); + + int brightness = intent.getIntExtra("brightness", 0); + + if (brightness <= 0) { + brightness = 0; + } else if (brightness >= 255) { + brightness = 255; + } + + Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); + ResultReturner.noteDone(receiver, intent); + } +} diff --git a/app/src/main/java/com/termux/api/TermuxApiReceiver.java b/app/src/main/java/com/termux/api/TermuxApiReceiver.java index e52351a1f..171b3d02a 100644 --- a/app/src/main/java/com/termux/api/TermuxApiReceiver.java +++ b/app/src/main/java/com/termux/api/TermuxApiReceiver.java @@ -4,7 +4,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.provider.CallLog; +import android.os.Build; +import android.provider.Settings; +import android.widget.Toast; import com.termux.api.util.TermuxApiLogger; import com.termux.api.util.TermuxApiPermissionActivity; @@ -20,12 +22,26 @@ public void onReceive(Context context, Intent intent) { } switch (apiMethod) { - case "AudioInfo": - AudioAPI.onReceive(this, context, intent); - break; - case "BatteryStatus": + case "AudioInfo": + AudioAPI.onReceive(this, context, intent); + break; + case "BatteryStatus": BatteryStatusAPI.onReceive(this, context, intent); break; + case "Brightness": + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (!Settings.System.canWrite(context)) { + TermuxApiPermissionActivity.checkAndRequestPermissions(context, intent, Manifest.permission.WRITE_SETTINGS); + Toast.makeText(context, "Please enable permission for Termux:API", Toast.LENGTH_LONG).show(); + + // user must enable WRITE_SETTINGS permission this special way + Intent settingsIntent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS); + context.startActivity(settingsIntent); + return; + } + } + BrightnessAPI.onReceive(this, context, intent); + break; case "CameraInfo": CameraInfoAPI.onReceive(this, context, intent); break;