|
@@ -1,419 +1,465 @@
|
|
|
package com.vpn.fastestvpnservice.fragments
|
|
|
|
|
|
+import android.content.Context
|
|
|
+import android.content.pm.ApplicationInfo
|
|
|
+import android.content.pm.PackageManager
|
|
|
+import android.graphics.Bitmap
|
|
|
+import android.graphics.drawable.Drawable
|
|
|
+import android.os.Bundle
|
|
|
import android.view.*
|
|
|
+import androidx.fragment.app.Fragment
|
|
|
+import androidx.leanback.app.GuidedStepSupportFragment
|
|
|
+import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
+import com.vpn.fastestvpnservice.MainActivity
|
|
|
+import com.vpn.fastestvpnservice.R
|
|
|
+import com.vpn.fastestvpnservice.activities.GuidedActivity
|
|
|
+import com.vpn.fastestvpnservice.adapters.ServerAdapter
|
|
|
+import com.vpn.fastestvpnservice.adapters.SettingsAdapter
|
|
|
+import com.vpn.fastestvpnservice.beans.SelectApplicationEntry
|
|
|
+import com.vpn.fastestvpnservice.beans.Server
|
|
|
+import com.vpn.fastestvpnservice.beans.SettingsData
|
|
|
+import com.vpn.fastestvpnservice.databinding.FragmentServerListBinding
|
|
|
+import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
|
+import com.vpn.fastestvpnservice.interfaces.UpdateServersOnProtocol
|
|
|
+import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
|
|
|
|
|
|
|
|
|
-class TvServerListFragment : BaseFragment()
|
|
|
-// , UpdateServersOnProtocol
|
|
|
+class TvServerListFragment : Fragment(), UpdateServersOnProtocol
|
|
|
{
|
|
|
|
|
|
- // lateinit var serverListViewModel: ServerListViewModel
|
|
|
-// lateinit var serverAdapter: ServerAdapter
|
|
|
-// lateinit var dedicatedServerAdapter: ServerAdapter
|
|
|
-// lateinit var streamingServerAdapter: ServerAdapter
|
|
|
-// lateinit var dvpnServerAdapter: ServerAdapter
|
|
|
-// lateinit var p2pServerAdapter: ServerAdapter
|
|
|
+ lateinit var serverListViewModel: ServerListViewModel
|
|
|
+ lateinit var serverAdapter: ServerAdapter
|
|
|
+ lateinit var dedicatedServerAdapter: ServerAdapter
|
|
|
+ lateinit var streamingServerAdapter: ServerAdapter
|
|
|
+ lateinit var dvpnServerAdapter: ServerAdapter
|
|
|
+ lateinit var p2pServerAdapter: ServerAdapter
|
|
|
// lateinit var favouritesAdapter: FavouritesAdapter
|
|
|
-// lateinit var settingsAdapter: SettingsAdapter
|
|
|
-// var settingsList = ArrayList<SettingsData>()
|
|
|
-//
|
|
|
-// var isServersEnabled: Boolean = false
|
|
|
-// var isDedicatedEnabled: Boolean = false
|
|
|
-// var isStreamingEnabled: Boolean = false
|
|
|
-// var isDvpnEnabled: Boolean = false
|
|
|
-// var isP2PEnabled: Boolean = false
|
|
|
-//
|
|
|
-// override fun onCreateView(
|
|
|
-// inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
|
|
|
-// ): View? {
|
|
|
+ lateinit var settingsAdapter: SettingsAdapter
|
|
|
+ var settingsList = ArrayList<SettingsData>()
|
|
|
+ lateinit var prefHelper: BasePreferenceHelper
|
|
|
+ lateinit var tvServerListBinding: FragmentServerListBinding
|
|
|
+
|
|
|
+ var isServersEnabled: Boolean = false
|
|
|
+ var isDedicatedEnabled: Boolean = false
|
|
|
+ var isStreamingEnabled: Boolean = false
|
|
|
+ var isDvpnEnabled: Boolean = false
|
|
|
+ var isP2PEnabled: Boolean = false
|
|
|
+//
|
|
|
+ override fun onCreateView(
|
|
|
+ inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
|
|
|
+ ): View? {
|
|
|
+ tvServerListBinding = FragmentServerListBinding.inflate(inflater, container, false)
|
|
|
+ return tvServerListBinding.root
|
|
|
// return inflater.inflate(R.layout.fragment_server_list, container, false)
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
-// super.onViewCreated(view, savedInstanceState)
|
|
|
-//// GuidedStepSupportFragment.addAsRoot(requireActivity(), FirstStepFragment(), android.R.id.content)
|
|
|
-//// GuidedStepSupportFragment.add(fragmentManager, FirstStepFragment(), android.R.id.content)
|
|
|
-//
|
|
|
-// serverListViewModel = ServerListViewModel(mainActivity)
|
|
|
-// MainActivity.updateServersOnProtocol = this
|
|
|
-//
|
|
|
-// setAdaptersCallBack()
|
|
|
-// setAdapters()
|
|
|
-// clickListeners()
|
|
|
-// }
|
|
|
-//
|
|
|
-// fun setAdaptersCallBack() {
|
|
|
-// val serversData = prefHelper.getServerData()
|
|
|
-//
|
|
|
-// serversData.forEachIndexed { index, serverData ->
|
|
|
-//// Log.d("servers testing tv 123", "$index,${serverData.name},${serverData.servers?.size}")
|
|
|
-//
|
|
|
-// if (serverData.name?.equals("Servers") == true)
|
|
|
-// {
|
|
|
-// prefHelper.getServerData().get(index).servers?.let { serversList ->
|
|
|
-// serverAdapter = ServerAdapter(
|
|
|
-// mainActivity,
|
|
|
-// R.layout.item_server,
|
|
|
-// prefHelper.getServerData().get(index).servers?.let {
|
|
|
-// serverListViewModel.filterServersWithTvCountries(
|
|
|
-// it
|
|
|
-// )
|
|
|
-// }
|
|
|
-// )
|
|
|
-//
|
|
|
-// val data = serverListViewModel.filterServersWithTvCountries(serversList)
|
|
|
-// if (data.size > 0)
|
|
|
-// {
|
|
|
-//// tvcountries.text = serverData.name
|
|
|
-// tvcountries?.text = "Top Locations"
|
|
|
-// isServersEnabled = true
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// tvcountries?.text = ""
|
|
|
-// isServersEnabled = false
|
|
|
-// }
|
|
|
-//
|
|
|
-// serverAdapter.selectedPosition = 55
|
|
|
-// rv_servers?.layoutManager =
|
|
|
-// LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_servers?.adapter = serverAdapter
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else if (serverData.name?.equals("Dedicated IP") == true)
|
|
|
-// {
|
|
|
-// prefHelper.getServerData().get(index).servers?.let { dedicated ->
|
|
|
-//
|
|
|
-//// Log.d("ser_test_ded", "Dedicated IP $isDedicatedEnabled")
|
|
|
-// dedicatedServerAdapter = ServerAdapter(
|
|
|
-// mainActivity,
|
|
|
-// R.layout.item_server,
|
|
|
-// prefHelper.getServerData().get(index).servers?.let {
|
|
|
-// serverListViewModel.filterServersByISOTV(
|
|
|
-// it
|
|
|
-// )
|
|
|
-// }
|
|
|
-// )
|
|
|
-//
|
|
|
-// val data = serverListViewModel.filterServersByISOTV(dedicated)
|
|
|
-// if (data.size > 0)
|
|
|
-// {
|
|
|
-//// Log.d("ser_test_ded", "Dedicated size>0 $isDedicatedEnabled")
|
|
|
-//
|
|
|
-// tv_dedicatedip_servers_tv?.text = serverData.name
|
|
|
-// isDedicatedEnabled = true
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// tv_dedicatedip_servers_tv?.text = ""
|
|
|
-// isDedicatedEnabled = false
|
|
|
-// }
|
|
|
-//
|
|
|
-//// Log.d("ser_test_ded", "Dedicated size=0 $isDedicatedEnabled")
|
|
|
-// dedicatedServerAdapter.selectedPosition = 55
|
|
|
-// rv_dedicatedip_servers_tv?.layoutManager =
|
|
|
-// LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_dedicatedip_servers_tv?.adapter = dedicatedServerAdapter
|
|
|
-//
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else if (serverData.name?.equals("Streaming") == true)
|
|
|
-// {
|
|
|
-// prefHelper.getServerData().get(index).servers?.let { streaming ->
|
|
|
-// streamingServerAdapter = ServerAdapter(
|
|
|
-// mainActivity,
|
|
|
-// R.layout.item_server,
|
|
|
-// prefHelper.getServerData().get(index).servers?.let {
|
|
|
-// serverListViewModel.filterServersByStreamingServersTV(
|
|
|
-// it
|
|
|
-// )
|
|
|
-// }
|
|
|
-// )
|
|
|
-//
|
|
|
-// val data = serverListViewModel.filterServersByStreamingServersTV(streaming)
|
|
|
-// if (data.size > 0)
|
|
|
-// {
|
|
|
-// tvstreaming?.text = serverData.name
|
|
|
-// isStreamingEnabled = true
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// tvstreaming?.text = ""
|
|
|
-// isStreamingEnabled = false
|
|
|
-// }
|
|
|
-//
|
|
|
-// streamingServerAdapter.selectedPosition = 55
|
|
|
-// rv_streaming?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_streaming?.adapter = streamingServerAdapter
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else if (serverData.name?.equals("D-VPN") == true)
|
|
|
-// {
|
|
|
-// prefHelper.getServerData().get(index).servers?.let { dvpn ->
|
|
|
-// dvpnServerAdapter = ServerAdapter(
|
|
|
-// mainActivity,
|
|
|
-// R.layout.item_server,
|
|
|
-// prefHelper.getServerData().get(index).servers?.let {
|
|
|
-// serverListViewModel.filterServersByISOTV(
|
|
|
-// it
|
|
|
-// )
|
|
|
-// }
|
|
|
-// )
|
|
|
-//
|
|
|
-// val data = serverListViewModel.filterServersByISOTV(dvpn)
|
|
|
-// if (data.size > 0)
|
|
|
-// {
|
|
|
-// tvdvpn?.text = serverData.name
|
|
|
-// isDvpnEnabled = true
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// tvdvpn?.text = ""
|
|
|
-// isDvpnEnabled = false
|
|
|
-// }
|
|
|
-//
|
|
|
-// dvpnServerAdapter.selectedPosition = 55
|
|
|
-// rv_dvpn?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_dvpn?.adapter = dvpnServerAdapter
|
|
|
-//
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else if (serverData.name?.equals("P2P") == true)
|
|
|
-// {
|
|
|
-// prefHelper.getServerData().get(index).servers?.let { p2p ->
|
|
|
-// p2pServerAdapter = ServerAdapter(
|
|
|
-// mainActivity,
|
|
|
-// R.layout.item_server,
|
|
|
-// prefHelper.getServerData().get(index).servers?.let {
|
|
|
-// serverListViewModel.filterServersByISOTV(
|
|
|
-// it
|
|
|
-// )
|
|
|
-// }
|
|
|
-// )
|
|
|
-//
|
|
|
-// val data = serverListViewModel.filterServersByISOTV(p2p)
|
|
|
-// if (data.size > 0)
|
|
|
-// {
|
|
|
-// tvp2p?.text = serverData.name
|
|
|
-// isP2PEnabled = true
|
|
|
-// }
|
|
|
-// else {
|
|
|
-// tvp2p?.text = ""
|
|
|
-// isP2PEnabled = false
|
|
|
-// }
|
|
|
-//
|
|
|
-// p2pServerAdapter.selectedPosition = 55
|
|
|
-// rv_p2p?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_p2p?.adapter = p2pServerAdapter
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// fun setAdapters() {
|
|
|
-//
|
|
|
-// /*Favourite List*/
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
+ super.onViewCreated(view, savedInstanceState)
|
|
|
+// GuidedStepSupportFragment.addAsRoot(requireActivity(), FirstStepFragment(), android.R.id.content)
|
|
|
+// GuidedStepSupportFragment.add(fragmentManager, FirstStepFragment(), android.R.id.content)
|
|
|
+
|
|
|
+ serverListViewModel = ServerListViewModel(requireContext())
|
|
|
+ MainActivity.updateServersOnProtocol = this
|
|
|
+ prefHelper = BasePreferenceHelper(requireContext())
|
|
|
+
|
|
|
+ setAdaptersCallBack()
|
|
|
+ setAdapters()
|
|
|
+ clickListeners()
|
|
|
+ }
|
|
|
+
|
|
|
+ fun setAdaptersCallBack() {
|
|
|
+ val serversData = prefHelper.getServerData()
|
|
|
+
|
|
|
+ serversData.forEachIndexed { index, serverData ->
|
|
|
+// Log.d("servers testing tv 123", "$index,${serverData.name},${serverData.servers?.size}")
|
|
|
+
|
|
|
+ if (serverData.name?.equals("Servers") == true)
|
|
|
+ {
|
|
|
+ prefHelper.getServerData().get(index).servers?.let { serversList ->
|
|
|
+ serverAdapter = ServerAdapter(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_server,
|
|
|
+ prefHelper.getServerData().get(index).servers?.let {
|
|
|
+ serverListViewModel.filterServersWithTvCountries(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ val data = serverListViewModel.filterServersWithTvCountries(serversList)
|
|
|
+ if (data.size > 0)
|
|
|
+ {
|
|
|
+// tvcountries.text = serverData.name
|
|
|
+ tvServerListBinding.tvcountries?.text = "Top Locations"
|
|
|
+ isServersEnabled = true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tvServerListBinding.tvcountries?.text = ""
|
|
|
+ isServersEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+ serverAdapter.selectedPosition = 55
|
|
|
+ tvServerListBinding.rvServers?.layoutManager =
|
|
|
+ LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvServers?.adapter = serverAdapter
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (serverData.name?.equals("Dedicated IP") == true)
|
|
|
+ {
|
|
|
+ prefHelper.getServerData().get(index).servers?.let { dedicated ->
|
|
|
+
|
|
|
+// Log.d("ser_test_ded", "Dedicated IP $isDedicatedEnabled")
|
|
|
+ dedicatedServerAdapter = ServerAdapter(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_server,
|
|
|
+ prefHelper.getServerData().get(index).servers?.let {
|
|
|
+ serverListViewModel.filterServersByISOTV(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ val data = serverListViewModel.filterServersByISOTV(dedicated)
|
|
|
+ if (data.size > 0)
|
|
|
+ {
|
|
|
+// Log.d("ser_test_ded", "Dedicated size>0 $isDedicatedEnabled")
|
|
|
+
|
|
|
+ tvServerListBinding.tvDedicatedipServersTv?.text = serverData.name
|
|
|
+ isDedicatedEnabled = true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tvServerListBinding.tvDedicatedipServersTv?.text = ""
|
|
|
+ isDedicatedEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+// Log.d("ser_test_ded", "Dedicated size=0 $isDedicatedEnabled")
|
|
|
+ dedicatedServerAdapter.selectedPosition = 55
|
|
|
+ tvServerListBinding.rvDedicatedipServersTv?.layoutManager =
|
|
|
+ LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvDedicatedipServersTv?.adapter = dedicatedServerAdapter
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (serverData.name?.equals("Streaming") == true)
|
|
|
+ {
|
|
|
+ prefHelper.getServerData().get(index).servers?.let { streaming ->
|
|
|
+ streamingServerAdapter = ServerAdapter(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_server,
|
|
|
+ prefHelper.getServerData().get(index).servers?.let {
|
|
|
+ serverListViewModel.filterServersByStreamingServersTV(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ val data = serverListViewModel.filterServersByStreamingServersTV(streaming)
|
|
|
+ if (data.size > 0)
|
|
|
+ {
|
|
|
+ tvServerListBinding.tvstreaming?.text = serverData.name
|
|
|
+ isStreamingEnabled = true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tvServerListBinding.tvstreaming?.text = ""
|
|
|
+ isStreamingEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+ streamingServerAdapter.selectedPosition = 55
|
|
|
+ tvServerListBinding.rvStreaming?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvStreaming?.adapter = streamingServerAdapter
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (serverData.name?.equals("D-VPN") == true)
|
|
|
+ {
|
|
|
+ prefHelper.getServerData().get(index).servers?.let { dvpn ->
|
|
|
+ dvpnServerAdapter = ServerAdapter(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_server,
|
|
|
+ prefHelper.getServerData().get(index).servers?.let {
|
|
|
+ serverListViewModel.filterServersByISOTV(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ val data = serverListViewModel.filterServersByISOTV(dvpn)
|
|
|
+ if (data.size > 0)
|
|
|
+ {
|
|
|
+ tvServerListBinding.tvdvpn?.text = serverData.name
|
|
|
+ isDvpnEnabled = true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tvServerListBinding.tvdvpn?.text = ""
|
|
|
+ isDvpnEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+ dvpnServerAdapter.selectedPosition = 55
|
|
|
+ tvServerListBinding.rvDvpn?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvDvpn?.adapter = dvpnServerAdapter
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (serverData.name?.equals("P2P") == true)
|
|
|
+ {
|
|
|
+ prefHelper.getServerData().get(index).servers?.let { p2p ->
|
|
|
+ p2pServerAdapter = ServerAdapter(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_server,
|
|
|
+ prefHelper.getServerData().get(index).servers?.let {
|
|
|
+ serverListViewModel.filterServersByISOTV(
|
|
|
+ it
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ val data = serverListViewModel.filterServersByISOTV(p2p)
|
|
|
+ if (data.size > 0)
|
|
|
+ {
|
|
|
+ tvServerListBinding.tvp2p?.text = serverData.name
|
|
|
+ isP2PEnabled = true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ tvServerListBinding.tvp2p?.text = ""
|
|
|
+ isP2PEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+ p2pServerAdapter.selectedPosition = 55
|
|
|
+ tvServerListBinding.rvP2p?.layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvP2p?.adapter = p2pServerAdapter
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fun setAdapters() {
|
|
|
+
|
|
|
+ /*Favourite List*/
|
|
|
// favouritesAdapter = FavouritesAdapter(
|
|
|
// mainActivity, R.layout.item_favourites, serverListViewModel.getFavList()
|
|
|
// )
|
|
|
// rvList_favourite.layoutManager =
|
|
|
// LinearLayoutManager(mainActivity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
// rvList_favourite.adapter = favouritesAdapter
|
|
|
-//
|
|
|
-// /*Settings List*/
|
|
|
-//
|
|
|
-// settingsList.add(SettingsData("vpn_key_24", "Protocol"))
|
|
|
-// settingsList.add(SettingsData("ic_splittunneling", "Split Tunneling"))
|
|
|
-//// settingsList.add(SettingsData("ic_killswitch", "Kill Switch"))
|
|
|
-//
|
|
|
-// settingsAdapter = SettingsAdapter(
|
|
|
-// mainActivity, R.layout.item_settings_tv, settingsList
|
|
|
-// )
|
|
|
-//
|
|
|
-// rv_settings?.layoutManager =
|
|
|
-// LinearLayoutManager(mainActivity, LinearLayoutManager.HORIZONTAL, false)
|
|
|
-// rv_settings?.adapter = settingsAdapter
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// fun clickListeners() {
|
|
|
-//
|
|
|
-// if (isServersEnabled)
|
|
|
-// {
|
|
|
-// serverAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//
|
|
|
-// serverAdapter.getItem(position)?.let {
|
|
|
-// if (it.enable == 1) {
|
|
|
-// MainActivity.callBacks?.onServerSelected(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (isDedicatedEnabled)
|
|
|
-// {
|
|
|
-// dedicatedServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//
|
|
|
-// dedicatedServerAdapter.getItem(position)?.let {
|
|
|
-// if (it.enable == 1) {
|
|
|
-// MainActivity.callBacks?.onServerSelected(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (isStreamingEnabled)
|
|
|
-// {
|
|
|
-// streamingServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//
|
|
|
-// streamingServerAdapter.getItem(position)?.let {
|
|
|
-// if (it.enable == 1)
|
|
|
-// {
|
|
|
-// MainActivity.callBacks?.onServerSelected(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (isDvpnEnabled)
|
|
|
+
|
|
|
+ /*Settings List*/
|
|
|
+
|
|
|
+ settingsList.add(SettingsData("vpn_key_24", "Protocol"))
|
|
|
+ settingsList.add(SettingsData("ic_splittunneling", "Split Tunneling"))
|
|
|
+// settingsList.add(SettingsData("ic_killswitch", "Kill Switch"))
|
|
|
+
|
|
|
+ settingsAdapter = SettingsAdapter(
|
|
|
+ requireContext(), R.layout.item_settings_tv, settingsList
|
|
|
+ )
|
|
|
+
|
|
|
+ tvServerListBinding.rvSettings?.layoutManager =
|
|
|
+ LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
|
|
+ tvServerListBinding.rvSettings?.adapter = settingsAdapter
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ fun clickListeners() {
|
|
|
+
|
|
|
+ if (isServersEnabled)
|
|
|
+ {
|
|
|
+ serverAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+
|
|
|
+ serverAdapter.getItem(position)?.let {
|
|
|
+ if (it.enable == 1) {
|
|
|
+ MainActivity.callBacks?.onServerSelected(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isDedicatedEnabled)
|
|
|
+ {
|
|
|
+ dedicatedServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+
|
|
|
+ dedicatedServerAdapter.getItem(position)?.let {
|
|
|
+ if (it.enable == 1) {
|
|
|
+ MainActivity.callBacks?.onServerSelected(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isStreamingEnabled)
|
|
|
+ {
|
|
|
+ streamingServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+
|
|
|
+ streamingServerAdapter.getItem(position)?.let {
|
|
|
+ if (it.enable == 1)
|
|
|
+ {
|
|
|
+ MainActivity.callBacks?.onServerSelected(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isDvpnEnabled)
|
|
|
+ {
|
|
|
+ dvpnServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+
|
|
|
+ dvpnServerAdapter.getItem(position)?.let {
|
|
|
+ if (it.enable == 1) {
|
|
|
+ MainActivity.callBacks?.onServerSelected(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isP2PEnabled)
|
|
|
+ {
|
|
|
+ p2pServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+
|
|
|
+ p2pServerAdapter.getItem(position)?.let {
|
|
|
+ if (it.enable == 1) {
|
|
|
+ MainActivity.callBacks?.onServerSelected(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// if (isRecommendedEnabled)
|
|
|
// {
|
|
|
-// dvpnServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//
|
|
|
-// dvpnServerAdapter.getItem(position)?.let {
|
|
|
-// if (it.enable == 1) {
|
|
|
-// MainActivity.callBacks?.onServerSelected(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
+// recommendedAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+// recommendedAdapter.getItem(position)
|
|
|
+// ?.let { MainActivity.callBacks?.onServerSelected(it) }
|
|
|
// }
|
|
|
// }
|
|
|
-//
|
|
|
-// if (isP2PEnabled)
|
|
|
-// {
|
|
|
-// p2pServerAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//
|
|
|
-// p2pServerAdapter.getItem(position)?.let {
|
|
|
-// if (it.enable == 1) {
|
|
|
-// MainActivity.callBacks?.onServerSelected(it)
|
|
|
-// }
|
|
|
-// }
|
|
|
+
|
|
|
+// rv_servers?.setOnFocusChangeListener { views, b ->
|
|
|
+// if (b) {
|
|
|
+// card_bg.background = views.resources.getDrawable(R.drawable.itemserver_background_tv)
|
|
|
+// } else {
|
|
|
+// card_bg.background = views.resources.getDrawable(R.drawable.itemserver_background_tv)
|
|
|
// }
|
|
|
// }
|
|
|
-//
|
|
|
-//// if (isRecommendedEnabled)
|
|
|
-//// {
|
|
|
-//// recommendedAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-//// recommendedAdapter.getItem(position)
|
|
|
-//// ?.let { MainActivity.callBacks?.onServerSelected(it) }
|
|
|
-//// }
|
|
|
-//// }
|
|
|
-//
|
|
|
-//// rv_servers?.setOnFocusChangeListener { views, b ->
|
|
|
-//// if (b) {
|
|
|
-//// card_bg.background = views.resources.getDrawable(R.drawable.itemserver_background_tv)
|
|
|
-//// } else {
|
|
|
-//// card_bg.background = views.resources.getDrawable(R.drawable.itemserver_background_tv)
|
|
|
-//// }
|
|
|
-//// }
|
|
|
-//
|
|
|
-// settingsAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
-// if (position == 0)
|
|
|
-// {
|
|
|
-//
|
|
|
-//// showProtocolPopup(requireActivity())
|
|
|
-//
|
|
|
-// GuidedStepSupportFragment.add(fragmentManager,
|
|
|
+
|
|
|
+ settingsAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
+ if (position == 0)
|
|
|
+ {
|
|
|
+
|
|
|
+// showProtocolPopup(requireActivity())
|
|
|
+
|
|
|
+ GuidedStepSupportFragment.add(fragmentManager,
|
|
|
+ GuidedActivity.FirstStepFragment(), android.R.id.content)
|
|
|
+
|
|
|
+// GuidedStepSupportFragment.addAsRoot(requireActivity(),
|
|
|
// FirstStepFragment(), android.R.id.content)
|
|
|
-//
|
|
|
-//// GuidedStepSupportFragment.addAsRoot(requireActivity(),
|
|
|
-//// FirstStepFragment(), android.R.id.content)
|
|
|
-//
|
|
|
-// }
|
|
|
-// else if (position == 1)
|
|
|
-// {
|
|
|
-//
|
|
|
-// val appsName: ArrayList<SelectApplicationEntry> = ArrayList()
|
|
|
-// val appsPackageName: ArrayList<String> = ArrayList()
|
|
|
-//
|
|
|
-// val mPackageManager: PackageManager = requireContext().packageManager
|
|
|
-// val context: Context = requireContext()
|
|
|
-//
|
|
|
-// for (info in mPackageManager.getInstalledApplications(PackageManager.GET_META_DATA))
|
|
|
-// {
|
|
|
-//
|
|
|
-// if (info.flags and ApplicationInfo.FLAG_SYSTEM == 0) { // good
|
|
|
-//
|
|
|
-// if (mPackageManager.checkPermission(android.Manifest.permission.INTERNET, info.packageName
|
|
|
-// ) == PackageManager.PERMISSION_GRANTED)
|
|
|
-// {
|
|
|
-// if (info.packageName == context.packageName) continue
|
|
|
-// val entry = SelectApplicationEntry(mPackageManager, info)
|
|
|
-// appsName.add(entry)
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (info.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP != 0) { // ok but some different also apps
|
|
|
-// if (mPackageManager.checkPermission(android.Manifest.permission.INTERNET, info.packageName
|
|
|
-// ) == PackageManager.PERMISSION_GRANTED)
|
|
|
-// {
|
|
|
-// if (info.packageName == context.packageName) continue
|
|
|
-// val entry = SelectApplicationEntry(mPackageManager, info)
|
|
|
-// appsName.add(entry)
|
|
|
-// }
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (position == 1)
|
|
|
+ {
|
|
|
+
|
|
|
+ val appsName: ArrayList<SelectApplicationEntry> = ArrayList()
|
|
|
+ val appsPackageName: ArrayList<String> = ArrayList()
|
|
|
+
|
|
|
+ val mPackageManager: PackageManager = requireContext().packageManager
|
|
|
+ val context: Context = requireContext()
|
|
|
+
|
|
|
+ for (info in mPackageManager.getInstalledApplications(PackageManager.GET_META_DATA))
|
|
|
+ {
|
|
|
+
|
|
|
+ if (info.flags and ApplicationInfo.FLAG_SYSTEM == 0) { // good
|
|
|
+
|
|
|
+ if (mPackageManager.checkPermission(android.Manifest.permission.INTERNET, info.packageName
|
|
|
+ ) == PackageManager.PERMISSION_GRANTED)
|
|
|
+ {
|
|
|
+ if (info.packageName == context.packageName) continue
|
|
|
+ val entry = SelectApplicationEntry(mPackageManager, info, false)
|
|
|
+ appsName.add(entry)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (info.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP != 0) { // ok but some different also apps
|
|
|
+ if (mPackageManager.checkPermission(android.Manifest.permission.INTERNET, info.packageName
|
|
|
+ ) == PackageManager.PERMISSION_GRANTED)
|
|
|
+ {
|
|
|
+ if (info.packageName == context.packageName) continue
|
|
|
+ val entry = SelectApplicationEntry(mPackageManager, info, false)
|
|
|
+ appsName.add(entry)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var tempTvApps = ArrayList<String>()
|
|
|
+ var tempTvIcon = ArrayList<Drawable>()
|
|
|
+ var bitmapList: ArrayList<Bitmap> = ArrayList()
|
|
|
+
|
|
|
+ appsName.forEach {
|
|
|
+ it.getInfo()?.packageName?.let {
|
|
|
+ it1 -> appsPackageName.add(it1)
|
|
|
+ }
|
|
|
+ tempTvApps.add(it.toString())
|
|
|
+ it.getIcon()?.let { it1 -> tempTvIcon.add(it1) }
|
|
|
+ }
|
|
|
+
|
|
|
+// Log.d("apps in tv appsName", appsName.get(0).getIcon().toString() + " " + appsName.get(0))
|
|
|
+// Log.d("apps in tv appsPackage", appsPackageName.toString() + " " + appsPackageName.size)
|
|
|
+// Log.d("apps in tv tempTvApps", tempTvApps.toString() + " " + tempTvApps.size)
|
|
|
+// Log.d("apps in tv tempTvIcon", tempTvIcon.toString() + " " + tempTvIcon.size)
|
|
|
+
|
|
|
+ prefHelper.setSplitTunnelTvAppsName(tempTvApps)
|
|
|
+ prefHelper.setSplitTunnelTvAppsPackageName(appsPackageName)
|
|
|
+
|
|
|
+// prefHelper.setEnableTvAppsSplit(tempTvApps)
|
|
|
+
|
|
|
+ GuidedStepSupportFragment.add(fragmentManager,
|
|
|
+ GuidedActivity.SecondStepFragment(tempTvIcon, true), android.R.id.content)
|
|
|
+
|
|
|
+ // if (info.flags and ApplicationInfo.FLAG_SYSTEM != 0) { // not ok
|
|
|
+// Log.d("apps in tv 2", info.packageName)
|
|
|
// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// var tempTvApps = ArrayList<String>()
|
|
|
-// var tempTvIcon = ArrayList<Drawable>()
|
|
|
-// var bitmapList: ArrayList<Bitmap> = ArrayList()
|
|
|
-//
|
|
|
-// appsName.forEach {
|
|
|
-// it.getInfo()?.packageName?.let {
|
|
|
-// it1 -> appsPackageName.add(it1)
|
|
|
+// if (info.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP == 0) { // not ok
|
|
|
+// Log.d("apps in tv 3", info.packageName)
|
|
|
// }
|
|
|
-// tempTvApps.add(it.toString())
|
|
|
-// it.getIcon()?.let { it1 -> tempTvIcon.add(it1) }
|
|
|
-// }
|
|
|
-//
|
|
|
-//// Log.d("apps in tv appsName", appsName.get(0).getIcon().toString() + " " + appsName.get(0))
|
|
|
-//// Log.d("apps in tv appsPackage", appsPackageName.toString() + " " + appsPackageName.size)
|
|
|
-//// Log.d("apps in tv tempTvApps", tempTvApps.toString() + " " + tempTvApps.size)
|
|
|
-//// Log.d("apps in tv tempTvIcon", tempTvIcon.toString() + " " + tempTvIcon.size)
|
|
|
-//
|
|
|
-// prefHelper.setSplitTunnelTvAppsName(tempTvApps)
|
|
|
-// prefHelper.setSplitTunnelTvAppsPackageName(appsPackageName)
|
|
|
-//
|
|
|
-//// prefHelper.setEnableTvAppsSplit(tempTvApps)
|
|
|
-//
|
|
|
-// GuidedStepSupportFragment.add(fragmentManager,
|
|
|
-// SecondStepFragment(tempTvIcon, true), android.R.id.content)
|
|
|
-//
|
|
|
-// // if (info.flags and ApplicationInfo.FLAG_SYSTEM != 0) { // not ok
|
|
|
-//// Log.d("apps in tv 2", info.packageName)
|
|
|
-//// }
|
|
|
-//// if (info.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP == 0) { // not ok
|
|
|
-//// Log.d("apps in tv 3", info.packageName)
|
|
|
-//// }
|
|
|
-//// GuidedStepSupportFragment.addAsRoot(requireActivity(), FirstStepFragment(), android.R.id.content)
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
+// GuidedStepSupportFragment.addAsRoot(requireActivity(), FirstStepFragment(), android.R.id.content)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
// favouritesAdapter.setOnItemClickListener { adapter, view, position ->
|
|
|
// favouritesAdapter.getItem(position)?.let {
|
|
|
// MainActivity.callBacks?.onServerSelected(it)
|
|
|
// }
|
|
|
-// }
|
|
|
-//
|
|
|
+ }
|
|
|
+
|
|
|
// favouritesAdapter.setOnItemLongClickListener { adapter, view, position ->
|
|
|
// favUnFav(favouritesAdapter.getItem(position)!!)
|
|
|
// true
|
|
|
// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// fun favUnFav(server: Server) {
|
|
|
-//
|
|
|
-// serverListViewModel.favAndUnFav(server)
|
|
|
-//
|
|
|
+
|
|
|
+ fun favUnFav(server: Server) {
|
|
|
+
|
|
|
+ serverListViewModel.favAndUnFav(server)
|
|
|
+
|
|
|
// favouritesAdapter.data.clear()
|
|
|
// favouritesAdapter.setNewData(serverListViewModel.getFavList())
|
|
|
// favouritesAdapter.notifyDataSetChanged()
|
|
|
-// }
|
|
|
-//
|
|
|
+ }
|
|
|
+
|
|
|
+ companion object {
|
|
|
+ fun newInstance(): TvServerListFragment {
|
|
|
+ return TvServerListFragment()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun updateServersOnCallback() {
|
|
|
+ setAdaptersCallBack()
|
|
|
+ clickListeners()
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
// fun showProtocolPopup(activity: Activity) {
|
|
|
// val priceDialog = Dialog(activity)
|
|
|
// priceDialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
|
@@ -464,27 +510,12 @@ class TvServerListFragment : BaseFragment()
|
|
|
// MainActivity.callBacks?.onChangeProtocol(Protocol(AppEnum.UDP_PROTOCOL.title, AppEnum.UDP_PROTOCOL.key,4))
|
|
|
// }
|
|
|
// }
|
|
|
-//
|
|
|
+
|
|
|
// override fun setTitleBar() {
|
|
|
-// setupUI((mainActivity).titleBar, (mainActivity).bottomBar)
|
|
|
+//// setupUI((mainActivity).titleBar, (mainActivity).bottomBar)
|
|
|
// }
|
|
|
-//
|
|
|
+
|
|
|
// private fun setupUI(titleBar: TitleBar, bottomBar: BottomBar) {
|
|
|
// titleBar.hideTitleBar()
|
|
|
// bottomBar.hideBottomBar()
|
|
|
-// }
|
|
|
-//
|
|
|
-// companion object {
|
|
|
-// fun newInstance(): TvServerListFragment {
|
|
|
-// return TvServerListFragment()
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun updateServersOnCallback() {
|
|
|
-// setAdaptersCallBack()
|
|
|
-// clickListeners()
|
|
|
-// }
|
|
|
- override fun setTitleBar() {
|
|
|
- TODO("Not yet implemented")
|
|
|
- }
|
|
|
-}
|
|
|
+// }
|