mirror of
https://github.com/revanced/revanced-integrations
synced 2024-11-27 11:13:38 +01:00
parent
6f1ac5d073
commit
ad477e4859
@ -152,47 +152,60 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a UI Preference with the {@link Setting} that backs it.
|
* Handles syncing a UI Preference with the {@link Setting} that backs it.
|
||||||
* If needed, subclasses can override this to handle additional UI Preference types.
|
* If needed, subclasses can override this to handle additional UI Preference types.
|
||||||
*
|
*
|
||||||
|
* @param applySettingToPreference If true, then apply {@link Setting} -> Preference.
|
||||||
|
* If false, then apply {@link Setting} <- Preference.
|
||||||
|
*/
|
||||||
|
protected void syncSettingWithPreference(@NonNull Preference pref,
|
||||||
|
@NonNull Setting<?> setting,
|
||||||
|
boolean applySettingToPreference) {
|
||||||
|
if (pref instanceof SwitchPreference) {
|
||||||
|
SwitchPreference switchPref = (SwitchPreference) pref;
|
||||||
|
BooleanSetting boolSetting = (BooleanSetting) setting;
|
||||||
|
if (applySettingToPreference) {
|
||||||
|
switchPref.setChecked(boolSetting.get());
|
||||||
|
} else {
|
||||||
|
BooleanSetting.privateSetValue(boolSetting, switchPref.isChecked());
|
||||||
|
}
|
||||||
|
} else if (pref instanceof EditTextPreference) {
|
||||||
|
EditTextPreference editPreference = (EditTextPreference) pref;
|
||||||
|
if (applySettingToPreference) {
|
||||||
|
editPreference.setText(setting.get().toString());
|
||||||
|
} else {
|
||||||
|
Setting.privateSetValueFromString(setting, editPreference.getText());
|
||||||
|
}
|
||||||
|
} else if (pref instanceof ListPreference) {
|
||||||
|
ListPreference listPref = (ListPreference) pref;
|
||||||
|
if (applySettingToPreference) {
|
||||||
|
listPref.setValue(setting.get().toString());
|
||||||
|
} else {
|
||||||
|
Setting.privateSetValueFromString(setting, listPref.getValue());
|
||||||
|
}
|
||||||
|
updateListPreferenceSummary(listPref, setting);
|
||||||
|
} else {
|
||||||
|
Logger.printException(() -> "Setting cannot be handled: " + pref.getClass() + ": " + pref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates a UI Preference with the {@link Setting} that backs it.
|
||||||
|
*
|
||||||
* @param syncSetting If the UI should be synced {@link Setting} <-> Preference
|
* @param syncSetting If the UI should be synced {@link Setting} <-> Preference
|
||||||
* @param applySettingToPreference If true, then apply {@link Setting} -> Preference.
|
* @param applySettingToPreference If true, then apply {@link Setting} -> Preference.
|
||||||
* If false, then apply {@link Setting} <- Preference.
|
* If false, then apply {@link Setting} <- Preference.
|
||||||
*/
|
*/
|
||||||
protected void updatePreference(@NonNull Preference pref, @NonNull Setting<?> setting,
|
private void updatePreference(@NonNull Preference pref, @NonNull Setting<?> setting,
|
||||||
boolean syncSetting, boolean applySettingToPreference) {
|
boolean syncSetting, boolean applySettingToPreference) {
|
||||||
if (!syncSetting && applySettingToPreference) {
|
if (!syncSetting && applySettingToPreference) {
|
||||||
throw new IllegalArgumentException();
|
throw new IllegalArgumentException();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (syncSetting) {
|
if (syncSetting) {
|
||||||
if (pref instanceof SwitchPreference) {
|
syncSettingWithPreference(pref, setting, applySettingToPreference);
|
||||||
SwitchPreference switchPref = (SwitchPreference) pref;
|
|
||||||
BooleanSetting boolSetting = (BooleanSetting) setting;
|
|
||||||
if (applySettingToPreference) {
|
|
||||||
switchPref.setChecked(boolSetting.get());
|
|
||||||
} else {
|
|
||||||
BooleanSetting.privateSetValue(boolSetting, switchPref.isChecked());
|
|
||||||
}
|
|
||||||
} else if (pref instanceof EditTextPreference) {
|
|
||||||
EditTextPreference editPreference = (EditTextPreference) pref;
|
|
||||||
if (applySettingToPreference) {
|
|
||||||
editPreference.setText(setting.get().toString());
|
|
||||||
} else {
|
|
||||||
Setting.privateSetValueFromString(setting, editPreference.getText());
|
|
||||||
}
|
|
||||||
} else if (pref instanceof ListPreference) {
|
|
||||||
ListPreference listPref = (ListPreference) pref;
|
|
||||||
if (applySettingToPreference) {
|
|
||||||
listPref.setValue(setting.get().toString());
|
|
||||||
} else {
|
|
||||||
Setting.privateSetValueFromString(setting, listPref.getValue());
|
|
||||||
}
|
|
||||||
updateListPreferenceSummary(listPref, setting);
|
|
||||||
} else {
|
|
||||||
Logger.printException(() -> "Setting cannot be handled: " + pref.getClass() + ": " + pref);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePreferenceAvailability(pref, setting);
|
updatePreferenceAvailability(pref, setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
package app.revanced.integrations.tiktok.settings.preference;
|
package app.revanced.integrations.tiktok.settings.preference;
|
||||||
|
|
||||||
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import app.revanced.integrations.shared.settings.Setting;
|
||||||
import app.revanced.integrations.shared.settings.preference.AbstractPreferenceFragment;
|
import app.revanced.integrations.shared.settings.preference.AbstractPreferenceFragment;
|
||||||
import app.revanced.integrations.tiktok.settings.preference.categories.DownloadsPreferenceCategory;
|
import app.revanced.integrations.tiktok.settings.preference.categories.DownloadsPreferenceCategory;
|
||||||
import app.revanced.integrations.tiktok.settings.preference.categories.FeedFilterPreferenceCategory;
|
import app.revanced.integrations.tiktok.settings.preference.categories.FeedFilterPreferenceCategory;
|
||||||
import app.revanced.integrations.tiktok.settings.preference.categories.IntegrationsPreferenceCategory;
|
import app.revanced.integrations.tiktok.settings.preference.categories.IntegrationsPreferenceCategory;
|
||||||
import app.revanced.integrations.tiktok.settings.preference.categories.SimSpoofPreferenceCategory;
|
import app.revanced.integrations.tiktok.settings.preference.categories.SimSpoofPreferenceCategory;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preference fragment for ReVanced settings
|
* Preference fragment for ReVanced settings
|
||||||
@ -13,6 +17,21 @@ import app.revanced.integrations.tiktok.settings.preference.categories.SimSpoofP
|
|||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
|
public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void syncSettingWithPreference(@NonNull @NotNull Preference pref,
|
||||||
|
@NonNull @NotNull Setting<?> setting,
|
||||||
|
boolean applySettingToPreference) {
|
||||||
|
if (pref instanceof RangeValuePreference) {
|
||||||
|
RangeValuePreference rangeValuePref = (RangeValuePreference) pref;
|
||||||
|
Setting.privateSetValueFromString(setting, rangeValuePref.getValue());
|
||||||
|
} else if (pref instanceof DownloadPathPreference) {
|
||||||
|
DownloadPathPreference downloadPathPref = (DownloadPathPreference) pref;
|
||||||
|
Setting.privateSetValueFromString(setting, downloadPathPref.getValue());
|
||||||
|
} else {
|
||||||
|
super.syncSettingWithPreference(pref, setting, applySettingToPreference);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initialize() {
|
protected void initialize() {
|
||||||
final var context = getContext();
|
final var context = getContext();
|
||||||
|
Loading…
Reference in New Issue
Block a user