mirror of
https://github.com/chararomandroid/android_device_samsung_a20
synced 2026-08-23 12:35:33 -04:00
universal7885: parts: Show free space and swapfile size
This commit is contained in:
parent
2151bd330a
commit
0a612ac913
8 changed files with 59 additions and 17 deletions
21
universal7885-common/apps/SamsungParts/jni/Storage.cpp
Normal file
21
universal7885-common/apps/SamsungParts/jni/Storage.cpp
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#include <filesystem>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <jni.h>
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jdouble JNICALL
|
||||||
|
Java_com_eurekateam_samsungextras_interfaces_Swap_getFreeSpace(
|
||||||
|
JNIEnv *env, jclass clazz) {
|
||||||
|
fs::space_info data = fs::space("/data");
|
||||||
|
auto freespace = data.free / 1024 / 1024;
|
||||||
|
return static_cast<double>(freespace) / 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jlong JNICALL
|
||||||
|
Java_com_eurekateam_samsungextras_interfaces_Swap_getSwapSize(
|
||||||
|
JNIEnv *env, jclass clazz){
|
||||||
|
struct stat stat_buf;
|
||||||
|
int rc = stat("/data/swap/swapfile", &stat_buf);
|
||||||
|
return rc == 0 ? stat_buf.st_size / 1024 / 1024 : -1;
|
||||||
|
}
|
||||||
|
|
@ -61,6 +61,9 @@
|
||||||
<string name="swap_size_title">Swap size</string>
|
<string name="swap_size_title">Swap size</string>
|
||||||
<string name="swap_size_summary">Adjust the size of swap</string>
|
<string name="swap_size_summary">Adjust the size of swap</string>
|
||||||
<string name="swap_description">Creates the swap (not zram) on /data partiton. Useful for low memory devices.</string>
|
<string name="swap_description">Creates the swap (not zram) on /data partiton. Useful for low memory devices.</string>
|
||||||
|
<string name="free_space">Free space on /data</string>
|
||||||
|
<string name="swap_file_size">Swap file size</string>
|
||||||
|
|
||||||
<!-- Display Category -->
|
<!-- Display Category -->
|
||||||
<string name="misc_category">Misc</string>
|
<string name="misc_category">Misc</string>
|
||||||
<string name="dt2w_mode">Toggle for double tap to wake</string>
|
<string name="dt2w_mode">Toggle for double tap to wake</string>
|
||||||
|
|
|
||||||
|
|
@ -2,5 +2,7 @@
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/swap_title">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/swap_title">
|
||||||
<com.android.settingslib.widget.MainSwitchPreference android:defaultValue="false" android:key="swap_enable" android:title="@string/swap_enable_title"/>
|
<com.android.settingslib.widget.MainSwitchPreference android:defaultValue="false" android:key="swap_enable" android:title="@string/swap_enable_title"/>
|
||||||
<SeekBarPreference android:key="swap_size" android:title="@string/swap_size_title" android:icon="@drawable/ic_memory" android:summary="@string/swap_size_summary"/>
|
<SeekBarPreference android:key="swap_size" android:title="@string/swap_size_title" android:icon="@drawable/ic_memory" android:summary="@string/swap_size_summary"/>
|
||||||
|
<Preference android:key="free_space" android:title="@string/free_space" android:selectable="false"/>
|
||||||
|
<Preference android:key="swap_file_size" android:title="@string/swap_file_size" android:selectable="false"/>
|
||||||
<com.android.settingslib.widget.FooterPreference android:title="@string/swap_description" android:selectable="false"/>
|
<com.android.settingslib.widget.FooterPreference android:title="@string/swap_description" android:selectable="false"/>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ import com.eurekateam.samsungextras.battery.BatteryFragment
|
||||||
import com.eurekateam.samsungextras.dolby.DolbyCore
|
import com.eurekateam.samsungextras.dolby.DolbyCore
|
||||||
import com.eurekateam.samsungextras.dolby.DolbyFragment
|
import com.eurekateam.samsungextras.dolby.DolbyFragment
|
||||||
import com.eurekateam.samsungextras.flashlight.FlashLightFragment
|
import com.eurekateam.samsungextras.flashlight.FlashLightFragment
|
||||||
import com.eurekateam.samsungextras.swap.SwapFragment
|
|
||||||
import com.eurekateam.samsungextras.interfaces.Battery
|
import com.eurekateam.samsungextras.interfaces.Battery
|
||||||
import com.eurekateam.samsungextras.interfaces.Display
|
import com.eurekateam.samsungextras.interfaces.Display
|
||||||
import com.eurekateam.samsungextras.interfaces.Flashlight
|
import com.eurekateam.samsungextras.interfaces.Flashlight
|
||||||
import com.eurekateam.samsungextras.interfaces.Swap
|
import com.eurekateam.samsungextras.interfaces.Swap
|
||||||
|
import com.eurekateam.samsungextras.swap.SwapFragment
|
||||||
|
|
||||||
class BootReceiver : BroadcastReceiver() {
|
class BootReceiver : BroadcastReceiver() {
|
||||||
override fun onReceive(p0: Context?, p1: Intent?) {
|
override fun onReceive(p0: Context?, p1: Intent?) {
|
||||||
|
|
@ -42,9 +42,9 @@ class BootReceiver : BroadcastReceiver() {
|
||||||
|
|
||||||
// FlashLight
|
// FlashLight
|
||||||
Flashlight.setFlash(mSharedPreferences.getInt(FlashLightFragment.PREF_FLASHLIGHT, 5))
|
Flashlight.setFlash(mSharedPreferences.getInt(FlashLightFragment.PREF_FLASHLIGHT, 5))
|
||||||
// ZRAM
|
// ZRAM
|
||||||
Swap.setSize(mSharedPreferences.getInt(SwapFragment.PREF_SWAP_SIZE, 50))
|
Swap.setSize(mSharedPreferences.getInt(SwapFragment.PREF_SWAP_SIZE, 50))
|
||||||
Swap.setSwapOn(mSharedPreferences.getBoolean(SwapFragment.PREF_SWAP_ENABLE, false))
|
Swap.setSwapOn(mSharedPreferences.getBoolean(SwapFragment.PREF_SWAP_ENABLE, false))
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
Display.DT2W = mSharedPreferences.getBoolean(DeviceSettings.PREF_DOUBLE_TAP, true)
|
Display.DT2W = mSharedPreferences.getBoolean(DeviceSettings.PREF_DOUBLE_TAP, true)
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,7 @@ class BatteryFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChang
|
||||||
mSharedPreferences.edit().putBoolean(PREF_CHARGE, Battery.chargeSysfs == 0).apply()
|
mSharedPreferences.edit().putBoolean(PREF_CHARGE, Battery.chargeSysfs == 0).apply()
|
||||||
return true
|
return true
|
||||||
} else if (preference == mFastChargePref) {
|
} else if (preference == mFastChargePref) {
|
||||||
Battery.setFastCharge(if (newValue as Boolean) 0 else 1)
|
Battery.setFastCharge(if (newValue as Boolean) 0 else 1) mFastChargePref.isChecked = Battery.fastChargeSysfs == 0
|
||||||
mFastChargePref.isChecked = Battery.fastChargeSysfs == 0
|
|
||||||
mSharedPreferences.edit().putBoolean(PREF_FASTCHARGE, Battery.fastChargeSysfs == 0).apply()
|
mSharedPreferences.edit().putBoolean(PREF_FASTCHARGE, Battery.fastChargeSysfs == 0).apply()
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,5 @@ package com.eurekateam.samsungextras.interfaces
|
||||||
object Flashlight {
|
object Flashlight {
|
||||||
external fun setFlash(value: Int)
|
external fun setFlash(value: Int)
|
||||||
external fun getFlash(isA10: Int): Int
|
external fun getFlash(isA10: Int): Int
|
||||||
external fun setEnabled(enable: Boolean) }
|
external fun setEnabled(enable: Boolean)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,9 @@
|
||||||
|
|
||||||
package com.eurekateam.samsungextras.interfaces
|
package com.eurekateam.samsungextras.interfaces
|
||||||
|
|
||||||
object Swap{
|
object Swap {
|
||||||
external fun setSwapOn(mEnabled: Boolean)
|
external fun setSwapOn(mEnabled: Boolean)
|
||||||
external fun setSize(mSize : Int)
|
external fun setSize(mSize: Int)
|
||||||
|
external fun getFreeSize(): Double
|
||||||
|
external fun getSwapSize(): Long
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@
|
||||||
package com.eurekateam.samsungextras.swap
|
package com.eurekateam.samsungextras.swap
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Switch
|
import android.widget.Switch
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
|
@ -27,11 +26,14 @@ import com.android.settingslib.widget.MainSwitchPreference
|
||||||
import com.android.settingslib.widget.OnMainSwitchChangeListener
|
import com.android.settingslib.widget.OnMainSwitchChangeListener
|
||||||
import com.eurekateam.samsungextras.R
|
import com.eurekateam.samsungextras.R
|
||||||
import com.eurekateam.samsungextras.interfaces.Swap
|
import com.eurekateam.samsungextras.interfaces.Swap
|
||||||
|
import java.lang.Thread
|
||||||
|
|
||||||
class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener, OnMainSwitchChangeListener {
|
class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener, OnMainSwitchChangeListener {
|
||||||
private lateinit var mSwapSizePref: SeekBarPreference
|
private lateinit var mSwapSizePref: SeekBarPreference
|
||||||
private lateinit var mSharedPreferences: SharedPreferences
|
private lateinit var mSharedPreferences: SharedPreferences
|
||||||
private lateinit var mSwapEnable: MainSwitchPreference
|
private lateinit var mSwapEnable: MainSwitchPreference
|
||||||
|
private lateinit var mFreeSpace: Preference
|
||||||
|
private lateinit var mSwapFileSize: Preference
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
addPreferencesFromResource(R.xml.swap_settings)
|
addPreferencesFromResource(R.xml.swap_settings)
|
||||||
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
|
|
@ -44,6 +46,10 @@ class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeLi
|
||||||
mSwapEnable.isChecked = mSharedPreferences.getBoolean(PREF_SWAP_ENABLE, false)
|
mSwapEnable.isChecked = mSharedPreferences.getBoolean(PREF_SWAP_ENABLE, false)
|
||||||
mSwapEnable.addOnSwitchChangeListener(this)
|
mSwapEnable.addOnSwitchChangeListener(this)
|
||||||
mSwapSizePref.isEnabled = !mSwapEnable.isChecked
|
mSwapSizePref.isEnabled = !mSwapEnable.isChecked
|
||||||
|
mFreeSpace = findPreference(INFO_FREE_SPACE)!!
|
||||||
|
mFreeSpace.summary = "${Swap.getFreeSpace()} GB"
|
||||||
|
mSwapFileSize = findPreference(INFO_SWAP_FILE_SIZE)!!
|
||||||
|
mSwapFileSize.summary = "${Swap.getSwapSize()} MB"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean {
|
override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean {
|
||||||
|
|
@ -51,19 +57,27 @@ class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeLi
|
||||||
val value = newValue as Int
|
val value = newValue as Int
|
||||||
Swap.setSize(value)
|
Swap.setSize(value)
|
||||||
mSharedPreferences.edit().putInt(PREF_SWAP_SIZE, value).apply()
|
mSharedPreferences.edit().putInt(PREF_SWAP_SIZE, value).apply()
|
||||||
|
mFreeSpace.summary = "${Swap.getFreeSpace()} GB"
|
||||||
|
mSwapFileSize.summary = "${Swap.getSwapSize()} MB"
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) {
|
override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) {
|
||||||
Swap.setSwapOn(isChecked)
|
mSwapEnable.isEnabled = false
|
||||||
mSharedPreferences.edit().putBoolean(PREF_SWAP_ENABLE, isChecked).apply()
|
Thread {
|
||||||
mSwapSizePref.isEnabled = !isChecked
|
Swap.setSwapOn(isChecked)
|
||||||
}
|
requireActivity().runOnUiThread {
|
||||||
|
mSwapEnable.isEnabled = true
|
||||||
companion object {
|
mSharedPreferences.edit().putBoolean(PREF_SWAP_ENABLE, isChecked).apply()
|
||||||
|
mSwapSizePref.isEnabled = !isChecked
|
||||||
|
}
|
||||||
|
}.start()
|
||||||
|
} companion object {
|
||||||
const val PREF_SWAP_SIZE = "swap_size"
|
const val PREF_SWAP_SIZE = "swap_size"
|
||||||
const val PREF_SWAP_ENABLE = "swap_enable"
|
const val PREF_SWAP_ENABLE = "swap_enable"
|
||||||
|
const val INFO_FREE_SPACE = "free_space"
|
||||||
|
const val INFO_SWAP_FILE_SIZE = "swap_file_size"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue