diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bf6b829f2..f2e64c0f3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,8 @@ + + doInBackground(Void... params) { //toggle for synchronization toggles.add(createPojo(context.getString(R.string.toggle_sync), "sync", android.R.drawable.ic_popup_sync)); + + //toggle for autorotation + toggles.add(createPojo(context.getString(R.string.toggle_autorotate), "autorotate", android.R.drawable.ic_menu_always_landscape_portrait)); return toggles; } diff --git a/app/src/main/java/fr/neamar/kiss/toggles/TogglesHandler.java b/app/src/main/java/fr/neamar/kiss/toggles/TogglesHandler.java index 8617db12c..8910f0a1b 100644 --- a/app/src/main/java/fr/neamar/kiss/toggles/TogglesHandler.java +++ b/app/src/main/java/fr/neamar/kiss/toggles/TogglesHandler.java @@ -6,11 +6,10 @@ import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; +import android.provider.Settings; import android.util.Log; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - import fr.neamar.kiss.KissApplication; import fr.neamar.kiss.pojo.TogglePojo; @@ -19,6 +18,7 @@ public class TogglesHandler { private final WifiManager wifiManager; private final BluetoothAdapter bluetoothAdapter; private final AudioManager audioManager; + private final ContentResolver contentResolver; /** * Initialize managers @@ -31,6 +31,7 @@ public TogglesHandler(Context context) { this.wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); this.audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE)); + this.contentResolver = context.getContentResolver(); } /** @@ -54,6 +55,8 @@ public Boolean getState(TogglePojo pojo) { return getTorchState(); case "sync": return getSyncState(); + case "autorotate": + return getAutorotationState(); default: Log.e("wtf", "Unsupported toggle for reading: " + pojo.settingName); return false; @@ -85,6 +88,8 @@ public void setState(TogglePojo pojo, Boolean state) { break; case "sync": setSyncState(state); + case "autorotate": + setAutorotationState(state); default: Log.e("wtf", "Unsupported toggle for update: " + pojo.settingName); break; @@ -171,4 +176,12 @@ private Boolean getSyncState() { private void setSyncState(Boolean state) { ContentResolver.setMasterSyncAutomatically(state); } + + private Boolean getAutorotationState() { + return android.provider.Settings.System.getInt(this.contentResolver,Settings.System.ACCELEROMETER_ROTATION, 0) == 1; + } + + private void setAutorotationState(Boolean state) { + android.provider.Settings.System.putInt(this.contentResolver,Settings.System.ACCELEROMETER_ROTATION, (state) ? 1 : 0 ); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c24bbd36e..0d949918a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -90,6 +90,7 @@ Network data Torch Synchronization + Autorotate Update wallpaper Whoops… unable to launch that app. History erased.