summaryrefslogtreecommitdiff
path: root/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt')
-rw-r--r--main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt80
1 files changed, 80 insertions, 0 deletions
diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt
new file mode 100644
index 00000000..75b87157
--- /dev/null
+++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_Connections.kt
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2012-2016 Arne Schwabe
+ * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ */
+package de.blinkt.openvpn.fragments
+
+import android.os.Build
+import android.os.Bundle
+import android.view.*
+import android.widget.Checkable
+import android.widget.ImageButton
+import android.widget.TextView
+import de.blinkt.openvpn.fragments.Settings_Fragment
+import de.blinkt.openvpn.fragments.ConnectionsAdapter
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.LinearLayoutManager
+import de.blinkt.openvpn.R
+
+class Settings_Connections : Settings_Fragment(), View.OnClickListener {
+ private lateinit var mConnectionsAdapter: ConnectionsAdapter
+ private lateinit var mWarning: TextView
+ private lateinit var mUseRandomRemote: Checkable
+ private lateinit var mRecyclerView: RecyclerView
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setHasOptionsMenu(true)
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
+ inflater.inflate(R.menu.connections, menu)
+ super.onCreateOptionsMenu(menu, inflater)
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
+ )
+ : View? {
+ val v = inflater.inflate(R.layout.connections, container, false)
+ mWarning = v.findViewById<View>(R.id.noserver_active_warning) as TextView
+ mRecyclerView = v.findViewById<View>(R.id.connection_recycler_view) as RecyclerView
+ val dpwidth = (container!!.width / resources.displayMetrics.density).toInt()
+ var columns = dpwidth / 290
+ columns = 1.coerceAtLeast(columns)
+ mConnectionsAdapter = ConnectionsAdapter(activity, this, mProfile)
+
+ //mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(columns, StaggeredGridLayoutManager.VERTICAL));
+ mRecyclerView.setHasFixedSize(true)
+ mRecyclerView.layoutManager =
+ LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
+ mRecyclerView.adapter = mConnectionsAdapter
+ val fab_button = v.findViewById<View>(R.id.add_new_remote) as ImageButton
+ fab_button.setOnClickListener(this)
+ mUseRandomRemote = v.findViewById<View>(R.id.remote_random) as Checkable
+ mUseRandomRemote.isChecked = mProfile.mRemoteRandom
+ mConnectionsAdapter.displayWarningIfNoneEnabled()
+ return v
+ }
+
+ override fun onClick(v: View) {
+ if (v.id == R.id.add_new_remote) {
+ mConnectionsAdapter.addRemote()
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == R.id.add_new_remote) mConnectionsAdapter.addRemote()
+ return super.onOptionsItemSelected(item)
+ }
+
+ override fun savePreferences() {
+ mConnectionsAdapter.saveProfile()
+ mProfile.mRemoteRandom = mUseRandomRemote.isChecked
+ }
+
+ fun setWarningVisible(showWarning: Int) {
+ mWarning.visibility = showWarning
+ }
+} \ No newline at end of file