mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 01:08:50 -06:00
Make FrequencyPickerDialog translatable
This commit is contained in:
@@ -25,7 +25,9 @@ import android.util.Log
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
|
import android.widget.LinearLayout
|
||||||
import android.widget.RadioButton
|
import android.widget.RadioButton
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatDialogFragment
|
import androidx.appcompat.app.AppCompatDialogFragment
|
||||||
import kotlinx.android.synthetic.main.frequency_picker_dialog.view.*
|
import kotlinx.android.synthetic.main.frequency_picker_dialog.view.*
|
||||||
@@ -45,6 +47,21 @@ class FrequencyPickerDialog(
|
|||||||
val inflater = LayoutInflater.from(activity!!)
|
val inflater = LayoutInflater.from(activity!!)
|
||||||
contentView = inflater.inflate(R.layout.frequency_picker_dialog, null)
|
contentView = inflater.inflate(R.layout.frequency_picker_dialog, null)
|
||||||
|
|
||||||
|
addBeforeAfterText(
|
||||||
|
this.getString(R.string.every_x_days),
|
||||||
|
contentView.everyXDaysContainer,
|
||||||
|
)
|
||||||
|
|
||||||
|
addBeforeAfterText(
|
||||||
|
this.getString(R.string.x_times_per_week),
|
||||||
|
contentView.xTimesPerWeekContainer,
|
||||||
|
)
|
||||||
|
|
||||||
|
addBeforeAfterText(
|
||||||
|
this.getString(R.string.x_times_per_month),
|
||||||
|
contentView.xTimesPerMonthContainer,
|
||||||
|
)
|
||||||
|
|
||||||
contentView.everyDayRadioButton.setOnClickListener {
|
contentView.everyDayRadioButton.setOnClickListener {
|
||||||
check(contentView.everyDayRadioButton)
|
check(contentView.everyDayRadioButton)
|
||||||
unfocusAll()
|
unfocusAll()
|
||||||
@@ -84,6 +101,19 @@ class FrequencyPickerDialog(
|
|||||||
.create()
|
.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun addBeforeAfterText(
|
||||||
|
str: String,
|
||||||
|
container: LinearLayout
|
||||||
|
) {
|
||||||
|
val parts = str.split("%d")
|
||||||
|
container.addView(
|
||||||
|
TextView(activity).apply { text = parts[0].trim() }, 1,
|
||||||
|
)
|
||||||
|
container.addView(
|
||||||
|
TextView(activity).apply { text = parts[1].trim() }, 3,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private fun onSaveClicked() {
|
private fun onSaveClicked() {
|
||||||
var numerator = 1
|
var numerator = 1
|
||||||
var denominator = 1
|
var denominator = 1
|
||||||
|
|||||||
@@ -304,14 +304,14 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
freqNum == 1 && freqDen == 7 -> getString(R.string.every_week)
|
freqNum == 1 && freqDen == 7 -> getString(R.string.every_week)
|
||||||
freqNum == 1 && freqDen > 1 -> getString(R.string.every_x_days, freqDen)
|
freqNum == 1 && freqDen > 1 -> getString(R.string.every_x_days, freqDen)
|
||||||
freqDen == 7 -> getString(R.string.x_times_per_week, freqNum)
|
freqDen == 7 -> getString(R.string.x_times_per_week, freqNum)
|
||||||
freqDen == 31 -> getString(R.string.x_times_per_month, freqNum)
|
freqDen == 30 || freqDen == 31 -> getString(R.string.x_times_per_month, freqNum)
|
||||||
else -> "Unknown"
|
else -> "$freqNum/$freqDen"
|
||||||
}
|
}
|
||||||
binding.numericalFrequencyPicker.text = when (freqDen) {
|
binding.numericalFrequencyPicker.text = when (freqDen) {
|
||||||
1 -> getString(R.string.every_day)
|
1 -> getString(R.string.every_day)
|
||||||
7 -> getString(R.string.every_week)
|
7 -> getString(R.string.every_week)
|
||||||
30 -> getString(R.string.every_month)
|
30 -> getString(R.string.every_month)
|
||||||
else -> "Unknown"
|
else -> "$freqNum/$freqDen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import org.isoron.uhabits.databinding.ShowHabitSubtitleBinding
|
|||||||
import org.isoron.uhabits.utils.InterfaceUtils
|
import org.isoron.uhabits.utils.InterfaceUtils
|
||||||
import org.isoron.uhabits.utils.formatTime
|
import org.isoron.uhabits.utils.formatTime
|
||||||
import org.isoron.uhabits.utils.toThemedAndroidColor
|
import org.isoron.uhabits.utils.toThemedAndroidColor
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
class SubtitleCardView(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) {
|
class SubtitleCardView(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) {
|
||||||
|
|
||||||
@@ -99,13 +98,6 @@ class SubtitleCardView(context: Context, attrs: AttributeSet) : LinearLayout(con
|
|||||||
}
|
}
|
||||||
return resources.getString(R.string.every_x_days, den)
|
return resources.getString(R.string.every_x_days, den)
|
||||||
}
|
}
|
||||||
return String.format(
|
return "$num/$den"
|
||||||
Locale.US,
|
|
||||||
"%d %s %d %s",
|
|
||||||
num,
|
|
||||||
resources.getString(R.string.times_every),
|
|
||||||
den,
|
|
||||||
resources.getString(R.string.days),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/everyXDaysContainer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
@@ -54,11 +55,6 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Every" />
|
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/everyXDaysTextView"
|
android:id="@+id/everyXDaysTextView"
|
||||||
android:layout_width="50dp"
|
android:layout_width="50dp"
|
||||||
@@ -71,14 +67,10 @@
|
|||||||
android:maxLength="2"
|
android:maxLength="2"
|
||||||
android:text="3" />
|
android:text="3" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="days" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/xTimesPerWeekContainer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
@@ -98,16 +90,13 @@
|
|||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:maxLength="2"
|
android:maxLength="2"
|
||||||
android:text="5" />
|
android:text="3" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="times per week" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/xTimesPerMonthContainer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
@@ -129,11 +118,6 @@
|
|||||||
android:maxLength="2"
|
android:maxLength="2"
|
||||||
android:text="10" />
|
android:text="10" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="times per month" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -53,8 +53,6 @@
|
|||||||
<string name="habit_strength">Habit strength</string>
|
<string name="habit_strength">Habit strength</string>
|
||||||
<string name="history">History</string>
|
<string name="history">History</string>
|
||||||
<string name="clear">Clear</string>
|
<string name="clear">Clear</string>
|
||||||
<string name="times_every">times in</string>
|
|
||||||
<string name="days">days</string>
|
|
||||||
<string name="reminder">Reminder</string>
|
<string name="reminder">Reminder</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Save</string>
|
||||||
<string name="streaks">Streaks</string>
|
<string name="streaks">Streaks</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user