mb fix crash sdk 21+

This commit is contained in:
gdlbo
2022-08-11 23:29:40 +03:00
parent cc6e3c2dd8
commit 75c98b98dd
21 changed files with 99 additions and 60 deletions
@@ -39,7 +39,7 @@ public class NotificationsHelper {
downloadingPacksNotificationsIds = new HashMap<>();
if (oreo()) {
NotificationChannel notificationChan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Сервис стикеров Telegram в VTosters", NotificationManager.IMPORTANCE_HIGH);
NotificationChannel notificationChan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Сервис стикеров Telegram в VTLite", NotificationManager.IMPORTANCE_HIGH);
((NotificationManager) c.getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(notificationChan);
}
}
@@ -77,7 +77,7 @@ public class NotificationsHelper {
Notification.Builder builder = commonBuilder();
builder.setProgress(0, 0, false);
builder.setOngoing(false);
builder.setContentTitle("Сервис стикеров Telegram в VTosters");
builder.setContentTitle("Сервис стикеров Telegram в VTLite");
String text;
if (success)
@@ -1,5 +1,7 @@
package ru.vtosters.lite.deviceinfo;
import androidx.annotation.NonNull;
public class Device {
private String androidId;
private String bluetoothMac;
@@ -86,6 +88,7 @@ public class Device {
return this;
}
@NonNull
public String toString() {
return "Device{serialId='" + this.serialId + "', androidId='" + this.androidId + "', wifiMac='" + this.wifiMac + "', bluetoothMac='" + this.bluetoothMac + "'}";
}
@@ -1,5 +1,6 @@
package ru.vtosters.lite.deviceinfo;
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.net.wifi.WifiInfo;
@@ -28,6 +29,7 @@ public class DeviceInfoCollector {
private String serialId() {
String str;
try {
@SuppressLint("PrivateApi")
Class<?> cls = Class.forName("android.os.SystemProperties");
Method method = cls.getMethod("get", String.class);
str = (String) method.invoke(cls, "gsm.sn1");
@@ -53,6 +55,7 @@ public class DeviceInfoCollector {
return null;
}
@SuppressLint("HardwareIds")
private String androidId(Context context) {
return Settings.Secure.getString(context.getContentResolver(), "android_id").toLowerCase();
}
@@ -99,7 +102,7 @@ public class DeviceInfoCollector {
StringBuilder sb = new StringBuilder();
int length = hardwareAddress.length;
for (int i = 0; i < length; i++) {
sb.append(String.format("%02X:", Byte.valueOf(hardwareAddress[i])));
sb.append(String.format("%02X:", hardwareAddress[i]));
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
@@ -8,6 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.ProxyUtils.apiproxy;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
@@ -22,6 +23,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Objects;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
@@ -58,7 +60,7 @@ public class FoafBase {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Moscow"));
Date date = sdf.parse(matcher.group(1));
Date date = sdf.parse(Objects.requireNonNull(matcher.group(1)));
sdf.setTimeZone(TimeZone.getDefault());
return sdf.parse(sdf.format(date)).getTime() / 1000;
}
@@ -95,8 +97,8 @@ public class FoafBase {
Matcher matcher2 = FOAF_REGEX_LOGIN.matcher(str);
matcher.find();
matcher2.find();
String normalHumanDate = getNormalHumanDate(matcher.group(1));
getNormalHumanDate(matcher2.group(1));
String normalHumanDate = getNormalHumanDate(Objects.requireNonNull(matcher.group(1)));
getNormalHumanDate(Objects.requireNonNull(matcher2.group(1)));
VkAlertDialog.Builder a2 = new VkAlertDialog.Builder(context).setTitle(getIdentifier("addinf", "string"));
a2.setMessage(getString("foafid") + " " + i + getString("foafregdate") + " " + normalHumanDate + getString("foafdate") + " " + daysPassedFromFoafDate(normalHumanDate)).setPositiveButton(17039370, null).create().show();
} catch (Exception e) {
@@ -107,6 +109,7 @@ public class FoafBase {
private static long daysPassedFromFoafDate(String str) {
try {
@SuppressLint("SimpleDateFormat")
Date parse = new SimpleDateFormat("yyyy-MM-dd").parse(str.split(" ")[1]);
return TimeUnit.DAYS.convert(new Date().getTime() - parse.getTime(), TimeUnit.MILLISECONDS);
} catch (ParseException e) {
@@ -101,7 +101,7 @@ public class NewsfeedHook {
return params.toArray(new String[0]);
}
public static void adsParams(HashSet hashSet) {
public static void adsParams(HashSet<String> hashSet) {
if (ads() || adsslider()) {
hashSet.add("ads_disabled");
return;
@@ -34,10 +34,10 @@ public class CategorizedAdapter extends RecyclerView.Adapter<CategorizedAdapter.
public static final int SELECTED_STATE = -0x1;
public static final int DISABLED_STATE = -0x2;
private List mSelectedItems;
private List mDisabledItems;
private List mUnmovedItems;
private IViewHolderBinder mBinder;
private final List mSelectedItems;
private final List mDisabledItems;
private final List mUnmovedItems;
private final IViewHolderBinder mBinder;
private int mMinSelectedItems = -1;
private int mMaxSelectedItems = -1;
@@ -25,7 +25,7 @@ import ru.vtosters.lite.utils.LayoutUtils;
public class ImagineArrayAdapter extends ArrayAdapter<ImagineArrayAdapter.ImagineArrayAdapterItem> {
private List<ImagineArrayAdapterItem> mItems = new ArrayList<>();
private OnClickListener mListener;
private final OnClickListener mListener;
private int mSelectedIndex = -1;
public ImagineArrayAdapter(@NonNull Context context, OnClickListener listener) {
@@ -134,8 +134,8 @@ public class ImagineArrayAdapter extends ArrayAdapter<ImagineArrayAdapter.Imagin
}
public static class ImagineArrayAdapterItem {
private Drawable mIcon;
private String mText;
private final Drawable mIcon;
private final String mText;
public ImagineArrayAdapterItem(Drawable icon, String text) {
this.mIcon = icon;
@@ -167,6 +167,6 @@ public class ImagineArrayAdapter extends ArrayAdapter<ImagineArrayAdapter.Imagin
}
public interface OnClickListener {
public void onClick(int i);
void onClick(int i);
}
}
@@ -20,7 +20,6 @@ import com.vtosters.lite.R;
import ru.vtosters.lite.utils.AndroidUtils;
public class MessagesPreviewAdapter extends RecyclerView.Adapter<MessagesPreviewAdapter.MessagePreviewViewHolder> {
private static final int ME = 0x0;
private static final int ANONYMOUS = -0x1;
@@ -7,6 +7,7 @@ import static ru.vtosters.lite.utils.ThemesUtils.getSTextAttr;
import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr;
import static ru.vtosters.lite.utils.ThemesUtils.recolorDrawable;
import android.annotation.SuppressLint;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
@@ -28,8 +29,9 @@ import ru.vtosters.lite.tgs.TGPref;
import ru.vtosters.lite.utils.AndroidUtils;
public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.StickerPackViewHolder> {
private static TelegramStickersService sService = TelegramStickersService.getInstance(getGlobalContext());
private static final TelegramStickersService sService = TelegramStickersService.getInstance(getGlobalContext());
@SuppressLint("UseCompatLoadingForDrawables")
@NonNull
@Override
public StickerPackViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -61,13 +63,13 @@ public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.
}
public class StickerPackViewHolder extends RecyclerView.ViewHolder {
private LinearLayout mContainer;
private ImageView mStickerPreview;
private ImageView mUpdateButton;
private ImageView mDeleteButton;
private TextView mName;
private TextView mStickersCount;
private SwitchCompat mSwitch;
private final LinearLayout mContainer;
private final ImageView mStickerPreview;
private final ImageView mUpdateButton;
private final ImageView mDeleteButton;
private final TextView mName;
private final TextView mStickersCount;
private final SwitchCompat mSwitch;
public StickerPackViewHolder(@NonNull View view) {
@@ -82,6 +84,7 @@ public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.
mStickersCount = view.findViewWithTag("vkim_cancel_label_text");
}
@SuppressLint("SetTextI18n")
public void bind(int position) {
final TelegramStickersPack pack = sService.getPacksListReference().get(position);
if (pack.state != TelegramStickersPack.DOWNLOADED) return;
@@ -5,6 +5,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import static ru.vtosters.lite.utils.AndroidUtils.getString;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationChannel;
@@ -57,6 +58,7 @@ public class CrashReporter {
var saveLogIntent = new Intent(getGlobalContext(), LogWriterService.class);
saveLogIntent.putExtra("log", logString);
saveLogIntent.putExtra("notificationId", 1);
@SuppressLint("UnspecifiedImmutableFlag")
var psaveLogIntent = PendingIntent.getService(getGlobalContext(), 0, saveLogIntent, PendingIntent.FLAG_CANCEL_CURRENT);
var builder = new Notification.Builder(getGlobalContext());
@@ -65,12 +67,8 @@ public class CrashReporter {
builder.setContentText(logString);
builder.setStyle(new Notification.BigTextStyle().bigText(logString));
builder.setAutoCancel(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
builder.addAction(new Notification.Action(0, getString("vtl_crash_upload"), PendingIntent.getActivity(getGlobalContext(), (int) (Math.random() * 100.0d), foxbinIntent, PendingIntent.FLAG_CANCEL_CURRENT)));
builder.addAction(new Notification.Action(0, getString("vtl_crash_save"), psaveLogIntent));
} else {
builder.setContentIntent(PendingIntent.getActivity(activity, 0, foxbinIntent, PendingIntent.FLAG_ONE_SHOT));
}
builder.addAction(new Notification.Action(0, getString("vtl_crash_upload"), PendingIntent.getActivity(getGlobalContext(), (int) (Math.random() * 100.0d), foxbinIntent, PendingIntent.FLAG_CANCEL_CURRENT)));
builder.addAction(new Notification.Action(0, getString("vtl_crash_save"), psaveLogIntent));
if (Build.VERSION.SDK_INT >= 26) {
builder.setChannelId("crashes");
@@ -10,6 +10,8 @@ import static ru.vtosters.lite.utils.Preferences.videonewcatalog;
import static ru.vtosters.lite.utils.Preferences.vkme;
import static ru.vtosters.lite.utils.Preferences.vkme_notifs;
import android.os.Build;
import com.vk.apps.AppsFragment;
import com.vk.discover.ThemedFeedFragment;
import com.vk.fave.fragments.FaveTabFragment;
@@ -101,14 +103,28 @@ public class DockBarEditorManager {
mSelectedTabs.add(getTabByTag(tag));
allTags.remove(tag);
}
allTags.forEach(tag -> mDisabledTabs.add(getTabByTag(tag)));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
allTags.forEach(tag -> mDisabledTabs.add(getTabByTag(tag)));
} else {
for (String tag : allTags) {
mDisabledTabs.add(getTabByTag(tag));
}
}
}
public void save() {
AndroidUtils.getPreferences().edit().putString("dockbar_tabs", mSelectedTabs.stream()
.map(tab -> tab.tag)
.collect(Collectors.joining(",")))
.commit();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
getPreferences().edit().putString("dockbar_tabs", mSelectedTabs.stream()
.map(tab -> tab.tag)
.collect(Collectors.joining(",")))
.commit();
} else {
StringBuilder sb = new StringBuilder();
for (DockBarTab tab : mSelectedTabs) {
sb.append(tab.tag).append(",");
}
getPreferences().edit().putString("dockbar_tabs", sb.toString()).commit();
}
}
public void reset() {
@@ -1,7 +1,6 @@
package ru.vtosters.lite.ui.components;
public interface IItemMovingListener {
void onItemDismiss(int index);
boolean onItemMove(int fromPosition, int toPosition);
@@ -2,11 +2,14 @@ package ru.vtosters.lite.ui.components;
import static ru.vtosters.lite.utils.AndroidUtils.getPreferences;
import android.os.Build;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import ru.vtosters.lite.ui.items.DockBarTab;
import ru.vtosters.lite.ui.items.SuperAppItem;
import ru.vtosters.lite.utils.AndroidUtils;
@@ -40,15 +43,30 @@ public class SuperAppEditorManager {
mSelectedItems.add(getItemByTag(tag));
allTags.remove(tag);
}
allTags.forEach(tag -> mDisabledItems.add(getItemByTag(tag)));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
allTags.forEach(tag -> mDisabledItems.add(getItemByTag(tag)));
} else {
for (String tag : allTags) {
mDisabledItems.add(getItemByTag(tag));
}
}
}
public void save() {
if (mSelectedItems.size() > 0)
getPreferences().edit().putString("superapp_items", mSelectedItems.stream()
.map(item -> item.type)
.collect(Collectors.joining(",")))
.commit();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
getPreferences().edit().putString("superapp_items", mSelectedItems.stream()
.map(item -> item.type)
.collect(Collectors.joining(",")))
.commit();
} else {
StringBuilder sb = new StringBuilder();
for (SuperAppItem item : mSelectedItems) {
sb.append(item.type);
sb.append(",");
}
getPreferences().edit().putString("superapp_items", sb.toString()).commit();
}
else
reset();
}
@@ -9,7 +9,6 @@ import ru.vtosters.lite.ui.vkui.ModalBottomSheetWrapper;
import ru.vtosters.lite.utils.OTAUtils;
public class OTADialog implements OTAUtils.OTAListener {
private final Activity mActivity;
private final OTAUtils mHelper;
@@ -21,8 +20,8 @@ public class OTADialog implements OTAUtils.OTAListener {
mHelper.loadData();
}
public static OTADialog checkUpdates(Activity activity) {
return new OTADialog(activity);
public static void checkUpdates(Activity activity) {
new OTADialog(activity);
}
@Override
@@ -77,8 +77,6 @@ public class ServerDialog {
private static void getResponse(String body) throws Exception {
JSONObject jSONObject = new JSONObject(body);
Log.d("VTLOG", "getResponse: " + jSONObject);
if (jSONObject.getString("title").equals("")) {
showAlert = false;
return;
@@ -22,6 +22,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.vtosters.lite.R;
import java.util.Objects;
import ru.vtosters.lite.ui.adapters.CategorizedAdapter;
import ru.vtosters.lite.ui.components.DockBarEditorManager;
import ru.vtosters.lite.ui.components.ItemMovingCallback;
@@ -83,7 +85,7 @@ public class DockBarEditorFragment extends BaseToolbarFragment {
});
adapter.setMinAndMaxCounts(DockBarEditorManager.MIN_SELECTED_TABS, DockBarEditorManager.MAX_SELECTED_TABS);
var recyclerView = new RecyclerView(getContext());
var recyclerView = new RecyclerView(requireContext());
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
@@ -40,6 +40,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.vk.navigation.Navigator;
import java.io.File;
import java.util.Objects;
import ru.vtosters.lite.tgs.TGPref;
import ru.vtosters.lite.ui.adapters.StickerPackAdapter;
@@ -47,7 +48,6 @@ import ru.vtosters.lite.ui.fragments.BaseToolbarFragment;
import ru.vtosters.lite.utils.AndroidUtils;
public class StickersFragment extends BaseToolbarFragment {
public final static String ACTION_RELOAD = "com.vtosters.lite.action.RELOAD_TGS_LIST";
private final static int TYPE_DIRECT = 0, TYPE_SOCKS = 2;
@@ -147,7 +147,7 @@ public class StickersFragment extends BaseToolbarFragment {
@Override
public void onDestroyView() {
super.onDestroyView();
getContext().unregisterReceiver(mReceiver);
requireContext().unregisterReceiver(mReceiver);
}
private void fabClick() {
@@ -5,6 +5,7 @@ import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getWallpaperFile;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
@@ -64,6 +65,7 @@ public class WallpaperPreferences extends Preference {
mChatBackground.setImageDrawable(null);
}
@SuppressLint("NotifyDataSetChanged")
void redraw() {
mAdapter.notifyDataSetChanged();
requestBg();
@@ -103,7 +103,6 @@ public final class FileUriUtils {
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static String getVolumeIdFromTreeUri(final Uri treeUri) {
final String docId = DocumentsContract.getTreeDocumentId(treeUri);
final String[] split = docId.split(":");
@@ -111,8 +110,6 @@ public final class FileUriUtils {
else return null;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static String getDocumentPathFromTreeUri(final Uri treeUri) {
final String docId = DocumentsContract.getTreeDocumentId(treeUri);
final String[] split = docId.split(":");
@@ -70,16 +70,11 @@ public class LifecycleUtils {
public static void restartApplicationWithTimer() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
restartApplication();
}
}, 500);
handler.postDelayed(LifecycleUtils::restartApplication, 500);
}
public static void restartApplicationInto(Class Class) {
Context ctx = AndroidUtils.getGlobalContext();
PackageManager pm = ctx.getPackageManager();
Intent intent = new Navigator(Class).b(ctx);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -298,7 +298,11 @@ public class ThemesUtils {
if (isColorRefAccented(i) && isAndroidMonet()) {
return getAccentColor();
}
return context.getColor(i);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return context.getColor(i);
} else {
return context.getResources().getColor(i);
}
} // Android Support color injector + accent color checker
public static int getColor2(int i) {
@@ -352,7 +356,7 @@ public class ThemesUtils {
}
public static String hex(int i) {
return String.format("#%06X", Integer.valueOf(i & 16777215));
return String.format("#%06X", i & 16777215);
} // Get color as hex string
public static int getNavigationHeight(int Default) {