From 2750b65cc3775b76c8756e476dc5d0f625af7506 Mon Sep 17 00:00:00 2001 From: Emily Kager Date: Wed, 20 Feb 2019 16:27:11 -0800 Subject: [PATCH] Close #420 - Default Browser Preference reacts to default browser status --- .../settings/DefaultBrowserPreference.kt | 42 +++++++++++++++++++ .../res/layout/preference_default_browser.xml | 13 ++++++ app/src/main/res/xml/preferences.xml | 2 +- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserPreference.kt create mode 100644 app/src/main/res/layout/preference_default_browser.xml diff --git a/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserPreference.kt new file mode 100644 index 000000000..0bb9fdc4d --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserPreference.kt @@ -0,0 +1,42 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.settings + +import android.content.Context +import android.util.AttributeSet +import android.widget.Switch +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import mozilla.components.support.utils.Browsers +import org.mozilla.fenix.R + +class DefaultBrowserPreference : Preference { + + private var switchView: Switch? = null + + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, attributeSetId: Int) : super( + context, + attrs, + attributeSetId + ) + + init { + widgetLayoutResource = R.layout.preference_default_browser + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + switchView = holder.findViewById(R.id.switch_widget) as Switch + + updateSwitch() + } + + private fun updateSwitch() { + val browsers = Browsers.all(context) + switchView?.isChecked = browsers.isDefaultBrowser + } +} diff --git a/app/src/main/res/layout/preference_default_browser.xml b/app/src/main/res/layout/preference_default_browser.xml new file mode 100644 index 000000000..23d504dcd --- /dev/null +++ b/app/src/main/res/layout/preference_default_browser.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 5331e9bf9..ccd6b0abb 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -40,7 +40,7 @@ android:key="@string/pref_key_credit_cards_addresses" android:title="@string/preferences_credit_cards_addresses" /> -