This commit is contained in:
Tucan444 2021-04-15 11:34:57 +02:00
parent 2045cb4425
commit d8d3ff9b8e
25 changed files with 238 additions and 119 deletions

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.wikispot">
<!--
@ -35,8 +34,8 @@
android:value="@string/google_maps_key" />
<activity
android:name=".activities.MainActivity"
android:screenOrientation="portrait">
android:name=".activities.MainActivity">
<!--android:screenOrientation="portrait"> -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />

@ -230,6 +230,10 @@ class MainActivity : AppCompatActivity() {
"settingsFragment" -> {
mainBottomNavigationView.selectedItemId = R.id.settingsFragment
}
"debugFragment" -> {
StartDirections.settingsFragmentStartDirection = "debugFragment"
mainBottomNavigationView.selectedItemId = R.id.settingsFragment
}
}
}

@ -1,23 +1,31 @@
package com.example.wikispot.adapters
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import androidx.core.content.ContextCompat.startActivity
import androidx.recyclerview.widget.RecyclerView
import com.example.wikispot.R
import com.example.wikispot.ServerManagement
import com.example.wikispot.modelsForAdapters.FileView
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>() {
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 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){
@ -31,6 +39,8 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
init {
itemView.setOnClickListener {
if (!opened) {
itemView.downloadFileBtn.visibility = View.VISIBLE
itemView.downloadFileBtn.startAnimation(fadeIn)
itemView.showFileBtn.startAnimation(rotateOpen)
fileView?.let {
@ -60,18 +70,46 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
}
pdfUrl?.let {
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 {
itemView.showFileBtn.startAnimation(rotateClose)
itemView.textContent.textSize = 0F
val downloadBtnVanishActionThread = Thread(DownloadBtnVanishAction())
downloadBtnVanishActionThread.start()
itemView.imageContent.visibility = View.GONE
itemView.pdfContent.visibility = View.GONE
}
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) {
@ -92,6 +130,24 @@ class FileViewsAdapter(private val context: Context, private val fileViews: Arra
this.fileView = fileView
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) {

@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.wikispot.R
import com.example.wikispot.ServerManagement
import com.example.wikispot.adapters.ChatMessagesAdapter
import com.example.wikispot.adapters.FileViewsAdapter
import com.example.wikispot.modelsForAdapters.MessagesSupplier
@ -20,8 +21,24 @@ class chatFragment : Fragment(R.layout.fragment_chat) {
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() {
try {
chat_messages_recycler_view.post {
val layoutManager = LinearLayoutManager(context)
layoutManager.orientation = LinearLayoutManager.VERTICAL
@ -30,6 +47,7 @@ class chatFragment : Fragment(R.layout.fragment_chat) {
val adapter = context?.let { ChatMessagesAdapter(it, MessagesSupplier.messages) }
chat_messages_recycler_view.adapter = adapter
}
} catch (e: Throwable) { println("[debug] e5 Exception: $e") }
}

@ -1,20 +1,21 @@
package com.example.wikispot.fragments
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.navigation.Navigation
import com.example.wikispot.IntentsKeys
import com.example.wikispot.R
import com.example.wikispot.ServerManagement
import com.example.wikispot.activities.MainActivity
import com.example.wikispot.modelClasses.JsonManager
import kotlinx.android.synthetic.main.fragment_debug.*
class debugFragment : Fragment(R.layout.fragment_debug) {
private lateinit var jsonManager: JsonManager
@SuppressLint("SetTextI18n")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@ -27,30 +28,31 @@ class debugFragment : Fragment(R.layout.fragment_debug) {
outputText.text = ServerManagement.totalNumberOfRequestsSent.toString()
}
val pdfRequestThread = Thread(PdfRequest())
pdfRequestThread.start()
clearServerConnectionsBtn.setOnClickListener {
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() {
val inputStream = java.net.URL("${ServerManagement.baseUrl}files/1/sample.pdf").openStream()
intent.putExtra(IntentsKeys.startFragment, "debugFragment")
Thread.sleep(500)
ServerManagement.serverManager.clearConnections()
pdfContent.post {
pdfContent.fromStream(inputStream).load()
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
}
startActivity(intent)
activity?.finish()
}
}

@ -65,7 +65,7 @@ class infoFragment : Fragment(R.layout.fragment_info) {
val json = JsonManager(requireContext(), data)
json.findJsonObjectByAttribute("ID", serverId)
mainImage?.let {
mainTitle?.let {
mainTitle.post {
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) }
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) }
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
for (n in PlaceSupplier.places.indices) {
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)

@ -5,10 +5,7 @@ import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.View
import androidx.navigation.Navigation
import com.example.wikispot.IntentsKeys
import com.example.wikispot.R
import com.example.wikispot.ServerManagement
import com.example.wikispot.ThemeOptions
import com.example.wikispot.*
import com.example.wikispot.activities.MainActivity
import com.example.wikispot.modelClasses.ServerManager
import com.example.wikispot.modelClasses.SettingsSaveManager
@ -22,6 +19,15 @@ class settingsFragment : Fragment(R.layout.fragment_settings) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
StartDirections.settingsFragmentStartDirection?.let {
when (StartDirections.settingsFragmentStartDirection) {
"debugFragment" -> {
Navigation.findNavController(debugBtn).navigate(R.id.navigateToDebugFragment)
StartDirections.settingsFragmentStartDirection = null
}
}
}
settingsSaveManager = SettingsSaveManager(requireContext())
loadSettings()

@ -128,16 +128,16 @@ class ServerManager {
}
}
fun loadPdfView(view: PDFView, url: String) {
val pdfLoadingRequestThread = Thread(PdfLoadingRequest(view, url))
fun loadPdfView(view: PDFView, url: String, swipeHorizontal: Boolean=false) {
val pdfLoadingRequestThread = Thread(PdfLoadingRequest(view, url, swipeHorizontal))
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() {
val inputStream = java.net.URL(url).openStream()
view.post {
view.fromStream(inputStream).load()
view.fromStream(inputStream).swipeHorizontal(swipeHorizontal).load()
view.zoomTo(view.width / 490.0F)
}
}
@ -150,15 +150,15 @@ class ServerManager {
for (i in 0 until receiverConnections.size) {
try {
receiverConnections[i].running = false
receiverConnections.removeAt(i)
} catch (e: Throwable) { println("In clearConnections: $e") }
}
receiverConnections = mutableListOf()
for (i in 0 until viewConnections.size) {
try {
viewConnections[i].running = false
viewConnections.removeAt(i)
} catch (e: Throwable) { println("In clearConnections: $e") }
}
viewConnections = mutableListOf()
}
fun checkIfConnectionAlreadyExists(connectionName: String, connectionType: String="any"): Boolean{

@ -2,16 +2,11 @@ package com.example.wikispot.modelsForAdapters
import android.content.Context
import android.graphics.Bitmap
import android.media.Image
import com.example.wikispot.ScreenParameters
import com.example.wikispot.getStringFromSharedPreferences
import com.example.wikispot.modelClasses.JsonManager
import com.example.wikispot.modelClasses.JsonManagerLite
import com.example.wikispot.saveString
import com.google.android.gms.maps.model.LatLng
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) {
@ -41,9 +36,9 @@ object PlaceSupplier {
var controlJson: JsonManagerLite? = null
var places = arrayOf<PlacePreview?>(
PlacePreview("River", "", "39.94071648123733,-85.9346308193051"),
PlacePreview("Velky Manin", "", "49.12590793522579,18.49571849264312"),
PlacePreview("Klapy", "", "49.161527643132175,18.41231657316252")
PlacePreview("River", "", "39.94071648123733,-85.9346308193051", null, 12),
PlacePreview("Velky Manin", "", "49.12590793522579,18.49571849264312", null, 16),
PlacePreview("Klapy", "", "49.161527643132175,18.41231657316252", null, 18)
)
fun appendPlace(place: PlacePreview) {
@ -88,6 +83,7 @@ object PlaceSupplier {
val jsonManager = JsonManager(context, save)
for (n in 0 until jsonManager.getLengthOfJsonArray()) {
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())
if (!checkIfContains(place)) {
appendPlace(place)

@ -1,7 +1,5 @@
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)

@ -13,6 +13,10 @@ object MessagesSupplier {
messages = array
}
fun checkIfContains(message: Message) {
}
fun wipeData() {
messages = arrayOf()
}

@ -24,10 +24,11 @@ object ServerManagement {
const val viewConnectionOnCheckWait: Long = 5000
const val dataRequestOnAttemptWait: 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
const val sensors_keyword = "_[{(S,e,n,s,o,r,s)}]_"
const val chat_keyword = "_[{(C,h,a,t)}]_"
var totalNumberOfRequestsSent = 0
}
@ -50,7 +51,9 @@ object CustomBackstackVariables {
object ThemeOptions {
var darkTheme = false
}
object StartDirections {
var settingsFragmentStartDirection: String? = null
}

@ -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>

@ -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">
<path
android:fillColor="@android:color/white"
android:pathData="M7,14l5,-5 5,5H7z"/>
android:pathData="M7,10l5,5 5,-5z"/>
</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"
card_view:layout_constraintEnd_toEndOf="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
android:id="@+id/textContent"
@ -71,6 +71,17 @@
card_view:layout_constraintHorizontal_bias="0.5"
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.cardview.widget.CardView>

@ -31,12 +31,13 @@
<ScrollView
android:id="@+id/scrollView3"
android:layout_width="0dp"
android:layout_width="252dp"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
app:layout_constraintEnd_toEndOf="@+id/getNumberOfSentRequestsBtn"
app:layout_constraintStart_toStartOf="@+id/getNumberOfSentRequestsBtn"
app:layout_constraintTop_toBottomOf="@+id/getNumberOfSentRequestsBtn">
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/clearServerConnectionsBtn">
<LinearLayout
android:layout_width="match_parent"
@ -54,15 +55,48 @@
</LinearLayout>
</ScrollView>
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfContent"
android:layout_width="200dp"
android:layout_height="300dp"
app:layout_constraintBottom_toBottomOf="parent"
<Button
android:id="@+id/changeIpBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scrollView3"
app:layout_constraintVertical_bias="0.17000002" />
app:layout_constraintTop_toBottomOf="@+id/getNumberOfSentRequestsBtn" />
<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>

@ -11,7 +11,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent">
<TextView
android:id="@+id/home_title"
@ -34,12 +34,15 @@
android:name="com.example.wikispot.fragments.infoFragment"
android:layout_width="match_parent"
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_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4">
app:layout_constraintTop_toBottomOf="@+id/home_title">
</androidx.fragment.app.FragmentContainerView>

@ -21,10 +21,6 @@
<attr name="homeFragmentGradientCenterColor" 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="settingsFragmentGradientCenterColor" format="color"/>
<attr name="settingsFragmentGradientEndColor" format="color"/>

@ -35,10 +35,6 @@
<color name="homeFragmentGradientCenterColor" >#9EC6FF</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="settingsFragmentGradientCenterColor" >#A198F9</color>
<color name="settingsFragmentGradientEndColor" >#74C7F7</color>
@ -79,10 +75,6 @@
<color name="homeFragmentGradientCenterColorDark" >#9EC6FF</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="settingsFragmentGradientCenterColorDark" >#A198F9</color>
<color name="settingsFragmentGradientEndColorDark" >#74C7F7</color>

@ -5,21 +5,8 @@
<string name="home">Home</string>
<string name="map">Map</string>
<string name="settings">Settings</string>
<!-- TODO: Remove or change this placeholder text -->
<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>
</resources>

@ -32,10 +32,6 @@
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColor</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="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColor</item>
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColor</item>
@ -94,10 +90,6 @@
<item name="homeFragmentGradientCenterColor" >@color/homeFragmentGradientCenterColorDark</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="settingsFragmentGradientCenterColor" >@color/settingsFragmentGradientCenterColorDark</item>
<item name="settingsFragmentGradientEndColor" >@color/settingsFragmentGradientEndColorDark</item>