summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-30 12:14:55 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-09-30 15:57:28 +0000
commit153cd0e7893676afb04bd9b9dbf26933d812609f (patch)
tree433510a8ea2cf03dd8081c9763f4a3ae11e915f2 /android/src
parent327dcd712db22ef9551d3d22b6a2e0487fdd77fb (diff)
downloadmullvadvpn-153cd0e7893676afb04bd9b9dbf26933d812609f.tar.xz
mullvadvpn-153cd0e7893676afb04bd9b9dbf26933d812609f.zip
Hide items in settings screen when logged out
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt44
-rw-r--r--android/src/main/res/layout/settings.xml2
2 files changed, 40 insertions, 6 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
index a9ebe5d40f..6a02efbe3c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
@@ -17,23 +17,30 @@ import android.widget.Button
import android.widget.ImageButton
import android.widget.TextView
+import net.mullvad.mullvadvpn.dataproxy.AccountCache
import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache
class SettingsFragment : Fragment() {
private lateinit var parentActivity: MainActivity
+
+ private lateinit var accountCache: AccountCache
private lateinit var versionInfoCache: AppVersionInfoCache
- private lateinit var remainingTimeLabel: RemainingTimeLabel
+ private lateinit var accountMenu: View
private lateinit var appVersionWarning: View
private lateinit var appVersionLabel: TextView
private lateinit var appVersionFooter: View
+ private lateinit var remainingTimeLabel: RemainingTimeLabel
+ private lateinit var wireguardKeysMenu: View
+ private var updateLoggedInStatusJob: Job? = null
private var updateVersionInfoJob: Job? = null
override fun onAttach(context: Context) {
super.onAttach(context)
parentActivity = context as MainActivity
+ accountCache = parentActivity.accountCache
versionInfoCache = parentActivity.appVersionInfoCache
}
@@ -52,12 +59,17 @@ class SettingsFragment : Fragment() {
parentActivity.quit()
}
- view.findViewById<View>(R.id.account).setOnClickListener {
- openSubFragment(AccountFragment())
+ accountMenu = view.findViewById<View>(R.id.account).apply {
+ setOnClickListener {
+ openSubFragment(AccountFragment())
+ }
}
- view.findViewById<View>(R.id.wireguard_keys).setOnClickListener {
- openSubFragment(WireguardKeyFragment())
+ wireguardKeysMenu = view.findViewById<View>(R.id.wireguard_keys).apply {
+ setOnClickListener {
+ openSubFragment(WireguardKeyFragment())
+ }
}
+
view.findViewById<View>(R.id.app_version).setOnClickListener {
openLink(R.string.download_url)
}
@@ -65,17 +77,24 @@ class SettingsFragment : Fragment() {
openSubFragment(ProblemReportFragment())
}
- remainingTimeLabel = RemainingTimeLabel(parentActivity, view)
appVersionWarning = view.findViewById(R.id.app_version_warning)
appVersionLabel = view.findViewById<TextView>(R.id.app_version_label)
appVersionFooter = view.findViewById(R.id.app_version_footer)
+ remainingTimeLabel = RemainingTimeLabel(parentActivity, view)
return view
}
override fun onResume() {
super.onResume()
+
remainingTimeLabel.onResume()
+
+ accountCache.onAccountDataChange = { account, _expiry ->
+ updateLoggedInStatusJob?.cancel()
+ updateLoggedInStatusJob = updateLoggedInStatus(account != null)
+ }
+
versionInfoCache.onUpdate = {
updateVersionInfoJob?.cancel()
updateVersionInfoJob = updateVersionInfo()
@@ -84,11 +103,13 @@ class SettingsFragment : Fragment() {
override fun onPause() {
versionInfoCache.onUpdate = null
+ accountCache.onAccountDataChange = null
remainingTimeLabel.onPause()
super.onPause()
}
override fun onDestroyView() {
+ updateLoggedInStatusJob?.cancel()
updateVersionInfoJob?.cancel()
super.onDestroyView()
}
@@ -113,6 +134,17 @@ class SettingsFragment : Fragment() {
startActivity(intent)
}
+ private fun updateLoggedInStatus(loggedIn: Boolean) = GlobalScope.launch(Dispatchers.Main) {
+ val visibility = if (loggedIn) {
+ View.VISIBLE
+ } else {
+ View.GONE
+ }
+
+ accountMenu.visibility = visibility
+ wireguardKeysMenu.visibility = visibility
+ }
+
private fun updateVersionInfo() = GlobalScope.launch(Dispatchers.Main) {
appVersionLabel.setText(versionInfoCache.version ?: "")
diff --git a/android/src/main/res/layout/settings.xml b/android/src/main/res/layout/settings.xml
index 7b4161406a..15606cf756 100644
--- a/android/src/main/res/layout/settings.xml
+++ b/android/src/main/res/layout/settings.xml
@@ -32,6 +32,7 @@
android:background="@drawable/cell_button_background"
android:clickable="true"
android:gravity="center"
+ android:visibility="gone"
>
<TextView
android:layout_width="wrap_content"
@@ -72,6 +73,7 @@
android:background="@drawable/cell_button_background"
android:clickable="true"
android:gravity="center"
+ android:visibility="gone"
>
<TextView
android:layout_width="wrap_content"