mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-10 19:13:03 +02:00
Added colored launcher icons
This commit is contained in:
@@ -25,10 +25,12 @@ import android.app.NotificationChannel;
|
||||
import android.app.NotificationChannelGroup;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
@@ -103,15 +105,14 @@ public class ApplicationEx extends Application {
|
||||
}
|
||||
});
|
||||
|
||||
Helper.enableComponent(this, ActivityMain.class, !BuildConfig.DEBUG);
|
||||
Helper.enableComponent(this, ActivityMain.class.getName() + ".Debug", BuildConfig.DEBUG);
|
||||
|
||||
Log.setup(this);
|
||||
|
||||
upgrade(this);
|
||||
|
||||
createNotificationChannels();
|
||||
|
||||
setLauncherIcon(this);
|
||||
|
||||
DB.setupViewInvalidation(this);
|
||||
|
||||
if (Helper.hasWebView(this))
|
||||
@@ -397,6 +398,69 @@ public class ApplicationEx extends Application {
|
||||
}
|
||||
}
|
||||
|
||||
static void setLauncherIcon(Context context) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String theme = prefs.getString("theme", "light");
|
||||
boolean theme_icon = prefs.getBoolean("theme_icon", false);
|
||||
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Blue", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Amber", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Yellow", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Purple", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Red", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Green", false);
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Debug", false);
|
||||
|
||||
if (!theme_icon) {
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Blue", true);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (theme) {
|
||||
case "orange_blue_light":
|
||||
case "orange_blue_dark":
|
||||
case "orange_blue_black":
|
||||
case "orange_blue_system":
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Amber", true);
|
||||
break;
|
||||
|
||||
case "yellow_purple_light":
|
||||
case "yellow_purple_dark":
|
||||
case "yellow_purple_black":
|
||||
case "yellow_purple_system":
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Yellow", true);
|
||||
break;
|
||||
|
||||
case "purple_yellow_light":
|
||||
case "purple_yellow_dark":
|
||||
case "purple_yellow_black":
|
||||
case "purple_yellow_system":
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Purple", true);
|
||||
break;
|
||||
|
||||
case "red_green_light":
|
||||
case "red_green_dark":
|
||||
case "red_green_black":
|
||||
case "red_green_system":
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Red", true);
|
||||
break;
|
||||
|
||||
case "green_red_light":
|
||||
case "green_red_dark":
|
||||
case "green_red_black":
|
||||
case "green_red_system":
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Green", true);
|
||||
break;
|
||||
|
||||
default:
|
||||
Helper.enableComponent(context, ActivityMain.class.getName(), true);
|
||||
break;
|
||||
}
|
||||
|
||||
if (BuildConfig.DEBUG && false)
|
||||
Helper.enableComponent(context, ActivityMain.class.getName() + ".Debug", BuildConfig.DEBUG);
|
||||
}
|
||||
|
||||
private BroadcastReceiver onScreenOff = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
@@ -947,6 +947,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
private SwitchCompat swBlack;
|
||||
private SwitchCompat swSystem;
|
||||
private TextView tvSystem;
|
||||
private SwitchCompat swLauncherIcon;
|
||||
|
||||
private void eval() {
|
||||
int checkedId = rgTheme.getCheckedRadioButtonId();
|
||||
@@ -974,9 +975,11 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
swBlack = dview.findViewById(R.id.swBlack);
|
||||
swSystem = dview.findViewById(R.id.swSystem);
|
||||
tvSystem = dview.findViewById(R.id.tvSystem);
|
||||
swLauncherIcon = dview.findViewById(R.id.swLauncherIcon);
|
||||
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
String theme = prefs.getString("theme", "light");
|
||||
boolean theme_icon = prefs.getBoolean("theme_icon", false);
|
||||
|
||||
itten.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@@ -1033,6 +1036,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
swDark.setChecked(dark || black);
|
||||
swBlack.setChecked(black);
|
||||
swSystem.setChecked(system);
|
||||
swLauncherIcon.setChecked(theme_icon);
|
||||
|
||||
switch (theme) {
|
||||
case "light":
|
||||
@@ -1096,6 +1100,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
boolean black = (swBlack.isEnabled() && swBlack.isChecked());
|
||||
boolean system = (swSystem.isEnabled() && swSystem.isChecked());
|
||||
|
||||
prefs.edit().putBoolean("theme_icon", swLauncherIcon.isChecked()).apply();
|
||||
|
||||
switch (rgTheme.getCheckedRadioButtonId()) {
|
||||
case R.id.rbThemeBlueOrange:
|
||||
if (system)
|
||||
@@ -1138,6 +1144,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
prefs.edit().putString("theme", "black_and_white").apply();
|
||||
break;
|
||||
}
|
||||
|
||||
ApplicationEx.setLauncherIcon(getContext());
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
|
||||
Reference in New Issue
Block a user