This commit is contained in:
Tucan444 2021-04-30 07:48:07 +02:00
parent bc03d7fbdf
commit 2a547d3bd9
11 changed files with 244 additions and 186 deletions

@ -88,136 +88,11 @@ class MainActivity : AppCompatActivity() {
super.onResume() super.onResume()
// server communication // server communication
val dataReceiver0: (String) -> Unit = { data0: String ->
val dataReceiver1: (String) -> Unit = { data1: String ->
val json = JsonManager(this, data1, "JSONObject")
val names = json.currentJsonObject!!.names()
try {
names?.let {
mainFragmentHost.childFragmentManager.fragments[0]?.let {
if (it is homeFragment) {
LabeledValuesSupplier.wipeData()
for (n in 0 until names.length()) {
val labeledValue = LabeledValue(names[n].toString(), json.getAttributeContent(names[n].toString()))
if (!LabeledValuesSupplier.checkIfContains(labeledValue)) {
LabeledValuesSupplier.appendLabeledValue(labeledValue)
}
}
it.labeled_values_recycler_view.post {
val layoutManager = LinearLayoutManager(it.requireContext())
layoutManager.orientation = LinearLayoutManager.VERTICAL
it.labeled_values_recycler_view.layoutManager = layoutManager
val adapter = LabeledValuesAdapter(it.requireContext(), LabeledValuesSupplier.labeledValues)
it.labeled_values_recycler_view.adapter = adapter
}
}
}
}
} catch (e: Throwable) { println("[debug] Exception in main activity, sensors connection : $e") }
}
if (!ServerManagement.serverManager.checkIfConnectionAlreadyExists("sensorsConnection")){
ServerManagement.serverManager.addReceiverConnection(dataReceiver1, this, "sensorsConnection", data0.toInt(), ServerManagement.sensors_keyword)
}
// getting other needed information
val dataReceiver2: (String) -> Unit = {data1: String ->
var json = JsonManager(this, data1)
json = JsonManager(this, json.findJsonObjectByAttribute("ID", data0.toInt()), "JSONObject") // todo doesnt return correct result
val positionsList = json.getAttributeContent("location").split(",")
MapManagement.connectedServerPosition = LatLng(positionsList[0].toDouble(), positionsList[1].toDouble())
}
if (!ServerManagement.serverManager.checkIfConnectionAlreadyExists("mapConnection")){
ServerManagement.serverManager.addReceiverConnection(dataReceiver2, this, "mapConnection", data0.toInt(), "", "GET_WHOLE_ARRAY")
}
val dataReceiver3: (String) -> Unit = { data1: String ->
val json = JsonManager(this, data1)
json.findJsonObjectByAttribute("ID", data0.toInt())
fun updateFileViewsRecyclerView(fragment: Fragment) {
try {
fragment.homeFragmentInnerFragment?.let {
it.file_views_recycler_view.post {
val layoutManager = LinearLayoutManager(fragment.requireContext())
layoutManager.orientation = LinearLayoutManager.VERTICAL
it.file_views_recycler_view.layoutManager = layoutManager
val adapter = FileViewsAdapter(fragment.requireContext(), FileViewsSupplier.fileViews)
it.file_views_recycler_view.adapter = adapter
}
}
} catch (e: Throwable) { println("[debug] e1 that i couldnt fix so try catch Exception: $e") }
}
try {
mainFragmentHost.childFragmentManager.fragments[0]?.let {
when (it) {
is homeFragment -> {
json.getAttributeContent("files")
for (n in 0 until json.currentJsonAttribute1!!.length()) {
val fileInfo = JsonManagerLite(json.getAttributeContentByPath("files/$n"), "JSONObject")
val filetype = fileInfo.getAttributeContentByPath("format").split(".")[1]
val filename = fileInfo.getAttributeContentByPath("name")
val fileDescription = fileInfo.getAttributeContentByPath("description")
// handling text
if ("txt json".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, "$data0|||||$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(it)
}
}
// handling images
if ("jpg png".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, null, "$data0|||||$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(it)
}
}
// handling pdf files
if ("pdf".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, null, null, "${ServerManagement.baseUrl}files/$data0/$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(it)
}
}
}
}
}
}
} catch (e: Throwable) { println("[debug] Exception in main activity, files data request : $e") }
}
ServerManagement.serverManager.addReceiverConnection(dataReceiver3, this, "fileViewsConnection", data0.toInt(), "", "GET_WHOLE_ARRAY")
}
ServerManagement.serverManager.getData(dataReceiver0, this, 0, "", "connected_id", 3)
connectExploreFragmentAdapterModel() connectExploreFragmentAdapterModel()
} }
override fun onPause() { override fun onPause() {
PlaceSupplier.saveToCache(this) PlaceSupplier.saveToCache(this)
ServerManagement.serverManager.deleteConnection("sensorsConnection")
ServerManagement.serverManager.deleteConnection("mapConnection")
ServerManagement.serverManager.deleteConnection("fileViewsConnection")
ServerManagement.serverManager.deleteConnection("exploreListConnection") ServerManagement.serverManager.deleteConnection("exploreListConnection")
super.onPause() super.onPause()
} }

