Undelete feature + fixes
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
+2
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user