_
This commit is contained in:
parent
2045cb4425
commit
d8d3ff9b8e
@ -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
|
||||
}
|
||||
|
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">
|
||||
<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>
|
||||
|
Loading…
Reference in New Issue
Block a user