From 8c47b9d6947a3ff4f75842f874b882471efcab76 Mon Sep 17 00:00:00 2001
From: pacien
Date: Mon, 20 Aug 2018 17:05:52 +0200
Subject: Generify fragment pager adapter
---
.../activities/common/FragmentListPagerAdapter.kt | 38 ++++++++++++++++++++
.../tincapp/activities/status/StatusActivity.kt | 10 +++++-
.../status/StatusFragmentPagerAdapter.kt | 41 ----------------------
3 files changed, 47 insertions(+), 42 deletions(-)
create mode 100644 app/src/main/java/org/pacien/tincapp/activities/common/FragmentListPagerAdapter.kt
delete mode 100644 app/src/main/java/org/pacien/tincapp/activities/status/StatusFragmentPagerAdapter.kt
diff --git a/app/src/main/java/org/pacien/tincapp/activities/common/FragmentListPagerAdapter.kt b/app/src/main/java/org/pacien/tincapp/activities/common/FragmentListPagerAdapter.kt
new file mode 100644
index 0000000..e4063bf
--- /dev/null
+++ b/app/src/main/java/org/pacien/tincapp/activities/common/FragmentListPagerAdapter.kt
@@ -0,0 +1,38 @@
+/*
+ * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
+ * Copyright (C) 2017-2018 Pacien TRAN-GIRARD
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package org.pacien.tincapp.activities.common
+
+import android.support.v4.app.Fragment
+import android.support.v4.app.FragmentManager
+import android.support.v4.app.FragmentPagerAdapter
+import org.pacien.tincapp.context.App
+
+/**
+ * @param pages ordered list of title and fragment pairs
+ * @author pacien
+ */
+class FragmentListPagerAdapter(private val pages: List>,
+ fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
+
+ private val resources by lazy { App.getResources() }
+
+ override fun getPageTitle(position: Int) = resources.getString(pages[position].first)!!
+ override fun getItem(position: Int) = pages[position].second
+ override fun getCount() = pages.size
+}
diff --git a/app/src/main/java/org/pacien/tincapp/activities/status/StatusActivity.kt b/app/src/main/java/org/pacien/tincapp/activities/status/StatusActivity.kt
index 6627b61..f47df6c 100644
--- a/app/src/main/java/org/pacien/tincapp/activities/status/StatusActivity.kt
+++ b/app/src/main/java/org/pacien/tincapp/activities/status/StatusActivity.kt
@@ -26,8 +26,11 @@ import android.view.MenuItem
import kotlinx.android.synthetic.main.status_activity.*
import org.pacien.tincapp.R
import org.pacien.tincapp.activities.BaseActivity
+import org.pacien.tincapp.activities.common.FragmentListPagerAdapter
import org.pacien.tincapp.activities.common.ProgressModal
import org.pacien.tincapp.activities.start.StartActivity
+import org.pacien.tincapp.activities.status.networkinfo.NetworkInfoFragment
+import org.pacien.tincapp.activities.status.nodes.NodeListFragment
import org.pacien.tincapp.activities.viewlog.ViewLogActivity
import org.pacien.tincapp.intent.Actions
import org.pacien.tincapp.intent.BroadcastMapper
@@ -39,8 +42,13 @@ import org.pacien.tincapp.service.TincVpnService
class StatusActivity : BaseActivity() {
private val vpnService by lazy { TincVpnService }
private val netName by lazy { vpnService.getCurrentNetName() }
- private val pagerAdapter by lazy { StatusFragmentPagerAdapter(supportFragmentManager) }
+ private val pagerAdapter by lazy { FragmentListPagerAdapter(pages, supportFragmentManager) }
private val broadcastMapper = BroadcastMapper(mapOf(Actions.EVENT_DISCONNECTED to this::onVpnShutdown))
+ private val pages = listOf(
+ R.string.status_activity_title_network_info to NetworkInfoFragment(),
+ R.string.status_activity_title_node_list to NodeListFragment()
+ )
+
private var shutdownDialog: AlertDialog? = null
private var listNetworksAfterExit = true
diff --git a/app/src/main/java/org/pacien/tincapp/activities/status/StatusFragmentPagerAdapter.kt b/app/src/main/java/org/pacien/tincapp/activities/status/StatusFragmentPagerAdapter.kt
deleted file mode 100644
index d44ac5c..0000000
--- a/app/src/main/java/org/pacien/tincapp/activities/status/StatusFragmentPagerAdapter.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
- * Copyright (C) 2017-2018 Pacien TRAN-GIRARD
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package org.pacien.tincapp.activities.status
-
-import android.support.v4.app.FragmentManager
-import android.support.v4.app.FragmentPagerAdapter
-import org.pacien.tincapp.R
-import org.pacien.tincapp.activities.status.networkinfo.NetworkInfoFragment
-import org.pacien.tincapp.activities.status.nodes.NodeListFragment
-import org.pacien.tincapp.context.App
-
-/**
- * @author pacien
- */
-class StatusFragmentPagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
- private val resources by lazy { App.getResources() }
- private val pages = listOf(
- R.string.status_activity_title_network_info to NetworkInfoFragment(),
- R.string.status_activity_title_node_list to NodeListFragment()
- )
-
- override fun getPageTitle(position: Int) = resources.getString(pages[position].first)!!
- override fun getItem(position: Int) = pages[position].second
- override fun getCount() = pages.size
-}
--
cgit v1.2.3