mirror of
https://github.com/He4eT/yamf_launcher.git
synced 2026-05-05 01:47:24 +00:00
Date now aligns with the clock and temperature units can be selected
This commit is contained in:
parent
f23d71a477
commit
dade0c9a3b
6 changed files with 66 additions and 194 deletions
|
|
@ -18,6 +18,9 @@ import android.view.GestureDetector
|
|||
import android.view.Gravity
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.View.TEXT_ALIGNMENT_CENTER
|
||||
import android.view.View.TEXT_ALIGNMENT_TEXT_END
|
||||
import android.view.View.TEXT_ALIGNMENT_TEXT_START
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.EditText
|
||||
import android.widget.LinearLayout
|
||||
|
|
@ -28,7 +31,6 @@ import androidx.activity.OnBackPressedCallback
|
|||
import androidx.annotation.RequiresApi
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.core.view.children
|
||||
import androidx.core.view.marginLeft
|
||||
|
|
@ -74,7 +76,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||
|
||||
private lateinit var clock: TextClock
|
||||
private var clockMargin = 0
|
||||
private lateinit var clockLayout: ConstraintLayout
|
||||
|
||||
private lateinit var dateText: TextClock
|
||||
|
||||
|
|
@ -108,13 +109,11 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||
|
||||
clockMargin = clock.marginLeft
|
||||
|
||||
clockLayout = findViewById(R.id.clock_layout)
|
||||
|
||||
dateText = findViewById(R.id.text_date)
|
||||
|
||||
dateElements = mutableListOf(dateText.format12Hour.toString(), dateText.format24Hour.toString(), "", "")
|
||||
|
||||
setClockAlignment(preferences.getString("clockAlignment", "left"), clock.id, clockMargin)
|
||||
setClockAlignment(preferences.getString("clockAlignment", "left"))
|
||||
|
||||
setupApps()
|
||||
|
||||
|
|
@ -158,7 +157,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||
while (true) {
|
||||
val currentWeather = weatherSystem.getTemp(this@MainActivity)
|
||||
withContext(Dispatchers.Main) {
|
||||
modifyDate(stringUtils.addEndTextIfNotEmpty(currentWeather, "°C"), 3)
|
||||
modifyDate(currentWeather, 3)
|
||||
}
|
||||
delay(300000)
|
||||
}
|
||||
|
|
@ -169,7 +168,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||
|
||||
when (key) {
|
||||
"clockAlignment" -> {
|
||||
setClockAlignment(preferences?.getString(key, "left"), clock.id, clockMargin)
|
||||
setClockAlignment(preferences?.getString(key, "left"))
|
||||
}
|
||||
|
||||
"shortcutAlignment" -> {
|
||||
|
|
@ -612,41 +611,22 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
|||
return true
|
||||
}
|
||||
|
||||
private fun setClockAlignment(alignment: String?, widgetId: Int, margin: Int) {
|
||||
private fun setClockAlignment(alignment: String?) {
|
||||
|
||||
val constraintSet = ConstraintSet()
|
||||
constraintSet.clone(clockLayout)
|
||||
println(alignment)
|
||||
|
||||
if (alignment == "right") {
|
||||
constraintSet.clear(widgetId, ConstraintSet.START)
|
||||
when (alignment) {
|
||||
"left" -> {
|
||||
clock.textAlignment = TEXT_ALIGNMENT_TEXT_START
|
||||
dateText.textAlignment = TEXT_ALIGNMENT_TEXT_START
|
||||
}
|
||||
"center" -> {
|
||||
clock.textAlignment = TEXT_ALIGNMENT_CENTER
|
||||
dateText.textAlignment = TEXT_ALIGNMENT_CENTER
|
||||
}
|
||||
"right" -> {
|
||||
clock.textAlignment = TEXT_ALIGNMENT_TEXT_END
|
||||
dateText.textAlignment = TEXT_ALIGNMENT_TEXT_END
|
||||
}
|
||||
}
|
||||
else if (alignment == "left") {
|
||||
constraintSet.clear(widgetId, ConstraintSet.END)
|
||||
}
|
||||
|
||||
if (alignment == "center" || alignment == "left") {
|
||||
constraintSet.connect(
|
||||
widgetId,
|
||||
ConstraintSet.START,
|
||||
ConstraintSet.PARENT_ID,
|
||||
ConstraintSet.START,
|
||||
margin
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
if (alignment != "left") {
|
||||
constraintSet.connect(
|
||||
widgetId,
|
||||
ConstraintSet.END,
|
||||
ConstraintSet.PARENT_ID,
|
||||
ConstraintSet.END,
|
||||
margin
|
||||
)
|
||||
}
|
||||
|
||||
constraintSet.applyTo(clockLayout)
|
||||
}
|
||||
|
||||
private fun setShortcutAlignment(alignment: String?, shortcuts: LinearLayout) {
|
||||
|
|
|
|||
|
|
@ -81,146 +81,4 @@ class SharedPreferenceManager {
|
|||
return sharedPreferences.getString(key, "")
|
||||
}
|
||||
|
||||
fun setClockAlignment(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "clock_alignment"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getClockAlignment(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "clock_alignment"
|
||||
return sharedPreferences.getInt(key, 0)
|
||||
}
|
||||
|
||||
fun setHomeAppAlignment(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "home_app_alignment"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getHomeAppAlignment(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "home_app_alignment"
|
||||
return sharedPreferences.getInt(key, 0)
|
||||
}
|
||||
|
||||
fun setAppMenuAlignment(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "app_menu_alignment"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getAppMenuAlignment(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "app_menu_alignment"
|
||||
return sharedPreferences.getInt(key, 0)
|
||||
}
|
||||
|
||||
fun setSearchAlignment(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "search_alignment"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getSearchAlignment(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "search_alignment"
|
||||
return sharedPreferences.getInt(key, 0)
|
||||
}
|
||||
|
||||
fun setClockSize(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "clock_size"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getClockSize(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "clock_size"
|
||||
return sharedPreferences.getInt(key, 2)
|
||||
}
|
||||
|
||||
fun setDateSize(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "date_size"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getDateSize(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "date_size"
|
||||
return sharedPreferences.getInt(key, 2)
|
||||
}
|
||||
|
||||
fun setShortcutSize(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "shortcut_size"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getShortcutSize(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "shortcut_size"
|
||||
return sharedPreferences.getInt(key, 2)
|
||||
}
|
||||
|
||||
fun setAppSize(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "app_size"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getAppSize(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "app_size"
|
||||
return sharedPreferences.getInt(key, 2)
|
||||
}
|
||||
|
||||
fun setSearchSize(cont: Context, alignment: Int) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "search_size"
|
||||
editor.putInt(key, alignment)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getSearchSize(cont: Context) : Int {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "search_size"
|
||||
return sharedPreferences.getInt(key, 2)
|
||||
}
|
||||
|
||||
fun setCameraEnabled(cont: Context, isEnabled: Boolean) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "camera_enabled"
|
||||
editor.putBoolean(key, isEnabled)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getCameraEnabled(cont: Context) : Boolean {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "camera_enabled"
|
||||
return sharedPreferences.getBoolean(key, true)
|
||||
}
|
||||
|
||||
fun setContactsEnabled(cont: Context, isEnabled: Boolean) {
|
||||
val editor = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE).edit()
|
||||
val key = "contacts_enabled"
|
||||
editor.putBoolean(key, isEnabled)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getContactsEnabled(cont: Context) : Boolean {
|
||||
val sharedPreferences = cont.getSharedPreferences("preferences", AppCompatActivity.MODE_PRIVATE)
|
||||
val key = "contacts_enabled"
|
||||
return sharedPreferences.getBoolean(key, true)
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import android.location.LocationManager
|
|||
import android.widget.Toast
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.json.JSONObject
|
||||
|
|
@ -90,11 +91,16 @@ class WeatherSystem {
|
|||
return foundLocations
|
||||
}
|
||||
|
||||
suspend fun getTemp(context: Context) : String {
|
||||
fun getTemp(context: Context) : String {
|
||||
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
val tempUnits = preferences.getString("tempUnits", "celsius")
|
||||
var currentWeather = ""
|
||||
|
||||
val location = sharedPreferenceManager.getWeatherLocation(context)
|
||||
if (location != null) {
|
||||
val url = URL("https://api.open-meteo.com/v1/forecast?$location¤t=temperature_2m")
|
||||
if (location != null) {
|
||||
if (location.isNotEmpty()) {
|
||||
val url = URL("https://api.open-meteo.com/v1/forecast?$location&temperature_unit=${tempUnits}¤t=temperature_2m")
|
||||
with(url.openConnection() as HttpURLConnection) {
|
||||
requestMethod = "GET"
|
||||
|
||||
|
|
@ -105,18 +111,26 @@ class WeatherSystem {
|
|||
|
||||
val currentData = jsonObject.getJSONObject("current")
|
||||
|
||||
return currentData.getInt("temperature_2m").toString()
|
||||
currentWeather = currentData.getInt("temperature_2m").toString()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(context, "No weather location set", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
return when (tempUnits) {
|
||||
"celsius" -> {
|
||||
stringUtils.addEndTextIfNotEmpty(currentWeather, "°C")
|
||||
}
|
||||
|
||||
return ""
|
||||
"fahrenheit" -> {
|
||||
stringUtils.addEndTextIfNotEmpty(currentWeather, "°F")
|
||||
}
|
||||
|
||||
else -> {
|
||||
""
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -88,10 +88,9 @@
|
|||
|
||||
<TextClock
|
||||
android:id="@+id/text_clock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="32dp"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginBottom="27dp"
|
||||
android:fontFamily="@null"
|
||||
|
|
@ -103,16 +102,18 @@
|
|||
android:textColor="#F3F3F3"
|
||||
android:textSize="68sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextClock
|
||||
android:id="@+id/text_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@null"
|
||||
android:format12Hour="dd MMM yyyy"
|
||||
android:format24Hour="dd MMM yyyy"
|
||||
android:paddingHorizontal="2dp"
|
||||
android:textAlignment="textStart"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
|
|
|
|||
|
|
@ -33,4 +33,14 @@
|
|||
<item>medium</item>
|
||||
<item>large</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="temp_units">
|
||||
<item>°C</item>
|
||||
<item>°F</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="unit_values">
|
||||
<item>celsius</item>
|
||||
<item>fahrenheit</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
@ -126,6 +126,15 @@
|
|||
app:key="manual_location"
|
||||
app:selectable="true"
|
||||
app:title="Set Manual Location" />
|
||||
<ListPreference
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:defaultValue="celsius"
|
||||
app:entries="@array/temp_units"
|
||||
app:entryValues="@array/unit_values"
|
||||
app:key="tempUnits"
|
||||
app:title="Units"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue