Skip to content

Commit

Permalink
Re-added the dark schedule background toggle because it doesn't seem …
Browse files Browse the repository at this point in the history
…to work on some older Android versions. Made some switch statements look nicer and moved the Snackbar showing to a separate method.
  • Loading branch information
David Takac committed Dec 30, 2018
1 parent 46d3d98 commit 6405a30
Show file tree
Hide file tree
Showing 11 changed files with 65 additions and 44 deletions.
8 changes: 2 additions & 6 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

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.1"
versionName "2.1.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ public String getLoadOnResumeKey() {
return r.getString(R.string.prefkey_loadonresume);
}

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

@Override
public String getScheduleUrl() {
return r.getString(R.string.ferit_baseurl) + r.getString(R.string.ferit_scheduleurl);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public interface ResourceManager {
String getDarkThemeKey();
String getThemeChangedKey();
String getLoadOnResumeKey();
String getDarkScheduleKey();

String getScheduleUrl();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ interface Presenter {
void highlightSelectedGroups();
void loadPreviousWeek();
void loadNextWeek();
void changeToDarkBackground();
void changeToDarkScheduleBackground();
void onResume();
void applyJavascript();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,12 @@ public void loadCurrentWeekOrScrollToDay() {
@Override
public void hideElementsOtherThanSchedule() {
view.injectJavascript(jsUtil.hideElementsScript(idsToHide));
view.injectJavascript(jsUtil.removeElementsScript(idsToRemove));
view.injectJavascript(jsUtil.hideClassesScript(classesToHide));
view.injectJavascript(jsUtil.removeElementsScript(idsToRemove));
}

@Override
public void changeToDarkBackground() {
public void changeToDarkScheduleBackground() {
view.injectJavascript(jsUtil.invertElementsColor(idsToInvertColor, "0.925"));
view.injectJavascript(jsUtil.invertClassesColor(classesToInvertColor, "1"));
view.injectJavascript(jsUtil.changeClassesBackground(classesToSetBackground, classBackgrounds));
Expand All @@ -91,12 +91,12 @@ public void onResume() {

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

@Override
Expand Down
60 changes: 35 additions & 25 deletions app/src/main/java/os/dtakac/feritraspored/ui/ScheduleActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

Expand Down Expand Up @@ -92,9 +93,7 @@ public void loadUrl(String url){

@Override
public void injectJavascript(String script){
wvSchedule.evaluateJavascript(script, value -> {
//nothing yet
});
wvSchedule.evaluateJavascript(script, null);
}

@Override
Expand All @@ -113,23 +112,33 @@ private void loadCurrentDay(){

private void handleSelectedMenuItem(int itemId) {
switch (itemId){
case R.id.item_menu_settings:
case R.id.item_menu_settings: {
startActivity(new Intent(this, SettingsActivity.class));
break;
case R.id.item_menu_openinbrowser:
}
case R.id.item_menu_openinbrowser: {
openUrlInExternalBrowser(getLoadedUrl());
break;
default:
break;
}
default: break;
}
}

@OnClick({R.id.item_navitems_current, R.id.item_navitems_next, R.id.item_navitems_previous})
void navItemClicked(View v){
switch(v.getId()){
case R.id.item_navitems_current: loadCurrentDay(); break;
case R.id.item_navitems_previous: presenter.loadPreviousWeek(); break;
case R.id.item_navitems_next: presenter.loadNextWeek(); break;
case R.id.item_navitems_current: {
loadCurrentDay();
break;
}
case R.id.item_navitems_previous:{
presenter.loadPreviousWeek();
break;
}
case R.id.item_navitems_next: {
presenter.loadNextWeek();
break;
}
default: break;
}
}
Expand All @@ -155,28 +164,31 @@ private void setLoading(boolean isLoading){
swipeRefresh.setRefreshing(isLoading);
}

private void openUrlInExternalBrowser(String url){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}

private void setTheme(){
SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(this);
boolean darkTheme = s.getBoolean(getString(R.string.prefkey_darktheme), false);

setTheme(darkTheme ? R.style.DarkTheme : R.style.LightTheme);
}

private void showOpenInExternalBrowserSnackbar(String urlToOpen){
Snackbar s = Snackbar.make(
findViewById(R.id.constraintlayout_scheduleactivity),
R.string.schedule_openurlinbrowser,
Snackbar.LENGTH_LONG
);
s.setAction(R.string.schedule_actionopen, v -> openUrlInExternalBrowser(urlToOpen));
s.show();
}

private void openUrlInExternalBrowser(String url){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}

private class ScheduleClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Snackbar s = Snackbar.make(
ScheduleActivity.this.findViewById(R.id.constraintlayout_scheduleactivity),
R.string.schedule_openurlinbrowser,
Snackbar.LENGTH_LONG
);
s.setAction(R.string.schedule_actionopen, v -> openUrlInExternalBrowser(url));
s.show();

showOpenInExternalBrowserSnackbar(url);
return true;
}

Expand All @@ -188,9 +200,7 @@ public void onPageStarted(WebView view, String url, Bitmap favicon) {
@Override
public void onPageFinished(WebView view, String url) {
setLoading(false);
if(url.contains(getString(R.string.ferit_scheduleurl))) {
presenter.applyJavascript();
}
presenter.applyJavascript();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
finish();
return true;
}
default: break;
}
return super.onOptionsItemSelected(item);
}
Expand Down
11 changes: 7 additions & 4 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<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>
<string name="prefkey_darkschedule">dark_schedule_key</string>

<!--User interface strings-->
<string name="app_name">FERIT Raspored</string>
Expand All @@ -26,8 +27,8 @@
<string name="settings_progtype_title">Tip studija</string>
<string name="settings_programme_title">Studijski program</string>
<string name="settings_year_title">Godina</string>
<string name="settings_studypickcategory_title">Tvoj studij i godina</string>
<string name="settings_grouphighlight_title">Tvoje grupe</string>
<string name="settings_studypickcategory_title">Studij i godina</string>
<string name="settings_grouphighlight_title">Grupe</string>
<string name="settings_grouphighlightcategory_title">Označavanje grupa</string>
<string name="settings_timepicker_title">Vrijeme</string>
<string name="settings_skipday_title">Preskakanje dana</string>
Expand All @@ -36,7 +37,7 @@
<string name="settings_scheduledisplaycategory_title">Prikaz rasporeda</string>
<string name="cancel_label">Natrag</string>
<string name="confirm_label">Spremi</string>
<string name="settings_grouphighlight_hint">LV4/24,PR-2,KV2/16,…</string>
<string name="settings_grouphighlight_hint">LV4,PR-2,KV2/16,LV2/24…</string>
<string name="settings_grouphighlight_empty">(Nema unosa)</string>
<string name="navbar_previousweek">Prošli tjedan</string>
<string name="navbar_currentweek">Ovaj tjedan</string>
Expand All @@ -48,8 +49,10 @@
<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="settings_darktheme">Tamna tema</string>
<string name="settings_darktheme">Tamna tema aplikacije</string>
<string name="settings_themecategory_title">Tema</string>
<string name="settings_darkschedule_title">Tamna pozadina rasporeda</string>
<string name="settings_darkschedule_summary">Na nekim starijim uređajima pozadina rasporeda može biti samo bijela. Ovo se može popraviti nadogradnjom sustava na noviju verziju.</string>

<!--Programme type names and IDs-->
<string-array name="programmetype_names">
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/xml/fragment_preference.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@
android:key="@string/prefkey_darktheme"
android:title="@string/settings_darktheme"
/>
<SwitchPreference
android:key="@string/prefkey_darkschedule"
android:title="@string/settings_darkschedule_title"
android:summary="@string/settings_darkschedule_summary"
/>

</PreferenceCategory>

Expand Down

0 comments on commit 6405a30

Please sign in to comment.