@ -97,7 +97,6 @@ class chatFragment : Fragment(R.layout.fragment_chat) {
MessagesSupplier.clearWaitingMessages() MessagesSupplier.clearWaitingMessages()
for (i in 0 until length) { for (i in 0 until length) {
println("message at index n: ${json.getAttributeContentByPath("data/$i")}")
val jsonOfMessage = JsonManager(requireContext(), json.getAttributeContentByPath("data/$i"), "JSONObject") val jsonOfMessage = JsonManager(requireContext(), json.getAttributeContentByPath("data/$i"), "JSONObject")
val message = Message(jsonOfMessage.getAttributeContent("sender"), val message = Message(jsonOfMessage.getAttributeContent("sender"),
jsonOfMessage.getAttributeContent("message"), jsonOfMessage.getAttributeContent("message"),

@ -5,11 +5,23 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.navigation.Navigation import androidx.navigation.Navigation
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.wikispot.GeneralVariables import com.example.wikispot.GeneralVariables
import com.example.wikispot.MapManagement
import com.example.wikispot.R import com.example.wikispot.R
import com.example.wikispot.ServerManagement import com.example.wikispot.ServerManagement
import com.example.wikispot.adapters.FileViewsAdapter
import com.example.wikispot.adapters.LabeledValuesAdapter
import com.example.wikispot.modelClasses.JsonManager import com.example.wikispot.modelClasses.JsonManager
import com.example.wikispot.modelClasses.JsonManagerLite
import com.example.wikispot.modelsForAdapters.FileView
import com.example.wikispot.modelsForAdapters.FileViewsSupplier
import com.example.wikispot.modelsForAdapters.LabeledValue
import com.example.wikispot.modelsForAdapters.LabeledValuesSupplier
import com.google.android.gms.maps.model.LatLng
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_home.* import kotlinx.android.synthetic.main.fragment_home.*
import kotlinx.android.synthetic.main.fragment_info.*
import kotlinx.android.synthetic.main.fragment_info.view.* import kotlinx.android.synthetic.main.fragment_info.view.*
@ -30,7 +42,11 @@ class homeFragment : Fragment(R.layout.fragment_home) {
super.onResume() super.onResume()
// connecting to server // connecting to server
val dataReceiver: (String) -> Unit = {data: String ->
val serverConnectorThread = Thread(ServerConnector())
serverConnectorThread.start()
val dataReceiver0: (String) -> Unit = { data: String ->
try { try {
val json = JsonManager(requireContext(), data) val json = JsonManager(requireContext(), data)
@ -82,15 +98,153 @@ class homeFragment : Fragment(R.layout.fragment_home) {
} catch (e: Throwable) { println(e) } } catch (e: Throwable) { println(e) }
} }
ServerManagement.serverManager.getData(dataReceiver, requireContext(), 0, "", "GET_WHOLE_ARRAY", 4) val dataReceiver1: (String) -> Unit = {connectedId: String ->
ServerManagement.connectedServerId = connectedId.toInt()
}
ServerManagement.serverManager.getData(dataReceiver0, requireContext(), 0, "", "GET_WHOLE_ARRAY", 4)
ServerManagement.serverManager.getData(dataReceiver1, requireContext(), 0, "", "connected_id", 3)
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
ServerManagement.serverManager.deleteConnection("sensorsConnection")
ServerManagement.serverManager.deleteConnection("mapConnection")
ServerManagement.serverManager.deleteConnection("fileViewsConnection")
saveCache() saveCache()
} }
private fun tryConnectingToServer() {
ServerManagement.connectedServerId?.let{ connectedServerId: Int ->
context?.let {
val dataReceiver1: (String) -> Unit = { data1: String ->
try {
val json = JsonManager(requireContext(), data1, "JSONObject")
val names = json.currentJsonObject!!.names()
names?.let {
LabeledValuesSupplier.wipeData()
for (n in 0 until names.length()) {
val labeledValue = LabeledValue(names[n].toString(), json.getAttributeContent(names[n].toString()))
if (!LabeledValuesSupplier.checkIfContains(labeledValue)) {
LabeledValuesSupplier.appendLabeledValue(labeledValue)
}
}
labeled_values_recycler_view.post {
val layoutManager = LinearLayoutManager(requireContext())
layoutManager.orientation = LinearLayoutManager.VERTICAL
labeled_values_recycler_view.layoutManager = layoutManager
val adapter = LabeledValuesAdapter(requireContext(), LabeledValuesSupplier.labeledValues)
labeled_values_recycler_view.adapter = adapter
}
}
} catch (e: Throwable) { println("[debug] Exception in main activity, sensors connection : $e") }
}
if (!ServerManagement.serverManager.checkIfConnectionAlreadyExists("sensorsConnection")){
ServerManagement.serverManager.addReceiverConnection(dataReceiver1, requireContext(), "sensorsConnection", connectedServerId, ServerManagement.sensors_keyword)
}
// getting other needed information
val dataReceiver2: (String) -> Unit = {data1: String ->
context?.let {
var json = JsonManager(requireContext(), data1)
json = JsonManager(requireContext(), json.findJsonObjectByAttribute("ID", connectedServerId), "JSONObject") // todo doesnt return correct result
val positionsList = json.getAttributeContent("location").split(",")
MapManagement.connectedServerPosition = LatLng(positionsList[0].toDouble(), positionsList[1].toDouble())
}
}
if (!ServerManagement.serverManager.checkIfConnectionAlreadyExists("mapConnection")){
ServerManagement.serverManager.addReceiverConnection(dataReceiver2, requireContext(), "mapConnection", connectedServerId, "", "GET_WHOLE_ARRAY")
}
val dataReceiver3: (String) -> Unit = { data1: String ->
fun updateFileViewsRecyclerView(fragment: Fragment) {
try {
fragment.context?.let {
fragment.homeFragmentInnerFragment?.let {
it.file_views_recycler_view.post {
val layoutManager = LinearLayoutManager(fragment.requireContext())
layoutManager.orientation = LinearLayoutManager.VERTICAL
it.file_views_recycler_view.layoutManager = layoutManager
val adapter = FileViewsAdapter(fragment.requireContext(), FileViewsSupplier.fileViews)
it.file_views_recycler_view.adapter = adapter
}
}
}
} catch (e: Throwable) { println("[debug] e1 that i couldnt fix so try catch Exception: $e") }
}
try {
val json = JsonManager(requireContext(), data1)
json.findJsonObjectByAttribute("ID", connectedServerId)
json.getAttributeContent("files")
for (n in 0 until json.currentJsonAttribute1!!.length()) {
val fileInfo = JsonManagerLite(json.getAttributeContentByPath("files/$n"), "JSONObject")
val filetype = fileInfo.getAttributeContentByPath("format").split(".")[1]
val filename = fileInfo.getAttributeContentByPath("name")
val fileDescription = fileInfo.getAttributeContentByPath("description")
// handling text
if ("txt json".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, "$connectedServerId|||||$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(this)
}
}
// handling images
if ("jpg png".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, null, "$connectedServerId|||||$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(this)
}
}
// handling pdf files
if ("pdf".contains(filetype)) {
val fileView = FileView(filetype, filename, fileDescription, null, null, "${ServerManagement.baseUrl}files/$connectedServerId/$filename.$filetype")
if (!FileViewsSupplier.checkIfContains(fileView)) {
FileViewsSupplier.appendFileView(fileView)
updateFileViewsRecyclerView(this)
}
}
}
} catch (e: Throwable) { println("[debug] Exception in home fragment, files data request : $e") }
}
if (!ServerManagement.serverManager.checkIfConnectionAlreadyExists("fileViewsConnection")) {
ServerManagement.serverManager.addReceiverConnection(dataReceiver3, requireContext(), "fileViewsConnection", connectedServerId, "", "GET_WHOLE_ARRAY")
}
}
}
}
inner class ServerConnector(private val numberOfAttempts: Int=3): Runnable {
override fun run() {
for (n in 0 until numberOfAttempts) {
tryConnectingToServer()
Thread.sleep(1000)
}
}
}
private fun loadCache() {} private fun loadCache() {}
private fun saveCache() {} private fun saveCache() {}

@ -31,7 +31,7 @@ class infoFragment : Fragment(R.layout.fragment_info) {
var location: LatLng? = null var location: LatLng? = null
var phoneNumber: Int? = null var phoneNumber: Int? = null
var email: String? = null var email: String? = null
var executeLoadFuntion = false var executeLoadFunction = false
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
@ -42,17 +42,21 @@ class infoFragment : Fragment(R.layout.fragment_info) {
updateFileViewsRecyclerView() updateFileViewsRecyclerView()
try { try {
executeLoadFuntion = args.executeLoadFuntion executeLoadFunction = args.executeLoadFuntion
} catch (e: Throwable) { println("[debug] Exception in Info Fragment while getting args: $e") } } catch (e: Throwable) {
if (!e.toString().contains("has null arguments")){
println("[debug] Exception in Info Fragment while getting args: $e")
}
}
if (executeLoadFuntion) { if (executeLoadFunction) {
load() load()
} else { } else {
getContactInfoFromGeneralVariables() getContactInfoFromGeneralVariables()
} }
locationBtn.setOnClickListener { locationBtn.setOnClickListener {
if (executeLoadFuntion) { if (executeLoadFunction) {
if (location != null) { if (location != null) {
val action = infoFragmentDirections.infoFragmentToMapFragment(location!!) val action = infoFragmentDirections.infoFragmentToMapFragment(location!!)
Navigation.findNavController(it).navigate(action) Navigation.findNavController(it).navigate(action)
@ -243,7 +247,9 @@ class infoFragment : Fragment(R.layout.fragment_info) {
phoneNumber?.let { phoneNumber?.let {
try { try {
phoneBtn.post { phoneBtn.post {
phoneBtn.visibility = View.VISIBLE phoneBtn?.let {
phoneBtn.visibility = View.VISIBLE
}
} }
} catch (e: Throwable) { println("[debug] Exception in checkContactInformation: $e") } } catch (e: Throwable) { println("[debug] Exception in checkContactInformation: $e") }
} }
@ -251,7 +257,9 @@ class infoFragment : Fragment(R.layout.fragment_info) {
email?.let { email?.let {
try { try {
emailBtn.post { emailBtn.post {
emailBtn.visibility = View.VISIBLE emailBtn?.let {
emailBtn.visibility = View.VISIBLE
}
} }
} catch (e: Throwable) { println("[debug] Exception in checkContactInformation: $e") } } catch (e: Throwable) { println("[debug] Exception in checkContactInformation: $e") }
} }

@ -87,14 +87,12 @@ class mapFragment : Fragment(), GoogleMap.OnMarkerClickListener {
CustomBackstackVariables.infoFragmentBackDestination = "mapFragment" CustomBackstackVariables.infoFragmentBackDestination = "mapFragment"
MapManagement.lastCoordinates = marker.position MapManagement.lastCoordinates = marker.position
ServerManagement.selectedServerId = PlaceSupplier.places[n]!!.id!! ServerManagement.selectedServerId = PlaceSupplier.places[n]!!.id!!
val action = mapFragmentDirections.mapFragmentToInfoFragment() val action = mapFragmentDirections.mapFragmentToInfoFragment(true)
Navigation.findNavController(navControllerView).navigate(action) Navigation.findNavController(navControllerView).navigate(action)
} }
} }
} }
lastClickedMarkerTitle = marker.title lastClickedMarkerTitle = marker.title
println("[debug] marker title ${marker.title}")
println(System.currentTimeMillis())
} }
return false return false
} }

@ -206,36 +206,51 @@ class ServerManager {
fun deleteConnection(connectionName: String, connectionType: String = "any") { // other types are any, activity and view fun deleteConnection(connectionName: String, connectionType: String = "any") { // other types are any, activity and view
if ((connectionType == "any") or (connectionType == "receiver")) { if ((connectionType == "any") or (connectionType == "receiver")) {
val indexesToRemove = mutableListOf<Int>()
for (i in 0 until receiverConnections.size) { // checking in connections for (i in 0 until receiverConnections.size) { // checking in connections
try { try {
if (receiverConnections[i].connectionName == connectionName) { if (receiverConnections[i].connectionName == connectionName) {
receiverConnections[i].running = false receiverConnections[i].running = false
receiverConnections.removeAt(i) indexesToRemove.add(i)
} }
} catch (e: Throwable) { println("In deleteConnection: $e") } } catch (e: Throwable) { println("In deleteConnection: $e") }
} }
for (i in 0 until indexesToRemove.size) {
receiverConnections.removeAt(indexesToRemove[i] - i)
}
} }
if ((connectionType == "any") or (connectionType == "view")) { if ((connectionType == "any") or (connectionType == "view")) {
val indexesToRemove = mutableListOf<Int>()
for (i in 0 until viewConnections.size) { // checking in connections for (i in 0 until viewConnections.size) { // checking in connections
try { try {
if (viewConnections[i].connectionName == connectionName) { if (viewConnections[i].connectionName == connectionName) {
viewConnections[i].running = false viewConnections[i].running = false
viewConnections.removeAt(i) indexesToRemove.add(i)
} }
} catch (e: Throwable) { println("In deleteConnection: $e") } } catch (e: Throwable) { println("In deleteConnection: $e") }
} }
for (i in 0 until indexesToRemove.size) {
viewConnections.removeAt(indexesToRemove[i] - i)
}
} }
if ((connectionType == "any") or (connectionType == "chat")) { if ((connectionType == "any") or (connectionType == "chat")) {
val indexesToRemove = mutableListOf<Int>()
for (i in 0 until chatConnections.size) { // checking in connections for (i in 0 until chatConnections.size) { // checking in connections
try { try {
if (chatConnections[i].connectionName == connectionName) { if (chatConnections[i].connectionName == connectionName) {
chatConnections[i].running = false chatConnections[i].running = false
chatConnections.removeAt(i) indexesToRemove.add(i)
} }
} catch (e: Throwable) { println("In deleteConnection: $e") } } catch (e: Throwable) { println("In deleteConnection: $e") }
} }
for (i in 0 until indexesToRemove.size) {
chatConnections.removeAt(indexesToRemove[i] - i)
}
} }
} }

@ -37,6 +37,7 @@ object ServerManagement {
const val dataRequestOnAttemptWait: Long = 2000 const val dataRequestOnAttemptWait: Long = 2000
const val imageRequestOnAttemptWait: Long = 2000 const val imageRequestOnAttemptWait: Long = 2000
var baseUrl = "http://192.168.1.156:8000/" var baseUrl = "http://192.168.1.156:8000/"
var connectedServerId: Int? = null
var selectedServerId = 0 var selectedServerId = 0
const val sensors_keyword = "_[{(S,e,n,s,o,r,s)}]_" const val sensors_keyword = "_[{(S,e,n,s,o,r,s)}]_"

@ -4,6 +4,7 @@
<gradient <gradient
android:centerY="0.7" android:centerY="0.7"
android:centerX="1.1"
android:startColor="?attr/settingsFragmentGradientStartColor" android:startColor="?attr/settingsFragmentGradientStartColor"
android:centerColor="?attr/settingsFragmentGradientCenterColor" android:centerColor="?attr/settingsFragmentGradientCenterColor"
android:endColor="?attr/settingsFragmentGradientEndColor" android:endColor="?attr/settingsFragmentGradientEndColor"

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:backgroundTint="?attr/exploreFragmentListItemBackgroundColor"
android:layout_margin="5dp" android:layout_margin="5dp"
card_view:cardCornerRadius="10dp"> android:backgroundTint="?attr/exploreFragmentListItemBackgroundColor"
card_view:cardCornerRadius="10dp"
card_view:cardElevation="4dp">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -30,9 +30,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:textColor="?attr/generalTextColor"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="?attr/generalTextColor"
card_view:layout_constraintStart_toEndOf="@+id/item_img" card_view:layout_constraintStart_toEndOf="@+id/item_img"
card_view:layout_constraintTop_toTopOf="parent" card_view:layout_constraintTop_toTopOf="parent"
tools:text="Title" /> tools:text="Title" />

@ -48,9 +48,6 @@
<action <action
android:id="@+id/mapFragment_to_infoFragment" android:id="@+id/mapFragment_to_infoFragment"
app:destination="@id/infoFragment" > app:destination="@id/infoFragment" >
<argument
android:name="loadAutomatically"
android:defaultValue="true" />
</action> </action>
<argument <argument
android:name="loadLastCoordinates" android:name="loadLastCoordinates"

@ -13,7 +13,7 @@
<color name="secondaryVariant">#F48FB1</color> <color name="secondaryVariant">#F48FB1</color>
<color name="onSecondary">@color/black</color> <color name="onSecondary">@color/black</color>
<color name="textOnTextBgColor">#fff</color> <color name="textOnTextBgColor">#E6FFFFFF</color>
<color name="generalIconsColor">#89000000</color> <color name="generalIconsColor">#89000000</color>
<color name="generalTextColor">#89000000</color> <color name="generalTextColor">#89000000</color>
<color name="secondaryTextColor">#96262626</color> <color name="secondaryTextColor">#96262626</color>
@ -38,7 +38,7 @@
<color name="exploreFragmentGradientStartColor" >#A1DEFC</color> <color name="exploreFragmentGradientStartColor" >#A1DEFC</color>
<color name="exploreFragmentGradientCenterColor" >#A5CBFF</color> <color name="exploreFragmentGradientCenterColor" >#A5CBFF</color>
<color name="exploreFragmentGradientEndColor" >#F9B6F6</color> <color name="exploreFragmentGradientEndColor" >#F9B6F6</color>
<color name="exploreFragmentListItemBackgroundColor">#fff</color> <color name="exploreFragmentListItemBackgroundColor">#FBF1FF</color>
<color name="homeFragmentGradientStartColor" >#83E1FF</color> <color name="homeFragmentGradientStartColor" >#83E1FF</color>
<color name="homeFragmentGradientCenterColor" >#9EC6FF</color> <color name="homeFragmentGradientCenterColor" >#9EC6FF</color>
@ -57,9 +57,15 @@
<color name="debugFragmentBg">#FF7272</color> <color name="debugFragmentBg">#FF7272</color>
<color name="contrastingGradientStartColor">#C4FFA5</color> <!--
<color name="contrastingGradientCenterColor">#D1FBA0</color> <color name="contrastingGradientStartColor">#99B0E4FE</color>
<color name="contrastingGradientEndColor">#F6FEBA</color> <color name="contrastingGradientCenterColor">#66B6E6EE</color>
<color name="contrastingGradientEndColor">#99C0D4FB</color> -->
<color name="contrastingGradientStartColor">#99C8FCFF</color>
<color name="contrastingGradientCenterColor">#99CCF7FF</color>
<color name="contrastingGradientEndColor">#99E7EFFF</color>
@ -72,53 +78,57 @@
<color name="secondaryVariantDark">#F48FB1</color> <color name="secondaryVariantDark">#F48FB1</color>
<color name="onSecondaryDark">@color/black</color> <color name="onSecondaryDark">@color/black</color>
<color name="textOnTextBgColorDark">#F2F2F2</color> <color name="textOnTextBgColorDark">#E7E7E7</color>
<color name="generalIconsColorDark">#CCC5C5C5</color> <color name="generalIconsColorDark">#CCBEBEBE</color>
<color name="generalTextColorDark">#D6D6D6</color> <color name="generalTextColorDark">#CCCCCC</color>
<color name="secondaryTextColorDark">#F0F5F5F5</color> <color name="secondaryTextColorDark">#CDE0DFDF</color>
<color name="bottomNavBarCheckedItemColorDark">#4343E6</color> <color name="bottomNavBarCheckedItemColorDark">#F76751F8</color>
<color name="bottomNavBarItemColorDark">#0C16AA</color> <color name="bottomNavBarItemColorDark">#F75241C2</color>
<color name="bottomNavBarRippleColorDark">#604B4B4B</color> <color name="bottomNavBarRippleColorDark">#26644F69</color>
<color name="statusBarColorDark">#EC000000</color> <color name="statusBarColorDark">#EC000000</color>
<color name="textBackgroundGradientStartColorDark" >#A3422392</color> <color name="textBackgroundGradientStartColorDark" >#80AC78C4</color>
<color name="textBackgroundGradientEndColorDark" >#9451357D</color> <color name="textBackgroundGradientEndColorDark" >#80855C95</color>
<color name="bottomNavBarGradientStartColorDark" >#0F0F1C</color> <color name="bottomNavBarGradientStartColorDark" >#33284E</color>
<color name="bottomNavBarGradientEndColorDark" >#0F0B15</color> <color name="bottomNavBarGradientEndColorDark" >#302444</color>
<color name="fileViewBackgroundColorDark">#2643386A</color> <color name="fileViewBackgroundColorDark">#4D473D6A</color>
<color name="messageBackgroundColorDark">#2643386A</color> <color name="messageBackgroundColorDark">#2DC39CE1</color>
<color name="debugFragmentBgDark">#6F3131</color> <color name="debugFragmentBgDark">#6F3131</color>
<color name="chatFragmentGradientStartColorDark" >#36135C</color> <color name="chatFragmentGradientStartColorDark" >#4D306D</color>
<color name="chatFragmentGradientCenterColorDark" >#06134B</color> <color name="chatFragmentGradientCenterColorDark" >#222D54</color>
<color name="chatFragmentGradientEndColorDark" >#030729</color> <color name="chatFragmentGradientEndColorDark" >#1D2043</color>
<color name="chatFragmentBgStrokeColorDark" >#191021</color> <color name="chatFragmentBgStrokeColorDark" >#221934</color>
<color name="chatFragmentWriteBarBgColorDark">#BF323232</color> <color name="chatFragmentWriteBarBgColorDark">#BF323232</color>
<color name="exploreFragmentGradientStartColorDark" >#091121</color> <color name="exploreFragmentGradientStartColorDark" >#1E293E</color>
<color name="exploreFragmentGradientCenterColorDark" >#08133A</color> <color name="exploreFragmentGradientCenterColorDark" >#212C51</color>
<color name="exploreFragmentGradientEndColorDark" >#FA2D1148</color> <color name="exploreFragmentGradientEndColorDark" >#FA452862</color>
<color name="exploreFragmentListItemBackgroundColorDark">#1B1A1F</color> <color name="exploreFragmentListItemBackgroundColorDark">#323251</color>
. .
<color name="homeFragmentGradientStartColorDark" >#001132</color> <color name="homeFragmentGradientStartColorDark" >#263863</color>
<color name="homeFragmentGradientCenterColorDark" >#0B204A</color> <color name="homeFragmentGradientCenterColorDark" >#1F2360</color>
<color name="homeFragmentGradientEndColorDark" >#36054F</color> <color name="homeFragmentGradientEndColorDark" >#452159</color>
<color name="settingsFragmentGradientStartColorDark" >#2D145B</color> <color name="settingsFragmentGradientStartColorDark" >#4B3377</color>
<color name="settingsFragmentGradientCenterColorDark" >#140945</color> <color name="settingsFragmentGradientCenterColorDark" >#352C5B</color>
<color name="settingsFragmentGradientEndColorDark" >#0F1237</color> <color name="settingsFragmentGradientEndColorDark" >#2B2E5C</color>
<color name="infoFragmentGradientStartColorDark" >#380B4B</color> <color name="infoFragmentGradientStartColorDark" >#542766</color>
<color name="infoFragmentGradientCenterColorDark" >#0E1A33</color> <color name="infoFragmentGradientCenterColorDark" >#1A294A</color>
<color name="infoFragmentGradientEndColorDark" >#0B1D4B</color> <color name="infoFragmentGradientEndColorDark" >#2A3B65</color>
<color name="contrastingGradientStartColorDark">#8833374A</color> <color name="contrastingGradientStartColorDark">#8842475F</color>
<color name="contrastingGradientCenterColorDark">#79454D78</color>
<color name="contrastingGradientEndColorDark">#6F363F67</color>
<!--<color name="contrastingGradientStartColorDark">#8833374A</color>
<color name="contrastingGradientCenterColorDark">#7932395E</color> <color name="contrastingGradientCenterColorDark">#7932395E</color>
<color name="contrastingGradientEndColorDark">#6F252D4E</color> <color name="contrastingGradientEndColorDark">#6F252D4E</color> -->
<!-- <!--