Merge branch 'vtl-remaster' into theming

This commit is contained in:
aliveoutside
2022-07-26 19:46:54 +03:00
564 changed files with 108 additions and 133694 deletions
@@ -5,6 +5,7 @@ import static ru.vtosters.lite.utils.Preferences.getBoolValue;
import static ru.vtosters.lite.utils.Preferences.milkshake;
import static ru.vtosters.lite.utils.Preferences.superapp;
import static ru.vtosters.lite.utils.Preferences.useNewSettings;
import static ru.vtosters.lite.utils.Preferences.videoewcatalog;
import static ru.vtosters.lite.utils.Preferences.vkme;
import com.vk.apps.AppsFragment;
@@ -27,6 +28,7 @@ import com.vtosters.lite.fragments.money.MoneyTransfersFragment;
import com.vtosters.lite.fragments.p2.DocumentsViewFragment;
import com.vtosters.lite.fragments.s2.GroupsFragment1;
import com.vtosters.lite.fragments.t2.c.DialogsFragment;
import com.vtosters.lite.fragments.y2.VideoCatalogFragment;
import com.vtosters.lite.fragments.y2.VideosFragment;
import com.vtosters.lite.general.fragments.GamesFragment;
import com.vtosters.lite.general.fragments.PhotosFragment;
@@ -50,7 +52,7 @@ public class StartFragmentHook{
case "photos":
return PhotosFragment.class;
case "videos":
return VideosFragment.class;
return videoewcatalog() ? VideoCatalogFragment.class : VideosFragment.class;
case "settings":
return useNewSettings();
case "apps":
@@ -47,7 +47,6 @@ public class TogglesHook{
case FEATURE_MOZJPEG:
case FEATURE_MUSIC_ARTIST_CATALOG:
case FEATURE_MUSIC_NEW_CATALOG:
case FEATURE_MUSIC_STOP_PLAYER_ON_TASK_REMOVAL:
case FEATURE_NARRATIVE_SNIPPET_TYPE:
case FEATURE_NEWS_GAMES_IN_DISCOVER:
case FEATURE_NEWS_HEADER_SCROLL:
@@ -144,8 +143,6 @@ public class TogglesHook{
return postsredesign();
case FEATURE_IMAGE_QUALITY_UPGRADE:
return !getBoolValue("compressPhotos", true);
case FEATURE_MUSIC_STOP_PLAYER_ON_TASK_REMOVAL:
return getBoolValue("musictask", false);
case FEATURE_MENU_GAMES_CAROUSEL:
return miniapps();
default:
@@ -6,6 +6,7 @@ import static ru.vtosters.lite.utils.Preferences.getBoolValue;
import static ru.vtosters.lite.utils.Preferences.milkshake;
import static ru.vtosters.lite.utils.Preferences.superapp;
import static ru.vtosters.lite.utils.Preferences.useNewSettings;
import static ru.vtosters.lite.utils.Preferences.videoewcatalog;
import static ru.vtosters.lite.utils.Preferences.vkme;
import static ru.vtosters.lite.utils.Preferences.vkme_notifs;
@@ -32,6 +33,7 @@ import com.vtosters.lite.fragments.money.MoneyTransfersFragment;
import com.vtosters.lite.fragments.p2.DocumentsViewFragment;
import com.vtosters.lite.fragments.s2.GroupsFragment1;
import com.vtosters.lite.fragments.t2.c.DialogsFragment;
import com.vtosters.lite.fragments.y2.VideoCatalogFragment;
import com.vtosters.lite.fragments.y2.VideosFragment;
import com.vtosters.lite.general.fragments.GamesFragment;
import com.vtosters.lite.general.fragments.PhotosFragment;
@@ -137,7 +139,7 @@ public class DockBarEditorManager {
case "tab_superapps":
return DockBarTab.valuesOf(
"tab_superapps",
milkshake() ? R.drawable.ic_explore_outline_28 : R.drawable.ic_menu_search_outline_28,
milkshake() ? R.drawable.ic_services_outline_28 : R.drawable.ic_menu_search_outline_28,
milkshake() ? R.string.super_app_title : R.string.search,
R.id.tab_discover,
milkshake() ? (superapp() ? SuperAppFragment.class : SearchMenuFragment.class) : ThemedFeedFragment.class);
@@ -196,7 +198,7 @@ public class DockBarEditorManager {
R.drawable.ic_video_outline_28,
R.string.videos,
R.id.menu_videos,
VideosFragment.class);
videoewcatalog() ? VideoCatalogFragment.class : VideosFragment.class);
case "tab_lives":
return DockBarTab.valuesOf(
"tab_lives",
@@ -14,6 +14,8 @@ import android.net.Uri;
import android.os.Build;
import android.os.PowerManager;
import com.vk.core.dialogs.alert.VkAlertDialog;
import ru.vtosters.lite.utils.OEMDetector;
public class DisableBattery{
@@ -21,27 +23,21 @@ public class DisableBattery{
if (OEMDetector.isOEM() && Build.VERSION.SDK_INT >= 23 && getBoolValue("showDoze", true)) {
final Context context = getContext();
if (!((PowerManager) context.getSystemService(Context.POWER_SERVICE)).isIgnoringBatteryOptimizations(context.getPackageName())) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(activity);
builder.setTitle(getString("batteryissuetitle"));
builder.setMessage(getString("batteryissuesumm"));
builder.setCancelable(false);
builder.setPositiveButton(getString("batteryissuebtn1"), new DialogInterface.OnClickListener(){
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i){
Intent intent = new Intent("android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS");
StringBuilder sb = new StringBuilder();
sb.append("package:");
sb.append(context.getPackageName());
intent.setData(Uri.parse(sb.toString()));
context.startActivity(intent);
}
});
builder.setNeutralButton(getString("batteryissuebtn2"), new DialogInterface.OnClickListener(){
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i){
edit().putBoolean("showDoze", false).apply();
}
// android.content.DialogInterface.OnClickListener
builder.setPositiveButton(getString("batteryissuebtn1"), (dialogInterface, i) -> {
Intent intent = new Intent("android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS");
StringBuilder sb = new StringBuilder();
sb.append("package:");
sb.append(context.getPackageName());
intent.setData(Uri.parse(sb.toString()));
context.startActivity(intent);
});
// android.content.DialogInterface.OnClickListener
builder.setNeutralButton(getString("batteryissuebtn2"), (dialogInterface, i) -> edit().putBoolean("showDoze", false).apply());
builder.show();
}
}
@@ -12,6 +12,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vk.navigation.Navigator;
import ru.vtosters.lite.ui.fragments.InstallGMSFragment;
@@ -19,27 +20,17 @@ import ru.vtosters.lite.ui.fragments.InstallGMSFragment;
public class InstallGMS{
public static void alert(final Activity activity){
if (!isGmsInstalled()) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(activity);
builder.setTitle(getString("debug_warning"));
builder.setMessage(getString("gmsissuesumm"));
builder.setCancelable(false);
builder.setPositiveButton(getString("gmsissuebtn1"), new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface, int i){
edit().putBoolean("showAlertGms", false).apply();
}
});
builder.setNeutralButton(getString("gmsissuebtn2"), new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface, int i){
edit().putBoolean("showAlertGms", false).apply();
Context context = getContext();
Intent a2 = new Navigator(InstallGMSFragment.class).b(context);
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(a2);
}
builder.setPositiveButton(getString("gmsissuebtn1"), (dialogInterface, i) -> edit().putBoolean("showAlertGms", false).apply());
builder.setNeutralButton(getString("gmsissuebtn2"), (dialogInterface, i) -> {
edit().putBoolean("showAlertGms", false).apply();
Context context = getContext();
Intent a2 = new Navigator(InstallGMSFragment.class).b(context);
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(a2);
});
if (getBoolValue("showAlertGms", true)) {
builder.show();
@@ -11,6 +11,8 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import com.vk.core.dialogs.alert.VkAlertDialog;
import ru.vtosters.lite.utils.OEMDetector;
public class Start{
@@ -18,24 +20,16 @@ public class Start{
if (Build.VERSION.SDK_INT >= 23) {
activity.requestPermissions(new String[] {"android.permission.WRITE_EXTERNAL_STORAGE"}, 228);
}
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(activity);
builder.setTitle(getString("debug_warning"));
builder.setMessage(getWelcome());
builder.setCancelable(false);
builder.setPositiveButton(getString("startbtn2"), new DialogInterface.OnClickListener(){
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i){
edit().putBoolean("showAlert", false).apply();
}
});
builder.setNeutralButton(getString("startbtn1"), new DialogInterface.OnClickListener(){
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i){
edit().putBoolean("showAlert", false).apply();
activity.startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/vtosters")));
}
// android.content.DialogInterface.OnClickListener
builder.setPositiveButton(getString("startbtn2"), (dialogInterface, i) -> edit().putBoolean("showAlert", false).apply());
// android.content.DialogInterface.OnClickListener
builder.setNeutralButton(getString("startbtn1"), (dialogInterface, i) -> {
edit().putBoolean("showAlert", false).apply();
activity.startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/vtosters")));
});
if (getBoolValue("showAlert", true)) {
builder.show();
@@ -8,13 +8,14 @@ import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vk.navigation.Navigator;
import ru.vtosters.lite.utils.VKUIwrapper;
public class VKIDProtection{
public static void alert(final Activity activity){
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(activity);
builder.setTitle(getString("debug_warning"));
builder.setMessage(getString("vkidsumm"));
builder.setCancelable(false);
@@ -12,6 +12,7 @@ import static ru.vtosters.lite.utils.SettBackup.backupSettings;
import static ru.vtosters.lite.utils.SettBackup.deletePrefs;
import static ru.vtosters.lite.utils.SettBackup.restoreBackup;
import static ru.vtosters.lite.utils.Themes.getAlertStyle;
import static ru.vtosters.lite.utils.Themes.getTextAttr;
import android.app.Activity;
import android.content.ClipData;
@@ -19,16 +20,19 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
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.ui.providers.audiomsg.ImAudioMsgPlayerProvider;
import com.vk.im.ui.providers.audiomsg.PlayerActionSources;
@@ -206,7 +210,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
public boolean onPreferenceClick(Preference preference) {
var arr = SettBackup.getBackupsNames();
var adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, arr);
new AlertDialog.Builder(getContext(), getAlertStyle())
new VkAlertDialog.Builder(getContext())
.setTitle("Выберите бэкап")
.setAdapter(adapter, (dialog, which) -> {
try {
@@ -149,7 +149,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment{
int vtosterXml = getIdentifier("empty", "xml");
this.addPreferencesFromResource(vtosterXml);
addPreferenceDrawable(this, "", "Аккаунты", getUsername() + (hasVerification() ? Globals.getString("thanksfordonate") : Globals.getString("getdonate")), getDrawableFromUrl(getUserPhoto(), "ic_user_circle_outline_28", true, true), preference -> {
addPreferenceDrawable(this, "", getUsername(), hasVerification() ? Globals.getString("thanksfordonate") : Globals.getString("getdonate"), getDrawableFromUrl(getUserPhoto(), "ic_user_circle_outline_28", true, true), preference -> {
logout();
restartApplication();
return false;
@@ -176,7 +176,7 @@ public class StickersFragment extends BaseToolbarFragment{
margin.setMargins(convertDpToPixel(24f), 0, convertDpToPixel(24f), 0);
editText.setLayoutParams(margin);
var dlg = new AlertDialog.Builder(getContext(), getAlertStyle());
var dlg = new AlertDialog.Builder(getContext());
dlg.setTitle(Globals.getString("stickershelp1"));
dlg.setMessage(Globals.getString("stickershelp2"));
dlg.setView(linearLayout);
@@ -186,6 +186,7 @@ public class StickersFragment extends BaseToolbarFragment{
mService.requestPackDownload(pack, new File(getContext().getFilesDir(), new File("VT-Stickers", pack).getAbsolutePath()));
});
dlg.setNeutralButton(android.R.string.cancel, null);
var alert = dlg.create();
alert.show();
@@ -52,6 +52,9 @@ import com.vtosters.lite.api.ExtendedUserProfile;
import com.vtosters.lite.auth.VKAccountManager;
import com.vtosters.lite.im.ImEngineProvider;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -65,6 +68,11 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import ru.vtosters.lite.downloaders.notifications.NotificationChannels;
import ru.vtosters.lite.themes.ThemesCore;
import ru.vtosters.lite.ui.dialogs.DisableBattery;
@@ -77,6 +85,10 @@ public class Globals{
private static final List<Activity> activities = new ArrayList<>();
private static final OkHttpClient mClient = new OkHttpClient();
public static Bitmap bmp = null;
public static SharedPreferences getDefprefs(){
if (preferences == null)
preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
@@ -222,13 +234,28 @@ public class Globals{
}
try {
URL aryURI = new URL(url);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy); // fix get pic
URLConnection conn = aryURI.openConnection();
InputStream is = conn.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);
var request = new Request.a()
.b(url)
.a();
mClient.a(request).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.e("Error", e.getMessage());
}
@Override
public void a(Call call, Response response){
bmp = BitmapFactory.decodeStream(response.a().a());
}
});
if (bmp == null) {
if (def == null) return null;
return getDrawable(getContext(), getIdentifier(def, "drawable"));
}
bmp = rounded ? getBitmapClippedCircle(bmp) : bmp; // rounding
@@ -214,6 +214,10 @@ public class Preferences{
return getBoolValue("musicnewcatalog", true);
}
public static boolean videoewcatalog(){
return getBoolValue("videoewcatalog", true);
}
public static boolean postsredesign(){
return getBoolValue("postsredesign", true);
}
@@ -11,6 +11,8 @@ import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import com.vk.core.dialogs.alert.VkAlertDialog;
import org.json.JSONObject;
import java.io.IOException;
@@ -95,7 +97,7 @@ public class ServerDialog{
if (activity != null) {
activity.runOnUiThread(() -> {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(activity);
builder.setTitle(title);
builder.setMessage(message);
builder.setCancelable(cancelable);