diff --git a/app/src/main/java/com/usharik/seznamslovnik/MainActivity.java b/app/src/main/java/com/usharik/seznamslovnik/MainActivity.java index f074880..56ef899 100755 --- a/app/src/main/java/com/usharik/seznamslovnik/MainActivity.java +++ b/app/src/main/java/com/usharik/seznamslovnik/MainActivity.java @@ -78,6 +78,8 @@ protected void onPause() { public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options, menu); + MenuItem item = menu.findItem(R.id.offlineMode); + item.setChecked(getViewModel().isOfflineMode()); return true; } @@ -85,7 +87,7 @@ public boolean onCreateOptionsMenu(Menu menu) { public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()) { case R.id.offlineMode: - item.setChecked(!item.isChecked()); + item.setChecked(!getViewModel().isOfflineMode()); getViewModel().setOfflineMode(item.isChecked()); updateTitle(); return true; diff --git a/app/src/main/java/com/usharik/seznamslovnik/MainViewModel.java b/app/src/main/java/com/usharik/seznamslovnik/MainViewModel.java index 309aeb9..999c348 100755 --- a/app/src/main/java/com/usharik/seznamslovnik/MainViewModel.java +++ b/app/src/main/java/com/usharik/seznamslovnik/MainViewModel.java @@ -1,6 +1,7 @@ package com.usharik.seznamslovnik; import android.content.ClipboardManager; +import android.content.SharedPreferences; import android.content.res.Resources; import android.databinding.Bindable; import android.os.Vibrator; @@ -39,6 +40,8 @@ public class MainViewModel extends ViewModelObservable { + private static final String OFFLINE_MODE_PREF_KEY = "isOffline"; + private final AppState appState; private final Retrofit retrofit; private final TranslationService translationService; @@ -47,6 +50,7 @@ public class MainViewModel extends ViewModelObservable { private final Resources resources; private final ClipboardManager clipboardManager; private final Vibrator vibrator; + private final SharedPreferences sharedPreferences; private String text; private String word; @@ -65,7 +69,8 @@ public MainViewModel(final AppState appState, final PublishSubject executeActionSubject, final Resources resources, final ClipboardManager clipboardManager, - final Vibrator vibrator) { + final Vibrator vibrator, + final SharedPreferences sharedPreferences) { this.appState = appState; this.retrofit = retrofit; this.translationService = translationService; @@ -74,8 +79,10 @@ public MainViewModel(final AppState appState, this.resources = resources; this.clipboardManager = clipboardManager; this.vibrator = vibrator; + this.sharedPreferences = sharedPreferences; this.adapter = getEmptyAdapter(); this.scrollPosition = 0; + this.appState.isOfflineMode = this.sharedPreferences.getBoolean(OFFLINE_MODE_PREF_KEY, false); } @Bindable @@ -220,4 +227,12 @@ private MyAdapter getEmptyAdapter() { String langTo = LANG_ORDER_STR[toLanguageIx]; return new MyAdapter(Collections.EMPTY_LIST, translationService, clipboardManager, vibrator, executeActionSubject, resources, langFrom, langTo); } + + @Override + public void onCleared() { + super.onCleared(); + SharedPreferences.Editor edit = sharedPreferences.edit(); + edit.putBoolean(OFFLINE_MODE_PREF_KEY, appState.isOfflineMode); + edit.apply(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/usharik/seznamslovnik/di/ServiceModule.java b/app/src/main/java/com/usharik/seznamslovnik/di/ServiceModule.java index 8cb2d5c..1c360ee 100755 --- a/app/src/main/java/com/usharik/seznamslovnik/di/ServiceModule.java +++ b/app/src/main/java/com/usharik/seznamslovnik/di/ServiceModule.java @@ -3,6 +3,7 @@ import android.app.Application; import android.content.ClipboardManager; import android.content.Context; +import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Vibrator; @@ -86,4 +87,10 @@ Vibrator provideVibrator(Application application) { Resources provideResources(Application application) { return application.getResources(); } + + @Provides + @Singleton + SharedPreferences provideSharedPrefences(Application application) { + return application.getSharedPreferences("seznam_slovnik.prefences", Context.MODE_PRIVATE); + } }