Compare commits

..

No commits in common. "e23ab77274bd0b1aa14c267c0c6f6e97363fecb9" and "32fbeac0796b87627b313708887aed94b16ee1ae" have entirely different histories.

11 changed files with 85 additions and 146 deletions

1
.gitignore vendored
View File

@ -106,4 +106,3 @@ app/release/output-metadata.json
# Other # Other
app/src/main/java/it/danieleverducci/lunatracker/TemporaryHardcodedCredentials.kt app/src/main/java/it/danieleverducci/lunatracker/TemporaryHardcodedCredentials.kt
.kotlin/sessions/*

View File

@ -7,18 +7,13 @@ import android.util.Log
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.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.EditText import android.widget.EditText
import android.widget.NumberPicker import android.widget.NumberPicker
import android.widget.PopupWindow import android.widget.PopupWindow
import android.widget.Spinner
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.view.children
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.progressindicator.LinearProgressIndicator import com.google.android.material.progressindicator.LinearProgressIndicator
@ -83,7 +78,6 @@ class MainActivity : AppCompatActivity() {
recyclerView.adapter = adapter recyclerView.adapter = adapter
// Set listeners // Set listeners
findViewById<View>(R.id.logbooks_add_button).setOnClickListener { showAddLogbookDialog() }
findViewById<View>(R.id.button_bottle).setOnClickListener { askBabyBottleContent() } findViewById<View>(R.id.button_bottle).setOnClickListener { askBabyBottleContent() }
findViewById<View>(R.id.button_scale).setOnClickListener { askWeightValue() } findViewById<View>(R.id.button_scale).setOnClickListener { askWeightValue() }
findViewById<View>(R.id.button_nipple_left).setOnClickListener { logEvent( findViewById<View>(R.id.button_nipple_left).setOnClickListener { logEvent(
@ -328,33 +322,36 @@ class MainActivity : AppCompatActivity() {
logbookRepo?.listLogbooks(this, object: LogbookListObtainedListener { logbookRepo?.listLogbooks(this, object: LogbookListObtainedListener {
override fun onLogbookListObtained(logbooksNames: ArrayList<String>) { override fun onLogbookListObtained(logbooksNames: ArrayList<String>) {
runOnUiThread({ runOnUiThread({
// Show logbooks dropdown // Show logbooks buttons
val spinner = findViewById<Spinner>(R.id.logbooks_spinner) val logbooksButtonsContainer =
val sAdapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item) findViewById<ViewGroup>(R.id.logbooks_buttons_container)
sAdapter.setDropDownViewResource(R.layout.row_logbook_spinner) logbooksButtonsContainer.removeAllViews()
for (ln in logbooksNames) { for (lbn in logbooksNames) {
sAdapter.add( val lbnButton = layoutInflater.inflate(
if (ln.isEmpty()) getString(R.string.default_logbook_name) else ln R.layout.logbook_button,
logbooksButtonsContainer,
false
) as TextView
lbnButton.setText(
if (lbn.isEmpty()) getString(R.string.default_logbook_name) else lbn
) )
lbnButton.setOnClickListener({
loadLogbook(lbn)
})
logbooksButtonsContainer.addView(lbnButton)
} }
spinner.adapter = sAdapter // Show "Add logbook" button
spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener { val addLogbookButton = layoutInflater.inflate(
override fun onItemSelected( R.layout.logbook_button,
parent: AdapterView<*>?, logbooksButtonsContainer,
view: View?, false
position: Int, ) as TextView
id: Long addLogbookButton.setText("+")
) { addLogbookButton.setOnClickListener({showAddLogbookDialog()})
// Changed logbook: empty list logbooksButtonsContainer.addView(addLogbookButton)
adapter.items.clear()
adapter.notifyDataSetChanged()
// Load logbook
loadLogbook(logbooksNames.get(position))
}
override fun onNothingSelected(parent: AdapterView<*>?) {} // Load logbook
loadLogbook()
}
}) })
} }
@ -375,13 +372,15 @@ class MainActivity : AppCompatActivity() {
fun addLogbook(logbookName: String) { fun addLogbook(logbookName: String) {
this.logbook = Logbook(logbookName) this.logbook = Logbook(logbookName)
saveLogbook() saveLogbook()
loadLogbookList() // TODO: Does not reload logbooks buttons on top, why? loadLogbookList()
} }
fun loadLogbook(name: String = LogbookRepository.DEFAULT_LOGBOOK_NAME) { fun loadLogbook(name: String = LogbookRepository.DEFAULT_LOGBOOK_NAME) {
if (savingEvent) if (savingEvent)
return return
// TODO: Highlight logbook button
// Reset time counter // Reset time counter
handler.removeCallbacks(updateListRunnable) handler.removeCallbacks(updateListRunnable)
handler.postDelayed(updateListRunnable, UPDATE_EVERY_SECS*1000) handler.postDelayed(updateListRunnable, UPDATE_EVERY_SECS*1000)

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/dropdown_list_item_background_pressed"/>
<item android:drawable="@drawable/dropdown_list_item_background_released"/>
</selector>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="2dp"
android:color="@color/grey" />
<solid
android:color="@color/grey" />
<corners android:radius="15dp" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="2dp"
android:color="@color/grey" />
<solid
android:color="@color/cardview_dark_background"/>
<corners android:radius="15dp" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>

View File

@ -7,77 +7,32 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="10dp" android:paddingTop="30dp"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:paddingRight="15dp"> android:paddingRight="15dp">
<LinearLayout <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:text="@string/title"
android:textSize="30dp"
<ImageView android:gravity="center_horizontal"/>
android:id="@+id/button_settings"
android:layout_width="wrap_content" <HorizontalScrollView
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_gravity="end"
android:src="@drawable/ic_settings"
app:tint="@color/grey"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/title"
android:textSize="26dp"
android:gravity="center"/>
<ImageView
android:id="@+id/button_sync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_gravity="start"
android:src="@drawable/ic_sync"
app:tint="@color/grey"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="38dp" android:layout_height="wrap_content"
android:layout_margin="10dp" android:layout_marginTop="10dp"
android:orientation="horizontal" android:layout_marginBottom="10dp">
android:gravity="center_vertical">
<FrameLayout <LinearLayout
android:layout_width="0dp" android:id="@+id/logbooks_buttons_container"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/button_background">
<Spinner
android:id="@+id/logbooks_spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
<TextView
android:id="@+id/logbooks_add_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_marginLeft="10dp" android:orientation="horizontal">
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textStyle="bold"
android:textColor="@color/accent"
android:textSize="20dp"
android:text="+"
android:background="@drawable/button_background"/>
</LinearLayout> </LinearLayout>
</HorizontalScrollView>
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
@ -225,6 +180,24 @@
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/button_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_gravity="end"
android:src="@drawable/ic_settings"
app:tint="@color/grey"/>
<ImageView
android:id="@+id/button_sync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_gravity="start"
android:src="@drawable/ic_sync"
app:tint="@color/grey"/>
<LinearLayout <LinearLayout
android:id="@+id/no_connection_screen" android:id="@+id/no_connection_screen"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:background="@drawable/button_background"
android:textStyle="bold"
android:textColor="@color/accent"/>

View File

@ -15,7 +15,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="20dp" android:padding="20dp"
android:background="@drawable/dropdown_list_item_background" android:background="@drawable/button_background"
style="@style/OverflowMenuText" style="@style/OverflowMenuText"
android:text="@string/overflow_event_medicine"/> android:text="@string/overflow_event_medicine"/>
@ -25,7 +25,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:padding="20dp" android:padding="20dp"
android:background="@drawable/dropdown_list_item_background" android:background="@drawable/button_background"
style="@style/OverflowMenuText" style="@style/OverflowMenuText"
android:text="@string/overflow_event_enema"/> android:text="@string/overflow_event_enema"/>
@ -35,7 +35,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:padding="20dp" android:padding="20dp"
android:background="@drawable/dropdown_list_item_background" android:background="@drawable/button_background"
style="@style/OverflowMenuText" style="@style/OverflowMenuText"
android:text="@string/overflow_event_note"/> android:text="@string/overflow_event_note"/>
@ -45,7 +45,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:padding="20dp" android:padding="20dp"
android:background="@drawable/dropdown_list_item_background" android:background="@drawable/button_background"
style="@style/OverflowMenuText" style="@style/OverflowMenuText"
android:text="@string/overflow_event_temperature"/> android:text="@string/overflow_event_temperature"/>
@ -55,7 +55,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:padding="20dp" android:padding="20dp"
android:background="@drawable/dropdown_list_item_background" android:background="@drawable/button_background"
style="@style/OverflowMenuText" style="@style/OverflowMenuText"
android:text="@string/overflow_event_colic"/> android:text="@string/overflow_event_colic"/>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:singleLine="true"
android:ellipsize="end"/>

View File

@ -84,6 +84,6 @@
<string name="dialog_add_logbook_logbookname">Nome del diario</string> <string name="dialog_add_logbook_logbookname">Nome del diario</string>
<string name="dialog_add_logbook_message">Scrivi un nome per identificare questo diario. Comparirà in cima allo schermo, e se usi WebDAV sarà incluso anche nel nome del file di salvataggio.</string> <string name="dialog_add_logbook_message">Scrivi un nome per identificare questo diario. Comparirà in cima allo schermo, e se usi WebDAV sarà incluso anche nel nome del file di salvataggio.</string>
<string name="default_logbook_name">👶 Il mio primo diario</string> <string name="default_logbook_name">Senza nome</string>
</resources> </resources>

View File

@ -107,6 +107,6 @@
<string name="dialog_add_logbook_logbookname">Logbook name</string> <string name="dialog_add_logbook_logbookname">Logbook name</string>
<string name="dialog_add_logbook_message">Write a name to identify this logbook. This name will appear on top of the screen and, if you use WebDAV, will be in the save file name as well.</string> <string name="dialog_add_logbook_message">Write a name to identify this logbook. This name will appear on top of the screen and, if you use WebDAV, will be in the save file name as well.</string>
<string name="default_logbook_name">👶 My first logbook</string> <string name="default_logbook_name">Unnamed</string>
</resources> </resources>