1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
package it.niedermann.nextcloud.deck;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceManager;
import com.jakewharton.threetenabp.AndroidThreeTen;
import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
import static androidx.multidex.MultiDex.install;
public class Application extends android.app.Application {
public static final long NO_ACCOUNT_ID = -1L;
public static final long NO_BOARD_ID = -1L;
public static final long NO_STACK_ID = -1L;
@Override
public void onCreate() {
setAppTheme(getAppTheme(getApplicationContext()));
super.onCreate();
AndroidThreeTen.init(this);
}
// --------
// Multidex
// --------
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
install(this);
}
// -----------------
// Day / Night theme
// -----------------
public static void setAppTheme(boolean darkTheme) {
setDefaultNightMode(darkTheme ? MODE_NIGHT_YES : MODE_NIGHT_NO);
}
public static boolean getAppTheme(@NonNull Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(context.getString(R.string.pref_key_dark_theme), false);
}
// --------
// Branding
// --------
public static boolean isBrandingEnabled(@NonNull Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(context.getString(R.string.pref_key_branding), true);
}
@ColorInt
public static int readBrandMainColor(@NonNull Context context) {
if (Application.isBrandingEnabled(context)) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
DeckLog.log("--- Read: shared_preference_theme_main");
return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_main), context.getApplicationContext().getResources().getColor(R.color.primary));
} else {
return context.getResources().getColor(R.color.primary);
}
}
@ColorInt
public static int readBrandTextColor(@NonNull Context context) {
if (isBrandingEnabled(context)) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
DeckLog.log("--- Read: shared_preference_theme_text");
return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_text), context.getApplicationContext().getResources().getColor(android.R.color.white));
} else {
return Color.WHITE;
}
}
public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor, @ColorInt int textColor) {
if (isBrandingEnabled(context) && context instanceof BrandedActivity) {
final BrandedActivity activity = (BrandedActivity) context;
activity.applyBrand(mainColor, textColor);
BrandedActivity.applyBrandToStatusbar(activity.getWindow(), mainColor, textColor);
}
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
DeckLog.log("--- Write: shared_preference_theme_main" + " | " + mainColor);
DeckLog.log("--- Write: shared_preference_theme_text" + " | " + textColor);
editor.putInt(context.getString(R.string.shared_preference_theme_main), mainColor);
editor.putInt(context.getString(R.string.shared_preference_theme_text), textColor);
editor.apply();
}
// --------------------------------------
// Current account / board / stack states
// --------------------------------------
public static void saveCurrentAccountId(@NonNull Context context, long accountId) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
DeckLog.log("--- Write: shared_preference_last_account" + " | " + accountId);
editor.putLong(context.getString(R.string.shared_preference_last_account), accountId);
editor.apply();
}
public static long readCurrentAccountId(@NonNull Context context) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
long accountId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_account), NO_ACCOUNT_ID);
DeckLog.log("--- Read: shared_preference_last_account" + " | " + accountId);
return accountId;
}
public static void saveCurrentBoardId(@NonNull Context context, long accountId, long boardId) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
DeckLog.log("--- Write: shared_preference_last_board_for_account_" + accountId + " | " + boardId);
editor.putLong(context.getString(R.string.shared_preference_last_board_for_account_) + accountId, boardId);
editor.apply();
}
public static long readCurrentBoardId(@NonNull Context context, long accountId) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
long boardId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_board_for_account_) + accountId, NO_BOARD_ID);
DeckLog.log("--- Read: shared_preference_last_board_for_account_" + accountId + " | " + boardId);
return boardId;
}
public static void saveCurrentStackId(@NonNull Context context, long accountId, long boardId, long stackId) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
DeckLog.log("--- Write: shared_preference_last_stack_for_account_and_board_" + accountId + "_" + boardId + " | " + stackId);
editor.putLong(context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, stackId);
editor.apply();
}
public static long readCurrentStackId(@NonNull Context context, long accountId, long boardId) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
long savedStackId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, NO_STACK_ID);
DeckLog.log("--- Read: shared_preference_last_stack_for_account_and_board" + accountId + "_" + boardId + " | " + savedStackId);
return savedStackId;
}
}
|