_
This commit is contained in:
parent
2045cb4425
commit
d8d3ff9b8e
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
package="com.example.wikispot">
|
package="com.example.wikispot">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
@ -35,8 +34,8 @@
|
|||||||
android:value="@string/google_maps_key" />
|
android:value="@string/google_maps_key" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.MainActivity"
|
android:name=".activities.MainActivity">
|
||||||
android:screenOrientation="portrait">
|
<!--android:screenOrientation="portrait"> -->
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
@ -230,6 +230,10 @@ class MainActivity : AppCompatActivity() {
|
|||||||
"settingsFragment" -> {
|
"settingsFragment" -> {
|
||||||
mainBottomNavigationView.selectedItemId = R.id.settingsFragment
|
mainBottomNavigationView.selectedItemId = R.id.settingsFragment
|
||||||
}
|
}
|
||||||
|
"debugFragment" -> {
|
||||||
|
StartDirections.settingsFragmentStartDirection = "debugFragment"
|
||||||
|
mainBottomNavigationView.selectedItemId = R.id.settingsFragment
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,23 +1,31 @@
|
|||||||
package com.example.wikispot.adapters
|
package com.example.wikispot.adapters
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
|
import android.net.Uri
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.animation.Animation
|
import android.view.animation.Animation
|
||||||
import android.view.animation.AnimationUtils
|
import android.view.animation.AnimationUtils
|
||||||
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.example.wikispot.R
|
import com.example.wikispot.R
|
||||||
import com.example.wikispot.ServerManagement
|
import com.example.wikispot.ServerManagement
|
||||||
import com.example.wikispot.modelsForAdapters.FileView
|
import com.example.wikispot.modelsForAdapters.FileView
|
||||||
import kotlinx.android.synthetic.main.file_view.view.*
|
import kotlinx.android.synthetic.main.file_view.view.*
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileOutputStream
|
||||||
|
import java.net.URL
|
||||||
|
|
||||||
|
|
||||||
class FileViewsAdapter(private val context: Context, private val fileViews: Array<FileView?>) : RecyclerView.Adapter<FileViewsAdapter.MyViewHolder>() {
|
class FileViewsAdapter(private val context: Context, private val fileViews: Array<FileView?>) : RecyclerView.Adapter<FileViewsAdapter.MyViewHolder>() {
|
||||||
|
|
||||||
private val rotateOpen: Animation by lazy { AnimationUtils.loadAnimation(context, R.anim.open_rotation_anim) }
|
private val rotateOpen: Animation by lazy { AnimationUtils.loadAnimation(context, R.anim.open_rotation_anim) }
|
||||||
private val rotateClose: Animation by lazy { AnimationUtils.loadAnimation(context, R.anim.close_rotation_anim) }
|
private val rotateClose: Animation by lazy { AnimationUtils.loadAnimation(context, R.anim.close_rotation_anim) }
|
||||||
|
private val fadeIn: Animation by lazy {AnimationUtils.loadAnimation(context, R.anim.fade_in) }
|
||||||
|
private val fadeOut: Animation by lazy {AnimationUtils.loadAnimation(context, R.anim.fade_out) }
|
||||||
|
|
||||||
inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
|
inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
|
||||||
|
|
||||||
@ -31,6 +39,8 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
|
|||||||
init {
|
init {
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
if (!opened) {
|
if (!opened) {
|
||||||
|
itemView.downloadFileBtn.visibility = View.VISIBLE
|
||||||
|
itemView.downloadFileBtn.startAnimation(fadeIn)
|
||||||
itemView.showFileBtn.startAnimation(rotateOpen)
|
itemView.showFileBtn.startAnimation(rotateOpen)
|
||||||
|
|
||||||
fileView?.let {
|
fileView?.let {
|
||||||
@ -60,18 +70,46 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
|
|||||||
}
|
}
|
||||||
pdfUrl?.let {
|
pdfUrl?.let {
|
||||||
itemView.pdfContent.visibility = View.VISIBLE
|
itemView.pdfContent.visibility = View.VISIBLE
|
||||||
ServerManagement.serverManager.loadPdfView(itemView.pdfContent, pdfUrl!!)
|
ServerManagement.serverManager.loadPdfView(itemView.pdfContent, pdfUrl!!, true)
|
||||||
|
println("current page is: ${itemView.pdfContent.currentPage}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
itemView.showFileBtn.startAnimation(rotateClose)
|
itemView.showFileBtn.startAnimation(rotateClose)
|
||||||
itemView.textContent.textSize = 0F
|
itemView.textContent.textSize = 0F
|
||||||
|
|
||||||
|
val downloadBtnVanishActionThread = Thread(DownloadBtnVanishAction())
|
||||||
|
downloadBtnVanishActionThread.start()
|
||||||
|
|
||||||
itemView.imageContent.visibility = View.GONE
|
itemView.imageContent.visibility = View.GONE
|
||||||
itemView.pdfContent.visibility = View.GONE
|
itemView.pdfContent.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
opened = !opened
|
opened = !opened
|
||||||
}
|
}
|
||||||
|
|
||||||
|
itemView.downloadFileBtn.setOnClickListener {
|
||||||
|
textInfo?.let {
|
||||||
|
val textInformation = textInfo!!.split("|||||")
|
||||||
|
val url = "${ServerManagement.baseUrl}files/${textInformation[0]}/${textInformation[1]}"
|
||||||
|
|
||||||
|
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||||
|
startActivity(context, browserIntent, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
imgInfo?.let {
|
||||||
|
val imgInformation = imgInfo!!.split("|||||")
|
||||||
|
val url = "${ServerManagement.baseUrl}files/${imgInformation[0]}/${imgInformation[1]}"
|
||||||
|
|
||||||
|
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||||
|
startActivity(context, browserIntent, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
pdfUrl?.let {
|
||||||
|
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(pdfUrl))
|
||||||
|
startActivity(context, browserIntent, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setData(fileView: FileView?, pos: Int) {
|
fun setData(fileView: FileView?, pos: Int) {
|
||||||
@ -92,6 +130,24 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
|
|||||||
this.fileView = fileView
|
this.fileView = fileView
|
||||||
this.pos = pos
|
this.pos = pos
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inner class DownloadBtnVanishAction: Runnable {
|
||||||
|
override fun run() {
|
||||||
|
|
||||||
|
itemView.post {
|
||||||
|
itemView.downloadFileBtn.startAnimation(fadeOut)
|
||||||
|
}
|
||||||
|
|
||||||
|
Thread.sleep(600)
|
||||||
|
|
||||||
|
itemView.post {
|
||||||
|
itemView.downloadFileBtn.clearAnimation()
|
||||||
|
itemView.downloadFileBtn.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
|
||||||
|
@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.example.wikispot.R
|
import com.example.wikispot.R
|
||||||
|
import com.example.wikispot.ServerManagement
|
||||||
import com.example.wikispot.adapters.ChatMessagesAdapter
|
import com.example.wikispot.adapters.ChatMessagesAdapter
|
||||||
import com.example.wikispot.adapters.FileViewsAdapter
|
import com.example.wikispot.adapters.FileViewsAdapter
|
||||||
import com.example.wikispot.modelsForAdapters.MessagesSupplier
|
import com.example.wikispot.modelsForAdapters.MessagesSupplier
|
||||||
@ -20,8 +21,24 @@ class chatFragment : Fragment(R.layout.fragment_chat) {
|
|||||||
updateRecyclerView()
|
updateRecyclerView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
|
||||||
|
val dataReceiver: (String) -> Unit = {data: String ->
|
||||||
|
println("[debug][chat connection] data: $data")
|
||||||
|
}
|
||||||
|
|
||||||
|
ServerManagement.serverManager.addReceiverConnection(dataReceiver, requireContext(), "chatConnection", 0, ServerManagement.chat_keyword)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
ServerManagement.serverManager.deleteConnection("chatConnection")
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateRecyclerView() {
|
private fun updateRecyclerView() {
|
||||||
|
|
||||||
|
try {
|
||||||
chat_messages_recycler_view.post {
|
chat_messages_recycler_view.post {
|
||||||
val layoutManager = LinearLayoutManager(context)
|
val layoutManager = LinearLayoutManager(context)
|
||||||
layoutManager.orientation = LinearLayoutManager.VERTICAL
|
layoutManager.orientation = LinearLayoutManager.VERTICAL
|
||||||
@ -30,6 +47,7 @@ class chatFragment : Fragment(R.layout.fragment_chat) {
|
|||||||
val adapter = context?.let { ChatMessagesAdapter(it, MessagesSupplier.messages) }
|
val adapter = context?.let { ChatMessagesAdapter(it, MessagesSupplier.messages) }
|
||||||
chat_messages_recycler_view.adapter = adapter
|
chat_messages_recycler_view.adapter = adapter
|
||||||
}
|
}
|
||||||
|
} catch (e: Throwable) { println("[debug] e5 Exception: $e") }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
package com.example.wikispot.fragments
|
package com.example.wikispot.fragments
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
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 com.example.wikispot.IntentsKeys
|
||||||
import com.example.wikispot.R
|
import com.example.wikispot.R
|
||||||
import com.example.wikispot.ServerManagement
|
import com.example.wikispot.ServerManagement
|
||||||
|
import com.example.wikispot.activities.MainActivity
|
||||||
import com.example.wikispot.modelClasses.JsonManager
|
import com.example.wikispot.modelClasses.JsonManager
|
||||||
import kotlinx.android.synthetic.main.fragment_debug.*
|
import kotlinx.android.synthetic.main.fragment_debug.*
|
||||||
|
|
||||||
|
|
||||||
class debugFragment : Fragment(R.layout.fragment_debug) {
|
class debugFragment : Fragment(R.layout.fragment_debug) {
|
||||||
|
|
||||||
private lateinit var jsonManager: JsonManager
|
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
@ -27,30 +28,31 @@ class debugFragment : Fragment(R.layout.fragment_debug) {
|
|||||||
outputText.text = ServerManagement.totalNumberOfRequestsSent.toString()
|
outputText.text = ServerManagement.totalNumberOfRequestsSent.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
val pdfRequestThread = Thread(PdfRequest())
|
clearServerConnectionsBtn.setOnClickListener {
|
||||||
pdfRequestThread.start()
|
ServerManagement.serverManager.clearConnections()
|
||||||
|
}
|
||||||
|
|
||||||
|
editTextIp.setText(ServerManagement.baseUrl)
|
||||||
|
|
||||||
|
changeIpBtn.setOnClickListener {
|
||||||
|
ServerManagement.baseUrl = editTextIp.text.toString()
|
||||||
|
restartAppPartially()
|
||||||
|
}
|
||||||
|
|
||||||
|
restartAppPartiallyBtn.setOnClickListener {
|
||||||
|
restartAppPartially()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class PdfRequest : Runnable {
|
private fun restartAppPartially() {
|
||||||
|
val intent = Intent(context?.applicationContext, MainActivity::class.java)
|
||||||
|
|
||||||
override fun run() {
|
intent.putExtra(IntentsKeys.startFragment, "debugFragment")
|
||||||
val inputStream = java.net.URL("${ServerManagement.baseUrl}files/1/sample.pdf").openStream()
|
|
||||||
|
|
||||||
Thread.sleep(500)
|
ServerManagement.serverManager.clearConnections()
|
||||||
|
|
||||||
pdfContent.post {
|
startActivity(intent)
|
||||||
pdfContent.fromStream(inputStream).load()
|
activity?.finish()
|
||||||
pdfContent.zoomTo(pdfContent.width / 490.0F)
|
|
||||||
println("[debug] zoom is ${pdfContent.width / 490.0F}")
|
|
||||||
println(pdfContent.width)
|
|
||||||
Thread.sleep(1000)
|
|
||||||
println(pdfContent.currentPage)
|
|
||||||
}
|
|
||||||
|
|
||||||
ServerManagement.totalNumberOfRequestsSent += 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -65,7 +65,7 @@ class infoFragment : Fragment(R.layout.fragment_info) {
|
|||||||
val json = JsonManager(requireContext(), data)
|
val json = JsonManager(requireContext(), data)
|
||||||
json.findJsonObjectByAttribute("ID", serverId)
|
json.findJsonObjectByAttribute("ID", serverId)
|
||||||
|
|
||||||
mainImage?.let {
|
mainTitle?.let {
|
||||||
mainTitle.post {
|
mainTitle.post {
|
||||||
mainTitle.text = json.getAttributeContentByPath("description/title")
|
mainTitle.text = json.getAttributeContentByPath("description/title")
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ class infoFragment : Fragment(R.layout.fragment_info) {
|
|||||||
val adapter = context?.let { LabeledValuesAdapter(it, LabeledValuesSupplier.labeledValues) }
|
val adapter = context?.let { LabeledValuesAdapter(it, LabeledValuesSupplier.labeledValues) }
|
||||||
labeled_values_recycler_view.adapter = adapter
|
labeled_values_recycler_view.adapter = adapter
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) { println("[debug] e3 that i couldnt fix so try catch Exception: $e") }
|
} catch (e: Throwable) { println("[debug] e3 Exception: $e") }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +192,7 @@ class infoFragment : Fragment(R.layout.fragment_info) {
|
|||||||
val adapter = context?.let { FileViewsAdapter(it, FileViewsSupplier.fileViews) }
|
val adapter = context?.let { FileViewsAdapter(it, FileViewsSupplier.fileViews) }
|
||||||
file_views_recycler_view.adapter = adapter
|
file_views_recycler_view.adapter = adapter
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) { println("[debug] e2 that i couldnt fix so try catch Exception: $e") }
|
} catch (e: Throwable) { println("[debug] e2 Exception: $e") }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,8 @@ class mapFragment : Fragment(), GoogleMap.OnMarkerClickListener {
|
|||||||
// loading other markers
|
// loading other markers
|
||||||
for (n in PlaceSupplier.places.indices) {
|
for (n in PlaceSupplier.places.indices) {
|
||||||
val coordinates = PlaceSupplier.places[n]?.location!!.split(",")
|
val coordinates = PlaceSupplier.places[n]?.location!!.split(",")
|
||||||
googleMap.addMarker(MarkerOptions().position(LatLng(coordinates[0].toDouble(), coordinates[1].toDouble())).title(PlaceSupplier.places[n]?.title))
|
googleMap.addMarker(MarkerOptions().position(LatLng(coordinates[0].toDouble(), coordinates[1].toDouble())).title(PlaceSupplier.places[n]?.title)
|
||||||
|
.snippet(PlaceSupplier.places[n]!!.description))
|
||||||
}
|
}
|
||||||
|
|
||||||
googleMap.setOnMarkerClickListener(this)
|
googleMap.setOnMarkerClickListener(this)
|
||||||
|
@ -5,10 +5,7 @@ import android.os.Bundle
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
import com.example.wikispot.IntentsKeys
|
import com.example.wikispot.*
|
||||||
import com.example.wikispot.R
|
|
||||||
import com.example.wikispot.ServerManagement
|
|
||||||
import com.example.wikispot.ThemeOptions
|
|
||||||
import com.example.wikispot.activities.MainActivity
|
import com.example.wikispot.activities.MainActivity
|
||||||
import com.example.wikispot.modelClasses.ServerManager
|
import com.example.wikispot.modelClasses.ServerManager
|
||||||
import com.example.wikispot.modelClasses.SettingsSaveManager
|
import com.example.wikispot.modelClasses.SettingsSaveManager
|
||||||
@ -22,6 +19,15 @@ class settingsFragment : Fragment(R.layout.fragment_settings) {
|
|||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
|
StartDirections.settingsFragmentStartDirection?.let {
|
||||||
|
when (StartDirections.settingsFragmentStartDirection) {
|
||||||
|
"debugFragment" -> {
|
||||||
|
Navigation.findNavController(debugBtn).navigate(R.id.navigateToDebugFragment)
|
||||||
|
StartDirections.settingsFragmentStartDirection = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
settingsSaveManager = SettingsSaveManager(requireContext())
|
settingsSaveManager = SettingsSaveManager(requireContext())
|
||||||
|
|
||||||
loadSettings()
|
loadSettings()
|
||||||
|
@ -128,16 +128,16 @@ class ServerManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadPdfView(view: PDFView, url: String) {
|
fun loadPdfView(view: PDFView, url: String, swipeHorizontal: Boolean=false) {
|
||||||
val pdfLoadingRequestThread = Thread(PdfLoadingRequest(view, url))
|
val pdfLoadingRequestThread = Thread(PdfLoadingRequest(view, url, swipeHorizontal))
|
||||||
pdfLoadingRequestThread.start()
|
pdfLoadingRequestThread.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class PdfLoadingRequest(val view: PDFView, val url: String): Runnable {
|
inner class PdfLoadingRequest(val view: PDFView, val url: String, private val swipeHorizontal: Boolean=false): Runnable {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
val inputStream = java.net.URL(url).openStream()
|
val inputStream = java.net.URL(url).openStream()
|
||||||
view.post {
|
view.post {
|
||||||
view.fromStream(inputStream).load()
|
view.fromStream(inputStream).swipeHorizontal(swipeHorizontal).load()
|
||||||
view.zoomTo(view.width / 490.0F)
|
view.zoomTo(view.width / 490.0F)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,15 +150,15 @@ class ServerManager {
|
|||||||
for (i in 0 until receiverConnections.size) {
|
for (i in 0 until receiverConnections.size) {
|
||||||
try {
|
try {
|
||||||
receiverConnections[i].running = false
|
receiverConnections[i].running = false
|
||||||
receiverConnections.removeAt(i)
|
|
||||||
} catch (e: Throwable) { println("In clearConnections: $e") }
|
} catch (e: Throwable) { println("In clearConnections: $e") }
|
||||||
}
|
}
|
||||||
|
receiverConnections = mutableListOf()
|
||||||
for (i in 0 until viewConnections.size) {
|
for (i in 0 until viewConnections.size) {
|
||||||
try {
|
try {
|
||||||
viewConnections[i].running = false
|
viewConnections[i].running = false
|
||||||
viewConnections.removeAt(i)
|
|
||||||
} catch (e: Throwable) { println("In clearConnections: $e") }
|
} catch (e: Throwable) { println("In clearConnections: $e") }
|
||||||
}
|
}
|
||||||
|
viewConnections = mutableListOf()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun checkIfConnectionAlreadyExists(connectionName: String, connectionType: String="any"): Boolean{
|
fun checkIfConnectionAlreadyExists(connectionName: String, connectionType: String="any"): Boolean{
|
||||||
|
@ -2,16 +2,11 @@ package com.example.wikispot.modelsForAdapters
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.media.Image
|
|
||||||
import com.example.wikispot.ScreenParameters
|
|
||||||
import com.example.wikispot.getStringFromSharedPreferences
|
import com.example.wikispot.getStringFromSharedPreferences
|
||||||
import com.example.wikispot.modelClasses.JsonManager
|
import com.example.wikispot.modelClasses.JsonManager
|
||||||
import com.example.wikispot.modelClasses.JsonManagerLite
|
import com.example.wikispot.modelClasses.JsonManagerLite
|
||||||
import com.example.wikispot.saveString
|
import com.example.wikispot.saveString
|
||||||
import com.google.android.gms.maps.model.LatLng
|
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
import java.lang.IndexOutOfBoundsException
|
|
||||||
import java.lang.NullPointerException
|
|
||||||
|
|
||||||
data class PlacePreview(var title: String, var description: String, var location: String? = null, var img: Bitmap? = null, val id: Int?=null) {
|
data class PlacePreview(var title: String, var description: String, var location: String? = null, var img: Bitmap? = null, val id: Int?=null) {
|
||||||
|
|
||||||
@ -41,9 +36,9 @@ object PlaceSupplier {
|
|||||||
var controlJson: JsonManagerLite? = null
|
var controlJson: JsonManagerLite? = null
|
||||||
|
|
||||||
var places = arrayOf<PlacePreview?>(
|
var places = arrayOf<PlacePreview?>(
|
||||||
PlacePreview("River", "", "39.94071648123733,-85.9346308193051"),
|
PlacePreview("River", "", "39.94071648123733,-85.9346308193051", null, 12),
|
||||||
PlacePreview("Velky Manin", "", "49.12590793522579,18.49571849264312"),
|
PlacePreview("Velky Manin", "", "49.12590793522579,18.49571849264312", null, 16),
|
||||||
PlacePreview("Klapy", "", "49.161527643132175,18.41231657316252")
|
PlacePreview("Klapy", "", "49.161527643132175,18.41231657316252", null, 18)
|
||||||
)
|
)
|
||||||
|
|
||||||
fun appendPlace(place: PlacePreview) {
|
fun appendPlace(place: PlacePreview) {
|
||||||
@ -88,6 +83,7 @@ object PlaceSupplier {
|
|||||||
val jsonManager = JsonManager(context, save)
|
val jsonManager = JsonManager(context, save)
|
||||||
for (n in 0 until jsonManager.getLengthOfJsonArray()) {
|
for (n in 0 until jsonManager.getLengthOfJsonArray()) {
|
||||||
val savedData = jsonManager.jsonArray?.get(n).toString().split("|||||")
|
val savedData = jsonManager.jsonArray?.get(n).toString().split("|||||")
|
||||||
|
println("[debug] saved data is $savedData")
|
||||||
val place = PlacePreview(savedData[0], savedData[1], savedData[2], null, savedData[3].toInt())
|
val place = PlacePreview(savedData[0], savedData[1], savedData[2], null, savedData[3].toInt())
|
||||||
if (!checkIfContains(place)) {
|
if (!checkIfContains(place)) {
|
||||||
appendPlace(place)
|
appendPlace(place)
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package com.example.wikispot.modelsForAdapters
|
package com.example.wikispot.modelsForAdapters
|
||||||
|
|
||||||
import android.graphics.Bitmap
|
|
||||||
|
|
||||||
data class FileView(val filetype: String, val filename: String, var textInfo: String? = null, var imgInfo: String? = null, var pdfUrl: String? = null)
|
data class FileView(val filetype: String, val filename: String, var textInfo: String? = null, var imgInfo: String? = null, var pdfUrl: String? = null)
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +13,10 @@ object MessagesSupplier {
|
|||||||
messages = array
|
messages = array
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun checkIfContains(message: Message) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fun wipeData() {
|
fun wipeData() {
|
||||||
messages = arrayOf()
|
messages = arrayOf()
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,11 @@ object ServerManagement {
|
|||||||
const val viewConnectionOnCheckWait: Long = 5000
|
const val viewConnectionOnCheckWait: Long = 5000
|
||||||
const val dataRequestOnAttemptWait: Long = 2000
|
const val dataRequestOnAttemptWait: Long = 2000
|
||||||
const val imageRequestOnAttemptWait: Long = 2000
|
const val imageRequestOnAttemptWait: Long = 2000
|
||||||
const val baseUrl = "http://192.168.1.156:8000/"
|
var baseUrl = "http://192.168.1.156:8000/"
|
||||||
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)}]_"
|
||||||
|
const val chat_keyword = "_[{(C,h,a,t)}]_"
|
||||||
|
|
||||||
var totalNumberOfRequestsSent = 0
|
var totalNumberOfRequestsSent = 0
|
||||||
}
|
}
|
||||||
@ -50,7 +51,9 @@ object CustomBackstackVariables {
|
|||||||
|
|
||||||
|
|
||||||
object ThemeOptions {
|
object ThemeOptions {
|
||||||
|
|
||||||
var darkTheme = false
|
var darkTheme = false
|
||||||
|
}
|
||||||
|
|
||||||
|
object StartDirections {
|
||||||
|
var settingsFragmentStartDirection: String? = null
|
||||||
}
|
}
|
||||||
|
9
app/WikiSpot/app/src/main/res/anim/fade_in.xml
Normal file
9
app/WikiSpot/app/src/main/res/anim/fade_in.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true">
|
||||||
|
|
||||||
|
<alpha
|
||||||
|
android:fromAlpha="0"
|
||||||
|
android:toAlpha="1"
|
||||||
|
android:duration="600"/>
|
||||||
|
|
||||||
|
</set>
|
9
app/WikiSpot/app/src/main/res/anim/fade_out.xml
Normal file
9
app/WikiSpot/app/src/main/res/anim/fade_out.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true">
|
||||||
|
|
||||||
|
<alpha
|
||||||
|
android:fromAlpha="1"
|
||||||
|
android:toAlpha="0"
|
||||||
|
android:duration="600"/>
|
||||||
|
|
||||||
|
</set>
|
@ -6,5 +6,5 @@
|
|||||||
android:tint="?attr/colorControlNormal">
|
android:tint="?attr/colorControlNormal">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@android:color/white"
|
android:fillColor="@android:color/white"
|
||||||
android:pathData="M7,14l5,-5 5,5H7z"/>
|
android:pathData="M7,10l5,5 5,-5z"/>
|
||||||
</vector>
|
</vector>
|
@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M5,20h14v-2H5V20zM19,9h-4V3H9v6H5l7,7L19,9z"/>
|
||||||
|
</vector>
|
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shape="rectangle">
|
|
||||||
<gradient
|
|
||||||
android:centerY="0.6"
|
|
||||||
android:startColor="?attr/mapFragmentGradientStartColor"
|
|
||||||
android:centerColor="?attr/mapFragmentGradientCenterColor"
|
|
||||||
android:endColor="?attr/mapFragmentGradientEndColor"
|
|
||||||
android:type="linear"
|
|
||||||
android:angle="225"/>
|
|
||||||
</shape>
|
|
@ -33,7 +33,7 @@
|
|||||||
android:scaleY="4"
|
android:scaleY="4"
|
||||||
card_view:layout_constraintEnd_toEndOf="parent"
|
card_view:layout_constraintEnd_toEndOf="parent"
|
||||||
card_view:layout_constraintTop_toTopOf="parent"
|
card_view:layout_constraintTop_toTopOf="parent"
|
||||||
card_view:srcCompat="@drawable/ic_sharp_arrow_drop_up_24" />
|
card_view:srcCompat="@drawable/ic_baseline_arrow_drop_down_24" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textContent"
|
android:id="@+id/textContent"
|
||||||
@ -71,6 +71,17 @@
|
|||||||
card_view:layout_constraintHorizontal_bias="0.5"
|
card_view:layout_constraintHorizontal_bias="0.5"
|
||||||
card_view:layout_constraintStart_toStartOf="parent" />
|
card_view:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/downloadFileBtn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="32dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
card_view:layout_constraintBottom_toBottomOf="@+id/showFileBtn"
|
||||||
|
card_view:layout_constraintEnd_toStartOf="@+id/showFileBtn"
|
||||||
|
card_view:layout_constraintTop_toTopOf="@+id/showFileBtn"
|
||||||
|
card_view:srcCompat="@drawable/ic_baseline_download_24" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
@ -31,12 +31,13 @@
|
|||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
android:id="@+id/scrollView3"
|
android:id="@+id/scrollView3"
|
||||||
android:layout_width="0dp"
|
android:layout_width="252dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="32dp"
|
android:layout_marginTop="16dp"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/getNumberOfSentRequestsBtn"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/getNumberOfSentRequestsBtn"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/getNumberOfSentRequestsBtn">
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/clearServerConnectionsBtn">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -54,15 +55,48 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<com.github.barteksc.pdfviewer.PDFView
|
<Button
|
||||||
android:id="@+id/pdfContent"
|
android:id="@+id/changeIpBtn"
|
||||||
android:layout_width="200dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="300dp"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Change IP"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/editTextIp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/editTextIp"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:ems="10"
|
||||||
|
android:inputType="textPersonName"
|
||||||
|
android:text="Name"
|
||||||
|
app:layout_constraintEnd_toEndOf="@+id/scrollView3"
|
||||||
|
app:layout_constraintStart_toStartOf="@+id/scrollView3"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/scrollView3" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/clearServerConnectionsBtn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Clear server connections"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/scrollView3"
|
app:layout_constraintTop_toBottomOf="@+id/getNumberOfSentRequestsBtn" />
|
||||||
app:layout_constraintVertical_bias="0.17000002" />
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/restartAppPartiallyBtn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Restart app partially"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/changeIpBtn" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/home_title"
|
android:id="@+id/home_title"
|
||||||
@ -34,12 +34,15 @@
|
|||||||
android:name="com.example.wikispot.fragments.infoFragment"
|
android:name="com.example.wikispot.fragments.infoFragment"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginTop="40dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView4">
|
app:layout_constraintTop_toBottomOf="@+id/home_title">
|
||||||
|
|
||||||
</androidx.fragment.app.FragmentContainerView>
|
</androidx.fragment.app.FragmentContainerView>
|
||||||
|
|
||||||
|
@ -21,10 +21,6 @@
|
|||||||
<attr name="homeFragmentGradientCenterColor" format="color"/>
|
<attr name="homeFragmentGradientCenterColor" format="color"/>
|
||||||
<attr name="homeFragmentGradientEndColor" format="color"/>
|
<attr name="homeFragmentGradientEndColor" format="color"/>
|
||||||
|
|
||||||
<attr name="mapFragmentGradientStartColor" format="color"/>
|
|
||||||
<attr name="mapFragmentGradientCenterColor" format="color"/>
|
|
||||||
<attr name="mapFragmentGradientEndColor" format="color"/>
|
|
||||||
|
|
||||||
<attr name="settingsFragmentGradientStartColor" format="color"/>
|
<attr name="settingsFragmentGradientStartColor" format="color"/>
|
||||||
<attr name="settingsFragmentGradientCenterColor" format="color"/>
|
<attr name="settingsFragmentGradientCenterColor" format="color"/>
|
||||||
<attr name="settingsFragmentGradientEndColor" format="color"/>
|
<attr name="settingsFragmentGradientEndColor" format="color"/>
|
||||||
|
@ -35,10 +35,6 @@
|
|||||||
<color name="homeFragmentGradientCenterColor" >#9EC6FF</color>
|
<color name="homeFragmentGradientCenterColor" >#9EC6FF</color>
|
||||||
<color name="homeFragmentGradientEndColor" >#FEBBFF</color>
|
<color name="homeFragmentGradientEndColor" >#FEBBFF</color>
|
||||||
|
|
||||||
<color name="mapFragmentGradientStartColor" >#FBBEFC</color>
|
|
||||||
<color name="mapFragmentGradientCenterColor" >#A5CBFF</color>
|
|
||||||
<color name="mapFragmentGradientEndColor" >#95DDFC</color>
|
|
||||||
|
|
||||||
<color name="settingsFragmentGradientStartColor" >#92EB97FC</color>
|
<color name="settingsFragmentGradientStartColor" >#92EB97FC</color>
|
||||||
<color name="settingsFragmentGradientCenterColor" >#A198F9</color>
|
<color name="settingsFragmentGradientCenterColor" >#A198F9</color>
|
||||||
<color name="settingsFragmentGradientEndColor" >#74C7F7</color>
|
<color name="settingsFragmentGradientEndColor" >#74C7F7</color>
|
||||||
@ -79,10 +75,6 @@
|
|||||||
<color name="homeFragmentGradientCenterColorDark" >#9EC6FF</color>
|
<color name="homeFragmentGradientCenterColorDark" >#9EC6FF</color>
|
||||||
<color name="homeFragmentGradientEndColorDark" >#FEBBFF</color>
|
<color name="homeFragmentGradientEndColorDark" >#FEBBFF</color>
|
||||||
|
|
||||||
<color name="mapFragmentGradientStartColorDark" >#FBBEFC</color>
|
|
||||||
<color name="mapFragmentGradientCenterColorDark" >#A5CBFF</color>
|
|
||||||
<color name="mapFragmentGradientEndColorDark" >#95DDFC</color>
|
|
||||||
|
|
||||||
<color name="settingsFragmentGradientStartColorDark" >#92EB97FC</color>
|
<color name="settingsFragmentGradientStartColorDark" >#92EB97FC</color>
|
||||||
<color name="settingsFragmentGradientCenterColorDark" >#A198F9</color>
|
<color name="settingsFragmentGradientCenterColorDark" >#A198F9</color>
|
||||||
<color name="settingsFragmentGradientEndColorDark" >#74C7F7</color>
|
<color name="settingsFragmentGradientEndColorDark" >#74C7F7</color>
|
||||||
|
@ -5,21 +5,8 @@
|
|||||||
<string name="home">Home</string>
|
<string name="home">Home</string>
|
||||||
<string name="map">Map</string>
|
<string name="map">Map</string>
|
||||||
<string name="settings">Settings</string>
|
<string name="settings">Settings</string>
|
||||||
<!-- TODO: Remove or change this placeholder text -->
|
|
||||||
<string name="hello_blank_fragment">Hello blank fragment</string>
|
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||||
<!-- Preference Titles -->
|
|
||||||
<string name="messages_header">Messages</string>
|
|
||||||
<string name="sync_header">Sync</string>
|
|
||||||
|
|
||||||
<!-- Messages Preferences -->
|
|
||||||
<string name="signature_title">Your signature</string>
|
|
||||||
<string name="reply_title">Default reply action</string>
|
|
||||||
|
|
||||||
<!-- Sync Preferences -->
|
|
||||||
<string name="sync_title">Sync email periodically</string>
|
|
||||||
<string name="attachment_title">Download incoming attachments</string>
|
|
||||||
<string name="attachment_summary_on">Automatically download attachments for incoming emails
|
|
||||||
</string>
|
|
||||||
<string name="attachment_summary_off">Only download attachments when manually requested</string>
|
|
||||||
<string name="files">Files</string>
|
<string name="files">Files</string>
|
||||||
</resources>
|
</resources>
|
@ -32,10 +32,6 @@
|
|||||||
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColor</item>
|
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColor</item>
|
||||||
<item name="homeFragmentGradientEndColor" >@color/homeFragmentGradientEndColor</item>
|
<item name="homeFragmentGradientEndColor" >@color/homeFragmentGradientEndColor</item>
|
||||||
|
|
||||||
<item name="mapFragmentGradientStartColor" >@color/mapFragmentGradientStartColor</item>
|
|
||||||
<item name="mapFragmentGradientCenterColor" >@color/mapFragmentGradientCenterColor</item>
|
|
||||||
<item name="mapFragmentGradientEndColor" >@color/mapFragmentGradientEndColor</item>
|
|
||||||
|
|
||||||
<item name="settingsFragmentGradientStartColor" >@color/settingsFragmentGradientStartColor</item>
|
<item name="settingsFragmentGradientStartColor" >@color/settingsFragmentGradientStartColor</item>
|
||||||
<item name="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColor</item>
|
<item name="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColor</item>
|
||||||
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColor</item>
|
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColor</item>
|
||||||
@ -94,10 +90,6 @@
|
|||||||
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColorDark</item>
|
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColorDark</item>
|
||||||
<item name="homeFragmentGradientEndColor" >@color/homeFragmentGradientEndColorDark</item>
|
<item name="homeFragmentGradientEndColor" >@color/homeFragmentGradientEndColorDark</item>
|
||||||
|
|
||||||
<item name="mapFragmentGradientStartColor" >@color/mapFragmentGradientStartColorDark</item>
|
|
||||||
<item name="mapFragmentGradientCenterColor" >@color/mapFragmentGradientCenterColorDark</item>
|
|
||||||
<item name="mapFragmentGradientEndColor" >@color/mapFragmentGradientEndColorDark</item>
|
|
||||||
|
|
||||||
<item name="settingsFragmentGradientStartColor" >@color/settingsFragmentGradientStartColorDark</item>
|
<item name="settingsFragmentGradientStartColor" >@color/settingsFragmentGradientStartColorDark</item>
|
||||||
<item name="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColorDark</item>
|
<item name="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColorDark</item>
|
||||||
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColorDark</item>
|
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColorDark</item>
|
||||||
|
Loading…
Reference in New Issue
Block a user