Skip to content

Commit

Permalink
Dark theme now works as intended. Time blocks display their boundarie…
Browse files Browse the repository at this point in the history
…s correctly. Therefore, removed the dark schedule toggle. It will automatically switch to dark schedule when dark theme is turned on.
  • Loading branch information
davidtakac committed Dec 29, 2018
1 parent a352f3d commit ede2234
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 40 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ android {
minSdkVersion 19
targetSdkVersion 28
versionCode 2
versionName "2.0"
versionName "2.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/assets/filter-invert-class-script.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
elements = document.getElementsByClassName("%s");
for(var i = 0; i < elements.length; i++){
elements[i].style.filter="invert(%s)";
}
1 change: 1 addition & 0 deletions app/src/main/assets/filter-invert-id-script.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
document.getElementById("%s").style.filter="invert(%s)";
1 change: 0 additions & 1 deletion app/src/main/assets/modify-id-background-script.txt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,8 @@ public String getSettingsModifiedKey() {
}

@Override
public String getDarkScheduleKey() {
return r.getString(R.string.prefkey_darkschedule);
}

@Override
public String getDarkBackgroundColor() {
String rgb = Integer.toHexString(r.getColor(R.color.materialDarkBackground)).substring(2);
return "#" + rgb;
public String getDarkThemeKey() {
return r.getString(R.string.prefkey_darktheme);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@ public interface ResourceManager {
String getYearKey();
String getGroupsKey();
String getSettingsModifiedKey();
String getDarkScheduleKey();
String getDarkThemeKey();
String getThemeChangedKey();
String getLoadOnResumeKey();

String getScheduleUrl();

String getUndergradProgrammeId(int index);
String getUndergradYearId(int index);

String getDarkBackgroundColor();
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ public class SchedulePresenter implements ScheduleContract.Presenter {
private static String[] idsToHide = {"header-top","header","gototopdiv","footer","sidebar","napomene"};
private static String[] classesToHide = {"naslov-kategorije","odabir"};
private static String[] idsToRemove = {"izbor-studija"};
private static String[] idsToChangeBackgroundColor = {"raspored","content-contain"};
private static String[] classesToChangeBackgroundColor = {"tok"};
private static String[] idsToInvertColor = {"content-contain"};
private static String[] classesToInvertColor = {"thumbnail"};

private static String[] classesToSetBackground = {"blokovi LV", "blokovi KV", "blokovi PR", "blokovi AV", "blokovi IS"};
private static String[] classBackgrounds = {"#002636", "#000149", "#1E0520", "#322100", "#002A7F"};

private ScheduleContract.View view;
private IRepository repo;
Expand Down Expand Up @@ -64,8 +67,9 @@ public void hideElementsOtherThanSchedule() {

@Override
public void changeToDarkBackground() {
view.injectJavascript(jsUtil.changeClassBackgroundColor(classesToChangeBackgroundColor, resManager.getDarkBackgroundColor()));
view.injectJavascript(jsUtil.changeIdBackgroundColor(idsToChangeBackgroundColor, resManager.getDarkBackgroundColor()));
view.injectJavascript(jsUtil.invertElementsColor(idsToInvertColor, "0.925"));
view.injectJavascript(jsUtil.invertClassesColor(classesToInvertColor, "1"));
view.injectJavascript(jsUtil.changeClassesBackground(classesToSetBackground, classBackgrounds));
}

@Override
Expand All @@ -86,12 +90,12 @@ public void onResume() {

@Override
public void applyJavascript() {
if(repo.get(resManager.getDarkThemeKey(), false)) {
changeToDarkBackground();
}
hideElementsOtherThanSchedule();
scrollToCurrentDay();
highlightSelectedGroups();
if(repo.get(resManager.getDarkScheduleKey(), false)) {
changeToDarkBackground();
}
}

@Override
Expand Down
39 changes: 31 additions & 8 deletions app/src/main/java/os/dtakac/feritraspored/util/JavascriptUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ public class JavascriptUtil {
private static String SCROLL_INTO_VIEW_PATH = "scroll-into-view-script.txt";
private static String P_CONTAINS_PATH = "p-contains-script.txt";
private static String HIGHLIGHT_PATH = "highlight-paragraphs-script.txt";
private static String ID_BACKGROUND_PATH = "modify-id-background-script.txt";
private static String CLASS_BACKGROUND_PATH = "modify-class-background-script.txt";
private static String ID_INVERT_PATH = "filter-invert-id-script.txt";
private static String CLASS_INVERT_PATH = "filter-invert-class-script.txt";
private static String CLASS_BACKGROUND_PATH = "class-background-script.txt";

private AssetManager am;

Expand All @@ -42,10 +43,32 @@ private String buildScript(String[] args, String scriptPath){
return b.toString();
}

public String changeIdBackgroundColor(String[] elementIds, String color){
public String changeClassesBackground(String[] classNames, String[] colors){
if(classNames.length != colors.length){
throw new IllegalStateException("There must be as many colors as there are class names and vice-versa.");
}

String script = "";
try {
script = FileUtil.readFile(am.open(CLASS_BACKGROUND_PATH));
} catch (IOException e) {
e.printStackTrace();
return "";
}

StringBuilder b = new StringBuilder();
b.append(FUNCTION_START).append("\n");
for(int i = 0; i < classNames.length; i++){
b.append(String.format(script, classNames[i], colors[i]));
}
b.append(FUNCTION_END);
return b.toString();
}

public String invertElementsColor(String[] elementIds, String invertValue){
String script = "";
try {
script = FileUtil.readFile(am.open(ID_BACKGROUND_PATH));
script = FileUtil.readFile(am.open(ID_INVERT_PATH));
} catch (IOException e) {
e.printStackTrace();
return "";
Expand All @@ -54,16 +77,16 @@ public String changeIdBackgroundColor(String[] elementIds, String color){
StringBuilder b = new StringBuilder();
b.append(FUNCTION_START).append("\n");
for(String id: elementIds){
b.append(String.format(script, id, color));
b.append(String.format(script, id, invertValue));
}
b.append(FUNCTION_END);
return b.toString();
}

public String changeClassBackgroundColor(String[] classNames, String color){
public String invertClassesColor(String[] classNames, String invertValue){
String script = "";
try {
script = FileUtil.readFile(am.open(CLASS_BACKGROUND_PATH));
script = FileUtil.readFile(am.open(CLASS_INVERT_PATH));
} catch (IOException e) {
e.printStackTrace();
return "";
Expand All @@ -72,7 +95,7 @@ public String changeClassBackgroundColor(String[] classNames, String color){
StringBuilder b = new StringBuilder();
b.append(FUNCTION_START).append("\n");
for(String c: classNames){
b.append(String.format(script, c, color));
b.append(String.format(script, c, invertValue));
}
b.append(FUNCTION_END);
return b.toString();
Expand Down
9 changes: 3 additions & 6 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
<string name="prefkey_settings_modified">settings_modified</string>
<string name="prefkey_lastdisplayed_date">last_displayed_date</string>
<string name="prefkey_loadonresume">load_on_resume_key</string>
<string name="prefkey_darktheme">dark_theme_key</string>
<string name="prefkey_themechanged">theme_changed_key</string>

<!--User interface strings-->
<string name="app_name">FERIT Raspored</string>
Expand Down Expand Up @@ -48,13 +50,8 @@
<string name="settings_loadonresume_title">Automatski pomakni na trenutni dan</string>
<string name="settings_loadonresume_summary">Svakim ponovnim ulaskom u aplikaciju učitaj trenutni tjedan i pomakni na trenutni dan</string>
<string name="settings_skipsaturday_summary">Umjesto pomicanja na subotu, učitaj sljedeći tjedan</string>
<string name="prefkey_darkschedule">dark_theme_schedule_key</string>
<string name="settings_darktheme">Tamna tema aplikacije</string>
<string name="settings_darktheme">Tamna tema</string>
<string name="settings_themecategory_title">Tema</string>
<string name="prefkey_darktheme">dark_theme_key</string>
<string name="settings_darkschedule_title">Tamna pozadina rasporeda</string>
<string name="settings_darkschedule_summary">Napomena: horizontalne crte koje odvajaju vremenske blokove ne mogu se prikazati ako je ovo odabrano</string>
<string name="prefkey_themechanged">theme_changed_key</string>

<!--Programme type names and IDs-->
<string-array name="programmetype_names">
Expand Down
6 changes: 0 additions & 6 deletions app/src/main/res/xml/fragment_preference.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,6 @@
android:title="@string/settings_darktheme"
/>

<SwitchPreference
android:key="@string/prefkey_darkschedule"
android:title="@string/settings_darkschedule_title"
android:summary="@string/settings_darkschedule_summary"
/>

</PreferenceCategory>

</PreferenceScreen>

0 comments on commit ede2234

Please sign in to comment.