diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
index afe88f157..25b3d19e6 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
@@ -8,31 +8,49 @@ import static ru.vtosters.lite.ui.components.BackupManager.backupSettings;
import static ru.vtosters.lite.ui.components.BackupManager.deletePrefs;
import static ru.vtosters.lite.ui.components.BackupManager.restoreBackup;
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
+import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
+import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
+import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.CacheUtils.deleteCache;
import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication;
+import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor;
+import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
+import android.util.TypedValue;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
import android.widget.Toast;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.view.ContextThemeWrapper;
import androidx.preference.Preference;
import com.vk.auth.api.VKAccount;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vk.core.util.ToastUtils;
+import com.vk.im.engine.ImEngine1;
+import com.vk.im.engine.ImEngineExt;
+import com.vk.im.engine.models.Sticker;
import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider;
import com.vk.im.ui.providers.audiomsg.PlayerActionSources;
import com.vk.imageloader.VKImageLoader;
+import com.vk.media.player.cache.AutoPlayCacheHolder;
+import com.vk.mediastore.MediaStorage;
import com.vk.pushes.PushSubscriber;
+import com.vk.stickers.Stickers;
import com.vtosters.lite.auth.VKAccountManager;
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
import com.vtosters.lite.im.ImEngineProvider;
@@ -40,12 +58,12 @@ import com.vtosters.lite.im.ImEngineProvider;
import java.io.IOException;
import b.h.g.m.FileUtils;
+import ru.vtosters.lite.music.Scrobbler;
import ru.vtosters.lite.ui.activities.VKAdminTokenActivity;
import ru.vtosters.lite.ui.components.BackupManager;
import ru.vtosters.lite.utils.AndroidUtils;
public class OtherFragment extends MaterialPreferenceToolbarFragment {
-
private static final int VK_ADMIN_TOKEN_REQUEST_CODE = 1;
@Override
@@ -74,8 +92,37 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
findPreference("applicationstop").setOnPreferenceClickListener(new b());
findPreference("tokencopy").setOnPreferenceClickListener(new c());
findPreference("applicationrestart").setOnPreferenceClickListener(new d());
- findPreference("clearcache").setOnPreferenceClickListener(new e());
- findPreference("stickfix").setOnPreferenceClickListener(new f());
+ findPreference("clearcache").setOnPreferenceClickListener(preference -> {
+ cacheCleanDialog();
+ return true;
+ });
+ findPreference("autoclearcache").setOnPreferenceClickListener(preference -> {
+ cacheAutoCleanDialog();
+ return true;
+ });
+
+ var pref = getDefaultPrefs().getString("autoclearcache", "Default");
+ switch(pref) {
+ case "Default":
+ findPreference("autoclearcache").setSummary("Не включено");
+ break;
+ case "100mb":
+ findPreference("autoclearcache").setSummary("Очищать кеш при не менее 100 Мб");
+ break;
+ case "500mb":
+ findPreference("autoclearcache").setSummary("Очищать кеш при не менее 500 Мб");
+ break;
+ case "1gb":
+ findPreference("autoclearcache").setSummary("Очищать кеш при не менее 1 Гб");
+ break;
+ case "2gb":
+ findPreference("autoclearcache").setSummary("Очищать кеш при не менее 2 Гб");
+ break;
+ case "5gb":
+ findPreference("autoclearcache").setSummary("Очищать кеш при не менее 5 Гб");
+ break;
+ }
+
findPreference("deleteprefs").setOnPreferenceClickListener(new deleteprefs());
findPreference("saveonlines").setOnPreferenceClickListener(new onlines());
@@ -94,6 +141,140 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
}
}
+ @SuppressLint({"CommitPrefEdits", "SetTextI18n"})
+ private void cacheAutoCleanDialog() {
+ var val = getDefaultPrefs().getInt("autoclearcache_size", 0);
+ RadioGroup rg = new RadioGroup(getContext());
+
+ rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0);
+
+ RadioButton zero = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+ RadioButton one = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+ RadioButton two = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+ RadioButton three = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+ RadioButton four = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+ RadioButton five = new RadioButton(new ContextThemeWrapper(getContext(), com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
+
+ rg.addView(zero);
+ rg.addView(one);
+ rg.addView(two);
+ rg.addView(three);
+ rg.addView(four);
+ rg.addView(five);
+
+ zero.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+ one.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+ two.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+ three.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+ four.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+ five.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
+
+ zero.setText(AndroidUtils.getString("autoclearcachedisabled"));
+ one.setText("100 MB");
+ two.setText("500 MB");
+ three.setText("1 GB");
+ four.setText("2 GB");
+ five.setText("5 GB");
+
+ zero.setTextColor(getTextAttr());
+ one.setTextColor(getTextAttr());
+ two.setTextColor(getTextAttr());
+ three.setTextColor(getTextAttr());
+ four.setTextColor(getTextAttr());
+ five.setTextColor(getTextAttr());
+
+ zero.setChecked(val == 0);
+ one.setChecked(val == 1);
+ two.setChecked(val == 2);
+ three.setChecked(val == 3);
+ four.setChecked(val == 4);
+ five.setChecked(val == 5);
+
+ VkAlertDialog.Builder builder = new VkAlertDialog.Builder(getContext());
+ builder.setTitle("Очистка кеша");
+ builder.setMessage("Выберите объём кеша для очистки");
+ builder.setCancelable(true);
+ builder.setNegativeButton("Отмена", null);
+ builder.setView(rg);
+ builder.setPositiveButton("Сохранить", (dialog, which) -> {
+ var pref = getDefaultPrefs().edit();
+ var checked = rg.getCheckedRadioButtonId();
+
+ if (checked == zero.getId()) {
+ pref.putInt("autoclearcache_size", 0);
+ pref.putString("autoclearcache", "Default");
+ } else if (checked == one.getId()) {
+ pref.putInt("autoclearcache_size", 1);
+ pref.putString("autoclearcache", "100mb");
+ } else if (checked == two.getId()) {
+ pref.putInt("autoclearcache_size", 2);
+ pref.putString("autoclearcache", "500mb");
+ } else if (checked == three.getId()) {
+ pref.putInt("autoclearcache_size", 3);
+ pref.putString("autoclearcache", "1gb");
+ } else if (checked == four.getId()) {
+ pref.putInt("autoclearcache_size", 4);
+ pref.putString("autoclearcache", "2gb");
+ } else if (checked == five.getId()) {
+ pref.putInt("autoclearcache_size", 5);
+ pref.putString("autoclearcache", "5gb");
+ }
+
+ pref.apply();
+ });
+ builder.show();
+ }
+
+ private void cacheCleanDialog() {
+ VkAlertDialog.Builder builder = new VkAlertDialog.Builder(getContext());
+ builder.setTitle("Выберите что вы хотите очистить");
+ builder.setItems(new String[]{"Очистить весь кэш", "Очистить кеш стикеров", "Очистить кеш изображений", "Очистить кеш видео", "Очистить кеш сообщений", "Очистить кеш WebView" }, (dialog, which) -> {
+ switch(which) {
+ case 0: {
+ SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE);
+ prefs2.edit().clear().commit();
+ new WebView(getActivity()).clearCache(true);
+ VKImageLoader.e();
+ ImEngineProvider.b().a();
+ ImAudioMsgPlayerProvider.b().e(PlayerActionSources.a);
+ ImAudioMsgPlayerProvider.b().d(PlayerActionSources.a);
+ FileUtils.l();
+ Stickers.l.c();
+ ImEngineExt.a(ImEngine1.a());
+ AutoPlayCacheHolder.d.a();
+ MediaStorage.a();
+ deleteCache();
+ break;
+ }
+ case 1: {
+ SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE);
+ prefs2.edit().clear().commit();
+ Stickers.l.c();
+ break;
+ }
+ case 2:
+ VKImageLoader.e();
+ ImEngineExt.a(ImEngine1.a());
+ break;
+ case 3:
+ AutoPlayCacheHolder.d.a();
+ MediaStorage.a();
+ break;
+ case 4:
+ ImEngineProvider.b().a();
+ ImAudioMsgPlayerProvider.b().e(PlayerActionSources.a);
+ ImAudioMsgPlayerProvider.b().d(PlayerActionSources.a);
+ break;
+ case 5:
+ new WebView(getActivity()).clearCache(true);
+ break;
+ }
+
+ Toast.makeText(getContext(), "Кеш очищен", LENGTH_SHORT).show();
+ });
+ builder.create().show();
+ }
+
public static class d implements Preference.OnPreferenceClickListener {
@Override // android.support.v7.preference.Preference.c
public boolean onPreferenceClick(Preference preference) {
@@ -145,23 +326,6 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
}
}
- public class e implements Preference.OnPreferenceClickListener {
- @Override // android.support.v7.preference.Preference.c
- public boolean onPreferenceClick(Preference preference) {
- SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE);
- prefs2.edit().clear().commit();
- new WebView(getActivity()).clearCache(true);
- VKImageLoader.e();
- ImEngineProvider.b().a();
- ImAudioMsgPlayerProvider.b().e(PlayerActionSources.a);
- ImAudioMsgPlayerProvider.b().d(PlayerActionSources.a);
- FileUtils.l();
- deleteCache();
- ToastUtils.a(AndroidUtils.getString("cachecleaned"));
- return true;
- }
- }
-
public class a implements Preference.OnPreferenceClickListener {
@Override // android.support.v7.preference.Preference.c
public boolean onPreferenceClick(Preference preference) {
@@ -177,19 +341,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
return true;
}
}
-
- public class f implements Preference.OnPreferenceClickListener {
- @Override // android.support.v7.preference.Preference.c
- public boolean onPreferenceClick(Preference preference) {
- SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE);
- prefs2.edit().clear().commit();
- deleteCache();
- ToastUtils.a(AndroidUtils.getString("cachecleaned"));
- return true;
- }
- }
-
- public class saveprefs implements Preference.OnPreferenceClickListener {
+ public static class saveprefs implements Preference.OnPreferenceClickListener {
saveprefs() {
}
diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
index 3fd0d395b..9a57ec269 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
@@ -385,12 +385,6 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
return false;
});
- addListPreferenceIcon(this, "clearcache", "Default", AndroidUtils.getString("autoclearcache"), !DoNotUseOldIcons() ? "ic_delete_24" : "ic_delete_outline_28", getCachesumm(), new CharSequence[]{
- AndroidUtils.getString("autoclearcachedisabled"), "100 MB", "500 MB", "1 GB", "2 GB", "5 GB"
- }, new String[]{
- "Default", "100mb", "500mb", "1gb", "2gb", "5gb"
- }, null);
-
addPreference(this, "", AndroidUtils.getString("vtlother"), othersumm, !DoNotUseOldIcons() ? "ic_more_24" : "ic_more_horizontal_28", preference -> {
Context context = getContext();
Intent a2 = new Navigator(OtherFragment.class).b(context);
diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml
index 48bbe0915..461126a8b 100644
--- a/smali/res/values-ru/strings.xml
+++ b/smali/res/values-ru/strings.xml
@@ -5497,9 +5497,9 @@
Socks Прокси
Static Домен
Сообщить о баге
- Автоочистка кэша
- Размер кэша:
- Не очищать кэш
+ Автоочистка кеша
+ Размер кеша:
+ Не очищать кеш
Репорты багов помогают нам их исправлять
Перезапустите приложение
Сохраненные сообщения
diff --git a/smali/res/xml/preferences_general.xml b/smali/res/xml/preferences_general.xml
index 0929362fe..4811f8862 100644
--- a/smali/res/xml/preferences_general.xml
+++ b/smali/res/xml/preferences_general.xml
@@ -95,17 +95,9 @@
android:summary=""
android:title="@string/sett_clear_audio_cache" />
-
-
+ android:enabled="false"
+ android:summary="Они переехали в настройки мода во вкладку Другое"
+ android:title="Где настройки кеша?" />
\ No newline at end of file
diff --git a/smali/res/xml/preferences_general_milkshake.xml b/smali/res/xml/preferences_general_milkshake.xml
index 77a3bb8bf..fd145a56c 100644
--- a/smali/res/xml/preferences_general_milkshake.xml
+++ b/smali/res/xml/preferences_general_milkshake.xml
@@ -95,16 +95,8 @@
android:summary=""
android:title="@string/sett_clear_audio_cache" />
-
-
+ android:enabled="false"
+ android:summary="Они переехали в настройки мода во вкладку Другое"
+ android:title="Где настройки кеша?" />
\ No newline at end of file
diff --git a/smali/res/xml/preferences_other.xml b/smali/res/xml/preferences_other.xml
index 41ba21517..eab05dfdb 100644
--- a/smali/res/xml/preferences_other.xml
+++ b/smali/res/xml/preferences_other.xml
@@ -6,19 +6,13 @@
android:summary="@string/firebasefixsum"
android:title="@string/firebasefix" />
-
+ android:key="clearcache"
+ android:title="Очистка кеша приложения" />
+
-
diff --git a/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali b/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
index d2c8f0403..dcc67a9d7 100644
--- a/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
+++ b/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
@@ -1148,48 +1148,6 @@
invoke-virtual {p1, v6}, Landroidx/preference/Preference;->setVisible(Z)V
:cond_5
- const-string p1, "clearImageCache"
-
- .line 33
- invoke-virtual {p0, p1}, Lcom/vtosters/lite/fragments/u2/PreferenceFragmentCompat;->findPreference(Ljava/lang/CharSequence;)Landroidx/preference/Preference;
-
- move-result-object p1
-
- .line 34
- new-instance v0, Lcom/vtosters/lite/fragments/o0;
-
- invoke-direct {v0, p0}, Lcom/vtosters/lite/fragments/o0;->(Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment;)V
-
- invoke-virtual {p1, v0}, Landroidx/preference/Preference;->setOnPreferenceClickListener(Landroidx/preference/Preference$OnPreferenceClickListener;)V
-
- const-string p1, "clearVideoCache"
-
- .line 35
- invoke-virtual {p0, p1}, Lcom/vtosters/lite/fragments/u2/PreferenceFragmentCompat;->findPreference(Ljava/lang/CharSequence;)Landroidx/preference/Preference;
-
- move-result-object p1
-
- .line 36
- new-instance v0, Lcom/vtosters/lite/fragments/j0;
-
- invoke-direct {v0, p0}, Lcom/vtosters/lite/fragments/j0;->(Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment;)V
-
- invoke-virtual {p1, v0}, Landroidx/preference/Preference;->setOnPreferenceClickListener(Landroidx/preference/Preference$OnPreferenceClickListener;)V
-
- const-string p1, "clearMessagesCache"
-
- .line 37
- invoke-virtual {p0, p1}, Lcom/vtosters/lite/fragments/u2/PreferenceFragmentCompat;->findPreference(Ljava/lang/CharSequence;)Landroidx/preference/Preference;
-
- move-result-object p1
-
- .line 38
- new-instance v0, Lcom/vtosters/lite/fragments/m0;
-
- invoke-direct {v0, p0}, Lcom/vtosters/lite/fragments/m0;->(Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment;)V
-
- invoke-virtual {p1, v0}, Landroidx/preference/Preference;->setOnPreferenceClickListener(Landroidx/preference/Preference$OnPreferenceClickListener;)V
-
const-string p1, "downloadAudio"
.line 39