Compare commits

...
Author SHA1 Message Date
gdlbo 21fc171363 Update ThemesFragment.java 2023-04-03 21:11:55 +03:00
gdlbo fb09513ca7 samsung best fix 2023-04-03 17:43:55 +03:00
gdlbo dc49c75992 Update OEMDetector.java 2023-04-03 16:30:19 +03:00
gdlbo dd289f1933 another theme at start fix..? 2023-04-03 16:01:34 +03:00
gdlbo 360c5db990 fixed shit miui issue 2023-04-03 15:54:08 +03:00
gdlbo 0df490dc55 fixed perms 2023-04-03 15:46:16 +03:00
gdlbo 064f5d8b31 some wallpapers fixes 2023-04-02 21:37:06 +03:00
gdlbo 40f3d74f07 fixed strange bug 2023-04-02 19:54:52 +03:00
19 changed files with 178 additions and 126 deletions
@@ -57,7 +57,7 @@ public class OEMDetector {
}
public static boolean isOEM() {
return isMIUI() || isEMUI() || isFlyme() || isZenUI() || isSamsung() || isVivo();
return isMIUI() || isEMUI() || isFlyme() || isZenUI() || isSamsung() || isVivo() || isOneUi();
}
public static boolean isMIUI() {
@@ -8,6 +8,7 @@ import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vtosters.lite.R;
import ru.vtosters.lite.concurrent.VTExecutors;
import ru.vtosters.lite.downloaders.notifications.NotificationChannels;
import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook;
import ru.vtosters.lite.ssfs.UsersList;
import ru.vtosters.lite.themes.ThemesManager;
import ru.vtosters.lite.ui.dialogs.DisableBattery;
@@ -23,6 +24,7 @@ import static ru.vtosters.lite.utils.Preferences.checkupdates;
public class MainActivityInjector {
public static void inject(Activity activity) {
SystemThemeChangerHook.themeOnStart(activity);
sendRequest();
UsersList.getUsersList();
@@ -12,7 +12,9 @@ import static ru.vtosters.lite.utils.Preferences.vkme;
import android.content.Context;
import android.os.PowerManager;
import androidx.recyclerview.widget.RecyclerView;
import com.vk.core.preference.Preference;
import com.vk.discover.DiscoverItemDecorator;
import com.vtosters.lite.api.ExtendedCommunityProfile;
import java.util.ArrayList;
@@ -37,6 +39,24 @@ public class NewsfeedHook {
};
}
public static boolean samsungFixRem(RecyclerView recyclerView, DiscoverItemDecorator discoverItemDecorator) {
if (!recyclerView.isComputingLayout() && recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_IDLE) {
recyclerView.removeItemDecoration(discoverItemDecorator);
return true;
}
return false;
}
public static boolean samsungFixAdd(RecyclerView recyclerView, DiscoverItemDecorator discoverItemDecorator) {
if (!recyclerView.isComputingLayout() && recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_IDLE) {
recyclerView.addItemDecoration(discoverItemDecorator);
return true;
}
return false;
}
public static List hideElement(ArrayList list) {
if (!getBoolValue("whatsnew", true)) {
list.clear();
@@ -39,7 +39,7 @@ public class UsersList {
VtOkHttpClient.getInstance().a(request).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d(TAG, e.getMessage());
e.printStackTrace();
}
@Override
@@ -47,7 +47,7 @@ public class UsersList {
try {
parseJson(new JSONObject(response.a().g()).getJSONObject("response"));
} catch (JSONException | IOException e) {
Log.d(TAG, e.getMessage());
e.printStackTrace();
}
}
});
@@ -8,6 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.util.Log;
import android.widget.Toast;
@@ -27,6 +28,7 @@ import java.util.regex.Pattern;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.IOUtils;
import ru.vtosters.lite.utils.LifecycleUtils;
import ru.vtosters.lite.utils.Preferences;
public class BackupManager {
@@ -49,6 +51,10 @@ public class BackupManager {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
LifecycleUtils.getCurrentActivity().requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 228);
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());
var dir = new File(getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS), "/VTLBackups/");
var file = new File(dir, "Onlines_" + dateFormat.format(new Date()) + ".xml");
@@ -65,6 +71,10 @@ public class BackupManager {
}
public static void backupSettings() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
LifecycleUtils.getCurrentActivity().requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 228);
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd.HH-mm-ss", Locale.getDefault());
var file = new File(sBackupDir,
"Backup_" + dateFormat.format(new Date()) + ".xml");
@@ -1,23 +1,19 @@
package ru.vtosters.lite.ui.fragments;
import static ru.vtosters.lite.utils.AndroidUtils.isTablet;
import static ru.vtosters.lite.utils.LifecycleUtils.restartApplicationWithTimer;
import static ru.vtosters.lite.utils.Preferences.autoalltranslate;
import static ru.vtosters.lite.utils.Preferences.vkme;
import android.annotation.SuppressLint;
import android.os.Bundle;
import androidx.preference.Preference;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vtosters.lite.R;
import ru.vtosters.lite.ui.adapters.ImagineArrayAdapter;
import ru.vtosters.lite.ui.wallpapers.WallpaperMenuFragment;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.LifecycleUtils;
import ru.vtosters.lite.utils.NavigatorUtils;
import ru.vtosters.lite.utils.Preferences;
import java.util.Arrays;
import ru.vtosters.lite.ui.adapters.ImagineArrayAdapter;
import ru.vtosters.lite.utils.Preferences;
public class MessagesFragment extends TrackedMaterialPreferenceToolbarFragment {
@Override
public void onCreate(Bundle bundle) {
@@ -39,7 +35,7 @@ public class MessagesFragment extends TrackedMaterialPreferenceToolbarFragment {
return true;
});
findPreference("autotranslate").setEnabled(!autoalltranslate());
findPreference("autotranslate").setEnabled(!Preferences.autoalltranslate());
findPreference("lang_service").setOnPreferenceClickListener(preference -> {
var items = Arrays.asList(
@@ -61,23 +57,29 @@ public class MessagesFragment extends TrackedMaterialPreferenceToolbarFragment {
return true;
});
findPreference("vkme_notifs").setEnabled(vkme());
findPreference("vkme_notifs").setEnabled(Preferences.vkme());
findPreference("vkme").setIcon(R.drawable.ic_vkme_28);
if (isTablet()) {
if (AndroidUtils.isTablet()) {
findPreference("vkmesett").setVisible(false);
}
var wp = findPreference("wallpapers");
wp.setOnPreferenceClickListener(preference -> {
NavigatorUtils.switchFragment(requireContext(), WallpaperMenuFragment.class);
return true;
});
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
findPreference("autotranslate").setEnabled(!autoalltranslate());
findPreference("vkme_notifs").setEnabled(vkme());
findPreference("autotranslate").setEnabled(!Preferences.autoalltranslate());
findPreference("vkme_notifs").setEnabled(Preferences.vkme());
return super.onPreferenceTreeClick(preference);
}
public boolean restart() {
restartApplicationWithTimer();
LifecycleUtils.restartApplicationWithTimer();
return true;
}
@@ -6,13 +6,10 @@ import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;
import androidx.preference.PreferenceCategory;
import b.h.g.k.VKProgressDialog;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vtosters.lite.R;
import b.h.g.k.VKProgressDialog;
import ru.vtosters.lite.concurrent.VTExecutors;
import ru.vtosters.lite.themes.ThemesCore;
import ru.vtosters.lite.themes.ThemesManager;
@@ -20,12 +17,7 @@ import ru.vtosters.lite.themes.palettes.PalettesManager;
import ru.vtosters.lite.ui.components.DockBarEditorManager;
import ru.vtosters.lite.ui.dialogs.PalettesBottomSheetDialog;
import ru.vtosters.lite.ui.views.rarepebble.ColorPickerView;
import ru.vtosters.lite.ui.wallpapers.WallpaperMenuFragment;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.LifecycleUtils;
import ru.vtosters.lite.utils.NavigatorUtils;
import ru.vtosters.lite.utils.Preferences;
import ru.vtosters.lite.utils.ThemesUtils;
import ru.vtosters.lite.utils.*;
public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
@@ -47,6 +39,8 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
findPreference("systememoji").setSummary(AndroidUtils.getGlobalContext().getString(R.string.systememojisum) + " \uD83D\uDE00\uD83D\uDE01\uD83E\uDD11\uD83E\uDD75\uD83D\uDC4D");
findPreference("useNewColorEngine").setVisible(Preferences.dev());
var invalidateThemeCache = findPreference("invalidate_theme_cache");
if (ThemesUtils.getReservedAccent() != Color.TRANSPARENT && Preferences.dev() && ThemesUtils.useNewColorEngine())
invalidateThemeCache.setOnPreferenceClickListener(preference -> {
@@ -114,13 +108,6 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
findPreference("accentprefs").setVisible(!ThemesUtils.isMonetTheme());
var wp = findPreference("wallpapers");
wp.setIcon(ThemesUtils.recolorDrawable(AndroidUtils.getGlobalContext().getDrawable(R.drawable.ic_media_outline_28)));
wp.setOnPreferenceClickListener(preference -> {
NavigatorUtils.switchFragment(requireContext(), WallpaperMenuFragment.class);
return true;
});
findPreference("systememoji").setOnPreferenceClickListener(preference -> {
restart();
return true;
@@ -488,8 +488,14 @@ public class VTSettings extends TrackedMaterialPreferenceToolbarFragment impleme
AndroidUtils.getString("currentLanguage") + " " + AndroidUtils.upString(Locale.getDefault().getDisplayLanguage()),
R.drawable.ic_globe_outline_28,
preference -> {
Intent intent = new Intent("android.settings.APP_LOCALE_SETTINGS", Uri.parse("package:" + AndroidUtils.getPackageName()));
startActivity(intent);
try {
Intent intent = new Intent("android.settings.APP_LOCALE_SETTINGS", Uri.parse("package:" + AndroidUtils.getPackageName()));
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
AndroidUtils.sendToast("Ваша система не поддерживает смену языка приложения");
}
return false;
}
);
@@ -20,33 +20,24 @@ enum ImageEffects {
public void applyEffect(ByteBuffer bitmap, int height, int width) {
int radius;
switch (Preferences.getPreferences().getString(ImageEffects.Blur.toString(), "disabled")) {
case "low":
radius = 8;
break;
case "med":
radius = 14;
break;
case "high":
radius = 20;
break;
default:
case "low" -> radius = 8;
case "med" -> radius = 14;
case "high" -> radius = 20;
default -> {
return;
}
}
NativeEffects.gaussian(bitmap, height, width, radius);
}
@Override
public String getSummary() {
switch (Preferences.getPreferences().getString(ImageEffects.Blur.toString(), "disabled")) {
case "low":
return AndroidUtils.getString(R.string.wallpapers_low);
case "med":
return AndroidUtils.getString(R.string.wallpapers_med);
case "high":
return AndroidUtils.getString(R.string.wallpapers_high);
default:
return AndroidUtils.getString(R.string.wallpapers_disabled);
}
return switch (Preferences.getPreferences().getString(ImageEffects.Blur.toString(), "disabled")) {
case "low" -> AndroidUtils.getString(R.string.wallpapers_low);
case "med" -> AndroidUtils.getString(R.string.wallpapers_med);
case "high" -> AndroidUtils.getString(R.string.wallpapers_high);
default -> AndroidUtils.getString(R.string.wallpapers_disabled);
};
}
},
Dim(true,
@@ -57,26 +48,22 @@ enum ImageEffects {
public void applyEffect(ByteBuffer bitmap, int height, int width) {
var delta = 0;
switch (Preferences.getPreferences().getString(ImageEffects.Dim.toString(), "disabled")) {
case "dim_black":
delta = -50; break;
case "dim_white":
delta = 50; break;
default:
case "dim_black" -> delta = -50;
case "dim_white" -> delta = 50;
default -> {
return;
}
}
NativeEffects.dim(bitmap, height, width, delta);
}
@Override
public String getSummary() {
switch (Preferences.getPreferences().getString(ImageEffects.Dim.toString(), "disabled")) {
case "dim_black":
return AndroidUtils.getString(R.string.wallpapers_dim_black);
case "dim_white":
return AndroidUtils.getString(R.string.wallpapers_dim_white);
default:
return AndroidUtils.getString(R.string.wallpapers_disabled);
}
return switch (Preferences.getPreferences().getString(ImageEffects.Dim.toString(), "disabled")) {
case "dim_black" -> AndroidUtils.getString(R.string.wallpapers_dim_black);
case "dim_white" -> AndroidUtils.getString(R.string.wallpapers_dim_white);
default -> AndroidUtils.getString(R.string.wallpapers_disabled);
};
}
},
Mosaic(true,
@@ -87,30 +74,24 @@ enum ImageEffects {
public void applyEffect(ByteBuffer bitmap, int height, int width) {
var scale = 0;
switch (Preferences.getPreferences().getString(ImageEffects.Mosaic.toString(), "disabled")) {
case "high":
scale = 50; break;
case "med":
scale = 25; break;
case "low":
scale = 10; break;
default:
case "high" -> scale = 50;
case "med" -> scale = 25;
case "low" -> scale = 10;
default -> {
return;
}
}
NativeEffects.mosaic(bitmap, height, width, scale);
}
@Override
public String getSummary() {
switch (Preferences.getPreferences().getString(ImageEffects.Mosaic.toString(), "disabled")) {
case "low":
return AndroidUtils.getString(R.string.wallpapers_low);
case "med":
return AndroidUtils.getString(R.string.wallpapers_med);
case "high":
return AndroidUtils.getString(R.string.wallpapers_high);
default:
return AndroidUtils.getString(R.string.wallpapers_disabled);
}
return switch (Preferences.getPreferences().getString(ImageEffects.Mosaic.toString(), "disabled")) {
case "low" -> AndroidUtils.getString(R.string.wallpapers_low);
case "med" -> AndroidUtils.getString(R.string.wallpapers_med);
case "high" -> AndroidUtils.getString(R.string.wallpapers_high);
default -> AndroidUtils.getString(R.string.wallpapers_disabled);
};
}
},
Monochrome(false, null, null,
@@ -181,7 +162,7 @@ enum ImageEffects {
getGlobalContext().getString(R.string.filter_snow)) {
@Override
public void applyEffect(ByteBuffer bitmap, int height, int width) {
if (isApplied()){
if (isApplied()) {
NativeEffects.snow(bitmap);
}
}
@@ -237,6 +218,19 @@ enum ImageEffects {
return Preferences.getPreferences().getBoolean(this.toString(), false);
}
public static Boolean hasEffects() {
return !Preferences.getString("msg_Blur").contains("disabled") && !Preferences.getString("msg_Blur").isEmpty() ||
!Preferences.getString("msg_Dim").contains("disabled") && !Preferences.getString("msg_Dim").isEmpty() ||
!Preferences.getString("msg_Mosaic").contains("disabled") && !Preferences.getString("msg_Mosaic").isEmpty() ||
Preferences.getBoolValue("msg_Emboss", false) ||
Preferences.getBoolValue("msg_Sepia", false) ||
Preferences.getBoolValue("msg_Invert", false) ||
Preferences.getBoolValue("msg_Snow", false) ||
Preferences.getBoolValue("msg_Flea", false) ||
Preferences.getBoolValue("msg_Engrave", false) ||
Preferences.getBoolValue("msg_Monochrome", false);
}
@NonNull
@Override
public String toString() {
@@ -1,21 +1,26 @@
package ru.vtosters.lite.ui.wallpapers;
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
public class ImageFilters {
public static Drawable getFilteredDrawable(Drawable orig) {
if (orig == null) return null;
if (!(orig instanceof BitmapDrawable)) return orig;
if (!(orig instanceof BitmapDrawable) || !ImageEffects.hasEffects()) {
return orig;
}
Bitmap bitmap = ((BitmapDrawable) orig).getBitmap();
if (bitmap.getConfig() != Bitmap.Config.ARGB_8888) {
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
}
@@ -30,6 +35,7 @@ public class ImageFilters {
for (var type : ImageEffects.values()) {
type.applyEffect(directBuff, bitmap.getHeight(), bitmap.getWidth());
}
directBuff.flip();
bitmap.copyPixelsFromBuffer(directBuff);
return new BitmapDrawable(getResources(), bitmap);
@@ -9,14 +9,23 @@ public class NativeEffects {
}
public static native String monochrome(ByteBuffer input);
public static native String invert(ByteBuffer input);
public static native String sepia(ByteBuffer input);
public static native String emboss(ByteBuffer input, int height, int width);
public static native String engrave(ByteBuffer input, int height, int width);
public static native String flea(ByteBuffer input);
public static native String snow(ByteBuffer input);
// FIXME: slow when comparing with MediaNative.blurBitmap
public static native String gaussian(ByteBuffer input, int height, int width, float radius);
public static native String dim(ByteBuffer input, int height, int width, int delta);
public static native String mosaic(ByteBuffer input, int height, int width, int scale);
}
@@ -69,7 +69,6 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
),
1488
);
removeStickCache();
return true;
});
@@ -83,7 +82,6 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
removeWallpaper();
requestUpdateWallpaper();
mWPPreviewPref.redraw();
removeStickCache();
return true;
});
@@ -184,12 +182,6 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
}
}
private void removeStickCache() {
SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE);
prefs2.edit().clear().apply();
ImEngineProvider.b().a();
}
@Override
public int T4() {
return R.string.wallpapers;
@@ -1,24 +1,21 @@
package ru.vtosters.lite.ui.wallpapers;
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.*;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.vtosters.lite.R;
import ru.vtosters.lite.ui.adapters.MessagesPreviewAdapter;
import ru.vtosters.lite.utils.AndroidUtils;
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getWallpaper;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
public class WallpaperPreferences extends Preference {
RecyclerView mRecyclerView;
@@ -4,6 +4,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.view.View;
import android.widget.ImageView;
import com.vtosters.lite.R;
@@ -24,16 +25,14 @@ import static ru.vtosters.lite.utils.Preferences.getBoolValue;
public class WallpapersHooks {
// TODO: force compress by default not asking user about that?
private static final Supplier<Boolean> compress = () -> getBoolValue("compresswp", true);
private static final File originalWp = new File(getGlobalContext().getFilesDir(), "wallpaper.jpeg");
private static final File compressedWp = new File(getGlobalContext().getFilesDir(), "compressedwp.jpeg");
// TODO: cache to file?
private static Drawable mWallpaper;
private static boolean mUpdateWallpaperRequested = true;
private static final File originalWp = new File(getGlobalContext().getFilesDir(), "wallpaper_new.jpeg");
private static final File compressedWp = new File(getGlobalContext().getFilesDir(), "compressedwp_new.jpeg");
// TODO: respect blur, when there is blur/mosaic effect applied these two can be even less, just HD (1280x720) for e.g.
private static final int MAX_WP_WIDTH = 1080;
private static final int MAX_WP_HEIGHT = 1920;
// TODO: cache to file?
private static Drawable mWallpaper;
private static boolean mUpdateWallpaperRequested = true;
public static void setBg(View view) {
if (hasWallpapers()) {
@@ -44,6 +43,14 @@ public class WallpapersHooks {
}
public static Drawable getWallpaper() {
var oldwp = new File(getGlobalContext().getFilesDir(), "wallpaper.jpeg");
var oldwpcompressed = new File(getGlobalContext().getFilesDir(), "compressedwp.jpeg");
if (oldwp.exists() || oldwpcompressed.exists()) {
oldwp.delete();
oldwpcompressed.delete();
}
if (mWallpaper == null || mUpdateWallpaperRequested) {
if (!originalWp.exists()) {
return null;
@@ -61,6 +68,7 @@ public class WallpapersHooks {
if (drawable == null) {
return null;
}
mWallpaper = getFilteredDrawable(drawable);
mUpdateWallpaperRequested = false;
}
@@ -70,9 +78,9 @@ public class WallpapersHooks {
private static boolean prepareCompressed() {
// TODO remove this check? with "compress" enabled it should be fine
if (!eligibleWallpaperFile(originalWp)) {
return false;
}
// if (!eligibleWallpaperFile(originalWp)) {
// return false;
// }
try (var f = new FileOutputStream(compressedWp)) {
var bitmap = BitmapFactory.decodeFile(originalWp.getAbsolutePath());
@@ -81,7 +89,13 @@ public class WallpapersHooks {
}
var drawable = new BitmapDrawable(null, bitmap);
// TODO: remove duplication without changes when provided image already fits required params
drawable.getBitmap().compress(Bitmap.CompressFormat.WEBP, 90, f);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
drawable.getBitmap().compress(Bitmap.CompressFormat.WEBP_LOSSY, 85, f);
} else {
drawable.getBitmap().compress(Bitmap.CompressFormat.WEBP, 85, f);
}
} catch (Exception e) {
Log.d("Wallpapers", e.getMessage());
return false;
@@ -6,6 +6,7 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.util.Log;
import com.vk.usersstore.contentprovider.a.UsersDbHelper;
@@ -63,6 +64,10 @@ public class VKAccountDB {
}
public static void saveData() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
LifecycleUtils.getCurrentActivity().requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 228);
}
var db = getDatabase().getReadableDatabase();
var dateFormat = new SimpleDateFormat("yyyy-MM-dd.HH-mm-ss", Locale.getDefault());
var file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/VTLBackups/saved_accounts_" + dateFormat.format(new Date()) + ".vtl");
+3
View File
@@ -12,6 +12,9 @@
android:title="@string/vkme_notifs"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/vtlinterfacemsg">
<Preference
android:key="wallpapers"
android:title="@string/wallpapers_title"/>
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="true"
android:key="voice"
-5
View File
@@ -28,11 +28,6 @@
android:summary="@string/monettheme_summ"
android:title="@string/monettheme_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/vtlmessages">
<Preference
android:key="wallpapers"
android:title="@string/wallpapers_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/interfaceemoji">
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
@@ -742,7 +742,13 @@
if-eqz v0, :cond_0
.line 50
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView;->removeItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
# invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView;->removeItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
invoke-static {p1, v0}, Lru/vtosters/lite/hooks/NewsfeedHook;->samsungFixRem(Landroidx/recyclerview/widget/RecyclerView;Lcom/vk/discover/DiscoverItemDecorator;)Z
move-result v0
if-eqz v0, :cond_2
.line 51
:cond_0
@@ -810,7 +816,13 @@
invoke-direct {v3, v4, v5, v1, v0}, Lcom/vk/discover/DiscoverItemDecorator;-><init>(Lcom/vk/discover/DiscoverAdapter;Landroid/content/res/Resources;IZ)V
.line 55
invoke-virtual {p1, v3}, Landroidx/recyclerview/widget/RecyclerView;->addItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
# invoke-virtual {p1, v3}, Landroidx/recyclerview/widget/RecyclerView;->addItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
invoke-static {p1, v3}, Lru/vtosters/lite/hooks/NewsfeedHook;->samsungFixAdd(Landroidx/recyclerview/widget/RecyclerView;Lcom/vk/discover/DiscoverItemDecorator;)Z
move-result v0
if-eqz v0, :cond_2
.line 56
iput-object v3, p0, Lcom/vk/discover/DiscoverFragment;->K:Lcom/vk/discover/DiscoverItemDecorator;
@@ -546,8 +546,6 @@
invoke-virtual {p0, p1, v0}, Landroidx/fragment/app/FragmentActivity;->startActivityForResult(Landroid/content/Intent;I)V
:goto_1
invoke-static {p0}, Lru/vtosters/lite/hooks/ui/SystemThemeChangerHook;->themeOnStart(Landroid/app/Activity;)V
return-void
.end method