diff --git a/app/src/main/java/com/termux/api/TermuxApiReceiver.java b/app/src/main/java/com/termux/api/TermuxApiReceiver.java index b752864b..c753d81c 100644 --- a/app/src/main/java/com/termux/api/TermuxApiReceiver.java +++ b/app/src/main/java/com/termux/api/TermuxApiReceiver.java @@ -31,6 +31,7 @@ import com.termux.api.apis.NotificationListAPI; import com.termux.api.apis.SAFAPI; import com.termux.api.apis.SensorAPI; +import com.termux.api.apis.SettingAPI; import com.termux.api.apis.ShareAPI; import com.termux.api.apis.SmsInboxAPI; import com.termux.api.apis.SmsSendAPI; @@ -195,6 +196,9 @@ private void doWork(Context context, Intent intent) { break; case "Sensor": SensorAPI.onReceive(context, intent); + break; + case "Setting": + SettingAPI.onReceive(this, context, intent); break; case "Share": ShareAPI.onReceive(this, context, intent); diff --git a/app/src/main/java/com/termux/api/apis/SettingAPI.java b/app/src/main/java/com/termux/api/apis/SettingAPI.java new file mode 100644 index 00000000..0175d8c3 --- /dev/null +++ b/app/src/main/java/com/termux/api/apis/SettingAPI.java @@ -0,0 +1,37 @@ +package com.termux.api.apis; + +import android.content.Context; +import android.content.Intent; + +import com.termux.api.TermuxApiReceiver; +import com.termux.api.util.ResultReturner; +import com.termux.shared.logger.Logger; + +import com.termux.shared.android.SettingsProviderUtils; +import com.termux.shared.android.SettingsProviderUtils.SettingNamespace; + +import android.provider.Settings; + +public class SettingAPI { + + private static final String LOG_TAG = "SettingAPI"; + + public static void onReceive(TermuxApiReceiver apiReceiver, final Context context, Intent intent) { + Logger.logDebug(LOG_TAG, "onReceive"); + + ResultReturner.returnData(apiReceiver, intent, out -> { + String key = intent.getStringExtra("key"); + switch (intent.getStringExtra("action")) { + case "get": + String namespace = intent.getStringExtra("namespace").toUpperCase(); + SettingNamespace settingNamespace = SettingNamespace.valueOf(namespace); + Object settingValue = SettingsProviderUtils.getSettingsValue(context, settingNamespace, SettingsProviderUtils.SettingType.STRING, key, ""); + out.write((String)settingValue + "\n"); + break; + case "put": + Settings.System.putString(context.getContentResolver(), key, intent.getStringExtra("value")); + break; + } + }); + } +}