mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-26 07:32:08 +01:00
Small improvements, refactoring
This commit is contained in:
@@ -40,6 +40,7 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Parcel;
|
||||
import android.os.PowerManager;
|
||||
import android.text.Spannable;
|
||||
import android.text.Spanned;
|
||||
import android.text.format.DateUtils;
|
||||
@@ -178,6 +179,20 @@ public class Helper {
|
||||
return pm.hasSystemFeature(PackageManager.FEATURE_PRINTING);
|
||||
}
|
||||
|
||||
static Boolean isIgnoringOptimizations(Context context) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
if (pm == null)
|
||||
return null;
|
||||
return pm.isIgnoringBatteryOptimizations(BuildConfig.APPLICATION_ID);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static boolean isPlayStoreInstall() {
|
||||
return BuildConfig.PLAY_STORE_RELEASE;
|
||||
}
|
||||
|
||||
// View
|
||||
|
||||
static Intent getChooser(Context context, Intent intent) {
|
||||
@@ -522,6 +537,20 @@ public class Helper {
|
||||
}
|
||||
}
|
||||
|
||||
static void linkPro(final TextView tv) {
|
||||
if (ActivityBilling.isPro(tv.getContext()) && !BuildConfig.DEBUG)
|
||||
hide(tv);
|
||||
else {
|
||||
tv.getPaint().setUnderlineText(true);
|
||||
tv.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
tv.getContext().startActivity(new Intent(tv.getContext(), ActivityBilling.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Files
|
||||
|
||||
static String sanitizeFilename(String name) {
|
||||
@@ -796,49 +825,6 @@ public class Helper {
|
||||
|
||||
// Miscellaneous
|
||||
|
||||
static String sanitizeKeyword(String keyword) {
|
||||
// https://tools.ietf.org/html/rfc3501
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < keyword.length(); i++) {
|
||||
// flag-keyword = atom
|
||||
// atom = 1*ATOM-CHAR
|
||||
// ATOM-CHAR = <any CHAR except atom-specials>
|
||||
char kar = keyword.charAt(i);
|
||||
// atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards / quoted-specials / resp-specials
|
||||
if (kar == '(' || kar == ')' || kar == '{' || kar == ' ' || Character.isISOControl(kar))
|
||||
continue;
|
||||
// list-wildcards = "%" / "*"
|
||||
if (kar == '%' || kar == '*')
|
||||
continue;
|
||||
// quoted-specials = DQUOTE / "\"
|
||||
if (kar == '"' || kar == '\\')
|
||||
continue;
|
||||
// resp-specials = "]"
|
||||
if (kar == ']')
|
||||
continue;
|
||||
sb.append(kar);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
static boolean isPlayStoreInstall() {
|
||||
return BuildConfig.PLAY_STORE_RELEASE;
|
||||
}
|
||||
|
||||
static void linkPro(final TextView tv) {
|
||||
if (ActivityBilling.isPro(tv.getContext()) && !BuildConfig.DEBUG)
|
||||
hide(tv);
|
||||
else {
|
||||
tv.getPaint().setUnderlineText(true);
|
||||
tv.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
tv.getContext().startActivity(new Intent(tv.getContext(), ActivityBilling.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static <T> List<List<T>> chunkList(List<T> list, int size) {
|
||||
List<List<T>> result = new ArrayList<>(list.size() / size);
|
||||
for (int i = 0; i < list.size(); i += size)
|
||||
|
||||
Reference in New Issue
Block a user