cache sett refactoring
This commit is contained in:
@@ -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() {
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -5497,9 +5497,9 @@
|
||||
<string name="proxysocks">Socks Прокси</string>
|
||||
<string name="proxystatic">Static Домен</string>
|
||||
<string name="reportbug">Сообщить о баге</string>
|
||||
<string name="autoclearcache">Автоочистка кэша</string>
|
||||
<string name="autoclearcachesumm">Размер кэша:</string>
|
||||
<string name="autoclearcachedisabled">Не очищать кэш</string>
|
||||
<string name="autoclearcache">Автоочистка кеша</string>
|
||||
<string name="autoclearcachesumm">Размер кеша:</string>
|
||||
<string name="autoclearcachedisabled">Не очищать кеш</string>
|
||||
<string name="reportbugsumm">Репорты багов помогают нам их исправлять</string>
|
||||
<string name="restartapp">Перезапустите приложение</string>
|
||||
<string name="savedmsg">Сохраненные сообщения</string>
|
||||
|
||||
@@ -95,17 +95,9 @@
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_audio_cache" />
|
||||
<Preference
|
||||
android:key="clearImageCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_img_cache" />
|
||||
<Preference
|
||||
android:key="clearVideoCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_video_cache" />
|
||||
<Preference
|
||||
android:key="clearMessagesCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_messages_cache" />
|
||||
android:enabled="false"
|
||||
android:summary="Они переехали в настройки мода во вкладку Другое"
|
||||
android:title="Где настройки кеша?" />
|
||||
<com.vtosters.lite.ui.MaterialSectionDividerPreference />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
@@ -95,16 +95,8 @@
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_audio_cache" />
|
||||
<Preference
|
||||
android:key="clearImageCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_img_cache" />
|
||||
<Preference
|
||||
android:key="clearVideoCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_video_cache" />
|
||||
<Preference
|
||||
android:key="clearMessagesCache"
|
||||
android:summary=""
|
||||
android:title="@string/sett_clear_messages_cache" />
|
||||
android:enabled="false"
|
||||
android:summary="Они переехали в настройки мода во вкладку Другое"
|
||||
android:title="Где настройки кеша?" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
@@ -6,19 +6,13 @@
|
||||
android:summary="@string/firebasefixsum"
|
||||
android:title="@string/firebasefix" />
|
||||
<Preference
|
||||
android:key="stickfix"
|
||||
android:summary="@string/other_clear_stickers_cache_summary"
|
||||
android:title="@string/other_clear_stickers_cache" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:key="color_grishka"
|
||||
android:title="@string/other_fix_dynamic_colors" />
|
||||
android:key="clearcache"
|
||||
android:title="Очистка кеша приложения" />
|
||||
<Preference
|
||||
android:key="autoclearcache"
|
||||
android:title="@string/autoclearcache" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/vtsystem">
|
||||
<Preference
|
||||
android:key="clearcache"
|
||||
android:summary="@string/clearcachesum"
|
||||
android:title="@string/clearcache" />
|
||||
<Preference
|
||||
android:key="applicationrestart"
|
||||
android:title="@string/applicationrestart" />
|
||||
|
||||
-42
@@ -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;-><init>(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;-><init>(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;-><init>(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
|
||||
|
||||
Reference in New Issue
Block a user