Undelete feature + fixes

This commit is contained in:
gdlbo
2022-05-06 13:43:42 +03:00
parent 70342daf07
commit c255f1e498
7 changed files with 56 additions and 5 deletions
@@ -74,6 +74,8 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
@Override // android.support.v7.preference.Preference.c @Override // android.support.v7.preference.Preference.c
public boolean a(Preference preference) { public boolean a(Preference preference) {
SharedPreferences prefs = getContext().getSharedPreferences("stickers", Context.MODE_PRIVATE);
prefs.edit().clear().commit();
VKImageLoader.b(); VKImageLoader.b();
ImEngineProvider.a().h(); ImEngineProvider.a().h();
AudioMessageUtils.j(); AudioMessageUtils.j();
@@ -1,12 +1,15 @@
package ru.vtosters.lite.ui.fragments.multiaccount; package ru.vtosters.lite.ui.fragments.multiaccount;
import static ru.vtosters.lite.utils.Globals.convertDpToPixel; import static ru.vtosters.lite.utils.Globals.convertDpToPixel;
import static ru.vtosters.lite.utils.Globals.getContext;
import static ru.vtosters.lite.utils.Globals.getResources; import static ru.vtosters.lite.utils.Globals.getResources;
import static ru.vtosters.lite.utils.Globals.isNetworkConnected; import static ru.vtosters.lite.utils.Globals.isNetworkConnected;
import static ru.vtosters.lite.utils.Globals.restartApplication; import static ru.vtosters.lite.utils.Globals.restartApplication;
import static ru.vtosters.lite.utils.Themes.getTextAttr; import static ru.vtosters.lite.utils.Themes.getTextAttr;
import static ru.vtosters.lite.utils.Themes.recolorDrawable; import static ru.vtosters.lite.utils.Themes.recolorDrawable;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
@@ -127,6 +130,8 @@ public class MultiAccountAdapter extends RecyclerView.a<MultiAccountAdapter.Mult
VKAccount b = VKAccountManager.b(); VKAccount b = VKAccountManager.b();
PushSubscriber.a.a(b.b(), b.c()); PushSubscriber.a.a(b.b(), b.c());
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply(); AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
SharedPreferences prefs = getContext().getSharedPreferences("stickers", Context.MODE_PRIVATE);
prefs.edit().clear().commit();
restartApplication(); restartApplication();
}); });
Drawable drawable = recolorDrawable(getResources().getDrawable(R.drawable.ic_list_add)); Drawable drawable = recolorDrawable(getResources().getDrawable(R.drawable.ic_list_add));
@@ -143,6 +148,8 @@ public class MultiAccountAdapter extends RecyclerView.a<MultiAccountAdapter.Mult
VKAccount b = VKAccountManager.b(); VKAccount b = VKAccountManager.b();
PushSubscriber.a.a(b.b(), b.c()); PushSubscriber.a.a(b.b(), b.c());
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply(); AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
SharedPreferences prefs = getContext().getSharedPreferences("stickers", Context.MODE_PRIVATE);
prefs.edit().clear().commit();
restartApplication(); restartApplication();
}); });
@@ -164,6 +171,8 @@ public class MultiAccountAdapter extends RecyclerView.a<MultiAccountAdapter.Mult
VKAccount b = VKAccountManager.b(); VKAccount b = VKAccountManager.b();
PushSubscriber.a.a(b.b(), b.c()); PushSubscriber.a.a(b.b(), b.c());
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply(); AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
SharedPreferences prefs = getContext().getSharedPreferences("stickers", Context.MODE_PRIVATE);
prefs.edit().clear().commit();
restartApplication(); restartApplication();
}); });
} }
@@ -27,7 +27,7 @@ public class DeletedMessagesHandler {
private static List<Integer> sDeletedMessagesList = new ArrayList<>(); private static List<Integer> sDeletedMessagesList = new ArrayList<>();
private static final String DELETED_PREFIX = "\uD83D\uDDD1 "; private static final String DELETED_PREFIX = "[Удалено] ";
private static SQLiteDatabase sVKSQLiteDatabase; private static SQLiteDatabase sVKSQLiteDatabase;
private static int sBodyIndex = -1; private static int sBodyIndex = -1;
@@ -45,7 +45,7 @@ public class DeletedMessagesHandler {
} }
public static boolean hook() { public static boolean hook() {
return BooleanFalse("hook_deleted_messages"); return BooleanFalse("undeletemsg");
} }
public static void setBodyDBParser(Msg msg) { public static void setBodyDBParser(Msg msg) {
@@ -1,6 +1,7 @@
package ru.vtosters.lite.utils; package ru.vtosters.lite.utils;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.migrate; import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.migrate;
import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList;
import static ru.vtosters.lite.utils.Globals.fixGapps; import static ru.vtosters.lite.utils.Globals.fixGapps;
import static ru.vtosters.lite.utils.Globals.getContext; import static ru.vtosters.lite.utils.Globals.getContext;
import static ru.vtosters.lite.utils.Globals.getPreferences; import static ru.vtosters.lite.utils.Globals.getPreferences;
@@ -27,6 +28,7 @@ public class Preferences {
fixGapps(); fixGapps();
setProxy(); setProxy();
migrate(); migrate();
reloadMessagesList();
registerActivities(application); registerActivities(application);
} }
+5
View File
@@ -54,6 +54,11 @@
<com.vtosters.lite.ui.MaterialSectionDividerPreference /> <com.vtosters.lite.ui.MaterialSectionDividerPreference />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/privacy_vtl"> <PreferenceCategory android:title="@string/privacy_vtl">
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="undeletemsg"
android:summary="Может не сохранять вложения"
android:title="Оставлять удаленные сообщения" />
<com.vtosters.lite.ui.MaterialSwitchPreference <com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="awayphp" android:key="awayphp"
@@ -655,6 +655,8 @@
invoke-virtual {v0, p1}, Lcom/vk/im/engine/models/messages/Msg;->f(I)V invoke-virtual {v0, p1}, Lcom/vk/im/engine/models/messages/Msg;->f(I)V
invoke-static {v0}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->setBodyDBParser(Lcom/vk/im/engine/models/messages/Msg;)V
return-object v0 return-object v0
:pswitch_data_0 :pswitch_data_0
@@ -61,8 +61,17 @@
# virtual methods # virtual methods
.method protected b(Lcom/vk/im/engine/internal/longpoll/LongPollChanges;)V .method protected b(Lcom/vk/im/engine/internal/longpoll/LongPollChanges;)V
.locals 2 .locals 4
invoke-static {}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->hook()Z
move-result v0
if-eqz v0, :cond_7
return-void
:cond_7
const-string v0, "out" const-string v0, "out"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V
@@ -83,8 +92,19 @@
.end method .end method
.method protected b(Lcom/vk/im/engine/internal/longpoll/LongPollEntityInfo;Lcom/vk/im/engine/internal/longpoll/LongPollEntityMissed;)V .method protected b(Lcom/vk/im/engine/internal/longpoll/LongPollEntityInfo;Lcom/vk/im/engine/internal/longpoll/LongPollEntityMissed;)V
.locals 1 .locals 4
invoke-static {p0}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->hookDeletedMessageId(Lcom/vk/im/engine/internal/longpoll/a/MsgDeleteLpTask;)V
invoke-static {}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->hook()Z
move-result v0
if-eqz v0, :cond_a
return-void
:cond_a
const-string v0, "lpInfo" const-string v0, "lpInfo"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V
@@ -120,8 +140,19 @@
.end method .end method
.method protected c(Lcom/vk/im/engine/internal/longpoll/LongPollEntityInfo;)V .method protected c(Lcom/vk/im/engine/internal/longpoll/LongPollEntityInfo;)V
.locals 3 .locals 5
invoke-static {}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->hook()Z
move-result v0
if-eqz v0, :cond_a
invoke-static {p0}, Lru/vtosters/lite/utils/DeletedMessagesHandler;->updateDialog(Lcom/vk/im/engine/internal/longpoll/a/MsgDeleteLpTask;)V
return-void
:cond_a
const-string v0, "lpInfo" const-string v0, "lpInfo"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V