diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index c0759387..efbcd45d 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -75,22 +75,24 @@ import com.github.dfa.diaspora_android.ui.theme.CustomFragment; import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; import com.github.dfa.diaspora_android.ui.theme.ThemedActivity; import com.github.dfa.diaspora_android.ui.theme.ThemedAlertDialogBuilder; +import com.github.dfa.diaspora_android.util.ActivityUtils; +import com.github.dfa.diaspora_android.util.AndroidBug5497Workaround; import com.github.dfa.diaspora_android.util.AppLog; import com.github.dfa.diaspora_android.util.AppSettings; import com.github.dfa.diaspora_android.util.DiasporaUrlHelper; -import com.github.dfa.diaspora_android.util.ActivityUtils; import com.github.dfa.diaspora_android.web.BrowserFragment; import com.github.dfa.diaspora_android.web.ContextMenuWebView; import com.github.dfa.diaspora_android.web.ProxyHandler; import com.github.dfa.diaspora_android.web.WebHelper; import com.github.dfa.diaspora_android.web.custom_tab.CustomTabActivityHelper; +import net.gsantner.opoc.util.SimpleMarkdownParser; + import java.io.IOException; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; -import net.gsantner.opoc.util.SimpleMarkdownParser; public class MainActivity extends ThemedActivity implements NavigationView.OnNavigationItemSelectedListener, @@ -116,7 +118,7 @@ public class MainActivity extends ThemedActivity private App app; private CustomTabActivityHelper customTabActivityHelper; - private AppSettings appSettings; + private AppSettings _appSettings; private DiasporaUrlHelper urls; private DiasporaUserProfile diasporaUserProfile; private final Handler uiHandler = new Handler(); @@ -170,15 +172,21 @@ public class MainActivity extends ThemedActivity AppLog.v(this, "onCreate()"); // Bind UI + if (AppSettings.get().isEditorStatusBarHidden()) { + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + } setContentView(R.layout.main__activity); ButterKnife.bind(this); + if (AppSettings.get().isEditorStatusBarHidden()) { + AndroidBug5497Workaround.assistActivity(this); + } app = (App) getApplication(); - appSettings = app.getSettings(); + _appSettings = app.getSettings(); diasporaUserProfile = app.getDiasporaUserProfile(); diasporaUserProfile.setCallbackHandler(uiHandler); diasporaUserProfile.setListener(this); - urls = new DiasporaUrlHelper(appSettings); + urls = new DiasporaUrlHelper(_appSettings); customTabActivityHelper = new CustomTabActivityHelper(); customTabActivityHelper.setConnectionCallback(this); ProxyHandler.getInstance().updateProxySettings(this); @@ -204,7 +212,7 @@ public class MainActivity extends ThemedActivity } }); - if (!appSettings.hasPod()) { + if (!_appSettings.hasPod()) { AppLog.d(this, "We have no pod. Show PodSelectionFragment"); updateNavigationViewEntryVisibilities(); showFragment(getFragment(PodSelectionFragment.TAG)); @@ -222,7 +230,7 @@ public class MainActivity extends ThemedActivity // Show first start dialog try { SimpleMarkdownParser mdParser = SimpleMarkdownParser.get().setDefaultSmpFilter(SimpleMarkdownParser.FILTER_ANDROID_TEXTVIEW); - if (appSettings.isAppFirstStart()) { + if (_appSettings.isAppFirstStart()) { mdParser.parse( getResources().openRawResource(R.raw.license), ""); String html = mdParser.getHtml() @@ -231,8 +239,8 @@ public class MainActivity extends ThemedActivity + mdParser.parse(getResources().openRawResource(R.raw.license_third_party), ""); html = mdParser.setHtml(html).removeMultiNewlines().getHtml(); ActivityUtils.get(this).showDialogWithHtmlTextView(R.string.about_activity__title_about_license, html); - appSettings.isAppCurrentVersionFirstStart(); - } else if (appSettings.isAppCurrentVersionFirstStart()) { + _appSettings.isAppCurrentVersionFirstStart(); + } else if (_appSettings.isAppCurrentVersionFirstStart()) { SimpleMarkdownParser smp = new SimpleMarkdownParser().parse( getResources().openRawResource(R.raw.changelog), ""); ActivityUtils.get(this).showDialogWithHtmlTextView(R.string.changelog, smp.getHtml()); @@ -361,7 +369,7 @@ public class MainActivity extends ThemedActivity AppLog.v(this, "Fragment was not visible. Replace it."); fm.beginTransaction().addToBackStack(null).replace(R.id.fragment_container, fragment, fragment.getFragmentTag()).commit(); invalidateOptionsMenu(); - if (appSettings.isIntellihideToolbars() && fragment.isAllowedIntellihide()) { + if (_appSettings.isIntellihideToolbars() && fragment.isAllowedIntellihide()) { this.enableToolbarHiding(); } else { this.disableToolbarHiding(); @@ -390,7 +398,7 @@ public class MainActivity extends ThemedActivity navProfilePictureArea.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { navDrawer.closeDrawer(GravityCompat.START); - if (!appSettings.getProfileId().equals("")) { + if (!_appSettings.getProfileId().equals("")) { openDiasporaUrl(urls.getProfileUrl()); } } @@ -399,13 +407,13 @@ public class MainActivity extends ThemedActivity navheaderDescription = ButterKnife.findById(navHeader, R.id.podselection__podupti_notice); navheaderImage = ButterKnife.findById(navHeader, R.id.navheader_user_image); - if (!appSettings.getName().equals("")) { - navheaderTitle.setText(appSettings.getName()); + if (!_appSettings.getName().equals("")) { + navheaderTitle.setText(_appSettings.getName()); } - if (appSettings.getPod() != null) { - navheaderDescription.setText(appSettings.getPod().getName()); + if (_appSettings.getPod() != null) { + navheaderDescription.setText(_appSettings.getPod().getName()); } - String avatarUrl = appSettings.getAvatarUrl(); + String avatarUrl = _appSettings.getAvatarUrl(); if (!avatarUrl.equals("")) { //Display app launcher icon instead of default avatar asset //(Which would by the way not load because of missing pod domain prefix in the url) @@ -433,26 +441,26 @@ public class MainActivity extends ThemedActivity navMenu.setGroupVisible(navMenu.findItem(R.id.nav_exit).getGroupId(), true); // Hide by app settings - navMenu.findItem(R.id.nav_exit).setVisible(appSettings.isVisibleInNavExit()); - navMenu.findItem(R.id.nav_activities).setVisible(appSettings.isVisibleInNavActivities()); - navMenu.findItem(R.id.nav_aspects).setVisible(appSettings.isVisibleInNavAspects()); - navMenu.findItem(R.id.nav_contacts).setVisible(appSettings.isVisibleInNavContacts()); - navMenu.findItem(R.id.nav_commented).setVisible(appSettings.isVisibleInNavCommented()); - navMenu.findItem(R.id.nav_followed_tags).setVisible(appSettings.isVisibleInNavFollowed_tags()); - navMenu.findItem(R.id.nav_about).setVisible(appSettings.isVisibleInNavHelp_license()); - navMenu.findItem(R.id.nav_liked).setVisible(appSettings.isVisibleInNavLiked()); - navMenu.findItem(R.id.nav_mentions).setVisible(appSettings.isVisibleInNavMentions()); - navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile()); - navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities()); + navMenu.findItem(R.id.nav_exit).setVisible(_appSettings.isVisibleInNavExit()); + navMenu.findItem(R.id.nav_activities).setVisible(_appSettings.isVisibleInNavActivities()); + navMenu.findItem(R.id.nav_aspects).setVisible(_appSettings.isVisibleInNavAspects()); + navMenu.findItem(R.id.nav_contacts).setVisible(_appSettings.isVisibleInNavContacts()); + navMenu.findItem(R.id.nav_commented).setVisible(_appSettings.isVisibleInNavCommented()); + navMenu.findItem(R.id.nav_followed_tags).setVisible(_appSettings.isVisibleInNavFollowed_tags()); + navMenu.findItem(R.id.nav_about).setVisible(_appSettings.isVisibleInNavHelp_license()); + navMenu.findItem(R.id.nav_liked).setVisible(_appSettings.isVisibleInNavLiked()); + navMenu.findItem(R.id.nav_mentions).setVisible(_appSettings.isVisibleInNavMentions()); + navMenu.findItem(R.id.nav_profile).setVisible(_appSettings.isVisibleInNavProfile()); + navMenu.findItem(R.id.nav_public).setVisible(_appSettings.isVisibleInNavPublic_activities()); navMenu.findItem(R.id.nav_stream).setVisible(true); - navMenu.findItem(R.id.nav_statistics).setVisible(appSettings.isVisibleInNavStatistics()); - navMenu.findItem(R.id.nav_reports).setVisible(appSettings.isVisibleInNavReports()); - navMenu.findItem(R.id.nav_toggle_desktop_page).setVisible(appSettings.isVisibleInNavToggleMobileDesktop()); - navMenu.findItem(R.id.nav_dandelion).setVisible(appSettings.isVisibleInNavDandelionAccount()); + navMenu.findItem(R.id.nav_statistics).setVisible(_appSettings.isVisibleInNavStatistics()); + navMenu.findItem(R.id.nav_reports).setVisible(_appSettings.isVisibleInNavReports()); + navMenu.findItem(R.id.nav_toggle_desktop_page).setVisible(_appSettings.isVisibleInNavToggleMobileDesktop()); + navMenu.findItem(R.id.nav_dandelion).setVisible(_appSettings.isVisibleInNavDandelionAccount()); // Hide whole group (for logged in use) if no pod was selected - if (!appSettings.hasPod()) { + if (!_appSettings.hasPod()) { navMenu.setGroupVisible(navMenu.findItem(R.id.nav_exit).getGroupId(), false); } } @@ -465,7 +473,7 @@ public class MainActivity extends ThemedActivity @OnClick(R.id.main__topbar) public void onToolBarClicked(View view) { AppLog.i(this, "onToolBarClicked()"); - if (appSettings.isTopbarStreamShortcutEnabled() && appSettings.hasPod()) { + if (_appSettings.isTopbarStreamShortcutEnabled() && _appSettings.hasPod()) { onNavigationItemSelected(navView.getMenu().findItem(R.id.nav_stream)); } } @@ -512,7 +520,7 @@ public class MainActivity extends ThemedActivity } } else if (ACTION_CHANGE_ACCOUNT.equals(action)) { AppLog.v(this, "Reset pod data and show PodSelectionFragment"); - appSettings.setPod(null); + _appSettings.setPod(null); runOnUiThread(new Runnable() { public void run() { navheaderTitle.setText(R.string.app_name); @@ -645,8 +653,11 @@ public class MainActivity extends ThemedActivity LocalBroadcastManager.getInstance(this).registerReceiver(brSetTitle, new IntentFilter(ACTION_UPDATE_TITLE_FROM_URL)); LocalBroadcastManager.getInstance(this).registerReceiver(brOpenExternalLink, new IntentFilter(ACTION_OPEN_EXTERNAL_URL)); invalidateOptionsMenu(); - this.appSettings = getAppSettings(); - if (appSettings.isIntellihideToolbars()) { + _appSettings = getAppSettings(); + if (_appSettings.isRecreateMainActivity()){ + recreate(); + } + if (_appSettings.isIntellihideToolbars()) { enableToolbarHiding(); } else { disableToolbarHiding(); @@ -676,7 +687,7 @@ public class MainActivity extends ThemedActivity ///Hide bottom toolbar toolbarBottom.setVisibility(View.GONE); } else { - getMenuInflater().inflate(appSettings.isExtendedNotificationsActivated() ? + getMenuInflater().inflate(_appSettings.isExtendedNotificationsActivated() ? R.menu.main__menu_top__notifications_dropdown : R.menu.main__menu_top, menu); getMenuInflater().inflate(R.menu.main__menu_bottom, toolbarBottom.getMenu()); top.onCreateBottomOptionsMenu(toolbarBottom.getMenu(), getMenuInflater()); @@ -719,7 +730,7 @@ public class MainActivity extends ThemedActivity AppLog.i(this, "onOptionsItemSelected()"); switch (item.getItemId()) { case R.id.action_notifications: { - if (appSettings.isExtendedNotificationsActivated()) { + if (_appSettings.isExtendedNotificationsActivated()) { return true; } //Otherwise we execute the action of action_notifications_all @@ -837,7 +848,7 @@ public class MainActivity extends ThemedActivity } }; - final AlertDialog dialog = new ThemedAlertDialogBuilder(this, appSettings) + final AlertDialog dialog = new ThemedAlertDialogBuilder(this, _appSettings) .setView(layout).setTitle(R.string.search_alert_title) .setCancelable(true) .setPositiveButton(R.string.search_alert_tag, clickListener) @@ -943,7 +954,7 @@ public class MainActivity extends ThemedActivity private void setSharedTexts(String sharedSubject, String sharedBody) { AppLog.i(this, "setSharedTexts()"); String body = WebHelper.replaceUrlWithMarkdown(sharedBody); - if (appSettings.isAppendSharedViaApp()) { + if (_appSettings.isAppendSharedViaApp()) { AppLog.v(this, "Append app reference to shared text"); body = body + "\n\n" + getString(R.string.shared_via_app); } @@ -1030,7 +1041,7 @@ public class MainActivity extends ThemedActivity break; case R.id.nav_profile: { - if (!appSettings.getProfileId().equals("")) { + if (!_appSettings.getProfileId().equals("")) { openDiasporaUrl(urls.getProfileUrl()); } } @@ -1197,9 +1208,9 @@ public class MainActivity extends ThemedActivity protected void applyColorToViews() { ThemeHelper.updateToolbarColor(toolbarTop); ThemeHelper.updateActionMenuViewColor(toolbarBottom); - navDrawerLayout.setBackgroundColor(appSettings.getPrimaryColor()); - navProfilePictureArea.setBackgroundColor(appSettings.getPrimaryColor()); - if (appSettings.isAmoledColorMode()) { + navDrawerLayout.setBackgroundColor(_appSettings.getPrimaryColor()); + navProfilePictureArea.setBackgroundColor(_appSettings.getPrimaryColor()); + if (_appSettings.isAmoledColorMode()) { navView.setItemTextColor(ColorStateList.valueOf(Color.GRAY)); navView.setItemIconTintList(ColorStateList.valueOf(Color.GRAY)); navView.setBackgroundColor(Color.BLACK); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java index e5fff475..b4b040f8 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java @@ -38,11 +38,6 @@ import butterknife.ButterKnife; import uz.shift.colorpicker.LineColorPicker; import uz.shift.colorpicker.OnColorChangedListener; -/** - * SettingsActivity - * Created by vanitas on 24.10.16. - */ - public class SettingsActivity extends ThemedActivity implements SharedPreferences.OnSharedPreferenceChangeListener { //Toolbar @@ -192,6 +187,10 @@ public class SettingsActivity extends ThemedActivity implements SharedPreference ((SettingsActivity) getActivity()).showFragment(SettingsFragmentDebugging.TAG, true); return true; } + /** Usability */ + else if (settings.isKeyEqual(key, R.string.pref_key__is_overview_statusbar_hidden)){ + AppSettings.get().setRecreateMainActivity(true); + } /** Network */ else if (settings.isKeyEqual(key, R.string.pref_key__clear_cache)) { Intent intent = new Intent(getActivity(), MainActivity.class); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AndroidBug5497Workaround.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AndroidBug5497Workaround.java new file mode 100644 index 00000000..4a9afbda --- /dev/null +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AndroidBug5497Workaround.java @@ -0,0 +1,58 @@ +package com.github.dfa.diaspora_android.util; + + +import android.app.Activity; +import android.graphics.Rect; +import android.view.View; +import android.view.ViewTreeObserver; +import android.widget.FrameLayout; + +// From https://stackoverflow.com/a/19494006 +public class AndroidBug5497Workaround { + + // For more information, see https://code.google.com/p/android/issues/detail?id=5497 + // To use this class, simply invoke assistActivity() on an Activity that already has its content view set. + + public static void assistActivity(Activity activity) { + new AndroidBug5497Workaround(activity); + } + + private View mChildOfContent; + private int usableHeightPrevious; + private FrameLayout.LayoutParams frameLayoutParams; + + private AndroidBug5497Workaround(Activity activity) { + FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content); + mChildOfContent = content.getChildAt(0); + mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + public void onGlobalLayout() { + possiblyResizeChildOfContent(); + } + }); + frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams(); + } + + private void possiblyResizeChildOfContent() { + int usableHeightNow = computeUsableHeight(); + if (usableHeightNow != usableHeightPrevious) { + int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight(); + int heightDifference = usableHeightSansKeyboard - usableHeightNow; + if (heightDifference > (usableHeightSansKeyboard / 4)) { + // keyboard probably just became visible + frameLayoutParams.height = usableHeightSansKeyboard - heightDifference; + } else { + // keyboard probably just became hidden + frameLayoutParams.height = usableHeightSansKeyboard; + } + mChildOfContent.requestLayout(); + usableHeightPrevious = usableHeightNow; + } + } + + private int computeUsableHeight() { + Rect r = new Rect(); + mChildOfContent.getWindowVisibleDisplayFrame(r); + return (r.bottom - r.top); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java index c25a9420..2a40e2a4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java @@ -26,13 +26,13 @@ import com.github.dfa.diaspora_android.data.DiasporaAspect; import com.github.dfa.diaspora_android.data.DiasporaPodList.DiasporaPod; import com.github.dfa.diaspora_android.web.ProxyHandler; +import net.gsantner.opoc.util.AppSettingsBase; + import org.json.JSONException; import org.json.JSONObject; import java.util.List; -import net.gsantner.opoc.util.AppSettingsBase; - /** * Settings * Created by gsantner (https://gsantner.github.io/) on 20.03.16. Part of dandelion*. @@ -81,7 +81,7 @@ public class AppSettings extends AppSettingsBase { } public void setProfileId(String profileId) { - setString(R.string.pref_key__podprofile_id, profileId,prefPod); + setString(R.string.pref_key__podprofile_id, profileId, prefPod); } public boolean isLoadImages() { @@ -103,24 +103,24 @@ public class AppSettings extends AppSettingsBase { } public String getAvatarUrl() { - return getString(R.string.pref_key__podprofile_avatar_url, "",prefPod); + return getString(R.string.pref_key__podprofile_avatar_url, "", prefPod); } public void setAvatarUrl(String avatarUrl) { - setString(R.string.pref_key__podprofile_avatar_url, avatarUrl,prefPod); + setString(R.string.pref_key__podprofile_avatar_url, avatarUrl, prefPod); } public String getName() { - return getString(R.string.pref_key__podprofile_name, "",prefPod); + return getString(R.string.pref_key__podprofile_name, "", prefPod); } public void setName(String name) { - setString(R.string.pref_key__podprofile_name, name,prefPod); + setString(R.string.pref_key__podprofile_name, name, prefPod); } public DiasporaPod getPod() { if (currentPod0Cached == null) { - String pref = getString(R.string.pref_key__current_pod_0, "",prefPod); + String pref = getString(R.string.pref_key__current_pod_0, "", prefPod); try { currentPod0Cached = new DiasporaPod().fromJson(new JSONObject(pref)); @@ -134,22 +134,22 @@ public class AppSettings extends AppSettingsBase { public void setPod(DiasporaPod pod) { try { setString(R.string.pref_key__current_pod_0, - pod == null ? null : pod.toJson().toString(),prefPod); + pod == null ? null : pod.toJson().toString(), prefPod); currentPod0Cached = pod; } catch (JSONException ignored) { } } public boolean hasPod() { - return !getString(R.string.pref_key__current_pod_0, "",prefPod).equals(""); + return !getString(R.string.pref_key__current_pod_0, "", prefPod).equals(""); } public void setPodAspects(DiasporaAspect[] aspects) { - setStringArray(R.string.pref_key__podprofile_aspects, aspects,prefPod); + setStringArray(R.string.pref_key__podprofile_aspects, aspects, prefPod); } public DiasporaAspect[] getAspects() { - String[] s = getStringArray(R.string.pref_key__podprofile_aspects,prefPod); + String[] s = getStringArray(R.string.pref_key__podprofile_aspects, prefPod); DiasporaAspect[] aspects = new DiasporaAspect[s.length]; for (int i = 0; i < aspects.length; i++) { aspects[i] = new DiasporaAspect(s[i]); @@ -158,43 +158,43 @@ public class AppSettings extends AppSettingsBase { } public String[] getFollowedTags() { - return getStringArray(R.string.pref_key__podprofile_followed_tags,prefPod); + return getStringArray(R.string.pref_key__podprofile_followed_tags, prefPod); } public void setFollowedTags(String[] values) { - setStringArray(R.string.pref_key__podprofile_followed_tags, values,prefPod); + setStringArray(R.string.pref_key__podprofile_followed_tags, values, prefPod); } public String[] getFollowedTagsFavs() { - return getStringArray(R.string.pref_key__podprofile_followed_tags_favs,prefPod); + return getStringArray(R.string.pref_key__podprofile_followed_tags_favs, prefPod); } public void setFollowedTagsFavs(List values) { - setStringList(R.string.pref_key__podprofile_followed_tags_favs, values,prefPod); + setStringList(R.string.pref_key__podprofile_followed_tags_favs, values, prefPod); } public String[] getAspectFavs() { - return getStringArray(R.string.pref_key__podprofile_aspects_favs,prefPod); + return getStringArray(R.string.pref_key__podprofile_aspects_favs, prefPod); } public void setAspectFavs(List values) { - setStringList(R.string.pref_key__podprofile_aspects_favs, values,prefPod); + setStringList(R.string.pref_key__podprofile_aspects_favs, values, prefPod); } public int getUnreadMessageCount() { - return getInt(R.string.pref_key__podprofile_unread_message_count, 0,prefPod); + return getInt(R.string.pref_key__podprofile_unread_message_count, 0, prefPod); } public void setUnreadMessageCount(int unreadMessageCount) { - setInt(R.string.pref_key__podprofile_unread_message_count, unreadMessageCount,prefPod); + setInt(R.string.pref_key__podprofile_unread_message_count, unreadMessageCount, prefPod); } public int getNotificationCount() { - return getInt(R.string.pref_key__podprofile_notification_count, 0,prefPod); + return getInt(R.string.pref_key__podprofile_notification_count, 0, prefPod); } public void setNotificationCount(int notificationCount) { - setInt(R.string.pref_key__podprofile_notification_count, notificationCount,prefPod); + setInt(R.string.pref_key__podprofile_notification_count, notificationCount, prefPod); } public boolean isAppendSharedViaApp() { @@ -274,7 +274,7 @@ public class AppSettings extends AppSettingsBase { } public boolean isIntellihideToolbars() { - return getBool(R.string.pref_key__intellihide_toolbars, true); + return getBool(R.string.pref_key__intellihide_toolbars, false); } public boolean isChromeCustomTabsEnabled() { @@ -370,11 +370,11 @@ public class AppSettings extends AppSettingsBase { } public long getLastVisitedPositionInStream() { - return getLong(R.string.pref_key__podprofile_last_stream_position, -1,prefPod); + return getLong(R.string.pref_key__podprofile_last_stream_position, -1, prefPod); } public void setLastVisitedPositionInStream(long timestamp) { - setLong(R.string.pref_key__podprofile_last_stream_position, timestamp,prefPod); + setLong(R.string.pref_key__podprofile_last_stream_position, timestamp, prefPod); } public void setLanguage(String value) { @@ -434,4 +434,18 @@ public class AppSettings extends AppSettingsBase { public boolean isAdBlockEnabled() { return getBool(R.string.pref_key__adblock_enable, true); } + + public boolean isEditorStatusBarHidden() { + return getBool(R.string.pref_key__is_overview_statusbar_hidden, false); + } + + public void setRecreateMainActivity(boolean value) { + setBool(R.string.pref_key__recreate_main_activity, value); + } + + public boolean isRecreateMainActivity() { + boolean value = getBool(R.string.pref_key__recreate_main_activity, false); + setRecreateMainActivity(false); + return value; + } } diff --git a/app/src/main/res/drawable/ic_visibility_black_24dp.xml b/app/src/main/res/drawable/ic_visibility_black_24dp.xml new file mode 100644 index 00000000..e02f1d19 --- /dev/null +++ b/app/src/main/res/drawable/ic_visibility_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3a68d9b2..bbf94f0a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -77,4 +77,6 @@ nachträglich erteilen. Öffne dafür: Systemeinstellungen - Apps - dandelion*. Pod Adresse Fehlender Wert Zuletzt besuchte Seite im Stream aufrufen? + Statusleiste in Hauptansicht verstecken + Statusleiste verstecken diff --git a/app/src/main/res/values/strings-not_translatable.xml b/app/src/main/res/values/strings-not_translatable.xml index 9259cb48..0d4c0567 100644 --- a/app/src/main/res/values/strings-not_translatable.xml +++ b/app/src/main/res/values/strings-not_translatable.xml @@ -9,7 +9,7 @@ Tor - + HTTP @string/new_post @string/search @@ -40,10 +40,22 @@ @string/statistics @string/contacts + + Chrome Custom Tabs + wasProxyEnabled + @string/contacts + @string/about_activity__title_debug_info + @string/fragment_debug__section_log + @string/fragment_debug__section_log + @string/fragment_debug__section_log_spam + @string/pref_desc__http_proxy_enabled + @string/nav_menu_more + - @string/nav_menu_more pref_key__current_pod_0 pref_key_font_size pref_key__language @@ -60,8 +72,6 @@ pref_key__topbar_stream_shortcut pref_key__app_first_start pref_key__app_first_start_current_version - - pref_key__primary_color__amoled_mode @string/pref_key__primary_color_shade pref_key_primary_color_base @@ -69,15 +79,10 @@ @string/pref_key__accent_color_shade pref_key_accent_color_base pref_key_accent_color_shade - pref_key_append_shared_via_app pref_key_proxy_enabled pref_key_proxy_host pref_key_proxy_port - wasProxyEnabled - - - pref_key__screen_rotation pref_key__visibility_navslider__exit pref_key__visibility_nav__help_license @@ -94,8 +99,6 @@ pref_key__visibility_nav__statistics pref_key__visibility_nav__toggle_mobile_desktop pref_key__visibility_nav__dandelion_account - - pref_key__podprofile_avatar_url pref_key__podprofile_name pref_key__podprofile_id @@ -105,26 +108,10 @@ pref_key__podprofile_followed_tags_favs pref_key__podprofile_unread_message_count pref_key__podprofile_notification_count - pref_key__podprofile_last_stream_position - @string/contacts - - + pref_key__podprofile_last_stream_position pref_key__logging_spam_enabled pref_key__logging_enabled pref_key__wipe_settings - @string/about_activity__title_debug_info - @string/fragment_debug__section_log - @string/fragment_debug__section_log - @string/fragment_debug__section_log_spam - - - @string/pref_desc__http_proxy_enabled - HTTP - Chrome Custom Tabs - - - - pref_key__title__appearance pref_key__title__pod_settings pref_key__title__network @@ -132,12 +119,11 @@ pref_key__title__debugging pref_key__title__proxy pref_key__title__themes - - pref_key__cat_themes pref_key__cat_nav_slider pref_key__cat_proxy pref_key__cat_debugging - pref_key__adblock_enable + pref_key__is_overview_statusbar_hidden + pref_key__recreate_main_activity diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index afdc6564..29703b48 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,4 +94,6 @@ Pod address Missing value Jump to last visited page in stream? + Hide statusbar at main view + Hide statusbar diff --git a/app/src/main/res/xml/preferences__master.xml b/app/src/main/res/xml/preferences__master.xml index d6e0fed9..47324b73 100644 --- a/app/src/main/res/xml/preferences__master.xml +++ b/app/src/main/res/xml/preferences__master.xml @@ -43,12 +43,19 @@ android:title="@string/pref_cat__operability"> + +