Skip to content

Commit

Permalink
Hide Sitemaps in drawer
Browse files Browse the repository at this point in the history
The Sitemaps are hidden in the drawer by default, but there's a setting to change that.

See openhab#392
Closes openhab#1305

Signed-off-by: mueller-ma <mueller-ma@users.noreply.github.com>
  • Loading branch information
mueller-ma committed Sep 26, 2019
1 parent 0217a4b commit 0ee75cb
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 3 deletions.
10 changes: 7 additions & 3 deletions mobile/src/main/java/org/openhab/habdroid/ui/MainActivity.kt
Expand Up @@ -100,6 +100,7 @@ import org.openhab.habdroid.util.Constants
import org.openhab.habdroid.util.HttpClient
import org.openhab.habdroid.util.ScreenLockMode
import org.openhab.habdroid.util.Util
import org.openhab.habdroid.util.areSitemapsShownInDrawer
import org.openhab.habdroid.util.getDefaultSitemap
import org.openhab.habdroid.util.getPrefs
import org.openhab.habdroid.util.isDebugModeEnabled
Expand Down Expand Up @@ -335,6 +336,9 @@ class MainActivity : AbstractBaseActivity(), ConnectionFactory.UpdateListener {
if (data.getBooleanExtra(PreferencesActivity.RESULT_EXTRA_SITEMAP_CLEARED, false)) {
executeOrStoreAction(PendingAction.ChooseSitemap())
}
if (data.getBooleanExtra(PreferencesActivity.RESULT_EXTRA_SITEMAP_DRAWER_CHANGED, false)) {
updateSitemapAndHabPanelDrawerItems()
}
if (data.getBooleanExtra(PreferencesActivity.RESULT_EXTRA_THEME_CHANGED, false)) {
recreate()
}
Expand Down Expand Up @@ -659,9 +663,7 @@ class MainActivity : AbstractBaseActivity(), ConnectionFactory.UpdateListener {
manageHabPanelShortcut(props.hasHabPanelInstalled())
val sitemaps = props.sitemaps.sortedWithDefaultName(prefs.getDefaultSitemap())

if (sitemaps.isEmpty()) {
sitemapItem.isVisible = false
} else {
if (sitemaps.isNotEmpty() && prefs.areSitemapsShownInDrawer()) {
sitemapItem.isVisible = true
val menu = sitemapItem.subMenu
menu.clear()
Expand All @@ -670,6 +672,8 @@ class MainActivity : AbstractBaseActivity(), ConnectionFactory.UpdateListener {
val item = menu.add(GROUP_ID_SITEMAPS, sitemap.name.hashCode(), index, sitemap.label)
loadSitemapIcon(sitemap, item)
}
} else {
sitemapItem.isVisible = false
}
}
}
Expand Down
Expand Up @@ -216,6 +216,7 @@ class PreferencesActivity : AbstractBaseActivity() {
val themePref = getPreference(Constants.PREFERENCE_THEME)
val clearCachePref = getPreference(Constants.PREFERENCE_CLEAR_CACHE)
val clearDefaultSitemapPref = getPreference(Constants.PREFERENCE_CLEAR_DEFAULT_SITEMAP)
val showSitemapInDrawerPref = getPreference(Constants.PREFERENCE_SHOW_SITEMAPS_IN_DRAWER)
val ringtonePref = getPreference(Constants.PREFERENCE_TONE)
val fullscreenPreference = getPreference(Constants.PREFERENCE_FULLSCREEN)
val sendDeviceInfoPrefixPref = getPreference(Constants.PREFERENCE_SEND_DEVICE_INFO_PREFIX)
Expand Down Expand Up @@ -269,6 +270,11 @@ class PreferencesActivity : AbstractBaseActivity() {
true
}

showSitemapInDrawerPref.setOnPreferenceChangeListener { _, _ ->
parentActivity.resultIntent.putExtra(RESULT_EXTRA_SITEMAP_DRAWER_CHANGED, true)
true
}

clearDefaultSitemapPref.setOnPreferenceClickListener { preference ->
preference.sharedPreferences.edit { updateDefaultSitemap(null) }
onNoDefaultSitemap(preference)
Expand Down Expand Up @@ -587,6 +593,7 @@ class PreferencesActivity : AbstractBaseActivity() {
companion object {
const val RESULT_EXTRA_THEME_CHANGED = "theme_changed"
const val RESULT_EXTRA_SITEMAP_CLEARED = "sitemap_cleared"
const val RESULT_EXTRA_SITEMAP_DRAWER_CHANGED = "sitemap_drawer_changed"
const val START_EXTRA_SERVER_PROPERTIES = "server_properties"
const val ITEM_UPDATE_WIDGET_ITEM = "item"
const val ITEM_UPDATE_WIDGET_STATE = "state"
Expand Down
Expand Up @@ -46,6 +46,7 @@ object Constants {
const val PREFERENCE_SEND_DEVICE_INFO_PREFIX = "sendDeviceInfoPrefix"
const val PREFERENCE_TASKER_PLUGIN_ENABLED = "taskerPlugin"
const val PREFERENCE_SCREEN_LOCK = "screen_lock"
const val PREFERENCE_SHOW_SITEMAPS_IN_DRAWER = "show_sitemaps"

const val PREV_SERVER_FLAGS = "prevServerFlags"

Expand Down
Expand Up @@ -84,6 +84,10 @@ fun SharedPreferences.isTaskerPluginEnabled(): Boolean {
return getBoolean(Constants.PREFERENCE_TASKER_PLUGIN_ENABLED, false)
}

fun SharedPreferences.areSitemapsShownInDrawer(): Boolean {
return getBoolean(Constants.PREFERENCE_SHOW_SITEMAPS_IN_DRAWER, false)
}

fun SharedPreferences.getString(key: String): String {
return getString(key, "").orEmpty()
}
Expand Down
1 change: 1 addition & 0 deletions mobile/src/main/res/values/strings.xml
Expand Up @@ -341,4 +341,5 @@
<string name="item_update_widget_text">%1$s: %2$s</string>
<string name="item_update_widget_item_picker_title">Select an Item</string>
<string name="item_update_widget_success_toast">%1$s set to %2$s</string>
<string name="settings_show_sitemaps_in_drawer">Show sitemaps in drawer</string>
</resources>
4 changes: 4 additions & 0 deletions mobile/src/main/res/xml/preferences.xml
Expand Up @@ -31,6 +31,10 @@
android:clickable="true"
android:key="default_openhab_clear_default_sitemap"
android:title="@string/settings_clear_default_sitemap" />
<SwitchPreference
android:defaultValue="false"
android:key="show_sitemaps"
android:title="@string/settings_show_sitemaps_in_drawer" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_display_title">
<ListPreference
Expand Down

0 comments on commit 0ee75cb

Please sign in to comment.